+7 495 008 8452
  • Загрузка
Выберите ваш цвет

Алгоритм выделения некоторых товаров из заказа в новый (-е) заказы

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


До заказа корзины разбить не получится. По крайней мере точно геморнее (имхо). Я бы разбивал после создания заказа. И алгоритм мне видится примерно такой:

1. На вход подается ID уже созданного полноценного заказа.  Берем его arFields.
2. Бежим по его корзине и первый попавшийся товар оставляем в этом заказе (это будет заказ этих товаров). Следующий отличный товар запоминаем (его BASKET_ID), потом следующий, и так далее. У нас получился некий массив с пакетами товаров, где каждый пакет - один новый заказ.
3. Бежим по пакетам. Для каждого пакета создаем заказ на основе arFields п.1. Потом всем товарам этого пакета изменяем их ORDER_ID на новый.
4. Пробегаемся по всем заказам (в том числе и базовому) и пересчитываем цену на основе новой корзины.

Гемора добавляют скидки, налоги и прочее. Универсальное решение довольно громоздкое получится. Но подозреваю, что в частном случае все проще с этим и хватит схемы выше (добавить лишь применение скидок надо).

Еще открыт вопрос писем по заказу. Если они нужны, то дизаблим отправку на событии OnOrderNewSendEmail, а после п.4 пробегаемся по всем заказам и отправляем письма.  

 

 

Источник: http://dev.1c-bitrix.ru/community/forums/messages/forum7/topic55014/message289761/#message289761

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...