Меню

Автоматически отгрузить заказ и сменить статус отгрузки, при выполнении заказа.

RSS
Автоматически отгрузить заказ и сменить статус отгрузки, при выполнении заказа.
 
Автоматически отгрузить заказ и сменить статус отгрузки, при выполнении заказа.

Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузками и обменивается только статусами: "Принят", "Оплачен" и "Выполнен". Но, по закону, после выполнения заказа нужно отправлять на печать второй чек (чек отгрузки). Что бы сайт напечатал второй чек- статус отгрузки заказа должен быть переведен в "Отгружено".
 
В заметке использовано старое событие, оно работает немного быстрее.
Но, тоже самое на D7

Код
\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'OnSaleStatusOrderChange', ['Handler', 'OnSaleStatusOrderChange']);
class Handler {
    function OnSaleStatusOrderChange($event)
    {
        $parameters = $event->getParameters();
        if ($parameters['VALUE'] === 'F')
        {
            Loader::includeModule("sale");
            $order = \Bitrix\Sale\Order::load($orderID);
            $collection = $order->getShipmentCollection()->getNotSystemItems();
            foreach ($collection as $shipment)
            {
                $shipment->setField('DEDUCTED', 'Y');
            }
            $order->save();
        }
        return new \Bitrix\Main\EventResult(
            \Bitrix\Main\EventResult::SUCCESS
        );
    }
}
 
Цитата
написал:
В заметке использовано старое событие, оно работает немного быстрее.
Но, тоже самое на D7

Код
 \Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'OnSaleStatusOrderChange', ['Handler', 'OnSaleStatusOrderChange']);
class Handler {
    function OnSaleStatusOrderChange($event)
    {
        $parameters = $event->getParameters();
        if ($parameters['VALUE'] === 'F')
        {
            Loader::includeModule("sale");
            $order = \Bitrix\Sale\Order::load($orderID);
            $collection = $order->getShipmentCollection()->getNotSystemItems();
            foreach ($collection as $shipment)
            {
                $shipment->setField('DEDUCTED', 'Y');
            }
            $order->save();
        }
        return new \Bitrix\Main\EventResult(
            \Bitrix\Main\EventResult::SUCCESS
        );
    }
} 

Выдаст ошибку, $orderID не определен
Изменено: Михаил Базаров - 25.07.2024 15:44:03
 
Да, само собой. Позже поправлю кооментарий свой, нужно получить ID заказа.
где-то в событии он должен быть.
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

ORM: Работа с пользователями через API D7 1С-Битрикс

Заметка написана на основе старого черновика, и все описанное было проверено на чистой установке 1С-Битрикс. Примеры раб...

Сравнение двух типов цен для иммитации системы скидок, в Битрикс

Встала задачка, иммититровать систему скидок в интернет магазине на Битрикс. Из 1С-УТ, на сайт, выгружается два типа цен...

Вывести артикул в печатную форму бланка заказа

Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе.

Кастомизация компонента восстановления пароля bitrix:system.auth.forgotpasswd

Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользователя. Типовая задача, это измени...

Показ страницы сайта в боковом слайдере, на примере всплывающей формы обратной связи.

Если вы хотите сделать подгрузку любой страницы сайта в боковой слайдер, для этого в битриксе есть метод BX.SidePanel.In...

Очистка корзины в 1С-Битрикс одним нажатием

В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием. Требуется это довольно редко,...

Объединить отдельные поля ФИО в одно свойство при оформлении заказа.

Пользователь, при оформлении заказа, заполняет три отдельных поля с фамилией, именем и отчеством. Нам нужно сохранить эт...

Номера страниц в Title и Description при постраничной навигации каталога

Задача: Часто SEO-специалисты просят добавить номер страницы, из постраничной навигации, в заголовок и описание раздела ...

Настройка: Redis кеширование для 1С-Битрикс, под Ubuntu

Задача: имеем полностью настроенный и оптимально сконфигурированный веб-сервер под управлением Ubuntu 20.04 на котором з...