Google Shopping Produktkatalog (Shopware 6)

Hinweis: Dieses Template gilt für

  • Google Shopping
  • Pinterest


In dieser Anleitung findest Du die Templates, die Du verwenden musst um den Google Shopping Produktkatalog zu erstellen.

Die Schritt-für-Schritt Anleitung findest Du in der Anleitung für das Plugin "Google Shopping PRO"

und der App "Google Shopping (Shopware 6 cloud)"

Header row / 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>
        <description>{# change your shop's description #}</description>
        <link>{{ productExport.salesChannelDomain.url }}</link>
        <language>{{ productExport.salesChannelDomain.language.locale.code }}</language>
        <image>
            <url>{# add your logo URL #}</url>
            <title>{{ context.salesChannel.name }}</title>
            <link>{{ productExport.salesChannelDomain.url }}</link>
        </image>

Footer row / Fußzeile

</channel>
</rss>

Product row / Produktzeile (ab SW 6.6.0.0)

Letzte Änderungen:

09.04.2025
Fehlerbehebung im Zusammenhang mit den Feldern für Zertifizierungsattribute.

25.03.2025
Felder für Zertifizierungsattribute hinzugefügt.

17.03.2025
Verbesserung der Erkennung von Größe, Farbe, Geschlecht anhand der Eigenschaften.

19.11.2024
Fehlerbehebung, wenn ein Artikelbild in Shopware nicht korrekt hochgeladen wurde.

22.03.2024
Neu erstellt für Shopware 6.6

{# Entferne diese Zeile, um alle Produkte zu Google Shopping zu übertragen #}
{#% if product.customFields and product.customFields.lenz_google_shopping_active is defined and product.customFields.lenz_google_shopping_active == 1 %#}

{% set sizeByOption = '' %}
{% set colorByOption = '' %}
{% set genderByOption = '' %}

{% for property in product.properties %}
    {% set group = property.group %}
{% endfor %}

{% for group in product.sortedProperties %}
    {% for option in group.options %}
        {% if group.name == "Größe" and option.id in product.optionIds %}
            {% set sizeByOption = option.name %}
        {% endif %}

        {% if group.name == "Farbe" and option.id in product.optionIds %}
            {% set colorByOption = option.name %}
        {% endif %}

        {% if group.name == "Geschlecht" %}
            {% set genderByOption = option.name %}
        {% endif %}
    {% endfor %}
{% endfor %}

{% for option in product.options %}
    {% if option.group.translated.name == "Größe" %}
        {% set sizeByOption = option.name %}
    {% endif %}
    {% if option.group.translated.name == "Farbe" %}
        {% set colorByOption = option.name %}
    {% endif %}
       {% if option.group.translated.name == "Geschlecht" %}
        {% set genderByOption = option.name %}
    {% endif %}
{% endfor %}

{% if product.isCloseout is false or product.availableStock >= product.minPurchase %}
	{% set availability = "in stock" %}
{% elseif (product.availableStock < product.minPurchase) and product.restockTime %}
	{% set availability = "preorder" %}
{% else %}
	{% set availability = "out of stock" %}
{% endif %}

{% set availabilityDate = "" %}
{% if availability == "preorder" or availability == "out_of_stock" %}
	{% set restockTime = 7 %}
	{% if product.restockTime %}
    	{% set restockTime = product.restockTime %}
	{% endif %}
	{% set availabilityDate = ("+" ~ restockTime ~ " days")|date("c") %}
{% endif %}

{% set categoryTaxonomy = "" %}
{% for category in product.categories %}
	{% if lenz_google_shopping_taxonomy is defined and category.translated.customFields.lenz_google_shopping_category_taxonomy is defined and lenz_google_shopping_taxonomy[category.translated.customFields.lenz_google_shopping_category_taxonomy] is defined %}
		{% set categoryTaxonomy = lenz_google_shopping_taxonomy[category.translated.customFields.lenz_google_shopping_category_taxonomy] %}
	{% elseif category.translated.customFields.lenz_google_shopping_category_taxonomy is defined %}
		{% set categoryTaxonomy = category.translated.customFields.lenz_google_shopping_category_taxonomy %}
	{% endif %}
{% endfor %}

{% if product.calculatedPrices.first and product.calculatedPrices.first.listPrice and product.calculatedPrices.first.listPrice.price > product.calculatedPrices.first.unitPrice %}
	{# Rule based pricing - Discounted price #}
	{% set price = product.calculatedPrices.first.listPrice.price %}
	{% set salePrice = product.calculatedPrices.first.unitPrice %}
{% elseif product.calculatedPrices.first is defined and product.calculatedPrices.first.listPrice is defined and product.calculatedPrices.first.listPrice != null %}
	{# Rule based pricing - list price #}
	{% set price = product.calculatedPrices.first.listPrice.price %}
	{% set salePrice = null %}
{% elseif product.calculatedPrices.first is defined and product.calculatedPrices.first.unitPrice is defined %}
	{# Rule based pricing - unit price #}
	{% set price = product.calculatedPrices.first.unitPrice %}
	{% set salePrice = null %}
{% elseif product.calculatedPrice.listPrice and product.calculatedPrice.listPrice.price > product.calculatedPrice.unitPrice %}
	{% set price = product.calculatedPrice.listPrice.price %}
	{% set salePrice = product.calculatedPrice.unitPrice %}
{% else %}
	{# Default price #}
	{% set price = product.calculatedPrice.unitPrice %}
	{% set salePrice = null %}
{% endif %}

{% if product.customFields.lenz_google_shopping_price is defined and product.customFields.lenz_google_shopping_price is not null %}
	{% set price = product.customFields.lenz_google_shopping_price %}
{% endif %}

{% if product.customFields.lenz_google_shopping_sale_price is defined and product.customFields.lenz_google_shopping_sale_price is not null %}
	{% set salePrice = product.customFields.lenz_google_shopping_sale_price %}
{% endif %}

{% set productPrice = price %}
{% if salePrice is not null %}
	{% set productPrice = salePrice %}
{% endif %}

{% set useAlternativeImages = false %}
{% if 
	(
		product.customFields.lenz_google_shopping_image1 is defined
		and product.customFields.lenz_google_shopping_image1 is not empty
	) or (
		product.customFields.lenz_google_shopping_image2 is defined
		and product.customFields.lenz_google_shopping_image2 is not empty
	) or (
		product.customFields.lenz_google_shopping_image3 is defined
		and product.customFields.lenz_google_shopping_image3 is not empty
	) or (
		product.customFields.lenz_google_shopping_image4 is defined
		and product.customFields.lenz_google_shopping_image4 is not empty
	) or (
		product.customFields.lenz_google_shopping_image5 is defined
		and product.customFields.lenz_google_shopping_image5 is not empty
	)  
 %}
	{% set useAlternativeImages = true %}
{% endif %}

{% set imageCounter = 0 %}
<item>
    <g:id>{{ product.productNumber }}</g:id>
    <g:title>{% if product.customFields.lenz_google_shopping_title is defined and product.customFields.lenz_google_shopping_title != "" %}{{ product.customFields.lenz_google_shopping_title|escape }}{% else %}{{ product.translated.name|escape }}{% endif %}</g:title>
    <g:description>{% if product.customFields.lenz_google_shopping_description is defined and product.customFields.lenz_google_shopping_description !="" %}{{ product.customFields.lenz_google_shopping_description|escape }}{% else %}{{ product.translated.description|striptags|slice(0, 5000)|escape }}{% endif %}</g:description>
    <link>{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}</link>
	{% if useAlternativeImages == true %}
		{% set isFirstAlternativeImage = true %}
		{% for i in 1..5 %}
			{% if product.customFields['lenz_google_shopping_image' ~ i] is defined and product.customFields['lenz_google_shopping_image' ~ i] is not empty %}
				{% if isFirstAlternativeImage == true %}
					<g:image_link>LENZGOOGLESHOPPINGIMAGE_{{ product.customFields['lenz_google_shopping_image' ~ i] }}_LENZGOOGLESHOPPINGIMAGE</g:image_link>
					{% set isFirstAlternativeImage = false %}
				{% else %}
					<g:additional_image_link>LENZGOOGLESHOPPINGIMAGE_{{ product.customFields['lenz_google_shopping_image' ~ i] }}_LENZGOOGLESHOPPINGIMAGE</g:additional_image_link>
				{% endif %}
			{% endif %}
		{% endfor %}
	{% else %}
		{% for key, media in product.media|filter((mediaItem) => mediaItem.media != null)|sort((a, b) => a.position <=> b.position) %}
			{% if imageCounter == 0 %}
				<g:image_link>{{ media.media.url }}</g:image_link>
			{% elseif imageCounter < 10 %}
				<g:additional_image_link>{{ media.media.url }}</g:additional_image_link>
			{% endif %}

			{% set imageCounter = imageCounter + 1 %}
		{% endfor %}
	{% endif %}
    <g:availability>{{ availability }}</g:availability>
	{% if product.customFields.lenz_google_shopping_expiration_date is defined and product.customFields.lenz_google_shopping_expiration_date != '' %}<g:expiration_date>{{ product.customFields.lenz_google_shopping_expiration_date }}</g:expiration_date>{% endif %}
    {% if price != null %}
		<g:price>{{ price|number_format(context.currency.itemRounding.decimals, '.', '') }} {{ context.currency.isoCode }}</g:price>
	{% endif %}
	
	{% if salePrice != null %}
		<g:sale_price>{{ salePrice|number_format(context.currency.itemRounding.decimals, '.', '') }} {{ context.currency.isoCode }}</g:sale_price>
	{% endif %}
    {% if product.purchaseunit and product.referenceunit and product.unit %}
        <g:unit_pricing_measure>{{ product.purchaseunit }} {{ product.unit.translated.name|replace({'Stück': 'ct', 'Stck.': 'ct', 'm²': 'sqm', 'Milliliter': 'ml', 'Liter': 'l', 'Kilogramm': 'kg', 'Gramm': 'g', 'Zentimeter': 'cm', 'Meter': 'm'}) }}</g:unit_pricing_measure>
	<g:unit_pricing_base_measure>{{ product.referenceunit }} {{ product.unit.translated.name|replace({'Stück': 'ct', 'Stck.': 'ct', 'm²': 'sqm', 'Milliliter': 'ml', 'Liter': 'l', 'Kilogramm': 'kg', 'Gramm': 'g', 'Zentimeter': 'cm', 'Meter': 'm'}) }}</g:unit_pricing_base_measure>
    {% endif %}
    <g:google_product_category>
		{%- 
			if product.translated.customFields.lenz_google_shopping_category is defined
			and lenz_google_shopping_taxonomy is defined
			and lenz_google_shopping_taxonomy[product.translated.customFields.lenz_google_shopping_category] is defined
		-%}
			{{- lenz_google_shopping_taxonomy[product.customFields.lenz_google_shopping_category] -}}
		{%- elseif product.customFields.lenz_google_shopping_category_number is defined -%}
			{{- product.customFields.lenz_google_shopping_category_number -}}
		{%- elseif categoryTaxonomy is not empty -%}
			{{ categoryTaxonomy }}
		{%- else -%}
			{# Default product category here #}
		{%- endif -%}
	</g:google_product_category>
    <g:product_type>{% if product.categories|length > 0 %}{{ product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw|escape }}{% endif %}</g:product_type>
    {% if product.translated.customFields.lenz_google_shopping_brand is defined %}<g:brand>{{ product.translated.customFields.lenz_google_shopping_brand|escape }}</g:brand>{% elseif product.manufacturer is defined and product.manufacturer is not null %}<g:brand>{{ product.manufacturer.translated.name|escape }}</g:brand>{% endif %}
    <g:gtin>{{ product.ean|escape }}</g:gtin>
    <g:mpn>{{ product.manufacturerNumber|escape }}</g:mpn>
	<g:identifier_exists>{% if product.ean or (product.manufacturer is defined and product.manufacturer is not null and product.manufacturer.name and product.manufacturerNumber) %}yes{% else %}no{% endif %}</g:identifier_exists>
	<g:condition>{% if product.customFields.lenz_google_shopping_condition is defined and product.customFields.lenz_google_shopping_condition != '' %}{{ product.customFields.lenz_google_shopping_condition|escape }}{% else %}new{% endif %}</g:condition>
    <g:adult>{% if product.customFields.lenz_google_shopping_adult is defined and product.customFields.lenz_google_shopping_adult != '' %}yes{% else %}no{% endif %}</g:adult>
    {% if product.customFields.lenz_google_shopping_multipack is defined and product.customFields.lenz_google_shopping_multipack != '' %}<g:multipack>{{ product.customFields.lenz_google_shopping_multipack|escape }}</g:multipack>{% endif %}
    {% if product.customFields.lenz_google_shopping_is_bundle is defined and product.customFields.lenz_google_shopping_is_bundle != '' %}<g:is_bundle>yes</g:is_bundle>{% endif %}
    {% if product.customFields.lenz_google_shopping_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_energy_efficiency_class != '' %}<g:energy_efficiency_class>{{ product.customFields.lenz_google_shopping_energy_efficiency_class|escape }}</g:energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_min_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_min_energy_efficiency_class != '' %}<g:min_energy_efficiency_class>{{ product.customFields.lenz_google_shopping_min_energy_efficiency_class|escape }}</g:min_energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_max_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_max_energy_efficiency_class != '' %}<g:max_energy_efficiency_class>{{ product.customFields.lenz_google_shopping_max_energy_efficiency_class|escape }}</g:max_energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_age_group is defined and product.customFields.lenz_google_shopping_age_group != '' %}<g:age_group>{{ product.customFields.lenz_google_shopping_age_group|escape }}</g:age_group>{% endif %}
    {% if product.customFields.lenz_google_shopping_color is defined and product.customFields.lenz_google_shopping_color != '' %}<g:color>{{ product.customFields.lenz_google_shopping_color|escape }}</g:color>{% elseif colorByOption != "" %}<g:color>{{ colorByOption|escape}}</g:color>{% endif %}
    {% if product.customFields.lenz_google_shopping_gender is defined and product.customFields.lenz_google_shopping_gender != '' %}<g:gender>{{ product.customFields.lenz_google_shopping_gender|escape }}</g:gender>{% elseif genderByOption != "" %}<g:gender>{{ genderByOption|escape }}</g:gender>{% endif %}
    {% if product.customFields.lenz_google_shopping_material is defined and product.customFields.lenz_google_shopping_material != '' %}<g:material>{{ product.customFields.lenz_google_shopping_material|escape }}</g:material>{% endif %}
    {% if product.customFields.lenz_google_shopping_pattern is defined and product.customFields.lenz_google_shopping_pattern != '' %}<g:pattern>{{ product.customFields.lenz_google_shopping_pattern|escape }}</g:pattern>{% endif %}
    {% if product.customFields.lenz_google_shopping_size is defined and product.customFields.lenz_google_shopping_size != '' %}<g:size>{{ product.customFields.lenz_google_shopping_size|escape }}</g:size>{% elseif sizeByOption != '' %}<g:size>{{ sizeByOption }}</g:size>{% endif %}
    {% if product.customFields.lenz_google_shopping_size_type is defined and product.customFields.lenz_google_shopping_size_type != '' %}<g:size_type>{{ product.customFields.lenz_google_shopping_size_type|escape }}</g:size_type>{% endif %}
    {% if product.customFields.lenz_google_shopping_size_system is defined and product.customFields.lenz_google_shopping_size_system != '' %}<g:size_system>{{ product.customFields.lenz_google_shopping_size_system|escape }}</g:size_system>{% endif %}
    {% if product.customFields.lenz_google_shopping_item_group_id is defined and product.customFields.lenz_google_shopping_item_group_id != '' %}<g:item_group_id>{{ product.customFields.lenz_google_shopping_item_group_id|escape }}</g:item_group_id>{% elseif product.parentId is not null %}<g:item_group_id>{{ product.parentId|escape }}</g:item_group_id>{% endif %}
    {% if product.customFields.lenz_google_shopping_product_highlight is defined and product.customFields.lenz_google_shopping_product_highlight|trim != '' %}
        {% set highlights = product.customFields.lenz_google_shopping_product_highlight|split("\n") %}
        {% for highlight in highlights %}
            <g:product_highlight>{{ highlight|escape }}</g:product_highlight>
        {% endfor %}
    {% endif %}
    {% if product.customFields.lenz_google_shopping_certification_authority is defined and product.customFields.lenz_google_shopping_certification_authority != '' and product.customFields.lenz_google_shopping_certification_name is defined and product.customFields.lenz_google_shopping_certification_name != '' %}
		<g:certification>
			<g:certification_authority>{{ product.customFields.lenz_google_shopping_certification_authority|escape }}</g:certification_authority>
			<g:certification_name>{{ product.customFields.lenz_google_shopping_certification_name|escape }}</g:certification_name>
			{% if product.customFields.lenz_google_shopping_certification_code is defined and product.customFields.lenz_google_shopping_certification_code != '' %}
				<g:certification_code>{{ product.customFields.lenz_google_shopping_certification_code|escape }}</g:certification_code>
			{% endif %}
			{% if product.customFields.lenz_google_shopping_certification_value is defined and product.customFields.lenz_google_shopping_certification_value != '' %}
				<g:certification_value>{{ product.customFields.lenz_google_shopping_certification_value|escape }}</g:certification_value>
			{% endif %}
		</g:certification>
	{% endif %}
    <g:custom_label_0>{% if product.customFields.lenz_google_shopping_custom_label0 is defined %}{{ product.customFields.lenz_google_shopping_custom_label0|escape }}{% endif %}</g:custom_label_0>
    <g:custom_label_1>{% if product.customFields.lenz_google_shopping_custom_label1 is defined %}{{ product.customFields.lenz_google_shopping_custom_label1|escape }}{% endif %}</g:custom_label_1>
    <g:custom_label_2>{% if product.customFields.lenz_google_shopping_custom_label2 is defined %}{{ product.customFields.lenz_google_shopping_custom_label2|escape }}{% endif %}</g:custom_label_2>
    <g:custom_label_3>{% if product.customFields.lenz_google_shopping_custom_label3 is defined %}{{ product.customFields.lenz_google_shopping_custom_label3|escape }}{% endif %}</g:custom_label_3>
    <g:custom_label_4>{% if product.customFields.lenz_google_shopping_custom_label4 is defined %}{{ product.customFields.lenz_google_shopping_custom_label4|escape }}{% endif %}</g:custom_label_4>
    {% if product.customFields.lenz_google_shopping_promotion_id is defined and product.customFields.lenz_google_shopping_promotion_id != '' %}<g:promotion_id>{{ product.customFields.lenz_google_shopping_promotion_id|escape }}</g:promotion_id>{% endif %}
	{% if product.customFields.lenz_google_shopping_availability_date is defined and product.customFields.lenz_google_shopping_availability_date != '' %}<g:availability_date>{{ product.customFields.lenz_google_shopping_availability_date|escape }}</g:availability_date>{% elseif availabilityDate != "" %}<g:availability_date>{{ availabilityDate|escape }}</g:availability_date>{% endif %}
    {% if product.customFields.lenz_google_shopping_excluded_destination is defined and product.customFields.lenz_google_shopping_excluded_destination != '' %}<g:excluded_destination>{{ product.customFields.lenz_google_shopping_excluded_destination|escape }}</g:excluded_destination>{% endif %}
    {% if product.customFields.lenz_google_shopping_included_destination is defined and product.customFields.lenz_google_shopping_included_destination != '' %}<g:included_destination>{{ product.customFields.lenz_google_shopping_included_destination|escape }}</g:included_destination>{% endif %}
	{% if product.customFields.lenz_google_shopping_shopping_ads_excluded_country is defined %}<g:shopping_ads_excluded_country>{{ product.customFields.lenz_google_shopping_shopping_ads_excluded_country }}</g:shopping_ads_excluded_country>{% endif %}
    {% if product.customFields.lenz_google_shopping_ships_from_country is defined %}<g:ships_from_country>{{ product.customFields.lenz_google_shopping_ships_from_country }}</g:ships_from_country>{% endif %}
    {% if product.customFields.lenz_google_shopping_cost_of_goods_sold is defined %}<g:cost_of_goods_sold>{{ product.customFields.lenz_google_shopping_cost_of_goods_sold }}</g:cost_of_goods_sold>{% endif %}
    {% if product.customFields.lenz_google_shopping_tax is defined %}<g:tax>{{ product.customFields.lenz_google_shopping_tax }}</g:tax>{% endif %}
    {% if product.customFields.lenz_google_shopping_installment is defined %}<g:installment>{{ product.customFields.lenz_google_shopping_installment }}</g:installment>{% endif %}
    {% if product.customFields.lenz_google_shopping_subscription_cost is defined %}<g:subscription_cost>{{ product.customFields.lenz_google_shopping_subscription_cost }}</g:subscription_cost>{% endif %}
    {% if product.customFields.lenz_google_shopping_loyalty_points is defined %}<g:loyalty_points>{{ product.customFields.lenz_google_shopping_loyalty_points }}</g:loyalty_points>{% endif %}
    {% if product.customFields.lenz_google_shopping_product_details is defined %}<g:product_detail>{{ product.customFields.lenz_google_shopping_product_details }}</g:product_detail>{% endif %}
    {% if product.customFields.lenz_google_shopping_ads_redirect is defined %}<g:ads_redirect>{{ product.customFields.lenz_google_shopping_ads_redirect }}</g:ads_redirect>{% endif %}
    
	<g:shipping>
        <g:country>DE</g:country>
        <g:service>Standard</g:service>
        <g:price>{% if productPrice < 100 %}{{ 4.95 }} {{ context.currency.isoCode }}{% else %}{{ 0.00 }} {{ context.currency.isoCode }}{% endif %}{# change your default delivery costs #}</g:price>
    </g:shipping>	
    {% if product.customFields.lenz_google_shopping_shipping_label is defined and product.customFields.lenz_google_shopping_shipping_label != '' %}<g:shipping_label>{{ product.customFields.lenz_google_shopping_shipping_label|escape }}</g:shipping_label>{% endif %}
    {% if product.weight %}<g:shipping_weight>{{ product.weight|number_format(2, ',', '')|escape }} kg</g:shipping_weight>{% endif %}
    {% if product.length and product.width and product.height %}
		<g:shipping_length>{{ (product.length/10)|number_format(2, ',', '')|escape }} cm</g:shipping_length>
		<g:shipping_width>{{ (product.width/10)|number_format(2, ',', '')|escape }} cm</g:shipping_width>
		<g:shipping_height>{{ (product.height/10)|number_format(2, ',', '')|escape }} cm</g:shipping_height>
	{% endif %}
    {% if product.customFields.lenz_google_shopping_transit_time_label is defined and product.customFields.lenz_google_shopping_transit_time_label != '' %}<g:transit_time_label>{{ product.customFields.lenz_google_shopping_transit_time_label|escape }}</g:transit_time_label>{% endif %}
    {% if product.customFields.lenz_google_shopping_max_handling_time is defined and product.customFields.lenz_google_shopping_max_handling_time != '' %}<g:max_handling_time>{{ product.customFields.lenz_google_shopping_max_handling_time|escape }}</g:max_handling_time>{% endif %}
    {% if product.customFields.lenz_google_shopping_min_handling_time is defined and product.customFields.lenz_google_shopping_min_handling_time != '' %}<g:min_handling_time>{{ product.customFields.lenz_google_shopping_min_handling_time|escape }}</g:min_handling_time>{% endif %}
    {% if product.customFields.lenz_google_shopping_tax_category is defined and product.customFields.lenz_google_shopping_tax_category != '' %}<g:tax_category>{{ product.customFields.lenz_google_shopping_tax_category|escape }}</g:tax_category>{% endif %}
</item>

{# Entferne diese Zeile, um alle Produkte zu Google Shopping zu übertragen #}
{#% endif %#}

Product row / Produktzeile (ab SW 6.5.0.0)

Letzte Änderungen:

09.04.2025
Fehlerbehebung im Zusammenhang mit den Feldern für Zertifizierungsattribute.

25.03.2025
Felder für Zertifizierungsattribute hinzugefügt.

09.08.2023
Fehler bei Marke (Übersetzung) behoben.

13.07.2023
Alternative Bilder übertragen. (Nur für Self-Hosted Version mit individueller Anpassung!)

06.07.2023
Preisüberschreibung hinzugefügt. (Individuelle Zusatzfelder)

15.06.2023
shipping_length, shipping_width, shipping_height hinzugefügt.

15.05.2023
Google Shopping Taxonomie kann nun aus Select-Feld befüllt werden. (Plugin-Version 5.0.0 notwendig)

21.04.2023
Fehler bei Eigenschaften entfernt.

01.04.2023
Neu erstellt für Shopware 6.5

{# Entferne diese Zeile, um alle Produkte zu Google Shopping zu übertragen #}
{#% if product.customFields and product.customFields.lenz_google_shopping_active is defined and product.customFields.lenz_google_shopping_active == 1 %#}

{% set sizeByOption = '' %}
{% set colorByOption = '' %}
{% set genderByOption = '' %}

{% for property in product.properties %}
    {% set group = property.group %}
{% endfor %}

{% for group in product.sortedProperties %}
    {% for option in group.options %}
        {% if group.name == "Größe" and option.id in product.optionIds %}
            {% set sizeByOption = option.name %}
        {% endif %}

        {% if group.name == "Farbe" and option.id in product.optionIds %}
            {% set colorByOption = option.name %}
        {% endif %}

        {% if group.name == "Geschlecht" %}
            {% set genderByOption = option.name %}
        {% endif %}
    {% endfor %}
{% endfor %}

{% if product.isCloseout is false or product.availableStock >= product.minPurchase %}
	{% set availability = "in stock" %}
{% elseif (product.availableStock < product.minPurchase) and product.restockTime %}
	{% set availability = "preorder" %}
{% else %}
	{% set availability = "out of stock" %}
{% endif %}

{% set availabilityDate = "" %}
{% if availability == "preorder" or availability == "out_of_stock" %}
	{% set restockTime = 7 %}
	{% if product.restockTime %}
    	{% set restockTime = product.restockTime %}
	{% endif %}
	{% set availabilityDate = ("+" ~ restockTime ~ " days")|date("c") %}
{% endif %}

{% set categoryTaxonomy = "" %}
{% for category in product.categories %}
	{% if lenz_google_shopping_taxonomy is defined and category.translated.customFields.lenz_google_shopping_category_taxonomy is defined and lenz_google_shopping_taxonomy[category.translated.customFields.lenz_google_shopping_category_taxonomy] is defined %}
		{% set categoryTaxonomy = lenz_google_shopping_taxonomy[category.translated.customFields.lenz_google_shopping_category_taxonomy] %}
	{% elseif category.translated.customFields.lenz_google_shopping_category_taxonomy is defined %}
		{% set categoryTaxonomy = category.translated.customFields.lenz_google_shopping_category_taxonomy %}
	{% endif %}
{% endfor %}

{% if product.calculatedPrices.first and product.calculatedPrices.first.listPrice and product.calculatedPrices.first.listPrice.price > product.calculatedPrices.first.unitPrice %}
	{# Rule based pricing - Discounted price #}
	{% set price = product.calculatedPrices.first.listPrice.price %}
	{% set salePrice = product.calculatedPrices.first.unitPrice %}
{% elseif product.calculatedPrices.first is defined and product.calculatedPrices.first.listPrice is defined and product.calculatedPrices.first.listPrice != null %}
	{# Rule based pricing - list price #}
	{% set price = product.calculatedPrices.first.listPrice.price %}
	{% set salePrice = null %}
{% elseif product.calculatedPrices.first is defined and product.calculatedPrices.first.unitPrice is defined %}
	{# Rule based pricing - unit price #}
	{% set price = product.calculatedPrices.first.unitPrice %}
	{% set salePrice = null %}
{% elseif product.calculatedPrice.listPrice and product.calculatedPrice.listPrice.price > product.calculatedPrice.unitPrice %}
	{% set price = product.calculatedPrice.listPrice.price %}
	{% set salePrice = product.calculatedPrice.unitPrice %}
{% else %}
	{# Default price #}
	{% set price = product.calculatedPrice.unitPrice %}
	{% set salePrice = null %}
{% endif %}

{% if product.customFields.lenz_google_shopping_price is defined and product.customFields.lenz_google_shopping_price is not null %}
	{% set price = product.customFields.lenz_google_shopping_price %}
{% endif %}

{% if product.customFields.lenz_google_shopping_sale_price is defined and product.customFields.lenz_google_shopping_sale_price is not null %}
	{% set salePrice = product.customFields.lenz_google_shopping_sale_price %}
{% endif %}

{% set productPrice = price %}
{% if salePrice is not null %}
	{% set productPrice = salePrice %}
{% endif %}

{% set useAlternativeImages = false %}
{% if 
	(
		product.customFields.lenz_google_shopping_image1 is defined
		and product.customFields.lenz_google_shopping_image1 is not empty
	) or (
		product.customFields.lenz_google_shopping_image2 is defined
		and product.customFields.lenz_google_shopping_image2 is not empty
	) or (
		product.customFields.lenz_google_shopping_image3 is defined
		and product.customFields.lenz_google_shopping_image3 is not empty
	) or (
		product.customFields.lenz_google_shopping_image4 is defined
		and product.customFields.lenz_google_shopping_image4 is not empty
	) or (
		product.customFields.lenz_google_shopping_image5 is defined
		and product.customFields.lenz_google_shopping_image5 is not empty
	)  
 %}
	{% set useAlternativeImages = true %}
{% endif %}

{% set imageCounter = 0 %}
<item>
    <g:id>{{ product.productNumber }}</g:id>
    <g:title>{% if product.customFields.lenz_google_shopping_title is defined and product.customFields.lenz_google_shopping_title != "" %}{{ product.customFields.lenz_google_shopping_title|escape }}{% else %}{{ product.translated.name|escape }}{% endif %}</g:title>
    <g:description>{% if product.customFields.lenz_google_shopping_description is defined and product.customFields.lenz_google_shopping_description !="" %}{{ product.customFields.lenz_google_shopping_description|escape }}{% else %}{{ product.translated.description|striptags|slice(0, 5000)|escape }}{% endif %}</g:description>
    <link>{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}</link>
	{% if useAlternativeImages == true %}
		{% set isFirstAlternativeImage = true %}
		{% for i in 1..5 %}
			{% if product.customFields['lenz_google_shopping_image' ~ i] is defined and product.customFields['lenz_google_shopping_image' ~ i] is not empty %}
				{% if isFirstAlternativeImage == true %}
					<g:image_link>LENZGOOGLESHOPPINGIMAGE_{{ product.customFields['lenz_google_shopping_image' ~ i] }}_LENZGOOGLESHOPPINGIMAGE</g:image_link>
					{% set isFirstAlternativeImage = false %}
				{% else %}
					<g:additional_image_link>LENZGOOGLESHOPPINGIMAGE_{{ product.customFields['lenz_google_shopping_image' ~ i] }}_LENZGOOGLESHOPPINGIMAGE</g:additional_image_link>
				{% endif %}
			{% endif %}
		{% endfor %}
	{% else %}
		{% for key, media in product.media|filter((mediaItem) => mediaItem.media != null)|sort((a, b) => a.position <=> b.position) %}
			{% if imageCounter == 0 %}
				<g:image_link>{{ media.media.url }}</g:image_link>
			{% elseif imageCounter < 10 %}
				<g:additional_image_link>{{ media.media.url }}</g:additional_image_link>
			{% endif %}

			{% set imageCounter = imageCounter + 1 %}
		{% endfor %}
	{% endif %}
    <g:availability>{{ availability }}</g:availability>
	{% if product.customFields.lenz_google_shopping_expiration_date is defined and product.customFields.lenz_google_shopping_expiration_date != '' %}<g:expiration_date>{{ product.customFields.lenz_google_shopping_expiration_date }}</g:expiration_date>{% endif %}
    {% if price != null %}
		<g:price>{{ price|number_format(context.currency.itemRounding.decimals, '.', '') }} {{ context.currency.isoCode }}</g:price>
	{% endif %}
	
	{% if salePrice != null %}
		<g:sale_price>{{ salePrice|number_format(context.currency.itemRounding.decimals, '.', '') }} {{ context.currency.isoCode }}</g:sale_price>
	{% endif %}
    {% if product.purchaseunit and product.referenceunit and product.unit %}
        <g:unit_pricing_measure>{{ product.purchaseunit }} {{ product.unit.translated.name|replace({'Stück': 'ct', 'Stck.': 'ct', 'm²': 'sqm', 'Milliliter': 'ml', 'Liter': 'l', 'Kilogramm': 'kg', 'Gramm': 'g', 'Zentimeter': 'cm', 'Meter': 'm'}) }}</g:unit_pricing_measure>
	<g:unit_pricing_base_measure>{{ product.referenceunit }} {{ product.unit.translated.name|replace({'Stück': 'ct', 'Stck.': 'ct', 'm²': 'sqm', 'Milliliter': 'ml', 'Liter': 'l', 'Kilogramm': 'kg', 'Gramm': 'g', 'Zentimeter': 'cm', 'Meter': 'm'}) }}</g:unit_pricing_base_measure>
    {% endif %}
    <g:google_product_category>
		{%- if product.customFields.lenz_google_shopping_google_product_category is defined -%}
			{{- product.customFields.lenz_google_shopping_google_product_category -}}
		{%- elseif product.customFields.lenz_google_shopping_category_number is defined -%}
			{{- product.customFields.lenz_google_shopping_category_number -}}
		{%- elseif categoryTaxonomy is not empty -%}
			{{ categoryTaxonomy }}
		{%- else -%}
			{# Default product category here #}
		{%- endif -%}
	</g:google_product_category>
    <g:product_type>{% if product.categories|length > 0 %}{{ product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw|escape }}{% endif %}</g:product_type>
    {% if product.translated.customFields.lenz_google_shopping_brand is defined %}<g:brand>{{ product.translated.customFields.lenz_google_shopping_brand|escape }}</g:brand>{% elseif product.manufacturer is defined and product.manufacturer is not null %}<g:brand>{{ product.manufacturer.translated.name|escape }}</g:brand>{% endif %}
    <g:gtin>{{ product.ean|escape }}</g:gtin>
    <g:mpn>{{ product.manufacturerNumber|escape }}</g:mpn>
	<g:identifier_exists>{% if product.ean or (product.manufacturer is defined and product.manufacturer is not null and product.manufacturer.name and product.manufacturerNumber) %}yes{% else %}no{% endif %}</g:identifier_exists>
	<g:condition>{% if product.customFields.lenz_google_shopping_condition is defined and product.customFields.lenz_google_shopping_condition != '' %}{{ product.customFields.lenz_google_shopping_condition|escape }}{% else %}new{% endif %}</g:condition>
    <g:adult>{% if product.customFields.lenz_google_shopping_adult is defined and product.customFields.lenz_google_shopping_adult != '' %}yes{% else %}no{% endif %}</g:adult>
    {% if product.customFields.lenz_google_shopping_multipack is defined and product.customFields.lenz_google_shopping_multipack != '' %}<g:multipack>{{ product.customFields.lenz_google_shopping_multipack|escape }}</g:multipack>{% endif %}
    {% if product.customFields.lenz_google_shopping_is_bundle is defined and product.customFields.lenz_google_shopping_is_bundle != '' %}<g:is_bundle>yes</g:is_bundle>{% endif %}
    {% if product.customFields.lenz_google_shopping_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_energy_efficiency_class != '' %}<g:energy_efficiency_class>{{ product.customFields.lenz_google_shopping_energy_efficiency_class|escape }}</g:energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_min_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_min_energy_efficiency_class != '' %}<g:min_energy_efficiency_class>{{ product.customFields.lenz_google_shopping_min_energy_efficiency_class|escape }}</g:min_energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_max_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_max_energy_efficiency_class != '' %}<g:max_energy_efficiency_class>{{ product.customFields.lenz_google_shopping_max_energy_efficiency_class|escape }}</g:max_energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_age_group is defined and product.customFields.lenz_google_shopping_age_group != '' %}<g:age_group>{{ product.customFields.lenz_google_shopping_age_group|escape }}</g:age_group>{% endif %}
    {% if product.customFields.lenz_google_shopping_color is defined and product.customFields.lenz_google_shopping_color != '' %}<g:color>{{ product.customFields.lenz_google_shopping_color|escape }}</g:color>{% elseif colorByOption != "" %}<g:color>{{ colorByOption|escape}}</g:color>{% endif %}
    {% if product.customFields.lenz_google_shopping_gender is defined and product.customFields.lenz_google_shopping_gender != '' %}<g:gender>{{ product.customFields.lenz_google_shopping_gender|escape }}</g:gender>{% elseif genderByOption != "" %}<g:gender>{{ genderByOption|escape }}</g:gender>{% endif %}
    {% if product.customFields.lenz_google_shopping_material is defined and product.customFields.lenz_google_shopping_material != '' %}<g:material>{{ product.customFields.lenz_google_shopping_material|escape }}</g:material>{% endif %}
    {% if product.customFields.lenz_google_shopping_pattern is defined and product.customFields.lenz_google_shopping_pattern != '' %}<g:pattern>{{ product.customFields.lenz_google_shopping_pattern|escape }}</g:pattern>{% endif %}
    {% if product.customFields.lenz_google_shopping_size is defined and product.customFields.lenz_google_shopping_size != '' %}<g:size>{{ product.customFields.lenz_google_shopping_size|escape }}</g:size>{% elseif sizeByOption != '' %}<g:size>{{ sizeByOption }}</g:size>{% endif %}
    {% if product.customFields.lenz_google_shopping_size_type is defined and product.customFields.lenz_google_shopping_size_type != '' %}<g:size_type>{{ product.customFields.lenz_google_shopping_size_type|escape }}</g:size_type>{% endif %}
    {% if product.customFields.lenz_google_shopping_size_system is defined and product.customFields.lenz_google_shopping_size_system != '' %}<g:size_system>{{ product.customFields.lenz_google_shopping_size_system|escape }}</g:size_system>{% endif %}
    {% if product.customFields.lenz_google_shopping_item_group_id is defined and product.customFields.lenz_google_shopping_item_group_id != '' %}<g:item_group_id>{{ product.customFields.lenz_google_shopping_item_group_id|escape }}</g:item_group_id>{% elseif product.parentId is not null %}<g:item_group_id>{{ product.parentId|escape }}</g:item_group_id>{% endif %}
    {% if product.customFields.lenz_google_shopping_product_highlight is defined and product.customFields.lenz_google_shopping_product_highlight|trim != '' %}
        {% set highlights = product.customFields.lenz_google_shopping_product_highlight|split("\n") %}
        {% for highlight in highlights %}
            <g:product_highlight>{{ highlight|escape }}</g:product_highlight>
        {% endfor %}
    {% endif %}
    {% if product.customFields.lenz_google_shopping_certification_authority is defined and product.customFields.lenz_google_shopping_certification_authority != '' and product.customFields.lenz_google_shopping_certification_name is defined and product.customFields.lenz_google_shopping_certification_name != '' %}
		<g:certification>
			<g:certification_authority>{{ product.customFields.lenz_google_shopping_certification_authority|escape }}</g:certification_authority>
			<g:certification_name>{{ product.customFields.lenz_google_shopping_certification_name|escape }}</g:certification_name>
			{% if product.customFields.lenz_google_shopping_certification_code is defined and product.customFields.lenz_google_shopping_certification_code != '' %}
				<g:certification_code>{{ product.customFields.lenz_google_shopping_certification_code|escape }}</g:certification_code>
			{% endif %}
			{% if product.customFields.lenz_google_shopping_certification_value is defined and product.customFields.lenz_google_shopping_certification_value != '' %}
				<g:certification_value>{{ product.customFields.lenz_google_shopping_certification_value|escape }}</g:certification_value>
			{% endif %}
		</g:certification>
	{% endif %}
    <g:custom_label_0>{% if product.customFields.lenz_google_shopping_custom_label0 is defined %}{{ product.customFields.lenz_google_shopping_custom_label0|escape }}{% endif %}</g:custom_label_0>
    <g:custom_label_1>{% if product.customFields.lenz_google_shopping_custom_label1 is defined %}{{ product.customFields.lenz_google_shopping_custom_label1|escape }}{% endif %}</g:custom_label_1>
    <g:custom_label_2>{% if product.customFields.lenz_google_shopping_custom_label2 is defined %}{{ product.customFields.lenz_google_shopping_custom_label2|escape }}{% endif %}</g:custom_label_2>
    <g:custom_label_3>{% if product.customFields.lenz_google_shopping_custom_label3 is defined %}{{ product.customFields.lenz_google_shopping_custom_label3|escape }}{% endif %}</g:custom_label_3>
    <g:custom_label_4>{% if product.customFields.lenz_google_shopping_custom_label4 is defined %}{{ product.customFields.lenz_google_shopping_custom_label4|escape }}{% endif %}</g:custom_label_4>
    {% if product.customFields.lenz_google_shopping_promotion_id is defined and product.customFields.lenz_google_shopping_promotion_id != '' %}<g:promotion_id>{{ product.customFields.lenz_google_shopping_promotion_id|escape }}</g:promotion_id>{% endif %}
	{% if product.customFields.lenz_google_shopping_availability_date is defined and product.customFields.lenz_google_shopping_availability_date != '' %}<g:availability_date>{{ product.customFields.lenz_google_shopping_availability_date|escape }}</g:availability_date>{% elseif availabilityDate != "" %}<g:availability_date>{{ availabilityDate|escape }}</g:availability_date>{% endif %}
    {% if product.customFields.lenz_google_shopping_excluded_destination is defined and product.customFields.lenz_google_shopping_excluded_destination != '' %}<g:excluded_destination>{{ product.customFields.lenz_google_shopping_excluded_destination|escape }}</g:excluded_destination>{% endif %}
    {% if product.customFields.lenz_google_shopping_included_destination is defined and product.customFields.lenz_google_shopping_included_destination != '' %}<g:included_destination>{{ product.customFields.lenz_google_shopping_included_destination|escape }}</g:included_destination>{% endif %}
	{% if product.customFields.lenz_google_shopping_shopping_ads_excluded_country is defined %}<g:shopping_ads_excluded_country>{{ product.customFields.lenz_google_shopping_shopping_ads_excluded_country }}</g:shopping_ads_excluded_country>{% endif %}
    {% if product.customFields.lenz_google_shopping_ships_from_country is defined %}<g:ships_from_country>{{ product.customFields.lenz_google_shopping_ships_from_country }}</g:ships_from_country>{% endif %}
    {% if product.customFields.lenz_google_shopping_cost_of_goods_sold is defined %}<g:cost_of_goods_sold>{{ product.customFields.lenz_google_shopping_cost_of_goods_sold }}</g:cost_of_goods_sold>{% endif %}
    {% if product.customFields.lenz_google_shopping_tax is defined %}<g:tax>{{ product.customFields.lenz_google_shopping_tax }}</g:tax>{% endif %}
    {% if product.customFields.lenz_google_shopping_installment is defined %}<g:installment>{{ product.customFields.lenz_google_shopping_installment }}</g:installment>{% endif %}
    {% if product.customFields.lenz_google_shopping_subscription_cost is defined %}<g:subscription_cost>{{ product.customFields.lenz_google_shopping_subscription_cost }}</g:subscription_cost>{% endif %}
    {% if product.customFields.lenz_google_shopping_loyalty_points is defined %}<g:loyalty_points>{{ product.customFields.lenz_google_shopping_loyalty_points }}</g:loyalty_points>{% endif %}
    {% if product.customFields.lenz_google_shopping_product_details is defined %}<g:product_detail>{{ product.customFields.lenz_google_shopping_product_details }}</g:product_detail>{% endif %}
    {% if product.customFields.lenz_google_shopping_ads_redirect is defined %}<g:ads_redirect>{{ product.customFields.lenz_google_shopping_ads_redirect }}</g:ads_redirect>{% endif %}
    
	<g:shipping>
        <g:country>DE</g:country>
        <g:service>Standard</g:service>
        <g:price>{% if productPrice < 100 %}{{ 4.95 }} {{ context.currency.isoCode }}{% else %}{{ 0.00 }} {{ context.currency.isoCode }}{% endif %}{# change your default delivery costs #}</g:price>
    </g:shipping>	
    {% if product.customFields.lenz_google_shopping_shipping_label is defined and product.customFields.lenz_google_shopping_shipping_label != '' %}<g:shipping_label>{{ product.customFields.lenz_google_shopping_shipping_label|escape }}</g:shipping_label>{% endif %}
    {% if product.weight %}<g:shipping_weight>{{ product.weight|number_format(2, ',', '')|escape }} kg</g:shipping_weight>{% endif %}
    {% if product.length and product.width and product.height %}
		<g:shipping_length>{{ (product.length/10)|number_format(2, ',', '')|escape }} cm</g:shipping_length>
		<g:shipping_width>{{ (product.width/10)|number_format(2, ',', '')|escape }} cm</g:shipping_width>
		<g:shipping_height>{{ (product.height/10)|number_format(2, ',', '')|escape }} cm</g:shipping_height>
	{% endif %}
    {% if product.customFields.lenz_google_shopping_transit_time_label is defined and product.customFields.lenz_google_shopping_transit_time_label != '' %}<g:transit_time_label>{{ product.customFields.lenz_google_shopping_transit_time_label|escape }}</g:transit_time_label>{% endif %}
    {% if product.customFields.lenz_google_shopping_max_handling_time is defined and product.customFields.lenz_google_shopping_max_handling_time != '' %}<g:max_handling_time>{{ product.customFields.lenz_google_shopping_max_handling_time|escape }}</g:max_handling_time>{% endif %}
    {% if product.customFields.lenz_google_shopping_min_handling_time is defined and product.customFields.lenz_google_shopping_min_handling_time != '' %}<g:min_handling_time>{{ product.customFields.lenz_google_shopping_min_handling_time|escape }}</g:min_handling_time>{% endif %}
    {% if product.customFields.lenz_google_shopping_tax_category is defined and product.customFields.lenz_google_shopping_tax_category != '' %}<g:tax_category>{{ product.customFields.lenz_google_shopping_tax_category|escape }}</g:tax_category>{% endif %}
</item>

{# Entferne diese Zeile, um alle Produkte zu Google Shopping zu übertragen #}
{#% endif %#}

Product row / Produktzeile (ab SW 6.4.0.0)

Letzte Änderungen:

09.04.2025
Fehlerbehebung im Zusammenhang mit den Feldern für Zertifizierungsattribute.

25.03.2025
Felder für Zertifizierungsattribute hinzugefügt.

19.11.2024
Fehlerbehebung, wenn ein Artikelbild in Shopware nicht korrekt hochgeladen wurde.

15.05.2023
Google Shopping Taxonomie kann nun aus Select-Feld befüllt werden. (Plugin-Version 4.0.0 notwendig)

21.04.2023
Fehler bei Eigenschaften entfernt.

23.03.2023
Änderung an Produkthighlights (<g:product_highlight>)

{# Entferne diese Zeile, um alle Produkte zu Google Shopping zu übertragen #}
{#% if product.customFields and product.customFields.lenz_google_shopping_active is defined and product.customFields.lenz_google_shopping_active == 1 %#}

{% set sizeByOption = '' %}
{% set colorByOption = '' %}
{% set genderByOption = '' %}

{% for property in product.properties %}
    {% set group = property.group %}
{% endfor %}

{% for group in product.sortedProperties %}
    {% for option in group.options %}
        {% if group.name == "Größe" and option.id in product.optionIds %}
            {% set sizeByOption = option.name %}
        {% endif %}

        {% if group.name == "Farbe" and option.id in product.optionIds %}
            {% set colorByOption = option.name %}
        {% endif %}

        {% if group.name == "Geschlecht" %}
            {% set genderByOption = option.name %}
        {% endif %}
    {% endfor %}
{% endfor %}

{% if product.availableStock >= product.minPurchase %}
	{% set availability = "in stock" %}
{% elseif (product.availableStock < product.minPurchase) and product.restockTime %}
	{% set availability = "preorder" %}
{% else %}
	{% set availability = "out of stock" %}
{% endif %}

{% set availabilityDate = "" %}
{% if availability == "preorder" or availability == "out_of_stock" %}
	{% set restockTime = 7 %}
	{% if product.restockTime %}
    	{% set restockTime = product.restockTime %}
	{% endif %}
	{% set availabilityDate = ("+" ~ restockTime ~ " days")|date("c") %}
{% endif %}

{% set categoryTaxonomy = "" %}
{% for category in product.categories %}
	{% if lenz_google_shopping_taxonomy is defined and category.translated.customFields.lenz_google_shopping_category_taxonomy is defined and lenz_google_shopping_taxonomy[category.translated.customFields.lenz_google_shopping_category_taxonomy] is defined %}
		{% set categoryTaxonomy = lenz_google_shopping_taxonomy[category.translated.customFields.lenz_google_shopping_category_taxonomy] %}
	{% elseif category.translated.customFields.lenz_google_shopping_category_taxonomy is defined %}
		{% set categoryTaxonomy = category.translated.customFields.lenz_google_shopping_category_taxonomy %}
	{% endif %}
{% endfor %}

{% if product.calculatedPrices.first and product.calculatedPrices.first.listPrice and product.calculatedPrices.first.listPrice.price > product.calculatedPrices.first.unitPrice %}
	{# Rule based pricing - Discounted price #}
	{% set price = product.calculatedPrices.first.listPrice.price %}
	{% set salePrice = product.calculatedPrices.first.unitPrice %}
{% elseif product.calculatedPrices.first is defined and product.calculatedPrices.first.listPrice is defined and product.calculatedPrices.first.listPrice != null %}
	{# Rule based pricing - list price #}
	{% set price = product.calculatedPrices.first.listPrice.price %}
	{% set salePrice = null %}
{% elseif product.calculatedPrices.first is defined and product.calculatedPrices.first.unitPrice is defined %}
	{# Rule based pricing - unit price #}
	{% set price = product.calculatedPrices.first.unitPrice %}
	{% set salePrice = null %}
{% elseif product.calculatedPrice.listPrice and product.calculatedPrice.listPrice.price > product.calculatedPrice.unitPrice %}
	{% set price = product.calculatedPrice.listPrice.price %}
	{% set salePrice = product.calculatedPrice.unitPrice %}
{% else %}
	{# Default price #}
	{% set price = product.calculatedPrice.unitPrice %}
	{% set salePrice = null %}
{% endif %}

{% set imageCounter = 0 %}
<item>
    <g:id>{{ product.productNumber }}</g:id>
    <g:title>{% if product.customFields.lenz_google_shopping_title is defined and product.customFields.lenz_google_shopping_title != "" %}{{ product.customFields.lenz_google_shopping_title|escape }}{% else %}{{ product.translated.name|escape }}{% endif %}</g:title>
    <g:description>{% if product.customFields.lenz_google_shopping_description is defined and product.customFields.lenz_google_shopping_description !="" %}{{ product.customFields.lenz_google_shopping_description|escape }}{% else %}{{ product.translated.description|striptags|escape }}{% endif %}</g:description>
    <link>{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}</link>
    {% for key, media in product.media|sort((a, b) => a.position <=> b.position) %}
        {% if imageCounter == 0 %}
            <g:image_link>{{ media.media.url }}</g:image_link>
        {% elseif imageCounter < 10 %}
            <g:additional_image_link>{{ media.media.url }}</g:additional_image_link>
        {% endif %}

        {% set imageCounter = imageCounter + 1 %}
    {% endfor %}
    <g:availability>{{ availability }}</g:availability>
	{% if product.customFields.lenz_google_shopping_expiration_date is defined and product.customFields.lenz_google_shopping_expiration_date != '' %}<g:expiration_date>{{ product.customFields.lenz_google_shopping_expiration_date }}</g:expiration_date>{% endif %}
    {% if price != null %}
		<g:price>{{ price|number_format(context.currency.decimalPrecision, '.', '') }} {{ context.currency.isoCode }}</g:price>
	{% endif %}
	
	{% if salePrice != null %}
		<g:sale_price>{{ salePrice|number_format(context.currency.decimalPrecision, '.', '') }} {{ context.currency.isoCode }}</g:sale_price>
	{% endif %}
    {% if product.purchaseunit and product.referenceunit and product.unit %}
        <g:unit_pricing_measure>{{ product.purchaseunit }} {{ product.unit.translated.name|replace({'Stück': 'ct', 'Stck.': 'ct', 'm²': 'sqm', 'Milliliter': 'ml', 'Liter': 'l', 'Kilogramm': 'kg', 'Gramm': 'g', 'Zentimeter': 'cm', 'Meter': 'm'}) }}</g:unit_pricing_measure>
	<g:unit_pricing_base_measure>{{ product.referenceunit }} {{ product.unit.translated.name|replace({'Stück': 'ct', 'Stck.': 'ct', 'm²': 'sqm', 'Milliliter': 'ml', 'Liter': 'l', 'Kilogramm': 'kg', 'Gramm': 'g', 'Zentimeter': 'cm', 'Meter': 'm'}) }}</g:unit_pricing_base_measure>
    {% endif %}
    <g:google_product_category>
		{%- if product.customFields.lenz_google_shopping_google_product_category is defined -%}
			{{- product.customFields.lenz_google_shopping_google_product_category -}}
		{%- elseif product.customFields.lenz_google_shopping_category_number is defined -%}
			{{- product.customFields.lenz_google_shopping_category_number -}}
		{%- elseif categoryTaxonomy is not empty -%}
			{{ categoryTaxonomy }}
		{%- else -%}
			{# Default product category here #}
		{%- endif -%}
	</g:google_product_category>
    <g:product_type>{% if product.categories|length > 0 %}{{ product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw|escape }}{% endif %}</g:product_type>
    {% if product.customFields.lenz_google_shopping_brand is defined %}<g:brand>{{ product.customFields.lenz_google_shopping_brand|escape }}</g:brand>{% elseif product.manufacturer is defined and product.manufacturer is not null %}<g:brand>{{ product.manufacturer.name|escape }}</g:brand>{% endif %}
    <g:gtin>{{ product.ean|escape }}</g:gtin>
    <g:mpn>{{ product.manufacturerNumber|escape }}</g:mpn>
	<g:identifier_exists>{% if product.ean or (product.manufacturer is defined and product.manufacturer is not null and product.manufacturer.name and product.manufacturerNumber) %}yes{% else %}no{% endif %}</g:identifier_exists>
	<g:condition>{% if product.customFields.lenz_google_shopping_condition is defined and product.customFields.lenz_google_shopping_condition != '' %}{{ product.customFields.lenz_google_shopping_condition|escape }}{% else %}new{% endif %}</g:condition>
    <g:adult>{% if product.customFields.lenz_google_shopping_adult is defined and product.customFields.lenz_google_shopping_adult != '' %}yes{% else %}no{% endif %}</g:adult>
    {% if product.customFields.lenz_google_shopping_multipack is defined and product.customFields.lenz_google_shopping_multipack != '' %}<g:multipack>{{ product.customFields.lenz_google_shopping_multipack|escape }}</g:multipack>{% endif %}
    {% if product.customFields.lenz_google_shopping_is_bundle is defined and product.customFields.lenz_google_shopping_is_bundle != '' %}<g:is_bundle>yes</g:is_bundle>{% endif %}
    {% if product.customFields.lenz_google_shopping_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_energy_efficiency_class != '' %}<g:energy_efficiency_class>{{ product.customFields.lenz_google_shopping_energy_efficiency_class|escape }}</g:energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_min_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_min_energy_efficiency_class != '' %}<g:min_energy_efficiency_class>{{ product.customFields.lenz_google_shopping_min_energy_efficiency_class|escape }}</g:min_energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_max_energy_efficiency_class is defined and product.customFields.lenz_google_shopping_max_energy_efficiency_class != '' %}<g:max_energy_efficiency_class>{{ product.customFields.lenz_google_shopping_max_energy_efficiency_class|escape }}</g:max_energy_efficiency_class>{% endif %}
    {% if product.customFields.lenz_google_shopping_age_group is defined and product.customFields.lenz_google_shopping_age_group != '' %}<g:age_group>{{ product.customFields.lenz_google_shopping_age_group|escape }}</g:age_group>{% endif %}
    {% if product.customFields.lenz_google_shopping_color is defined and product.customFields.lenz_google_shopping_color != '' %}<g:color>{{ product.customFields.lenz_google_shopping_color|escape }}</g:color>{% elseif colorByOption != "" %}<g:color>{{ colorByOption|escape}}</g:color>{% endif %}
    {% if product.customFields.lenz_google_shopping_gender is defined and product.customFields.lenz_google_shopping_gender != '' %}<g:gender>{{ product.customFields.lenz_google_shopping_gender|escape }}</g:gender>{% elseif genderByOption != "" %}<g:gender>{{ genderByOption|escape }}</g:gender>{% endif %}
    {% if product.customFields.lenz_google_shopping_material is defined and product.customFields.lenz_google_shopping_material != '' %}<g:material>{{ product.customFields.lenz_google_shopping_material|escape }}</g:material>{% endif %}
    {% if product.customFields.lenz_google_shopping_pattern is defined and product.customFields.lenz_google_shopping_pattern != '' %}<g:pattern>{{ product.customFields.lenz_google_shopping_pattern|escape }}</g:pattern>{% endif %}
    {% if product.customFields.lenz_google_shopping_size is defined and product.customFields.lenz_google_shopping_size != '' %}<g:size>{{ product.customFields.lenz_google_shopping_size|escape }}</g:size>{% elseif sizeByOption != '' %}<g:size>{{ sizeByOption }}</g:size>{% endif %}
    {% if product.customFields.lenz_google_shopping_size_type is defined and product.customFields.lenz_google_shopping_size_type != '' %}<g:size_type>{{ product.customFields.lenz_google_shopping_size_type|escape }}</g:size_type>{% endif %}
    {% if product.customFields.lenz_google_shopping_size_system is defined and product.customFields.lenz_google_shopping_size_system != '' %}<g:size_system>{{ product.customFields.lenz_google_shopping_size_system|escape }}</g:size_system>{% endif %}
    {% if product.customFields.lenz_google_shopping_item_group_id is defined and product.customFields.lenz_google_shopping_item_group_id != '' %}<g:item_group_id>{{ product.customFields.lenz_google_shopping_item_group_id|escape }}</g:item_group_id>{% elseif product.parentId is not null %}<g:item_group_id>{{ product.parentId|escape }}</g:item_group_id>{% endif %}
    {% if product.customFields.lenz_google_shopping_product_highlight is defined and product.customFields.lenz_google_shopping_product_highlight|trim != '' %}
        {% set highlights = product.customFields.lenz_google_shopping_product_highlight|split("\n") %}
        {% for highlight in highlights %}
            <g:product_highlight>{{ highlight|escape }}</g:product_highlight>
        {% endfor %}
    {% endif %}
    {% if product.customFields.lenz_google_shopping_certification_authority is defined and product.customFields.lenz_google_shopping_certification_authority != '' and product.customFields.lenz_google_shopping_certification_name is defined and product.customFields.lenz_google_shopping_certification_name != '' %}
	    <g:certification>
		    <g:certification_authority>{{ product.customFields.lenz_google_shopping_certification_authority|escape }}</g:certification_authority>
		    <g:certification_name>{{ product.customFields.lenz_google_shopping_certification_name|escape }}</g:certification_name>
		    {% if product.customFields.lenz_google_shopping_certification_code is defined and product.customFields.lenz_google_shopping_certification_code != '' %}
			    <g:certification_code>{{ product.customFields.lenz_google_shopping_certification_code|escape }}</g:certification_code>
		    {% endif %}
		    {% if product.customFields.lenz_google_shopping_certification_value is defined and product.customFields.lenz_google_shopping_certification_value != '' %}
			    <g:certification_value>{{ product.customFields.lenz_google_shopping_certification_value|escape }}</g:certification_value>
		    {% endif %}
	    </g:certification>
    {% endif %}
    <g:custom_label_0>{% if product.customFields.lenz_google_shopping_custom_label0 is defined %}{{ product.customFields.lenz_google_shopping_custom_label0|escape }}{% endif %}</g:custom_label_0>
    <g:custom_label_1>{% if product.customFields.lenz_google_shopping_custom_label1 is defined %}{{ product.customFields.lenz_google_shopping_custom_label1|escape }}{% endif %}</g:custom_label_1>
    <g:custom_label_2>{% if product.customFields.lenz_google_shopping_custom_label2 is defined %}{{ product.customFields.lenz_google_shopping_custom_label2|escape }}{% endif %}</g:custom_label_2>
    <g:custom_label_3>{% if product.customFields.lenz_google_shopping_custom_label3 is defined %}{{ product.customFields.lenz_google_shopping_custom_label3|escape }}{% endif %}</g:custom_label_3>
    <g:custom_label_4>{% if product.customFields.lenz_google_shopping_custom_label4 is defined %}{{ product.customFields.lenz_google_shopping_custom_label4|escape }}{% endif %}</g:custom_label_4>
    {% if product.customFields.lenz_google_shopping_promotion_id is defined and product.customFields.lenz_google_shopping_promotion_id != '' %}<g:promotion_id>{{ product.customFields.lenz_google_shopping_promotion_id|escape }}</g:promotion_id>{% endif %}
	{% if product.customFields.lenz_google_shopping_availability_date is defined and product.customFields.lenz_google_shopping_availability_date != '' %}<g:availability_date>{{ product.customFields.lenz_google_shopping_availability_date|escape }}</g:availability_date>{% elseif availabilityDate != "" %}<g:availability_date>{{ availabilityDate|escape }}</g:availability_date>{% endif %}
    {% if product.customFields.lenz_google_shopping_excluded_destination is defined and product.customFields.lenz_google_shopping_excluded_destination != '' %}<g:excluded_destination>{{ product.customFields.lenz_google_shopping_excluded_destination|escape }}</g:excluded_destination>{% endif %}
    {% if product.customFields.lenz_google_shopping_included_destination is defined and product.customFields.lenz_google_shopping_included_destination != '' %}<g:included_destination>{{ product.customFields.lenz_google_shopping_included_destination|escape }}</g:included_destination>{% endif %}
	{% if product.customFields.lenz_google_shopping_shopping_ads_excluded_country is defined %}<g:shopping_ads_excluded_country>{{ product.customFields.lenz_google_shopping_shopping_ads_excluded_country }}</g:shopping_ads_excluded_country>{% endif %}
    {% if product.customFields.lenz_google_shopping_ships_from_country is defined %}<g:ships_from_country>{{ product.customFields.lenz_google_shopping_ships_from_country }}</g:ships_from_country>{% endif %}
    {% if product.customFields.lenz_google_shopping_cost_of_goods_sold is defined %}<g:cost_of_goods_sold>{{ product.customFields.lenz_google_shopping_cost_of_goods_sold }}</g:cost_of_goods_sold>{% endif %}
    {% if product.customFields.lenz_google_shopping_tax is defined %}<g:tax>{{ product.customFields.lenz_google_shopping_tax }}</g:tax>{% endif %}
    {% if product.customFields.lenz_google_shopping_installment is defined %}<g:installment>{{ product.customFields.lenz_google_shopping_installment }}</g:installment>{% endif %}
    {% if product.customFields.lenz_google_shopping_subscription_cost is defined %}<g:subscription_cost>{{ product.customFields.lenz_google_shopping_subscription_cost }}</g:subscription_cost>{% endif %}
    {% if product.customFields.lenz_google_shopping_loyalty_points is defined %}<g:loyalty_points>{{ product.customFields.lenz_google_shopping_loyalty_points }}</g:loyalty_points>{% endif %}
    {% if product.customFields.lenz_google_shopping_product_details is defined %}<g:product_detail>{{ product.customFields.lenz_google_shopping_product_details }}</g:product_detail>{% endif %}
    {% if product.customFields.lenz_google_shopping_ads_redirect is defined %}<g:ads_redirect>{{ product.customFields.lenz_google_shopping_ads_redirect }}</g:ads_redirect>{% endif %}
    
	<g:shipping>
        <g:country>DE</g:country>
        <g:service>Standard</g:service>
        <g:price>{% if (salePrice != null and salePrice < 100) or (price < 100) %}{{ 4.95 }} {{ context.currency.isoCode }}{% else %}{{ 0.00 }} {{ context.currency.isoCode }}{% endif %}{# change your default delivery costs #}</g:price>
    </g:shipping>	
    {% if product.customFields.lenz_google_shopping_shipping_label is defined and product.customFields.lenz_google_shopping_shipping_label != '' %}<g:shipping_label>{{ product.customFields.lenz_google_shopping_shipping_label|escape }}</g:shipping_label>{% endif %}
    {% if product.weight %}<g:shipping_weight>{{ product.weight|number_format(2, ',', '')|escape }} kg</g:shipping_weight>{% endif %}
    {% if product.customFields.lenz_google_shopping_transit_time_label is defined and product.customFields.lenz_google_shopping_transit_time_label != '' %}<g:transit_time_label>{{ product.customFields.lenz_google_shopping_transit_time_label|escape }}</g:transit_time_label>{% endif %}
    {% if product.customFields.lenz_google_shopping_max_handling_time is defined and product.customFields.lenz_google_shopping_max_handling_time != '' %}<g:max_handling_time>{{ product.customFields.lenz_google_shopping_max_handling_time|escape }}</g:max_handling_time>{% endif %}
    {% if product.customFields.lenz_google_shopping_min_handling_time is defined and product.customFields.lenz_google_shopping_min_handling_time != '' %}<g:min_handling_time>{{ product.customFields.lenz_google_shopping_min_handling_time|escape }}</g:min_handling_time>{% endif %}
    {% if product.customFields.lenz_google_shopping_tax_category is defined and product.customFields.lenz_google_shopping_tax_category != '' %}<g:tax_category>{{ product.customFields.lenz_google_shopping_tax_category|escape }}</g:tax_category>{% endif %}
</item>

{# Entferne diese Zeile, um alle Produkte zu Google Shopping zu übertragen #}
{#% endif %#}

Titel mit Variantenname aus Varianteneigenschaften

<g:title>
	{%- if product.customFields.lenz_google_shopping_title is defined and product.customFields.lenz_google_shopping_title != "" %}
		{{- product.customFields.lenz_google_shopping_title|escape -}}
	{%- else -%}
		{% set variantName %}
			{%- for option in product.options -%}
				{%- if option.id in product.optionIds -%}
					{{- option.group.translated.name }}: {{ option.translated.name }}, 
				{% endif -%}
			{% endfor -%}
		{% endset %}
		{{- product.translated.name|escape }}{% if variantName %} {{ variantName|trim|trim(",") -}}{% endif %}
	{%- endif -%}
</g:title>
Menü
Kontakt