Обновление цен и количества товаров в PrestaShop.

20 декабря 2011 | Автор: 4udak | Теги: , ,

Обновление цен в PrestaShopОбновление цены и количества товаров в PresraShop - это следующая основная задача, и в каких-то местах и проблема после того, как Ваш магазин начал работать.

Предлагаю Вашему вниманию скрипт, который обновляет цену и количество товаров в PrestaShop на основе артикула товара (reference), а товары, которые есть в прайсе, но не найдены в магазине, будут добавлены как новые в выбранную категорию.

Спасибо surkov85 из оф.форума PresraShop, его скрипт был началом того что получилось сейчас, я добавил возможность добавления новых товаров, выбор кодировки файла, выбор категории куда будет происходить импорт, поместил все это в админке в разделе импорта.

В картинках это выглядит так:

Обновление цены и количества товаров в PrestaShop.

Обновление цены и количества товаров из прайса в PrestaShop.

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

В конце работы скрипт пишет какие товары обновил, а какие добавил:

Обновление цен в PrestaShop

Я проверял импортом прайса из 15тыс товаров - он справился 🙂 поэтому пользоваться им для небольшого количества товаров вполне возможно.

С php я на "Вы", поэтому код какое есть 🙂

Как происходит обновление цен и количества товаров из прайса в PrestaShop можно посмотреть на следующем видео:

Скрипт тестировался на версии 1.4.5.1 и распространяется как есть, бесплатно, технической поддержки по нему не осуществляется, автор не несет ответственность за последствия использования скрипта, и никому ничего не должен 🙂

[download id="17" format="1"]

Приятного пользования.



Понравилась статья? Подпишись на RSS моего блога!

Комментарии (55) на "Обновление цен и количества товаров в PrestaShop."

  1. Boris:

    Для коректного отображения файл надо отконвертировать в UTF-8. Если не видит категории - сменить ID языка ( по умолчанию 6)

    • кодировка у файла "priceupdate.php" utf-8 без BOM, в престе должно все нормально отображаться, хотя может и ошибаюсь.
      Насчет id языка да, его нужно указывать (изменять в файле).
      Спасибо за замечания 🙂

  2. Alex:

    Заранее прошу прощения за оффтоп, но подскажите, пожалуйста.
    Prestashop хорошо работает на shared-хостинге? (ассортимент около 200-300 товаров) Или придется VDS брать?

  3. Дмитрий:

    Что то у меня не получается. Открываю вкладку "Инструменты", далее - "Импорт". Появился знак вопроса (картинка), с низу точка. Пробуем по другому:
    http://ваш сайт/admins/priceupdate.php
    Вот теперь интерфейс совпадает с Вашей второй картинкой (после клика "Перейти к импорту"
    В чём может быть причина? Версия 1.4.4.1

  4. я тестировал на версии 1.4.5.1, в "Инструменты", далее - "Импорт" добавляется просто ссылка, чтобы можно было зайти в admin/priceupdate.php. Пересохраните файл AdminImport.php в кодировку ютф-8, слова точно появятся возле точки.

    так же без проблем можно заходить по прямой ссылке сразу на admins/priceupdate.php, на "скорость" это не влияет.

  5. Дмитрий:

    А я файл priceupdate.php мучал с перекодировкой, а про AdminImport.php не подумал.
    Помогло, спасибо.

  6. Ирина:

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

  7. Ирина:

    Excel и так же дает utf-8, тем более там кодировку поменять негде, кажется.

  8. Ирина:

    Открыла/сохранила в notepad++ , теперь появляется новая ошибка:
    Notice: Undefined variable: langFieldError in ......\tabs\AdminImport.php on line 623
    В php не рублю... открываю файл строку 623 и вижу:
    $this->_errors[] = ($fieldError !== true ? $fieldError : '').($langFieldError !== true ? $langFieldError : '').mysql_error();
    может на сервере что-то не так настроено?

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

  9. Ирина:

    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

      пишите вопросы, пожалуйста, в соответствующие теме, т.к. Ваша проблема не имеет отношения к теме, в которой сейчас все вопросы. Спасибо.

  10. Александр:

    блин. все сделал. Все появилось.
    Вот только не видит категорий. файл в утф-8.
    код языка поставил 7. у мня номер 7 это русский.
    PrestaShop™ 1.4.4.0
    При это пишет что товары добавлены, хотя во первых товары уже существуют.
    а во вторых он реально не добавляет товары. есть подозрения что с БД связи нет.
    Как проверить?

    • Александр,
      Скрипт распространяется как есть, описание в статье и код в приложении соответствуют друг другу, технической поддержки по нему не осуществляется, и автор не несет ответственность за последствия использования скрипта.

      • Александр:

        .Ну так помогли бы решить вопрос. Я и не упрекаю Вас. Мне важно решить задачу.

        • Мне важно решить задачу.

          Ваш интерес прекрасно понятен... 🙂

          Открываете базу данных и смотрите, добавляется что нибудь или нет, обновляется что нибудь или нет. Проверьте еще префикс в файле, такой ли он у Вас как у базы. Больше посоветовать сложно, т.к. код скрипта не видел с момента написания статьи.

          • Александр:

            НЕ могу найти где префикс в этом файле? Он у меня дейтвительно не стандартный. ПОмогите плиз

  11. Александр:

    Проблема решена путем попровки префикса в файле. ЩАс будем тестить

  12. Дмитрий:

    не работает на 1.3.6 чтоделать? подскажыте плиз !!!!

    • Дмитрий,

      Скрипт распространяется как есть, бесплатно, технической поддержки по нему не осуществляется, автор не несет ответственность за последствия использования скрипта.

  13. Дмитрий:

    выдает такую ошибку

    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

    • Дмитрий, прочитайте пожалуйста, сообщение выше, если Вы его по каким то причинам еще не прочитали, в котором указано, что скрипт как есть так и распространяется.
      Разбирайтесь, смотрите код, там есть комментарии, больше посоветовать я Вам ничего не могу.
      Если у Вас нету желания разбираться, то обратитесь к специалистам, которые это сделают за Вас (не ко мне пожалуйста).

  14. Эдуард:

    Отличная работа ! Ещё не тестировал, но за труд спасибо 🙂 И свободный доступ, конечно же.

  15. Денис:

    Добрый день.
    При импорте выдаёт: Невозможно открыть загруженый файл.
    Подскажите, пожалуйста, где можно поправить путь к фалу?

    • Денис:

      Проблема было из-за того что преста стояла не в корне, поправил путь в priceupdate.php и всё заработало =)

      • Руслан:

        Денис.
        У меня та же проблема: При импорте выдаёт: "Невозможно открыть загруженый файл."
        Подскажите пожалуйста понятней: где именно и какой именно править путь в файле priceupdate.php.
        Заранее спасибо за ответ.

  16. Денис:

    В 25 и 26 строке нужно поправить путь, в сошествие с расположением престы на вашем фтп.

  17. Алекс:

    Добрый день!
    Версия Престы 1.4.8.2 - поставил все по инструкции, пишет, что обновляет, а на самом сайте товары не появляются. Что может быть не так? Спасибо за ответ!

  18. Здравствуйте, скрипт тестировался на версии 1.4.5.1.

    посмотрите настройки ИД языка, может не правильно указан или Вы смотрите не на том языке на который он заливает, а "не так" может быть что угодно.

  19. Анастасия:

    Спасибо,
    Адаптировала под Prestashop 1.5.x , сложно но можно =)
    еще разберусь почему название режет, но это уже мелочь.

  20. Linda:

    Подскажите, пожалуйста, подробнее про "4. Префикс базы данных..." из инструкции по установке. Где именно, в каких строках нужно поменять префикс?

  21. Linda:

    4udak: "...я добавил возможность добавления новых товаров..."
    Подскажите, как быть в случае, когда у товаров id товара и артикул совпадают, т.е. одинаковы; тогда процедура нумерации товаров в модуле будет выглядеть иначе.
    К примеру, замена:
    $new_id_product = mysql_insert_id();
    на:
    $new_id_product = (".$data_f[0].");
    ни к чему не привела.
    Заранее, спасибо за ответ.

    • если мы работаем с артикулом, какая нам разница, какой там ид?

      • Linda:

        Разница состоит в том, что при добавлении новых товаров № генерируется в зависимости от последнего № товара в данной категории. К примеру, в категории 3000 товаров, нумерация - 1,2,3...,3000. Новый добавленный товар будет пронумерован, соответственно, 3001,3002 и т.д. В рассматриваемом вопросе речь идет не о свободно генерируемых № товара в категории, а конкретных - должен совпадать с артикулом. Т.о., при работе модуля вместо автоматической генерации № товара в категории необходима подстановка артикула.

  22. Linda:

    Обновление существующих товаров работает. Речь идет о добавлении новых товаров.

  23. роман:

    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 не силен... что делать?

  24. Andrey:

    А для 1.5 нет такого модуля?

  25. Саня:

    кто нить ставил на 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);

  26. Саше:

    Интересно тема еще жива??
    как сделать подгрудку картинок и описания товара?
    и проверку если картинка осталась без изменений ее не обновлять.

  27. Вик:

    Здравствуйте,

    У меня следующая ошибка возникает при переходе к импорту: [Debug] This page has moved
    Подскажите пожалуйста, Что нужно делать?

    Спасибо!

Отправить комментарий

Подпишись и получай новости по RSS