作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获取给定订单的所有未发货商品。
假设我有一个部分发货的订单,我想检索所有待发货的商品。
类似于:
$collection = Mage::getModel('...')->getCollection()
->Add...()
最佳答案
要获取订单的所有商品,请使用商品集合:
$order = Mage::getModel('sales/order')->load($orderId);
$orderItems = $order->getItemsCollection();
然后使用发货模型获取订单的所有商品:
$shippedItems = Mage::getModel('sales/order_shipment')
->setOrder($order)->getItemsCollection();
Edit2:事实证明,在货件上设置订单对于获取项目集合不起作用,因为一个订单可能有多个货件。请改用下面提供的代码片段。
编辑:我忘记了可能会有多次发货,所以这里是获取订单商品的所有 ID 和已发货商品的所有 ID 的完整工作代码:
$orderId = 15;
$order = Mage::getModel('sales/order')->load($orderId);
$orderItems = $order->getItemsCollection();
$allOrderItemIds = $orderItems->getAllIds();
$shipments = $order->getShipmentsCollection();
$shippedItemIds = array();
foreach ($shipments as $shipment) {
$shippedItems = $shipment->getItemsCollection();
foreach ($shippedItems as $item) {
$shippedItemIds[] = $item->getOrderItemId();
}
}
var_dump($allOrderItemIds);
var_dump($shippedItemIds);
关于php - Magento:未发货的项目集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13970642/
我是一名优秀的程序员,十分优秀!