Обновление цен в Minishop2
Добрый день!
Буду благодарен, если кто-то предложить оптимальное решение вопроса.
Есть сайт аптеки — магазин на Minishop2.
Требуется еженедельная синхронизация цен аптечной базы с ценами сайта.
Существующее решение:
1. На сайте установлено дополнение msImportExport;
2. Из внешней базы данных аптеки выгружается таблица с данными (Артикул, Наименование, Цена, Производитель и т.д.);
3. Товарам на сайте присвоены артикулы, идентичные товарам из внешней базы данных;
4. Таблица переводится в формат msImportExport и по критерию совпадения артикула происходит изменение цены товара на сайте на актуальную.
Здесь все довольно просто и легко было реализовано. В процессе работы обозначилась одна сложность, которая заключается в том, база данных аптеки выгружает прайс-лист только с товарами, имеющимися в наличии на данный момент.
Т.е. на этой неделе выгружено 3500 товаров — их цены вышеуказанным методом легко обновляются.
Но в прошлом месяце прайс-лист содержал (к примеру) 4000 товаров. Т.е. статус 500 товаров на сегодняшний день — «нет в наличии».
И с этими 500-ми отсутствующими в последнем прайсе товарами, при обновлении, понятное дело, ничего не происходит. А в идеале на таком товаре должна стоят цена «0» и статус «Нет в наличии».
И теперь вопрос — как можно по такому критерию как, например, дата последнего обновления цены создать скрипт, который на все товары, которые не обновились сегодня — поставит цену «0». И если это не сложно еще добавить опцию «Нет в наличии».
Но последнее не обязательно — это легко можно сделать при помощи того же msImportExport — просто отфильтровав все товары с нулевой ценой и проставив нужное значение.
Буду благодарен, если кто-то предложить оптимальное решение вопроса.
Есть сайт аптеки — магазин на Minishop2.
Требуется еженедельная синхронизация цен аптечной базы с ценами сайта.
Существующее решение:
1. На сайте установлено дополнение msImportExport;
2. Из внешней базы данных аптеки выгружается таблица с данными (Артикул, Наименование, Цена, Производитель и т.д.);
3. Товарам на сайте присвоены артикулы, идентичные товарам из внешней базы данных;
4. Таблица переводится в формат msImportExport и по критерию совпадения артикула происходит изменение цены товара на сайте на актуальную.
Здесь все довольно просто и легко было реализовано. В процессе работы обозначилась одна сложность, которая заключается в том, база данных аптеки выгружает прайс-лист только с товарами, имеющимися в наличии на данный момент.
Т.е. на этой неделе выгружено 3500 товаров — их цены вышеуказанным методом легко обновляются.
Но в прошлом месяце прайс-лист содержал (к примеру) 4000 товаров. Т.е. статус 500 товаров на сегодняшний день — «нет в наличии».
И с этими 500-ми отсутствующими в последнем прайсе товарами, при обновлении, понятное дело, ничего не происходит. А в идеале на таком товаре должна стоят цена «0» и статус «Нет в наличии».
И теперь вопрос — как можно по такому критерию как, например, дата последнего обновления цены создать скрипт, который на все товары, которые не обновились сегодня — поставит цену «0». И если это не сложно еще добавить опцию «Нет в наличии».
Но последнее не обязательно — это легко можно сделать при помощи того же msImportExport — просто отфильтровав все товары с нулевой ценой и проставив нужное значение.
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Если в выгрузке приходило 5000 товаров, а потом выгрузилось 4000, то 1000 можно выключить процессером.
Как вариант, можно формировать каждый элемент в json объект и на основании diff выключать остатки.
Пишите демон
Причем, судя по документации это возможно именно при импорте, а не обновлении товаров. Так как у события: msieOnCompleteUpdateProduct отсутствует переменная data — строки с ID товарами через запятую которые были добавлены/обновлены
Хотя возможно это неточность в документации, не проверял.