出荷される注文商品を 1 行ずつ読み取るインポート ファイルから Magento で出荷を作成していますが、出荷を作成して最初の商品を追加した後、問題が発生しています。私はこのような出荷を作成しています:
$itemsData = array(
'qtys' => array(
$orderItem->getId() => $importData['qty placed'],
)
);
$shipment = Mage::getModel('sales/service_order', $order)
->prepareShipment($itemsData['qtys']);
$shipment->addComment("Shipment created from shipment importer", false);
$shipment->register();
$shipment->getOrder()
->setIsInProcess(true);
$shipment->setShippingCost($shipCost);
if (isset($trackingNumber)) {
$this->addTrack($shipment, $importData); //this function adds the tracking data
}
if ($order->getCustomerEmail()) {
$shipment->setEmailSent(true);
$shipment->sendEmail(true, '');
}
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($shipment)
->addObject($shipment->getOrder());
$transactionSave->save();
$shipment->save();
これは最初のアイテムにはうまく機能しますが、複数のアイテムを含む出荷の場合、次のアイテムを出荷に追加できません. 次のようなアイテムを追加しようとしています:
//I first load the existing shipment
$shipItem = Mage::getModel('sales/order_shipment_item');
$shipItem->setShipment($shipment);
$shipItem->setOrderItem($orderItem);
$shipItem->setQty($qtyShipped);
$shipItem->register();
$shipment->addItem($shipItem);
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($shipment)
->addObject($shipment->getOrder());
$transactionSave->save();
$shipment->save();
管理画面の注文ビュー / 情報ページで、2 番目の項目に「出荷済み」ではなく「請求済み」と表示されたままです。[出荷] タブをクリックすると、合計数量が 2 ではなく「1」と表示されますが、それをクリックすると、詳細を表示するには、両方のアイテムがリストされています。だから、それはちょっと働いているように見えますが、実際にはそうではありません
すべてのアイテムが発送されるわけではないため、注文をロードしてすべてを発送済みとしてマークすることはできません。これをどのように機能させることができるかについてのアイデアはありますか? 前もって感謝します ;)