[yaMarketReviews] - отзывы из Яндекс Маркета на вашем сайте (Update 2018)
Компонент yaMarketReviews позволяет показывать на сайте отзывы о магазине или конкретном продукте, опубликованные на популярной площадке Яндекс Маркет.
Состоит из двух логических частей
Компонент работает в связке с pdoTools, используя все возможности PdoPage. Наличие обязательно для работы из коробки. Компонент сам подтянет pdoTools, в случае его отсутствия.
На бесплатном тарифе Яндекс разрешает запрашивать только 3000 отзывов в сутки. Соответственно Вы можете оперировать только этим объемом из коробки.
Можно записывать отзывы на долгий срок в базу данных, по 3000 ежедневно.
Есть еще вариант — подключить платный тариф 20 тыс. рублей в месяц.
В обоих случая нужна доработка компонента и запуск программы по расписанию или через консоль сервера, так как это не быстрый процесс.
Подробнее о тарифах и ценах здесь
Компонент запрашивает отзывы в Яндекс маркете, записывая их в базу данных сайта на определенный срок (можно регулировать) и далее в течение указанного срока выводит отзывы уже из собственной таблицы на сайте. Первый запуск программы (в момент записи в базу) может занять несколько секунд — возможно стоить запуск страницы с отзывами по расписанию.
Схема работы такая:
1. При каждом вызове производится запрос в базу данных на удаление устаревших отзывов
2. Производится запрос на наличие отзывов после очистки — если отзывы в базе есть — в дело вступает pdoPage который просто выбирает и показывает отзывы. Для работы с таблицей отзывов Вам доступны все возможности pdoPage, в том числе и ajax подгрузка дополнительных отзывов.
3. Если отзывов после удаления устаревших отзывов таблица пуста — производится запрос к Яндекс Маркету и запись свежих отзывов в базу данных — затем отрабатывает pdoPage
Помимо установки компонента на сайт, вам нужно получить ключ API Яндекс Маркета.
Делается это буквально в два клика в кабинете разработчика Яндекс
Ключ нужно указать в системной настройке yamarketreviews_yaMarketKey
Здесь важно заметить, что для ключа должен быть указан IP адрес сайта, где его будут использовать. Известны случаи когда Яндекс банит ключи без указания IP адреса. Самое интересное. что при получении ключа IP адрес указывать негде. Нет такого поля в интерфейсе ключей. Так что если вдруг у вас компонент не работает, а в логах висит соответствующая ошибка попробуйте получить ключ здесь
В описании проекта в свободном виде можно написать заблокированный ключ и сайт, где вы его планируете использовать. А также цель использования. Что то вроде «Мы планируем выводить отзывы о магазине на нашем сайте». Его активируют.
Реализованы при помощи сниппета getShopReviews
пример вызова и параметры:
Сниппет имеет несколько своих собственных параметров:
shopid — обязательный параметр. Собственно номер-идентификатор магазина в Яндекс Маркете, чьи отзывы вы желаете получить. Можно подсмотреть в адресной строке Маркета.
saveTime — время хранения отзывов в базе данных. Строка на английском с указанием времени. Например 2 hours, 3 days, 2 weeks, 1 month, 1 year. Для тех кто понимает о чем речь строка преобразуется функцией strtotime.
sortby Обязательным параметром является поле для сортировки отзывов. По умолчанию date.
Для сортировки доступны поля date, shopid, reviewid, grade(оценка от 1 до 5), agreeCount(С отзывом согласны), disagreeCount (с отзывом не согласны), author, expired (временная метка срока записи )
tpl — шаблон одного отзыва. Необязательный параметр
по умолчанию установлен чанк yaMarketReview.tpl
wrapperTpl — шаблон-обертка для всех отзывов. Необязательный параметр
по умолчанию установлен чанк yaMarketReviews.tpl
Реализовано сниппетом getProductReviews
По сути сниппет имеет все те же настройки и параметры что и предыдущий, единственная разница — нужно указать id товара, а не магазина
Состоит из двух логических частей
- Отзывы о магазине
- Отзывы о продукте
Зависимости
Компонент работает в связке с pdoTools, используя все возможности PdoPage. Наличие обязательно для работы из коробки. Компонент сам подтянет pdoTools, в случае его отсутствия.
Ограничения
На бесплатном тарифе Яндекс разрешает запрашивать только 3000 отзывов в сутки. Соответственно Вы можете оперировать только этим объемом из коробки.
Можно записывать отзывы на долгий срок в базу данных, по 3000 ежедневно.
Есть еще вариант — подключить платный тариф 20 тыс. рублей в месяц.
В обоих случая нужна доработка компонента и запуск программы по расписанию или через консоль сервера, так как это не быстрый процесс.
Подробнее о тарифах и ценах здесь
Общий принцип работы
Компонент запрашивает отзывы в Яндекс маркете, записывая их в базу данных сайта на определенный срок (можно регулировать) и далее в течение указанного срока выводит отзывы уже из собственной таблицы на сайте. Первый запуск программы (в момент записи в базу) может занять несколько секунд — возможно стоить запуск страницы с отзывами по расписанию.
Схема работы такая:
1. При каждом вызове производится запрос в базу данных на удаление устаревших отзывов
2. Производится запрос на наличие отзывов после очистки — если отзывы в базе есть — в дело вступает pdoPage который просто выбирает и показывает отзывы. Для работы с таблицей отзывов Вам доступны все возможности pdoPage, в том числе и ajax подгрузка дополнительных отзывов.
3. Если отзывов после удаления устаревших отзывов таблица пуста — производится запрос к Яндекс Маркету и запись свежих отзывов в базу данных — затем отрабатывает pdoPage
Предварительная настройка
Помимо установки компонента на сайт, вам нужно получить ключ API Яндекс Маркета.
Делается это буквально в два клика в кабинете разработчика Яндекс
Ключ нужно указать в системной настройке yamarketreviews_yaMarketKey
Здесь важно заметить, что для ключа должен быть указан IP адрес сайта, где его будут использовать. Известны случаи когда Яндекс банит ключи без указания IP адреса. Самое интересное. что при получении ключа IP адрес указывать негде. Нет такого поля в интерфейсе ключей. Так что если вдруг у вас компонент не работает, а в логах висит соответствующая ошибка попробуйте получить ключ здесь
В описании проекта в свободном виде можно написать заблокированный ключ и сайт, где вы его планируете использовать. А также цель использования. Что то вроде «Мы планируем выводить отзывы о магазине на нашем сайте». Его активируют.
Отзывы о магазине
Реализованы при помощи сниппета getShopReviews
пример вызова и параметры:
// Классический вызов
[[!getShopReviews?
&shopid=`1586`
&saveTime=`3 days`
&sortby=`date`
&sortdir=`desc`
]]
// вызов через fenom
{'!getShopReviews' | snippet : [
'shopid' => 380682,
'saveTime' => '3 days'
'sortby' => 'date',
'sortdir' => 'desc'
]}Сниппет является оберткой для pdoPage и принимает все характерные для него параметры.Сниппет имеет несколько своих собственных параметров:
shopid — обязательный параметр. Собственно номер-идентификатор магазина в Яндекс Маркете, чьи отзывы вы желаете получить. Можно подсмотреть в адресной строке Маркета.
saveTime — время хранения отзывов в базе данных. Строка на английском с указанием времени. Например 2 hours, 3 days, 2 weeks, 1 month, 1 year. Для тех кто понимает о чем речь строка преобразуется функцией strtotime.
sortby Обязательным параметром является поле для сортировки отзывов. По умолчанию date.
Для сортировки доступны поля date, shopid, reviewid, grade(оценка от 1 до 5), agreeCount(С отзывом согласны), disagreeCount (с отзывом не согласны), author, expired (временная метка срока записи )
tpl — шаблон одного отзыва. Необязательный параметр
по умолчанию установлен чанк yaMarketReview.tpl
<div class="yaMarketReview">
<div class="ReviewHeader">
<p>Автор:<strong> [[+author]]</strong> Дата: <strong>[[+date]]</strong> Оценка:<strong>[[+grade]]</strong></p>
</div>
<div class="ReviewContent">[[+text]]</div>
<div class="ReviewFooter">
<p>Отзыв одобрили:<strong>[[+agreeCount]]</strong> Отзыв не одобрили: <strong>[[+disagreeCount]]</strong></p>
</div>
</div>wrapperTpl — шаблон-обертка для всех отзывов. Необязательный параметр
по умолчанию установлен чанк yaMarketReviews.tpl
<div class="yaMarketReviewsWrapper">
<p>Всего отзывов: [[+page.total]] </p>
<div>[[+output]]</div>
[[+page.nav]]
</div>Отзывы о товаре
Реализовано сниппетом getProductReviews
По сути сниппет имеет все те же настройки и параметры что и предыдущий, единственная разница — нужно указать id товара, а не магазина
// Классический вызов
[[!getProductReviews?
&productid=`1721921261`
&saveTime=`3 days`
&sortby=`date`
&sortdir=`desc`
]]
// вызов через fenom
{'!getProductReviews' | snippet : [
'productid' => 10752111,
'saveTime' => '1 day',
'sortby' => 'date',
'sortdir' => 'desc',
]}В 2019 году Яндекс закрыл этот API (бесплатный доступ). Так что компонент мертв.
Комментарии: 35
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Будет спрос — будут доработки.
Это позволит растянуть 100 запросов в сутки на буквально неограниченное количество посещений сайта.
При условии, что я увижу спрос на идею, конечно.
Ведь для сео очень важно, их собирать, а не перетирать их постоянно!
Идея очень хорошая, думаю пользоваться спросом будет точно, вопрос только цены если платный компонет будет))
Компонент бесплатный. Он уже готов, но никак не пройду модерацию, модератор занят сильно.
Если хотите найдите меня в Телеграм, контакте или скайпе — я дам пакет.
Ну или могу выслать на почту
я понял так, что старые все же удаляются
До недавнего времени компонент отлично работал, теперь в поле text сохраняется 0, с чем это может быть связано?
Можно прямо ссылки дать
market.yandex.ru/product/37056004/reviews?track=tabs — в маркете
gyazo.com/1b13fef045aef123f06fb8da1d72997d — принтскрин таблицы yaMarketReviews_productreviews
Проблема и ход действий:
Проблема — в поле text сохраняется 0 вместо текста отзыва
Ход действий:
Случай не стандартный, т.к. феном обрабатывает просто числа без кавычек, но может кому — нибудь пригодится и избавит от головной боли и не понимания в духе «всё же работало».
Ещё раз БОЛЬШОЕ человеческое СПАСИБО Николаю который ответил на вопросы, а не просто отмахнулся.
т.е. на данном этапе с yandex отзывы не подтянуть никак?
Я где то видел сторонние сервисы для получения данных от Яндекс API, которые работают как прослойка, промежуточный сервер. Что то вроде покупки вскладчину. Я бы в эту сторону смотрел и приспосабливался.