Magento我如何以编程方式发送订单?

snh*_*_nl 7 php magento magento-1.5

我正在寻找一些代码添加MassAction到Magento并发货并完成多个订单sales_order/index

不知何故订单没有发货.

看起来(完全正常的顺序)没有通过canship()测试.它应该被中国率先$order$orderid

这是我的代码

//Get orderids
$orderIds = $this->getRequest()->getPost('order_ids');

//verify if the array is not empty
if (!empty($orderIds)) {
//loop through orders
foreach ($orderIds as $orderId) {

// Dont know what this does
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);

// Is the order shipable?
if($order->canShip())
{
$itemQty =  $order->getItemsCollection()->count();
// This first definition and 2nd look overlapping, our one is obsolete?
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($itemQty);
$shipment = new Mage_Sales_Model_Order_Shipment_Api();

// But still, no shipment, why?
$shipmentId = $shipment->create($orderId, array(), 'Shipment created through ShipMailInvoice', true, true);
Run Code Online (Sandbox Code Playgroud)

Sha*_*lly 6

您需要按ID加载,如果获得orderID,或者通过IncrementOrderId加载,则实际获得Order incrementId.

用这个:

$ order = Mage :: getModel('sales/order') - > load($ orderId);

让我们知道它是否有效.

然后 :

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

试试吧.