Magento 1.9 проверьте, получил ли заказ отправку


Я хочу загрузить определенный блок в транзакционное электронное письмо только после отправки заказа. Я хочу загрузить блок, купить, используя следующий код:

{{block type='core/template' area='frontend' template='email/order/invoiceemailhead.phtml' order=$order}}

Я уже использую этот шаблон для проверки метода оплаты, но с использованием;

<?php if($this->getOrder()->getPayment()->getMethodInstance()->getCode()=='cashondelivery'):?>

Как я могу также проверить, отправлен ли заказ? Какой код мне для этого нужен?

Author: JGeer, 2017-09-01

2 answers

Попробуйте использовать приведенный ниже код, чтобы проверить, отправлен ли заказ.

<?php $hasShipment = $this->getOrder()->getShipmentsCollection()->count();
if($hasShipment){
    .... // Do your stuff
}
?>
 3
Author: Jaimin Sutariya, 2017-09-01 23:27:00

Если вы хотите проверить, полностью ли отправлен заказ, может помочь следующая функция:

/**
 * @param Mage_Sales_Model_Order $order
 * @return boolean
 */
protected function isOrderCompletelyShipped(Mage_Sales_Model_Order $order)
{
    foreach ($order->getAllItems() as $item) {
        if ($item->getParentItemId()) {
            continue;
        }
        if ($item->getQtyShipped() !== $item->getQtyOrdered()) {
            return false;
        }
    }
    return true;
}
 0
Author: ahe_borriglione, 2020-09-10 10:31:55