Еще один небольшой лайфхак для Pokupo
Всем привет. Не планировал на этой неделе публиковать ничего по платформе Pokupo, кроме того, что уже опубликовал. Однако в телеграмм чате Pokupo @amalinavia задала интересный вопрос, решение которого штатными средствами не предусмотрено.
Речь о добавлении описания товара в режиме плитки или карточки. Решить эту задачу, как обычно, можно несколькими способами. Самый простой вариант - добавить вот такую строчку в нужное место шаблона <p data-bind="html: description"></p>. О том как править шаблоны я писал вот тут
Но если у вас нет своего хостинга, этот вариант не подходит. Поэтому я подготовил второй способ. Чтобы им воспользоваться, достаточно в панели управления магазином, в разделе "Коды сторонних сервисов" добавить немного js кода
<script type="text/javascript">
goods = [];
//id магазина нужно заменит на свой
_$.getJSON('https://seller.pokupo.ru/api/goods/8591/search/?typeResponse=json', function(data)
{
_$.each( data, function( key, val )
{
if(!isNaN(val.id))
{
goods[val.id]=val.description;
}
});
});
_$('body').on('mouseenter', '.cards .b-item--dublicate', function () {
m=_$(this).html().match(/id=[0-9]*"/)+'';
id=m.replace(/[a-z="']*/g, '');
_$("."+id+"").remove();
_$(this).append( "<div class='"+id+"'>"+goods[id]+"</div>" );
});
</script>
Принцип работы прост. Получаем данные о товарах магазина и заносим их в массив goods. Далее создаем обработчик событий для плитки с данными товара. При наведении мышки на плитку, определяем id товара и добавляем соответствующее описание из массива goods. Результат на картинке ниже
Решение не идеально, но надеюсь такой вариант подойдет для @amalinavia.
Ну а на сегодня все.