2014-06-09 10 views

risposta

8

La domanda era solo per scopo di condivisione delle conoscenze.

Si può capire alcuni punti da Ref_Link

// $order_id = Order ID 
$_order = Mage::getModel('sales/order')->load($order_id); 

if($_order->canShip()) 
{   
    $shipmentId = Mage::getModel('sales/order_shipment_api')->create($_order->getIncrementId(), $itemsarray ,'your_comment' ,false,1); 
    echo $shipmentId; // Outputs Shipment Increment Number 
    $trackmodel = Mage::getModel('sales/order_shipment_api') 
    ->addTrack($shipmentId,'your_shipping_carrier_code','your_shipping_carrier_title','carrier_tracking_number'); 
} 

$itemsarray = formato spiegato qui Ref_link
questo è tutto!
Un frammento di codice semplice.
Spero che aiuti qualcuno.

+0

Si noti che $ shipmentId è in realtà l'ID di incremento della spedizione – kmdsax

1

La risposta accettata è corretta e ha funzionato per me su CE 1.9, ma ho voluto espanderci.

Non è necessario preoccuparsi del parametro $itemsQty, è possibile passare un array() vuoto o lasciarlo fuori completamente. È un parametro facoltativo e il metodo prepareShipment() in app\code\core\Mage\Sales\Model\Service\Order.php verificherà i dati e eseguirà una ricerca, se necessario.

Se si desidera includere il numero di tracciamento nell'e-mail di spedizione, assicurarsi di aggiungere prima il rilevamento e quindi utilizzare Mage::getModel('sales/order_shipment_api')->sendInfo($shipmentIncrementId).

Snippet di codice:

 $shipmentApi = Mage::getModel('sales/order_shipment_api'); 

     //pass false for email, unless you want Magento to send the shipment email without any tracking info 
     //could also be written as $shipmentIncrementId = $shipmentApi->create($order->getIncrementId()); 
     $shipmentIncrementId = $shipmentApi->create($order->getIncrementId(), array(), '' , false, 0); 

     //add tracking info ($shippingCarrier is case sensitive) 
     $shipmentApi->addTrack($shipmentIncrementId, $shippingCarrier, $shippingTitle, $trackingNumber); 

     //send shipment email with tracking info 
     $shipmentApi->sendInfo($shipmentIncrementId); 

creare() firma del metodo:

public function create($orderIncrementId, $itemsQty = array(), $comment = null, 
               $email = false, $includeComment = false) 

Vedi app\code\core\Mage\Sales\Model\Order\Shipment\Api.php per tutti i metodi.

Problemi correlati