Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Количество товара в остатках

+11 голос
1

Добрый день! Есть проблема! 
Есть товар в наличии к примеру 10 шт. (зонтик) 
Пользователь оформил заказ к примеру на 9 зонтиков 
После чего в доступном количестве остался 1 зонтик, а в зарезервированном количестве 9 
Затем через админку в редактировании заказа меняем количество с 9 на 11, сохраняем и тут же отменяем заказ - в доступное количество вернётся 11 зонтиков, а в зарезервированное количество -1 зонтик! 
Подскажите как исправить данный баг? Нужно что бы нельзя было добавить через админку в заказ количество больше чем доступно на данный момент! 
Главный модуль - 15.0.6 
Интернет-магазин - 14.11.5

спросил 07 Дек, 15 от miron8888 (510 баллов)

1 Ответ

00 голосов
Задача более чем непростая.
По идее, есть события на изменение записей в корзине, OnBeforeBasketUpdate , OnBasketUpdate , OnBeforeBasketUpdateAfterCheck и т.д. -- и вы можете сделать дополнительные проверки через свой обработчик какого-то из этих событий. Но имейте пожалуйста в виду, что код проверки остатков довольно сильно менялся от 14 к 15 версии, и от 15 к 15.5 и к 16 тоже наверняка будет немало кардинальных нововведений - обновляться осторожно! =)
Ключ к пониманию, как оно работает (для написания обработчика) где-то в методе CAllSaleBasket::DoChangeProductQuantity();
ответил 08 Дек, 15 от root (25,590 баллов)
От обновлений отказались! И по этому пришло в голову просто при изменении количества товара в заказе через админку просто проверять сколько товаров в данный момент можно купить и сравнивать с количеством введённым пользователем! Ну и соответственно не давать указывать большее количество чем возможно! Сурово! Но что поделать )))

Похожие вопросы

0 голосов
0 ответов
0 голосов
8 ответов
спросил 03 Июль, 13 от Mauka (320 баллов)
0 голосов
6 ответов
спросил 15 Июнь, 13 от Asteria (1,840 баллов)
0 голосов
3 ответов