Your IP : 127.0.0.1


Current Path : /home/dev2.destoffenstraat.com/app/Shopby/etc/
Upload File :
Current File : /home/dev2.destoffenstraat.com/app/Shopby/etc/di.xml

<?xml version="1.0"?>
<!--
/**
 * @author Amasty Team
 * @copyright Copyright (c) 2020 Amasty (https://www.amasty.com)
 * @package Amasty_Shopby
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Amasty_Shopby:etc/config.xsd">
    <preference for="Amasty\Shopby\Api\CmsPageRepositoryInterface" type="Amasty\Shopby\Model\Cms\PageRepository"/>
    <preference for="Amasty\Shopby\Api\Data\GroupAttrRepositoryInterface"
                type="Amasty\Shopby\Model\GroupAttrRepository"/>
    <preference for="Amasty\Shopby\Api\GroupRepositoryInterface"
                type="Amasty\Shopby\Model\ResourceModel\GroupRepository" />

    <virtualType name="Magento\CatalogSearch\Model\ResourceModel\Fulltext\CollectionFactory"
                 type="Magento\Catalog\Model\ResourceModel\Product\CollectionFactory">
        <arguments>
            <argument name="instanceName" xsi:type="string">Amasty\Shopby\Model\ResourceModel\Fulltext\Collection</argument>
        </arguments>
    </virtualType>

    <virtualType name="elasticsearchCategoryCollectionFactory"
                 type="Magento\CatalogSearch\Model\ResourceModel\Fulltext\SearchCollectionFactory">
        <arguments>
            <argument name="instanceName" xsi:type="string">Amasty\Shopby\Model\ResourceModel\Fulltext\Collection</argument>
        </arguments>
    </virtualType>

    <virtualType name="amElasticsearchCategoryCollectionFactory"
                 type="Magento\CatalogSearch\Model\ResourceModel\Fulltext\SearchCollectionFactory">
        <arguments>
            <argument name="instanceName" xsi:type="string">Amasty\Shopby\Model\ResourceModel\Fulltext\Collection</argument>
        </arguments>
    </virtualType>

    <virtualType name="elasticsearchFulltextSearchCollectionFactory" type="Magento\CatalogSearch\Model\ResourceModel\Fulltext\SearchCollectionFactory">
        <arguments>
            <argument name="instanceName" xsi:type="string">Amasty\Shopby\Model\ResourceModel\Fulltext\SearchCollection</argument>
        </arguments>
    </virtualType>

    <virtualType name="amElasticsearchFulltextSearchCollectionFactory" type="Magento\CatalogSearch\Model\ResourceModel\Fulltext\SearchCollectionFactory">
        <arguments>
            <argument name="instanceName" xsi:type="string">Amasty\Shopby\Model\ResourceModel\Fulltext\SearchCollection</argument>
        </arguments>
    </virtualType>

    <virtualType name="Amasty\Shopby\Model\ResourceModel\Fulltext\SearchCollection"
                 type="Amasty\Shopby\Model\ResourceModel\Fulltext\Collection">
        <arguments>
            <argument name="searchRequestName" xsi:type="string">quick_search_container</argument>
        </arguments>
    </virtualType>

    <virtualType name="Magento\CatalogSearch\Model\ResourceModel\Fulltext\SearchCollectionFactory"
                 type="Magento\Catalog\Model\ResourceModel\Product\CollectionFactory">
        <arguments>
            <argument name="instanceName"
                      xsi:type="string">Amasty\Shopby\Model\ResourceModel\Fulltext\SearchCollection</argument>
        </arguments>
    </virtualType>

    <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct"
                 type="Magento\Catalog\Block\Product\ListProduct">
        <arguments>
            <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument>
        </arguments>
    </virtualType>

    <virtualType name="Amasty\Shopby\Model\Layer\Cms\Context" type="Magento\Catalog\Model\Layer\Context">
        <arguments>
            <argument name="collectionProvider" xsi:type="object">Amasty\Shopby\Model\Layer\Cms\ItemCollectionProvider</argument>
            <argument name="stateKey" xsi:type="object">Magento\Catalog\Model\Layer\Category\StateKey</argument>
            <argument name="collectionFilter" xsi:type="object">Magento\Catalog\Model\Layer\Category\CollectionFilter</argument>
        </arguments>
    </virtualType>

    <virtualType name="Amasty\Shopby\Model\Layer\Cms" type="Magento\Catalog\Model\Layer">
        <arguments>
            <argument name="context" xsi:type="object">Amasty\Shopby\Model\Layer\Cms\Context</argument>
        </arguments>
    </virtualType>

    <type name="Magento\Catalog\Model\Layer\Resolver">
        <arguments>
            <argument name="layersPool" xsi:type="array">
                <item name="amshopby_cms" xsi:type="string">Amasty\Shopby\Model\Layer\Cms</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\Shopby\Model\Layer\Cms\ItemCollectionProvider">
        <arguments>
            <argument name="collectionFactory"
                      xsi:type="object">Magento\CatalogSearch\Model\ResourceModel\Fulltext\CollectionFactory</argument>
        </arguments>
    </type>

    <type name="Magento\Framework\Search\Dynamic\Algorithm\Repository">
        <arguments>
            <argument name="algorithms" xsi:type="array">
                <item name="auto" xsi:type="string">Magento\Framework\Search\Dynamic\Algorithm\Auto</item>
                <item name="manual" xsi:type="string">Magento\Framework\Search\Dynamic\Algorithm\Manual</item>
                <item name="improved" xsi:type="string">Magento\Framework\Search\Dynamic\Algorithm\Improved</item>
                <item name="group_manual" xsi:type="string">Amasty\Shopby\Model\Search\Dynamic\Algorithm\GroupManual</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalFieldMapper">
        <arguments>
            <argument name="fields" xsi:type="array">
                <item name="rating_summary" xsi:type="string">integer</item>
                <item name="stock_status" xsi:type="string">integer</item>
                <item name="am_is_new" xsi:type="string">integer</item>
                <item name="am_on_sale"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\FieldMapper\OnSale</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalDataMapper">
        <arguments>
            <argument name="dataMappers" xsi:type="array">
                <item name="rating_summary"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\RatingSummary</item>
                <item name="am_is_new"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\IsNew</item>
                <item name="stock_status"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\StockStatus</item>
                <item name="am_on_sale"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\OnSale</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalBatchDataMapper">
        <arguments>
            <argument name="dataMappers" xsi:type="array">
                <item name="rating_summary"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\RatingSummary</item>
                <item name="am_is_new"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\IsNew</item>
                <item name="stock_status"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\StockStatus</item>
                <item name="am_on_sale"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\DataMapper\OnSale</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\Shopby\Plugin\Elasticsearch\SearchAdapter\Aggregation\Builder\Term">
        <arguments>
            <argument name="bucketBuilders" xsi:type="array">
                <item name="rating_summary"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\BucketBuilder\RatingSummary</item>
                <item name="am_is_new"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\BucketBuilder\IsNew</item>
                <item name="am_on_sale"
                      xsi:type="object">Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\BucketBuilder\OnSale</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\ShopbyBase\Model\FilterSetting">
        <arguments>
            <argument name="groupAttributeDataFactoryProvider"
                      xsi:type="object">Amasty\Shopby\Model\GroupAttr\DataProviderFactory</argument>
        </arguments>
    </type>

    <type name="Magento\Framework\EntityManager\Operation\ExtensionPool">
        <arguments>
            <argument name="extensionActions" xsi:type="array">
                <item name="Magento\Cms\Api\Data\PageInterface" xsi:type="array">
                    <item name="create" xsi:type="array">
                        <item name="amastyCmsPageCreator"
                              xsi:type="string">Amasty\Shopby\Model\ResourceModel\Cms\Relation\SaveHandler</item>
                    </item>
                    <item name="update" xsi:type="array">
                        <item name="amastyCmsPageUpdater"
                              xsi:type="string">Amasty\Shopby\Model\ResourceModel\Cms\Relation\SaveHandler</item>
                    </item>
                </item>
            </argument>
        </arguments>
    </type>

    <type name="Magento\Cms\Model\Page">
        <plugin name="Amasty_Shopby::cmsPage" type="\Amasty\Shopby\Plugin\Cms\Model\Page" sortOrder="1"/>
    </type>
    <type name="Magento\Catalog\Model\Indexer\Product\Eav\Action\Full">
        <plugin name="Amasty_Shopby::EavReindexGroupOption"
                type="Amasty\Shopby\Plugin\Catalog\Model\Indexer\Product\Eav\Action\Full"/>
    </type>
    <type name="Magento\Catalog\Model\Indexer\Product\Eav\Action\Row">
        <plugin name="Amasty_Shopby::EavReindexGroupOption"
                type="Amasty\Shopby\Plugin\Catalog\Model\Indexer\Product\Eav\Action\Row"/>
    </type>
    <type name="Magento\Catalog\Model\Indexer\Product\Eav\Action\Rows">
        <plugin name="Amasty_Shopby::EavReindexGroupOption"
                type="Amasty\Shopby\Plugin\Catalog\Model\Indexer\Product\Eav\Action\Rows"/>
    </type>
    <!--Elasticsearch plugins-->
    <type name="Magento\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider">
        <plugin name="Amasty_Shopby::Fulltext_DataProvider"
                type="Amasty\Shopby\Plugin\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider"/>
    </type>
    <type name="Amasty\ElasticSearch\Model\Indexer\Data\Product\ProductDataMapper">
        <plugin name="Amasty_Shopby::Fulltext_DataProvider"
                type="Amasty\Shopby\Plugin\AmastyElastic\Model\Indexer\Data\Product\ProductDataMapper"/>
    </type>
    <!--======================================================================-->
    <type name="Magento\Elasticsearch\Model\Adapter\DataMapper\ProductDataMapper">
        <plugin name="Amasty_Shopby::AdditionalDataMapper"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalDataMapper"/>
    </type>
    <type name="Magento\Elasticsearch\Elasticsearch5\Model\Adapter\DataMapper\ProductDataMapper">
        <plugin name="Amasty_Shopby::AdditionalDataMapper5"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalDataMapper"/>
    </type>
    <!--======================================================================-->
    <type name="Magento\Elasticsearch\Model\Adapter\BatchDataMapper\ProductDataMapper">
        <plugin name="Amasty_Shopby::AdditionalBatchDataMapper"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalBatchDataMapper"/>
    </type>
    <type name="Magento\Elasticsearch\Elasticsearch5\Model\Adapter\DataMapper\ProductDataMapper">
        <plugin name="Amasty_Shopby::AdditionalBatchDataMapper5"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalBatchDataMapper"/>
    </type>
    <!--======================================================================-->
    <type name="Magento\Elasticsearch\Model\Adapter\FieldMapper\ProductFieldMapper">
        <plugin name="Amasty_Shopby::AdditionalFieldMapper"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalFieldMapper"/>
    </type>
    <type name="Magento\Elasticsearch\Elasticsearch5\Model\Adapter\FieldMapper\ProductFieldMapperProxy">
        <plugin name="Amasty_Shopby::AdditionalFieldMapper5"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalFieldMapper"/>
    </type>
    <!--======================================================================-->
    <type name="Amasty\ElasticSearch\Model\Indexer\Structure\EntityBuilder\Product">
        <plugin name="Amasty_Shopby::AdditionalFieldMapper"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalFieldMapper"/>
    </type>
    <type name="Amasty\ElasticSearch\Model\Search\GetRequestQuery\GetAggregations\FieldMapper">
        <plugin name="Amasty_Shopby::AdditionalFieldMapper"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalFieldMapper"/>
    </type>
    <type name="Amasty\ElasticSearch\Model\Indexer\Data\Product\ProductDataMapper">
        <plugin name="Amasty_Shopby::AdditionalBatchDataMapper"
                type="Amasty\Shopby\Plugin\Elasticsearch\Model\Adapter\AdditionalBatchDataMapper"/>
    </type>
    <!--======================================================================-->

    <type name="\Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\DefaultPrice">
        <plugin name="Amasty_Shopby::PriceRuleIndexerFixer"
                type="Amasty\Shopby\Plugin\Catalog\Model\ResourceModel\Product\Indexer\Price\DefaultPrice"/>
    </type>

    <type name="\Magento\ConfigurableProduct\Model\ResourceModel\Product\Indexer\Price\Configurable">
        <plugin name="Amasty_Shopby::PriceRuleIndexerFixerConfigurable"
                type="Amasty\Shopby\Plugin\Catalog\Model\ResourceModel\Product\Indexer\Price\Configurable"/>
    </type>

    <type name="\Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\SimpleProductPrice">
        <plugin name="Amasty_Shopby::PriceRuleIndexerFixer.2.2.6"
                type="Amasty\Shopby\Plugin\Catalog\Model\ResourceModel\Product\Indexer\Price\Dimensional\Simple"/>
    </type>

    <type name="\Magento\ConfigurableProduct\Model\ResourceModel\Product\Indexer\Price\Configurable">
        <plugin name="Amasty_Shopby::PriceRuleIndexerFixerConfigurable.2.2.6"
                type="Amasty\Shopby\Plugin\Catalog\Model\ResourceModel\Product\Indexer\Price\Dimensional\Configurable"/>
    </type>

    <type name="Magento\CatalogRule\Model\Indexer\RuleProductPricesPersistor">
        <plugin name="Amasty_Shopby::PriceIndexerInvalidator"
                type="Amasty\Shopby\Plugin\CatalogRule\Model\Indexer\RuleProductPricesPersistor"/>
    </type>

    <!--===================Store Switcher Fix=================================-->
    <type name="Magento\Directory\Block\Currency">
        <plugin name="Amasty_Shopby::switch_currency" type="Amasty\Shopby\Plugin\Directory\Currency"/>
    </type>
    <type name="Magento\Store\Block\Switcher">
        <plugin name="Amasty_Shopby::switch_store" type="Amasty\Shopby\Plugin\Store\Switcher" sortOrder="999"/>
    </type>
    <type name="Magento\Store\ViewModel\SwitcherUrlProvider">
        <plugin name="Amasty_Shopby::switch_store" type="Amasty\Shopby\Plugin\Store\ViewModel\SwitcherUrlProvider" sortOrder="998"/>
    </type>
    <type name="Magento\UrlRewrite\Model\StoreSwitcher\RewriteUrl">
        <plugin name="Amasty_Shopby::switch_store_param_fix" type="Amasty\Shopby\Plugin\UrlRewrite\Model\StoreSwitcher\RewriteUrl"/>
    </type>
    <!--======================================================================-->

    <type name="Amasty\Shopby\Plugin\Framework\App\FrontController">
        <arguments>
            <argument name="categoryHelper" xsi:type="object">Amasty\Shopby\Helper\Category\Proxy</argument>
        </arguments>
    </type>

    <type name="Magento\CatalogSearch\Model\Adapter\Mysql\Aggregation\DataProvider">
        <plugin name="Amasty_Shopby::stockAndRatingAggregation"
                type="Amasty\Shopby\Plugin\CatalogSearch\Model\Adapter\Mysql\Aggregation\DataProvider"/>
    </type>

    <type name="Magento\CatalogSearch\Model\Search\IndexBuilder">
        <plugin name="Amasty_Shopby::ApplyCustomFiltersToBaseSearchSelect"
                type="Amasty\Shopby\Plugin\CatalogSearch\Model\Search\IndexBuilder"/>
    </type>

    <type name="Magento\Framework\Search\Adapter\Mysql\Mapper">
        <plugin name="Amasty_Shopby::resolve_stock_filter" type="Amasty\Shopby\Plugin\Framework\Search\Adapter\Mysql\MapperPlugin" />
    </type>

    <type name="Magento\CatalogSearch\Model\Adapter\Mysql\Filter\Preprocessor">
        <plugin name="Amasty_Shopby::PrepareWhereCauseForCustomFilters"
                type="Amasty\Shopby\Plugin\CatalogSearch\Model\Adapter\Mysql\Filter\Preprocessor"/>
    </type>

    <virtualType name="stockResolver" type="Amasty\ShopbyBase\Model\Di\Wrapper">
        <arguments>
            <argument name="name" xsi:type="string">Magento\InventorySalesApi\Api\StockResolverInterface</argument>
        </arguments>
    </virtualType>

    <virtualType name="defaultStockProvider" type="Amasty\ShopbyBase\Model\Di\Wrapper">
        <arguments>
            <argument name="name" xsi:type="string">Magento\InventoryCatalogApi\Api\DefaultStockProviderInterface</argument>
        </arguments>
    </virtualType>

    <virtualType name="stockIndexTableNameResolver" type="Amasty\ShopbyBase\Model\Di\Wrapper">
        <arguments>
            <argument name="name" xsi:type="string">Magento\InventoryIndexer\Model\StockIndexTableNameResolverInterface</argument>
        </arguments>
    </virtualType>

    <type name="Amasty\Shopby\Plugin\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider">
        <arguments>
            <argument name="stockResolver" xsi:type="object">stockResolver</argument>
            <argument name="defaultStockProvider" xsi:type="object">defaultStockProvider</argument>
            <argument name="stockIndexTableNameResolver" xsi:type="object">stockIndexTableNameResolver</argument>
        </arguments>
    </type>

</config>