Автор Тема: Add image media content and enclosure tags to RSS (автопост в Pinterest)  (Прочитано 839 раз)

25 Ноябрь 2019, 13:05:13
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
Прошу помощи знатоков.

Pinterest предоставляет возможность автопоста товаров (автоматической публикации товарных пинов) через подключение RSS фида.
Подробное описание здесь  https://help.pinterest.com/ru/business/article/auto-publish-pins-from-your-rss-feed 
Цитата оттуда:
Цитировать
Поддерживаемые форматы: RSS 2.* и RSS 1.* (RDF). Atom в настоящее время не поддерживается.
Убедитесь, что страница RSS-канала создана в формате XML.
Выбирайте изображения высокого качества. Во время публикации пинов используются теги <image>, <enclosure> и <media:content> для каждого тега <item>.
Название и описание пина формируются на основе тегов <title> и <description> для каждого тега <item>.
Для каждого элемента <item> требуется указать ссылку на подтвержденный домен.

В фиде, выдаваемом родным rss-генератором Престы, вышеупомянутые теги <image>, <enclosure> и <media:content> отсутствуют.

Нашел на просторах интернета код для rss-генератора wordpress, который, похоже, делает ровно то что надо, т.е. добавляет эти теги в фид https://www.sitekickr.com/snippets/wordpress/add-image-media-content-enclosure-tags-rss

Вопрос: как этот код адаптировать для Престы (1.7.6), модуль RSS-лента товаров v1.0.1?

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

 
Giddy
25 Ноябрь 2019, 14:43:04
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
На prestashop.com модуль продают Module Auto-Post Products to Pinterest.
25 Ноябрь 2019, 14:59:27
Ответ #2
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
https://github.com/PrestaShop/ps_feeder/blob/master/views/template/front/rss.tpl
Можно добавить,
<enclosure url="{$product['cover']['bySize']['small_default']['url'] nofilter}" length="" type="image/jpg" />
<media:content url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg" />
<media:thumbnail url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg" />
25 Ноябрь 2019, 20:44:42
Ответ #3
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
https://github.com/PrestaShop/ps_feeder/blob/master/views/template/front/rss.tpl
Можно добавить,
<enclosure url="{$product['cover']['bySize']['small_default']['url'] nofilter}" length="" type="image/jpg" />
<media:content url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg" />
<media:thumbnail url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg" />

Уже спасибо :) Только куда этот код надо добавить - в конец rss.tpl, или после </item>?
Я же просил - для чайника :)
Giddy
25 Ноябрь 2019, 20:46:41
Ответ #4
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
На prestashop.com модуль продают Module Auto-Post Products to Pinterest.

Спасибо, я в курсе. На prestashop.com продают много интересных и полезных модулей, только где же столько денег взять?
Giddy
26 Ноябрь 2019, 16:47:44
Ответ #5
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
https://github.com/PrestaShop/ps_feeder/blob/master/views/template/front/rss.tpl
Можно добавить,
<enclosure url="{$product['cover']['bySize']['small_default']['url'] nofilter}" length="" type="image/jpg" />
<media:content url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg" />
<media:thumbnail url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg" />

Вставил этот код после </item>, на выходе получаю вот такое:
Цитировать
This page contains the following errors:
error on line 20 at column 182: Namespace prefix media on content is not defined
error on line 21 at column 187: Namespace prefix media on thumbnail is not defined
error on line 28 at column 186: Namespace prefix media on content is not defined
error on line 29 at column 191: Namespace prefix media on thumbnail is not defined
error on line 36 at column 193: Namespace prefix media on content is not defined
error on line 37 at column 198: Namespace prefix media on thumbnail is not defined
error on line 44 at column 150: Namespace prefix media on content is not defined
error on line 45 at column 155: Namespace prefix media on thumbnail is not defined
error on line 52 at column 218: Namespace prefix media on content is not defined
error on line 53 at column 223: Namespace prefix media on thumbnail is not defined
error on line 60 at column 195: Namespace prefix media on content is not defined
error on line 61 at column 200: Namespace prefix media on thumbnail is not defined
error on line 68 at column 192: Namespace prefix media on content is not defined
error on line 69 at column 197: Namespace prefix media on thumbnail is not defined
error on line 77 at column 202: Namespace prefix media on thumbnail is not defined
error on line 84 at column 176: Namespace prefix media on content is not defined
error on line 85 at column 181: Namespace prefix media on thumbnail is not defined
error on line 92 at column 204: Namespace prefix media on content is not defined
error on line 93 at column 209: Namespace prefix media on thumbnail is not defined
Below is a rendering of the page up to the first error.
Giddy
26 Ноябрь 2019, 23:04:07
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Перед </item> добавляете и экранируете как в оригинале.
<![CDATA[...]]>
27 Ноябрь 2019, 06:33:12
Ответ #7
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
Перед </item> добавляете и экранируете как в оригинале.
<![CDATA[...]]>

Попробовал сделать как в оригинале, как обезъяна:

<rss version="2.0">
  <channel>
    <title><![CDATA[{$shop_name}]]></title>
    <description><![CDATA[{$metas['description']}]]></description>
    <link>{$shop_uri}</link>
    <generator>PrestaShop</generator>
    <webMaster>{$shop_email}</webMaster>
    <language>{$language_iso}</language>
    <image>
      <title><![CDATA[{$shop_name}]]></title>
      <url>{$logo}</url>
      <link>{$shop_uri}</link>
    </image>
    {foreach from=$products item=product}
      <item>
        <title><![CDATA[{$product['name'] nofilter} - {$product['price'] nofilter}]]></title>
        <description><![CDATA[<img src="{$product['cover']['bySize']['small_default']['url'] nofilter}" title="{$product['name'] nofilter}" alt="thumb" />{$product['description_short'] nofilter}]]></description>
        <link><![CDATA[{$product['link'] nofilter}]]></link>
    <enclosure><![CDATA[<url="{$product['cover']['bySize']['small_default']['url'] nofilter}" length="" type="image/jpg"/>]]></enclosure>
    <media:content><![CDATA[<url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg"/>]]></media:content>
        <media:thumbnail><![CDATA[<url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg"/>]]</media:thumbnail>
      </item>
    {/foreach}
  </channel>
</rss>

На выходе:
Цитировать
This page contains the following errors:
error on line 19 at column 20: Namespace prefix media on content is not defined
error on line 20 at column 25: Namespace prefix media on thumbnail is not defined
error on line 23 at column 98: Opening and ending tag mismatch: thumbnail line 0 and title

Понимаю, что напартачил, но как правильно не знаю.

P.S. На Pinterest надо заливать полноразмерные картинки, а не миниатюрки и не превьюшки. А мне кажется, что в коде не то. Как исправить?
Giddy
27 Ноябрь 2019, 13:57:13
Ответ #8
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
Подправил вот так:
     <item>
        <title><![CDATA[{$product['name'] nofilter} - {$product['price'] nofilter}]]></title>
        <description><![CDATA[<img src="{$product['cover']['bySize']['small_default']['url'] nofilter}" title="{$product['name'] nofilter}" alt="thumb" />{$product['description_short'] nofilter}]]></description>
        <link><![CDATA[{$product['link'] nofilter}]]></link>
    <enclosure ![CDATA[url="{$product['cover']['bySize']['small_default']['url'] nofilter}" length="" type="image/jpg"]] />
    <media:content><![CDATA[<url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg"/>]]></media:content>
        <media:thumbnail><![CDATA[<url="{$product['cover']['bySize']['small_default']['url'] nofilter}" width="" height="" medium="image" type="image/jpg"/>]]></media:thumbnail>
      </item>
 

Прежние ошибки ушли, появилась новая:
Цитировать
This page contains the following errors:
error on line 18 at column 17: error parsing attribute name

Где копать?
Giddy
27 Ноябрь 2019, 14:28:11
Ответ #9
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
feed validator выдает такое
Цитировать
Sorry
This feed does not validate.

line 18, column 16: XML parsing error: <unknown>:18:16: not well-formed (invalid token) [help]

       <enclosure ![CDATA
Giddy
27 Ноябрь 2019, 15:29:53
Ответ #10
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Стандартный rss feed от prestashop не пойдет. Формат выдает другой. Для pinterest нужен другой, поэтому валидатор он не пройдет.
Можно клонировать модуль ps_feeder, изменить переменные шаблона в контроллере и в шаблоне. Тогда пройдет валидацию.
То что советывали, добавление тегов в tpl, не будет работать.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
27 Ноябрь 2019, 15:48:20
Ответ #11
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
    • Просмотр профиля
    • HandMadeSPb
Стандартный rss feed от prestashop не пойдет. Формат выдает другой. Для pinterest нужен другой, поэтому валидатор он не пройдет.
Можно клонировать модуль ps_feeder, изменить переменные шаблона в контроллере и в шаблоне. Тогда пройдет валидацию.
То что советывали, добавление тегов в tpl, не будет работать.

Клонировать модуль - это я могу. Изменить переменные шаблона - тоже наверное могу, если мне подскажут, где, какие и на что изменить :)

Взялся бы кто-нибудь из программеров. Я бы даже купил готовый модуль за разумные деньги.
Судя по всему, медийный rss-фид много где используется, не только на Pinterest, так что полезная бы штука получилась для тех кто понимает :), а работы на первый взгляд не очень много.
Giddy