JSON_LD_DATA in SW 6.7.16.0?

Wie kann man denn in SW 6.7.16 Feature Flag ‚JSON_LD_DATA‘ aktivieren?

Bis dato hatte ich das per Config so eingestellt und ging auch:

  feature:
    flags:
      - name: JSON_LD_DATA
        default: true
        major: false
        description: 'Storefront emits JSON-LD instead of Microdata'

In SW 6.7.16 verursacht das jetzt ein Fehler:

User Deprecated: Since symfony/dependency-injection 7.4: 
XML configuration format is deprecated, use YAML or PHP instead.;

Diese Meldung kommt aber erst beim Einfügen vom Feature Flag, sonst scheint die ‚z-shopware.yaml‘ zu funktionieren.

Die XML-Meldung ist nur ein Deprecation-Hinweis von Symfony 7.4, mit deinem Flag hat die nichts zu tun. Das Problem ist major: false. In 6.7.16 hat Shopware die Konfiguration der Feature Flags geändert: major ist kein Ja/Nein mehr, sondern die Version in der das Flag Standard wird, also z.B. v6.8.0.0. Ein false fällt bei der Config-Prüfung durch und der Container wird nicht gebaut. Die eigentliche Fehlermeldung steht vermutlich weiter unten in der Ausgabe.

Den Block brauchst du aber gar nicht mehr. JSON_LD_DATA definiert Shopware selbst (mit major: v6.8.0.0 und toggleable: true), du musst es nur einschalten. Dafür gibts zwei Wege:

  1. Umgebungsvariable in der .env.local:
    JSON_LD_DATA=1
    Die hat Vorrang vor allem anderen.
  2. Konsole, wird in der Datenbank gespeichert:
    bin/console feature:enable JSON_LD_DATA

Danach den eigenen Flag-Block aus der z-shopware.yaml raus und bin/console cache:clear. Ich würde die .env.local nehmen, da siehst du pro Umgebung direkt ob das Flag an ist.

Ja Punkt 1 ist genau das. Gut zu wissen beim Wechsel von 6.7.15.x auf 6.7.16.x.