1


1

Magentoで注文の1つのアイテムをプログラムで出荷およびコメントする

プログラムで注文の請求、発送、および状態を設定する方法があることは知っています(http://www.magentocommerce.com/boards/viewthread/74072/)注文の。 アイテムの種類に応じて、2つの異なるアイテムを2つの異なる場所で(同じ注文から)処理できる状況があります。 Magentoバックエンドに移動して、一方のアイテムを「出荷」せずに1つのアイテムに「出荷」し、その1つのアイテムにコメントを追加できますが、プログラムでこれを行う方法を探しています。 ご協力ありがとうございます。

更新:これを達成するために最終的に使用したコードは次のとおりです。

$client = new SoapClient('http://somesite.domain/magento/index.php/api/?wsdl');
$session = $client->login('username', 'password');

function extract_item_id($items, $sku ){
    foreach($items as $item ){
        if ($item["sku"]==$sku) {
            return $item["item_id"];
        }
    }
}

$orderNum = "200000052";

$oderInfo = $client->call($session, "sales_order.info", $orderNum );

$item_id = extract_item_id($oderInfo["items"], "someSKU") ;
$itemsQty = array( $item_id => "1" );
$shipment = array(
    $orderNum,
    $itemsQty,
    "Comment associated with item shipped.",
    true,
    true
);

var_dump($shipment);

$nship = $client->call($session, 'sales_order_shipment.create', $shipment);

1 Answer


3


私はそれをやったことがありませんが、SOAP API http://www.magentocommerce.com/wiki/doc/webservices-api/api/sales_order_shipment#sales_order_shipment.info [個々の出荷アイテムの作成をサポート]のように見えます。 それが私がチェックする最初のものです。

それがうまくいかない場合は、Magento管理者のソースコードを調べて、1つのアイテムの出荷を作成するための処理をリバースエンジニアリングします。 具体的には、管理者のShipment Controllerの「saveAction」でトレースを開始します

app/code/core/Mage/Adminhtml/controllers/Sales/Order/ShipmentController.php

Magentoコードベースの注文/発送/請求セクションは、最も揮発性/反復的なセクションの1つであり、コアオブジェクト/メソッド/依存関係はバージョン間で微妙に変化します。 これに対する「正しい」答えを1つ見つけることは、不可能ではないにしても、難しいことがわかります。