{"id":261904,"date":"2020-08-01T15:25:10","date_gmt":"2020-08-01T15:25:10","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=261904"},"modified":"2021-08-13T03:48:05","modified_gmt":"2021-08-13T03:48:05","slug":"how-to-add-the-custom-listing-in-the-storefront-at-the-shopware","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/","title":{"rendered":"How to add the custom listing in the storefront at the Shopware"},"content":{"rendered":"\n<p>In this blog, you are going to learn \u201cHow to add the custom listing in the storefront at  the Shopware.\u201d<br>I hope you know the directory structure of&nbsp;<a href=\"https:\/\/webkul.com\/blog\/create-product-and-product-variant-in-shopware-6\/\">Shopware<\/a>&nbsp;6 plugin, if you don\u2019t know, see here-&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/webkul.com\/blog\/create-product-and-product-variant-in-shopware-6\/\" target=\"_blank\">https:\/\/docs.shopware.com\/en\/shopware-platform-dev-en\/internals\/directory-structure<\/a>.<\/p>\n\n\n\n<p>New product listing filters can be registered via the event&nbsp;<code>\\Shopware\\Core\\Content\\Product\\Events\\ProductListingCriteriaEvent<\/code>. This event will be fire when the&nbsp;Criteria&nbsp;object is creating for the listing. The event can use to respond to the request to add new filters or aggregations to the Criteria object. Afterward, it is important to register for the event&nbsp;<code>\\Shopware\\Core\\Content\\Product\\Events\\ProductListingResultEvent<\/code>&nbsp;to add the filtered values to the result.&nbsp;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\n\nnamespace Shopware\\Core\\Content\\Product\\SalesChannel\\Listing;\n\nuse Shopware\\Core\\Content\\Product\\Events\\ProductListingCriteriaEvent;\nuse Shopware\\Core\\Content\\Product\\Events\\ProductListingResultEvent;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\Search\\Aggregation\\Metric\\EntityAggregation;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\Search\\Filter\\EqualsAnyFilter;\nuse Symfony\\Component\\EventDispatcher\\EventSubscriberInterface;\nuse Symfony\\Component\\HttpFoundation\\Request;\n\nclass ExampleListingSubscriber implements EventSubscriberInterface\n{\n    public static function getSubscribedEvents()\n    {\n        return &#091;\n            ProductListingCriteriaEvent::class =&gt; &#039;handleRequest&#039;,\n            ProductListingResultEvent::class =&gt; &#039;handleResult&#039;,\n        ];\n    }\n\n    public function handleRequest(ProductListingCriteriaEvent $event)\n    {\n        $criteria = $event-&gt;getCriteria();\n\n        $request = $event-&gt;getRequest();\n\n        $criteria-&gt;addAggregation(\n            new EntityAggregation(&#039;manufacturer&#039;, &#039;product.manufacturerId&#039;, &#039;product_manufacturer&#039;)\n        );\n\n        $ids = $this-&gt;getManufacturerIds($request);\n\n        if (empty($ids)) {\n            return;\n        }\n\n        $criteria-&gt;addPostFilter(new EqualsAnyFilter(&#039;product.manufacturerId&#039;, $ids));\n    }\n\n    public function handleResult(ProductListingResultEvent $event)\n    {\n        $event-&gt;getResult()-&gt;addCurrentFilter(&#039;manufacturer&#039;, $this-&gt;getManufacturerIds($event-&gt;getRequest()));\n    }\n\n    private function getManufacturerIds(Request $request): array\n    {\n        $ids = $request-&gt;query-&gt;get(&#039;manufacturer&#039;, &#039;&#039;);\n        $ids = explode(&#039;|&#039;, $ids);\n\n        return array_filter($ids);\n    }\n}<\/pre>\n\n\n\n<p>The sorting in the product listing is controlled by the&nbsp;<code>\\Shopware\\Core\\Content\\Product\\SalesChannel\\Listing\\ProductListingSortingRegistry<\/code>. All classes in this registry represent a selectable sort in the listing. The&nbsp;<code>\\Shopware\\Core\\Content\\Product\\SalesChannel\\Listing\\ProductListingSorting<\/code>&nbsp;can easily be defined via DI-Container. By the container tag&nbsp;<code>shopware.sales_channel.product_listing.sorting<\/code>&nbsp;these are then registered in the registry.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">service.xml<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;service id=&quot;product_listing.sorting.name_descending&quot; class=&quot;Shopware\\Core\\Content\\Product\\SalesChannel\\Listing\\ProductListingSorting&quot;&gt;\n    &lt;argument&gt;name-desc&lt;\/argument&gt;\n    &lt;argument&gt;filter.sortByNameDescending&lt;\/argument&gt;\n    &lt;argument type=&quot;collection&quot;&gt;\n        &lt;argument key=&quot;product.name&quot;&gt;desc&lt;\/argument&gt;\n    &lt;\/argument&gt;\n    &lt;tag name=&quot;shopware.sales_channel.product_listing.sorting&quot; \/&gt;\n&lt;\/service&gt;<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\">$sorting = new ProductListingSorting(\n    &#039;name-asc&#039;,\n    &#039;filter.sortByNameDescending&#039;,\n    &#091;\n        &#039;product.name&#039; =&gt; &#039;desc&#039;,\n        &#039;product.id&#039;   =&gt; &#039;asc&#039;\n    ]\n);<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Entity extension<\/h4>\n\n\n\n<p>If you&#8217;re wondering how to extend existing core entities, this &#8216;HowTo&#8217; will have you covered. Do not confuse entity extensions with entities&#8217; custom fields though, as they serve a different purpose. In short: Extensions are technical and not configurable by the admin user just like that. Also, they can deal with more complex types than scalar ones. Custom fields are, by default, configurable by the admin user in the administration and they mostly support scalar types, e.g. a text-field, a number field&nbsp;<\/p>\n\n\n\n<p>Own entities can be integrated into the core via the corresponding entry in the&nbsp;<code>services.xml<\/code>. To extend existing entities, the abstract class&nbsp;<code>\\Shopware\\Core\\Framework\\DataAbstractionLayer\\EntityExtension<\/code>&nbsp;is used. The EntityExtension must define which entity should extend in the method. Once this extension access in the system, the extension can add more fields to it:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php declare(strict_types=1);\n\nnamespace Webkul\\EntityExtension\\Extension\\Content\\Product;\n\nuse Shopware\\Core\\Content\\Product\\ProductDefinition;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\EntityExtension;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\Field\\Flag\\Runtime;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\Field\\ObjectField;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\FieldCollection;\n\nclass CustomExtension extends EntityExtension\n{\n    public function extendFields(FieldCollection $collection): void\n    {\n        $collection-&gt;add(\n            (new ObjectField(&#039;custom_struct&#039;, &#039;customStruct&#039;))-&gt;addFlags(new Runtime())\n        );\n    }\n\n    public function getDefinitionClass(): string\n    {\n        return ProductDefinition::class;\n    }\n}<\/pre>\n\n\n\n<p>This example adds another association named&nbsp;<code>custom_struct<\/code>&nbsp;to the&nbsp;<code>ProductDefinition<\/code>. The&nbsp;<code>Runtime<\/code>&nbsp;flag tells the data abstraction layer, that you&#8217;re going to take care of the field&#8217;s content yourself. Have a look at our detailed list of&nbsp;<a href=\"https:\/\/docs.shopware.com\/en\/shopware-platform-dev-en\/references-internals\/core\/dal\">flags<\/a>&nbsp;and what their purpose is, or find out which&nbsp;<a href=\"https:\/\/docs.shopware.com\/en\/shopware-platform-dev-en\/references-internals\/core\/dal\">field types<\/a>&nbsp;are available in Shopware 6.<\/p>\n\n\n\n<p>So, time to take care of the product entities&#8217; new field yourself. You&#8217;re going to need a new subscriber for this. Have a look&nbsp;<a href=\"https:\/\/docs.shopware.com\/en\/shopware-platform-dev-en\/how-to\/register-subscriber\">here<\/a>&nbsp;to find out how to properly add your own subscriber class.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php declare(strict_types=1);\n\nnamespace Webkul\\EntityExtension\\Subscriber;\n\nuse Swag\\EntityExtension\\Struct\\MyCustomStruct;\nuse Shopware\\Core\\Content\\Product\\ProductEntity;\nuse Shopware\\Core\\Framework\\DataAbstractionLayer\\Event\\EntityLoadedEvent;\nuse Symfony\\Component\\EventDispatcher\\EventSubscriberInterface;\nuse Shopware\\Core\\Content\\Product\\ProductEvents;\n\nclass MySubscriber implements EventSubscriberInterface\n{\n    public static function getSubscribedEvents(): array\n    {\n        return &#091;\n            ProductEvents::PRODUCT_LOADED_EVENT =&gt; &#039;onProductsLoaded&#039;\n        ];\n    }\n\n    public function onProductsLoaded(EntityLoadedEvent $event): void\n    {\n        \/** @var ProductEntity $productEntity *\/\n        foreach ($event-&gt;getEntities() as $productEntity) {\n            $productEntity-&gt;addExtension(&#039;custom_struct&#039;, new MyCustomStruct());\n        }\n    }\n}<\/pre>\n\n\n\n<p>As you can see, the subscriber listens to the&nbsp;<code>PRODUCT_LOADED<\/code>&nbsp;event, which is triggered every time a set of products is requested. The listener&nbsp;<code>onProductsLoaded<\/code>&nbsp;then adds a custom struct into the new field.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">service.xml<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?xml version=&quot;1.0&quot; ?&gt;\n\n&lt;container xmlns=&quot;http:\/\/symfony.com\/schema\/dic\/services&quot;\n           xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot;\n           xsi:schemaLocation=&quot;http:\/\/symfony.com\/schema\/dic\/services http:\/\/symfony.com\/schema\/dic\/services\/services-1.0.xsd&quot;&gt;\n\n    &lt;services&gt;\n        &lt;service id=&quot;Webkul\\EntityExtension\\Extension\\Content\\Product\\CustomExtension&quot;&gt;\n            &lt;tag name=&quot;shopware.entity.extension&quot;\/&gt;\n        &lt;\/service&gt;\n\n        &lt;service id=&quot;Webkul\\EntityExtension\\Subscriber\\MySubscriber&quot;&gt;\n            &lt;tag name=&quot;kernel.event_subscriber&quot; \/&gt;\n        &lt;\/service&gt;\n    &lt;\/services&gt;\n&lt;\/container&gt;<\/pre>\n\n\n\n<p>I hope it will help you. Thanks for reading. Happy Coding \ud83d\ude42<\/p>\n\n\n\n<p>Please explore our\u00a0<a href=\"https:\/\/webkul.com\/shopware-development\/\">shopware development services<\/a>\u00a0and Quality\u00a0<a href=\"https:\/\/store.webkul.com\/Shopware.html\">shopware extensions<\/a>.<br><br>Thank You.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog, you are going to learn \u201cHow to add the custom listing in the storefront at the Shopware.\u201dI hope you know the directory structure of&nbsp;Shopware&nbsp;6 plugin, if you don\u2019t know, see here-&nbsp;https:\/\/docs.shopware.com\/en\/shopware-platform-dev-en\/internals\/directory-structure. New product listing filters can be registered via the event&nbsp;\\Shopware\\Core\\Content\\Product\\Events\\ProductListingCriteriaEvent. This event will be fire when the&nbsp;Criteria&nbsp;object is creating for the <a href=\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":284,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9568,1],"tags":[9274],"class_list":["post-261904","post","type-post","status-publish","format-standard","hentry","category-shopware","category-uncategorized","tag-shopware"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to add the custom listing in the storefront at the Shopware - Webkul Blog<\/title>\n<meta name=\"description\" content=\"New product listing filters can be registered via the event. This event will be fired when the Criteria object is created for the listing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to add the custom listing in the storefront at the Shopware - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"New product listing filters can be registered via the event. This event will be fired when the Criteria object is created for the listing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-01T15:25:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-13T03:48:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Diwakar Rana\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diwakar Rana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\"},\"author\":{\"name\":\"Diwakar Rana\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/4b025fe4ecbc5c0378cd13bb70da654f\"},\"headline\":\"How to add the custom listing in the storefront at the Shopware\",\"datePublished\":\"2020-08-01T15:25:10+00:00\",\"dateModified\":\"2021-08-13T03:48:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\"},\"wordCount\":469,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"keywords\":[\"Shopware\"],\"articleSection\":[\"Shopware\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\",\"url\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\",\"name\":\"How to add the custom listing in the storefront at the Shopware - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"datePublished\":\"2020-08-01T15:25:10+00:00\",\"dateModified\":\"2021-08-13T03:48:05+00:00\",\"description\":\"New product listing filters can be registered via the event. This event will be fired when the Criteria object is created for the listing.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to add the custom listing in the storefront at the Shopware\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/4b025fe4ecbc5c0378cd13bb70da654f\",\"name\":\"Diwakar Rana\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/46482d0264c191ccd0337892016340a80ca4e4987a37f42514a0506aaee7e8dc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/46482d0264c191ccd0337892016340a80ca4e4987a37f42514a0506aaee7e8dc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Diwakar Rana\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/diwakar-rana829\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to add the custom listing in the storefront at the Shopware - Webkul Blog","description":"New product listing filters can be registered via the event. This event will be fired when the Criteria object is created for the listing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/","og_locale":"en_US","og_type":"article","og_title":"How to add the custom listing in the storefront at the Shopware - Webkul Blog","og_description":"New product listing filters can be registered via the event. This event will be fired when the Criteria object is created for the listing.","og_url":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2020-08-01T15:25:10+00:00","article_modified_time":"2021-08-13T03:48:05+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png","type":"image\/png"}],"author":"Diwakar Rana","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Diwakar Rana","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/"},"author":{"name":"Diwakar Rana","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/4b025fe4ecbc5c0378cd13bb70da654f"},"headline":"How to add the custom listing in the storefront at the Shopware","datePublished":"2020-08-01T15:25:10+00:00","dateModified":"2021-08-13T03:48:05+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/"},"wordCount":469,"commentCount":2,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"keywords":["Shopware"],"articleSection":["Shopware"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/","url":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/","name":"How to add the custom listing in the storefront at the Shopware - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"datePublished":"2020-08-01T15:25:10+00:00","dateModified":"2021-08-13T03:48:05+00:00","description":"New product listing filters can be registered via the event. This event will be fired when the Criteria object is created for the listing.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/how-to-add-the-custom-listing-in-the-storefront-at-the-shopware\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to add the custom listing in the storefront at the Shopware"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/4b025fe4ecbc5c0378cd13bb70da654f","name":"Diwakar Rana","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/46482d0264c191ccd0337892016340a80ca4e4987a37f42514a0506aaee7e8dc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/46482d0264c191ccd0337892016340a80ca4e4987a37f42514a0506aaee7e8dc?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Diwakar Rana"},"url":"https:\/\/webkul.com\/blog\/author\/diwakar-rana829\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/261904","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/284"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=261904"}],"version-history":[{"count":6,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/261904\/revisions"}],"predecessor-version":[{"id":301215,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/261904\/revisions\/301215"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=261904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=261904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=261904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}