Buongiorno,
avrei bisogno di capire se qualcuno sul forum sa se esiste un' estensione che permetta di mostrare al cliente gli articoli da lui ordinati ma non ancora evasi, il tutto sotto forma di lista.
Ho cercato in Connect e atraverso Google ma non sono riuscito a trovare niente di questo genere.
Grazie
Max
Solved! Go to Solution.
Ciao,
la tua è una tipica esigenza di uno store B2B.
Non conosco un modulo però il seguente codice dovrebbe recuperare le informazioni che chiedi, vale a dire tutti gli elementi degli ordini in un certo stato che non sono stati ancora spediti completamente:
$filterStates = array(
Mage_Sales_Model_Order::STATE_NEW,
Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
Mage_Sales_Model_Order::STATE_PROCESSING,
Mage_Sales_Model_Order::STATE_HOLDED,
);
$pendingOrderItems = Mage::getModel('sales/order_item')
->getCollection()
->join(array('orders' => 'sales/order'), 'main_table.order_id=orders.entity_id', array('orders.entity_id', 'orders.increment_id'))
->addFieldToFilter('parent_item_id', array("null" => true))
->addFieldToFilter('orders.state', array('in' => $filterStates))
;
$pendingOrderItems->getSelect()
->where('qty_ordered > qty_shipped');
echo $pendingOrderItems->getSize().PHP_EOL;
foreach ($pendingOrderItems as $item) {
echo "Order (ID: {$item->getEntityId()} - Increment ID: {$item->getIncrementId()}) - Item (Product: {$item->getName()} - SKU: {$item->getSku()})\n";
}
Sta a te inserirlo in un modulo che ne mostri i risultati in My Account.
Un saluto.
In che senso? hai un esigenza differente rispetto al mostrare semplicemente lo stato dell'ordine?
Ciao,
la tua è una tipica esigenza di uno store B2B.
Non conosco un modulo però il seguente codice dovrebbe recuperare le informazioni che chiedi, vale a dire tutti gli elementi degli ordini in un certo stato che non sono stati ancora spediti completamente:
$filterStates = array(
Mage_Sales_Model_Order::STATE_NEW,
Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
Mage_Sales_Model_Order::STATE_PROCESSING,
Mage_Sales_Model_Order::STATE_HOLDED,
);
$pendingOrderItems = Mage::getModel('sales/order_item')
->getCollection()
->join(array('orders' => 'sales/order'), 'main_table.order_id=orders.entity_id', array('orders.entity_id', 'orders.increment_id'))
->addFieldToFilter('parent_item_id', array("null" => true))
->addFieldToFilter('orders.state', array('in' => $filterStates))
;
$pendingOrderItems->getSelect()
->where('qty_ordered > qty_shipped');
echo $pendingOrderItems->getSize().PHP_EOL;
foreach ($pendingOrderItems as $item) {
echo "Order (ID: {$item->getEntityId()} - Increment ID: {$item->getIncrementId()}) - Item (Product: {$item->getName()} - SKU: {$item->getSku()})\n";
}
Sta a te inserirlo in un modulo che ne mostri i risultati in My Account.
Un saluto.
Scusate il ritardo nella risposta, sono stato mio malgrado assente dal lavoro per un pò di tempo.
Si in effetti la mia è un'esigenza tipicamente B2B e ti ringrazio per la soluzione che mi hai proposto. Appena possibile, siamo ancor in fase di analisi, proverò il tuo codice.
Grazie ancora ad entrambi per la disponibilità