Magento - Cronjob за пределами magento для обновления статуса отгрузки - PullRequest
1 голос
/ 01 июля 2010

Я работаю над сценарием, который выходит за рамки magento и будет запрограммирован на получение всех отправлений и номера отслеживания.

После получения этих отгрузок и номера для отслеживания я проверю у поставщика услуг доставки и обновлю статус отгрузки и заказа, основываясь на том, отправлен ли он, отсканирован или доставлен.я застрял, </p> <pre><code><?php require_once 'app/Mage.php'; Mage::app('default'); $myShipment=Mage::getModel('sales/order_shipment'); $shipment=Mage::getResourceModel('sales/order_shipment_collection') ->addAttributeToSelect('*'); $allIds=$shipment->getAllIds(); foreach($allIds as $thisId) { $myShipment->load($thisId)->getAllTrackings(); echo "<pre>"; print_r($myShipment); echo "</pre>"; }

Пожалуйста, помогите,

Спасибо и С уважением, Saurabh

Ответы [ 2 ]

3 голосов
/ 04 июля 2010

После того, как отгрузка и счет-фактура созданы для заказа, ему присваивается статус «Выполнено».Не уверен, что вы хотите изменить там, но если в вашей установке magento настроены некоторые пользовательские статусы, вы можете использовать метод setStatus () класса заказа.

$myShipment->getOrder()->setStatus("YourCustomStatus");

Я не думаю, что отправления имеют статусы, но вы можете добавить комментарий к отправке, вызвав addComment ($ comment, $ notifyCustomer) , где первая переменная - строка, а вторая - bool.

$myShipment->addComment("01/01/2010 06:55, Out for delivery", true);

Вы также можете добавить комментарий к заказу, используя аналогичный метод:

$myShipment->getOrder()->addComment("01/01/2010 06:55, Out for delivery", true);
1 голос
/ 07 января 2011

Вы можете установить статус отправки - для него есть поле, для которого установлено значение NULL, когда вы запрашиваете через shipment.list API

Вот дамп:

Array
(
    [0] => Array
        (
            [store_id] => 1
            [total_weight] => 
            [total_qty] => 1.0000
            [email_sent] => 1
            [order_id] => 3
            [customer_id] => 1
            [shipping_address_id] => 6
            [billing_address_id] => 5
            [shipment_status] => 
            [increment_id] => 100000001
            [created_at] => 2010-11-11 15:41:41
            [updated_at] => 2010-11-11 15:44:05
            [shipment_id] => 1
        )

Не похоже, что вы можете установить его через WS API, а это значит, что вам нужно включить mage.php в ваш внешний скрипт, а затем обновить поставку через magento (как Silvo показало выше). Извините, у меня нет под рукой синтаксиса, но я подозреваю, что вы обновите его на основе идентификатора отправления, а не заказа. Это означает, что вам нужно сначала создать отправку (опять же, это можно сделать через API веб-сервисов с помощью метода shipment.create (подробности на той же странице, что и предыдущая ссылка).

Надеюсь, это направит вас на правильный путь. Если у кого-то есть рабочий код для этого (который привел меня к этому посту изначально), ПОЖАЛУЙСТА, не стесняйтесь поделиться. :)

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