Фид товаров для Facebook
Рекламщики дали задачу собрать им фид товаров для импорта в facebook*.
Распишу этапы работ, которые делал, может кому нибудь пригодится. А заодно может кто-то предложит решение лучше и укажет на мои ошибки, которые возможно есть))
1) Создаем ресурс. Я назвал его facebook*.
Шаблон: пустой шаблон (я код указал сразу в Содержимом, поэтому пустой шаблон, можно все запихнуть в отдельный Шаблон и указать его)
Псевдоним: facebook*
Тип содержимого: XML
Содержимое
2) Создаем чанк tpl.facebook*Item.
tpl.facebook*Item
3) Создаем чанк tpl.facebook*Gallery в котором выводим все изображения товара, кроме первого. Первое изображение выводится в чанке выше. Почему то параметр offset не работает в msGallery, поэтому отсеял первый элемент в цикле foreach.
tpl.facebook*Gallery
4) Еще у меня используется сниппет title и вызывается в виде модификатора. Нашел на просторах интернета. Сниппет чистит строку от ненужных символов, а также заменяет кавычки на кавычки-елочки, которые не сломают вывод.
title
После того как все сделали по ссылке site_name.ru/facebook*.xml будет доступен наш фид.
Документация по параметрам есть тут https://www.facebook*.com/business/help
Распишу этапы работ, которые делал, может кому нибудь пригодится. А заодно может кто-то предложит решение лучше и укажет на мои ошибки, которые возможно есть))
1) Создаем ресурс. Я назвал его facebook*.
Шаблон: пустой шаблон (я код указал сразу в Содержимом, поэтому пустой шаблон, можно все запихнуть в отдельный Шаблон и указать его)
Псевдоним: facebook*
Тип содержимого: XML
Содержимое
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<title>{1 | resource : 'longtitle' | title}</title>
<link rel="self" href="{$_modx->config.site_url}"/>
{'!msProducts' | snippet : [
'parents' => '3',
'limit' => '0',
'includeThumbs' => 'medium',
'tpl' => 'tpl.facebook*Item',
]}
</feed>
2) Создаем чанк tpl.facebook*Item.
tpl.facebook*Item
<entry>
<g:id>{$id}</g:id>
<g:title>{$pagetitle | title}</g:title>
<g:description>{$description | title}</g:description>
<g:link>{$id | url : ['scheme' => 'full']}</g:link>
<g:image_link>{$_modx->config.site_url}{$medium}</g:image_link>
{'!msGallery' | snippet : [
'product' => $id,
'tpl' => 'tpl.facebook*Gallery',
]}
<g:brand>{$_pls['vendor.name']}</g:brand>
<fb_product_category>{$parent | resource : 'pagetitle'}</fb_product_category>
<g:condition>new</g:condition>
<g:availability>available for order</g:availability>
{if $old_price > 0}
<g:price>{$old_price | replace : ' ' : ''} RUB</g:price>
<g:sale_price>{$price | replace : ' ' : ''} RUB</g:sale_price>
{else}
<g:price>{$price | replace : ' ' : ''} RUB</g:price>
{/if}
</entry>
3) Создаем чанк tpl.facebook*Gallery в котором выводим все изображения товара, кроме первого. Первое изображение выводится в чанке выше. Почему то параметр offset не работает в msGallery, поэтому отсеял первый элемент в цикле foreach.
tpl.facebook*Gallery
{if $files?}
{foreach $files as $file}
{if !$file@first}
<additional_image_link>{$_modx->config.site_url}{$file['medium']}</additional_image_link>
{/if}
{/foreach}
{/if}
4) Еще у меня используется сниппет title и вызывается в виде модификатора. Нашел на просторах интернета. Сниппет чистит строку от ненужных символов, а также заменяет кавычки на кавычки-елочки, которые не сломают вывод.
title
<?php
$str = preg_replace ("#([^=])\"([^\"]+)\"#", "\\1«\\2»", $input);
$str = str_replace (array("\r","\n"), "", $str);
$str = str_replace ('&', '', $str);
$str = strip_tags ($str);
return $str;
После того как все сделали по ссылке site_name.ru/facebook*.xml будет доступен наш фид.
Документация по параметрам есть тут https://www.facebook*.com/business/help
*Meta, которой принадлежат facebook и instagram признана экстремистской в России
Поблагодарить автора
Отправить деньги
Комментарии: 7
Решение хорошее.
Но раз это готовое бесплатное решение, то позволите мне немного рекламы?)
Для тех кто хочет визуально управлять элементами с описаниями полей, выгружать большие объемы точно валидного XML и не трогать код — то выгрузка под похожий формат Google Rss 2.0 (это Гугл покупки, и что-то для Фейсбука) есть в компоненте YandexMarket2 (пост о добавлении такого типа выгрузок писать не стал, инфа была только в changelog)
Но раз это готовое бесплатное решение, то позволите мне немного рекламы?)
Для тех кто хочет визуально управлять элементами с описаниями полей, выгружать большие объемы точно валидного XML и не трогать код — то выгрузка под похожий формат Google Rss 2.0 (это Гугл покупки, и что-то для Фейсбука) есть в компоненте YandexMarket2 (пост о добавлении такого типа выгрузок писать не стал, инфа была только в changelog)
Но раз это готовое бесплатное решение, то позволите мне немного рекламы?Возьму на заметку. Готового решения не смог нагуглить, поэтому изобрел свой велосипед.
Я в 4м пункте написал.
Этот сниппет, выводится в виде модификатора, чистит строку от ненужных символов, а также заменяет кавычки на кавычки-елочки, которые не сломают вывод.
Этот сниппет, выводится в виде модификатора, чистит строку от ненужных символов, а также заменяет кавычки на кавычки-елочки, которые не сломают вывод.
Подскажите, изображения с watermark не принимаются Фейсбуком или проходят проверку?
- имеют белый фон;
- наглядно демонстрируют товар целиком;
- демонстрируют товар с разных сторон или ракурсов (если изображений несколько);
- показывают товар в реальных жизненных ситуациях.
- текст (например, призывы к действию или промокоды);
- информацию, привязанную ко времени (например, краткосрочное снижение цены);
- водяные знаки.
Добрый день.
Вот что написано в справочнике Facebook
https://www.facebook.com/business/help/686259348512056?id=725943027795860
…
…
Рекомендации для изображений товаров
Используйте изображения товаров, которые:
Не используйте изображения товаров, которые содержат:
…
PS. На сайте для которого делал Фид, все изображения подходят под требования.
Точно не подскажу, пройдут ли проверку изображения с watermark.
Вот что написано в справочнике Facebook
https://www.facebook.com/business/help/686259348512056?id=725943027795860
…
…
Рекомендации для изображений товаров
Используйте изображения товаров, которые:
Не используйте изображения товаров, которые содержат:
…
PS. На сайте для которого делал Фид, все изображения подходят под требования.
Точно не подскажу, пройдут ли проверку изображения с watermark.
Благодарю.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.