Обновление цен в 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 выключать остатки.
Если в выгрузке приходило 5000 товаров, а потом выгрузилось 4000, то 1000 можно выключить процессером.
Как вариант, можно формировать каждый элемент в json объект и на основании diff выключать остатки.
Выключать товары, не попавшие в последний прайс товаров нам бы не хотелось. Сегодня их нет, а завтра появятся снова. Нужно именно, на не обновившиеся на определенную дату товары выставлять цену 0 и статус «Нет в наличии».
Ну сегодня товара нет — ставьте цену 0 и «нет в наличии». Завтра появился — будет цена и наличие
Я так и делаю, просто в табличном экспорте методом фильтрации. Но вопрос был о том, возможно ли сделать скрипт, который способен учитывать дату последнего обновления и на не обновившиеся товары может выставлять цену «0».
В PHP есть демоны.
Пишите демон
Пишите демон
Да можно конечно. Добавить 1 одно условие в экспорт цен и готово.
Вы имеете в виду, что это можно сделать штатными средствами msImportExport?
Нет, залезть внутрь msImportExport и добавить условие
В документации описан плагин на событие: msieOnCompleteImportProduct с помощью которого можно снять с публикации товары, не попавшие в прайс лист. Несколько изменив этот плагин думаю возможно товарам, не попавшим в прайс установить цену, равную нулю и изменить содержимое поля «Наличие» на нужное.
Причем, судя по документации это возможно именно при импорте, а не обновлении товаров. Так как у события: msieOnCompleteUpdateProduct отсутствует переменная data — строки с ID товарами через запятую которые были добавлены/обновлены
Хотя возможно это неточность в документации, не проверял.
Причем, судя по документации это возможно именно при импорте, а не обновлении товаров. Так как у события: msieOnCompleteUpdateProduct отсутствует переменная data — строки с ID товарами через запятую которые были добавлены/обновлены
Хотя возможно это неточность в документации, не проверял.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.