我需要检查订单是否已经设置了一些货物.我可以使用的唯一数据是订单的增量ID.我正在获取模型订单的实例,但我没有看到我可以获得货运实例的方法.
我正在使用此代码:
$order = Mage::getModel('sales/order')
->loadByIncrementId($order_increment_id);
Run Code Online (Sandbox Code Playgroud)
但是我如何获得货运实例?我知道我可以打电话Mage::getModel('sales/order_shipment')->loadByIncrementId($shipment_increment_id)
但是如何获得货件增量ID?
Ala*_*orm 27
假设写这篇文章的人可能也需要做你需要做的事情.通常,当Magento对象具有一对多关系时,您可以找到一种方法来加载多个对象.
你有一个别名sales/order
.
这对应于Mage_Sales_Model_Order
(在库存安装中).
你可以找到这个课程app/code/core/Mage/Sales/Model/Order.php
.
如果你检查这个类,有7个方法,其中包含"ship"一词
function canShip
function setShippingAddress
function getShippingAddress
function getShip
function getShipmentsCollection
function hasShip
function prepareShip
Run Code Online (Sandbox Code Playgroud)
在这7个中,只有语义getShipmentsCollection
表示抓取订单的货物的方法.所以试试吧
foreach($order->getShipmentsCollection() as $shipment)
{
var_dump(get_class($shipment));
//var_dump($shipment->getData());
}
Run Code Online (Sandbox Code Playgroud)
或者看看源代码 getShipmentsCollection
public function getShipmentsCollection()
{
if (empty($this->_shipments)) {
if ($this->getId()) {
$this->_shipments = Mage::getResourceModel('sales/order_shipment_collection')
->setOrderFilter($this)
->load();
} else {
return false;
}
}
return $this->_shipments;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17064 次 |
最近记录: |