小编CVM*_*CVM的帖子

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

我遇到了Magento商店的一个有趣问题,该商店主要销售可配置产品.我有一些代码可以打包订单信息并将其发送到外部仓库,然后外部仓库完成订单.有了这个请求,我正在使用它increment_id作为标识符.我们会定期向仓库询问订单是否已发货,如果报告已经发货,我们会通过Magento检索订单increment_id并通过创建新货件完成订单.

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

<?php
$order = Mage::getModel('sales/order')->loadByIncrementId(100000001);
?>
Run Code Online (Sandbox Code Playgroud)

通常情况下,重复increment_id是不可能的,所以我希望Magento优先考虑'主动'订单,但事实并非如此.

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

<?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
}
?>
Run Code Online (Sandbox Code Playgroud)

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

php magento

6
推荐指数
2
解决办法
2万
查看次数

Magento:检索未缓存的系统配置值

我有一个脚本,通过RESTful Web服务将订单数据发送到第三方系统.该系统要求每个请求都发送一个唯一的ID,该请求将从下一个请求中自动增加.

我已经通过在Magento core_config_data表中添加一个变量来实现这一点,并且作为我的代码的一部分,调用下面的函数来获取ID的下一个值,并为下一个请求递增它.

class MyProject
{
    public function getNextApiId() {
        // Get the next ID.
        $id = Mage::getStoreConfig('myproject/next_api_id');

        // Increment the stored value for next time.
        $nextId = $id + 1; // change $id++ by $id + 1 otherwise the result of $nextId = $id - 1;
        Mage::getModel('core/config')->saveConfig('myproject/next_api_id',$nextId);

        // Refresh the config.
        Mage::getConfig()->cleanCache();
        Mage::getConfig()->reinit();

        // Return the ID.
        return $id;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我用我的脚本发送一个请求,这很好 - 值递增,下一个ID用于下一次执行脚本.

但是,如果我在同一个脚本执行中的循环中处理多个请求,则该值似乎被缓存.下面的代码应该说明一般流程,尽管我为了简洁起见减少了它:

function sendRequest($item) {
    $apiId = $MyProject->getNextApiId();

    // Build and send request body …
Run Code Online (Sandbox Code Playgroud)

php magento

3
推荐指数
1
解决办法
3736
查看次数

标签 统计

magento ×2

php ×2