Magento - 按位置对PDF发票产品进行排序

时间:2017-12-18 12:11:06

标签: php magento pdf stock invoice

我正在为PDF发票制作Magento 1的解决方案。我们希望发票显示按stock_location排序的产品。我们所有的位置都以字母A,B,C等开头。然后是一些数字。

我希望发票能够按字母表显示产品,因此当我们找到从A到Z开始的产品时,您就知道了从上到下。我只是想弄清楚如何解决这个问题?

foreach ($invoice->getAllItems() as $item){
    if ($item->getOrderItem()->getParentItem()) {
        continue;
    }
    /* Draw item */
    $this->_drawItem($item, $page, $order);
    $page = end($pdf->pages);
}

其他任何人都想要这个,也许有一个线索我应该去哪里? :)

  • 谢谢您的时间。

2 个答案:

答案 0 :(得分:0)

我不知道怎么能在Magento做到这一点,但我分享一些想法,你怎么能用PHP做到这一点尝试.hope它会对你有帮助

$response[] = array(
                        'product_id' => $stock->product_id,
                        'product_name' => $stock->product_name,
                        'stock_id' => $stock->stock_id,
                        'stock_location' => $stock->stock_location,

                        );
                    }

                foreach ($response as $rec) {
                    $stock_location[] = $rec['stock_location'];
                    $title[] = strtolower($rec['product_name']);
                }
                //print_r($stock_location);

                array_multisort($stock_location, SORT_ASC, SORT_NUMERIC, $title, SORT_ASC, SORT_STRING, $response);

                print_r($response);

答案 1 :(得分:0)

找到解决方案:

$items = $invoice->getAllItems();
        $sortedItems = array();

        foreach ($items as $item) {
            $prod = Mage::getModel('catalog/product')->load($item->getProductId());
            $sortedItems[$prod->getStockLocation()] = $item;
        }

        ksort($sortedItems);

        foreach ($sortedItems as $item){
            if ($item->getOrderItem()->getParentItem()) {
                continue;
            }
            /* Draw item */
            $this->_drawItem($item, $page, $order);
            $page = end($pdf->pages);
        }