php – 在使用可配置产品编辑订单后,通过increment_id检索Magento中的单个订单

前端之家收集整理的这篇文章主要介绍了php – 在使用可配置产品编辑订单后,通过increment_id检索Magento中的单个订单前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了Magento商店的一个有趣问题,该商店主要销售可配置产品.我有一些代码可以打包订单信息并将其发送到外部仓库,然后外部仓库完成订单.有了这个请求,我使用increment_id作为标识符.我们会定期向仓库询问订单是否已发货,如果报告已经发货,我们会通过increment_id检索Magento中的订单,并通过创建新货件来完成订单.

现在,这可以正常工作,直到订单被编辑.由于Magento处理可配置产品,编辑订单涉及取消当前订单并使用相同的increment_id重新创建它.随后,我基于increment_id的交互现在被打破了,因为当我做这样的事情时,似乎只检索到第一个(取消的)订单,因为increment_id不再是唯一的:

<?PHP
$order = Mage::getModel('sales/order')->loadByIncrementId(100000001);
?>

通常情况下,不可能有一个重复的increment_id,所以我希望Magento优先考虑’active’顺序,但事实并非如此.

现在,我找到了一种方法解决这个问题:

<?PHP
$orders = Mage::getModel('sales/order')
  ->getCollection()
  ->addAttributeToFilter('state',array('neq' => Mage_Sales_Model_Order::STATE_CANCELED))
  ->addAttributeToFilter('increment_id',100000001);

foreach ($orders as $order) {
  // Do what we need with the order
}
?>

但是,我有兴趣知道是否有办法从集合中获取一条记录,从而无需使用foreach.可以这样做吗?

使用getFirstItem()
$orders = Mage::getModel('sales/order')
  ->getCollection()
  ->addAttributeToFilter('state',100000001)
  ->getFirstItem();
原文链接:https://www.f2er.com/php/133071.html

猜你在找的PHP相关文章