Фид товаров для 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.
                Благодарю.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    
            
            
                    
                    
                