integration_documentation:plugin:en:integration:shopware_6:extension
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous 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/12/13 13:42] (current) tobi |
||
---|---|---|---|
Line 15: | Line 15: | ||
</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 25: | ||
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 38: | ||
<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 75: | ||
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 107: | ||
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 207: | ||
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 275: | ||
> | > | ||
<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 393: | ||
$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 573: | ||
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 578: | ||
public function withProductAssociations(): OriginalProductCriteriaBuilder | public function withProductAssociations(): OriginalProductCriteriaBuilder | ||
{ | { | ||
- | Utils::addProductAssociations($this->criteria); | + | parent::withProductAssociations(); |
$this->criteria->addAssociations([ | $this->criteria->addAssociations([ | ||
Line 593: | Line 589: | ||
public function withVariantAssociations(): OriginalProductCriteriaBuilder | public function withVariantAssociations(): OriginalProductCriteriaBuilder | ||
{ | { | ||
- | Utils::addVariantAssociations($this->criteria); | + | parent::withVariantAssociations(); |
$this->criteria->addAssociations([ | $this->criteria->addAssociations([ | ||
Line 620: | Line 616: | ||
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 722: | ||
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> | + |