Shopware 6 Facebook Feed export

Hallo zusammen,
ich bekomme den Facebook Feed Export nicht zum laufen.
Hat jemand für mich eine funktionierende Kopfzeile und Template?
Habe auch das Problem, das die Beschreibung immer im HTML übertragen wird, das mag Facebook leider nicht.

Viele Grüße
Daniel

Hi ^^ damit kann ich dir helfen.

Kopfzeile:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <atom:link href="{{ productExport.salesChannelDomain.url }}/store-api/product-export/{{ productExport.accessKey }}/{{ productExport.fileName }}" rel="self" type="application/rss+xml" />
        <title>{{ context.salesChannel.name }}</title>
        <link>{{ productExport.salesChannelDomain.url }}</link>
        <language>{{ productExport.salesChannelDomain.language.locale.code }}</language>
        <image>
            <url></url>
            <title>{{ context.salesChannel.name }}</title>
            <link>{{ productExport.salesChannelDomain.url }}</link>
        </image>

Produktzeile:

<item>
    <g:id>{{ product.productNumber }}</g:id>
    <title>{{ product.translated.name|raw|length > 62 ? product.translated.name|raw|slice(0,062) ~ '...' : product.translated.name|raw }}</title>
    <description>{{product.description|striptags}}</description>
    <g:google_product_category>5457</g:google_product_category>
    <g:product_type>{{ product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw|escape }}</g:product_type>
    <link>{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}</link>
    <g:image_link>{{ product.cover.media.url }}</g:image_link>
    <additional_image_link>{% for img in product.media.elements %}
{{ img.media.url }},
{% endfor %}</additional_image_link>
    <g:condition>new</g:condition>
    <g:availability>in stock</g:availability>
    {% set price = product.calculatedPrice %}
    {%- if product.calculatedPrices.count > 0 -%}
        {% set price = product.calculatedPrices.last %}
    {%- endif -%}

    <g:price>{{ price.unitPrice|number_format(context.currency.itemRounding.decimals, '.', '') }} {{ context.currency.isoCode }}</g:price>
    <g:brand>HIER BRAND EINGEBEN</g:brand>
    <g:gtin>{{ product.ean }}</g:gtin>
    <g:mpn>{{ product.manufacturerNumber }}</g:mpn>
</item>

Achte bitte noch auf Brand, da hatten wir manuell den Namen vom Shop eingetragen :slight_smile:
PS: google product category ist ebenfalls vorausgewählt - eine Liste findest du schnell über Google. Wir haben den einfach drin gelassen, funktioniert so auch einwandfrei :slight_smile:

1 „Gefällt mir“

Hi, danke für die Hilfe.

Jetzt funktioniert alles.

Viele Grüße
Daniel

Hi und danke für das Template. Das war sehr hilfreich.

Ich habe eine Frage. Da in unserem Produktkatalog das Titelbild ein Freistellerbild ist, wir für den Katalog und insbesondere die Dynamic Ads auf Facebook eher die Mood-Bilder nutzen wollen, soll die Ausgabe des Media-Links etwas modifziert werden. Grob soll für alle Produkte mit nur einem hinterlegten Bild das Cover-Bild ausgegeben werden, für alle anderen das zweite Bild (das i.d.R. ein Mood-Bild ist).

Ich habe auch schon etliche Varianten ausprobiert, aber die Ausgabe ist leider immer fehlerhaft.

<g:image_link>
{% if product.media|length > 1 %}
{% for mediaAssociation in product.media|slice(2, 1) %}
{{ mediaAssociation.media.url }}
{% endfor %}
{% else %}
{{ product.cover.media.url }}
{% endif %}
</g:image_link>

Bei diesem Code bekomme ich für etliche Produkte überhaupt keinen Link ausgegeben, obwohl Bilder hinterlegt sind. Bei anderen Produkten erhalte ich den Bild-Link wie beabsichtigt. Einen Grund konnte ich aber noch nicht ausmachen.

Wenn jemand einen Tipp hat, wäre ich dankbar.

Hi edelweiss,

probier das hier mal - so funktioniert es zumindest bei uns:
Hier wird genau das 2. Bild ausgegeben.

{% if product.media|length > 1 %}{% for mediaAssociation in product.media|slice(2,1) %}{{ mediaAssociation.media.url }}{% endfor %}{% else %}{{ product.cover.media.url }}{% endif %}

Grüße