2010-11-13 23 views
10

Mi sto divertendo a capire la differenza tra lo "stato" di un ordine rispetto al suo stato in Magento.Stato ordine Magento Stato vs Stato

Abbiamo un flusso personalizzato impostato per inviare ordini ad adempimenti di terze parti e abbiamo anche una logica personalizzata per verificare la presenza di ordini potenzialmente fraudolenti e contrassegnarli per essere approvati manualmente per la spedizione da un utente amministratore per uscire per l'adempimento .

ho aggiunto uno stato di 'In attesa della spedizione', e di un 'OK per Ship' stato nel mio modulo di configurazione in questo modo:

<global> 
    ... 
    <sales> 
     <order> 
      <statuses> 
       <pending_shipment translate="label"><label>Pending Shipment</label></pending_shipment> 
       <ok_to_ship translate="label"><label>OK To Ship</label></ok_to_ship> 
      </statuses> 
      <states> 
       <processing translate="label"> 
        <statuses> 
         <pending_shipment /> 
        </statuses> 
       </processing> 
       <payment_review translate="label"> 
        <statuses> 
         <ok_to_ship /> 
        </statuses> 
       </payment_review> 
      </states> 
     </order> 
    </sales> 
    ... 
</global> 

... e io uso il costruito in stato di 'sospetto di frode' per tutto questo Il problema è che lo stato "Sospettato frode" è raggruppato sotto lo stato "Revisione pagamento", e se un ordine è contrassegnato come "Frode sospetta" o "Revisione pagamento", l'amministratore non ti consente di scegliere altri stati oltre a quelli 2. Idealmente l'opzione 'OK per spedire' sarebbe disponibile, ma raggruppata sotto lo 'stato' di 'Elaborazione'. Qui, ho 'OK spedire' sotto lo stato 'payment_review' e ha reso l'opzione disponibile, ma poi quando ho premuto un ordine e controllo canShip() - fallisce perché è uno stato di stato 'Revisione pagamento'.

Quindi, se qualcuno può aiutarmi a capire come gli stati/stati sono destinati a funzionare in Magento e come configurare al meglio questa situazione, lo apprezzerei.

risposta

1

La mia comprensione è che per un dato stato (che sono determinati dal normale flusso di ordini e non sono realmente mutabili), si ha libero dominio per modificare lo stato dell'ordine (che è un'etichetta). A seconda di cosa vuoi ottenere, potresti provare a clonare <okay_to_ship /> nell'altro stato in cui vuoi che siano? Non sembrano essere esclusivi.

Grazie, Joe

+1

Sì, ho provato che - ho messo 'ok_to_ship' sia sotto 'trasformazione' e 'payment_review' afferma e questo mi ha permesso di selezionarlo e aggiornarlo quando l'ordine era nello stato/stato di 'frode'. Il problema è che il passaggio da "frode" a "ok_to_ship" lo ha ancora raggruppato sotto lo stato "payment_review", facendo nuovamente fallire il controllo canShip(). C'è un modo per associare uno stato a uno stato? e lo rendono ancora un'opzione mentre l'altro è impostato su altri stati? –

+0

Correzione su quest'ultima riga: "... * l'ordine è impostato su altri stati?" –

+2

Fondamentalmente, più importante dello stato, si desidera modificare lo stato dell'ordine da Revisione pagamento => Elaborazione. Non ho incasinato così tanto, ma cerco una transizione di stato tra questi due, e poi manterrò "ok per spedire" in elaborazione. Per quanto riguarda il processo, usa 2 passaggi per passare da Fraud -> Processing -> Okay to Ship e risparmiare un po 'di complessità. –

3

solo far notare che da quando Magento ha permesso di editing stati da interfaccia di amministrazione (1,5 versione credo), XML stati configurazione è diventato obsoleto. Ora l'unica configurazione rilevante è nelle tabelle di stato sales_order_status e sales_order_status.

Se si desidera aggiungere nuovi solo modificare il phpmyadmin tabelle depressione (è anche possibile farlo programmaticaly attraverso script di installazione http://www.techytalk.info/programmatically-add-new-order-state-and-status-in-magento/)

Problemi correlati