di.xml 76 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167
  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. <preference for="Magento\Catalog\Api\Data\ProductInterface" type="Magento\Catalog\Model\Product" />
  10. <preference for="Magento\Catalog\Api\ProductRepositoryInterface" type="Magento\Catalog\Model\ProductRepository" />
  11. <preference for="Magento\Catalog\Api\CategoryAttributeRepositoryInterface" type="Magento\Catalog\Model\Category\AttributeRepository" />
  12. <preference for="Magento\Catalog\Api\Data\CategoryAttributeInterface" type="Magento\Catalog\Model\Category\Attribute" />
  13. <preference for="Magento\Catalog\Api\CategoryAttributeOptionManagementInterface" type="Magento\Catalog\Model\Category\Attribute\OptionManagement" />
  14. <preference for="Magento\Catalog\Model\ProductTypes\ConfigInterface" type="Magento\Catalog\Model\ProductTypes\Config" />
  15. <preference for="Magento\Catalog\Model\ProductOptions\ConfigInterface" type="Magento\Catalog\Model\ProductOptions\Config" />
  16. <preference for="Magento\Catalog\Model\Product\PriceModifierInterface" type="Magento\Catalog\Model\Product\PriceModifier\Composite" />
  17. <preference for="Magento\Catalog\Model\Attribute\LockValidatorInterface" type="Magento\Catalog\Model\Attribute\LockValidatorComposite" />
  18. <preference for="Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface" type="Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapper" />
  19. <preference for="Magento\Catalog\Block\Product\ReviewRendererInterface" type="Magento\Catalog\Block\Product\ReviewRenderer\DefaultProvider" />
  20. <preference for="Magento\Framework\Pricing\PriceInfoInterface" type="Magento\Framework\Pricing\PriceInfo\Base" />
  21. <preference for="Magento\Framework\Pricing\PriceCurrencyInterface" type="Magento\Directory\Model\PriceCurrency" />
  22. <preference for="Magento\Framework\Pricing\Adjustment\CalculatorInterface" type="Magento\Framework\Pricing\Adjustment\Calculator" />
  23. <preference for="Magento\Catalog\Api\Data\CategoryInterface" type="Magento\Catalog\Model\Category" />
  24. <preference for="Magento\Catalog\Api\CategoryManagementInterface" type="Magento\Catalog\Model\CategoryManagement" />
  25. <preference for="Magento\Catalog\Api\CategoryRepositoryInterface" type="Magento\Catalog\Model\CategoryRepository" />
  26. <preference for="Magento\Catalog\Api\Data\CategoryTreeInterface" type="Magento\Catalog\Model\Category" />
  27. <preference for="Magento\Catalog\Api\ProductAttributeRepositoryInterface" type="Magento\Catalog\Model\Product\Attribute\Repository" />
  28. <preference for="Magento\Catalog\Api\Data\ProductAttributeInterface" type="Magento\Catalog\Model\ResourceModel\Eav\Attribute" />
  29. <preference for="Magento\Catalog\Api\ProductTypeListInterface" type="Magento\Catalog\Model\ProductTypeList" />
  30. <preference for="Magento\Catalog\Api\Data\ProductTypeInterface" type="Magento\Catalog\Model\ProductType" />
  31. <preference for="Magento\Catalog\Api\ProductAttributeMediaGalleryManagementInterface" type="Magento\Catalog\Model\Product\Gallery\GalleryManagement" />
  32. <preference for="Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface" type="Magento\Catalog\Model\Product\Gallery\Entry" />
  33. <preference for="Magento\Catalog\Api\ProductMediaAttributeManagementInterface" type="Magento\Catalog\Model\Product\Media\AttributeManagement" />
  34. <preference for="Magento\Catalog\Api\ProductAttributeTypesListInterface" type="Magento\Catalog\Model\Product\Attribute\TypesList" />
  35. <preference for="Magento\Catalog\Api\Data\ProductAttributeTypeInterface" type="Magento\Catalog\Model\Product\Attribute\Type" />
  36. <preference for="Magento\Catalog\Api\ProductAttributeGroupRepositoryInterface" type="Magento\Catalog\Model\ProductAttributeGroupRepository" />
  37. <preference for="Magento\Catalog\Api\ProductAttributeOptionManagementInterface" type="Magento\Catalog\Model\Product\Attribute\OptionManagement" />
  38. <preference for="Magento\Catalog\Api\ProductLinkRepositoryInterface" type="Magento\Catalog\Model\ProductLink\Repository" />
  39. <preference for="Magento\Catalog\Api\Data\ProductAttributeSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
  40. <preference for="Magento\Catalog\Api\Data\CategoryAttributeSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
  41. <preference for="Magento\Catalog\Api\Data\ProductSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
  42. <preference for="Magento\Catalog\Api\ProductAttributeManagementInterface" type="Magento\Catalog\Model\Product\Attribute\Management" />
  43. <preference for="Magento\Catalog\Api\AttributeSetManagementInterface" type="Magento\Catalog\Model\Product\Attribute\SetManagement" />
  44. <preference for="Magento\Catalog\Api\AttributeSetRepositoryInterface" type="Magento\Catalog\Model\Product\Attribute\SetRepository" />
  45. <preference for="Magento\Catalog\Api\ProductManagementInterface" type="Magento\Catalog\Model\ProductManagement" />
  46. <preference for="Magento\Catalog\Api\AttributeSetFinderInterface" type="Magento\Catalog\Model\Product\Attribute\AttributeSetFinder" />
  47. <preference for="Magento\Catalog\Api\CategoryListInterface" type="Magento\Catalog\Model\CategoryList" />
  48. <preference for="Magento\Catalog\Api\Data\CategorySearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
  49. <preference for="Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface" type="Magento\Catalog\Model\Config\Source\Product\Options\Price"/>
  50. <preference for="Magento\Catalog\Model\Indexer\Product\Flat\Table\BuilderInterface" type="Magento\Catalog\Model\Indexer\Product\Flat\Table\Builder"/>
  51. <preference for="Magento\Catalog\Api\ProductRenderListInterface" type="Magento\Catalog\Model\ProductRenderList"/>
  52. <preference for="Magento\Catalog\Api\Data\ProductRenderSearchResultsInterface" type="Magento\Catalog\Model\ProductRenderSearchResults"/>
  53. <preference for="Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface" type="Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolver"/>
  54. <preference for="Magento\Catalog\Model\Product\Media\ConfigInterface" type="Magento\Catalog\Model\Product\Media\Config"/>
  55. <preference for="Magento\Framework\View\Asset\ContextInterface" type="Magento\Catalog\Model\View\Asset\Image\Context"/>
  56. <preference for="Magento\Catalog\Api\TierPriceStorageInterface" type="Magento\Catalog\Model\Product\Price\TierPriceStorage" />
  57. <preference for="Magento\Catalog\Api\Data\TierPriceInterface" type="Magento\Catalog\Model\Product\Price\TierPrice" />
  58. <preference for="Magento\Catalog\Api\BasePriceStorageInterface" type="Magento\Catalog\Model\Product\Price\BasePriceStorage" />
  59. <preference for="Magento\Catalog\Api\Data\BasePriceInterface" type="Magento\Catalog\Model\Product\Price\BasePrice" />
  60. <preference for="Magento\Catalog\Api\CostStorageInterface" type="Magento\Catalog\Model\Product\Price\CostStorage" />
  61. <preference for="Magento\Catalog\Api\Data\CostInterface" type="Magento\Catalog\Model\Product\Price\Cost" />
  62. <preference for="Magento\Catalog\Api\SpecialPriceStorageInterface" type="Magento\Catalog\Model\Product\Price\SpecialPriceStorage" />
  63. <preference for="Magento\Catalog\Api\Data\SpecialPriceInterface" type="Magento\Catalog\Model\Product\Price\SpecialPrice" />
  64. <preference for="Magento\Catalog\Api\Data\PriceUpdateResultInterface" type="Magento\Catalog\Model\Product\Price\PriceUpdateResult" />
  65. <preference for="Magento\Catalog\Api\SpecialPriceInterface" type="Magento\Catalog\Model\ResourceModel\Product\Price\SpecialPrice" />
  66. <preference for="Magento\Catalog\Model\ProductIdLocatorInterface" type="Magento\Catalog\Model\ProductIdLocator" />
  67. <preference for="Magento\Catalog\Api\Data\ProductRender\ButtonInterface" type="Magento\Catalog\Model\ProductRender\Button" />
  68. <preference for="Magento\Catalog\Api\Data\ProductRender\ImageInterface" type="Magento\Catalog\Model\ProductRender\Image" />
  69. <preference for="Magento\Catalog\Api\Data\ProductRender\PriceInfoInterface" type="Magento\Catalog\Model\ProductRender\PriceInfo" />
  70. <preference for="Magento\Catalog\Api\Data\ProductRender\FormattedPriceInfoInterface" type="Magento\Catalog\Model\ProductRender\FormattedPriceInfo" />
  71. <preference for="Magento\Framework\Indexer\BatchProviderInterface" type="Magento\Framework\Indexer\BatchProvider" />
  72. <preference for="Magento\Catalog\Model\Indexer\Product\Price\UpdateIndexInterface" type="Magento\Catalog\Model\Indexer\Product\Price\InvalidateIndex" />
  73. <preference for="Magento\Catalog\Model\Product\Gallery\ImagesConfigFactoryInterface" type="Magento\Catalog\Model\Product\Gallery\ImagesConfigFactory" />
  74. <preference for="Magento\Catalog\Model\Product\Configuration\Item\ItemResolverInterface" type="Magento\Catalog\Model\Product\Configuration\Item\ItemResolverComposite" />
  75. <type name="Magento\Customer\Model\ResourceModel\Visitor">
  76. <plugin name="catalogLog" type="Magento\Catalog\Model\Plugin\Log" />
  77. </type>
  78. <type name="Magento\Theme\Block\Html\Topmenu">
  79. <plugin name="catalogTopmenu" type="Magento\Catalog\Plugin\Block\Topmenu" />
  80. </type>
  81. <type name="Magento\Framework\Mview\View\StateInterface">
  82. <plugin name="setStatusForMview" type="Magento\Catalog\Model\Indexer\Category\Product\Plugin\MviewState" />
  83. </type>
  84. <type name="Magento\Catalog\Model\Indexer\Category\Product\Plugin\MviewState">
  85. <arguments>
  86. <argument name="state" xsi:type="object" shared="false">Magento\Framework\Mview\View\StateInterface</argument>
  87. <argument name="changelog" xsi:type="object" shared="false">Magento\Framework\Mview\View\ChangelogInterface</argument>
  88. </arguments>
  89. </type>
  90. <type name="Magento\Catalog\Model\Indexer\Product\Full">
  91. <arguments>
  92. <argument name="indexerList" xsi:type="array">
  93. <item name="catalog_category_product" xsi:type="const">Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID</item>
  94. <item name="catalog_product_category" xsi:type="const">Magento\Catalog\Model\Indexer\Product\Category::INDEXER_ID</item>
  95. <item name="catalog_product_price" xsi:type="const">Magento\Catalog\Model\Indexer\Product\Price\Processor::INDEXER_ID</item>
  96. <item name="catalog_product_attribute" xsi:type="const">Magento\Catalog\Model\Indexer\Product\Eav\Processor::INDEXER_ID</item>
  97. </argument>
  98. </arguments>
  99. </type>
  100. <type name="Magento\Catalog\Model\Product\Attribute\Backend\Media\EntryConverterPool">
  101. <arguments>
  102. <argument name="mediaGalleryEntryConvertersCollection" xsi:type="array">
  103. <item name="image" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Backend\Media\ImageEntryConverter</item>
  104. </argument>
  105. </arguments>
  106. </type>
  107. <type name="Magento\Catalog\Helper\Product">
  108. <arguments>
  109. <argument name="catalogSession" xsi:type="object">Magento\Catalog\Model\Session\Proxy</argument>
  110. <argument name="reindexPriceIndexerData" xsi:type="array">
  111. <item name="byDataResult" xsi:type="array">
  112. <item name="tier_price_changed" xsi:type="string">tier_price_changed</item>
  113. </item>
  114. <item name="byDataChange" xsi:type="array">
  115. <item name="status" xsi:type="string">status</item>
  116. <item name="price" xsi:type="string">price</item>
  117. <item name="special_price" xsi:type="string">special_price</item>
  118. <item name="special_from_date" xsi:type="string">special_from_date</item>
  119. <item name="special_to_date" xsi:type="string">special_to_date</item>
  120. <item name="website_ids" xsi:type="string">website_ids</item>
  121. <item name="gift_wrapping_price" xsi:type="string">gift_wrapping_price</item>
  122. <item name="tax_class_id" xsi:type="string">tax_class_id</item>
  123. </item>
  124. </argument>
  125. <argument name="reindexProductCategoryIndexerData" xsi:type="array">
  126. <item name="byDataChange" xsi:type="array">
  127. <item name="category_ids" xsi:type="string">category_ids</item>
  128. <item name="entity_id" xsi:type="string">entity_id</item>
  129. <item name="store_id" xsi:type="string">store_id</item>
  130. <item name="website_ids" xsi:type="string">website_ids</item>
  131. <item name="visibility" xsi:type="string">visibility</item>
  132. <item name="status" xsi:type="string">status</item>
  133. </item>
  134. </argument>
  135. <argument name="productRepository" xsi:type="object">Magento\Catalog\Api\ProductRepositoryInterface\Proxy</argument>
  136. </arguments>
  137. </type>
  138. <type name="Magento\Catalog\Helper\Product\Edit\Action\Attribute">
  139. <arguments>
  140. <argument name="session" xsi:type="object">Magento\Backend\Model\Session\Proxy</argument>
  141. </arguments>
  142. </type>
  143. <type name="Magento\Catalog\Model\Product">
  144. <arguments>
  145. <argument name="catalogProductStatus" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Source\Status\Proxy</argument>
  146. <argument name="productLink" xsi:type="object">Magento\Catalog\Model\Product\Link\Proxy</argument>
  147. </arguments>
  148. </type>
  149. <type name="Magento\Catalog\Model\ResourceModel\Product\Collection">
  150. <arguments>
  151. <argument name="catalogUrl" xsi:type="object">Magento\Catalog\Model\ResourceModel\Url\Proxy</argument>
  152. <argument name="customerSession" xsi:type="object">Magento\Customer\Model\Session\Proxy</argument>
  153. </arguments>
  154. </type>
  155. <type name="Magento\Catalog\Model\Entity\Product\Attribute\Design\Options\Container">
  156. <arguments>
  157. <argument name="options" xsi:type="array">
  158. <item name="option1" xsi:type="array">
  159. <item name="value" xsi:type="string">container1</item>
  160. <item name="label" xsi:type="string" translatable="true">Product Info Column</item>
  161. </item>
  162. <item name="option2" xsi:type="array">
  163. <item name="value" xsi:type="string">container2</item>
  164. <item name="label" xsi:type="string" translatable="true">Block after Info Column</item>
  165. </item>
  166. </argument>
  167. </arguments>
  168. </type>
  169. <type name="Magento\Catalog\Helper\Data">
  170. <arguments>
  171. <argument name="templateFilterModel" xsi:type="string">Magento\Widget\Model\Template\Filter</argument>
  172. <argument name="catalogSession" xsi:type="object">Magento\Catalog\Model\Session\Proxy</argument>
  173. </arguments>
  174. </type>
  175. <type name="Magento\Catalog\Helper\Output">
  176. <arguments>
  177. <argument name="directivePatterns" xsi:type="array">
  178. <item name="construct" xsi:type="const">\Magento\Framework\Filter\Template::CONSTRUCTION_PATTERN</item>
  179. </argument>
  180. </arguments>
  181. </type>
  182. <type name="Magento\Catalog\Model\Config\Source\GridPerPage">
  183. <arguments>
  184. <argument name="perPageValues" xsi:type="string">9,15,30</argument>
  185. </arguments>
  186. </type>
  187. <type name="Magento\Catalog\Model\ProductIdLocator">
  188. <arguments>
  189. <argument name="idsLimit" xsi:type="number">1000</argument>
  190. </arguments>
  191. </type>
  192. <type name="Magento\Catalog\Model\Config\Source\ListPerPage">
  193. <arguments>
  194. <argument name="options" xsi:type="string">5,10,15,20,25</argument>
  195. </arguments>
  196. </type>
  197. <type name="Magento\Catalog\Helper\Product\Compare">
  198. <arguments>
  199. <argument name="customerSession" xsi:type="object">Magento\Customer\Model\Session\Proxy</argument>
  200. <argument name="catalogSession" xsi:type="object">Magento\Catalog\Model\Session\Proxy</argument>
  201. </arguments>
  202. </type>
  203. <virtualType name="Magento\Catalog\Model\Session\Storage" type="Magento\Framework\Session\Storage">
  204. <arguments>
  205. <argument name="namespace" xsi:type="string">catalog</argument>
  206. </arguments>
  207. </virtualType>
  208. <virtualType name="Magento\Catalog\Model\System\Config\Source\InputtypeFactory" type="Magento\Eav\Model\Adminhtml\System\Config\Source\InputtypeFactory">
  209. <arguments>
  210. <argument name="instanceName" xsi:type="string">Magento\Catalog\Model\System\Config\Source\Inputtype</argument>
  211. </arguments>
  212. </virtualType>
  213. <virtualType name="Magento\Catalog\CategoryImageUpload" type="Magento\Catalog\Model\ImageUploader">
  214. <arguments>
  215. <argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
  216. <argument name="basePath" xsi:type="string">catalog/category</argument>
  217. <argument name="allowedExtensions" xsi:type="array">
  218. <item name="jpg" xsi:type="string">jpg</item>
  219. <item name="jpeg" xsi:type="string">jpeg</item>
  220. <item name="gif" xsi:type="string">gif</item>
  221. <item name="png" xsi:type="string">png</item>
  222. </argument>
  223. <argument name="allowedMimeTypes" xsi:type="array">
  224. <item name="jpg" xsi:type="string">image/jpg</item>
  225. <item name="jpeg" xsi:type="string">image/jpeg</item>
  226. <item name="gif" xsi:type="string">image/gif</item>
  227. <item name="png" xsi:type="string">image/png</item>
  228. </argument>
  229. </arguments>
  230. </virtualType>
  231. <type name="Magento\Catalog\Controller\Adminhtml\Category\Image\Upload">
  232. <arguments>
  233. <argument name="imageUploader" xsi:type="object">Magento\Catalog\CategoryImageUpload</argument>
  234. </arguments>
  235. </type>
  236. <type name="Magento\Catalog\Model\Session">
  237. <arguments>
  238. <argument name="storage" xsi:type="object">Magento\Catalog\Model\Session\Storage</argument>
  239. </arguments>
  240. </type>
  241. <type name="Magento\Store\Model\ResourceModel\Website">
  242. <plugin name="invalidatePriceIndexerOnWebsite" type="Magento\Catalog\Model\Indexer\Product\Price\Plugin\Website"/>
  243. <plugin name="categoryProductWebsiteAfterDelete" type="\Magento\Catalog\Model\Indexer\Category\Product\Plugin\Website"/>
  244. </type>
  245. <type name="Magento\Store\Model\ResourceModel\Store">
  246. <plugin name="storeViewResourceAroundSave" type="Magento\Catalog\Model\Indexer\Category\Flat\Plugin\StoreView"/>
  247. <plugin name="catalogProductFlatIndexerStore" type="Magento\Catalog\Model\Indexer\Product\Flat\Plugin\Store" />
  248. <plugin name="categoryStoreAroundSave" type="Magento\Catalog\Model\Indexer\Category\Product\Plugin\StoreView"/>
  249. <plugin name="productAttributesStoreViewSave" type="Magento\Catalog\Model\Indexer\Product\Eav\Plugin\StoreView"/>
  250. </type>
  251. <type name="Magento\Store\Model\ResourceModel\Group">
  252. <plugin name="storeGroupResourceAroundSave" type="Magento\Catalog\Model\Indexer\Category\Flat\Plugin\StoreGroup"/>
  253. <plugin name="catalogProductFlatIndexerStoreGroup" type="Magento\Catalog\Model\Indexer\Product\Flat\Plugin\StoreGroup" />
  254. <plugin name="categoryStoreGroupAroundSave" type="Magento\Catalog\Model\Indexer\Category\Product\Plugin\StoreGroup"/>
  255. </type>
  256. <type name="Magento\Customer\Api\GroupRepositoryInterface">
  257. <plugin name="invalidatePriceIndexerOnCustomerGroup" type="Magento\Catalog\Model\Indexer\Product\Price\Plugin\CustomerGroup"/>
  258. </type>
  259. <type name="Magento\Indexer\Model\Config\Data">
  260. <plugin name="indexerCategoryFlatConfigGet" type="Magento\Catalog\Model\Indexer\Category\Flat\Plugin\IndexerConfigData" />
  261. <plugin name="indexerProductFlatConfigGet" type="Magento\Catalog\Model\Indexer\Product\Flat\Plugin\IndexerConfigData" />
  262. </type>
  263. <type name="Magento\Catalog\Model\Indexer\Product\Price\AbstractAction">
  264. <arguments>
  265. <argument name="defaultPriceIndexer" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\DefaultPrice</argument>
  266. </arguments>
  267. </type>
  268. <type name="Magento\Eav\Model\Entity\Attribute\Set">
  269. <plugin name="invalidateEavIndexerOnAttributeSetSave" type="Magento\Catalog\Model\Indexer\Product\Eav\Plugin\AttributeSet" />
  270. </type>
  271. <type name="Magento\Catalog\Helper\Product\Flat\Indexer">
  272. <arguments>
  273. <argument name="flatAttributeGroups" xsi:type="array">
  274. <item name="catalog_product" xsi:type="string">catalog_product</item>
  275. </argument>
  276. </arguments>
  277. </type>
  278. <type name="Magento\Catalog\Model\Product\LinkTypeProvider">
  279. <arguments>
  280. <argument name="linkTypes" xsi:type="array">
  281. <item name="related" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_RELATED</item>
  282. <item name="crosssell" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_CROSSSELL</item>
  283. <item name="upsell" xsi:type="const">Magento\Catalog\Model\Product\Link::LINK_TYPE_UPSELL</item>
  284. </argument>
  285. </arguments>
  286. </type>
  287. <type name="Magento\Catalog\Model\Product\TypeTransitionManager">
  288. <arguments>
  289. <argument name="compatibleTypes" xsi:type="array">
  290. <item name="simple" xsi:type="const">Magento\Catalog\Model\Product\Type::TYPE_SIMPLE</item>
  291. <item name="virtual" xsi:type="const">Magento\Catalog\Model\Product\Type::TYPE_VIRTUAL</item>
  292. </argument>
  293. </arguments>
  294. </type>
  295. <type name="Magento\Eav\Model\Entity\Setup\PropertyMapper\Composite">
  296. <arguments>
  297. <argument name="propertyMappers" xsi:type="array">
  298. <item name="catalog" xsi:type="string">Magento\Catalog\Model\ResourceModel\Setup\PropertyMapper</item>
  299. </argument>
  300. </arguments>
  301. </type>
  302. <virtualType name="rowsFlatTableBuilder" type="Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder">
  303. <arguments>
  304. <argument name="tableData" xsi:type="object">Magento\Catalog\Model\Indexer\Product\Flat\Action\Rows\TableData</argument>
  305. </arguments>
  306. </virtualType>
  307. <type name="Magento\Catalog\Model\Indexer\Product\Flat\Action\Rows">
  308. <arguments>
  309. <argument name="flatTableBuilder" xsi:type="object">rowsFlatTableBuilder</argument>
  310. </arguments>
  311. </type>
  312. <type name="Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder">
  313. <arguments>
  314. <argument name="tableData" xsi:type="object">Magento\Catalog\Model\Indexer\Product\Flat\TableData</argument>
  315. </arguments>
  316. </type>
  317. <virtualType name="categoryFilterList" type="Magento\Catalog\Model\Layer\FilterList">
  318. <arguments>
  319. <argument name="filterableAttributes" xsi:type="object">Magento\Catalog\Model\Layer\Category\FilterableAttributeList</argument>
  320. </arguments>
  321. </virtualType>
  322. <virtualType name="searchFilterList" type="Magento\Catalog\Model\Layer\FilterList">
  323. <arguments>
  324. <argument name="filterableAttributes" xsi:type="object">Magento\Catalog\Model\Layer\Search\FilterableAttributeList</argument>
  325. </arguments>
  326. </virtualType>
  327. <type name="Magento\Catalog\Model\Layer\Category\FilterableAttributeList">
  328. <arguments>
  329. <argument name="layer" xsi:type="object">Magento\Catalog\Model\Layer\Category</argument>
  330. </arguments>
  331. </type>
  332. <type name="Magento\Catalog\Model\Layer\Search\FilterableAttributeList">
  333. <arguments>
  334. <argument name="layer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument>
  335. </arguments>
  336. </type>
  337. <type name="Magento\Catalog\Model\Indexer\Product\Price\Processor">
  338. <arguments>
  339. <argument name="indexer" xsi:type="object" shared="false">Magento\Framework\Indexer\IndexerInterface</argument>
  340. </arguments>
  341. </type>
  342. <type name="Magento\Framework\Model\ActionValidator\RemoveAction">
  343. <arguments>
  344. <argument name="protectedModels" xsi:type="array">
  345. <item name="catalogCategory" xsi:type="string">Magento\Catalog\Model\Category</item>
  346. <item name="catalogProduct" xsi:type="string">Magento\Catalog\Model\Product</item>
  347. </argument>
  348. </arguments>
  349. </type>
  350. <type name="Magento\Framework\Pricing\Adjustment\Collection">
  351. </type>
  352. <type name="Magento\Catalog\Model\Product\ReservedAttributeList">
  353. <arguments>
  354. <argument name="productModel" xsi:type="string">\Magento\Catalog\Model\Product</argument>
  355. <argument name="reservedAttributes" xsi:type="array">
  356. <item name="position" xsi:type="string">position</item>
  357. </argument>
  358. <argument name="allowedAttributes" xsi:type="array">
  359. <item name="type_id" xsi:type="string">type_id</item>
  360. <item name="calculated_final_price" xsi:type="string">calculated_final_price</item>
  361. <item name="request_path" xsi:type="string">request_path</item>
  362. </argument>
  363. </arguments>
  364. </type>
  365. <virtualType name="Magento\Catalog\Pricing\Price\Pool" type="Magento\Framework\Pricing\Price\Pool">
  366. <arguments>
  367. <argument name="prices" xsi:type="array">
  368. <item name="regular_price" xsi:type="string">Magento\Catalog\Pricing\Price\RegularPrice</item>
  369. <item name="final_price" xsi:type="string">Magento\Catalog\Pricing\Price\FinalPrice</item>
  370. <item name="tier_price" xsi:type="string">Magento\Catalog\Pricing\Price\TierPrice</item>
  371. <item name="special_price" xsi:type="string">Magento\Catalog\Pricing\Price\SpecialPrice</item>
  372. <item name="base_price" xsi:type="string">Magento\Catalog\Pricing\Price\BasePrice</item>
  373. <item name="custom_option_price" xsi:type="string">Magento\Catalog\Pricing\Price\CustomOptionPrice</item>
  374. <item name="configured_price" xsi:type="string">Magento\Catalog\Pricing\Price\ConfiguredPrice</item>
  375. <item name="configured_regular_price" xsi:type="string">Magento\Catalog\Pricing\Price\ConfiguredRegularPrice</item>
  376. </argument>
  377. </arguments>
  378. </virtualType>
  379. <virtualType name="Magento\Catalog\Pricing\Price\Collection" type="Magento\Framework\Pricing\Price\Collection">
  380. <arguments>
  381. <argument name="pool" xsi:type="object">Magento\Catalog\Pricing\Price\Pool</argument>
  382. </arguments>
  383. </virtualType>
  384. <type name="Magento\Framework\Pricing\PriceInfo\Factory">
  385. <arguments>
  386. <argument name="types" xsi:type="array">
  387. <item name="default" xsi:type="array">
  388. <item name="infoClass" xsi:type="string">Magento\Framework\Pricing\PriceInfo\Base</item>
  389. <item name="prices" xsi:type="string">Magento\Catalog\Pricing\Price\Collection</item>
  390. </item>
  391. </argument>
  392. </arguments>
  393. </type>
  394. <type name="Magento\Catalog\Model\ProductLink\CollectionProvider">
  395. <arguments>
  396. <argument name="providers" xsi:type="array">
  397. <item name="crosssell" xsi:type="object">Magento\Catalog\Model\ProductLink\CollectionProvider\Crosssell</item>
  398. <item name="upsell" xsi:type="object">Magento\Catalog\Model\ProductLink\CollectionProvider\Upsell</item>
  399. <item name="related" xsi:type="object">Magento\Catalog\Model\ProductLink\CollectionProvider\Related</item>
  400. </argument>
  401. </arguments>
  402. </type>
  403. <type name="Magento\Catalog\Model\ProductLink\Converter\ConverterPool">
  404. <arguments>
  405. <argument name="converters" xsi:type="array">
  406. <item name="default" xsi:type="object">Magento\Catalog\Model\ProductLink\Converter\DefaultConverter</item>
  407. </argument>
  408. </arguments>
  409. </type>
  410. <type name="Magento\Catalog\Model\Product\Option\Validator\Pool">
  411. <arguments>
  412. <argument name="validators" xsi:type="array">
  413. <item name="default" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\DefaultValidator</item>
  414. <item name="drop_down" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\Select</item>
  415. <item name="radio" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\Select</item>
  416. <item name="checkbox" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\Select</item>
  417. <item name="multiple" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\Select</item>
  418. <item name="text" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\Text</item>
  419. <item name="area" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\Text</item>
  420. <item name="file" xsi:type="object">Magento\Catalog\Model\Product\Option\Validator\File</item>
  421. </argument>
  422. </arguments>
  423. </type>
  424. <type name="Magento\Catalog\Model\ProductTypes\Config">
  425. <arguments>
  426. <argument name="reader" xsi:type="object">Magento\Catalog\Model\ProductTypes\Config\Reader\Proxy</argument>
  427. </arguments>
  428. </type>
  429. <type name="Magento\Catalog\Model\Attribute\Config\Data">
  430. <arguments>
  431. <argument name="reader" xsi:type="object">Magento\Catalog\Model\Attribute\Config\Reader\Proxy</argument>
  432. </arguments>
  433. </type>
  434. <type name="Magento\Catalog\Model\ProductOptions\Config">
  435. <arguments>
  436. <argument name="reader" xsi:type="object">Magento\Catalog\Model\ProductOptions\Config\Reader\Proxy</argument>
  437. </arguments>
  438. </type>
  439. <type name="Magento\CatalogInventory\Model\Config\Backend\ShowOutOfStock">
  440. <plugin name="showOutOfStockValueChanged" type="Magento\Catalog\Model\Plugin\ShowOutOfStockConfig"/>
  441. </type>
  442. <virtualType name="Magento\Catalog\Block\Category\Widget\Link" type="Magento\Catalog\Block\Widget\Link">
  443. <arguments>
  444. <argument name="entityResource" xsi:type="object">Magento\Catalog\Model\ResourceModel\Category</argument>
  445. </arguments>
  446. </virtualType>
  447. <virtualType name="Magento\Catalog\Block\Product\Widget\Link" type="Magento\Catalog\Block\Widget\Link">
  448. <arguments>
  449. <argument name="entityResource" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product</argument>
  450. </arguments>
  451. </virtualType>
  452. <type name="Magento\Framework\App\Rss\RssManagerInterface">
  453. <arguments>
  454. <argument name="dataProviders" xsi:type="array">
  455. <item name="new_products" xsi:type="string">Magento\Catalog\Block\Rss\Product\NewProducts</item>
  456. <item name="special_products" xsi:type="string">Magento\Catalog\Block\Rss\Product\Special</item>
  457. <item name="category" xsi:type="string">Magento\Catalog\Block\Rss\Category</item>
  458. </argument>
  459. </arguments>
  460. </type>
  461. <type name="Magento\Catalog\Model\Product\Option\Type\File">
  462. <arguments>
  463. <argument name="validatorInfo" xsi:type="object">Magento\Catalog\Model\Product\Option\Type\File\ValidatorInfo\Proxy</argument>
  464. <argument name="validatorFile" xsi:type="object">Magento\Catalog\Model\Product\Option\Type\File\ValidatorFile\Proxy</argument>
  465. </arguments>
  466. </type>
  467. <type name="Magento\Catalog\Model\Attribute\Config">
  468. <arguments>
  469. <argument name="dataStorage" xsi:type="object">Magento\Catalog\Model\Attribute\Config\Data\Proxy</argument>
  470. </arguments>
  471. </type>
  472. <virtualType name="Magento\Catalog\Model\Layer\Search\Context" type="Magento\Catalog\Model\Layer\Context">
  473. <arguments>
  474. <argument name="collectionProvider" xsi:type="object">Magento\Catalog\Model\Layer\Search\ItemCollectionProvider</argument>
  475. <argument name="stateKey" xsi:type="object">Magento\Catalog\Model\Layer\Category\StateKey</argument>
  476. <argument name="collectionFilter" xsi:type="object">Magento\Catalog\Model\Layer\Search\CollectionFilter</argument>
  477. </arguments>
  478. </virtualType>
  479. <virtualType name="Magento\Catalog\Model\Layer\Category\Context" type="Magento\Catalog\Model\Layer\Context">
  480. <arguments>
  481. <argument name="collectionProvider" xsi:type="object">Magento\Catalog\Model\Layer\Category\ItemCollectionProvider</argument>
  482. <argument name="stateKey" xsi:type="object">Magento\Catalog\Model\Layer\Category\StateKey</argument>
  483. <argument name="collectionFilter" xsi:type="object">Magento\Catalog\Model\Layer\Category\CollectionFilter</argument>
  484. </arguments>
  485. </virtualType>
  486. <type name="Magento\Catalog\Model\Layer\Search">
  487. <arguments>
  488. <argument name="context" xsi:type="object">Magento\Catalog\Model\Layer\Search\Context</argument>
  489. </arguments>
  490. </type>
  491. <type name="Magento\Catalog\Model\Layer\Category">
  492. <arguments>
  493. <argument name="context" xsi:type="object">Magento\Catalog\Model\Layer\Category\Context</argument>
  494. </arguments>
  495. </type>
  496. <type name="Magento\Catalog\Model\Layer\Filter\Dynamic\AlgorithmFactory">
  497. <arguments>
  498. <argument name="algorithms" xsi:type="array">
  499. <item name="auto" xsi:type="string">Magento\Catalog\Model\Layer\Filter\Dynamic\Auto</item>
  500. <item name="improved" xsi:type="string">Magento\Catalog\Model\Layer\Filter\Dynamic\Improved</item>
  501. <item name="manual" xsi:type="string">Magento\Catalog\Model\Layer\Filter\Dynamic\Manual</item>
  502. </argument>
  503. </arguments>
  504. </type>
  505. <type name="Magento\Catalog\Model\Layer\Resolver">
  506. <arguments>
  507. <argument name="layersPool" xsi:type="array">
  508. <item name="category" xsi:type="string">Magento\Catalog\Model\Layer\Category</item>
  509. <item name="search" xsi:type="string">Magento\Catalog\Model\Layer\Search</item>
  510. </argument>
  511. </arguments>
  512. </type>
  513. <type name="Magento\Catalog\Model\ResourceModel\Config">
  514. <plugin name="productListingAttributesCaching" type="Magento\Catalog\Plugin\Model\ResourceModel\Config" />
  515. </type>
  516. <preference for="Magento\Catalog\Api\ProductLinkTypeListInterface" type="Magento\Catalog\Model\Product\LinkTypeProvider" />
  517. <preference for="Magento\Catalog\Api\Data\ProductLinkAttributeInterface" type="Magento\Catalog\Model\ProductLink\Attribute" />
  518. <preference for="Magento\Catalog\Api\Data\ProductLinkTypeInterface" type="Magento\Catalog\Model\ProductLink\Type" />
  519. <preference for="Magento\Catalog\Api\ProductLinkManagementInterface" type="Magento\Catalog\Model\ProductLink\Management" />
  520. <preference for="Magento\Catalog\Api\Data\ProductLinkInterface" type="Magento\Catalog\Model\ProductLink\Link" />
  521. <preference for="Magento\Catalog\Api\CategoryLinkManagementInterface" type="Magento\Catalog\Model\CategoryLinkManagement" />
  522. <preference for="Magento\Catalog\Api\Data\ProductWebsiteLinkInterface" type="Magento\Catalog\Model\ProductWebsiteLink" />
  523. <preference for="Magento\Catalog\Api\ProductWebsiteLinkRepositoryInterface" type="Magento\Catalog\Model\ProductWebsiteLinkRepository" />
  524. <preference for="Magento\Catalog\Api\CategoryLinkRepositoryInterface" type="Magento\Catalog\Model\CategoryLinkRepository" />
  525. <preference for="Magento\Catalog\Api\Data\ProductCustomOptionInterface" type="Magento\Catalog\Model\Product\Option" />
  526. <preference for="Magento\Catalog\Api\ProductCustomOptionRepositoryInterface" type="Magento\Catalog\Model\Product\Option\Repository" />
  527. <preference for="Magento\Catalog\Api\Data\ProductCustomOptionTypeInterface" type="Magento\Catalog\Model\Product\Option\Type" />
  528. <preference for="Magento\Catalog\Api\ProductTierPriceManagementInterface" type="Magento\Catalog\Model\Product\TierPriceManagement" />
  529. <preference for="Magento\Catalog\Api\ScopedProductTierPriceManagementInterface" type="Magento\Catalog\Model\Product\ScopedTierPriceManagement" />
  530. <preference for="Magento\Catalog\Api\Data\ProductTierPriceInterface" type="Magento\Catalog\Model\Product\TierPrice" />
  531. <preference for="Magento\Catalog\Api\Data\CategoryProductLinkInterface" type="Magento\Catalog\Model\CategoryProductLink" />
  532. <preference for="Magento\Catalog\Api\ProductCustomOptionTypeListInterface" type="Magento\Catalog\Model\ProductOptions\TypeList" />
  533. <preference for="Magento\Catalog\Api\Data\ProductCustomOptionValuesInterface" type="Magento\Catalog\Model\Product\Option\Value" />
  534. <preference for="Magento\Catalog\Api\Data\CustomOptionInterface" type="Magento\Catalog\Model\CustomOptions\CustomOption" />
  535. <preference for="Magento\Catalog\Api\Data\ProductOptionInterface" type="Magento\Catalog\Model\ProductOption" />
  536. <preference for="Magento\Catalog\Api\Data\CategoryLinkInterface" type="Magento\Catalog\Model\CategoryLink" />
  537. <virtualType name="Magento\Catalog\Model\ResourceModel\Attribute\Collection" type="Magento\Eav\Model\ResourceModel\Entity\Attribute\Collection">
  538. </virtualType>
  539. <type name="Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend">
  540. <plugin name="attributeValidation" type="Magento\Catalog\Plugin\Model\Attribute\Backend\AttributeValidation"/>
  541. </type>
  542. <type name="Magento\Catalog\Plugin\Model\Attribute\Backend\AttributeValidation">
  543. <arguments>
  544. <argument name="allowedEntityTypes" xsi:type="array">
  545. <item name="product" xsi:type="string">Magento\Catalog\Api\Data\ProductInterface</item>
  546. <item name="category" xsi:type="string">Magento\Catalog\Api\Data\CategoryInterface</item>
  547. </argument>
  548. </arguments>
  549. </type>
  550. <type name="Magento\Catalog\Model\CategoryRepository">
  551. <arguments>
  552. <argument name="categoryResource" xsi:type="object">Magento\Catalog\Model\ResourceModel\Category\Proxy</argument>
  553. </arguments>
  554. </type>
  555. <type name="Magento\Catalog\Helper\Product\ConfigurationPool">
  556. <arguments>
  557. <argument name="instancesByType" xsi:type="array">
  558. <item name="default" xsi:type="object">Magento\Catalog\Helper\Product\Configuration</item>
  559. </argument>
  560. </arguments>
  561. </type>
  562. <type name="Magento\Framework\Console\CommandListInterface">
  563. <arguments>
  564. <argument name="commands" xsi:type="array">
  565. <item name="productAttributesCleanUp" xsi:type="object">Magento\Catalog\Console\Command\ProductAttributesCleanUp</item>
  566. </argument>
  567. </arguments>
  568. </type>
  569. <type name="Magento\Framework\Config\View">
  570. <arguments>
  571. <argument name="xpath" xsi:type="array">
  572. <item name="image" xsi:type="array">
  573. <item name="/view/media/images" xsi:type="array">
  574. <item name="id" xsi:type="string">module</item>
  575. </item>
  576. <item name="/view/media/images/image" xsi:type="array">
  577. <item name="id1" xsi:type="string">id</item>
  578. <item name="id2" xsi:type="string">type</item>
  579. </item>
  580. </item>
  581. </argument>
  582. </arguments>
  583. </type>
  584. <type name="Magento\Framework\View\Xsd\Media\TypeDataExtractorPool">
  585. <arguments>
  586. <argument name="extractors" xsi:type="array">
  587. <item name="images" xsi:type="object">Magento\Catalog\Model\ImageExtractor</item>
  588. </argument>
  589. </arguments>
  590. </type>
  591. <type name="Magento\Quote\Model\Quote\Item\Repository">
  592. <arguments>
  593. <argument name="cartItemProcessors" xsi:type="array">
  594. <item name="custom_options" xsi:type="object">Magento\Catalog\Model\CustomOptions\CustomOptionProcessor\Proxy</item>
  595. </argument>
  596. </arguments>
  597. </type>
  598. <type name="Magento\Sales\Api\OrderItemRepositoryInterface">
  599. <arguments>
  600. <argument name="processorPool" xsi:type="array">
  601. <item name="custom_options" xsi:type="object">Magento\Catalog\Model\ProductOptionProcessor</item>
  602. </argument>
  603. </arguments>
  604. </type>
  605. <type name="Magento\Sales\Model\Order\ProductOption">
  606. <arguments>
  607. <argument name="processorPool" xsi:type="array">
  608. <item name="custom_options" xsi:type="object">Magento\Catalog\Model\ProductOptionProcessor</item>
  609. </argument>
  610. </arguments>
  611. </type>
  612. <type name="Magento\Framework\Model\Entity\RepositoryFactory">
  613. <arguments>
  614. <argument name="entities" xsi:type="array">
  615. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="string">Magento\Catalog\Api\ProductRepositoryInterface</item>
  616. <item name="Magento\Catalog\Api\Data\CategoryInterface" xsi:type="string">Magento\Catalog\Api\CategoryRepositoryInterface</item>
  617. </argument>
  618. </arguments>
  619. </type>
  620. <type name="Magento\Framework\EntityManager\MetadataPool">
  621. <arguments>
  622. <argument name="metadata" xsi:type="array">
  623. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="array">
  624. <item name="entityTableName" xsi:type="string">catalog_product_entity</item>
  625. <item name="eavEntityType" xsi:type="string">catalog_product</item>
  626. <item name="identifierField" xsi:type="string">entity_id</item>
  627. <item name="entityContext" xsi:type="array">
  628. <item name="store" xsi:type="string">Magento\Store\Model\StoreScopeProvider</item>
  629. </item>
  630. </item>
  631. <item name="Magento\Catalog\Api\Data\CategoryInterface" xsi:type="array">
  632. <item name="entityTableName" xsi:type="string">catalog_category_entity</item>
  633. <item name="eavEntityType" xsi:type="string">catalog_category</item>
  634. <item name="identifierField" xsi:type="string">entity_id</item>
  635. <item name="entityContext" xsi:type="array">
  636. <item name="store" xsi:type="string">Magento\Store\Model\StoreScopeProvider</item>
  637. </item>
  638. </item>
  639. <item name="Magento\Catalog\Api\Data\CategoryTreeInterface" xsi:type="array">
  640. <item name="entityTableName" xsi:type="string">catalog_category_entity</item>
  641. <item name="eavEntityType" xsi:type="string">catalog_category</item>
  642. <item name="identifierField" xsi:type="string">entity_id</item>
  643. <item name="entityContext" xsi:type="array">
  644. <item name="store" xsi:type="string">Magento\Store\Model\StoreScopeProvider</item>
  645. </item>
  646. </item>
  647. <item name="Magento\Catalog\Api\Data\CategoryLinkInterface" xsi:type="array">
  648. <item name="entityTableName" xsi:type="string">catalog_category_product</item>
  649. <item name="identifierField" xsi:type="string">entity_id</item>
  650. </item>
  651. <item name="Magento\Catalog\Api\Data\ProductFrontendActionInterface" xsi:type="array">
  652. <item name="entityTableName" xsi:type="string">catalog_product_frontend_action</item>
  653. <item name="identifierField" xsi:type="string">action_id</item>
  654. </item>
  655. </argument>
  656. </arguments>
  657. </type>
  658. <type name="Magento\Framework\EntityManager\Operation\ExtensionPool">
  659. <arguments>
  660. <argument name="extensionActions" xsi:type="array">
  661. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="array">
  662. <item name="read" xsi:type="array">
  663. <item name="optionReader" xsi:type="string">Magento\Catalog\Model\Product\Option\ReadHandler</item>
  664. <item name="mediaGalleryRead" xsi:type="string">Magento\Catalog\Model\Product\Gallery\ReadHandler</item>
  665. <item name="categoryProductLinksRead" xsi:type="string">Magento\Catalog\Model\Category\Link\ReadHandler</item>
  666. <item name="websiteReader" xsi:type="string">Magento\Catalog\Model\Product\Website\ReadHandler</item>
  667. </item>
  668. <item name="create" xsi:type="array">
  669. <item name="custom_options" xsi:type="string">Magento\Catalog\Model\Product\Option\SaveHandler</item>
  670. <item name="mediaGalleryCreate" xsi:type="string">Magento\Catalog\Model\Product\Gallery\CreateHandler</item>
  671. <item name="categoryProductLinksSave" xsi:type="string">Magento\Catalog\Model\Category\Link\SaveHandler</item>
  672. <item name="websitePersistor" xsi:type="string">Magento\Catalog\Model\Product\Website\SaveHandler</item>
  673. <item name="tierPriceCreator" xsi:type="string">Magento\Catalog\Model\Product\Attribute\Backend\TierPrice\SaveHandler</item>
  674. </item>
  675. <item name="update" xsi:type="array">
  676. <item name="optionUpdater" xsi:type="string">Magento\Catalog\Model\Product\Option\SaveHandler</item>
  677. <item name="mediaGalleryUpdate" xsi:type="string">Magento\Catalog\Model\Product\Gallery\UpdateHandler</item>
  678. <item name="categoryProductLinksSave" xsi:type="string">Magento\Catalog\Model\Category\Link\SaveHandler</item>
  679. <item name="websitePersistor" xsi:type="string">Magento\Catalog\Model\Product\Website\SaveHandler</item>
  680. <item name="tierPriceUpdater" xsi:type="string">Magento\Catalog\Model\Product\Attribute\Backend\TierPrice\UpdateHandler</item>
  681. </item>
  682. </item>
  683. </argument>
  684. </arguments>
  685. </type>
  686. <type name="Magento\Catalog\Model\Indexer\Category\Flat\SkipStaticColumnsProvider">
  687. <arguments>
  688. <argument name="skipStaticColumns" xsi:type="array">
  689. <item name="entity_type_id" xsi:type="string">entity_type_id</item>
  690. <item name="attribute_set_id" xsi:type="string">attribute_set_id</item>
  691. </argument>
  692. </arguments>
  693. </type>
  694. <type name="Magento\Framework\Webapi\ServiceTypeToEntityTypeMap">
  695. <arguments>
  696. <argument name="serviceTypeToEntityTypeMap" xsi:type="array">
  697. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="const">Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE</item>
  698. <item name="Magento\Catalog\Api\Data\CategoryInterface" xsi:type="const">Magento\Catalog\Api\Data\CategoryAttributeInterface::ENTITY_TYPE_CODE</item>
  699. </argument>
  700. </arguments>
  701. </type>
  702. <type name="Magento\Eav\Model\TypeLocator\ComplexType">
  703. <arguments>
  704. <argument name="backendModelToAttributeTypeMap" xsi:type="array">
  705. <item name="Magento\Catalog\Model\Product\Attribute\Backend\Sku" xsi:type="string">string</item>
  706. <item name="Magento\Catalog\Model\Product\Attribute\Backend\Category" xsi:type="string">int[]</item>
  707. <item name="Magento\Catalog\Model\Product\Attribute\Backend\Stock" xsi:type="string">Magento\CatalogInventory\Api\Data\StockItemInterface[]</item>
  708. <item name="Magento\Catalog\Model\Category\Attribute\Backend\Sortby" xsi:type="string">string[]</item>
  709. </argument>
  710. </arguments>
  711. </type>
  712. <type name="Magento\Catalog\Model\ResourceModel\Product\Collection\ProductLimitation" shared="false"/>
  713. <type name="Magento\Theme\Model\Design\Config\MetadataProvider">
  714. <arguments>
  715. <argument name="metadata" xsi:type="array">
  716. <item name="watermark_image_size" xsi:type="array">
  717. <item name="path" xsi:type="string">design/watermark/image_size</item>
  718. <item name="fieldset" xsi:type="string">other_settings/watermark/image</item>
  719. </item>
  720. <item name="watermark_image_imageOpacity" xsi:type="array">
  721. <item name="path" xsi:type="string">design/watermark/image_imageOpacity</item>
  722. <item name="fieldset" xsi:type="string">other_settings/watermark/image</item>
  723. </item>
  724. <item name="watermark_image_image" xsi:type="array">
  725. <item name="path" xsi:type="string">design/watermark/image_image</item>
  726. <item name="fieldset" xsi:type="string">other_settings/watermark/image</item>
  727. <item name="backend_model" xsi:type="string">Magento\Theme\Model\Design\Backend\Image</item>
  728. <item name="upload_dir" xsi:type="array">
  729. <item name="config" xsi:type="string">system/filesystem/media</item>
  730. <item name="scope_info" xsi:type="string">1</item>
  731. <item name="value" xsi:type="string">catalog/product/watermark</item>
  732. </item>
  733. <item name="base_url" xsi:type="array">
  734. <item name="type" xsi:type="string">media</item>
  735. <item name="scope_info" xsi:type="string">1</item>
  736. <item name="value" xsi:type="string">catalog/product/watermark</item>
  737. </item>
  738. </item>
  739. <item name="watermark_image_position" xsi:type="array">
  740. <item name="path" xsi:type="string">design/watermark/image_position</item>
  741. <item name="fieldset" xsi:type="string">other_settings/watermark/image</item>
  742. </item>
  743. <item name="watermark_small_image_size" xsi:type="array">
  744. <item name="path" xsi:type="string">design/watermark/small_image_size</item>
  745. <item name="fieldset" xsi:type="string">other_settings/watermark/small_image</item>
  746. </item>
  747. <item name="watermark_small_image_imageOpacity" xsi:type="array">
  748. <item name="path" xsi:type="string">design/watermark/small_image_imageOpacity</item>
  749. <item name="fieldset" xsi:type="string">other_settings/watermark/small_image</item>
  750. </item>
  751. <item name="watermark_small_image_image" xsi:type="array">
  752. <item name="path" xsi:type="string">design/watermark/small_image_image</item>
  753. <item name="fieldset" xsi:type="string">other_settings/watermark/small_image</item>
  754. <item name="backend_model" xsi:type="string">Magento\Theme\Model\Design\Backend\Image</item>
  755. <item name="upload_dir" xsi:type="array">
  756. <item name="config" xsi:type="string">system/filesystem/media</item>
  757. <item name="scope_info" xsi:type="string">1</item>
  758. <item name="value" xsi:type="string">catalog/product/watermark</item>
  759. </item>
  760. <item name="base_url" xsi:type="array">
  761. <item name="type" xsi:type="string">media</item>
  762. <item name="scope_info" xsi:type="string">1</item>
  763. <item name="value" xsi:type="string">catalog/product/watermark</item>
  764. </item>
  765. </item>
  766. <item name="watermark_small_image_position" xsi:type="array">
  767. <item name="path" xsi:type="string">design/watermark/small_image_position</item>
  768. <item name="fieldset" xsi:type="string">other_settings/watermark/small_image</item>
  769. </item>
  770. <item name="watermark_thumbnail_size" xsi:type="array">
  771. <item name="path" xsi:type="string">design/watermark/thumbnail_size</item>
  772. <item name="fieldset" xsi:type="string">other_settings/watermark/thumbnail</item>
  773. </item>
  774. <item name="watermark_thumbnail_imageOpacity" xsi:type="array">
  775. <item name="path" xsi:type="string">design/watermark/thumbnail_imageOpacity</item>
  776. <item name="fieldset" xsi:type="string">other_settings/watermark/thumbnail</item>
  777. </item>
  778. <item name="watermark_thumbnail_image" xsi:type="array">
  779. <item name="path" xsi:type="string">design/watermark/thumbnail_image</item>
  780. <item name="fieldset" xsi:type="string">other_settings/watermark/thumbnail</item>
  781. <item name="backend_model" xsi:type="string">Magento\Theme\Model\Design\Backend\Image</item>
  782. <item name="upload_dir" xsi:type="array">
  783. <item name="config" xsi:type="string">system/filesystem/media</item>
  784. <item name="scope_info" xsi:type="string">1</item>
  785. <item name="value" xsi:type="string">catalog/product/watermark</item>
  786. </item>
  787. <item name="base_url" xsi:type="array">
  788. <item name="type" xsi:type="string">media</item>
  789. <item name="scope_info" xsi:type="string">1</item>
  790. <item name="value" xsi:type="string">catalog/product/watermark</item>
  791. </item>
  792. </item>
  793. <item name="watermark_thumbnail_position" xsi:type="array">
  794. <item name="path" xsi:type="string">design/watermark/thumbnail_position</item>
  795. <item name="fieldset" xsi:type="string">other_settings/watermark/thumbnail</item>
  796. </item>
  797. </argument>
  798. </arguments>
  799. </type>
  800. <virtualType name="Magento\Catalog\EntityCreator\MetadataPool" type="Magento\Framework\EntityManager\MetadataPool">
  801. <arguments>
  802. <argument name="metadata" xsi:type="array">
  803. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="array">
  804. <item name="entityContext" xsi:type="array">
  805. <item name="store" xsi:type="string">Magento\Store\Model\DefaultStoreScopeProvider</item>
  806. </item>
  807. </item>
  808. <item name="Magento\Catalog\Api\Data\CategoryInterface" xsi:type="array">
  809. <item name="entityContext" xsi:type="array">
  810. <item name="store" xsi:type="string">Magento\Store\Model\DefaultStoreScopeProvider</item>
  811. </item>
  812. </item>
  813. <item name="Magento\Catalog\Api\Data\CategoryTreeInterface" xsi:type="array">
  814. <item name="entityContext" xsi:type="array">
  815. <item name="store" xsi:type="string">Magento\Store\Model\DefaultStoreScopeProvider</item>
  816. </item>
  817. </item>
  818. </argument>
  819. </arguments>
  820. </virtualType>
  821. <virtualType name="Magento\Catalog\Model\Entity\CreationScopeResolver" type="Magento\Framework\Model\Entity\ScopeResolver">
  822. <arguments>
  823. <argument name="metadataPool" xsi:type="object">Magento\Catalog\EntityCreator\MetadataPool</argument>
  824. </arguments>
  825. </virtualType>
  826. <virtualType name="Magento\Catalog\Model\ResourceModel\CreateHandler" type="Magento\Eav\Model\ResourceModel\CreateHandler">
  827. <arguments>
  828. <argument name="metadataPool" xsi:type="object">Magento\Catalog\EntityCreator\MetadataPool</argument>
  829. <argument name="scopeResolver" xsi:type="object">Magento\Catalog\Model\Entity\CreationScopeResolver</argument>
  830. </arguments>
  831. </virtualType>
  832. <virtualType name="Magento\Catalog\Model\ResourceModel\UpdateHandler" type="Magento\Eav\Model\ResourceModel\UpdateHandler">
  833. <arguments>
  834. <argument name="attributePersistor" xsi:type="object">Magento\Catalog\Model\ResourceModel\AttributePersistor</argument>
  835. </arguments>
  836. </virtualType>
  837. <type name="Magento\Eav\Model\ResourceModel\ReadSnapshot">
  838. <plugin name="catalogReadSnapshot" type="Magento\Catalog\Plugin\Model\ResourceModel\ReadSnapshotPlugin" />
  839. </type>
  840. <type name="Magento\Framework\EntityManager\Operation\AttributePool">
  841. <arguments>
  842. <argument name="extensionActions" xsi:type="array">
  843. <item name="eav" xsi:type="array">
  844. <item name="Magento\Catalog\Api\Data\CategoryTreeInterface" xsi:type="array">
  845. <item name="create" xsi:type="string">Magento\Catalog\Model\ResourceModel\CreateHandler</item>
  846. <item name="update" xsi:type="string">Magento\Catalog\Model\ResourceModel\UpdateHandler</item>
  847. </item>
  848. <item name="Magento\Catalog\Api\Data\CategoryInterface" xsi:type="array">
  849. <item name="create" xsi:type="string">Magento\Catalog\Model\ResourceModel\CreateHandler</item>
  850. <item name="update" xsi:type="string">Magento\Catalog\Model\ResourceModel\UpdateHandler</item>
  851. </item>
  852. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="array">
  853. <item name="create" xsi:type="string">Magento\Catalog\Model\ResourceModel\CreateHandler</item>
  854. <item name="update" xsi:type="string">Magento\Catalog\Model\ResourceModel\UpdateHandler</item>
  855. </item>
  856. </item>
  857. </argument>
  858. </arguments>
  859. </type>
  860. <type name="Magento\Framework\EntityManager\HydratorPool">
  861. <arguments>
  862. <argument name="hydrators" xsi:type="array">
  863. <item name="Magento\Catalog\Api\Data\CategoryInterface" xsi:type="string">Magento\Framework\EntityManager\AbstractModelHydrator</item>
  864. <item name="Magento\Catalog\Api\Data\CategoryTreeInterface" xsi:type="string">Magento\Framework\EntityManager\AbstractModelHydrator</item>
  865. <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="string">Magento\Framework\EntityManager\AbstractModelHydrator</item>
  866. </argument>
  867. </arguments>
  868. </type>
  869. <preference for="Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface" type="Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderComposite" />
  870. <type name="Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderComposite">
  871. <arguments>
  872. <argument name="linkedProductSelectBuilder" xsi:type="array">
  873. <item name="basePrice" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderByBasePrice</item>
  874. <item name="specialPrice" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderBySpecialPrice</item>
  875. <item name="tierPrice" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderByTierPrice</item>
  876. <item name="indexPrice" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\LinkedProductSelectBuilderByIndexPrice</item>
  877. </argument>
  878. </arguments>
  879. </type>
  880. <virtualType name="Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ProductFilterProcessor" type="Magento\Eav\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor">
  881. <arguments>
  882. <argument name="customFilters" xsi:type="array">
  883. <item name="category_id" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductCategoryFilter</item>
  884. <item name="store" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductStoreFilter</item>
  885. <item name="store_id" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductStoreFilter</item>
  886. <item name="website_id" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductWebsiteFilter</item>
  887. </argument>
  888. </arguments>
  889. </virtualType>
  890. <virtualType name="Magento\Catalog\Model\Api\SearchCriteria\ProductCollectionProcessor" type="Magento\Eav\Model\Api\SearchCriteria\CollectionProcessor">
  891. <arguments>
  892. <argument name="processors" xsi:type="array">
  893. <item name="filters" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ProductFilterProcessor</item>
  894. <item name="sorting" xsi:type="object">Magento\Framework\Api\SearchCriteria\CollectionProcessor\SortingProcessor</item>
  895. <item name="pagination" xsi:type="object">Magento\Framework\Api\SearchCriteria\CollectionProcessor\PaginationProcessor</item>
  896. </argument>
  897. </arguments>
  898. </virtualType>
  899. <type name="Magento\Catalog\Model\ProductRepository">
  900. <arguments>
  901. <argument name="collectionProcessor" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\ProductCollectionProcessor</argument>
  902. </arguments>
  903. </type>
  904. <type name="Magento\Catalog\Model\CategoryList">
  905. <arguments>
  906. <argument name="collectionProcessor" xsi:type="object">Magento\Eav\Model\Api\SearchCriteria\CollectionProcessor</argument>
  907. </arguments>
  908. </type>
  909. <type name="Magento\Catalog\Model\ProductRenderList">
  910. <arguments>
  911. <argument name="collectionProcessor" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\ProductCollectionProcessor</argument>
  912. </arguments>
  913. </type>
  914. <type name="Magento\Quote\Model\Quote\Item\ToOrderItem">
  915. <plugin name="copy_quote_files_to_order" type="Magento\Catalog\Model\Plugin\QuoteItemProductOption"/>
  916. </type>
  917. <preference for="Magento\Catalog\Model\ResourceModel\Product\BaseSelectProcessorInterface" type="Magento\Catalog\Model\ResourceModel\Product\CompositeWithWebsiteProcessor" />
  918. <type name="Magento\Catalog\Model\ResourceModel\Product\CompositeBaseSelectProcessor">
  919. <arguments>
  920. <argument name="baseSelectProcessors" xsi:type="array">
  921. <item name="status" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\StatusBaseSelectProcessor</item>
  922. </argument>
  923. </arguments>
  924. </type>
  925. <virtualType name="Magento\Catalog\Model\ResourceModel\Product\CompositeWithWebsiteProcessor" type="Magento\Catalog\Model\ResourceModel\Product\CompositeBaseSelectProcessor">
  926. <arguments>
  927. <argument name="baseSelectProcessors" xsi:type="array">
  928. <item name="website" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Website\SelectProcessor</item>
  929. </argument>
  930. </arguments>
  931. </virtualType>
  932. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\LinkedProductSelectBuilderByIndexPrice">
  933. <arguments>
  934. <argument name="baseSelectProcessor" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\CompositeBaseSelectProcessor</argument>
  935. <argument name="priceTableResolver" xsi:type="object">Magento\Catalog\Model\Indexer\Product\Price\PriceTableResolver</argument>
  936. </arguments>
  937. </type>
  938. <type name="Magento\Catalog\Model\Product\Price\CostStorage">
  939. <arguments>
  940. <argument name="allowedProductTypes" xsi:type="array">
  941. <item name="0" xsi:type="string">simple</item>
  942. <item name="1" xsi:type="string">virtual</item>
  943. </argument>
  944. </arguments>
  945. </type>
  946. <type name="Magento\Catalog\Model\Product\Price\BasePriceStorage">
  947. <arguments>
  948. <argument name="allowedProductTypes" xsi:type="array">
  949. <item name="0" xsi:type="string">simple</item>
  950. <item name="1" xsi:type="string">virtual</item>
  951. <item name="2" xsi:type="string">bundle</item>
  952. </argument>
  953. </arguments>
  954. </type>
  955. <type name="Magento\Catalog\Model\Product\Price\Validation\TierPriceValidator">
  956. <arguments>
  957. <argument name="allowedProductTypes" xsi:type="array">
  958. <item name="0" xsi:type="string">simple</item>
  959. <item name="1" xsi:type="string">virtual</item>
  960. <item name="2" xsi:type="string">bundle</item>
  961. </argument>
  962. </arguments>
  963. </type>
  964. <type name="Magento\Catalog\Model\Product\Price\SpecialPriceStorage">
  965. <arguments>
  966. <argument name="allowedProductTypes" xsi:type="array">
  967. <item name="0" xsi:type="string">simple</item>
  968. <item name="1" xsi:type="string">virtual</item>
  969. </argument>
  970. </arguments>
  971. </type>
  972. <type name="Magento\Catalog\Ui\DataProvider\Product\ProductRenderCollectorComposite">
  973. <arguments>
  974. <argument name="productProviders" xsi:type="array">
  975. <item name="image" xsi:type="object">\Magento\Catalog\Ui\DataProvider\Product\Listing\Collector\Image</item>
  976. <item name="price" xsi:type="object">\Magento\Catalog\Ui\DataProvider\Product\Listing\Collector\Price</item>
  977. <item name="url" xsi:type="object">\Magento\Catalog\Ui\DataProvider\Product\Listing\Collector\Url</item>
  978. <item name="additional_info" xsi:type="object">\Magento\Catalog\Ui\DataProvider\Product\Listing\Collector\AdditionalInfo</item>
  979. </argument>
  980. </arguments>
  981. </type>
  982. <type name="Magento\Catalog\Model\FrontendStorageConfigurationPool">
  983. <arguments>
  984. <argument name="storageConfigurations" xsi:type="array">
  985. <item name="recently_viewed_product" xsi:type="object">Magento\Catalog\Model\Widget\RecentlyViewedStorageConfiguration</item>
  986. <item name="recently_compared_product" xsi:type="object">Magento\Catalog\Model\Widget\RecentlyComparedStorageConfiguration</item>
  987. </argument>
  988. </arguments>
  989. </type>
  990. <type name="Magento\Catalog\Ui\DataProvider\Product\Listing\Collector\Image">
  991. <arguments>
  992. <argument name="imageCodes" xsi:type="array">
  993. <item name="widget_recently_viewed_grid" xsi:type="string">recently_viewed_products_grid_content_widget</item>
  994. <item name="widget_recently_viewed_list" xsi:type="string">recently_viewed_products_list_content_widget</item>
  995. <item name="widget_recently_viewed_sidebar" xsi:type="string">recently_viewed_products_images_names_widget</item>
  996. <item name="widget_recently_compared_grid" xsi:type="string">recently_compared_products_grid_content_widget</item>
  997. <item name="widget_recently_compared_list" xsi:type="string">recently_compared_products_list_content_widget</item>
  998. <item name="widget_recently_compared_sidebar" xsi:type="string">recently_compared_products_images_names_widget</item>
  999. </argument>
  1000. </arguments>
  1001. </type>
  1002. <preference for="Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface" type="Magento\Catalog\Pricing\Price\MinimalTierPriceCalculator" />
  1003. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\BatchSizeCalculator">
  1004. <arguments>
  1005. <argument name="batchRowsCount" xsi:type="array">
  1006. <item name="default" xsi:type="number">5000</item>
  1007. </argument>
  1008. <argument name="estimators" xsi:type="array">
  1009. <item name="default" xsi:type="object">Magento\Catalog\Model\Indexer\Price\BatchSizeManagement</item>
  1010. </argument>
  1011. </arguments>
  1012. </type>
  1013. <virtualType name="Magento\Catalog\Model\Indexer\Price\CompositeProductBatchSizeManagement" type="Magento\Framework\Indexer\BatchSizeManagement">
  1014. <arguments>
  1015. <argument name="rowSizeEstimator" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\CompositeProductRowSizeEstimator</argument>
  1016. </arguments>
  1017. </virtualType>
  1018. <virtualType name="Magento\Catalog\Model\Indexer\Price\BatchSizeManagement" type="Magento\Framework\Indexer\BatchSizeManagement">
  1019. <arguments>
  1020. <argument name="rowSizeEstimator" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableRowSizeEstimator</argument>
  1021. </arguments>
  1022. </virtualType>
  1023. <type name="Magento\Catalog\Model\Indexer\Category\Product\Action\Full">
  1024. <arguments>
  1025. <argument name="batchRowsCount" xsi:type="number">100000</argument>
  1026. <argument name="batchSizeManagement" xsi:type="object">Magento\Catalog\Model\Indexer\CategoryProductBatchSize</argument>
  1027. </arguments>
  1028. </type>
  1029. <virtualType name="Magento\Catalog\Model\Indexer\CategoryProductBatchSize" type="Magento\Framework\Indexer\BatchSizeManagement">
  1030. <arguments>
  1031. <argument name="rowSizeEstimator" xsi:type="object">Magento\Catalog\Model\Indexer\Category\Product\RowSizeEstimator</argument>
  1032. </arguments>
  1033. </virtualType>
  1034. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\TemporaryTableStrategy" shared="false">
  1035. <arguments>
  1036. <argument name="strategy" xsi:type="object">Magento\Framework\Indexer\Table\Strategy</argument>
  1037. </arguments>
  1038. </type>
  1039. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\DefaultPrice">
  1040. <arguments>
  1041. <argument name="tableStrategy" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\TemporaryTableStrategy</argument>
  1042. <argument name="connectionName" xsi:type="string">indexer</argument>
  1043. </arguments>
  1044. </type>
  1045. <type name="Magento\Catalog\Model\Indexer\Product\Eav\Action\Full">
  1046. <arguments>
  1047. <argument name="batchSizeCalculator" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\BatchSizeCalculator</argument>
  1048. </arguments>
  1049. </type>
  1050. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\Source">
  1051. <arguments>
  1052. <argument name="tableStrategy" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\TemporaryTableStrategy</argument>
  1053. <argument name="connectionName" xsi:type="string">indexer</argument>
  1054. </arguments>
  1055. </type>
  1056. <virtualType name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\DecimalBatchSizeManagement" type="Magento\Framework\Indexer\BatchSizeManagement">
  1057. <arguments>
  1058. <argument name="rowSizeEstimator" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\DecimalRowSizeEstimator</argument>
  1059. </arguments>
  1060. </virtualType>
  1061. <virtualType name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\SourceBatchSizeManagement" type="Magento\Framework\Indexer\BatchSizeManagement">
  1062. <arguments>
  1063. <argument name="rowSizeEstimator" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\SourceRowSizeEstimator</argument>
  1064. </arguments>
  1065. </virtualType>
  1066. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\BatchSizeCalculator">
  1067. <arguments>
  1068. <argument name="batchSizes" xsi:type="array">
  1069. <item name="decimal" xsi:type="number">1000</item>
  1070. <item name="source" xsi:type="number">1000</item>
  1071. </argument>
  1072. <argument name="batchSizeManagers" xsi:type="array">
  1073. <item name="decimal" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\DecimalBatchSizeManagement</item>
  1074. <item name="source" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Eav\SourceBatchSizeManagement</item>
  1075. </argument>
  1076. </arguments>
  1077. </type>
  1078. <type name="Magento\Framework\Data\CollectionModifier">
  1079. <arguments>
  1080. <argument name="conditions" xsi:type="array">
  1081. <item name="productVisibilityCondition" xsi:type="object">Magento\Catalog\Model\ProductVisibilityCondition</item>
  1082. </argument>
  1083. </arguments>
  1084. </type>
  1085. <type name="Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper">
  1086. <arguments>
  1087. <argument name="productRepository" xsi:type="object">Magento\Catalog\Api\ProductRepositoryInterface\Proxy</argument>
  1088. </arguments>
  1089. </type>
  1090. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\TierPrice">
  1091. <arguments>
  1092. <argument name="connectionName" xsi:type="string">indexer</argument>
  1093. </arguments>
  1094. </type>
  1095. <type name="Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder\Factory">
  1096. <arguments>
  1097. <argument name="eavAttributeConditionBuilder" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder\EavAttributeCondition</argument>
  1098. <argument name="nativeAttributeConditionBuilder" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\ConditionBuilder\NativeAttributeCondition</argument>
  1099. </arguments>
  1100. </type>
  1101. <type name="Magento\Catalog\Model\Indexer\Product\Price\DimensionCollectionFactory">
  1102. <arguments>
  1103. <argument name="dimensionProviders" xsi:type="array">
  1104. <!-- @see \Magento\Store\Model\Indexer\WebsiteDimensionProvider::DIMENSION_NAME -->
  1105. <item name="ws" xsi:type="object">Magento\Store\Model\Indexer\WebsiteDimensionProvider</item>
  1106. <!-- @see \Magento\Customer\Model\Indexer\CustomerGroupDimensionProvider::DIMENSION_NAME -->
  1107. <item name="cg" xsi:type="object">Magento\Customer\Model\Indexer\CustomerGroupDimensionProvider</item>
  1108. </argument>
  1109. </arguments>
  1110. </type>
  1111. <type name="Magento\Catalog\Model\Indexer\Product\Price\Plugin\TableResolver">
  1112. <arguments>
  1113. <argument name="priceTableResolver" xsi:type="object">Magento\Catalog\Model\Indexer\Product\Price\PriceTableResolver\Proxy</argument>
  1114. <argument name="storeManager" xsi:type="object">Magento\Store\Model\StoreManagerInterface\Proxy</argument>
  1115. <argument name="context" xsi:type="object">Magento\Framework\App\Http\Context\Proxy</argument>
  1116. <!-- Unccomment after fix issue with Proxy generation -->
  1117. <!--<argument name="dimensionModeConfiguration" xsi:type="object">-->
  1118. <!--Magento\Catalog\Model\Indexer\Product\Price\DimensionModeConfiguration\Proxy-->
  1119. <!--</argument>-->
  1120. </arguments>
  1121. </type>
  1122. <type name="Magento\Catalog\Model\ResourceModel\Layer\Filter\Price">
  1123. <arguments>
  1124. <argument name="priceTableResolver" xsi:type="object">
  1125. Magento\Catalog\Model\Indexer\Product\Price\PriceTableResolver
  1126. </argument>
  1127. </arguments>
  1128. </type>
  1129. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\CustomOptionPriceModifier">
  1130. <arguments>
  1131. <argument name="tableStrategy" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\TemporaryTableStrategy</argument>
  1132. </arguments>
  1133. </type>
  1134. <type name="Magento\Catalog\Model\Indexer\Product\Price\TableMaintainer">
  1135. <arguments>
  1136. <argument name="connectionName" xsi:type="string">indexer</argument>
  1137. <argument name="tableResolver" xsi:type="object">Magento\Framework\Indexer\ScopeResolver\IndexScopeResolver</argument>
  1138. </arguments>
  1139. </type>
  1140. <type name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\BasePriceModifier">
  1141. <arguments>
  1142. <argument name="priceModifiers" xsi:type="array">
  1143. <item name="customOptionPriceModifier" xsi:type="object">Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\CustomOptionPriceModifier</item>
  1144. </argument>
  1145. </arguments>
  1146. </type>
  1147. <virtualType name="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\VirtualProductPrice" type="Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\SimpleProductPrice">
  1148. <arguments>
  1149. <argument name="productType" xsi:type="string">virtual</argument>
  1150. </arguments>
  1151. </virtualType>
  1152. <type name="Magento\Indexer\Console\Command\IndexerSetDimensionsModeCommand">
  1153. <arguments>
  1154. <argument name="dimensionSwitchers" xsi:type="array">
  1155. <item name="catalog_product_price" xsi:type="object">Magento\Catalog\Model\Indexer\Product\Price\ModeSwitcher</item>
  1156. </argument>
  1157. </arguments>
  1158. </type>
  1159. <type name="Magento\Indexer\Console\Command\IndexerShowDimensionsModeCommand">
  1160. <arguments>
  1161. <argument name="indexers" xsi:type="array">
  1162. <item name="catalog_product_price" xsi:type="string">catalog_product_price</item>
  1163. </argument>
  1164. </arguments>
  1165. </type>
  1166. </config>