【问题标题】:How to Programatically cancel order in magento 2如何在magento 2中以编程方式取消订单
【发布时间】:2021-12-13 13:48:00
【问题描述】:

如果客户订购了 3 种不同数量的不同商品,例如

  1. 衬衫 2 件
  2. 观看 1 件
  3. 裤子 3qty

并在不同的时间取消订单项目我必须将状态设置为订单取消

这是我的代码,谁能告诉我哪里错了

if (isset($_POST['order'])) {
         $_orderCollectionFactory = $objectManager->create('\Magento\Sales\Model\ResourceModel\Order\CollectionFactory');

     $collection = $_orderCollectionFactory->create()

             ->addFieldToSelect('*')
             ->addFieldToFilter('status', ['neq' => 'cancelled']); 
foreach ($collectionFactory as $order)
        {
            $items = $order->getAllVisibleItems();
            foreach ($items as $items) {

                $totalitem = $totalitem + ($item['qty_canceled']);
                $itemcount = $order->getQtyOrdered();
               if ($itemcount == ($totalitem))
                 {
                    $order->setState("canceled");
                    $order->save();
                }

            }    
    }
}

【问题讨论】:

    标签: php magento2 programmatically


    【解决方案1】:

    我终于解决了上面代码的问题

     $_orderCollectionFactory = $objectManager->create('\Magento\Sales\Model\ResourceModel\Order\CollectionFactory');
    
         $collection = $_orderCollectionFactory->create()
                 ->addFieldToSelect('*')
                 ->addFieldToFilter('status', ['neq' => 'cancelled']); 
                 
    foreach ($collection as $order)
            {
                $items = $order->getAllVisibleItems();
                $totalitem=0;
                foreach ($items as $item) {
    
                //  echo '<pre>';print_r(get_class_methods($item));
                // die();
                     $totalitem = $totalitem + ($item['qty_canceled']);
                    $itemcount = $order->getQtyOrdered();
    
                    if ($itemcount == ($totalitem))
                     {
                        echo $order->getIncrementId();
                        $order->setState("canceled");
                        $order->setStatus("canceled");
                        $order->save();
                     }
                }    
        }
    

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多