Magento:在新订单电子邮件中获取产品延期订购数量

Magento:在新订单电子邮件中获取产品延期订购数量,magento,Magento,我正在尝试将缺货产品的数量添加到新订单电子邮件中出现的电子邮件模板中 到目前为止,我已经设法得到了产品,但我似乎无法得到它的数量。我试过各种方法,但似乎都不管用。以下是我的最新尝试: 文件是app/design/frontend/base/default/template/email/order/items/order/default/phtml <?php // 1. Get Qty of Product in Store. // 2. Get Qty of prod

我正在尝试将缺货产品的数量添加到新订单电子邮件中出现的电子邮件模板中

到目前为止,我已经设法得到了产品,但我似乎无法得到它的数量。我试过各种方法,但似乎都不管用。以下是我的最新尝试:

文件是app/design/frontend/base/default/template/email/order/items/order/default/phtml

<?php 
    // 1. Get Qty of Product in Store. 
    // 2. Get Qty of product from order
    // 3. IF qty from order > qty in store then get number over
    // 4. Display number over

    $_sku = $this->getItem()->getSku();
    $_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $_sku);
    //print_r($_product);
    echo 'qty in shop: '.$qtyInStock = $_product->getStockItem()->getQty(); //debugging
    echo 'qty ordered: '.$qtyOrdered = $_item->getQtyOrdered()*1; //debugging
?>

<?php if($qtyOrdered > $qtyInStock): $back_order = $qtyOrdered - $qtyInStock; ?>
    <p>* This product is not available in the requested quantity. <?php echo $back_order; ?> of the item(s) will be backordered.</p>
<?php endif; ?>
非常感谢您的帮助

Billy找到了一个解决方案:

$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $_sku);
$stock_count = (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
看起来很迂回,但它确实起作用了

请随意提出更好的建议

$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $_sku);
$stock_count = (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();