Passed
Push — master ( 73bf48...047dc7 )
by Ilya
05:56 queued 16s
created

getCartPreCheckPluginsForOrderAmendment()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 24

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 24
dl 0
loc 26
rs 9.536
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace Pyz\Zed\Cart;
11
12
use Spryker\Zed\AvailabilityCartConnector\Communication\Plugin\Cart\CheckAvailabilityPlugin;
13
use Spryker\Zed\Cart\CartDependencyProvider as SprykerCartDependencyProvider;
14
use Spryker\Zed\Cart\Communication\Plugin\Cart\GroupKeyWithCartIdentifierItemExpanderPlugin;
15
use Spryker\Zed\Cart\Communication\Plugin\CleanUpItemsPreReloadPlugin;
16
use Spryker\Zed\Cart\Communication\Plugin\SkuGroupKeyPlugin;
17
use Spryker\Zed\ConfigurableBundle\Communication\Plugin\Cart\CartConfigurableBundlePreReloadPlugin;
18
use Spryker\Zed\ConfigurableBundleCart\Communication\Plugin\Cart\ConfiguredBundleGroupKeyItemExpanderPlugin;
19
use Spryker\Zed\ConfigurableBundleCart\Communication\Plugin\Cart\ConfiguredBundleQuantityCartTerminationPlugin;
20
use Spryker\Zed\ConfigurableBundleCart\Communication\Plugin\Cart\ConfiguredBundleQuantityPerSlotItemExpanderPlugin;
21
use Spryker\Zed\ConfigurableBundleCart\Communication\Plugin\Cart\ConfiguredBundleQuantityPerSlotPreReloadItemsPlugin;
22
use Spryker\Zed\ConfigurableBundleCart\Communication\Plugin\Cart\ConfiguredBundleQuantityPostSavePlugin;
23
use Spryker\Zed\ConfigurableBundleCart\Communication\Plugin\Cart\ConfiguredBundleTemplateSlotCombinationPreCheckPlugin;
24
use Spryker\Zed\Discount\Communication\Plugin\Cart\DiscountQuoteChangeObserverPlugin;
25
use Spryker\Zed\DiscountPromotion\Communication\Plugin\Cart\CartGroupPromotionItems;
26
use Spryker\Zed\DiscountPromotion\Communication\Plugin\Cart\DiscountPromotionCartPreCheckPlugin;
27
use Spryker\Zed\Kernel\Container;
28
use Spryker\Zed\Merchant\Communication\Plugin\Cart\MerchantCartPreCheckPlugin;
29
use Spryker\Zed\MerchantProduct\Communication\Plugin\Cart\MerchantProductCartPreCheckPlugin;
30
use Spryker\Zed\MerchantProductOption\Communication\Plugin\Cart\MerchantProductOptionCartPreCheckPlugin;
31
use Spryker\Zed\MerchantShipment\Communication\Plugin\Cart\MerchantShipmentItemExpanderPlugin;
32
use Spryker\Zed\PaymentCartConnector\Communication\Plugin\Cart\RemovePaymentCartPostSavePlugin;
33
use Spryker\Zed\PaymentCartConnector\Communication\Plugin\Cart\RemoveQuotePaymentCartItemExpanderPlugin;
34
use Spryker\Zed\PriceCartConnector\Communication\Plugin\Cart\PriceItemExpanderPlugin;
35
use Spryker\Zed\PriceCartConnector\Communication\Plugin\Cart\SanitizeSourcePricesQuoteLockPreResetPlugin;
36
use Spryker\Zed\PriceCartConnector\Communication\Plugin\CartItemPricePlugin;
37
use Spryker\Zed\PriceCartConnector\Communication\Plugin\CartItemPricePreCheckPlugin;
38
use Spryker\Zed\PriceCartConnector\Communication\Plugin\FilterItemsWithoutPricePlugin;
39
use Spryker\Zed\PriceProductSalesOrderAmendment\Communication\Plugin\Cart\OriginalSalesOrderItemPriceItemExpanderPlugin;
40
use Spryker\Zed\PriceProductSalesOrderAmendment\Communication\Plugin\Cart\ResetOriginalSalesOrderItemUnitPricesPreReloadItemsPlugin;
41
use Spryker\Zed\ProductApproval\Communication\Plugin\Cart\OrderAmendmentProductApprovalCartPreCheckPlugin;
42
use Spryker\Zed\ProductApproval\Communication\Plugin\Cart\OrderAmendmentProductApprovalPreReloadItemsPlugin;
43
use Spryker\Zed\ProductApproval\Communication\Plugin\Cart\ProductApprovalCartPreCheckPlugin;
44
use Spryker\Zed\ProductApproval\Communication\Plugin\Cart\ProductApprovalPreReloadItemsPlugin;
45
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\BundleItemPriceQuoteChangeObserverPlugin;
46
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundleActivePreCheckPlugin;
47
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundleAvailabilityPreCheckPlugin;
48
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundleItemsPreReloadPlugin;
49
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundlePricesPreCheckPlugin;
50
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartItemWithBundleGroupKeyExpanderPlugin;
51
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartPostSaveUpdateBundlesPlugin;
52
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\ExpandBundleItemsPlugin;
53
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\ExpandBundleItemsWithImagesPlugin;
54
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\OrderAmendmentProductBundleAvailabilityCartPreCheckPlugin;
55
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\OrderAmendmentProductBundleStatusCartPreCheckPlugin;
56
use Spryker\Zed\ProductCartConnector\Communication\Plugin\Cart\OrderAmendmentProductExistsCartPreCheckPlugin;
57
use Spryker\Zed\ProductCartConnector\Communication\Plugin\Cart\OrderAmendmentRemoveInactiveItemsPreReloadPlugin;
58
use Spryker\Zed\ProductCartConnector\Communication\Plugin\ProductCartPlugin;
59
use Spryker\Zed\ProductCartConnector\Communication\Plugin\ProductExistsCartPreCheckPlugin;
60
use Spryker\Zed\ProductCartConnector\Communication\Plugin\ProductUrlItemExpanderPlugin;
61
use Spryker\Zed\ProductCartConnector\Communication\Plugin\RemoveInactiveItemsPreReloadPlugin;
62
use Spryker\Zed\ProductConfigurationCart\Communication\Plugin\Cart\ProductConfigurationGroupKeyItemExpanderPlugin;
63
use Spryker\Zed\ProductDiscontinued\Communication\Plugin\Cart\OrderAmendmentProductDiscontinuedCartPreCheckPlugin;
64
use Spryker\Zed\ProductDiscontinued\Communication\Plugin\Cart\ProductDiscontinuedCartPreCheckPlugin;
65
use Spryker\Zed\ProductImageCartConnector\Communication\Plugin\Cart\ProductImageItemExpanderPlugin;
66
use Spryker\Zed\ProductList\Communication\Plugin\CartExtension\ProductListRestrictedItemsPreCheckPlugin;
67
use Spryker\Zed\ProductList\Communication\Plugin\CartExtension\RemoveRestrictedItemsPreReloadPlugin;
68
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\DefaultQuantitySalesUnitItemExpanderPlugin;
69
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\ProductMeasurementSalesUnitCartPreCheckPlugin;
70
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\QuantitySalesUnitGroupKeyItemExpanderPlugin;
71
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\QuantitySalesUnitItemExpanderPlugin;
72
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\QuantitySalesUnitValuePostSavePlugin;
73
use Spryker\Zed\ProductOffer\Communication\Plugin\Cart\FilterInactiveProductOfferPreReloadItemsPlugin;
74
use Spryker\Zed\ProductOffer\Communication\Plugin\Cart\OrderAmendmentFilterInactiveProductOfferPreReloadItemsPlugin;
75
use Spryker\Zed\ProductOffer\Communication\Plugin\Cart\OrderAmendmentProductOfferCartPreCheckPlugin;
76
use Spryker\Zed\ProductOffer\Communication\Plugin\Cart\ProductOfferCartPreCheckPlugin;
77
use Spryker\Zed\ProductOffer\Communication\Plugin\Cart\ProductOfferGroupKeyItemExpanderPlugin;
78
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\Cart\CartItemOptionPreCheckPlugin;
79
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\CartItemGroupKeyOptionPlugin;
80
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\CartItemProductOptionPlugin;
81
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\ChangeProductOptionQuantityPlugin;
82
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\ProductOptionValuePriceExistsCartPreCheckPlugin;
83
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountAvailabilityCartPreCheckPlugin;
84
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountGroupKeyItemExpanderPlugin;
85
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountRestrictionCartPreCheckPlugin;
86
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountSalesUnitItemExpanderPlugin;
87
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountSalesUnitValuePostSavePlugin;
88
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\CustomAmountPriceItemExpanderPlugin;
89
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitCartAddItemStrategyPlugin;
90
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitCartPreCheckPlugin;
91
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitCartRemoveItemStrategyPlugin;
92
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitItemExpanderPlugin;
93
use Spryker\Zed\ProductQuantity\Communication\Plugin\Cart\CartChangeTransferQuantityNormalizerPlugin;
94
use Spryker\Zed\ProductQuantity\Communication\Plugin\Cart\ProductQuantityRestrictionCartPreCheckPlugin;
95
use Spryker\Zed\ProductQuantity\Communication\Plugin\CartExtension\ProductQuantityRestrictionCartRemovalPreCheckPlugin;
96
use Spryker\Zed\QuoteApproval\Communication\Plugin\Cart\SanitizeQuoteApprovalQuoteLockPreResetPlugin;
97
use Spryker\Zed\QuoteRequest\Communication\Plugin\Cart\SanitizeQuoteRequestQuoteLockPreResetPlugin;
98
use Spryker\Zed\SalesMerchantCommission\Communication\Plugin\Cart\SanitizeMerchantCommissionPreReloadPlugin;
99
use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Cart\OrderAmendmentCartPreCheckPlugin;
100
use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Cart\ResetAmendmentOrderReferencePreReloadItemsPlugin;
101
use Spryker\Zed\SalesOrderThreshold\Communication\Plugin\Cart\AddThresholdMessagesCartPostReloadItemsPlugin;
102
use Spryker\Zed\SalesOrderThreshold\Communication\Plugin\Cart\SalesOrderThresholdCartTerminationPlugin;
103
use Spryker\Zed\SalesQuantity\Communication\Plugin\Cart\IsQuantitySplittableItemExpanderPlugin;
104
use Spryker\Zed\ShipmentCartConnector\Communication\Plugin\Cart\CartShipmentCartOperationPostSavePlugin;
105
use Spryker\Zed\ShipmentCartConnector\Communication\Plugin\Cart\CartShipmentPreCheckPlugin;
106
use Spryker\Zed\ShipmentCartConnector\Communication\Plugin\Cart\SanitizeCartShipmentItemExpanderPlugin;
107
108
class CartDependencyProvider extends SprykerCartDependencyProvider
109
{
110
    /**
111
     * @param \Spryker\Zed\Kernel\Container $container
112
     *
113
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\ItemExpanderPluginInterface>
114
     */
115
    protected function getExpanderPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
116
    {
117
        return [
118
            new ProductCartPlugin(),
119
            new IsQuantitySplittableItemExpanderPlugin(),
120
            new CartItemPricePlugin(),
121
            new CartItemProductOptionPlugin(),
122
            new ExpandBundleItemsPlugin(),
123
            new ExpandBundleItemsWithImagesPlugin(),
124
            new SkuGroupKeyPlugin(),
125
            new DefaultQuantitySalesUnitItemExpanderPlugin(),
126
            new QuantitySalesUnitGroupKeyItemExpanderPlugin(),
127
            new CartItemGroupKeyOptionPlugin(),
128
            new CartItemWithBundleGroupKeyExpanderPlugin(),
129
            new ProductImageItemExpanderPlugin(),
130
            new CartGroupPromotionItems(),
131
            new QuantitySalesUnitItemExpanderPlugin(),
132
            new ProductPackagingUnitItemExpanderPlugin(), #ProductPackagingUnit
133
            new AmountGroupKeyItemExpanderPlugin(), #ProductPackagingUnit
134
            new AmountSalesUnitItemExpanderPlugin(), #ProductPackagingUnit
135
            new CustomAmountPriceItemExpanderPlugin(), #ProductPackagingUnit
136
            new ConfiguredBundleQuantityPerSlotItemExpanderPlugin(),
137
            new ConfiguredBundleGroupKeyItemExpanderPlugin(),
138
            new ProductUrlItemExpanderPlugin(),
139
            new SanitizeCartShipmentItemExpanderPlugin(),
140
            new ProductOfferGroupKeyItemExpanderPlugin(),
141
            new MerchantShipmentItemExpanderPlugin(),
142
            new GroupKeyWithCartIdentifierItemExpanderPlugin(),
143
            new ProductConfigurationGroupKeyItemExpanderPlugin(),
144
            new RemoveQuotePaymentCartItemExpanderPlugin(),
145
        ];
146
    }
147
148
    /**
149
     * @param \Spryker\Zed\Kernel\Container $container
150
     *
151
     * @return list<\Spryker\Zed\CartExtension\Dependency\Plugin\ItemExpanderPluginInterface>
152
     */
153
    protected function getExpanderPluginsForOrderAmendment(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
154
    {
155
        return [
156
            new ProductCartPlugin(),
157
            new IsQuantitySplittableItemExpanderPlugin(),
158
            new PriceItemExpanderPlugin(),
159
            new OriginalSalesOrderItemPriceItemExpanderPlugin(),
160
            new CartItemProductOptionPlugin(),
161
            new ExpandBundleItemsPlugin(),
162
            new ExpandBundleItemsWithImagesPlugin(),
163
            new SkuGroupKeyPlugin(),
164
            new DefaultQuantitySalesUnitItemExpanderPlugin(),
165
            new QuantitySalesUnitGroupKeyItemExpanderPlugin(),
166
            new CartItemGroupKeyOptionPlugin(),
167
            new CartItemWithBundleGroupKeyExpanderPlugin(),
168
            new ProductImageItemExpanderPlugin(),
169
            new CartGroupPromotionItems(),
170
            new QuantitySalesUnitItemExpanderPlugin(),
171
            new ProductPackagingUnitItemExpanderPlugin(), #ProductPackagingUnit
172
            new AmountGroupKeyItemExpanderPlugin(), #ProductPackagingUnit
173
            new AmountSalesUnitItemExpanderPlugin(), #ProductPackagingUnit
174
            new CustomAmountPriceItemExpanderPlugin(), #ProductPackagingUnitFeature
175
            new ConfiguredBundleQuantityPerSlotItemExpanderPlugin(),
176
            new ConfiguredBundleGroupKeyItemExpanderPlugin(),
177
            new ProductOfferGroupKeyItemExpanderPlugin(),
178
            new ProductUrlItemExpanderPlugin(),
179
            new SanitizeCartShipmentItemExpanderPlugin(),
180
            new ProductConfigurationGroupKeyItemExpanderPlugin(),
181
            new MerchantShipmentItemExpanderPlugin(),
182
            new GroupKeyWithCartIdentifierItemExpanderPlugin(),
183
            new RemoveQuotePaymentCartItemExpanderPlugin(),
184
        ];
185
    }
186
187
    /**
188
     * @param \Spryker\Zed\Kernel\Container $container
189
     *
190
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartChangeTransferNormalizerPluginInterface>
191
     */
192
    protected function getCartBeforePreCheckNormalizerPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
193
    {
194
        return [
195
            new CartChangeTransferQuantityNormalizerPlugin(),
196
        ];
197
    }
198
199
    /**
200
     * @param \Spryker\Zed\Kernel\Container $container
201
     *
202
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartPreCheckPluginInterface>
203
     */
204
    protected function getCartPreCheckPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
205
    {
206
        return [
207
            new ProductExistsCartPreCheckPlugin(),
208
            new CheckAvailabilityPlugin(),
209
            new CartItemPricePreCheckPlugin(),
210
            new CartBundlePricesPreCheckPlugin(),
211
            new CartItemOptionPreCheckPlugin(),
212
            new ProductOptionValuePriceExistsCartPreCheckPlugin(),
213
            new CartBundleAvailabilityPreCheckPlugin(),
214
            new CartBundleActivePreCheckPlugin(),
215
            new CartShipmentPreCheckPlugin(),
216
            new ProductQuantityRestrictionCartPreCheckPlugin(),
217
            new ProductListRestrictedItemsPreCheckPlugin(),
218
            new ProductDiscontinuedCartPreCheckPlugin(), #ProductDiscontinuedFeature
219
            new ProductPackagingUnitCartPreCheckPlugin(),
220
            new AmountAvailabilityCartPreCheckPlugin(), #ProductPackagingUnit
221
            new AmountRestrictionCartPreCheckPlugin(), #ProductPackagingUnit
222
            new ConfiguredBundleTemplateSlotCombinationPreCheckPlugin(),
223
            new ProductMeasurementSalesUnitCartPreCheckPlugin(),
224
            new DiscountPromotionCartPreCheckPlugin(),
225
            new MerchantProductCartPreCheckPlugin(),
226
            new ProductOfferCartPreCheckPlugin(),
227
            new MerchantProductOptionCartPreCheckPlugin(),
228
            new ProductApprovalCartPreCheckPlugin(),
229
        ];
230
    }
231
232
    /**
233
     * @return list<\Spryker\Zed\CartExtension\Dependency\Plugin\CartPreCheckPluginInterface>
234
     */
235
    protected function getCartPreCheckPluginsForOrderAmendment(): array
236
    {
237
        return [
238
            new CheckAvailabilityPlugin(),
239
            new CartBundlePricesPreCheckPlugin(),
240
            new CartItemOptionPreCheckPlugin(),
241
            new ProductOptionValuePriceExistsCartPreCheckPlugin(),
242
            new CartShipmentPreCheckPlugin(),
243
            new ProductQuantityRestrictionCartPreCheckPlugin(),
244
            new ProductListRestrictedItemsPreCheckPlugin(),
245
            new ProductPackagingUnitCartPreCheckPlugin(),
246
            new AmountAvailabilityCartPreCheckPlugin(), #ProductPackagingUnit
247
            new AmountRestrictionCartPreCheckPlugin(), #ProductPackagingUnit
248
            new ConfiguredBundleTemplateSlotCombinationPreCheckPlugin(),
249
            new MerchantCartPreCheckPlugin(),
250
            new ProductMeasurementSalesUnitCartPreCheckPlugin(),
251
            new DiscountPromotionCartPreCheckPlugin(),
252
            new MerchantProductCartPreCheckPlugin(),
253
            new MerchantProductOptionCartPreCheckPlugin(),
254
            new OrderAmendmentProductExistsCartPreCheckPlugin(),
255
            new OrderAmendmentProductBundleAvailabilityCartPreCheckPlugin(),
256
            new OrderAmendmentProductBundleStatusCartPreCheckPlugin(),
257
            new OrderAmendmentProductDiscontinuedCartPreCheckPlugin(), #ProductDiscontinuedFeature
258
            new OrderAmendmentProductOfferCartPreCheckPlugin(),
259
            new OrderAmendmentProductApprovalCartPreCheckPlugin(),
260
            new OrderAmendmentCartPreCheckPlugin(),
261
        ];
262
    }
263
264
    /**
265
     * @param \Spryker\Zed\Kernel\Container $container
266
     *
267
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartOperationPostSavePluginInterface>
268
     */
269
    protected function getPostSavePlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
270
    {
271
        return [
272
            new ChangeProductOptionQuantityPlugin(),
273
            new CartPostSaveUpdateBundlesPlugin(),
274
            new RemovePaymentCartPostSavePlugin(),
275
            new QuantitySalesUnitValuePostSavePlugin(),
276
            new AmountSalesUnitValuePostSavePlugin(), #ProductPackagingUnit
277
            new ConfiguredBundleQuantityPostSavePlugin(),
278
            new CartShipmentCartOperationPostSavePlugin(),
279
        ];
280
    }
281
282
    /**
283
     * @param \Spryker\Zed\Kernel\Container $container
284
     *
285
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\PreReloadItemsPluginInterface>
286
     */
287
    protected function getPreReloadPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
288
    {
289
        return [
290
            new CartConfigurableBundlePreReloadPlugin(),
291
            new CartBundleItemsPreReloadPlugin(),
292
            new RemoveInactiveItemsPreReloadPlugin(),
293
            new RemoveRestrictedItemsPreReloadPlugin(),
294
            new CleanUpItemsPreReloadPlugin(),
295
            new FilterItemsWithoutPricePlugin(),
296
            new ConfiguredBundleQuantityPerSlotPreReloadItemsPlugin(),
297
            new FilterInactiveProductOfferPreReloadItemsPlugin(),
298
            new ProductApprovalPreReloadItemsPlugin(),
299
            new SanitizeMerchantCommissionPreReloadPlugin(),
300
            new ResetAmendmentOrderReferencePreReloadItemsPlugin(),
301
            new ResetOriginalSalesOrderItemUnitPricesPreReloadItemsPlugin(),
302
        ];
303
    }
304
305
    /**
306
     * @param \Spryker\Zed\Kernel\Container $container
307
     *
308
     * @return list<\Spryker\Zed\CartExtension\Dependency\Plugin\PreReloadItemsPluginInterface>
309
     */
310
    protected function getPreReloadPluginsForOrderAmendment(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
311
    {
312
        return [
313
            new CartConfigurableBundlePreReloadPlugin(),
314
            new CartBundleItemsPreReloadPlugin(),
315
            new RemoveRestrictedItemsPreReloadPlugin(),
316
            new CleanUpItemsPreReloadPlugin(),
317
            new ConfiguredBundleQuantityPerSlotPreReloadItemsPlugin(),
318
            new SanitizeMerchantCommissionPreReloadPlugin(),
319
            new OrderAmendmentRemoveInactiveItemsPreReloadPlugin(),
320
            new OrderAmendmentFilterInactiveProductOfferPreReloadItemsPlugin(),
321
            new OrderAmendmentProductApprovalPreReloadItemsPlugin(),
322
        ];
323
    }
324
325
    /**
326
     * @param \Spryker\Zed\Kernel\Container $container
327
     *
328
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\PostReloadItemsPluginInterface>
329
     */
330
    protected function getPostReloadItemsPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
331
    {
332
        return [
333
            new AddThresholdMessagesCartPostReloadItemsPlugin(), #SalesOrderThresholdFeature
334
        ];
335
    }
336
337
    /**
338
     * @param \Spryker\Zed\Kernel\Container $container
339
     *
340
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartTerminationPluginInterface>
341
     */
342
    protected function getTerminationPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
343
    {
344
        return [
345
            new ConfiguredBundleQuantityCartTerminationPlugin(),
346
            new SalesOrderThresholdCartTerminationPlugin(),
347
        ];
348
    }
349
350
    /**
351
     * @param \Spryker\Zed\Kernel\Container $container
352
     *
353
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartRemovalPreCheckPluginInterface>
354
     */
355
    protected function getCartRemovalPreCheckPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
356
    {
357
        return [
358
            new ProductQuantityRestrictionCartRemovalPreCheckPlugin(),
359
        ];
360
    }
361
362
    /**
363
     * @param \Spryker\Zed\Kernel\Container $container
364
     *
365
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\QuoteChangeObserverPluginInterface>
366
     */
367
    protected function getQuoteChangeObserverPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
368
    {
369
        return [
370
            new DiscountQuoteChangeObserverPlugin(),
371
            new BundleItemPriceQuoteChangeObserverPlugin(),
372
        ];
373
    }
374
375
    /**
376
     * @param \Spryker\Zed\Kernel\Container $container
377
     *
378
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartOperationStrategyPluginInterface>
379
     */
380
    protected function getCartAddItemStrategyPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
381
    {
382
        return [
383
            new ProductPackagingUnitCartAddItemStrategyPlugin(),
384
        ];
385
    }
386
387
    /**
388
     * @param \Spryker\Zed\Kernel\Container $container
389
     *
390
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartOperationStrategyPluginInterface>
391
     */
392
    protected function getCartRemoveItemStrategyPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
393
    {
394
        return [
395
            new ProductPackagingUnitCartRemoveItemStrategyPlugin(),
396
        ];
397
    }
398
399
    /**
400
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\QuoteLockPreResetPluginInterface>
401
     */
402
    protected function getQuoteLockPreResetPlugins(): array
403
    {
404
        return [
405
            new SanitizeQuoteRequestQuoteLockPreResetPlugin(),
406
            new SanitizeQuoteApprovalQuoteLockPreResetPlugin(),
407
            new SanitizeSourcePricesQuoteLockPreResetPlugin(),
408
        ];
409
    }
410
}
411