Учет остатков
Василий, можете описать алгоритм учета остатков — самый простой(без доп условий).
Хотя бы теорию(если есть пример — вообще классно). А то не могу выбрать правильное место для проверки.
Спасибо.
Хотя бы теорию(если есть пример — вообще классно). А то не могу выбрать правильное место для проверки.
Спасибо.
Комментарии: 13
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Предполагаю что лучше будет проверять при оформлении заказа, но как тогда при событии msOnBeforeAddToOrder вернуть пользователю ошибку?
Спасибо!
Затем нужно проверять возможность добавления товара в корзину. Системным плагином по событию msOnBeforeAddToOrder это делать не получится, ибо я такого не предусмотрел =)
Зато можно расширить класс корзины, и немного изменить метод add(), чтобы он проверял остатки и возвращал success() или error().
В течении пары недель я планирую сделать такой простой учет остатков в стандартной версии MS2, без учета цветов, размеров и прочего, чисто ресурсами.
Я добавил поле remains, через плагин.
И задумался где лучше это делать.
Проверить наличие при добавлении в корзину а ведь могут в корзину добавить несколько человек, и потом оформить заказ и остаток уже будет в минусе(товара не хватит :) )
А вот изменения этих остатков получается надо делать при оформлении заказа.
Кстати, а у меня потом не будет ошибок при обновлении, из-за добавленного поля через плагин?
Проблем не будет, нет. Оно так специально и сделано.
Но:
С другой стороны можно метод оформления заказа переписать на свой. Надо копать)
В последней версии магазина, есть такое изменение:
Оно очень подходит для организации оплаты товара после проверки заказа менеджером… Но у меня не сработала с первого раза. Есть ли там какая-либо «магия»? В класс оплаты я добавил метод getPaymentLink(msOrder $order). Этого достаточно? Чтобы в письме по определенному статусу отправить ссылку на оплату?
Если принимать платежи только через он-лайн (visa, mastercard, webmoney) системы, возможно ли реализовать списывание остатков (которые я добавлю самостоятельно плагином) только после успешного окончания платежа и ре-директа пользователя на страницу с успешной оплатой.
Смысл в том что в интернет-магазине будут продаваться вещи в единственном экземпляре. И хочется реализовать подобную логику, во избежание следующей ситуации:
1) Валера заказывает вещь через сайт
2) Выбирает платеж через “Почту России” / оплата через терминал и пр.
3) Оформляет заказ
4) Вещь автоматически резервируется в магазине и никто из желающих не сможет ее купить, так как она в 1 экземпляре
5) Валера встречает свою любовь детства и уходит в запой
6) Ждем платеж от Валеры 3-5 дней, и не дождавшись, выводим вещь обратно на продажу.
7) Ее покупает Вася.
8) Через неделю Валера выходит из запоя, оплачивает вещь (которой уже нет в наличии) и ждет заказ который мы не сможем выполнить.
Надеюсь смог объяснить, что хотел.
Заранее спасибо за ответы/советы :)
В них передаются 2 параметра: $order — то есть объект msOrder и $status — номер статуса. Из объекта msOrder можно вытащить любую информацию: и заказанные товары, и что угодно — учи xPDO.
Документация по плагинам MODX.