[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
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Поле remains присутствует в стандартных полях минишопа — присутствует в таблице modx_ms2_products
И в админке на странице со всеми остатками: /manager/?a=mgr/remains&namespace=msproductremains тянется именно поле из modx_ms2_product, а не из modx_ms2_product_remains
А если перейти в карточку товара, на вкладку остатки — там все правильно, остаток подтягивается из таблицы modx_ms2_product_remains
Не понимаю, как это так получается и как это исправить?
он использует поле remains, но в Minishop2 4.0.0 тоже появилось это поле, и что то пошло не так. Может оно всегда было, но не участвовало в схеме, хз.
Тут скоррее вопрос к msProductRemains, нужно его научить смотреть remains из своей таблицы
Есть момент, зачем-то это поле сделали типа int, в некоторых ситуациях разработчики хотят иметь дробный остаток (сталкивался с таким, поэтому сделал в своём компонент тип float для остатков). Надеюсь разработчики minishop2 услышать комментарий из commit на это изменение