Суть проблемы: Если в заказе товар, которого больше нет в наличии - его невозможно переназначить для заказа, например, чтобы применить к товару акцию. Например, такая ситуация (сегодня, из жизни). У нас для гостей одна цена, для авторизованных - скидка на весь каталог. Покупательница зарегистрировалась, но не смогла войти в аккаунт (пароль забыла, с восстановлением случились проблемы). Поэтому оформила как гость. В процессе общения она всю эту ситуацию обрисовала, нахожу ее регистрацию, меняю в заказе. После этого естественно цена не меняется, так как не автоприменяются промоакции (и менять это в конфиге я не хочу!). Поэтому я удаляю товар из заказа, и снова пытаюсь его добавить… Ан нет - товара нет в наличии! Тогда приходится идти в товар, менять 0 на 1, в заказе его добавлять (и он ставится теперь с правильной ценой), сохранять заказ, снова идти в товар и менять 1 на 0!
Как воспроизвести проблему: Зайти в любой заказ с одним товаром, 1 единица товара в заказе. Открыть в соседней вкладке товар из заказа - поставить ему наличие - 0. Войти в редактирование заказа, (копируем артикул для простоты), удаляем товар, добавляем тот же самый товар - добавить его невозможно.
Между удалением товара и его добавлением обратно вы сам заказ сохраняли?
По идее это необходимое действие, чтобы остаток +1 добавился.
Не тестил, просто умничаю)
Я извиняюсь за настойчивость, но логику проблемы не пойму.
Если вы товар удалили.
Заказ при этом не сохранили, т.к. он пустой.
То товар в базу и не добавился.
Поэтому его снова в заказ добавить нельзя.
Система не понимает, что этот товар был в заказе, смотрит просто на остатки в базе.
Все норм.
И мы возвращаемся… ))) К тому давнему разговору, что процесс редактирования заказа у нас перемудрен. То есть, чтобы что-то изменить - нам надо войти в редактирование заказа, а потом войти в редактирование покупателя… А вот если просто в заказе повесить иконки редактирования на блоки? Надо отредактировать данные покупателя в заказе - открыл блок на редактирование, закрыл с сохранением. Надо отредактировать оплаты/доставку, или товарную часть - то же самое. А уж как удобно эти действия журналировать. А то простите запись в журнале - пользователь такой-то отредактировал заказ - ну вообще ни о чем не говорит.
Есть классный модуль от CS-Commerce, юзаю. От Экомов еще есть и и Ритейлов вроде.
Запугал манагеров, что все фиксируется - теперь не косячат)
Вы же знаете, что я всегда за доработки и улучшения.
Но в данном случае имхо как раз лучше не усложнять логику добавления/удаления товаров пока заказ не сохранен. Иначе потом еще больше багов выхватим)
Вот абсолютно согласен. Я и сам это все пишу и пытаюсь понять, как лучше. Как у вас сейчас, или как довольно часто встречаю: если покупатель переходит к оформлению заказа - товар бронируется на некоторое время…
…
Наверное все же вы правы… С нашей командой разработки лучше последовать старинному правилу: работает - не трожь! )))
Еще есть ошибка с применением скидок с акций. Когда человек сделал заказ и ты меняешь товар на другой и должна действовать акция с применением скидки. Вместо этого скидка не рассчитывается. Нужно проставлять скидку ручками. Жуть не удобно.
в конфиге отключается это ограничение
config.local.php 'do_not_apply_promotions_on_order_update' => true, // If true, the promotions that applied to the order won't be changed when editing the order. New promotions won't be applied to the order.
Ну я клиентам делаю 2 кнопки редактировать одна с действующими сейчас акциями, другая вот так как сейчас сделали, что акции не пересчитываются.