Shipping Api - обновление данных по доставке в заказах

Вопрос по item'ам в заказе

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 shandy
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 16.01.2012

16.01.2012 12:38

В общем есть такая задача - по крону считывать csv файлы и обновлять статусы у заказов (ордеров).
У файла есть такие поля:
order_number,
order_item_id,
date_shipped,
comment (usually null),
send_email_flag (usually 1),
include_comment (usually 0)
carrier_code (right now only UPS),
tracking_title (usually null)
tracking_number


Используя Shipping Api делаю примерно так:
$order = Mage::getModel('sales/order');
                $order->loadByIncrementId($orderId);
                $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true);
                $order->save();

                $carrier = "dhl";
                $title = "DHL";
                $trackNumber = '538099';
                $itemsQty = $order->getItemsCollection()->count();

                $shipment =Mage::getModel('sales/service_order',$order)->prepareShipment($itemsQty);
                $shipment = new Mage_Sales_Model_Order_Shipment_Api();
                $shipmentId = $shipment->create($orderId);


                $shipment->addTrack($shipmentId,$carrier,$title,$trackNumber);
                $order->addStatusToHistory('processing', 'Order is being processed', false);


Проблема в том, что csv файлах на каждый item в заказе своя строчка:
200179750,2,"2012-01-03 10:00:58",,1,0,UPS,NULL,1Z1041VEPT44486127
200178569,1,"2012-01-03 10:03:12",,1,0,UPS,NULL,1Z4035E20340946886
200178569,2,"2012-01-03 10:03:12",,1,0,UPS,NULL,1Z4035E20340946886
200178569,3,"2012-01-03 10:03:12",,1,0,UPS,NULL,1Z4035E20340946886
200178737,1,"2012-01-03 10:04:41",,1,0,Basic,NULL,1ZX4039FPT41336973
200178737,2,"2012-01-03 10:04:41",,1,0,Basic,NULL,1ZX4039FPT41336973
200178780,9,"2012-01-03 10:04:46",,1,0,UPS,NULL,1Z4035E20342379674

Собственно вопрос такой: Можно ли обрабатывать item'ы в заказах отдельно? Ну например заказано было 3 товара, но сегодня отгружено со склада было только 2, а 3 был отправлен на следующий день (следовательно и трек номер у него будет другой).
Сам в мадженте уже не новичек, но Shipping Api использую первый раз...

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

16.01.2012 12:43

Какое конкретное действие вы обозначаете термином «обрабатывать»?

#3 shandy
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 16.01.2012

16.01.2012 13:05

Ну, например, создать $shipment для нескольких (не всех) item'ов в ордере, чтобы добавить им разный трек номер или дату отгрузки...

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

16.01.2012 13:11

Можно.
Посмотрите, как работает стандартная функция multishipping.

#5 shandy
  • Группа: Пользователь
  • Сообщений: 3
  • Регистрация: 16.01.2012

16.01.2012 13:32

Это вот тут Mage_Checkout_Model_Type_Multishipping что-ли?
Ещё нашел вот такое апи - Mage_Sales_Model_Order_Shipment_Api_V2 - чем оно от старого отличается??
Если я передам в метод create($orderIncrementId, $itemsQty) - $itemsQty = array(1,2,5), то есть масив item'ов я получу Shipment только на них?

Поделиться темой: