有人可以指出我按字母顺序而不是时间顺序显示项目的正确方向吗?
我主要需要这个 pdf 发票(我已经修改了相当数量以满足我的需要,但我坚持这个)我确实意识到我可能需要完全改变发票的排序/订购方式,而不是就在pdf制作上。
通常,客户购物车和发票中的“订购物品”都是按时间顺序排列的,即它们被添加到购物篮时的时间顺序,但是我希望它们按 SKU 或描述/标题排序以帮助挑选。甚至按类别排序也是一种改进。
如果有人能帮忙解决这个问题,我会欣喜若狂,因为我在过去的两天里一直试图弄清楚这一点,但一无所获。
谢谢阅读。
哦,我使用的是 1.5 CE。再次感谢。
跟进:
我找到了在创建发票时对订单进行排序的代码:
<?php $_items = $this->getInvoice()->getAllItems()>
<?php $_i=0;foreach ($_items as $_item): ?>
<?php if ($_item->getOrderItem()->getParentItem()) continue; else $_i++; ?>
<tbody class="<?php echo $_i%2?'even':'odd' ?>">
<?php echo $this->getItemHtml($_item) ?>
<?php echo $this->getItemExtraInfoHtml($_item->getOrderItem()) ?>
</tbody>
<?php endforeach; ?>
并将其替换为:
<?php $_items = $this->getInvoice()->getAllItems() ?>
<?php $_sortedItems = array(); ?>
<?php foreach ($_items as $_item) : ?>
<?php $_sortedItems[$_item->getSku()] = $_item;?>
<?php endforeach;?>
<?php ksort($_sortedItems);>
<?php $i=0;foreach ($_sortedItems as $_item):?>
<?php if ($_item->getParentItem()) continue; else $i++;?>
<tbody class="<?php echo $i%2?'even':'odd' ?>">
<?php echo $this->getItemHtml($_item) ?>
<?php echo $this->getItemExtraInfoHtml($_item->getOrderItem()) ?>
</tbody>
<?php endforeach; ?>
然而,现在发票首先像它应该的那样产生例如 A,但它实际上只显示第一个项目。发票的其余部分是少项目!:(
我对在 adminhtml 中生成订单表的文件进行了非常相似的代码更改,并且运行良好!????使困惑??也许有人可以进一步帮助我?
进一步检查,很明显,剩下的单个可见项目实际上是一个简单的产品,而可配置的产品正在从发票中消失!???
_ 编辑 __
我已经解决了!
我只列出简单产品的原因是线索!而不是按 SKU 排序,我只是在上面的代码中使用 getName() 代替 getSKU 按名称对列表进行排序!!!:D