Marque un pedido de Magento como completo mediante programación

Estoy tratando de marcar un pedido de "Procesamiento" como Completo cuando recibo cierta respuesta de un servicio de terceros. Tengo todo configurado para esto, pero el único problema es que los pedidos se mantienen en el estado Procesando.

Estoy generando una factura (aunque no creo que necesite esto, ya que cada artículo está marcado como "facturado" en el backend de Magento) y un envío como este:

$order = Mage::getModel('sales/order')... (etc)
$shipment = $order->prepareShipment($quantities);
$shipment->register();
$shipment->setOrder($order);
$shipment->save();

$invoice = $order->prepareInvoice($quantities);
$invoice->register();
$invoice->setOrder($order);
$invoice->save();

Esto no parece estar haciéndolo, sin embargo, no recibo errores de este código, pero el pedido permanece como procesamiento. En el backend todavía puedo ver el botón "Enviar" en la parte superior del pedido, y cada artículo está en el estado "facturado".

Algún consejo sería de gran aprecio

Respuestas a la pregunta(12)

Su respuesta a la pregunta