Я подготовил функцию, вызываемую во время массового действия.
/**
* Hold selected orders
*
* @param AbstractCollection $collection
* @return \Magento\Backend\Model\View\Result\Redirect
*/
protected function massAction(AbstractCollection $collection)
{
$countDeleteOrder = 0;
$model = $this->_objectManager->create('Magento\Sales\Model\Order');
foreach ($collection->getItems() as $order) {
if (!$order->getEntityId()) {
continue;
}
$loadedOrder = $model->load($order->getEntityId());
$loadedOrder->setState(\Magento\Sales\Model\Order::STATE_PROCESSING, true);
$loadedOrder->setStatus(\Magento\Sales\Model\Order::STATE_PROCESSING);
$loadedOrder->addStatusToHistory($order->getStatus(), 'Order processed successfully with reference');
$loadedOrder->save();
}
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($this->getComponentRefererUrl());
return $resultRedirect;
}
Однако, он устанавливает только состояние, так как статус не работает. Я пытаюсь изменить статус с нового на обработку, однако приведенный выше код не работает. Кто-нибудь может мне помочь?