Minishop2 Остатки товаров
Здравствуйте.
Не могу понять, где и как в Minishop настраивается отображение остатков товара.
Прочитал что для учета остатков по свойствам нужен компонент msProductRemains… Но меня сейчас интересуют остатки простых товаров (без учета свойств и модификаций). По идее, такой функционал должен быть заложен «из коробки», или я не прав?
Не могу понять, где и как в Minishop настраивается отображение остатков товара.
Прочитал что для учета остатков по свойствам нужен компонент msProductRemains… Но меня сейчас интересуют остатки простых товаров (без учета свойств и модификаций). По идее, такой функционал должен быть заложен «из коробки», или я не прав?
Комментарии: 3
Из коробки пока такого функционала нет. Вопрос в том, какой функционал вы хотите привязать к полю «Остатки»?
Создайте кастомное поле minishop2 (если умеете), если нет, то можете попробовать использовать msAddField, правда не знаю актуален он или нет. Либо можете создать TV.
Далее все зависит от ваших задач.
Например, вы завели TV remaining и хотите вместо кнопки «Добавить в корзину» выводить «Нет в наличии», то код на странице товара например будет такой:
Создайте кастомное поле minishop2 (если умеете), если нет, то можете попробовать использовать msAddField, правда не знаю актуален он или нет. Либо можете создать TV.
Далее все зависит от ваших задач.
Например, вы завели TV remaining и хотите вместо кнопки «Добавить в корзину» выводить «Нет в наличии», то код на странице товара например будет такой:
{if $_modx->resource.remaining > 0}
<button type="submit" name="ms2_action" value="cart/add">Добавить в корзину</button>
{else}
<span>Нет в наличии</span>
{/if}
Прочие задачи, например проверка остатков при добавлении в корзину, решаются кастомными плагинами.
Ну да, поле-то создать не проблема (хоть кастомное, хоть tv)… Загвоздка именно в функционале: чтобы остатки уменьшались при заказе, например…
В принципе такую задачу можно решить плагином на события msOnChangeOrderStatus, msOnRemoveOrder, msOnUpdateOrder и проверять в нем: если статус Новый, то игнорируем и выходим, чтобы не задерживать создание заказа во фронте для клиента. Если статус Оплачен то перебираем товары и уменьшаем значение поля остатков на кол-во этой позиции в заказе, а если статус Отменен, то увеличиваем кол-во, ибо это возврат. И соответственно если менеджер удалит заказ или удалит товар из него, производить те же самые действия.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.