Grüße! Ich bin Aneesh Sreedharan, CEO von 2Hats Logic Solutions. Bei 2Hats Logic Solutions widmen wir uns der Bereitstellung von technischem Fachwissen und der Lösung Ihrer Probleme in der Welt der Technologie. Unsere Blog-Seite dient als Ressource, in der wir Einblicke und Erfahrungen teilen und wertvolle Perspektiven auf Ihre Fragen bieten.
In diesem Artikel wird beschrieben, wie man die neuesten Produkte in der Liste der Produkte einer Kategorie zuerst anzeigt.
Wir müssen einen benutzerdefinierten Abonnenten für ProductEvents hinzufügen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /** * class MySubscriber implements EventSubscriberInterface { /** * @var SystemConfigService */ private $systemConfigService; public function __construct( SystemConfigService $systemConfigService ) { $this->systemConfigService = $systemConfigService; } public static function getSubscribedEvents(): array { return [ ProductEvents::PRODUCT_LISTING_CRITERIA => 'productListingCriteria' ]; } public function productListingCriteria(ProductListingCriteriaEvent $event) { if ($this->systemConfigService->get(Plugin.config.sortCreatedByCategories')) { if ($this->checkCategoryFromConfig( $this->systemConfigService->get('Plugin.config.sortCreatedByCategories'), $event->getRequest()->attributes->get('navigationId')) ) { $criteria = $event->getCriteria(); $criteria->addSorting( new FieldSorting('createdAt', 'DESC') ); } } return; } function checkCategoryFromConfig($categories, $configCategory) { if(is_array($configCategory)) { return !empty(array_intersect($configCategory, $categories)); } return !empty(in_array($configCategory, $categories)); } } */ |
Hier verwenden wir den SystemConfigService, um die Plugin-Konfiguration zu erhalten. Damit werden die ausgewählte Kategorie oder Kategorien in der Plugin-Konfiguration abgerufen.
Dann müssen wir die Liste nach dem Erstellungsdatum sortieren.
Hier sind die services.xml und config.xml, um Ihnen die Arbeit zu erleichtern.
1 2 3 4 5 6 | /** * <service id="PluginSubscriberMySubscriber"> <argument type="service" id="ShopwareCoreSystemSystemConfigSystemConfigService" /> <tag name="kernel.event_subscriber"/> </service> */<span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1"></span> |
1 2 3 4 5 6 7 8 9 | /** * <card> <component name="sw-entity-multi-id-select"> <name>sortCreatedByCategories</name> <entity>category</entity> <label>Choose Categories To Be Sorted Based on Creation Date</label> </component> </card */<span id="mce_marker" data-mce-type="bookmark" data-mce-fragment="1"></span> |
Ich hoffe, es hilft.