如何从magento 订单增量ID 获得订单ID ?
我可以使用以下内容从SKU获取产品ID:
$product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234');
上面的示例让我只获取产品的数据库entity_id而不加载所有内容。我想为订单实现同样的目标。
答案 0 :(得分:34)
在Magento模型中,load方法可以选择要加载的属性的可选第二个参数。 因此,在您的情况下,以下内容应该有效:
$order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');
$id = $order->getId();
在更复杂的情况下,例如如果要通过字段组合加载,可以加载集合,并获取集合的第一个元素。在你的情况下,你会这样做:
$order = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('increment_id', $increment_id)
->getFirstItem();
答案 1 :(得分:19)
您可以从IncrementId加载订单。
$orderIncrementId = "1000001";
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
echo $order->getId();
答案 2 :(得分:-2)
如果你只想获取order_id,那么只需使用mysql查询,如果你想在for循环中使用order_id,它不会加载整个订单对象而且它非常快速,你不需要加载订单对象模型。
$write = Mage::getSingleton('core/resource')->getConnection('core_read');
$result=$write->query("SELECT entity_id FROM `sales_flat_order` WHERE `increment_id` = 'your increment id' ");
$row = $result->fetch();
echo $row['entity_id'];