Выгрузка заказов в ЛК

У некоторых доставок реализована выгрузка заказов с сайта в личный кабинет транспортных компаний в ручном режиме.

Выгрузка происходи при изменении статуса заказа на тот, который указан в Настройка MegaPost параметр "Статус для выгрузки заказа по API" (если статус не указан, то выгрузка происходить не будет).

После успешной выгрузки* должен вернуться трек номер, который сохраняется в дополнительное свойство заказа "Номер отправления", который вы можете уже использовать в своих целях (например вывести в XSL-шаблоне и делать отправку клиенту)

Все логи выгрузки записываются в «Журнал событий»*, можно ознакомиться для анализа ошибок. *модуль доступен в редакции HostCMS.Бизнес, для младшей редакции смотрите файлы в директории /hostcmsfiles/logs/(текущая дата).log.csv

Выгрузка заказа сразу после создания заказа

Это нестандартный функционал, хук приведен для примера и стандартно должен работать, если что то не работает, то произведите тестирования кода со своим администартором сайта

— в корне сайта в файле bootstrap.php разместите следующий код:

class My_Shop_Order_Observer
{
  static public function onAfterProcessOrder($object, $args)
  {
    $oShop_Order = $object->getShopOrder();
    $oShop_Order_Before = clone $oShop_Order;

    $oShop_Order->shop_order_status_id = 123; // статус из настроек megapost
    $oShop_Order->save();
    
    $handler = Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System);
    $handler->shopOrderBeforeAction($oShop_Order_Before)->shopOrder($oShop_Order);
    
    MegaPost_Observer::onBeforeChangedOrder($handler, array('edit'));
  }
}

Core_Event::attach('Shop_Payment_System_Handler.onAfterProcessOrder', array('My_Shop_Order_Observer', 'onAfterProcessOrder'));

Last updated