2014-06-09 34 views

cevap

8

Soru yalnızca bilgi paylaşımı amaçlıydı.

Bir biçimi burada Ref_link
sne bu açıkladı = 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 bazı noktaları anlayabilir!
Basit bir kod parçacığı.
Birisi yardımcı olur umarım.

+0

$ shipmentId öğesinin aslında Gönderi Arttırma Kimliği olduğunu unutmayın. – kmdsax

1

Kabul edilen cevap doğru ve CE 1,9 için benim için çalıştı, ancak üzerinde genişletmek istedim.

$itemsQty parametresiyle uğraşmanıza gerek yok, boş bir array() geçirebilir veya tamamen dışarıda bırakabilirsiniz. Bu isteğe bağlı bir parametredir ve app\code\core\Mage\Sales\Model\Service\Order.php'daki prepareShipment() yöntemi bu verileri denetler ve gerekirse bir arama gerçekleştirir.

İzleme numarasını gönderi e-postasına eklemek istiyorsanız, önce izlemeyi eklediğinizden emin olun ve ardından Mage::getModel('sales/order_shipment_api')->sendInfo($shipmentIncrementId)'u kullanın.

Kod Parçacığı:

 $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); 

oluşturmak() yöntemi imzası:

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

tüm yöntemler için app\code\core\Mage\Sales\Model\Order\Shipment\Api.php bakınız.