integration_documentation:plugin:en:integration:shopware_6:extension

integration_documentation:plugin:en:integration:shopware_6:extension

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
integration_documentation:plugin:en:integration:shopware_6:extension [2022/06/29 12:19]
tobi [Deal with variant-specific data]
integration_documentation:plugin:en:integration:shopware_6:extension [2022/11/23 14:30]
tobi
Line 1: Line 1:
 +<note important>​Page already contains information for the upcoming version 4</​note>​
 +
 <​markdown>​ <​markdown>​
 ![](https://​docs.findologic.com/​lib/​exe/​fetch.php?​w=400&​tok=a3b266&​media=integration_documentation:​plugins:​sw6-logo.jpg) ![](https://​docs.findologic.com/​lib/​exe/​fetch.php?​w=400&​tok=a3b266&​media=integration_documentation:​plugins:​sw6-logo.jpg)
Line 15: Line 17:
  
 </​markdown>​ </​markdown>​
-<note tip>​Please make sure to use the same major version as the base Findologic plugin. This means that ''​2.x''​ is compatible with ''​2.x''​ and ''​3.x''​ is compatible with ''​3.x'',​ etc.</​note>​+<note tip>​Please make sure to use the same major version as the base Findologic plugin. This means that ''​3.x''​ is compatible with ''​3.x''​ and ''​4.x''​ is compatible with ''​4.x'',​ etc.</​note>​
 <​markdown>​ <​markdown>​
  
Line 25: Line 27:
  
 By default the extension plugin decorates the `AttributeAdapter` and `DefaultPropertiesAdapter`,​ which are responsible to generate the attributes and properties of a product. By default the extension plugin decorates the `AttributeAdapter` and `DefaultPropertiesAdapter`,​ which are responsible to generate the attributes and properties of a product.
-Any adapter in `FINDOLOGIC\FinSearch\Export\Adapters` can be decorated.+Any adapter in `FINDOLOGIC\Shopware6Common\Export\Adapters` can be decorated. The original files are located within `vendor/​findologic/​shopware6-common/​src/​Export/​Adapters`.
  
 `src/​Resources/​config/​services.xml` `src/​Resources/​config/​services.xml`
Line 38: Line 40:
         <service         <service
             id="​FINDOLOGIC\ExtendFinSearch\Export\Adapters\AttributeAdapter"​             id="​FINDOLOGIC\ExtendFinSearch\Export\Adapters\AttributeAdapter"​
-            decorates="​FINDOLOGIC\FinSearch\Export\Adapters\AttributeAdapter"​+            decorates="​FINDOLOGIC\Shopware6Common\Export\Adapters\AttributeAdapter"​
             public="​true"​             public="​true"​
             decoration-on-invalid="​ignore"​             decoration-on-invalid="​ignore"​
 +            autowire="​true"​
         >         >
-            <​argument ​type="service" ​id="​service_container"​ /> +            <​argument ​key="$dynamicProductGroupService" type="​service"​ id="​FINDOLOGIC\FinSearch\Export\Services\DynamicProductGroupService" /> 
-            <​argument ​type="​service"​ id="​FINDOLOGIC\FinSearch\Struct\Config" /> +            <​argument ​key="​$catUrlBuilderService" ​type="​service"​ id="FINDOLOGIC\FinSearch\Export\Services\CatUrlBuilderService" /> 
-            <​argument type="​service"​ id="Shopware\Core\Framework\Adapter\Translation\Translator" /> +            <​argument ​key="$translator" type="​service"​ id="Shopware\Core\Framework\Adapter\Translation\Translator" />
-            <​argument ​type="service" ​id="​fin_search.sales_channel_context"​ /> +
-            <​argument ​type="​service"​ id="FINDOLOGIC\FinSearch\Export\UrlBuilderService"​ /> +
-            <​argument type="​service"​ id="​fin_search.export_context" />+
         </​service>​         </​service>​
  
         <service         <service
             id="​FINDOLOGIC\ExtendFinSearch\Export\Adapters\DefaultPropertiesAdapter"​             id="​FINDOLOGIC\ExtendFinSearch\Export\Adapters\DefaultPropertiesAdapter"​
-            decorates="​FINDOLOGIC\FinSearch\Export\Adapters\DefaultPropertiesAdapter"​+            decorates="​FINDOLOGIC\Shopware6Common\Export\Adapters\DefaultPropertiesAdapter"​
             public="​true"​             public="​true"​
             decoration-on-invalid="​ignore"​             decoration-on-invalid="​ignore"​
 +            autowire="​true"​
         >         >
-            <​argument ​type="service" ​id="​FINDOLOGIC\FinSearch\Struct\Config"​ /> +            <​argument ​key="$translator" type="​service"​ id="​Shopware\Core\Framework\Adapter\Translation\Translator"​ />
-            <​argument type="​service"​ id="​fin_search.sales_channel_context"​ /> +
-            <​argument ​type="​service"​ id="​Shopware\Core\Framework\Adapter\Translation\Translator"​ />+
         </​service>​         </​service>​
  
Line 78: Line 77:
  
 use FINDOLOGIC\Export\Data\Attribute;​ use FINDOLOGIC\Export\Data\Attribute;​
-use FINDOLOGIC\FinSearch\Export\Adapters\AttributeAdapter as OriginalAttributeAdapter;​ +use FINDOLOGIC\Shopware6Common\Export\Adapters\AttributeAdapter as OriginalAttributeAdapter;​ 
-use Shopware\Core\Content\Product\ProductEntity;​+use Vin\ShopwareSdk\Data\Entity\Product\ProductEntity;​
  
 class AttributeAdapter extends OriginalAttributeAdapter class AttributeAdapter extends OriginalAttributeAdapter
Line 110: Line 109:
  
 use FINDOLOGIC\Export\Data\Property;​ use FINDOLOGIC\Export\Data\Property;​
-use FINDOLOGIC\FinSearch\Export\Adapters\DefaultPropertiesAdapter as OriginalDefaultPropertiesAdapter;​ +use FINDOLOGIC\Shopware6Common\Export\Adapters\DefaultPropertiesAdapter as OriginalDefaultPropertiesAdapter;​ 
-use Shopware\Core\Content\Product\ProductEntity;​+use Vin\ShopwareSdk\Data\Entity\Product\ProductEntity;​
  
 class DefaultPropertiesAdapter extends OriginalDefaultPropertiesAdapter class DefaultPropertiesAdapter extends OriginalDefaultPropertiesAdapter
Line 210: Line 209:
  
 use FINDOLOGIC\Export\Data\Property;​ use FINDOLOGIC\Export\Data\Property;​
-use FINDOLOGIC\FinSearch\Export\Adapters\AdapterFactory;​ +use FINDOLOGIC\Shopware6Common\Export\Adapters\AdapterFactory;​ 
-use FINDOLOGIC\FinSearch\Export\Events\AfterItemBuildEvent;​ +use FINDOLOGIC\Shopware6Common\Export\Events\AfterItemBuildEvent;​ 
-use FINDOLOGIC\FinSearch\Export\Events\AfterVariantAdaptEvent;​ +use FINDOLOGIC\Shopware6Common\Export\Events\AfterVariantAdaptEvent;​ 
-use FINDOLOGIC\FinSearch\Export\Events\BeforeItemAdaptEvent+use FINDOLOGIC\Shopware6Common\Export\Events\BeforeItemAdaptEvent;​
-use Shopware\Core\Content\Product\ProductEntity;+
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;​ use Symfony\Component\EventDispatcher\EventSubscriberInterface;​
 +use Vin\ShopwareSdk\Data\Entity\Product\ProductEntity;​
  
 class ProductSubscriber implements EventSubscriberInterface class ProductSubscriber implements EventSubscriberInterface
Line 278: Line 277:
         >         >
             <tag name="​kernel.event_subscriber"​ />             <tag name="​kernel.event_subscriber"​ />
-            <​argument type="​service"​ id="​FINDOLOGIC\FinSearch\Export\Adapters\AdapterFactory"​ />+            <​argument type="​service"​ id="​FINDOLOGIC\Shopware6Common\Export\Adapters\AdapterFactory"​ />
         </​service>​         </​service>​
  
Line 396: Line 395:
     $product = $event->​getProduct();​     $product = $event->​getProduct();​
  
-    foreach ($product->​getProperties() ​as $variantProperty) {+    foreach ($product->​properties ​as $variantProperty) {
         // Ignore all properties except the property we want to export our variants off.         // Ignore all properties except the property we want to export our variants off.
         if (         if (
-            !$variantProperty->​getGroup() ​|| +            !$variantProperty->​group || 
-            $variantProperty->​getGroup()->​getTranslation('​name'​) !== self::​VARIANT_PROPERTY)+            $variantProperty->​group->​getTranslation('​name'​) !== self::​VARIANT_PROPERTY)
         {         {
             continue;             continue;
Line 576: Line 575:
  
 use FINDOLOGIC\FinSearch\Export\Search\ProductCriteriaBuilder as OriginalProductCriteriaBuilder;​ use FINDOLOGIC\FinSearch\Export\Search\ProductCriteriaBuilder as OriginalProductCriteriaBuilder;​
-use FINDOLOGIC\FinSearch\Utils\Utils;​ 
  
 class ProductCriteriaBuilder extends OriginalProductCriteriaBuilder class ProductCriteriaBuilder extends OriginalProductCriteriaBuilder
Line 582: Line 580:
     public function withProductAssociations():​ OriginalProductCriteriaBuilder     public function withProductAssociations():​ OriginalProductCriteriaBuilder
     {     {
-        ​Utils::addProductAssociations($this->​criteria);+        ​parent::withProductAssociations();
  
         $this->​criteria->​addAssociations([         $this->​criteria->​addAssociations([
Line 593: Line 591:
     public function withVariantAssociations():​ OriginalProductCriteriaBuilder     public function withVariantAssociations():​ OriginalProductCriteriaBuilder
     {     {
-        ​Utils::addVariantAssociations($this->​criteria);+        ​parent::withVariantAssociations();
  
         $this->​criteria->​addAssociations([         $this->​criteria->​addAssociations([
Line 620: Line 618:
             decorates="​FINDOLOGIC\FinSearch\Export\Search\ProductCriteriaBuilder"​             decorates="​FINDOLOGIC\FinSearch\Export\Search\ProductCriteriaBuilder"​
             public="​true"​             public="​true"​
-        > +            decoration-on-invalid="ignore
-            <​argument type="service" ​id="​fin_search.sales_channel_context"​ /> +            ​autowire="true
-            ​<​argument type="service" ​id="​Shopware\Core\System\SystemConfig\SystemConfigService"​ /> +        />
-        ​</service>+
         ​         ​
         <!-- ... -->         <!-- ... -->
Line 727: Line 724:
 Once this step is done, selecting your relevant sorting option will send the order parameter to the Findologic API. Once this step is done, selecting your relevant sorting option will send the order parameter to the Findologic API.
  
-</markdow +</markdown>
-n>+