Categories: Magento

Magento, elenco stati di avanzamento ordine

Reading Time: < 1 minuteAggiungi ai preferiti

In Magento può essere utile estrarre l’elenco degli stati di avanzamento dell’ordine.
Con il codice seguente estraiamo etichette e valori

 

$collection = Mage::getModel('sales/order_status')
->getResourceCollection()
->getData();

Con questo foreach estraiamo il contenuto dell’array

foreach ($collection as $co):
echo $co['status']; //valore
echo $co['label']; //etichetta
endforeach;

Citando da https://www.riccardotempesta.com/modificare-lo-stato-ordine-di-magento/ riportiamo la differenza esistente in Magento tra “state” e “status”.
Lo “state” è lo stato “interno” di Magento, ovvero lo stato di avanzamento dell’ordine:

  • new
  • pending
  • pending_payment
  • processing
  • complete
  • closed
  • canceled

Uno “state” ha uno o più “status” associati ed almeno uno “status” di default. Gli “status” possono essere aggiunti, modificati o rimossi dall’utente e sono da intendere come delle “specializzazioni” di uno “state”.
Possiamo ad esempio ipotizzare che lo state “processing” debba essere diviso in vari passaggi:

  • Ordine passato al magazzino
  • Merce verificata
  • Pronta per la spedizione

I vari passaggi sono appunto gli “status”.

E’ bene conoscere questo meccanismo perché la modifica dello “state” ha ripercussioni sullo “status”, è ovvio che nell’esempio fatto non potremo avere uno “state” impostato a “new” e uno “status” impostato a “Merce verificata”.

A livello di codice è possibile alterare lo stato ordine utilizzando la chiamata “setState” della classe “Mage_Sales_Model_Order”:

$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
$order
 ->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true)
 ->save();

Le costanti degli “state” sono:

  • new: Mage_Sales_Model_Order::STATE_NEW
  • pending: Mage_Sales_Model_Order::STATE_PENDING
  • pending_payment: Mage_Sales_Model_Order::STATE_PENDING_PAYMENT
  • processing: Mage_Sales_Model_Order::STATE_PROCESSING
  • complete: Mage_Sales_Model_Order::STATE_COMPLETE
  • closed: Mage_Sales_Model_Order::STATE_CLOSED
  • canceled: Mage_Sales_Model_Order::STATE_CANCELED
wallaceer

Recent Posts

Esclusione di prodotti da una regola a catalogo in Magento 2

Reading Time: < 1 minute Esclusione di una serie di prodotti selezionati tramite l'apposito menù…

2 anni ago

Traduzione di testo con googletranslate

Reading Time: < 1 minute Nel video che vedete di seguito, a titolo di esempio,…

2 anni ago

Restart di php-fpm con capistrano dopo un deploy

Reading Time: 2 minutes Vediamo come è possibile fare il restart di php-fpm con capistrano…

3 anni ago

Manifesto per lo Sviluppo Agile di Software

"Stiamo scoprendo modi migliori di creare software,sviluppandolo e aiutando gli altri a fare lo stesso.Grazie…

3 anni ago

Security patch for Shopware 6

Shopware ha rilasciato una security patch in grado di colmare alcune lacune di sicurezza per…

3 anni ago

E-commerce ed omnicanalità

Il tema e-commerce ed omnicanalità ha sostituito l'ormai obsoleta multicanalità, vediamo di cosa si tratta.…

3 anni ago