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)

Fabian Schmengler
fonte

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
Fabian Schmengler
fonte
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';
Stefan
fonte
+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.

Petar Dzhambazov
fonte
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.

Sebastian Lind
fonte
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