Программно отправлять и комментировать отдельные позиции заказа в Magento - PullRequest
1 голос
/ 23 августа 2010

Я знаю, что есть способ программно выставлять счета-фактуры, отправлять и устанавливать состояние заказа (http://www.magentocommerce.com/boards/viewthread/74072/),, но на самом деле мне нужно углубиться еще глубже до уровня позиции заказа. У нас есть ситуация, когда в зависимости от типа элемента, два разных элемента могут быть обработаны в двух разных местах (из одного и того же заказа) .Я могу зайти в бэкэнд Magento и «отправить» один элемент без «доставки» другого и добавить комментарии к этому. но я ищу способ сделать это программно. Заранее спасибо за помощь!

Обновление: Вот код, который я использовал для достижения этой цели:

$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 Ответ

3 голосов
/ 23 августа 2010

Я никогда не делал этого, но похоже, что SOAP API поддерживает создание отдельных отправляемых элементов . Это будет первое, что я проверю.

Если это не сработает, я изучу исходный код администратора Magento и перепроектирую, что он делает, чтобы создать отдельную поставку товара. В частности, начните трассировку с saveAction контроллера отгрузки администратора

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

Раздел «Заказ / отправка / счет-фактура» в кодовой базе Magento является одним из наиболее изменчивых / итеративных разделов, в которых базовые объекты / методы / зависимости слегка изменяются между версиями. Найти один «правильный» ответ для этого будет трудно, если не невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...