в готовом решении я так понял там только вывод склада но списание не предусмотренно
Списание почти нигде не предусмотрено. Разделение по скаладам обычно необходимо , чтобы больше не могли заказать. Как только сделал заказ пользователь, далее заказ отправляется в 1С к примеру, и 1С потом возвращает новые остатки на сайт. Конечно можно подцепиться на кнопку "в корзину" и не давать больше купить, но потом все равно перед создание заказа лучше проверять остатки и тоже ограничивать корзину (там же можете и списать со склада). Если вам необходимо, чтобы 2 пользователя не могли одновременно заказать (например один еще не оформил заказ, второму ограничить сколько осталось на складе) - тут сложнее. Проблема может заключатся, что вы спишете остатки, когда пользователь 1 положил товар в корзину, но пользователь 1 может бросить корзину.
я понял что нужно приципляться к отгрузкам товаров (когда клиент нажимает отгрузить товары они удаляются со склада в кол-ве). но как быть если при этом другой клиент положил в корзину товары нужно еще там какую то проверку делать, а битрикс корзина это капец)
почему к отгрузкам? товар может отгрузится через 2 дня (пока оплатили, пока собрали). Сразу после оформления заказа резервируете его или на складе на сайте (просто отнимаете), если есть обмены например с 1С, то там тоже резервируется. А по корзинам тут сложнее. Нельзя понять пользователь бросил корзину или корзина еще его интересует (просто отошел на пол часа). Я бы посоветовал перед загрузкой корзины/оформления заказа проверять остатки, и если остатков мало, то уменьшать нужное количество и выводить сообщение, что пока юзер думал, товар уже купили....
проще наверное почистить у всех корзины когда в остатке появились 0
Во первых все корзины чистить - это нерационально. во вторых: а если было товара 5, первый пользователь купил 2, осталось на складе по идее 3, а второй пользователь уже положил 4 себе в корзину?
процент вероятности того что так будет очень мал)
у вас накопилось 1000 корзин без заказов. Вы все будете проверять на товар, который закончился? А если пользователь ушел, но потом пришел через 2 дня, а товар появился на складе? Удалив товар раньше, чем он хотел заказать, вы рискуете потерять часть прибыли. Смотрите сами - решать вам. Я только накинул идею как бы я реализовал.
Обсуждают сегодня