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

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

toxxxa M
Аватара
toxxxa M
Репутация: 4
Сообщения: 14
Зарегистрирован: 24.05.2016
С нами: 3 года 6 месяцев
Откуда: Донецк украинский
Сайт

Сообщение #1 toxxxa » 26.12.2016, 22:52

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

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

О том, как я переделал модуль импорта, чтобы только обновлять цены и ничего больше - я набложил у себя вот тут.
Онлайн-калькуляторы для типографий и РА: http://calc.in.ua

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 147
Сообщения: 1076
Зарегистрирован: 12.11.2015
С нами: 4 года
Сайт Skype

Сообщение #2 OkayCMS » 27.12.2016, 09:03

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

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 44
Зарегистрирован: 27.09.2016
С нами: 3 года 2 месяца
Откуда: Днепр
Skype

Сообщение #3 koteyka-2 » 04.01.2017, 18:41

Думаю, что достаточно будет сделать отдельный экспорт-импорт для обновления цен и в нем выгружать наименование товара + ID варианта.
Потом при импорте можно будет делать один запрос UPDATE к таблице вариантов с условием WHERE id=...
Менять стандартный импорт, думаю, не стОит, т.к. далеко не всем нужно обновлять только цены.
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.

dimitriy
Аватара
dimitriy
Репутация: 2
Сообщения: 55
Зарегистрирован: 26.06.2016
С нами: 3 года 5 месяцев

Сообщение #4 dimitriy » 05.01.2017, 17:29

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


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

koteyka-2 M
Аватара
koteyka-2 M
Репутация: 7
Сообщения: 44
Зарегистрирован: 27.09.2016
С нами: 3 года 2 месяца
Откуда: Днепр
Skype

Сообщение #5 koteyka-2 » 05.01.2017, 17:34

загрузил туда CSV формата- артикул цена и поехали
Думаю, что только артикула и цены будет не достаточно. По наименованию человек видит, в каком товаре он меняет цену, а только по артикулу это будет крайне сложно сделать. Так же, артикул это текстовое поле и при импорте может произойти всё, что угодно. Например, человек туда поставит случайно пробел или точку и при импорте уже создастся новый товар. С вариантом импорта по ID такие моменты исключаются, что более безопасно.
Настройка обмена OKAY и SIMPLA с 1С 7.7 и 8.х, Мой склад и Укрсклад
Доработка, изменение функционала.

toxxxa M
Аватара
toxxxa M
Репутация: 4
Сообщения: 14
Зарегистрирован: 24.05.2016
С нами: 3 года 6 месяцев
Откуда: Донецк украинский
Сайт

Сообщение #6 toxxxa » 05.01.2017, 19:59

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

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

Dentar
Dentar
Репутация: 0
Сообщения: 25
Зарегистрирован: 05.12.2016
С нами: 3 года

Сообщение #7 Dentar » 05.01.2017, 20:57

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

toxxxa M
Аватара
toxxxa M
Репутация: 4
Сообщения: 14
Зарегистрирован: 24.05.2016
С нами: 3 года 6 месяцев
Откуда: Донецк украинский
Сайт

Сообщение #8 toxxxa » 05.01.2017, 21:04

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

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

Dentar
Dentar
Репутация: 0
Сообщения: 25
Зарегистрирован: 05.12.2016
С нами: 3 года

Сообщение #9 Dentar » 05.01.2017, 21:23

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

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 147
Сообщения: 1076
Зарегистрирован: 12.11.2015
С нами: 4 года
Сайт Skype

Сообщение #10 OkayCMS » 05.01.2017, 21:52

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

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

dimitriy
Аватара
dimitriy
Репутация: 2
Сообщения: 55
Зарегистрирован: 26.06.2016
С нами: 3 года 5 месяцев

Сообщение #11 dimitriy » 06.02.2017, 07:07

вот этот скрипт, заливается в корень с обязательно такой же папкой price_update
В папке db данные для подключения и примеры файлов, в каком они должны быть формате для замены цен.
один файл для цен зачеркнутых, другой не зачеркнутых
логин admin пароль как в файле
Вложения
price_update.zip
(388.71 КБ) 77 скачиваний

trainracing M
Аватара
trainracing M
Возраст: 27
Репутация: 11
Сообщения: 112
Зарегистрирован: 07.10.2016
С нами: 3 года 2 месяца
Сайт

Сообщение #12 trainracing » 06.03.2019, 18:09

а для магазинов более актуален мне кажется модуль обновления остатков

toxxxa M
Аватара
toxxxa M
Репутация: 4
Сообщения: 14
Зарегистрирован: 24.05.2016
С нами: 3 года 6 месяцев
Откуда: Донецк украинский
Сайт

Сообщение #13 toxxxa » 06.03.2019, 19:03

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

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

reteri
reteri
Репутация: 3
Сообщения: 61
Зарегистрирован: 02.05.2018
С нами: 1 год 7 месяцев

Сообщение #14 reteri » 07.03.2019, 12:26

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


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя