【发布时间】:2012-09-25 17:41:38
【问题描述】:
我正在努力使我们的装箱单和发票更有用,尤其是当我们捆绑产品时。
如何在发票中只显示父项而不显示子项?
当我使用$order->getAllItems() 时,我得到两行输出:
parent-child sku
child sku
如果我使用$order->getAllVisibleItems(),我只会得到父级,这就是我想要的。
Parent sku
现在invoice->getAllItems 产生两条线Parent-Child 和Child
但是invoice->getAllVisibleItems with 不会产生任何线条
所以它会在发票上显示 qty 和 amt 两次。对客户或包装商不利。
<?php
require_once '../mage1/app/Mage.php';
require_once('Zend/Pdf.php');
$app = Mage::app();
Mage::register('isSecureArea', true);
$orderId = '500000555' ;
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
foreach ($order->getAllVisibleItems() as $item){
echo 'ITEM: ' . $item->getSku() . '<br />';
}
//vs invoice
echo 'Invoice Section <br />' ;
if ($order->hasInvoices()) {
echo 'Order has invoices' . '<br />';
foreach ($order->getInvoiceCollection() as $_eachInvoice) {
foreach ($_eachInvoice->getAllVisibleItems as $invitem){
//foreach ($_eachInvoice->getAllItems() as $invitem){
//echo 'Object <br />';
var_dump(get_object_vars($invitem));
//print_r($invitem); echo '<br /><br /><br /><br />';
echo 'INVOICE ITEM: ' . $invitem->getSku() . '<br />';
}
}
} else { echo 'no invoices' ; };
?>
【问题讨论】:
-
我不确定这里的问题是什么。
-
我希望 getItemCollection 对发票的行为与对订单的行为相同,但事实并非如此。它返回父母和孩子。