Quais são as definições dos status do pedido? OU: Onde devo integrar o estado do meu pedido?


25

Quero definir alguns estados de pedidos como "pagamento com cartão de crédito recebido", a questão é a quais status eles pertencem. Existe uma definição para cada um dos status internos?

Edit: Parece que eu misturei "status" e "state", espero que fique claro a partir do contexto de qualquer maneira. Eu culpo a tradução alemã de Magento (State => Status, Status => Zustand)

Respostas:


42

De acordo com o "Guia Definitivo do Magento" [1] , os status do pedido são definidos da seguinte forma:

  • Pendente: pedidos pendentes são pedidos novos que não foram processados. Normalmente, esses pedidos precisam ser faturados e enviados.
  • PayPal pendente: os pedidos pendentes do PayPal são novos e não foram limpos pelo PayPal. [...]
  • Processamento: Processamento significa que os pedidos foram faturados ou enviados, mas não ambos.
  • Concluído: os pedidos marcados como concluídos foram faturados e enviados.
  • Cancelado: pedidos cancelados devem ser usados ​​se os pedidos forem cancelados ou se os pedidos não tiverem sido pagos.
  • Fechado: pedidos fechados são pedidos que receberam uma nota de crédito e o cliente foi reembolsado pelo pedido.
  • Em espera: os pedidos em espera devem ser retirados antes de continuar com outras ações.

Portanto, um estado "pagamento com cartão de crédito recebido" pertenceria processing, desde que o pedido ainda não tenha sido enviado.


A Aligent Consulting [2] criou um fluxograma para os estados dos pedidos:

fluxo do estado da ordem magento


Fontes:

  1. Adam McCombs e Robert Banh: "O Guia Definitivo do Magento", Apress, 2009 (ISBN 1430272287, 9781430272281)
  2. https://twitter.com/aligent/status/509487359172177921/photo/1

Sou a favor de perguntas auto-respondidas - mas isso parece uma semeadura de baixa qualidade. Uma resposta de copiar e colar que poderia ser encontrada on-line facilmente não agrega muito valor a este site.
— Ben Lessani - Sonassi

4
@sonassi: Eu respeito a sua opinião e não pretendo que a pergunta seja de alta qualidade, mas procurei por um tempo e não encontrei perguntas relacionadas aqui ou no SO ainda, para que possa ajudar outra pessoa no futuro.
— Fabian Schmengler

Achei isso super útil. às vezes, você encontra as coisas mais facilmente na pilha do que no google, pois a pilha é pré-filtrada, em comparação com o google, por assim dizer. e se estiver semeando, que assim seja. Eles forneceram valor. Estou totalmente bem com a semeadura.
— Ahnbizcad

2

Os diferentes estados de pedidos são definidos em Mage_Sales_Model_Order:

const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';

+1 Isso é substituível? Existe uma maneira de obter isso da API do resto? por exemplo, / config / sales / possibleStatusList?
— MZN

11
Sobrescrever as constantes? Por que você deseja substituí-los? Você pode definir novos status do pedido no back-end (Sistema> Status do pedido). Se você quer dizer 'status da requisição de mudança', sim, isso é possível. E sim, você também pode obter o status do pedido do API (sales_order.info método ou método sales_order.list)
— Stefan

Sim, eu quis dizer mudar a lista e não as constantes. você sabe como posso acessar sales_order.info na API restante? qual é o ponto final? i tentou / SalesOrders / info url relativa
— MZN

Não deve ser difícil, veja aqui para acessar em geral: magento.stackexchange.com/a/33187/6291 e informações sobre sales_order.info aqui: devdocs.magento.com/guides/m1x/api/soap/sales/salesOrder/ ... boa sorte!
— Stefan

Obrigado pela resposta, mas a API SOAP é realmente diferente da API REST. Por alguma razão, não consigo descobrir o que você fala nos documentos api do REST: devdocs.magento.com/swagger/index.html Você pode vê-lo lá? Talvez não esteja incluído na API REST?
— MZN

1

Na verdade, já que os status de 1,5 pedidos podem ser definidos na seção Admin e o xml não é a maneira preferida de adicionar / alterar estados ou status. Faça a diferença entre estado e status. Estado é 'processamento' status é 'pagamento com cartão de crédito recebido'

Atualização : os status do pedido podem ser criados e modificados em admin / sales_order_status /, não é necessário fazer nada em XML Você pode atribuir um status apenas se o pedido estiver no estado apropriado. Por padrão, o pedido entra no estado de processamento quando é faturado ou enviado.


Isso foi um comentário à resposta de Sebastian Lind? Quanto aos estados e status, parece que eu os misturei (de novo ...), obrigado pela correção.
— Fabian Schmengler

-1

Você pode conectar seu novo estado a status de pedidos existentes ou criar completamente novo. Simplesmente modifique o arquivo de configuração do módulo de vendas da seguinte forma (app \ code \ core \ Mage \ Sales \ etc \ config.xml) com seu novo estado:

<?xml version="1.0"?>
<config>
  <!-- ... -->
  <global>
    <sales>
      <order>
        <statuses>
          <new_status>
            <label>New Status</label>
            <description>Your Description here</description>
          </new_status>
        </statuses>
        <states>
          <new>
            <label>New</label>
            <statuses>
              <new_status/>
            </statuses>
            <visible_on_front/>
          </new>
        </states>
      </order>
    </sales>
  </global>
</config>

Atualize o cache, concluído.


2
Receio que nada sobre esta resposta seja apropriado.
— benmarks

11
Não edite o núcleo do Magento. Em vez disso, crie uma configuração em seu próprio módulo. O Magento mesclará o seu e os arquivos de configuração do núcleo.
— Jacques
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.