Cảm ơn câu trả lời @medmek và @ prince-patel. Như câu hỏi từ @ jafar-pinjar liên quan đến trạng thái đơn hàng tùy chỉnh, các cuộc gọi setState và setStatus có thể nhận Mã trạng thái. Ví dụ: mã trạng thái tùy chỉnh "đã thanh toán" được tạo. Để cập nhật trạng thái / trạng thái cho một đơn đặt hàng:
...
use \Magento\Sales\Api\OrderRepositoryInterface;
class nameOfTheClass {
...
protected $_orderRepository;
...
public function __construct(..., OrderRepositoryInterface $orderRepository, ...){
$this->_orderRepository = $orderRepository;
...
}
...
public function setOrderStatus($orderID, $statusCode){
try{
// obtain the order with the order ID
$order = $this->_orderRepository->get($orderID);
$order->setState($statusCode)->setStatus($statusCode);
$this->_orderRepository->save($order);
return true;
} catch (\Exception $e){
// add some logging here
return false;
}
}
...
}
Để cập nhật trạng thái đơn hàng:
$orderID = 1234; // this is the order ID
$code = 'paid';
$this->setOrderStatus($orderID, $code);
Hy vọng rằng sẽ giúp được ai đó ngoài kia.