12

您如何从 magento订单增量 ID获取订单ID ?

我可以使用以下方法从 SKU 获取产品 ID:

$product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234');

上面的示例让我只获取产品的数据库 entity_id 而无需加载所有内容。我想为订单实现相同的目标。

4

3 回答 3

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();
于 2013-05-20T13:54:59.850 回答
20

您可以从 IncrementId 加载订单。

$orderIncrementId = "1000001";
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
echo $order->getId();
于 2014-10-13T21:35:05.587 回答
-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'];
于 2013-05-21T04:14:47.163 回答