Magento - 从增量ID获取订单ID

Lat*_*san 12 magento

你如何获得的订单标识从Magento的阶增量标识

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

$product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234');
Run Code Online (Sandbox Code Playgroud)

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

Lai*_*zer 34

在Magento模型中,load方法可以采用可加载的属性的可选第二个参数.因此,在您的情况下,以下应该工作:

   $order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');
   $id = $order->getId();
Run Code Online (Sandbox Code Playgroud)

在更复杂的情况下,例如,您希望通过字段组合加载的位置,您可以加载集合,并获取集合的第一个元素.在你的情况下,你这样做:

   $order = Mage::getModel('sales/order')->getCollection()
      ->addFieldToFilter('increment_id', $increment_id)
      ->getFirstItem();
Run Code Online (Sandbox Code Playgroud)


小智 19

您可以从IncrementId加载订单.

$orderIncrementId = "1000001";
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
echo $order->getId();
Run Code Online (Sandbox Code Playgroud)


Muf*_*dal -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'];
Run Code Online (Sandbox Code Playgroud)

  • 你好,SQL 注入。(顺便说一句,-1) (5认同)
  • @StefanBrendle - 尝试我的示例http://pastebin.com/gtpDbsbR - 这会自动使用表前缀。 (2认同)