Форум 1С-Битрикс

Задавайте свои вопросы и отвечайте на вопросы других участников форума

Страницы: 1
Ответить
Как сделать, чтобы была возможность отправлять заказ в шиптор, даже если отгрузка не разрешена
 
Необходимые условия для передачи заказа в Shiptor:
- заказ разрешен к доставке.
- заказ не был ранее отгружен. Отсутствует трекинг номер от Shiptor и не установлен статус отгрузки Отгружен.
- статус «оплачено» для заказа БЕЗ наложенного платежа (онлайн оплата). Или неоплачено для заказов с наложенным платежом
Модуль не позволяет отправлять заказы в шиптор если заказ не разрешен к доставке
Изменено: Александр Воронин - 03.09.2019 20:00:12
 
Стандартного функционала для этого нет. Если только дорабатывать программно.

Необходимо в init.php разместить событие OnSaleOrderSaved, в котором изменять флаг доставки на разрешено. При этом проверить условие, что доставка та, которая вам нужна.  Данное событие происходит в конце сохранения, когда заказ и все связанные сущности уже сохранены.

use Bitrix\Main;
Main\EventManager::getInstance()->addEventHandler(
   'sale',
   'OnSaleOrderSaved',
   'OnSaleOrderSavedHandler'
);

function OnSaleOrderSavedHandler(Main\Event $event)
{
   /** @var Order $order */
   $order = $event->getParameter("ENTITY");
   $oldValues = $event->getParameter("VALUES");
   $isNew = $event->getParameter("IS_NEW");
   $shiptor_id = array(211, 216, 212);

if ($isNew)
{

$shipmentCollection = $order->getShipmentCollection();
foreach ($shipmentCollection as $shipment)
{
    if (!$shipment->isSystem())
{
$originalDeliveryId = $shipment->getDeliveryId();

if(in_array($originalDeliveryId, $shiptor_id)){

$shipment->allowDelivery();
$shipment->setField('DEDUCTED', 'N');
$order->setField('STATUS_ID', 'N');

$order->save();

}
}
}
}
}
Страницы: 1
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Отправить Отменить