di.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?xml version="1.0"?>
  2. <!--
  3. /**
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. -->
  8. <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  9. <type name="Magento\CatalogRule\Model\ResourceModel\Rule">
  10. <arguments>
  11. <argument name="eventManager" xsi:type="object">Magento\Framework\Event\Manager\Proxy</argument>
  12. </arguments>
  13. </type>
  14. <type name="Magento\CatalogRule\Model\ResourceModel\Rule\Collection" shared="false" />
  15. <type name="Magento\Catalog\Model\Product\PriceModifier\Composite">
  16. <arguments>
  17. <argument name="modifiers" xsi:type="array">
  18. <item name="catalog_rule" xsi:type="string">Magento\CatalogRule\Model\Product\PriceModifier</item>
  19. </argument>
  20. </arguments>
  21. </type>
  22. <type name="Magento\Framework\Module\Setup\Migration">
  23. <arguments>
  24. <argument name="compositeModules" xsi:type="array">
  25. <item name="catalogrule" xsi:type="string">Magento_CatalogRule</item>
  26. </argument>
  27. </arguments>
  28. </type>
  29. <virtualType name="Magento\Catalog\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
  30. <arguments>
  31. <argument name="prices" xsi:type="array">
  32. <item name="catalog_rule_price" xsi:type="string">Magento\CatalogRule\Pricing\Price\CatalogRulePrice</item>
  33. </argument>
  34. </arguments>
  35. </virtualType>
  36. <preference for="Magento\CatalogRule\Api\Data\RuleInterface" type="Magento\CatalogRule\Model\Rule" />
  37. <preference for="Magento\CatalogRule\Api\CatalogRuleRepositoryInterface" type="Magento\CatalogRule\Model\CatalogRuleRepository" />
  38. <type name="Magento\Framework\Model\Entity\RepositoryFactory">
  39. <arguments>
  40. <argument name="entities" xsi:type="array">
  41. <item name="Magento\CatalogRule\Api\Data\RuleInterface" xsi:type="string">Magento\CatalogRule\Api\CatalogRuleRepositoryInterface</item>
  42. </argument>
  43. </arguments>
  44. </type>
  45. <type name="Magento\Framework\EntityManager\MetadataPool">
  46. <arguments>
  47. <argument name="metadata" xsi:type="array">
  48. <item name="Magento\CatalogRule\Api\Data\RuleInterface" xsi:type="array">
  49. <item name="entityTableName" xsi:type="string">catalogrule</item>
  50. <item name="identifierField" xsi:type="string">rule_id</item>
  51. </item>
  52. </argument>
  53. <argument name="eavMapping" xsi:type="array">
  54. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="string">catalog_product</item>
  55. </argument>
  56. </arguments>
  57. </type>
  58. <type name="Magento\Framework\EntityManager\Operation\AttributePool">
  59. <arguments>
  60. <argument name="extensionActions" xsi:type="array">
  61. <item name="catalogRule" xsi:type="array">
  62. <item name="Magento\CatalogRule\Api\Data\RuleInterface" xsi:type="array">
  63. <item name="read" xsi:type="string">Magento\CatalogRule\Model\ResourceModel\ReadHandler</item>
  64. <item name="create" xsi:type="string">Magento\CatalogRule\Model\ResourceModel\SaveHandler</item>
  65. <item name="update" xsi:type="string">Magento\CatalogRule\Model\ResourceModel\SaveHandler</item>
  66. </item>
  67. </item>
  68. </argument>
  69. </arguments>
  70. </type>
  71. <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
  72. <arguments>
  73. <argument name="collections" xsi:type="array">
  74. <item name="catalog_rule_data_source" xsi:type="string">catalogRuleSearchResult</item>
  75. </argument>
  76. </arguments>
  77. </type>
  78. <virtualType name="catalogRuleSearchResult" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
  79. <arguments>
  80. <argument name="mainTable" xsi:type="string">catalogrule</argument>
  81. <argument name="resourceModel" xsi:type="string">\Magento\CatalogRule\Model\ResourceModel\Rule</argument>
  82. </arguments>
  83. </virtualType>
  84. <type name="Magento\CatalogRule\Model\Rule\Condition\Combine">
  85. <arguments>
  86. <argument name="data" xsi:type="array">
  87. <item name="form_name" xsi:type="string">catalog_rule_form</item>
  88. </argument>
  89. </arguments>
  90. </type>
  91. <type name="Magento\CatalogRule\Model\Rule\Condition\Product">
  92. <arguments>
  93. <argument name="data" xsi:type="array">
  94. <item name="form_name" xsi:type="string">catalog_rule_form</item>
  95. </argument>
  96. </arguments>
  97. </type>
  98. <preference for="Magento\CatalogRule\Api\Data\ConditionInterface" type="Magento\CatalogRule\Model\Data\Condition" />
  99. <virtualType name="Magento\CatalogRule\Model\ResourceModel\Rule\AssociatedEntityMap" type="Magento\Framework\DataObject">
  100. <arguments>
  101. <argument name="data" xsi:type="array">
  102. <item name="website" xsi:type="array">
  103. <item name="associations_table" xsi:type="string">catalogrule_website</item>
  104. <item name="rule_id_field" xsi:type="string">rule_id</item>
  105. <item name="entity_id_field" xsi:type="string">website_id</item>
  106. </item>
  107. <item name="customer_group" xsi:type="array">
  108. <item name="associations_table" xsi:type="string">catalogrule_customer_group</item>
  109. <item name="rule_id_field" xsi:type="string">rule_id</item>
  110. <item name="entity_id_field" xsi:type="string">customer_group_id</item>
  111. </item>
  112. </argument>
  113. </arguments>
  114. </virtualType>
  115. <type name="Magento\Framework\EntityManager\HydratorPool">
  116. <arguments>
  117. <argument name="hydrators" xsi:type="array">
  118. <item name="Magento\CatalogRule\Api\Data\RuleInterface" xsi:type="string">Magento\Framework\EntityManager\AbstractModelHydrator</item>
  119. </argument>
  120. </arguments>
  121. </type>
  122. <type name="Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderComposite">
  123. <arguments>
  124. <argument name="linkedProductSelectBuilder" xsi:type="array">
  125. <item name="catalogRulePrice" xsi:type="object">Magento\CatalogRule\Model\ResourceModel\Product\LinkedProductSelectBuilderByCatalogRulePrice</item>
  126. </argument>
  127. </arguments>
  128. </type>
  129. <preference for="Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface" type="Magento\CatalogRule\Model\Indexer\IndexerTableSwapper" />
  130. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceInterface">
  131. <arguments>
  132. <argument name="priceModifiers" xsi:type="array">
  133. <item name="catalogRulePriceModifier" xsi:type="object">Magento\CatalogRule\Model\Indexer\ProductPriceIndexModifier</item>
  134. </argument>
  135. </arguments>
  136. </type>
  137. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\BasePriceModifier">
  138. <arguments>
  139. <argument name="priceModifiers" xsi:type="array">
  140. <item name="catalogRulePriceModifier" xsi:type="object">Magento\CatalogRule\Model\Indexer\ProductPriceIndexModifier</item>
  141. </argument>
  142. </arguments>
  143. </type>
  144. <virtualType name="CatalogRuleCustomConditionProvider" type="Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProvider">
  145. <arguments>
  146. <argument name="customConditionProcessors" xsi:type="array">
  147. <item name="category_ids" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ProductCategoryCondition</item>
  148. </argument>
  149. </arguments>
  150. </virtualType>
  151. <virtualType name="CatalogRuleAdvancedFilterProcessor" type="Magento\Framework\Api\SearchCriteria\CollectionProcessor\AdvancedFilterProcessor">
  152. <arguments>
  153. <argument name="defaultConditionProcessor" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\DefaultCondition</argument>
  154. <argument name="customConditionProvider" xsi:type="object">CatalogRuleCustomConditionProvider</argument>
  155. </arguments>
  156. </virtualType>
  157. <type name="Magento\CatalogRule\Model\ResourceModel\Product\ConditionsToCollectionApplier">
  158. <arguments>
  159. <argument name="searchCriteriaProcessor" xsi:type="object">CatalogRuleAdvancedFilterProcessor</argument>
  160. </arguments>
  161. </type>
  162. <type name="Magento\CatalogRule\Model\Rule\Condition\MappableConditionsProcessor">
  163. <arguments>
  164. <argument name="customConditionProvider" xsi:type="object">CatalogRuleCustomConditionProvider</argument>
  165. </arguments>
  166. </type>
  167. </config>