<commit_before><?xml version="1.0" encoding="UTF-8"?>

<!--

 This file is part of the Sylius package.

 (c) <NAME>

 For the full copyright and license information, please view the LICENSE
 file that was distributed with this source code.

-->

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services
                               http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="sylius.settings_schema.general.class">Sylius\Bundle\CoreBundle\Settings\GeneralSettingsSchema</parameter>
        <parameter key="sylius.settings_schema.taxation.class">Sylius\Bundle\CoreBundle\Settings\TaxationSettingsSchema</parameter>
        <parameter key="sylius.settings_schema.security.class">Sylius\Bundle\CoreBundle\Settings\SecuritySettingsSchema</parameter>

        <parameter key="sylius.context.currency.class">Sylius\Bundle\CoreBundle\Context\CurrencyContext</parameter>
        <parameter key="sylius.context.channel.cached.class">Sylius\Component\Channel\Context\CachedPerRequestChannelContext</parameter>

        <parameter key="sylius.checkout_scenario.class">Sylius\Bundle\CoreBundle\Checkout\CheckoutProcessScenario</parameter>
        <parameter key="sylius.checkout_step.security.class">Sylius\Bundle\CoreBundle\Checkout\Step\SecurityStep</parameter>
        <parameter key="sylius.checkout_step.addressing.class">Sylius\Bundle\CoreBundle\Checkout\Step\AddressingStep</parameter>
        <parameter key="sylius.checkout_step.shipping.class">Sylius\Bundle\CoreBundle\Checkout\Step\ShippingStep</parameter>
        <parameter key="sylius.checkout_step.payment.class">Sylius\Bundle\CoreBundle\Checkout\Step\PaymentStep</parameter>
        <parameter key="sylius.checkout_step.purchase.class">Sylius\Bundle\CoreBundle\Checkout\Step\PurchaseStep</parameter>
        <parameter key="sylius.checkout_step.finalize.class">Sylius\Bundle\CoreBundle\Checkout\Step\FinalizeStep</parameter>

        <parameter key="sylius.order_processing.inventory_handler.class">Sylius\Component\Core\OrderProcessing\InventoryHandler</parameter>
        <parameter key="sylius.order_processing.state_resolver.class">Sylius\Component\Core\OrderProcessing\StateResolver</parameter>
        <parameter key="sylius.order_processing.shipment_factory.class">Sylius\Component\Core\OrderProcessing\OrderShipmentFactory</parameter>
        <parameter key="sylius.order_processing.payment_processor.class">Sylius\Component\Core\OrderProcessing\PaymentProcessor</parameter>
        <parameter key="sylius.order_processing.shipping_processor.class">Sylius\Component\Core\OrderProcessing\ShippingChargesProcessor</parameter>

        <parameter key="sylius.taxation.order_taxes_applicator.class">Sylius\Component\Core\Taxation\OrderTaxesApplicator</parameter>
        <parameter key="sylius.taxation.order_shipment_taxes_by_zone_applicator.class">Sylius\Component\Core\Taxation\OrderShipmentTaxesByZoneApplicator</parameter>
        <parameter key="sylius.taxation.order_items_taxes_by_zone_applicator.class">Sylius\Component\Core\Taxation\OrderItemsTaxesByZoneApplicator</parameter>

        <parameter key="sylius.listener.cart_blamer.class">Sylius\Bundle\CoreBundle\EventListener\CartBlamerListener</parameter>
        <parameter key="sylius.listener.order_currency.class">Sylius\Bundle\CoreBundle\EventListener\OrderCurrencyListener</parameter>
        <parameter key="sylius.listener.order_inventory.class">Sylius\Bundle\CoreBundle\EventListener\OrderInventoryListener</parameter>
        <parameter key="sylius.listener.order_item_inventory.class">Sylius\Bundle\CoreBundle\EventListener\OrderItemInventoryListener</parameter>
        <parameter key="sylius.listener.order_state.class">Sylius\Bundle\CoreBundle\EventListener\OrderStateListener</parameter>
        <parameter key="sylius.listener.order_payment.class">Sylius\Bundle\CoreBundle\EventListener\OrderPaymentListener</parameter>
        <parameter key="sylius.listener.order_channel.class">Sylius\Bundle\CoreBundle\EventListener\OrderChannelListener</parameter>
        <parameter key="sylius.listener.order_promotion.class">Sylius\Bundle\CoreBundle\EventListener\OrderPromotionListener</parameter>
        <parameter key="sylius.listener.order_pricing.class">Sylius\Bundle\CoreBundle\EventListener\OrderPricingListener</parameter>
        <parameter key="sylius.listener.order_shipping.class">Sylius\Bundle\CoreBundle\EventListener\OrderShippingListener</parameter>
        <parameter key="sylius.listener.order_taxation.class">Sylius\Bundle\CoreBundle\EventListener\OrderTaxationListener</parameter>
        <parameter key="sylius.listener.restricted_zone.class">Sylius\Bundle\CoreBundle\EventListener\RestrictedZoneListener</parameter>
        <parameter key="sylius.listener.purchase.class">Sylius\Bundle\CoreBundle\EventListener\PurchaseListener</parameter>
        <parameter key="sylius.listener.checkout_addressing.class">Sylius\Bundle\CoreBundle\EventListener\CheckoutAddressingListener</parameter>
        <parameter key="sylius.listener.insufficient_stock_exception.class">Sylius\Bundle\CoreBundle\EventListener\InsufficientStockExceptionListener</parameter>
        <parameter key="sylius.listener.image_upload.class">Sylius\Bundle\CoreBundle\EventListener\ImageUploadListener</parameter>
        <parameter key="sylius.listener.channel.class">Sylius\Bundle\CoreBundle\EventListener\ChannelDeletionListener</parameter>
        <parameter key="sylius.listener.customer_aware.class">Sylius\Bundle\CoreBundle\EventListener\CustomerAwareListener</parameter>
        <parameter key="sylius.listener.product_delete.class">Sylius\Bundle\CoreBundle\EventListener\ProductDeleteListener</parameter>
        <parameter key="sylius.listener.customer_reviews_delete.class">Sylius\Bundle\CoreBundle\EventListener\CustomerReviewsDeleteListener</parameter>

        <parameter key="sylius.active_promotions_by_channel_provider.class">Sylius\Component\Core\Provider\ActivePromotionsByChannelProvider</parameter>

        <parameter key="sylius.promotion_rule_checker.nth_order.class">Sylius\Component\Core\Promotion\Checker\NthOrderRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.customer_loyalty.class">Sylius\Component\Core\Promotion\Checker\CustomerLoyaltyRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.shipping_country.class">Sylius\Component\Core\Promotion\Checker\ShippingCountryRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.taxonomy.class">Sylius\Component\Core\Promotion\Checker\TaxonomyRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.contains_product.class">Sylius\Component\Core\Promotion\Checker\ContainsProductRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.customer_group.class">Sylius\Component\Core\Promotion\Checker\CustomerGroupRuleChecker</parameter>
        <parameter key="sylius.promotion_action.fixed_discount.class">Sylius\Component\Core\Promotion\Action\FixedDiscountAction</parameter>
        <parameter key="sylius.promotion_action.percentage_discount.class">Sylius\Component\Core\Promotion\Action\PercentageDiscountAction</parameter>
        <parameter key="sylius.promotion_action.shipping_discount.class">Sylius\Component\Core\Promotion\Action\ShippingDiscountAction</parameter>
        <parameter key="sylius.promotion_action.add_product.class">Sylius\Component\Core\Promotion\Action\AddProductAction</parameter>
        <parameter key="sylius.promotion_eligibility_checker.class">Sylius\Component\Core\Promotion\Checker\PromotionEligibilityChecker</parameter>
        <parameter key="sylius.order.purger.class">Sylius\Bundle\CoreBundle\Purger\ExpiredOrdersPurger</parameter>
        <parameter key="sylius.order.releaser.class">Sylius\Bundle\CoreBundle\Releaser\ExpiredOrdersReleaser</parameter>
        <parameter key="sylius.image_uploader.class">Sylius\Component\Core\Uploader\ImageUploader</parameter>
        <parameter key="sylius.currency_context.class">Sylius\Bundle\CoreBundle\Context\CurrencyContext</parameter>
        <parameter key="sylius.currency_provider.class">Sylius\Component\Core\Currency\ChannelAwareCurrencyProvider</parameter>
        <parameter key="sylius.channel_aware_locale_provider.class">Sylius\Bundle\CoreBundle\Locale\ChannelAwareLocaleProvider</parameter>
        <parameter key="sylius.cart_item_resolver.default.class">Sylius\Bundle\CoreBundle\Cart\ItemResolver</parameter>
        <parameter key="sylius.checker.restricted_zone.class">Sylius\Bundle\CoreBundle\Checker\RestrictedZoneChecker</parameter>
        <parameter key="sylius.price_calculator.channel_based.class">Sylius\Component\Core\Pricing\ChannelBasedCalculator</parameter>
        <parameter key="sylius.price_calculator.group_based.class">Sylius\Component\Core\Pricing\GroupBasedCalculator</parameter>
        <parameter key="sylius.price_calculator.zone_based.class">Sylius\Component\Core\Pricing\ZoneBasedCalculator</parameter>
        <parameter key="sylius.data_collector.class">Sylius\Bundle\CoreBundle\DataCollector\SyliusDataCollector</parameter>
        <parameter key="sylius.dynamic_router.class">Symfony\Cmf\Component\Routing\DynamicRouter</parameter>
        <parameter key="sylius.generator.class">Sylius\Bundle\CoreBundle\Routing\SyliusAwareGenerator</parameter>
        <parameter key="sylius.route_provider.class">Sylius\Bundle\CoreBundle\Routing\RouteProvider</parameter>
        <parameter key="sylius.a2lix_locale_provider.class">Sylius\Bundle\CoreBundle\Locale\A2lixTranslationLocaleProvider</parameter>

        <parameter key="sylius.validator.has_enabled_entity.class">Sylius\Bundle\CoreBundle\Validator\Constraints\HasEnabledEntityValidator</parameter>

        <parameter key="sylius.callback.complete_order.class">Sylius\Bundle\CoreBundle\StateMachineCallback\CompleteOrderCallback</parameter>

        <parameter key="sylius.sql_logger.purger.purge_mode" type="constant">Doctrine\Common\DataFixtures\Purger\ORMPurger::PURGE_MODE_DELETE</parameter>
        <parameter key="sylius.sql_logger.purger.class">Sylius\Bundle\CoreBundle\Purger\QueryLogger</parameter>

        <parameter key="sylius.purger.orm_purger.doctrine.class">Doctrine\Common\DataFixtures\Purger\ORMPurger</parameter>
        <parameter key="sylius.purger.orm_purger.class">Sylius\Bundle\CoreBundle\Purger\ORMPurger</parameter>

        <parameter key="sylius.provider.default_zone_provider.class">Sylius\Bundle\CoreBundle\Provider\DefaultTaxZoneProvider</parameter>
        <parameter key="sylius.distributor.order_unit_taxes.class">Sylius\Bundle\CoreBundle\Distributor\IntegerDistributor</parameter>

        <!-- Data fetchers -->
        <parameter key="sylius.form.type.data_fetcher.number_of_orders.class">Sylius\Bundle\CoreBundle\Form\Type\DataFetcher\NumberOfOrdersType</parameter>
        <parameter key="sylius.form.type.data_fetcher.sales_total.class">Sylius\Bundle\CoreBundle\Form\Type\DataFetcher\SalesTotalType</parameter>
        <parameter key="sylius.form.type.data_fetcher.user_registration.class">Sylius\Bundle\CoreBundle\Form\Type\DataFetcher\UserRegistrationType</parameter>

        <parameter key="sylius.authorization_checker.toggleable.class">Sylius\Bundle\CoreBundle\Authorization\ToggleableAuthorizationChecker</parameter>
        <parameter key="sylius.translation.locale_provider.contextual.class">Sylius\Bundle\CoreBundle\Locale\TranslationLocaleProvider</parameter>

        <parameter key="sylius.based_on_id_invoice_number_generator.class" >Sylius\Component\Core\Payment\IdBasedInvoiceNumberGenerator</parameter>

        <parameter key="sylius.form.type.product_review.class">Sylius\Bundle\CoreBundle\Form\Type\ProductReviewType</parameter>
    </parameters>

    <services>
        <!-- settings schemas -->
        <service id="sylius.settings_schema.general" class="%sylius.settings_schema.general.class%">
            <argument type="collection">
                <argument key="currency">%sylius.money.currency%</argument>
                <argument key="locale">%sylius.locale%</argument>
            </argument>
            <tag name="sylius.settings_schema" namespace="sylius_general" />
        </service>
        <service id="sylius.settings_schema.taxation" class="%sylius.settings_schema.taxation.class%">
            <argument type="service" id="sylius.repository.zone" />
            <tag name="sylius.settings_schema" namespace="sylius_taxation" />
        </service>
        <service id="sylius.settings_schema.security" class="%sylius.settings_schema.security.class%">
            <tag name="sylius.settings_schema" namespace="sylius_security" />
        </service>

        <service id="sylius.context.channel.cached" class="%sylius.context.channel.cached.class%" decorates="sylius.context.channel" public="false">
            <argument type="service" id="sylius.context.channel.cached.inner" />
            <argument type="service" id="request_stack" />
        </service>

        <!-- cart -->
        <service id="sylius.cart_item_resolver.default" class="%sylius.cart_item_resolver.default.class%">
            <argument type="service" id="sylius.cart_provider" />
            <argument type="service" id="sylius.repository.product" />
            <argument type="service" id="form.factory" />
            <argument type="service" id="sylius.availability_checker" />
            <argument type="service" id="sylius.checker.restricted_zone" />
            <argument type="service" id="sylius.price_calculator" />
            <argument type="service" id="sylius.context.channel" />
        </service>

        <!-- checker -->
        <service id="sylius.checker.restricted_zone" class="%sylius.checker.restricted_zone.class%">
            <argument type="service" id="sylius.context.customer" />
            <argument type="service" id="sylius.zone_matcher" />
        </service>

        <!-- checkout -->
        <service id="sylius.checkout_scenario" class="%sylius.checkout_scenario.class%">
            <argument type="service" id="sylius.cart_provider" />
            <tag name="sylius.process.scenario" alias="sylius_checkout" />
        </service>

        <service id="sylius.checkout_step.security" class="%sylius.checkout_step.security.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_security" />
        </service>
        <service id="sylius.checkout_step.addressing" class="%sylius.checkout_step.addressing.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_addressing" />
        </service>
        <service id="sylius.checkout_step.shipping" class="%sylius.checkout_step.shipping.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_shipping" />
        </service>
        <service id="sylius.checkout_step.payment" class="%sylius.checkout_step.payment.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_payment" />
        </service>
        <service id="sylius.checkout_step.purchase" class="%sylius.checkout_step.purchase.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_purchase" />
        </service>
        <service id="sylius.checkout_step.finalize" class="%sylius.checkout_step.finalize.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_finalize" />
        </service>

        <service id="sylius.provider.default_zone_provider" class="%sylius.provider.default_zone_provider.class%">
            <argument type="service">
                <service
                        factory-service="sylius.settings.manager"
                        factory-method="loadSettings"
                        class="Sylius\Bundle\SettingsBundle\Model\Settings"
                        >
                    <argument>sylius_taxation</argument>
                </service>
            </argument>
        </service>
        <service id="sylius.distributor.order_unit_taxes" class="%sylius.distributor.order_unit_taxes.class%" />

        <service id="sylius.invoice_number_generator" class="%sylius.based_on_id_invoice_number_generator.class%" />

        <!-- order processing -->
        <service id="sylius.order_processing.inventory_handler" class="%sylius.order_processing.inventory_handler.class%">
            <argument type="service" id="sylius.inventory_operator" />
            <argument type="service" id="sylius.factory.order_item_unit" />
            <argument type="service" id="sm.factory" />
        </service>
        <service id="sylius.order_processing.state_resolver" class="%sylius.order_processing.state_resolver.class%" />
        <service id="sylius.order_processing.shipment_factory" class="%sylius.order_processing.shipment_factory.class%">
            <argument type="service" id="sylius.factory.shipment" />
        </service>
        <service id="sylius.order_processing.payment_processor" class="%sylius.order_processing.payment_processor.class%">
            <argument type="service" id="sylius.factory.payment" />
        </service>

        <service id="sylius.taxation.order_shipment_taxes_by_zone_applicator" class="%sylius.taxation.order_shipment_taxes_by_zone_applicator.class%">
            <argument type="service" id="sylius.tax_calculator" />
            <argument type="service" id="sylius.factory.adjustment" />
            <argument type="service" id="sylius.tax_rate_resolver" />
        </service>
        <service id="sylius.taxation.order_items_taxes_by_zone_applicator" class="%sylius.taxation.order_items_taxes_by_zone_applicator.class%">
            <argument type="service" id="sylius.tax_calculator" />
            <argument type="service" id="sylius.factory.adjustment" />
            <argument type="service" id="sylius.distributor.order_unit_taxes" />
            <argument type="service" id="sylius.tax_rate_resolver" />
        </service>
        <service id="sylius.taxation.order_taxes_applicator" class="%sylius.taxation.order_taxes_applicator.class%">
            <argument type="service" id="sylius.provider.default_zone_provider" />
            <argument type="service" id="sylius.taxation.order_shipment_taxes_by_zone_applicator" />
            <argument type="service" id="sylius.taxation.order_items_taxes_by_zone_applicator" />
            <argument type="service" id="sylius.zone_matcher" />
        </service>

        <service id="sylius.order_processing.shipping_processor" class="%sylius.order_processing.shipping_processor.class%">
            <argument type="service" id="sylius.factory.adjustment" />
            <argument type="service" id="sylius.shipping_calculator" />
        </service>

        <service id="sylius.order.purger" class="%sylius.order.purger.class%">
            <argument type="service" id="sylius.manager.order" />
            <argument type="service" id="sylius.repository.order" />
            <argument type="service" id="sm.factory" />
        </service>

        <service id="sylius.order.releaser" class="%sylius.order.releaser.class%">
            <argument type="service" id="sylius.manager.order" />
            <argument type="service" id="sylius.repository.order" />
            <argument type="service" id="sm.factory" /><commit_msg>[Core] Fix IntegerDistributor service name<commit_after><?xml version="1.0" encoding="UTF-8"?>

<!--

 This file is part of the Sylius package.

 (c) <NAME>

 For the full copyright and license information, please view the LICENSE
 file that was distributed with this source code.

-->

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services
                               http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="sylius.settings_schema.general.class">Sylius\Bundle\CoreBundle\Settings\GeneralSettingsSchema</parameter>
        <parameter key="sylius.settings_schema.taxation.class">Sylius\Bundle\CoreBundle\Settings\TaxationSettingsSchema</parameter>
        <parameter key="sylius.settings_schema.security.class">Sylius\Bundle\CoreBundle\Settings\SecuritySettingsSchema</parameter>

        <parameter key="sylius.context.currency.class">Sylius\Bundle\CoreBundle\Context\CurrencyContext</parameter>
        <parameter key="sylius.context.channel.cached.class">Sylius\Component\Channel\Context\CachedPerRequestChannelContext</parameter>

        <parameter key="sylius.checkout_scenario.class">Sylius\Bundle\CoreBundle\Checkout\CheckoutProcessScenario</parameter>
        <parameter key="sylius.checkout_step.security.class">Sylius\Bundle\CoreBundle\Checkout\Step\SecurityStep</parameter>
        <parameter key="sylius.checkout_step.addressing.class">Sylius\Bundle\CoreBundle\Checkout\Step\AddressingStep</parameter>
        <parameter key="sylius.checkout_step.shipping.class">Sylius\Bundle\CoreBundle\Checkout\Step\ShippingStep</parameter>
        <parameter key="sylius.checkout_step.payment.class">Sylius\Bundle\CoreBundle\Checkout\Step\PaymentStep</parameter>
        <parameter key="sylius.checkout_step.purchase.class">Sylius\Bundle\CoreBundle\Checkout\Step\PurchaseStep</parameter>
        <parameter key="sylius.checkout_step.finalize.class">Sylius\Bundle\CoreBundle\Checkout\Step\FinalizeStep</parameter>

        <parameter key="sylius.order_processing.inventory_handler.class">Sylius\Component\Core\OrderProcessing\InventoryHandler</parameter>
        <parameter key="sylius.order_processing.state_resolver.class">Sylius\Component\Core\OrderProcessing\StateResolver</parameter>
        <parameter key="sylius.order_processing.shipment_factory.class">Sylius\Component\Core\OrderProcessing\OrderShipmentFactory</parameter>
        <parameter key="sylius.order_processing.payment_processor.class">Sylius\Component\Core\OrderProcessing\PaymentProcessor</parameter>
        <parameter key="sylius.order_processing.shipping_processor.class">Sylius\Component\Core\OrderProcessing\ShippingChargesProcessor</parameter>

        <parameter key="sylius.taxation.order_taxes_applicator.class">Sylius\Component\Core\Taxation\OrderTaxesApplicator</parameter>
        <parameter key="sylius.taxation.order_shipment_taxes_by_zone_applicator.class">Sylius\Component\Core\Taxation\OrderShipmentTaxesByZoneApplicator</parameter>
        <parameter key="sylius.taxation.order_items_taxes_by_zone_applicator.class">Sylius\Component\Core\Taxation\OrderItemsTaxesByZoneApplicator</parameter>

        <parameter key="sylius.listener.cart_blamer.class">Sylius\Bundle\CoreBundle\EventListener\CartBlamerListener</parameter>
        <parameter key="sylius.listener.order_currency.class">Sylius\Bundle\CoreBundle\EventListener\OrderCurrencyListener</parameter>
        <parameter key="sylius.listener.order_inventory.class">Sylius\Bundle\CoreBundle\EventListener\OrderInventoryListener</parameter>
        <parameter key="sylius.listener.order_item_inventory.class">Sylius\Bundle\CoreBundle\EventListener\OrderItemInventoryListener</parameter>
        <parameter key="sylius.listener.order_state.class">Sylius\Bundle\CoreBundle\EventListener\OrderStateListener</parameter>
        <parameter key="sylius.listener.order_payment.class">Sylius\Bundle\CoreBundle\EventListener\OrderPaymentListener</parameter>
        <parameter key="sylius.listener.order_channel.class">Sylius\Bundle\CoreBundle\EventListener\OrderChannelListener</parameter>
        <parameter key="sylius.listener.order_promotion.class">Sylius\Bundle\CoreBundle\EventListener\OrderPromotionListener</parameter>
        <parameter key="sylius.listener.order_pricing.class">Sylius\Bundle\CoreBundle\EventListener\OrderPricingListener</parameter>
        <parameter key="sylius.listener.order_shipping.class">Sylius\Bundle\CoreBundle\EventListener\OrderShippingListener</parameter>
        <parameter key="sylius.listener.order_taxation.class">Sylius\Bundle\CoreBundle\EventListener\OrderTaxationListener</parameter>
        <parameter key="sylius.listener.restricted_zone.class">Sylius\Bundle\CoreBundle\EventListener\RestrictedZoneListener</parameter>
        <parameter key="sylius.listener.purchase.class">Sylius\Bundle\CoreBundle\EventListener\PurchaseListener</parameter>
        <parameter key="sylius.listener.checkout_addressing.class">Sylius\Bundle\CoreBundle\EventListener\CheckoutAddressingListener</parameter>
        <parameter key="sylius.listener.insufficient_stock_exception.class">Sylius\Bundle\CoreBundle\EventListener\InsufficientStockExceptionListener</parameter>
        <parameter key="sylius.listener.image_upload.class">Sylius\Bundle\CoreBundle\EventListener\ImageUploadListener</parameter>
        <parameter key="sylius.listener.channel.class">Sylius\Bundle\CoreBundle\EventListener\ChannelDeletionListener</parameter>
        <parameter key="sylius.listener.customer_aware.class">Sylius\Bundle\CoreBundle\EventListener\CustomerAwareListener</parameter>
        <parameter key="sylius.listener.product_delete.class">Sylius\Bundle\CoreBundle\EventListener\ProductDeleteListener</parameter>
        <parameter key="sylius.listener.customer_reviews_delete.class">Sylius\Bundle\CoreBundle\EventListener\CustomerReviewsDeleteListener</parameter>

        <parameter key="sylius.active_promotions_by_channel_provider.class">Sylius\Component\Core\Provider\ActivePromotionsByChannelProvider</parameter>

        <parameter key="sylius.promotion_rule_checker.nth_order.class">Sylius\Component\Core\Promotion\Checker\NthOrderRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.customer_loyalty.class">Sylius\Component\Core\Promotion\Checker\CustomerLoyaltyRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.shipping_country.class">Sylius\Component\Core\Promotion\Checker\ShippingCountryRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.taxonomy.class">Sylius\Component\Core\Promotion\Checker\TaxonomyRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.contains_product.class">Sylius\Component\Core\Promotion\Checker\ContainsProductRuleChecker</parameter>
        <parameter key="sylius.promotion_rule_checker.customer_group.class">Sylius\Component\Core\Promotion\Checker\CustomerGroupRuleChecker</parameter>
        <parameter key="sylius.promotion_action.fixed_discount.class">Sylius\Component\Core\Promotion\Action\FixedDiscountAction</parameter>
        <parameter key="sylius.promotion_action.percentage_discount.class">Sylius\Component\Core\Promotion\Action\PercentageDiscountAction</parameter>
        <parameter key="sylius.promotion_action.shipping_discount.class">Sylius\Component\Core\Promotion\Action\ShippingDiscountAction</parameter>
        <parameter key="sylius.promotion_action.add_product.class">Sylius\Component\Core\Promotion\Action\AddProductAction</parameter>
        <parameter key="sylius.promotion_eligibility_checker.class">Sylius\Component\Core\Promotion\Checker\PromotionEligibilityChecker</parameter>
        <parameter key="sylius.order.purger.class">Sylius\Bundle\CoreBundle\Purger\ExpiredOrdersPurger</parameter>
        <parameter key="sylius.order.releaser.class">Sylius\Bundle\CoreBundle\Releaser\ExpiredOrdersReleaser</parameter>
        <parameter key="sylius.image_uploader.class">Sylius\Component\Core\Uploader\ImageUploader</parameter>
        <parameter key="sylius.currency_context.class">Sylius\Bundle\CoreBundle\Context\CurrencyContext</parameter>
        <parameter key="sylius.currency_provider.class">Sylius\Component\Core\Currency\ChannelAwareCurrencyProvider</parameter>
        <parameter key="sylius.channel_aware_locale_provider.class">Sylius\Bundle\CoreBundle\Locale\ChannelAwareLocaleProvider</parameter>
        <parameter key="sylius.cart_item_resolver.default.class">Sylius\Bundle\CoreBundle\Cart\ItemResolver</parameter>
        <parameter key="sylius.checker.restricted_zone.class">Sylius\Bundle\CoreBundle\Checker\RestrictedZoneChecker</parameter>
        <parameter key="sylius.price_calculator.channel_based.class">Sylius\Component\Core\Pricing\ChannelBasedCalculator</parameter>
        <parameter key="sylius.price_calculator.group_based.class">Sylius\Component\Core\Pricing\GroupBasedCalculator</parameter>
        <parameter key="sylius.price_calculator.zone_based.class">Sylius\Component\Core\Pricing\ZoneBasedCalculator</parameter>
        <parameter key="sylius.data_collector.class">Sylius\Bundle\CoreBundle\DataCollector\SyliusDataCollector</parameter>
        <parameter key="sylius.dynamic_router.class">Symfony\Cmf\Component\Routing\DynamicRouter</parameter>
        <parameter key="sylius.generator.class">Sylius\Bundle\CoreBundle\Routing\SyliusAwareGenerator</parameter>
        <parameter key="sylius.route_provider.class">Sylius\Bundle\CoreBundle\Routing\RouteProvider</parameter>
        <parameter key="sylius.a2lix_locale_provider.class">Sylius\Bundle\CoreBundle\Locale\A2lixTranslationLocaleProvider</parameter>

        <parameter key="sylius.validator.has_enabled_entity.class">Sylius\Bundle\CoreBundle\Validator\Constraints\HasEnabledEntityValidator</parameter>

        <parameter key="sylius.callback.complete_order.class">Sylius\Bundle\CoreBundle\StateMachineCallback\CompleteOrderCallback</parameter>

        <parameter key="sylius.sql_logger.purger.purge_mode" type="constant">Doctrine\Common\DataFixtures\Purger\ORMPurger::PURGE_MODE_DELETE</parameter>
        <parameter key="sylius.sql_logger.purger.class">Sylius\Bundle\CoreBundle\Purger\QueryLogger</parameter>

        <parameter key="sylius.purger.orm_purger.doctrine.class">Doctrine\Common\DataFixtures\Purger\ORMPurger</parameter>
        <parameter key="sylius.purger.orm_purger.class">Sylius\Bundle\CoreBundle\Purger\ORMPurger</parameter>

        <parameter key="sylius.provider.default_zone_provider.class">Sylius\Bundle\CoreBundle\Provider\DefaultTaxZoneProvider</parameter>
        <parameter key="sylius.integer_distributor.class">Sylius\Bundle\CoreBundle\Distributor\IntegerDistributor</parameter>

        <!-- Data fetchers -->
        <parameter key="sylius.form.type.data_fetcher.number_of_orders.class">Sylius\Bundle\CoreBundle\Form\Type\DataFetcher\NumberOfOrdersType</parameter>
        <parameter key="sylius.form.type.data_fetcher.sales_total.class">Sylius\Bundle\CoreBundle\Form\Type\DataFetcher\SalesTotalType</parameter>
        <parameter key="sylius.form.type.data_fetcher.user_registration.class">Sylius\Bundle\CoreBundle\Form\Type\DataFetcher\UserRegistrationType</parameter>

        <parameter key="sylius.authorization_checker.toggleable.class">Sylius\Bundle\CoreBundle\Authorization\ToggleableAuthorizationChecker</parameter>
        <parameter key="sylius.translation.locale_provider.contextual.class">Sylius\Bundle\CoreBundle\Locale\TranslationLocaleProvider</parameter>

        <parameter key="sylius.based_on_id_invoice_number_generator.class" >Sylius\Component\Core\Payment\IdBasedInvoiceNumberGenerator</parameter>

        <parameter key="sylius.form.type.product_review.class">Sylius\Bundle\CoreBundle\Form\Type\ProductReviewType</parameter>
    </parameters>

    <services>
        <!-- settings schemas -->
        <service id="sylius.settings_schema.general" class="%sylius.settings_schema.general.class%">
            <argument type="collection">
                <argument key="currency">%sylius.money.currency%</argument>
                <argument key="locale">%sylius.locale%</argument>
            </argument>
            <tag name="sylius.settings_schema" namespace="sylius_general" />
        </service>
        <service id="sylius.settings_schema.taxation" class="%sylius.settings_schema.taxation.class%">
            <argument type="service" id="sylius.repository.zone" />
            <tag name="sylius.settings_schema" namespace="sylius_taxation" />
        </service>
        <service id="sylius.settings_schema.security" class="%sylius.settings_schema.security.class%">
            <tag name="sylius.settings_schema" namespace="sylius_security" />
        </service>

        <service id="sylius.context.channel.cached" class="%sylius.context.channel.cached.class%" decorates="sylius.context.channel" public="false">
            <argument type="service" id="sylius.context.channel.cached.inner" />
            <argument type="service" id="request_stack" />
        </service>

        <!-- cart -->
        <service id="sylius.cart_item_resolver.default" class="%sylius.cart_item_resolver.default.class%">
            <argument type="service" id="sylius.cart_provider" />
            <argument type="service" id="sylius.repository.product" />
            <argument type="service" id="form.factory" />
            <argument type="service" id="sylius.availability_checker" />
            <argument type="service" id="sylius.checker.restricted_zone" />
            <argument type="service" id="sylius.price_calculator" />
            <argument type="service" id="sylius.context.channel" />
        </service>

        <!-- checker -->
        <service id="sylius.checker.restricted_zone" class="%sylius.checker.restricted_zone.class%">
            <argument type="service" id="sylius.context.customer" />
            <argument type="service" id="sylius.zone_matcher" />
        </service>

        <!-- checkout -->
        <service id="sylius.checkout_scenario" class="%sylius.checkout_scenario.class%">
            <argument type="service" id="sylius.cart_provider" />
            <tag name="sylius.process.scenario" alias="sylius_checkout" />
        </service>

        <service id="sylius.checkout_step.security" class="%sylius.checkout_step.security.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_security" />
        </service>
        <service id="sylius.checkout_step.addressing" class="%sylius.checkout_step.addressing.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_addressing" />
        </service>
        <service id="sylius.checkout_step.shipping" class="%sylius.checkout_step.shipping.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_shipping" />
        </service>
        <service id="sylius.checkout_step.payment" class="%sylius.checkout_step.payment.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_payment" />
        </service>
        <service id="sylius.checkout_step.purchase" class="%sylius.checkout_step.purchase.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_purchase" />
        </service>
        <service id="sylius.checkout_step.finalize" class="%sylius.checkout_step.finalize.class%">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
            <tag name="sylius.process.step" alias="sylius_checkout_finalize" />
        </service>

        <service id="sylius.provider.default_zone_provider" class="%sylius.provider.default_zone_provider.class%">
            <argument type="service">
                <service
                        factory-service="sylius.settings.manager"
                        factory-method="loadSettings"
                        class="Sylius\Bundle\SettingsBundle\Model\Settings"
                        >
                    <argument>sylius_taxation</argument>
                </service>
            </argument>
        </service>
        <service id="sylius.integer_distributor" class="%sylius.integer_distributor.class%" />

        <service id="sylius.invoice_number_generator" class="%sylius.based_on_id_invoice_number_generator.class%" />

        <!-- order processing -->
        <service id="sylius.order_processing.inventory_handler" class="%sylius.order_processing.inventory_handler.class%">
            <argument type="service" id="sylius.inventory_operator" />
            <argument type="service" id="sylius.factory.order_item_unit" />
            <argument type="service" id="sm.factory" />
        </service>
        <service id="sylius.order_processing.state_resolver" class="%sylius.order_processing.state_resolver.class%" />
        <service id="sylius.order_processing.shipment_factory" class="%sylius.order_processing.shipment_factory.class%">
            <argument type="service" id="sylius.factory.shipment" />
        </service>
        <service id="sylius.order_processing.payment_processor" class="%sylius.order_processing.payment_processor.class%">
            <argument type="service" id="sylius.factory.payment" />
        </service>

        <service id="sylius.taxation.order_shipment_taxes_by_zone_applicator" class="%sylius.taxation.order_shipment_taxes_by_zone_applicator.class%">
            <argument type="service" id="sylius.tax_calculator" />
            <argument type="service" id="sylius.factory.adjustment" />
            <argument type="service" id="sylius.tax_rate_resolver" />
        </service>
        <service id="sylius.taxation.order_items_taxes_by_zone_applicator" class="%sylius.taxation.order_items_taxes_by_zone_applicator.class%">
            <argument type="service" id="sylius.tax_calculator" />
            <argument type="service" id="sylius.factory.adjustment" />
            <argument type="service" id="sylius.integer_distributor" />
            <argument type="service" id="sylius.tax_rate_resolver" />
        </service>
        <service id="sylius.taxation.order_taxes_applicator" class="%sylius.taxation.order_taxes_applicator.class%">
            <argument type="service" id="sylius.provider.default_zone_provider" />
            <argument type="service" id="sylius.taxation.order_shipment_taxes_by_zone_applicator" />
            <argument type="service" id="sylius.taxation.order_items_taxes_by_zone_applicator" />
            <argument type="service" id="sylius.zone_matcher" />
        </service>

        <service id="sylius.order_processing.shipping_processor" class="%sylius.order_processing.shipping_processor.class%">
            <argument type="service" id="sylius.factory.adjustment" />
            <argument type="service" id="sylius.shipping_calculator" />
        </service>

        <service id="sylius.order.purger" class="%sylius.order.purger.class%">
            <argument type="service" id="sylius.manager.order" />
            <argument type="service" id="sylius.repository.order" />
            <argument type="service" id="sm.factory" />
        </service>

        <service id="sylius.order.releaser" class="%sylius.order.releaser.class%">
            <argument type="service" id="sylius.manager.order" />
            <argument type="service" id="sylius.repository.order" />
            <argument type="service" id="sm.factory" />
{'fraction_non_alphanumeric': 0.12558104849735266, 'fraction_numerical': 0.0005965845534316041, 'mean_word_length': 4.1983460395399925, 'pattern_counts': {'":': 0, '<': 611, '<?xml version=': 2, '>': 611, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1561609', 'n_tokens_mistral': 11972, 'n_tokens_neox': 11800, 'n_words': 1028}