Storefront Controller -> Wie generiere ich einen Sitemap Eintrag?

Hallo,

im Rahmen einer Plugin Überprüfung wurde bemängelt, dass mein Plugin keinen Eintrag in der Sitemap hat.

Leider finde ich in der Doku kein relevantes Beispiel, wie ich meine URL in die Sitemap aufnehme:

https://docs.shopware.com/en/shopware-platform-dev-en/internals/sitemap#extending-the-sitemap-generation

Hat hier jemand schon Erfahrungen mit?

VG

Hey,

du musst eine neue Klasse erstellen die von UrlProviderInterface eerbt. Dort kannst du deine Links ausgeben. Die Klasse muss im DI mit shopware.sitemap_url_provider registriert sein 

1 Like

Moin @Shyim‍!

Hab nun die die Klassen angelegt und Dekoriert. Wie bewirke ich denn nun, dass die Sitemap generiert wird?

Auch noch interessant zu wissen: https://forum.shopware.com/discussion/67861/wie-erstellt-man-seo-urls

VG Philipp

Du kannst sie über die CLI generieren ./bin/console sitemap:generate

@Shyim‍

Hey danke, nun kommt es zu einem weiterem Prolem:

Ich bekomme folgenden Fehler beim generieren:

Argument 1 passed to CogiGlossary\Core\GlossaryUrlProviderChar::__construct() must implement interface Shopware\Core\S
  ystem\SalesChannel\Entity\SalesChannelRepositoryInterface, instance of Shopware\Core\Framework\DataAbstractionLayer\En
  tityRepository given, called in /home/vagrant/shopware-dev/var/cache/dev_h71efa04690d88f7902106ff4bfba796c/ContainerX7
  e8hUk/CoreShopware_Core_KernelDevDebugContainer.php on line 14009

Habe auch versucht die DI zu ändern:

Also von: cogi_glossary.repository zu sales_channel.cogi_glossary.repository…

Funktioniert leider nicht - wäre zu einfach!

  The service "CogiGlossary\Core\GlossaryUrlProviderChar" has a dependency on a non-existent service "sales_channel.cogi
  _glossary.repository".

Nun die Frage: Wie erstelle ich den Service?

Irgendjmd muss das doch schon so umgesetzt haben!? 

Dann ändere dein Typehint auf EntityRepositoryInterface, da du keine sales_channel_definition hast

1 Like

Ok läuft :slight_smile: danke für deinen Support!