# Google Merchant Center- Verfügbarkeitsdatum, korrektes Format?

**URL:** <https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057>\
**Category:** Allgemein\
**Created:** [12. Juni 2023 um 12:12 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057 "2023-06-12T12:12:26Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 12:12 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/1 "2023-06-12T12:12:26Z")

</div>

Hallo zusammen

Weiss jemand von Euch, wie man im Google Feed das „availability\_date“ korrekt formatiert? Ich habe schon alles mögliche durchprobiert, doch im Google Merchant Center erhalte ich bei sämtlichen Produkten stehts den Hinweis (kein Fehler) Ungültiges Datum und/oder ungültige Zeit [Verfügbarkeitsdatum] Verwenden Sie das unterstützte Datums- und Zeitformat JJJJ-MM-DDThh:mm:ssZ (ISO 8601)

Und so siehts in meinem Template derzeit aus:

```auto
  {% if product.deliveryTime %}
        <g:availability_date>{{ "now"|date("Y-m-d\\TH:i:s\\Z") }}</g:availability_date>
    {% endif %}

```

Ich habe auch schon den von Google empfohlenen Link [Datums- und Zeitangaben formatieren - Google Merchant Center-Hilfe](https://support.google.com/merchants/answer/7055760?hl=de) angeschaut, komme aber trotzdem nicht weiter.

Irgendwo im Google Leitfaden habe ich auch mal gelesen, dass auf der Landing-Page ebenfalls das genaue Availability Date existieren muss. Da könnte ich dann allerdings kaum viel ausrichten, da Shopware dies nicht anbietet. Oder wo könnte sonst noch der Fehler liegen?

LG

---

<div class="post-metadata">

**Author:** ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)\
**Post date:** [12. Juni 2023 um 12:34 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/2 "2023-06-12T12:34:07Z")

</div>

Bei „now“ muss doch eigentlich die Variabel product.deliveryTime rein oder? Um das Datum richtig zu formatieren kann du `|date("c")` oder `|date("Y-m-d\\TH:i:sP")` ausprobieren:

```auto
{% if product.deliveryTime %}
        <g:availability_date>{{ product.deliveryTime|date("c")}}</g:availability_date>
{% endif %}

```

Oder so:

```auto
{% if product.deliveryTime %}
        <g:availability_date>{{ product.deliveryTime|date("Y-m-d\\TH:i:sP")}}</g:availability_date>
{% endif %}

```

> **[How to format a datetime object to ISO 8601 in Twig](https://ourcodeworld.com/articles/read/130/how-to-format-a-datetime-object-to-iso-8601-in-twig)**
>
> Learn how to format a datetime object to ISO 8601 format with twig easily.

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 12:40 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/3 "2023-06-12T12:40:33Z")

</div>

> [@tom\_prok](#):
>
> ```auto
> {% if product.deliveryTime %}
> <g:availability_date>{{ product.deliveryTime|date("Y-m-d\\TH:i:sP")}}</g:availability_date>
> {% endif %}
> 
> ```

Danke für Deine Hilfe. Allerdings erhalte ich bei beiden Möglichkeiten eine Fehlermeldung.

```auto
{"errors":[{"code":"0","status":"500","title":"Internal Server Error","detail":"Object of class Shopware\\Core\\System\\DeliveryTime\\DeliveryTimeEntity could not be converted to string"}]}

```

---

<div class="post-metadata">

**Author:** ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)\
**Post date:** [12. Juni 2023 um 12:52 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/4 "2023-06-12T12:52:39Z")

</div>

Passt die Formatierung denn wenn du wieder „now“ nimmst?

```auto
{% if product.deliveryTime %}
        <g:availability_date>{{ "now"|date("c")}}</g:availability_date>
    {% endif %}

```

```auto
{% if product.deliveryTime %}
        <g:availability_date>{{ "now"|date("Y-m-d\\TH:i:sP")}}</g:availability_date>
    {% endif %}

```

---

<div class="post-metadata">

**Author:** ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)\
**Post date:** [12. Juni 2023 um 12:57 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/5 "2023-06-12T12:57:39Z")

</div>

Ach, du musst glaube ich die variabel in Anführungszeichen setzen, wie bei „now“:

```auto
{% if product.deliveryTime %}
        <g:availability_date>{{ "product.deliveryTime"|date("c")}}</g:availability_date>
{% endif %}

```

```auto
{% if product.deliveryTime %}
        <g:availability_date>{{ "product.deliveryTime"|date("Y-m-d\\TH:i:sP")}}</g:availability_date>
{% endif %}

```

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 13:00 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/6 "2023-06-12T13:00:35Z")

</div>

> [@tom\_prok](#):
>
> ```auto
> {% if product.deliveryTime %}
> <g:availability_date>{{ "product.deliveryTime"|date("c")}}</g:availability_date>
> {% endif %}
> 
> ```

Mit dem „now“ funktionierts, doch mit „product.deliveryTime“ leider nicht. Hmmm

```auto
{"errors":[{"status":"400","code":"FRAMEWORK__STRING_TEMPLATE_RENDERING_FAILED","title":"Bad Request","detail":"Failed rendering string template using Twig: Failed rendering string template using Twig: An exception has been thrown during the rendering of a template (\u0022Failed to parse time string (product.deliveryTime) at position 0 (p): The timezone could not be found in the database\u0022) in \u0022ee28160dfacbd5679485c6a9cfa7d5bb\u0022 at line 30.","meta":{"parameters":{"message":"Failed rendering string template using Twig: An exception has been thrown during the rendering of a template (\u0022Failed to parse time string (product.deliveryTime) at position 0 (p): The timezone could not be found in the database\u0022) in \u0022ee28160dfacbd5679485c6a9cfa7d5bb\u0022 at line 30."}}}]}

```

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [12. Juni 2023 um 13:09 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/7 "2023-06-12T13:09:11Z")

</div>

Habt ihr schon einmal gelesen, für was das Feld ist? Meiner Meinung nach ist das hier völliger Unsinn, was ihr versucht umzusetzen.

> Use the availability date `[availability_date]` attribute to tell customers when a preordered or backordered product will be shipped.

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 13:17 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/8 "2023-06-12T13:17:21Z")

</div>

> [@tom\_prok](#):
>
> ```auto
> {% if product.deliveryTime %}
> <g:availability_date>{{ "product.deliveryTime"|date("c")}}</g:availability_date>
> {% endif %}
> 
> ```

Ehrlich gesagt nein. Ich habe die Vorlage von Shopware übernommen und da stand eben das Availability Date drin. Ich selber führe kein grösseres Lager, sondern bestelle jeweils direkt bei meinen Lieferanten. Somit wäre ich zufrieden, wenn Google einfach „Lieferzeit 1-3“ Tage eintragen würde. Doch wenn ich das availability Datum weglasse, reklamiert er, weil er dieses möchte.

Ich möchte einfach, dass dieses "Abgelehnte Attribute " verschwindet

 ![MerchantCenter](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/b/a/ba620cd036cac05d88792c4265833c799d7e5993.png)

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [12. Juni 2023 um 13:19 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/9 "2023-06-12T13:19:51Z")

</div>

Dann lösche das Feld doch einfach aus dem Template.

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 13:24 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/10 "2023-06-12T13:24:04Z")

</div>

Mach ich doch. 🙂

Drei Stunden für die Katz verbraten. 🤪

---

<div class="post-metadata">

**Author:** ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)\
**Post date:** [12. Juni 2023 um 13:28 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/11 "2023-06-12T13:28:11Z")

</div>

> Verfügbarkeitsdatum 1-3 Tage

😅

Aber immerhin wissen wir jetzt wie man in Twig ein Datum nach ISO 8601 formatiert, ist bestimmt immer hilfreich 😉

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 13:45 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/12 "2023-06-12T13:45:17Z")

</div>

@Max_Shop  
Aber wieso erhalte ich denn nach dem Löschen des Attributs und neu Starten des Feeds weiterhin im Merchant Center die Meldung:

Ungültiges Datum und/oder ungültige Zeit [Verfügbarkeitsdatum]

Verwenden Sie das unterstützte Datums- und Zeitformat JJJJ-MM-DDThh:mm:ssZ (ISO 8601)

Oder muss ich zuerst alle Daten löschen und erst dann nochmals den Feed starten?

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [12. Juni 2023 um 13:50 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/13 "2023-06-12T13:50:31Z")

</div>

Wenn das Attribute in dem Feed ist und der Inhalt fehlerhaft, dann meckert Google. Wenn das Attribut nicht existiert, dann interessiert es Google auch nicht.

Nein, die Daten musst du eigentlich nicht löschen. Das macht alles Google für dich.

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 13:53 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/14 "2023-06-12T13:53:14Z")

</div>

Das ist aber nicht mehr im Feed. 🤔

```auto
<item>
    <g:id>{{ product.productNumber }}</g:id>
    <title>{{ product.translated.name|escape }}</title>
    <description>
        {% if product.translated.metaDescription is defined %}
            {{ product.translated.metaDescription|escape }}
        {% else %}
            {{ product.translated.description|escape }}
        {% endif %}
    </description>
    <g:google_product_category>950{# change your Google Shopping category #}</g:google_product_category>
    {%- if product.categories.count > 0 -%}
        <g:product_type>
            {% set breadcrumb = product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw %}
            {% if "Kosmetik" in breadcrumb %}
                Kosmetik > {{ product.categories.first.name|escape }}
            {% elseif "Gesundheitsprodukte" in breadcrumb %}
                Gesundheitsprodukte > {{ product.categories.first.name|escape }}
            {% elseif "Gartenprodukte" in breadcrumb %}
                Gartenprodukte > {{ product.categories.first.name|escape }}
            {% else %}
                {{ product.categories.first.name|escape }}
            {% endif %}
        </g:product_type>
    {%- endif -%}
    <link>{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}</link>
    {% if product.cover.media is defined %}<g:image_link>{{ product.cover.media.url }}</g:image_link>{% endif %}
    <g:condition>new</g:condition>
    {% 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>
    {% if product.manufacturer is not null %}
        <g:brand>{{ product.manufacturer.translated.name|escape }}</g:brand>
    {% endif %}
    <g:gtin>{{ product.ean }}</g:gtin>
    <g:mpn>{{ product.manufacturerNumber }}</g:mpn>
    <g:shipping>
        <g:country>CH</g:country>
        <g:service>Standard</g:service>
        {% set weight = product.weight %}
        {% if weight <= 2 %}
            <g:price>7.00 CHF</g:price>
        {% elseif weight <= 10 %}
            <g:price>9.70 CHF</g:price>
        {% elseif weight <= 30 %}
            <g:price>20.50 CHF</g:price>
        {% endif %}
    </g:shipping>
</item>

```

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [12. Juni 2023 um 14:01 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/15 "2023-06-12T14:01:16Z")

</div>

> [@Mercator](#):
>
> ```auto
> {% if weight <= 2 %}
> <g:price>7.00 CHF</g:price>
> {% elseif weight <= 10 %}
> <g:price>9.70 CHF</g:price>
> {% elseif weight <= 30 %}
> <g:price>20.50 CHF</g:price>
> {% endif %}
> 
> ```

Da fehlt wohl ein else?

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [12. Juni 2023 um 14:03 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/16 "2023-06-12T14:03:26Z")

</div>

> [@Mercator](#):
>
> ```auto
> <g:google_product_category>950{# change your Google Shopping category #}</g:google_product_category>
> {%- if product.categories.count > 0 -%}
> <g:product_type>
> {% set breadcrumb = product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw %}
> {% if "Kosmetik" in breadcrumb %}
> Kosmetik > {{ product.categories.first.name|escape }}
> {% elseif "Gesundheitsprodukte" in breadcrumb %}
> Gesundheitsprodukte > {{ product.categories.first.name|escape }}
> {% elseif "Gartenprodukte" in breadcrumb %}
> Gartenprodukte > {{ product.categories.first.name|escape }}
> {% else %}
> {{ product.categories.first.name|escape }}
> {% endif %}
> </g:product_type>
> {%- endif -%}
> 
> ```

Das wird auch nicht funktionieren. Die 950 darf da nicht fix drin stehen, sonst sind alle Produkte in der gleichen Kategorie.

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 14:44 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/17 "2023-06-12T14:44:20Z")

</div>

Herzlichen Dank für Deine Korrekturen. 🙂  
Manchmal sieht man von lauter Bäumen den Wald nicht mehr. Die Kategorie habe ich nun mal etwas umgebaut. Wäre das so i.O.?

```auto
<g:google_product_category>
        {% set defaultCategoryId = 950 %}
        {% if product.categories.count > 0 %}
            {% set categoryId = product.categories.first.id %}
            {{ categoryId }}
        {% else %}
            {{ defaultCategoryId }}
        {% endif %}
    </g:google_product_category>

    {%- if product.categories.count > 0 -%}
        <g:product_type>
            {% set breadcrumb = product.categories.first.getBreadCrumb|slice(1)|join(' > ')|raw %}
            {% if "Kosmetik" in breadcrumb %}
                Kosmetik > {{ product.categories.first.name|escape }}
            {% elseif "Gesundheitsprodukte" in breadcrumb %}
                Gesundheitsprodukte > {{ product.categories.first.name|escape }}
            {% elseif "Gartenprodukte" in breadcrumb %}
                Gartenprodukte > {{ product.categories.first.name|escape }}
            {% else %}
                {{ product.categories.first.name|escape }}
            {% endif %}
        </g:product_type>
    {%- endif -%}

```

Und bei den Versandkosten stehe ich gerade etwas auf dem Schlauch. Klar da fehlt ein „else“. Doch welche Bedingung macht Sinn?

```auto
{% if weight <= 2 %}
    <g:price>7.00 CHF</g:price>
{% elseif weight <= 10 %}
    <g:price>9.70 CHF</g:price>
{% elseif weight <= 30 %}
    <g:price>20.50 CHF</g:price>
{% else %}
    <g:price>0.00 CHF</g:price> 
{% endif %}

```

Ich habe z.B. auch ab einer Betragsgrenze Versandkostenfrei. Aber ob dann 0.00 korrekt wäre.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [12. Juni 2023 um 14:55 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/18 "2023-06-12T14:55:49Z")

</div>

> [@Mercator](#):
>
> `{% set categoryId = product.categories.first.id %}`

Wie kommst du denn auf diese wahnwitzige Idee? Das sind nicht Shopwares uuids sondern Google Category Ids.

In ein else kommt immer das default rein. Sonst meckert Google ggf. wieder. falls du nun über 30 kg versandkostenfrei versenden möchtest, dann wäre es korrekt. Wenn es um die Bestellsumme geht, dann solltest du kein Gewicht als Referenz nehmen.

---

<div class="post-metadata">

**Author:** ![kim.kar](https://avatars.discourse-cdn.com/v4/letter/k/e9a140/32.png) [@kim.kar](https://forum.shopware.com/u/kim.kar)\
**Post date:** [12. Juni 2023 um 15:24 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/19 "2023-06-12T15:24:43Z")

</div>

\<g:availability\>  
{if isset($sArticle.active) && !$sArticle.active}auf Lager  
{elseif $sArticle.sReleaseDate && $sArticle.sReleaseDate|date\_format:„%Y%m%d“ \> $smarty.now|date\_format:„%Y%m%d“}vorbestellbar  
{elseif $sArticle.esd}auf Lager  
{elseif {config name=„instockinfo“} && $sArticle.modus == 0 && $sArticle.instock \> 0 && $sArticle.quantity \> $sArticle.instock}auf Lager  
{elseif $sArticle.instock \>= $sArticle.minpurchase}auf Lager  
{elseif $sArticle.shippingtime}auf Lager  
{else}auf Lager  
{/if}  
\</g:availability\>

Mit diesem Datumformat, s.o. funktioniert bei uns der Feed einwandfrei.

---

<div class="post-metadata">

**Author:** ![Mercator](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@Mercator](https://forum.shopware.com/u/Mercator)\
**Post date:** [12. Juni 2023 um 17:35 UTC](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057/20 "2023-06-12T17:35:01Z")

</div>

> [@Max\_Shop](#):
>
> Google Category Ids

@Max_Shop  
Ooooh… tja, schon etwas neben der Spur. 🫢

Betreffend Google IDs. Sind das diese hier? [Google Product Category Taxonomy: The Definitive Guide - WebAppick](https://webappick.com/google-product-category-taxonomy-guide/)

Das sieht dann z.B. wie folgt aus:  
113 Heim & Garten Rasen & Garten Gartenbau Dünger

Wie verlinkt man das dann genau? Und wie weiss Merchant Center welche ID zu welchem Produkt gehört? Irgendwie ist mir das jetzt überhaupt nicht logisch.

[Nächste Seite](https://forum.shopware.com/t/google-merchant-center-verfuegbarkeitsdatum-korrektes-format/100057.md?page=2)
