Magento-从增量id获取订单id

Magento-从增量id获取订单id,magento,Magento,如何从magento获得订单增量Id 我可以使用以下方法从SKU获取产品id: $product_id = Mage::getModel('catalog/product')->getIdBySku('ABCD1234'); 上面的示例让我只获取产品的数据库实体_id,而无需加载所有内容。我想为order实现同样的效果。在Magento模型中,load方法可以采用可选的第二个参数,即加载的属性。 因此,在您的情况下,以下方法应该有效: $order = Mage::getModel

如何从magento获得订单增量Id

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

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

上面的示例让我只获取产品的数据库实体_id,而无需加载所有内容。我想为order实现同样的效果。

在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();

如果您只想获取order\u id,那么只需使用mysql查询,如果您想在for循环中获取order\u id,它不会加载整个order对象,而且速度非常快,您不需要加载order对象模型

$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'];

您可以从增量ID加载订单

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

这不会加载整个订单吗?我需要在一个for循环中对几个订单执行此操作,我担心这可能会由于高db负载而导致性能下降。有没有一种轻量级的加载订单id的方法?如果你只需要id,那么@Mufaddal的方法会更轻量级。太棒了,这就是我想要的。顺便说一句,为什么“core_write”,在我们只做select的时候,core_读得还不够吗?我对上面的示例代码做了一个稍微优化的版本(确认有效):。再次感谢。@StefanBrendle-试试我的例子-这会自动处理表前缀。永远不要直接在数据库中运行查询,坏例子Hello SQL Injection。(-1顺便说一下)