Domanda

Usando Magento EE 1.9, ho abilitato i backorder, ma non c'è modo di vedere se un ordine contiene elementi in backorder nella vista Grid di vendita / ordini.

Come dovrei controllare se un articolo è stato in backorder o meno dopo che un ordine è stato inserito?

(le soluzioni basate su codice vanno bene.)

È stato utile?

Soluzione

Qualcosa come questo forse:

    $items = array();
    $order = Mage::getModel('sales/order')->load($orderId);
    $orderItems = $order->getAllVisibleItems();

    foreach ($orderItems as $orderItem) {
        $sumBackordered = 0;
        $children = array();

        if ($orderItem->getHasChildren()) {
            foreach ($orderItem->getChildrenItems() as $childItem) {
                $sumBackordered += (float)$childItem->getQtyBackordered();
                $children[] = array(
                    'name'              => $childItem->getName(),
                    'qty_backordered'   => (float)$childItem->getQtyBackordered()
                );
            }
        }

        $items[] = array(
            'name'              => $orderItem->getName(),
            'qty_backordered'   => $orderItem->getHasChildren() ? $sumBackordered : (float)$orderItem->getQtyBackordered(),
            'children'          => $orderItem->getHasChildren() ? $children : null
        );
    }

    Zend_Debug::dump($items);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top