[msProductRemains] Остатки без свойств и другое
Продолжаю работу над компонентом msProductRemains для складского учёта товаров для магазина miniShop2 и представляю вам новые возможности компонента.
1. Поддержка бесконечного количества свойств для учёта.
Ранее можно было указать максимум 2 свойства товара для ведения учёта по ним. Но теперь вы можете указывать какое угодно количество свойств и все они будут корректно учитываться.
2. Поддержка собственных опций.
Все созданные вами опции теперь можно также использовать для ведения учёта остатков. Естественно, по типу они должны быть аналогичны опциям «Цвет» и «Размер». То есть должны поддерживать множество значений.

3. Поддержка плагинов miniShop2.
Как можно заметить на предыдущем скриншоте, в таблице компонента есть своё поле. Добавляется оно аналогично тому, как это сделано в плагинах miniShop2, а точнее, именно там и добавляется.
4. Учёт остатков без привязки к свойствам.
Вполне логичный вопрос возникал у пользователей компонента: «Как вести учёт, если у товаров нет опций?». Приходилось объяснять, что это можно, но не очевидно. Исправляю этот недочёт. Теперь вести учёт остатков без привязки очень легко. Достаточно очистить значение в настройке «Свойства товара».

5. Поддержка AjaxManager.
Теперь компонент msProductRemains работает корректно при включённом плагине AjaxManager. Для включения поддержки необходимо в настройках AjaxManager добавить наименование msproductremains в единственную опцию AjaxManager.
1. Поддержка бесконечного количества свойств для учёта.
Ранее можно было указать максимум 2 свойства товара для ведения учёта по ним. Но теперь вы можете указывать какое угодно количество свойств и все они будут корректно учитываться.
2. Поддержка собственных опций.
Все созданные вами опции теперь можно также использовать для ведения учёта остатков. Естественно, по типу они должны быть аналогичны опциям «Цвет» и «Размер». То есть должны поддерживать множество значений.
3. Поддержка плагинов miniShop2.
Как можно заметить на предыдущем скриншоте, в таблице компонента есть своё поле. Добавляется оно аналогично тому, как это сделано в плагинах miniShop2, а точнее, именно там и добавляется.
<?php
// Файл /core/components/miniShop2/plugins/pluginname/index.php
return array(
'manager' => array(
'msprRemains' => MODX_ASSETS_URL . 'components/minishop2/plugins/pluginname/msprremains.js'
)
);// Файл /assets/components/minishop2/plugins/pluginname/msprremains.js
msProductRemains.plugin.pluginname = {
getColumns: function() {
return {
randomtags: {width:100, renderer: msProductRemains.utils.defined}
}
}
};4. Учёт остатков без привязки к свойствам.
Вполне логичный вопрос возникал у пользователей компонента: «Как вести учёт, если у товаров нет опций?». Приходилось объяснять, что это можно, но не очевидно. Исправляю этот недочёт. Теперь вести учёт остатков без привязки очень легко. Достаточно очистить значение в настройке «Свойства товара».

5. Поддержка AjaxManager.
Теперь компонент msProductRemains работает корректно при включённом плагине AjaxManager. Для включения поддержки необходимо в настройках AjaxManager добавить наименование msproductremains в единственную опцию AjaxManager.
Поблагодарить автора
Отправить деньги
Комментарии: 7
А можно ли использовать остатки и с опциями и без опций одновременно?
Можно. Если в настройках указаны свойства, а у товара отсутствуют значения в этих свойствах, то для такого товара создаётся только одна запись остатков без учёта свойств.
Здравствуйте, устанавливаем msProductRemains перестаёт добавлять в корзину, по логам добавляет, на странице корзины ошибка minishop2 not defined и соответственно пустая корзина, удаляем модуль — ошибка удаления, но он удалён — переустанавливаем minishop всё работает, но нет остатков, ошибок в логах нету
Обнаружил прикол, как понимаю он возникает в Minishop => 4.4.0
Поле remains присутствует в стандартных полях минишопа — присутствует в таблице modx_ms2_products
И в админке на странице со всеми остатками: /manager/?a=mgr/remains&namespace=msproductremains тянется именно поле из modx_ms2_product, а не из modx_ms2_product_remains
А если перейти в карточку товара, на вкладку остатки — там все правильно, остаток подтягивается из таблицы modx_ms2_product_remains
Не понимаю, как это так получается и как это исправить?
Поле remains присутствует в стандартных полях минишопа — присутствует в таблице modx_ms2_products
И в админке на странице со всеми остатками: /manager/?a=mgr/remains&namespace=msproductremains тянется именно поле из modx_ms2_product, а не из modx_ms2_product_remains
А если перейти в карточку товара, на вкладку остатки — там все правильно, остаток подтягивается из таблицы modx_ms2_product_remains
Не понимаю, как это так получается и как это исправить?
Это что за таблица такая modx_ms2_product_remains? В miniShop2 такой нет. Наверное отдельный компонент.
Это таблица компонента msProductRemains
он использует поле remains, но в Minishop2 4.0.0 тоже появилось это поле, и что то пошло не так. Может оно всегда было, но не участвовало в схеме, хз.
Тут скоррее вопрос к msProductRemains, нужно его научить смотреть remains из своей таблицы
он использует поле remains, но в Minishop2 4.0.0 тоже появилось это поле, и что то пошло не так. Может оно всегда было, но не участвовало в схеме, хз.
Тут скоррее вопрос к msProductRemains, нужно его научить смотреть remains из своей таблицы
Тут скоррее вопрос к msProductRemains, нужно его научить смотреть remains из своей таблицыДа, верно. Ранее этого поля не было в стандартном minishop2, поэтому всё и работало без проблем.
Есть момент, зачем-то это поле сделали типа int, в некоторых ситуациях разработчики хотят иметь дробный остаток (сталкивался с таким, поэтому сделал в своём компонент тип float для остатков). Надеюсь разработчики minishop2 услышать комментарий из commit на это изменение
maybe better float than int?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.