2013-03-27 119 views
0

這是什麼意思?無效方法Mage_Sales_Model_Order_Shipment :: create

即時通訊嘗試以編程方式爲訂單創建貨件,因爲它在下面複製時拋出錯誤。

我的代碼:

if (!$order->canShip()) { 
      echo 'can not ship this order'; 
      return false; 
     } 

$itemQty = $order->getItemsCollection()->count(); 
$shipment = Mage::getModel('sales/service_order', $order) 
         ->prepareShipment($itemQty); 

$shipmentId = $shipment->create($order->getIncrementId(), $itemQty, 'Shipment created through ShipMailInvoice', true, true); 


錯誤是:

<b>Fatal error</b>: Uncaught exception 'Varien_Exception' with message 'Invalid method  Mage_Sales_Model_Order_Shipment::create(Array 
(
[0] =&gt; $orderId 
[1] =&gt; 8 
[2] =&gt; Royal mail Shipment 
[3] =&gt; 1 
[4] =&gt; 1 
) 
)' 
in /home/toesocks/public_html/lib/Varien/Object.php:569 
Stack trace: 
#0 /home/toesocks/public_html/product_scanning/v2/functions/orderDispatch.php(82):  Varien_Object-&gt;__call('create', Array) 
#1 /home/toesocks/public_html/product_scanning/v2/functions/orderDispatch.php(82):  Mage_Sales_Model_Order_Shipment-&gt;create('15300007141', 8, 'Shipment create...', true, true) 
#2 {main} 
    thrown in <b>/home/toesocks/public_html/lib/Varien/Object.php</b> on line <b>569</b><br  /> 

可能有人請解釋一下我這是什麼意思,爲什麼我會收到這個錯誤?

親切的問候
JEY

+0

Hi Rob,
if(!$ order-> canShip()){ echo'無法運送此訂單'; \t \t \t return false; } \t \t \t $ itemQty = $ order-> getItemsCollection() - > count(); $ shipment = Mage :: getModel('sales/service_order',$ order) - > prepareShipment($ itemQty); $ shipmentId = $ shipment-> create($ order-> getIncrementId(),$ itemQty,'ShipMailInvoice創建的貨件',true,true); – 2013-03-27 10:59:57

+0

@Rob,你的意思是用該代碼編輯問題?如果是的話,我編輯了這個問題。 – 2013-03-27 11:12:27

+0

很少有創建貨物的先決條件。你確定這些先決條件已經實現嗎? – oscprofessionals 2013-03-27 13:26:51

回答

0

你得到一個PHP錯誤,也不一定和Magento的一個。 Mage_Sales_Model_Order_Shipment沒有方法create()。你在問一些不存在的東西。

查看Mage_Sales_Model_Order_Shipment_Api::create()瞭解如何創建新貨件。

參見:In magento, how to add shipment and track number to order

您與Mage_Sales_Model_Order_Shipment::addItem()建立貨物,然後 「創造」 它Mage_Sales_Model_Order_Shipment::save()

+0

我想和貨物現在正在創建,但由於某種原因改變狀態是一個問題。即時通訊能夠通過管理員手動更改,但我無法自動更改它。 儘管如此,仍然感謝您指出。真正appriciate它 – 2013-03-28 09:09:12