Страница 1 из 1

Модуль обновления цен на основе стандартного import

Добавлено: 26.12.2016, 22:52
toxxxa
Встроенный функционал Okay-CMS позволяет импортировать товары из файла, но совсем не заточен под простое обновление цен. Бывают ситуации, когда из прайс-листа нужно обновить только те цены, которые уже есть на сайте и пропустить все остальные. Стандартный же функционал заставляет нас заполнять поле с названием товара, и постарается его создать, если не найдет такой в базе данных по артикулу или названию товара.

Кроме того, меня лично не устраивает что на обновление каждого товара система делает как минимум 2 запроса - SELECT его из базы, а потом UPDATE. Все шаред-хостинги, которые я видел (да-да, меня жаба давит на VPS а шареда вполне хватает) имели ограничение на количество запросов к бд что-то в пределах 3-4 тыс. операций в час. То есть в час мы можем обновить максимум 2000 товаров.

О том, как я переделал модуль импорта, чтобы только обновлять цены и ничего больше - я набложил у себя вот тут.

Добавлено: 27.12.2016, 09:03
OkayCMS
Да, мы знаем об этом недостатке. В новых версиях будем переделывать импорт/экспорт.

Добавлено: 04.01.2017, 18:41
koteyka-2
Думаю, что достаточно будет сделать отдельный экспорт-импорт для обновления цен и в нем выгружать наименование товара + ID варианта.
Потом при импорте можно будет делать один запрос UPDATE к таблице вариантов с условием WHERE id=...
Менять стандартный импорт, думаю, не стОит, т.к. далеко не всем нужно обновлять только цены.

Добавлено: 05.01.2017, 17:29
dimitriy
koteyka-2 писал(а):Думаю, что достаточно будет сделать отдельный экспорт-импорт для обновления цен и в нем выгружать наименование товара + ID варианта.
Потом при импорте можно будет делать один запрос UPDATE к таблице вариантов с условием WHERE id=...
Менять стандартный импорт, думаю, не стОит, т.к. далеко не всем нужно обновлять только цены.


в свое время я заказал скрипт сугубо для обновления цен ( еще для симплы)
ну для okay cms он подходит. могу поделиться и с вами и с разработчками ( чтобы они включили уже в версию штатно).
скрипт удобный, то есть загрузил туда CSV формата- артикул цена и поехали..
отдельный файл для перечеркнутой цены, отдельный файл для обычной. и выглядит красиво

Добавлено: 05.01.2017, 17:34
koteyka-2
загрузил туда CSV формата- артикул цена и поехали
Думаю, что только артикула и цены будет не достаточно. По наименованию человек видит, в каком товаре он меняет цену, а только по артикулу это будет крайне сложно сделать. Так же, артикул это текстовое поле и при импорте может произойти всё, что угодно. Например, человек туда поставит случайно пробел или точку и при импорте уже создастся новый товар. С вариантом импорта по ID такие моменты исключаются, что более безопасно.

Добавлено: 05.01.2017, 19:59
toxxxa
koteyka-2 писал(а):Думаю, что только артикула и цены будет не достаточно. По наименованию человек видит, в каком товаре он меняет цену, а только по артикулу это будет крайне сложно сделать. Так же, артикул это текстовое поле и при импорте может произойти всё, что угодно. Например, человек туда поставит случайно пробел или точку и при импорте уже создастся новый товар. С вариантом импорта по ID такие моменты исключаются, что более безопасно.

В моём варианте - если такого артикула в базе нет, новый товар не создается, просто пропускает и ищет следующий. Ну и стандартный импорт конечно же не трогал, сделал отдельный модуль только для обновления. Ну он очень примитивный, делал под себя для конкретной задачи, но навернуть можно что угодно. И поле "наименование" не обязательно - чаще всего файл с новыми ценами приходит от поставщика, это он меняет цены, мы только загружаем. Поэтому Артикул, Цена (новая, старая) и Валюта - этого вполне.

Добавлено: 05.01.2017, 20:57
Dentar
могу поделиться и с вами и с разработчиками
Очень нужная вещь. Буду очень признателен если поделитесь.
А то сделал как предложил выше toxxxa, но чёт у меня не работает, хотя делал все точь-в-точь по инструкции. Почему-то цены не меняются((...

Добавлено: 05.01.2017, 21:04
toxxxa
Dentar писал(а):Очень нужная вещь. Буду очень признателен если поделитесь.
А то сделал как предложил выше toxxxa, но чёт у меня не работает, хотя делал все точь в точь по инструкции (почему-то цены не меняются...).

Я под версию 1.1.11 делал. Может в файле поля неправильно названы были? А при импорте файла логи на экран выводились?
Могу помочь разобраться, еслишо. Стучитесь в личку.

Добавлено: 05.01.2017, 21:23
Dentar
Фух, разобрался.
Проблема была в том, что сохранял CSV-файл в неправильном формате.
В Excel нужно было выбрать "сохранить в формате CSV (разделители-запятые)". А я сохранял в "CSV (MS-DOS)"
Ваш модуль работает как часы. Спасибо!

Добавлено: 05.01.2017, 21:52
OkayCMS
dimitriy писал(а):в свое время я заказал скрипт сугубо для обновления цен ( еще для симплы)
ну для okay cms он подходит. могу поделиться и с вами и с разработчками ( чтобы они включили уже в версию штатно).

Мы в новой версии сделаем немного по другому, но вы можете со всеми поделиться (если хотите) своим скриптом. Новая версия ожидается не раньше середины-конца февраля.

Добавлено: 06.02.2017, 07:07
dimitriy
вот этот скрипт, заливается в корень с обязательно такой же папкой price_update
В папке db данные для подключения и примеры файлов, в каком они должны быть формате для замены цен.
один файл для цен зачеркнутых, другой не зачеркнутых
логин admin пароль как в файле

Добавлено: 06.03.2019, 18:09
trainracing
а для магазинов более актуален мне кажется модуль обновления остатков

Добавлено: 06.03.2019, 19:03
toxxxa
trainracing писал(а):а для магазинов более актуален мне кажется модуль обновления остатков

в моем скрипте из начала топика не проблема добавить еще обновление остатков (кроме только цен). Там в 2-3 местах чуть поправить. Проблема в том, что поставщики пишут в своих файлах импорта что попало. Встречал по отдельности поля "остатки", "резерв". Иногда резерв только информативно, в остатках уже учтено. Иногда - нужно вычитать резерв. Или в остатках пишут нечисловое значение ">3", "нет в наличии" или вообще что попало... Так что нужно пилить под конкретную задачу.
Я сейчас пишу интересный сервис по парсингу прайс-листов. Когда из глубокой альфы выйду - может похвастаюсь.

Добавлено: 07.03.2019, 12:26
reteri
dimitriy писал(а):вот этот скрипт, заливается в корень с обязательно такой же папкой price_update
В папке db данные для подключения и примеры файлов, в каком они должны быть формате для замены цен.
один файл для цен зачеркнутых, другой не зачеркнутых
логин admin пароль как в файле
Архив, поврежден, перезалейте.

Добавлено: 09.11.2021, 13:40
irekunenko
toxxxa писал(а):Я сейчас пишу интересный сервис по парсингу прайс-листов. Когда из глубокой альфы выйду - может похвастаюсь.
Видимо из глубокой альфы ещё не подняли на поверхность?