Graças à resposta @medmek e @ prince-patel. Como pergunta de @ jafar-pinjar sobre o status do pedido personalizado, as chamadas setState e setStatus podem assumir o Código de Status. Por exemplo, o código de status personalizado "pago" é criado. Para atualizar o status / estado para um pedido:
...
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;
}
}
...
}
Para atualizar o status do pedido:
$orderID = 1234; // this is the order ID
$code = 'paid';
$this->setOrderStatus($orderID, $code);
Espero que ajude alguém lá fora.