Обновление цены и количества товаров в PresraShop - это следующая основная задача, и в каких-то местах и проблема после того, как Ваш магазин начал работать.
Предлагаю Вашему вниманию скрипт, который обновляет цену и количество товаров в PrestaShop на основе артикула товара (reference), а товары, которые есть в прайсе, но не найдены в магазине, будут добавлены как новые в выбранную категорию.
Спасибо surkov85 из оф.форума PresraShop, его скрипт был началом того что получилось сейчас, я добавил возможность добавления новых товаров, выбор кодировки файла, выбор категории куда будет происходить импорт, поместил все это в админке в разделе импорта.
В картинках это выглядит так:
Скрипт пишет все данные прямо в базу данных, поэтому перед началом импорта рекомендуется делать бэкап базы данных.
В конце работы скрипт пишет какие товары обновил, а какие добавил:
Я проверял импортом прайса из 15тыс товаров - он справился 🙂 поэтому пользоваться им для небольшого количества товаров вполне возможно.
С php я на "Вы", поэтому код какое есть 🙂
Как происходит обновление цен и количества товаров из прайса в PrestaShop можно посмотреть на следующем видео:
Скрипт тестировался на версии 1.4.5.1 и распространяется как есть, бесплатно, технической поддержки по нему не осуществляется, автор не несет ответственность за последствия использования скрипта, и никому ничего не должен 🙂
[download id="17" format="1"]
Приятного пользования.
Для коректного отображения файл надо отконвертировать в UTF-8. Если не видит категории - сменить ID языка ( по умолчанию 6)
кодировка у файла "priceupdate.php" utf-8 без BOM, в престе должно все нормально отображаться, хотя может и ошибаюсь.
Насчет id языка да, его нужно указывать (изменять в файле).
Спасибо за замечания 🙂
Заранее прошу прощения за оффтоп, но подскажите, пожалуйста.
Prestashop хорошо работает на shared-хостинге? (ассортимент около 200-300 товаров) Или придется VDS брать?
думаю что будет работать, см. требования престашоп к хостингу.
Что то у меня не получается. Открываю вкладку "Инструменты", далее - "Импорт". Появился знак вопроса (картинка), с низу точка. Пробуем по другому:
http://ваш сайт/admins/priceupdate.php
Вот теперь интерфейс совпадает с Вашей второй картинкой (после клика "Перейти к импорту"
В чём может быть причина? Версия 1.4.4.1
я тестировал на версии 1.4.5.1, в "Инструменты", далее - "Импорт" добавляется просто ссылка, чтобы можно было зайти в admin/priceupdate.php. Пересохраните файл AdminImport.php в кодировку ютф-8, слова точно появятся возле точки.
так же без проблем можно заходить по прямой ссылке сразу на admins/priceupdate.php, на "скорость" это не влияет.
А я файл priceupdate.php мучал с перекодировкой, а про AdminImport.php не подумал.
Помогло, спасибо.
пожалуйста, заходите еще 🙂
Столкнулась с проблемой импорта товара с русским названием. С англ - влетает без проблем, на русский ругается страшно. Плюс ко всему у меня в артикулах стоят русские буквы. Перечитала на форуме престадев все что писали на эту тему, поставила опенофис... ничего не помогает, или я что-то не понимаю. Можете помочь? Исходный материал - прайс в Excel.
Чтобы русский нормально заливался, установите кодировку файлы utf-8
Excel и так же дает utf-8, тем более там кодировку поменять негде, кажется.
Excel обычно дает win, с ютф он не дружит.
В ютф-8 можно пересохранить openoffice или notepad++
Открыла/сохранила в notepad++ , теперь появляется новая ошибка:
Notice: Undefined variable: langFieldError in ......\tabs\AdminImport.php on line 623
В php не рублю... открываю файл строку 623 и вижу:
$this->_errors[] = ($fieldError !== true ? $fieldError : '').($langFieldError !== true ? $langFieldError : '').mysql_error();
может на сервере что-то не так настроено?
не могу ответить на ваши вопросы, т.к. не вижу что вы импортируете туда, какой файл и что в нем.
такой ошибки никогда не встречал.
на стороне сервера ошибки маловероятны.
http://www.knigotorg.org/Проба13.csv
выложила тут этот файл
то что Вы пытались залить и оно по Вашим словам было в кодировке ютф-8: http://saveimg.ru/show-image.php?id=707722863907d92d35a462c451261903
так выглядит файл в кодировке ютф-8: http://saveimg.ru/show-image.php?id=069441d4a7848a53d5d5f4a629365a06
как сохранить файл в utf-8: http://saveimg.ru/show-image.php?id=fef42852ed741d9abf8d7c40d8ca0b11
пишите вопросы, пожалуйста, в соответствующие теме, т.к. Ваша проблема не имеет отношения к теме, в которой сейчас все вопросы. Спасибо.
блин. все сделал. Все появилось.
Вот только не видит категорий. файл в утф-8.
код языка поставил 7. у мня номер 7 это русский.
PrestaShop™ 1.4.4.0
При это пишет что товары добавлены, хотя во первых товары уже существуют.
а во вторых он реально не добавляет товары. есть подозрения что с БД связи нет.
Как проверить?
Александр,
Скрипт распространяется как есть, описание в статье и код в приложении соответствуют друг другу, технической поддержки по нему не осуществляется, и автор не несет ответственность за последствия использования скрипта.
.Ну так помогли бы решить вопрос. Я и не упрекаю Вас. Мне важно решить задачу.
Ваш интерес прекрасно понятен... 🙂
Открываете базу данных и смотрите, добавляется что нибудь или нет, обновляется что нибудь или нет. Проверьте еще префикс в файле, такой ли он у Вас как у базы. Больше посоветовать сложно, т.к. код скрипта не видел с момента написания статьи.
НЕ могу найти где префикс в этом файле? Он у меня дейтвительно не стандартный. ПОмогите плиз
Проблема решена путем попровки префикса в файле. ЩАс будем тестить
не работает на 1.3.6 чтоделать? подскажыте плиз !!!!
Дмитрий,
выдает такую ошибку
Notice: Undefined index: id_category_default_input in Z:\home\psuk.net\www\admin_site\priceupdate.php on line 19
[Денвер: показать возможную причину ошибки]
Notice: Undefined index: filename in Z:\home\psuk.net\www\admin_site\priceupdate.php on line 22
Дмитрий, прочитайте пожалуйста, сообщение выше, если Вы его по каким то причинам еще не прочитали, в котором указано, что скрипт как есть так и распространяется.
Разбирайтесь, смотрите код, там есть комментарии, больше посоветовать я Вам ничего не могу.
Если у Вас нету желания разбираться, то обратитесь к специалистам, которые это сделают за Вас (не ко мне пожалуйста).
Отличная работа ! Ещё не тестировал, но за труд спасибо 🙂 И свободный доступ, конечно же.
пожалуйста, пользуйтесь.
Добрый день.
При импорте выдаёт: Невозможно открыть загруженый файл.
Подскажите, пожалуйста, где можно поправить путь к фалу?
Проблема было из-за того что преста стояла не в корне, поправил путь в priceupdate.php и всё заработало =)
Денис.
У меня та же проблема: При импорте выдаёт: "Невозможно открыть загруженый файл."
Подскажите пожалуйста понятней: где именно и какой именно править путь в файле priceupdate.php.
Заранее спасибо за ответ.
В 25 и 26 строке нужно поправить путь, в сошествие с расположением престы на вашем фтп.
Спасибо 🙂
Добрый день!
Версия Престы 1.4.8.2 - поставил все по инструкции, пишет, что обновляет, а на самом сайте товары не появляются. Что может быть не так? Спасибо за ответ!
Здравствуйте, скрипт тестировался на версии 1.4.5.1.
посмотрите настройки ИД языка, может не правильно указан или Вы смотрите не на том языке на который он заливает, а "не так" может быть что угодно.
Спасибо,
Адаптировала под Prestashop 1.5.x , сложно но можно =)
еще разберусь почему название режет, но это уже мелочь.
супер! поделитесь с окружающими, многим будет полезно 🙂
Подскажите, пожалуйста, подробнее про "4. Префикс базы данных..." из инструкции по установке. Где именно, в каких строках нужно поменять префикс?
4udak: "...я добавил возможность добавления новых товаров..."
Подскажите, как быть в случае, когда у товаров id товара и артикул совпадают, т.е. одинаковы; тогда процедура нумерации товаров в модуле будет выглядеть иначе.
К примеру, замена:
$new_id_product = mysql_insert_id();
на:
$new_id_product = (".$data_f[0].");
ни к чему не привела.
Заранее, спасибо за ответ.
если мы работаем с артикулом, какая нам разница, какой там ид?
Разница состоит в том, что при добавлении новых товаров № генерируется в зависимости от последнего № товара в данной категории. К примеру, в категории 3000 товаров, нумерация - 1,2,3...,3000. Новый добавленный товар будет пронумерован, соответственно, 3001,3002 и т.д. В рассматриваемом вопросе речь идет не о свободно генерируемых № товара в категории, а конкретных - должен совпадать с артикулом. Т.о., при работе модуля вместо автоматической генерации № товара в категории необходима подстановка артикула.
подставляйте 🙂
Обновление существующих товаров работает. Речь идет о добавлении новых товаров.
Warning: mysql_query() [function.mysql-query]: Access denied for user.....бла бла бла priceupdate.php on line 17
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/.... бла бла бла /priceupdate.php on line 17
Notice: Undefined index: id_category_default_input in бла бла бла priceupdate.php on line 18
Notice: Undefined index: filename in... бла бла бла priceupdate.php on line 20
В php не силен... что делать?
я тоже, поэтому обычно заказываю у тех, кто знает что делать.
Судя по ошибкам, это проблема с подключением к mysql серверу.
Проверьте имя пользователя, пароль и адрес сервера MySQL
А для 1.5 нет такого модуля?
это все, что есть 🙂
кто нить ставил на PrestaShop™ 1.5.4.1 - категории не видны и проходит всю базу норм но не заменяет значения, хотя видет правельно что надо заменять чего нету. Если кто делал и что получилось - хоть намекните куда рыть.
БАНАЛЬНО? конект с базой установил и все работает.
<?php
$db = mysql_connect('Сервер MySQL','Пользователь БД','Пароль для доступа к БД');
mysql_select_db('db_name', $db);
define('ps_ADMIN_DIR', getcwd());
include(ps_ADMIN_DIR.'/../config/config.inc.php');
include(ps_ADMIN_DIR.'/functions.php');
include(ps_ADMIN_DIR.'/header.inc.php');
echo '';
//ini_set('display_errors',1);
//error_reporting(E_ALL);
Интересно тема еще жива??
как сделать подгрудку картинок и описания товара?
и проверку если картинка осталась без изменений ее не обновлять.
Ваша задача сложнее, чем просто обновить цены, и это совсем другая история.
Как ее побороть?
Для начала сделайте ТЗ (технич. задание), что Вы хотите, в свободной форме, дальше покажите его программистам.
Здравствуйте,
У меня следующая ошибка возникает при переходе к импорту: [Debug] This page has moved
Подскажите пожалуйста, Что нужно делать?
Спасибо!
Привет, не вижу ссылки для скачивания скрипта.))