Completed
Push — master ( f465c8...ce649b )
by Ilya
52s queued 19s
created

getExpanderPluginsForOrderAmendment()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 29
Code Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 29
rs 9.488
c 0
b 0
f 0
cc 1
nc 1
nop 1
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\PaymentCartConnector\Communication\Plugin\Cart\RemovePaymentCartPostSavePlugin;
29
use Spryker\Zed\PaymentCartConnector\Communication\Plugin\Cart\RemoveQuotePaymentCartItemExpanderPlugin;
30
use Spryker\Zed\PriceCartConnector\Communication\Plugin\Cart\PriceItemExpanderPlugin;
31
use Spryker\Zed\PriceCartConnector\Communication\Plugin\Cart\SanitizeSourcePricesQuoteLockPreResetPlugin;
32
use Spryker\Zed\PriceCartConnector\Communication\Plugin\CartItemPricePlugin;
33
use Spryker\Zed\PriceCartConnector\Communication\Plugin\CartItemPricePreCheckPlugin;
34
use Spryker\Zed\PriceCartConnector\Communication\Plugin\FilterItemsWithoutPricePlugin;
35
use Spryker\Zed\PriceProductSalesOrderAmendment\Communication\Plugin\Cart\OriginalSalesOrderItemPriceItemExpanderPlugin;
36
use Spryker\Zed\PriceProductSalesOrderAmendment\Communication\Plugin\Cart\ResetOriginalSalesOrderItemUnitPricesPreReloadItemsPlugin;
37
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\BundleItemPriceQuoteChangeObserverPlugin;
38
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundleActivePreCheckPlugin;
39
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundleAvailabilityPreCheckPlugin;
40
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundleItemsPreReloadPlugin;
41
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartBundlePricesPreCheckPlugin;
42
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartItemWithBundleGroupKeyExpanderPlugin;
43
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\CartPostSaveUpdateBundlesPlugin;
44
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\ExpandBundleItemsPlugin;
45
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\ExpandBundleItemsWithImagesPlugin;
46
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\OrderAmendmentProductBundleAvailabilityCartPreCheckPlugin;
47
use Spryker\Zed\ProductBundle\Communication\Plugin\Cart\OrderAmendmentProductBundleStatusCartPreCheckPlugin;
48
use Spryker\Zed\ProductCartConnector\Communication\Plugin\Cart\OrderAmendmentProductExistsCartPreCheckPlugin;
49
use Spryker\Zed\ProductCartConnector\Communication\Plugin\Cart\OrderAmendmentRemoveInactiveItemsPreReloadPlugin;
50
use Spryker\Zed\ProductCartConnector\Communication\Plugin\ProductCartPlugin;
51
use Spryker\Zed\ProductCartConnector\Communication\Plugin\ProductExistsCartPreCheckPlugin;
52
use Spryker\Zed\ProductCartConnector\Communication\Plugin\ProductUrlItemExpanderPlugin;
53
use Spryker\Zed\ProductCartConnector\Communication\Plugin\RemoveInactiveItemsPreReloadPlugin;
54
use Spryker\Zed\ProductConfigurationCart\Communication\Plugin\Cart\ProductConfigurationGroupKeyItemExpanderPlugin;
55
use Spryker\Zed\ProductDiscontinued\Communication\Plugin\Cart\OrderAmendmentProductDiscontinuedCartPreCheckPlugin;
56
use Spryker\Zed\ProductDiscontinued\Communication\Plugin\Cart\ProductDiscontinuedCartPreCheckPlugin;
57
use Spryker\Zed\ProductImageCartConnector\Communication\Plugin\Cart\ProductImageItemExpanderPlugin;
58
use Spryker\Zed\ProductList\Communication\Plugin\CartExtension\ProductListRestrictedItemsPreCheckPlugin;
59
use Spryker\Zed\ProductList\Communication\Plugin\CartExtension\RemoveRestrictedItemsPreReloadPlugin;
60
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\DefaultQuantitySalesUnitItemExpanderPlugin;
61
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\ProductMeasurementSalesUnitCartPreCheckPlugin;
62
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\QuantitySalesUnitGroupKeyItemExpanderPlugin;
63
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\QuantitySalesUnitItemExpanderPlugin;
64
use Spryker\Zed\ProductMeasurementUnit\Communication\Plugin\Cart\QuantitySalesUnitValuePostSavePlugin;
65
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\Cart\CartItemOptionPreCheckPlugin;
66
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\CartItemGroupKeyOptionPlugin;
67
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\CartItemProductOptionPlugin;
68
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\ChangeProductOptionQuantityPlugin;
69
use Spryker\Zed\ProductOptionCartConnector\Communication\Plugin\ProductOptionValuePriceExistsCartPreCheckPlugin;
70
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountAvailabilityCartPreCheckPlugin;
71
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountGroupKeyItemExpanderPlugin;
72
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountRestrictionCartPreCheckPlugin;
73
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountSalesUnitItemExpanderPlugin;
74
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\AmountSalesUnitValuePostSavePlugin;
75
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\CustomAmountPriceItemExpanderPlugin;
76
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitCartAddItemStrategyPlugin;
77
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitCartPreCheckPlugin;
78
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitCartRemoveItemStrategyPlugin;
79
use Spryker\Zed\ProductPackagingUnit\Communication\Plugin\Cart\ProductPackagingUnitItemExpanderPlugin;
80
use Spryker\Zed\ProductQuantity\Communication\Plugin\Cart\CartChangeTransferQuantityNormalizerPlugin;
81
use Spryker\Zed\ProductQuantity\Communication\Plugin\Cart\ProductQuantityRestrictionCartPreCheckPlugin;
82
use Spryker\Zed\ProductQuantity\Communication\Plugin\CartExtension\ProductQuantityRestrictionCartRemovalPreCheckPlugin;
83
use Spryker\Zed\QuoteApproval\Communication\Plugin\Cart\SanitizeQuoteApprovalQuoteLockPreResetPlugin;
84
use Spryker\Zed\QuoteRequest\Communication\Plugin\Cart\SanitizeQuoteRequestQuoteLockPreResetPlugin;
85
use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Cart\OrderAmendmentCartPreCheckPlugin;
86
use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Cart\ResetAmendmentOrderReferencePreReloadItemsPlugin;
87
use Spryker\Zed\SalesOrderThreshold\Communication\Plugin\Cart\AddThresholdMessagesCartPostReloadItemsPlugin;
88
use Spryker\Zed\SalesOrderThreshold\Communication\Plugin\Cart\SalesOrderThresholdCartTerminationPlugin;
89
use Spryker\Zed\SalesQuantity\Communication\Plugin\Cart\IsQuantitySplittableItemExpanderPlugin;
90
use Spryker\Zed\ShipmentCartConnector\Communication\Plugin\Cart\CartShipmentCartOperationPostSavePlugin;
91
use Spryker\Zed\ShipmentCartConnector\Communication\Plugin\Cart\CartShipmentPreCheckPlugin;
92
use Spryker\Zed\ShipmentCartConnector\Communication\Plugin\Cart\SanitizeCartShipmentItemExpanderPlugin;
93
94
class CartDependencyProvider extends SprykerCartDependencyProvider
95
{
96
    /**
97
     * @param \Spryker\Zed\Kernel\Container $container
98
     *
99
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\ItemExpanderPluginInterface>
100
     */
101
    protected function getExpanderPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
102
    {
103
        return [
104
            new ProductCartPlugin(),
105
            new IsQuantitySplittableItemExpanderPlugin(),
106
            new CartItemPricePlugin(),
107
            new CartItemProductOptionPlugin(),
108
            new ExpandBundleItemsPlugin(),
109
            new ExpandBundleItemsWithImagesPlugin(),
110
            new SkuGroupKeyPlugin(),
111
            new DefaultQuantitySalesUnitItemExpanderPlugin(),
112
            new QuantitySalesUnitGroupKeyItemExpanderPlugin(),
113
            new CartItemGroupKeyOptionPlugin(),
114
            new CartItemWithBundleGroupKeyExpanderPlugin(),
115
            new ProductImageItemExpanderPlugin(),
116
            new CartGroupPromotionItems(),
117
            new QuantitySalesUnitItemExpanderPlugin(),
118
            new ProductPackagingUnitItemExpanderPlugin(), #ProductPackagingUnit
119
            new AmountGroupKeyItemExpanderPlugin(), #ProductPackagingUnit
120
            new AmountSalesUnitItemExpanderPlugin(), #ProductPackagingUnit
121
            new CustomAmountPriceItemExpanderPlugin(), #ProductPackagingUnit
122
            new ConfiguredBundleQuantityPerSlotItemExpanderPlugin(),
123
            new ConfiguredBundleGroupKeyItemExpanderPlugin(),
124
            new ProductUrlItemExpanderPlugin(),
125
            new SanitizeCartShipmentItemExpanderPlugin(),
126
            new GroupKeyWithCartIdentifierItemExpanderPlugin(),
127
            new ProductConfigurationGroupKeyItemExpanderPlugin(),
128
            new RemoveQuotePaymentCartItemExpanderPlugin(),
129
        ];
130
    }
131
132
    /**
133
     * @param \Spryker\Zed\Kernel\Container $container
134
     *
135
     * @return list<\Spryker\Zed\CartExtension\Dependency\Plugin\ItemExpanderPluginInterface>
0 ignored issues
show
Bug introduced by
The type Pyz\Zed\Cart\list was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
136
     */
137
    protected function getExpanderPluginsForOrderAmendment(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
138
    {
139
        return [
140
            new ProductCartPlugin(),
141
            new IsQuantitySplittableItemExpanderPlugin(),
142
            new PriceItemExpanderPlugin(),
143
            new OriginalSalesOrderItemPriceItemExpanderPlugin(),
144
            new CartItemProductOptionPlugin(),
145
            new ExpandBundleItemsPlugin(),
146
            new ExpandBundleItemsWithImagesPlugin(),
147
            new SkuGroupKeyPlugin(),
148
            new DefaultQuantitySalesUnitItemExpanderPlugin(),
149
            new QuantitySalesUnitGroupKeyItemExpanderPlugin(),
150
            new CartItemGroupKeyOptionPlugin(),
151
            new CartItemWithBundleGroupKeyExpanderPlugin(),
152
            new ProductImageItemExpanderPlugin(),
153
            new CartGroupPromotionItems(),
154
            new QuantitySalesUnitItemExpanderPlugin(),
155
            new ProductPackagingUnitItemExpanderPlugin(), #ProductPackagingUnit
156
            new AmountGroupKeyItemExpanderPlugin(), #ProductPackagingUnit
157
            new AmountSalesUnitItemExpanderPlugin(), #ProductPackagingUnit
158
            new CustomAmountPriceItemExpanderPlugin(), #ProductPackagingUnitFeature
159
            new ConfiguredBundleQuantityPerSlotItemExpanderPlugin(),
160
            new ConfiguredBundleGroupKeyItemExpanderPlugin(),
161
            new ProductUrlItemExpanderPlugin(),
162
            new SanitizeCartShipmentItemExpanderPlugin(),
163
            new ProductConfigurationGroupKeyItemExpanderPlugin(),
164
            new GroupKeyWithCartIdentifierItemExpanderPlugin(),
165
            new RemoveQuotePaymentCartItemExpanderPlugin(),
166
        ];
167
    }
168
169
    /**
170
     * @param \Spryker\Zed\Kernel\Container $container
171
     *
172
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartChangeTransferNormalizerPluginInterface>
173
     */
174
    protected function getCartBeforePreCheckNormalizerPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
175
    {
176
        return [
177
            new CartChangeTransferQuantityNormalizerPlugin(),
178
        ];
179
    }
180
181
    /**
182
     * @param \Spryker\Zed\Kernel\Container $container
183
     *
184
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartPreCheckPluginInterface>
185
     */
186
    protected function getCartPreCheckPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
187
    {
188
        return [
189
            new ProductExistsCartPreCheckPlugin(),
190
            new CheckAvailabilityPlugin(),
191
            new CartItemPricePreCheckPlugin(),
192
            new CartBundlePricesPreCheckPlugin(),
193
            new CartItemOptionPreCheckPlugin(),
194
            new ProductOptionValuePriceExistsCartPreCheckPlugin(),
195
            new CartBundleAvailabilityPreCheckPlugin(),
196
            new CartBundleActivePreCheckPlugin(),
197
            new CartShipmentPreCheckPlugin(),
198
            new ProductQuantityRestrictionCartPreCheckPlugin(),
199
            new ProductListRestrictedItemsPreCheckPlugin(),
200
            new ProductDiscontinuedCartPreCheckPlugin(), #ProductDiscontinuedFeature
201
            new ProductPackagingUnitCartPreCheckPlugin(),
202
            new AmountAvailabilityCartPreCheckPlugin(), #ProductPackagingUnit
203
            new AmountRestrictionCartPreCheckPlugin(), #ProductPackagingUnit
204
            new ConfiguredBundleTemplateSlotCombinationPreCheckPlugin(),
205
            new ProductMeasurementSalesUnitCartPreCheckPlugin(),
206
            new DiscountPromotionCartPreCheckPlugin(),
207
        ];
208
    }
209
210
    /**
211
     * @return list<\Spryker\Zed\CartExtension\Dependency\Plugin\CartPreCheckPluginInterface>
212
     */
213
    protected function getCartPreCheckPluginsForOrderAmendment(): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
214
    {
215
        return [
216
            new CheckAvailabilityPlugin(),
217
            new CartBundlePricesPreCheckPlugin(),
218
            new CartItemOptionPreCheckPlugin(),
219
            new ProductOptionValuePriceExistsCartPreCheckPlugin(),
220
            new CartShipmentPreCheckPlugin(),
221
            new ProductQuantityRestrictionCartPreCheckPlugin(),
222
            new ProductListRestrictedItemsPreCheckPlugin(),
223
            new ProductPackagingUnitCartPreCheckPlugin(),
224
            new AmountAvailabilityCartPreCheckPlugin(), #ProductPackagingUnit
225
            new AmountRestrictionCartPreCheckPlugin(), #ProductPackagingUnit
226
            new ConfiguredBundleTemplateSlotCombinationPreCheckPlugin(),
227
            new ProductMeasurementSalesUnitCartPreCheckPlugin(),
228
            new DiscountPromotionCartPreCheckPlugin(),
229
            new OrderAmendmentProductExistsCartPreCheckPlugin(),
230
            new OrderAmendmentProductBundleAvailabilityCartPreCheckPlugin(),
231
            new OrderAmendmentProductBundleStatusCartPreCheckPlugin(),
232
            new OrderAmendmentProductDiscontinuedCartPreCheckPlugin(), #ProductDiscontinuedFeature
233
            new OrderAmendmentCartPreCheckPlugin(),
234
        ];
235
    }
236
237
    /**
238
     * @param \Spryker\Zed\Kernel\Container $container
239
     *
240
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartOperationPostSavePluginInterface>
241
     */
242
    protected function getPostSavePlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
243
    {
244
        return [
245
            new ChangeProductOptionQuantityPlugin(),
246
            new CartPostSaveUpdateBundlesPlugin(),
247
            new RemovePaymentCartPostSavePlugin(),
248
            new QuantitySalesUnitValuePostSavePlugin(),
249
            new AmountSalesUnitValuePostSavePlugin(), #ProductPackagingUnit
250
            new ConfiguredBundleQuantityPostSavePlugin(),
251
            new CartShipmentCartOperationPostSavePlugin(),
252
        ];
253
    }
254
255
    /**
256
     * @param \Spryker\Zed\Kernel\Container $container
257
     *
258
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\PreReloadItemsPluginInterface>
259
     */
260
    protected function getPreReloadPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
261
    {
262
        return [
263
            new CartConfigurableBundlePreReloadPlugin(),
264
            new CartBundleItemsPreReloadPlugin(),
265
            new RemoveInactiveItemsPreReloadPlugin(),
266
            new RemoveRestrictedItemsPreReloadPlugin(),
267
            new CleanUpItemsPreReloadPlugin(),
268
            new FilterItemsWithoutPricePlugin(),
269
            new ConfiguredBundleQuantityPerSlotPreReloadItemsPlugin(),
270
            new ResetAmendmentOrderReferencePreReloadItemsPlugin(),
271
            new ResetOriginalSalesOrderItemUnitPricesPreReloadItemsPlugin(),
272
        ];
273
    }
274
275
    /**
276
     * @param \Spryker\Zed\Kernel\Container $container
277
     *
278
     * @return list<\Spryker\Zed\CartExtension\Dependency\Plugin\PreReloadItemsPluginInterface>
279
     */
280
    protected function getPreReloadPluginsForOrderAmendment(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
281
    {
282
        return [
283
            new CartConfigurableBundlePreReloadPlugin(),
284
            new CartBundleItemsPreReloadPlugin(),
285
            new RemoveRestrictedItemsPreReloadPlugin(),
286
            new CleanUpItemsPreReloadPlugin(),
287
            new ConfiguredBundleQuantityPerSlotPreReloadItemsPlugin(),
288
            new OrderAmendmentRemoveInactiveItemsPreReloadPlugin(),
289
        ];
290
    }
291
292
    /**
293
     * @param \Spryker\Zed\Kernel\Container $container
294
     *
295
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\PostReloadItemsPluginInterface>
296
     */
297
    protected function getPostReloadItemsPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
298
    {
299
        return [
300
            new AddThresholdMessagesCartPostReloadItemsPlugin(), #SalesOrderThresholdFeature
301
        ];
302
    }
303
304
    /**
305
     * @param \Spryker\Zed\Kernel\Container $container
306
     *
307
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartTerminationPluginInterface>
308
     */
309
    protected function getTerminationPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
310
    {
311
        return [
312
            new ConfiguredBundleQuantityCartTerminationPlugin(),
313
            new SalesOrderThresholdCartTerminationPlugin(),
314
        ];
315
    }
316
317
    /**
318
     * @param \Spryker\Zed\Kernel\Container $container
319
     *
320
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartRemovalPreCheckPluginInterface>
321
     */
322
    protected function getCartRemovalPreCheckPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
323
    {
324
        return [
325
            new ProductQuantityRestrictionCartRemovalPreCheckPlugin(),
326
        ];
327
    }
328
329
    /**
330
     * @param \Spryker\Zed\Kernel\Container $container
331
     *
332
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\QuoteChangeObserverPluginInterface>
333
     */
334
    protected function getQuoteChangeObserverPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
335
    {
336
        return [
337
            new DiscountQuoteChangeObserverPlugin(),
338
            new BundleItemPriceQuoteChangeObserverPlugin(),
339
        ];
340
    }
341
342
    /**
343
     * @param \Spryker\Zed\Kernel\Container $container
344
     *
345
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartOperationStrategyPluginInterface>
346
     */
347
    protected function getCartAddItemStrategyPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
348
    {
349
        return [
350
            new ProductPackagingUnitCartAddItemStrategyPlugin(),
351
        ];
352
    }
353
354
    /**
355
     * @param \Spryker\Zed\Kernel\Container $container
356
     *
357
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\CartOperationStrategyPluginInterface>
358
     */
359
    protected function getCartRemoveItemStrategyPlugins(Container $container): array // phpcs:ignore SlevomatCodingStandard.Functions.UnusedParameter
360
    {
361
        return [
362
            new ProductPackagingUnitCartRemoveItemStrategyPlugin(),
363
        ];
364
    }
365
366
    /**
367
     * @return array<\Spryker\Zed\CartExtension\Dependency\Plugin\QuoteLockPreResetPluginInterface>
368
     */
369
    protected function getQuoteLockPreResetPlugins(): array
370
    {
371
        return [
372
            new SanitizeQuoteRequestQuoteLockPreResetPlugin(),
373
            new SanitizeQuoteApprovalQuoteLockPreResetPlugin(),
374
            new SanitizeSourcePricesQuoteLockPreResetPlugin(),
375
        ];
376
    }
377
}
378