Commerce: поделить один заказ на два по статусу наличия товара

Аватар пользователя Nick Fedchik

Есть такая типовая задача, надо решить под Commerce.
Пользователь оформляет заказ.
Из его выбора товаров, некоторые могут быть в наличии у продавца, некоторые надо заказывать у поставщика и ждать поставку (таких товаров в наличии нет, но на витрине это не отображается, скажем так что их статус - "Под заказ").
Надо разбивать заказ на два заказа этого же пользователя - те что "В наличии" в один заказ (быстрый), те что "Под заказ" - в другой заказ (долгий).
Автоматически.
Если в заказе товары только одного статуса - не делать разделение.

Идеи? Предложения?

Модули и темы:
Тип материала:
0 Thanks

Комментарии

Аватар пользователя Kvark
Kvark 6 лет назад

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

Аватар пользователя Nick Fedchik
Nick Fedchik 6 лет назад

lines в заказе больше 0 по определению (иначе корзина пустая).
Надо пробовать возможности Rules - правилами подсчитывать условие:
количество позиций статуса "Под заказ" >0
И
количество позиций статуса "В наличии" >0

ТО

сделать новый заказ с строками "Под заказ"
И
удалить из текущего заказа все строки "Под заказ"

Как то так... может кто-то уже пробовал - поделитесь.

Аватар пользователя Kvark
Kvark 6 лет назад
Nick Fedchik написал:
lines в заказе больше 0 по определению (иначе корзина пустая).

я иммел ввиду не количество позиций а количество товара - в крайнем случае ввести маркер - товар есть в наличии или нужно заказывать - следовательно в момент заказа проверять маркер и сответсвенно генерить список заказа, пусть даже в томже заказе выводить вторым списком - "заказанно, но нет в наличии"

Аватар пользователя Nick Fedchik
Nick Fedchik 6 лет назад

Количество товара, по опыту, не всегда проставляют, даже если он есть в наличии.
Лучше избежать такого учета в данной операции.

Вот еще в голову идеи пришли:
1) Две корзины. Одна для статусов "В наличии", другая "Под заказ". Но предположу что это круто трудозатратно.
2) Те товары, что "Под заказ", их добавлять не в корзину, а в отдельный список, типа "Ожидаю поставку". Все равно как бы аналог корзины, поскольку надо и пользователя регистрировать, и хранить и количество ожидаемых товаров, и атрибуты.
В обеих случаях по-правильному надо уведомить пользователя е-мейлом и предложить ему оформить заказ. Устаревшие списки "Ожидаю поставку" надо удалять.

Что скажете?

Аватар пользователя Andruxa
Andruxa 6 лет назад

я склоняюсь к отдельному полю "наличие" у product, чтобы не страдать со складским учётом в коммерце, настроить ему 2 значения - "на складе" и "под заказ"

возможно, при загрузке остатков в коммерц апдейтить это поле
или для товаров поставщика, ведущего учет в блокноте (инфы об остатках от него не добиться никогда) - всегда ставить значение "под заказ"

далее в представлении, формирующем содержимое корзины, группировать product по этому полю
а при чекауте - хуками создавать 2 order

Аватар пользователя Nick Fedchik
Nick Fedchik 6 лет назад

Мне кажется что для товаров "Под заказ" надо показывать цену, но прятать кнопку "Купить", взамен добавляя другую, "Заказать" или "Стать в очередь" (на покупку).
Так сразу отметутся варианты.
Сейчас исследую для этих целей возможности модулей Nodequeue и Flag (правда под Убером, но не суть важно).

Аватар пользователя Nick Fedchik
Nick Fedchik 6 лет назад

Называется такая фича Delayed Shipping.
«Allow the customer to split his order: one with the products currently "in stock", and another with the other products. This option will convert the customer's cart into two orders.»
Нашел её в PrestaShop, на нем же решил делать магазин - с Drupal/Commerce сильно большие заморочки.