Парсер цен конкурентов

Тема в разделе "Готовые модули и модификаторы. Бесплатно", создана пользователем pomansur, 15 май 2017.

  1. Xakep578

    Xakep578 Новичок

    Сообщения:
    2
    Симпатии:
    1
    В любом случае огромное спасибо за модуль! Себе его уже дописал под свои нужды, обновляет цену и стоит проверка, что бы была не ниже +30% от закупочной. Демпинг очень плохо, но приходится именно так бороться с некоторыми игроками, которые только вылезают и начинают жестко демпинговать, что бы набрать клиентскую базу. Смотрели долго на это, но терпение лопнуло. Теперь 4 тысячи товаров проверяются по 7 конкурентам и ставится -1% от самой низкой цены. По крону за 7 часов проверились все товары. Единственный минус, что в кроне приходится запускать скрипт каждые 5 минут, т.к. сервер прибивает выполнение скрипта.
     
    pomansur нравится это.
  2. Neo_The_One

    Neo_The_One Новичок

    Сообщения:
    1
    Симпатии:
    0
    Подскажите пожалуйста! Как запустить крон! Спасибо!
     
    Последнее редактирование: 10 июл 2019
  3. pomansur

    pomansur Пользователь

    Сообщения:
    75
    Симпатии:
    40
    Модуль переработан. Написан для ocStore 2.3.0.2.3 Один конкурент настраивается где то пол часа - час максимум под кофе.

    Для работы требуется Content Downloader (гуглите, кто не знает, что это такое. Программа стоит денег, нужна Ultimate версия которая поддерживает WBappCEF).

    Внимание: Модуль переписывает поле Jan в карточке товара, поддерживает 1 магазин.
    В название карточки товара ВАШЕГО магазина, не должны присутствовать похожие по написанию русские буквы написанные латиницей и наоборот. Tefаl Color Еdition B3884052 xром. Также страдают этим многие другие магазины, где встречается подобное, поэтому незя просто так применить регулярку.
    Где встречается у конкурента в модели кириллица, как это Tefаl Color Еdition B3884052, летит в базу с флагом fail, чтобы потом можно было подстроить поиск-замену в CD.

    Он подойдет кто имеет ассортимент, где однозначно можно идентифицировать товар по марке.
    Примеры:
    Сковорода-гриль Tefal Color Edition B3884052 => Сковородка Tefal Color Edition B3884052 антипригар
    Телевизор Samsung UE43N5570AU => Телек Samsung UE43N5570AU б/у
    Кофемашина Bosch VeroCup 100 TIS30129RW => Машина для приготовления кофе Bosch VeroCup 100 TIS30129RW черная
    Слева названия конкурента, справа у нас на сайте
    Если отбросить киррилицу из модели, идентификация не пострадает - это вся та же модель.

    Если же товар у Вас например: носовые платки из носорога 20*20см или салфетки "Огонек", нет возможности сопоставить товар с магазине и конкурента, т.к. что только не пишут в названии. (носовой платок из носорога 200*200 или платок носовой 20*20(носорог) и т.д)

    Идея состоит в том, что Content Downloader нам вытаскивает данные, приводит модель спаршенных товаров в идентичное состояние(он конечно крут, но не все может сделать, тогда обрабатываем еще в модуле в функции model_replace) как на сайте, и посылает post запросом в модуль.
    Модуль проверяет: что все данные пришли, содержат или не содержат кириллицы в название модели и делает постобработку спаршенной модели (если требуется) и вычисляет ее crc32(контрольную сумму) Сравнение как раз и происходит по crc32.
    Если же модель имеет кириллицу, заносит в таблицу с пометкой fail и подсвечивает похожие по написанию русские буквы, потом можно подкорректировать поиск-замену в проекте конкурента.

    Вычисление контрольной суммы товара - crc32 происходит так:
    Получили из CD вот такую строку
    Tefal Color Edition B3884052/Red
    или на сайте у нас такая
    Сковородка Tefal Color Edition B3884052/Red антипригар, надо сопоставить.
    модуль вырезает всю киррилицу, пробелы,слеши и т.д, оставляет только латиницу и цифры, подымает регистр всех знаков вверх и вычисляет контрольную сумму.

    Файл проекта CD описывать смысла нет, кто работал в нем, поймет как перестроить границы парсинга для каждого конкурента. Единственное: каждому конкуренту свое значение id
    [SET:concurent]DNS-SHOP[/SET] ▒Название Конкурента (Уник значение)
    [SET:concurent_id]6[/SET] ▒ ID Конкурента (Уник значение)
    В принципе и все. Код контроллера максимально задокументирован.

    Установка: ставим копированием файлов, обновляем модификатор, даем права, Включаем модуль Concurent`s во вкладке модули.

    Использование:
    В шапке админки справа, кликаем кнопку "Конкуренты",далее вкладка "Лог". Справа кнопка "Генерировать JAN всем товарам магазина". Нажимаем. Со стороны магазина CRC32 для товаров сгенерированны.

    Идем в CD, настраиваем проект конкурента. Тут DNS SHOP
    Нужны из парсинга 3 границы это модель и цена и категория
    Код:
    [VARF]
    [SET:concurent]DNS-SHOP[/SET] ▒Название Конкурента (Уник значение)
    [SET:concurent_id]6[/SET] ▒ ID Конкурента (Уник значение)
    [SET:site]http://site.ru/admin[/SET]▒Адрес до вашей папки admin
    [/VARF]
    ▒Чистим таблицу MYSQL с данным конкурентом
    [DOITATFIRSTDOC]<PHP_SCRIPT_2=[VARF:site]/post_comcur.php>[UTF-8]>
    <HEADERS></HEADERS>
    delete=[FIELDVALUE][VARF:concurent][/FIELDVALUE]
    </PHP_SCRIPT_2>[/DOITATFIRSTDOC]
    ▒Льем данные POST
    <PHP_SCRIPT_4=[VARF:site]/post_comcur.php>[UTF-8]>
    <HEADERS></HEADERS>
    conc_cat=[FIELDVALUE]<CD_GRAN_4!>[/FIELDVALUE]▒Категория
    conc_name=[FIELDVALUE][VARF:concurent][/FIELDVALUE]▒переменная имени конкурента
    conc_id=[FIELDVALUE][VARF:concurent_id][/FIELDVALUE]▒Переменная ID конкурента
    model_conc=[FIELDVALUE]<CD_GRAN_1!>[/FIELDVALUE]▒Модель очищенная поиском-заменой
    conc_url=[FIELDVALUE]<CD_DOCURL!>[/FIELDVALUE]▒url страницы конкурента с товаром
    price_conc=[FIELDVALUE]<CD_GRAN_2!>[/FIELDVALUE]▒Цена конкурента
    </PHP_SCRIPT_4>
    
    <CD_GRAN_1!> - модель очищенная поиском замены в программе
    <CD_GRAN_2!> - цена
    <CD_GRAN_4!> - категория
    Во избежание недоразумений, post_comcur.php в проекте и сам файл модуля переименовать во что то мало выговариваемое. Он ловит снаружи POST запросы, хотя они и очищаются движком, мало -ли.
    Если настроено верно, увидим вот это в админке
    2.PNG 3.PNG Снимок.PNG 4.PNG

    дальше по аналогии....
    Добавляем конкурентов в СD, ставим там расписание парсить раз в сутки, комп естественно должен быть включен в это время.
    Во вложении Content_downloader_проект.zip - Проект для CD для магазина DNS-SHOP,настроен на рубрику сплит-системы.
     

    Вложения:

    Последнее редактирование: 24 фев 2020
    Ravilr нравится это.