diff --git a/config/integration/refund-plugin/services.php b/config/integration/refund-plugin/services.php
index df1e9573b..5d0d2fac0 100644
--- a/config/integration/refund-plugin/services.php
+++ b/config/integration/refund-plugin/services.php
@@ -6,6 +6,6 @@
return static function (ContainerConfigurator $container): void {
if (class_exists(\Sylius\RefundPlugin\SyliusRefundPlugin::class)) {
- $container->import('services/**/*.xml');
+ $container->import('services/**/*.php');
}
};
diff --git a/config/services.php b/config/services.php
new file mode 100644
index 000000000..0afc0470c
--- /dev/null
+++ b/config/services.php
@@ -0,0 +1,27 @@
+services();
+
+ $container->import('services/**/*.php');
+ $container->import('integration/refund-plugin/services.php');
+
+
+ $services->set('sylius_mollie.refund.guard.mollie_payment_refund', PaymentRefundGuard::class)
+ ->public()
+ ->args(['%kernel.bundles%']);
+
+ $services->alias(PaymentRefundGuardInterface::class, 'sylius_mollie.refund.guard.mollie_payment_refund');
+
+ $services->set('sylius_mollie.refund.guard.order_payment_refund', OrderPaymentRefundGuard::class)
+ ->public();
+
+ $services->alias(OrderPaymentRefundGuardInterface::class, 'sylius_mollie.refund.guard.order_payment_refund');
+};
diff --git a/config/services.xml b/config/services.xml
deleted file mode 100644
index 7798be7bf..000000000
--- a/config/services.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- %kernel.bundles%
-
-
-
-
-
-
-
diff --git a/config/services/api.php b/config/services/api.php
new file mode 100644
index 000000000..fb8f305a4
--- /dev/null
+++ b/config/services/api.php
@@ -0,0 +1,54 @@
+services();
+
+ $services->set('sylius_mollie.api.payment_configuration_provider.mollie', MolliePaymentConfigurationProvider::class)
+ ->args([service('router')])
+ ->tag('sylius.api.payment_method_handler');
+
+ $services->set('sylius_mollie.api.controller.get_mollie_methods', GetMollieMethodsAction::class)
+ ->public()
+ ->args([
+ service('sylius_mollie.repository.query.order.by_token_for_available_methods'),
+ service('sylius_mollie.payum.checker.mollie_gateway_factory'),
+ service('sylius_mollie.resolver.payment_methods'),
+ service('liip_imagine.cache.manager'),
+ ]);
+
+ $services->set('sylius_mollie.api.controller.select_mollie_method', SelectMollieMethodAction::class)
+ ->public()
+ ->args([
+ service('sylius.repository.order'),
+ service('doctrine.orm.entity_manager'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius_mollie.payum.checker.mollie_gateway_factory'),
+ service('sylius_mollie.repository.mollie_customer'),
+ service('sylius_mollie.custom_factory.mollie_subscription'),
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('sylius_mollie.creator.payment_data'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ]);
+
+ $services->set('sylius_mollie.api.controller.update_payment_status', UpdatePaymentStatusAction::class)
+ ->public()
+ ->args([
+ service('sylius.repository.order'),
+ service('doctrine.orm.entity_manager'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius_abstraction.state_machine'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ]);
+
+ $services->set('sylius_mollie.api.open_api.mollie_documentation_modifier', MollieDocumentationModifier::class)
+ ->args(['%sylius.security.api_shop_route%'])
+ ->tag('sylius.open_api.modifier');
+};
diff --git a/config/services/api.xml b/config/services/api.xml
deleted file mode 100644
index 7420eccda..000000000
--- a/config/services/api.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %sylius.security.api_shop_route%
-
-
-
-
-
diff --git a/config/services/apple_pay/checker.php b/config/services/apple_pay/checker.php
new file mode 100644
index 000000000..ef0763a20
--- /dev/null
+++ b/config/services/apple_pay/checker.php
@@ -0,0 +1,19 @@
+services();
+
+ $services->set('sylius_mollie.apple_pay.checker.apple_pay_enabled', ApplePayEnabledChecker::class)
+ ->public()
+ ->args([
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius.payment_methods_resolver.default')->nullOnInvalid(),
+ ]);
+
+ $services->alias(ApplePayEnabledCheckerInterface::class, 'sylius_mollie.apple_pay.checker.apple_pay_enabled');
+};
diff --git a/config/services/apple_pay/checker.xml b/config/services/apple_pay/checker.xml
deleted file mode 100644
index 81cb411dc..000000000
--- a/config/services/apple_pay/checker.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/apple_pay/provider.php b/config/services/apple_pay/provider.php
new file mode 100644
index 000000000..963bfa0bc
--- /dev/null
+++ b/config/services/apple_pay/provider.php
@@ -0,0 +1,44 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.apple_pay.provider.apple_pay_direct', ApplePayDirectProvider::class)
+ ->args([
+ service('sylius_mollie.apple_pay.resolver.address'),
+ service('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'),
+ service('sylius_mollie.provider.customer'),
+ service('sylius_mollie.apple_pay.provider.apple_pay_direct_payment'),
+ ]);
+
+ $services->alias(ApplePayDirectProviderInterface::class, 'sylius_mollie.apple_pay.provider.apple_pay_direct');
+
+ $services->set('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct', OrderPaymentApplePayDirectProvider::class)
+ ->args([
+ service('sylius.custom_factory.payment'),
+ service('sylius_abstraction.state_machine'),
+ service('sylius.repository.payment_method'),
+ service('sylius.repository.gateway_config'),
+ service('sylius_mollie.payum.provider.payment_token'),
+ service('payum'),
+ ]);
+
+ $services->alias(OrderPaymentApplePayDirectProviderInterface::class, 'sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct');
+
+ $services->set('sylius_mollie.apple_pay.provider.apple_pay_direct_payment', ApplePayDirectPaymentProvider::class)
+ ->args([service('sylius_mollie.apple_pay.resolver.apple_pay_direct_payment_type')]);
+
+ $services->alias(ApplePayDirectPaymentProviderInterface::class, 'sylius_mollie.apple_pay.provider.apple_pay_direct_payment');
+};
diff --git a/config/services/apple_pay/provider.xml b/config/services/apple_pay/provider.xml
deleted file mode 100644
index 1d5a3aaf9..000000000
--- a/config/services/apple_pay/provider.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/apple_pay/resolver.php b/config/services/apple_pay/resolver.php
new file mode 100644
index 000000000..a91be3d5f
--- /dev/null
+++ b/config/services/apple_pay/resolver.php
@@ -0,0 +1,59 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.apple_pay.resolver.address', AddressResolver::class)
+ ->args([
+ service('sylius_mollie.apple_pay.validator.apple_pay_address'),
+ service('sylius.repository.customer'),
+ service('sylius.custom_factory.address'),
+ service('sylius.factory.customer'),
+ ]);
+
+ $services->alias(AddressResolverInterface::class, 'sylius_mollie.apple_pay.resolver.address');
+
+ $services->set('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_order_payment', ApplePayDirectApiOrderPaymentResolver::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius_mollie.converter.order'),
+ service('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'),
+ service('sylius_mollie.resolver.payment_locale'),
+ service('sylius_mollie.provider.divisor'),
+ ]);
+
+ $services->alias(ApplePayDirectApiOrderPaymentResolverInterface::class, 'sylius_mollie.apple_pay.resolver.apple_pay_direct_api_order_payment');
+
+ $services->set('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_payment', ApplePayDirectApiPaymentResolver::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius_mollie.apple_pay.provider.order_payment_apple_pay_direct'),
+ ]);
+
+ $services->alias(ApplePayDirectApiPaymentResolverInterface::class, 'sylius_mollie.apple_pay.resolver.apple_pay_direct_api_payment');
+
+ $services->set('sylius_mollie.apple_pay.resolver.apple_pay_direct_payment_type', ApplePayDirectPaymentTypeResolver::class)
+ ->args([
+ service('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_payment'),
+ service('sylius_mollie.apple_pay.resolver.apple_pay_direct_api_order_payment'),
+ service('sylius_mollie.converter.int_to_string'),
+ ]);
+
+ $services->alias(ApplePayDirectPaymentTypeResolverInterface::class, 'sylius_mollie.apple_pay.resolver.apple_pay_direct_payment_type');
+};
diff --git a/config/services/apple_pay/resolver.xml b/config/services/apple_pay/resolver.xml
deleted file mode 100644
index 76e57cc63..000000000
--- a/config/services/apple_pay/resolver.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/apple_pay/validator.php b/config/services/apple_pay/validator.php
new file mode 100644
index 000000000..5ed822836
--- /dev/null
+++ b/config/services/apple_pay/validator.php
@@ -0,0 +1,17 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.apple_pay.validator.apple_pay_address', ApplePayAddressValidator::class);
+
+ $services->alias(ApplePayAddressValidatorInterface::class, 'sylius_mollie.apple_pay.validator.apple_pay_address');
+};
diff --git a/config/services/apple_pay/validator.xml b/config/services/apple_pay/validator.xml
deleted file mode 100644
index 2a1154ce3..000000000
--- a/config/services/apple_pay/validator.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/calculator.php b/config/services/calculator.php
new file mode 100644
index 000000000..45c071a5f
--- /dev/null
+++ b/config/services/calculator.php
@@ -0,0 +1,59 @@
+services();
+
+ $services->set('sylius_mollie.calculator.calculate_tax_amount', CalculateTaxAmount::class)
+ ->public()
+ ->args([service('sylius_mollie.converter.int_to_string')]);
+
+ $services->alias(CalculateTaxAmountInterface::class, 'sylius_mollie.calculator.calculate_tax_amount');
+
+ $services->set('sylius_mollie.calculator.payment_fee.fixed_amount', FixedAmountCalculator::class)
+ ->args([
+ service('sylius.factory.adjustment'),
+ service('sylius_mollie.provider.divisor'),
+ ])
+ ->tag('sylius_mollie.payment_fee.calculator');
+
+ $services->set('sylius_mollie.calculator.payment_fee.percentage', PercentageCalculator::class)
+ ->args([
+ service('sylius.factory.adjustment'),
+ service('sylius_mollie.provider.divisor'),
+ ])
+ ->tag('sylius_mollie.payment_fee.calculator');
+
+ $services->set('sylius_mollie.calculator.payment_fee.fixed_amount_and_percentage', FixedAmountAndPercentageCalculator::class)
+ ->args([
+ service('sylius.factory.adjustment'),
+ service('sylius_mollie.calculator.payment_fee.percentage'),
+ service('sylius_mollie.calculator.payment_fee.fixed_amount'),
+ service('sylius_mollie.provider.divisor'),
+ ])
+ ->tag('sylius_mollie.payment_fee.calculator');
+
+ $services->set('sylius_mollie.calculator.payment_fee.no_fee', NoFeeCalculator::class)
+ ->tag('sylius_mollie.payment_fee.calculator');
+
+ $services->set('sylius_mollie.calculator.payment_fee.composite', CompositePaymentSurchargeCalculator::class)
+ ->args([tagged_iterator('sylius_mollie.payment_fee.calculator')]);
+
+ $services->alias(PaymentSurchargeCalculatorInterface::class, 'sylius_mollie.calculator.payment_fee.composite');
+
+ $services->set('sylius_mollie.calculator.clearer.payment_fee_adjustment', PaymentFeeAdjustmentClearer::class);
+
+ $services->alias(PaymentFeeAdjustmentClearerInterface::class, 'sylius_mollie.calculator.clearer.payment_fee_adjustment');
+};
diff --git a/config/services/calculator.xml b/config/services/calculator.xml
deleted file mode 100644
index 2bad6444a..000000000
--- a/config/services/calculator.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/cli.php b/config/services/cli.php
new file mode 100644
index 000000000..386c09bdd
--- /dev/null
+++ b/config/services/cli.php
@@ -0,0 +1,31 @@
+services();
+
+ $services->set('sylius_mollie.console.command.send_abandoned_payment_link', SendAbandonedPaymentLink::class)
+ ->args([service('sylius_mollie.creator.abandoned_payment_link')])
+ ->tag('console.command');
+
+ $services->set('sylius_mollie.console.command.subscription.begin_processing', BeginProcessingSubscriptions::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('sylius_abstraction.state_machine'),
+ ])
+ ->tag('console.command');
+
+ $services->set('sylius_mollie.console.command.subscription.process', ProcessSubscriptions::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('sylius_abstraction.state_machine'),
+ service('sylius_mollie.subscription.processor.subscription'),
+ service('router'),
+ ])
+ ->tag('console.command');
+};
diff --git a/config/services/cli.xml b/config/services/cli.xml
deleted file mode 100644
index 618ff9e81..000000000
--- a/config/services/cli.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/client.php b/config/services/client.php
new file mode 100644
index 000000000..4a2af3508
--- /dev/null
+++ b/config/services/client.php
@@ -0,0 +1,21 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.client.mollie_api', MollieApiClient::class);
+
+ $services->set('sylius_mollie.client.parser.api_exception', ApiExceptionParser::class)
+ ->public();
+
+ $services->alias(ApiExceptionParserInterface::class, 'sylius_mollie.client.parser.api_exception');
+};
diff --git a/config/services/client.xml b/config/services/client.xml
deleted file mode 100644
index eb4806c39..000000000
--- a/config/services/client.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/cloner.php b/config/services/cloner.php
new file mode 100644
index 000000000..b57fea76e
--- /dev/null
+++ b/config/services/cloner.php
@@ -0,0 +1,45 @@
+services();
+
+ $services->set('sylius_mollie.cloner.order_item', OrderItemCloner::class)
+ ->args([
+ service('sylius.factory.order_item'),
+ service('sylius.factory.order_item_unit'),
+ ]);
+
+ $services->alias(OrderItemClonerInterface::class, 'sylius_mollie.cloner.order_item');
+
+ $services->set('sylius_mollie.cloner.adjustment', AdjustmentCloner::class)
+ ->args([service('sylius.factory.adjustment')]);
+
+ $services->alias(AdjustmentClonerInterface::class, 'sylius_mollie.cloner.adjustment');
+
+ $services->set('sylius_mollie.cloner.shipment', ShipmentCloner::class)
+ ->args([service('sylius.factory.shipment')]);
+
+ $services->alias(ShipmentClonerInterface::class, 'sylius_mollie.cloner.shipment');
+
+ $services->set('sylius_mollie.cloner.subscription_order', SubscriptionOrderCloner::class)
+ ->args([
+ service('sylius_mollie.cloner.order_item'),
+ service('sylius.factory.order'),
+ service('sylius.random_generator'),
+ service('sylius_mollie.cloner.adjustment'),
+ service('sylius_mollie.cloner.shipment'),
+ ]);
+
+ $services->alias(SubscriptionOrderClonerInterface::class, 'sylius_mollie.cloner.subscription_order');
+};
diff --git a/config/services/cloner.xml b/config/services/cloner.xml
deleted file mode 100644
index fec614eaf..000000000
--- a/config/services/cloner.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/context.php b/config/services/context.php
new file mode 100644
index 000000000..7a36adb97
--- /dev/null
+++ b/config/services/context.php
@@ -0,0 +1,16 @@
+services();
+
+ $services->set('sylius_mollie.context.admin_user', AdminUserContext::class)
+ ->public()
+ ->args([service('security.token_storage')]);
+
+ $services->alias(AdminUserContextInterface::class, 'sylius_mollie.context.admin_user');
+};
diff --git a/config/services/context.xml b/config/services/context.xml
deleted file mode 100644
index 2249122df..000000000
--- a/config/services/context.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/controller/admin.php b/config/services/controller/admin.php
new file mode 100644
index 000000000..4f7aafc7c
--- /dev/null
+++ b/config/services/controller/admin.php
@@ -0,0 +1,76 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.controller.admin.refund', RefundAction::class)
+ ->args([
+ service('sylius.repository.payment'),
+ service('payum'),
+ service('request_stack'),
+ service('sylius_abstraction.state_machine'),
+ service('sylius.manager.payment'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ]);
+
+ $services->set('sylius_mollie.controller.admin.methods', MethodsAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('request_stack'),
+ service('sylius_mollie.updater.mollie_methods'),
+ service('sylius.repository.gateway_config'),
+ ]);
+
+ $services->set('sylius_mollie.controller.admin.delete_payment_method_image', DeletePaymentMethodImageAction::class)
+ ->args([
+ service('sylius_mollie.uploader.payment_method_logo'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius.manager.gateway_config'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ]);
+
+ $services->set('sylius_mollie.controller.admin.generate_payment_link', GeneratePaymentLinkAction::class)
+ ->args([
+ service('sylius.repository.order'),
+ service('twig'),
+ service('request_stack'),
+ service('router'),
+ service('form.factory'),
+ service('sylius_mollie.resolver.payment_link'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ]);
+
+ $services->alias('sylius_mollie.controller.admin.mollie_subscription', 'sylius_mollie.controller.mollie_subscription');
+
+ $services->set('sylius_mollie.controller.admin.test_api_keys', TestApiKeysAction::class)
+ ->args([
+ service('sylius_mollie.resolver.api_keys_test'),
+ service('twig'),
+ ]);
+
+ $services->set('sylius_mollie.controller.admin.change_position_payment_method', ChangePositionPaymentMethodAction::class)
+ ->args([service('sylius_mollie.updater.mollie_payment_method_position')]);
+
+ $services->set('sylius_mollie.controller.admin.onboarding_wizard.status', StatusAction::class)
+ ->args([service('sylius_mollie.context.admin_user')]);
+
+ $services->set('sylius_mollie.controller.admin.onboarding_wizard.completed', CompletedAction::class)
+ ->args([
+ service('sylius_mollie.context.admin_user'),
+ service('doctrine.orm.entity_manager'),
+ ]);
+};
diff --git a/config/services/controller/admin.xml b/config/services/controller/admin.xml
deleted file mode 100644
index 17da54287..000000000
--- a/config/services/controller/admin.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/controller/shop.php b/config/services/controller/shop.php
new file mode 100644
index 000000000..86d139dfe
--- /dev/null
+++ b/config/services/controller/shop.php
@@ -0,0 +1,89 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.controller.shop.payment_fee_calculate', PaymentFeeCalculateAction::class)
+ ->args([
+ service('sylius_mollie.calculator.payment_fee.composite'),
+ service('sylius.context.cart'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius.aggregator.adjustments_by_label'),
+ service('sylius_mollie.converter.price_to_amount'),
+ service('twig'),
+ service('sylius_mollie.calculator.clearer.payment_fee_adjustment'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.no_payment_fee_calculate', NoPaymentFeeCalculateAction::class)
+ ->args([
+ service('sylius.context.cart'),
+ service('sylius_mollie.converter.price_to_amount'),
+ service('sylius_mollie.calculator.clearer.payment_fee_adjustment'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.qr_code', QrCodeAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius.context.cart'),
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius.repository.order'),
+ service('router'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius_mollie.converter.int_to_string'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.credit_card_translation', CreditCardTranslationController::class)
+ ->args([service('translator')]);
+
+ $services->set('sylius_mollie.controller.shop.payum', PayumController::class)
+ ->args([
+ service('payum'),
+ service('sylius.repository.order'),
+ service('router'),
+ service('sylius_abstraction.state_machine'),
+ service('doctrine.orm.default_entity_manager'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.payment_webhook', PaymentWebhookController::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius.repository.order'),
+ service('sylius.repository.payment'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_abstraction.state_machine'),
+ service('doctrine.orm.default_entity_manager'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.page_redirect', PageRedirectController::class)
+ ->args([
+ service('router'),
+ service('sylius.repository.order'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.apple_pay_validation', ApplePayValidationAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius_mollie.apple_pay.checker.apple_pay_enabled'),
+ ]);
+
+ $services->set('sylius_mollie.controller.shop.order', OrderController::class)
+ ->parent('sylius.controller.order');
+};
diff --git a/config/services/controller/shop.xml b/config/services/controller/shop.xml
deleted file mode 100644
index 5d8cb8cfe..000000000
--- a/config/services/controller/shop.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/converter.php b/config/services/converter.php
new file mode 100644
index 000000000..a4d2ab38c
--- /dev/null
+++ b/config/services/converter.php
@@ -0,0 +1,43 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.converter.int_to_string', IntToStringConverter::class)
+ ->args([service('sylius_mollie.provider.divisor')]);
+
+ $services->alias(IntToStringConverterInterface::class, 'sylius_mollie.converter.int_to_string');
+
+ $services->set('sylius_mollie.converter.order', OrderConverter::class)
+ ->args([
+ service('sylius_mollie.converter.int_to_string'),
+ service('sylius_mollie.calculator.calculate_tax_amount'),
+ service('sylius_mollie.resolver.meal_voucher'),
+ service('sylius.resolver.tax_rate'),
+ service('sylius.matcher.zone'),
+ service('request_stack'),
+ ]);
+
+ $services->alias(OrderConverterInterface::class, 'sylius_mollie.converter.order');
+
+ $services->set('sylius_mollie.converter.price_to_amount', PriceToAmountConverter::class)
+ ->args([
+ service('sylius.context.currency'),
+ service('sylius.context.locale'),
+ service('sylius.formatter.money'),
+ ]);
+
+ $services->alias(PriceToAmountConverterInterface::class, 'sylius_mollie.converter.price_to_amount');
+};
diff --git a/config/services/converter.xml b/config/services/converter.xml
deleted file mode 100644
index 1038af61b..000000000
--- a/config/services/converter.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/creator.php b/config/services/creator.php
new file mode 100644
index 000000000..cb1e8fa6c
--- /dev/null
+++ b/config/services/creator.php
@@ -0,0 +1,61 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.creator.abandoned_payment_link', AbandonedPaymentLinkCreator::class)
+ ->args([
+ service('sylius_mollie.resolver.payment_link'),
+ service('sylius_mollie.repository.query.order.abandoned'),
+ service('sylius_mollie.repository.query.payment_method.mollie_based'),
+ service('sylius.repository.channel'),
+ service('doctrine.orm.entity_manager'),
+ ]);
+
+ $services->alias(AbandonedPaymentLinkCreatorInterface::class, 'sylius_mollie.creator.abandoned_payment_link');
+
+ $services->set('sylius_mollie.creator.mollie_methods', MollieMethodsCreator::class)
+ ->args([
+ service('sylius_mollie.factory.methods'),
+ service('doctrine.orm.default_entity_manager'),
+ service('sylius_mollie.custom_factory.mollie_gateway_config'),
+ ]);
+
+ $services->alias(MollieMethodsCreatorInterface::class, 'sylius_mollie.creator.mollie_methods');
+
+ $services->set('sylius_mollie.creator.api_keys_test', ApiKeysTestCreator::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('translator'),
+ ]);
+
+ $services->alias(ApiKeysTestCreatorInterface::class, 'sylius_mollie.creator.api_keys_test');
+
+ $services->set('sylius_mollie.creator.payment_data', PaymentDataCreator::class)
+ ->args([
+ service('sylius_mollie.converter.int_to_string'),
+ service('router'),
+ service('sylius_mollie.provider.payment_description'),
+ service('sylius_mollie.resolver.payment_locale'),
+ service('sylius_mollie.provider.divisor'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius_mollie.converter.order'),
+ '%locale%',
+ ]);
+
+ $services->alias(PaymentDataCreatorInterface::class, 'sylius_mollie.creator.payment_data');
+};
diff --git a/config/services/creator.xml b/config/services/creator.xml
deleted file mode 100644
index 8e9265c92..000000000
--- a/config/services/creator.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %locale%
-
-
-
-
diff --git a/config/services/event_listener.php b/config/services/event_listener.php
new file mode 100644
index 000000000..499413a4e
--- /dev/null
+++ b/config/services/event_listener.php
@@ -0,0 +1,45 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.listener.shipment_ship', ShipmentShipEventListener::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('request_stack'),
+ ])
+ ->tag('kernel.event_listener', ['event' => 'sylius.shipment.post_ship', 'method' => 'shipAll']);
+
+ $services->set('sylius_mollie.listener.payment_method_logo_upload', PaymentMethodUploadLogoListener::class)
+ ->args([
+ service('sylius.manager.gateway_config'),
+ service('sylius_mollie.uploader.payment_method_logo'),
+ ])
+ ->tag('kernel.event_listener', ['event' => 'sylius.payment_method.pre_create', 'method' => 'uploadLogo'])
+ ->tag('kernel.event_listener', ['event' => 'sylius.payment_method.pre_update', 'method' => 'uploadLogo']);
+
+ $services->set('sylius_mollie.listener.checkout_order_colliding_products', CheckoutOrderCollidingProductsListener::class)
+ ->args([
+ service('router'),
+ service('translator'),
+ service('request_stack'),
+ ])
+ ->tag('kernel.event_listener', ['event' => 'sylius.order.initialize_address', 'method' => 'onUpdate']);
+
+ $services->set('sylius_mollie.listener.payment_methods_refresh', PaymentMethodsRefreshListener::class)
+ ->args([
+ service('sylius_mollie.updater.mollie_methods'),
+ service('request_stack'),
+ ])
+ ->tag('kernel.event_listener', ['event' => 'sylius.payment_method.initialize_update', 'method' => 'refreshMethods']);
+};
diff --git a/config/services/event_listener.xml b/config/services/event_listener.xml
deleted file mode 100644
index b0fcd7288..000000000
--- a/config/services/event_listener.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/factory.php b/config/services/factory.php
new file mode 100644
index 000000000..0e2d90822
--- /dev/null
+++ b/config/services/factory.php
@@ -0,0 +1,67 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.custom_factory.mollie_gateway_config', MollieGatewayConfigFactory::class)
+ ->decorate('sylius_mollie.factory.mollie_gateway_config')
+ ->args([
+ service('.inner'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ ]);
+
+ $services->alias(MollieGatewayConfigFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_gateway_config');
+
+ $services->set('sylius_mollie.custom_factory.mollie_logger', MollieLoggerFactory::class)
+ ->decorate('sylius_mollie.factory.mollie_logger')
+ ->args([service('.inner')]);
+
+ $services->alias(MollieLoggerFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_logger');
+
+ $services->set('sylius_mollie.custom_factory.mollie_subscription', MollieSubscriptionFactory::class)
+ ->decorate('sylius_mollie.factory.mollie_subscription')
+ ->args([
+ service('.inner'),
+ service('router'),
+ ]);
+
+ $services->alias(MollieSubscriptionFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_subscription');
+
+ $services->set('sylius_mollie.custom_factory.mollie_subscription_schedule', MollieSubscriptionScheduleFactory::class)
+ ->decorate('sylius_mollie.factory.mollie_subscription_schedule')
+ ->args([service('.inner')]);
+
+ $services->alias(MollieSubscriptionScheduleFactoryInterface::class, 'sylius_mollie.custom_factory.mollie_subscription_schedule');
+
+ $services->set('sylius_mollie.factory.methods', MethodsFactory::class);
+
+ $services->alias(MethodsFactoryInterface::class, 'sylius_mollie.factory.methods');
+
+ $services->set('sylius_mollie.factory.date_period', DatePeriodFactory::class);
+
+ $services->alias(DatePeriodFactoryInterface::class, 'sylius_mollie.factory.date_period');
+
+ $services->set('sylius_mollie.factory.payment_details', PaymentDetailsFactory::class);
+
+ $services->alias(PaymentDetailsFactoryInterface::class, 'sylius_mollie.factory.payment_details');
+};
diff --git a/config/services/factory.xml b/config/services/factory.xml
deleted file mode 100644
index 8bb44f977..000000000
--- a/config/services/factory.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/filter.php b/config/services/filter.php
new file mode 100644
index 000000000..2292120a2
--- /dev/null
+++ b/config/services/filter.php
@@ -0,0 +1,14 @@
+services();
+
+ $services->set('sylius_mollie.filter.mollie_method', MollieMethodFilter::class);
+
+ $services->alias(MollieMethodFilterInterface::class, 'sylius_mollie.filter.mollie_method');
+};
diff --git a/config/services/filter.xml b/config/services/filter.xml
deleted file mode 100644
index 8d5588eb3..000000000
--- a/config/services/filter.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/fixture.php b/config/services/fixture.php
new file mode 100644
index 000000000..a830ed173
--- /dev/null
+++ b/config/services/fixture.php
@@ -0,0 +1,17 @@
+services();
+
+ $services->set('sylius_mollie.fixture.listener.products_within_all_channels', ProductsWithinAllChannelsListener::class)
+ ->args([
+ service('sylius.repository.channel'),
+ service('sylius.repository.product'),
+ service('doctrine.orm.entity_manager'),
+ ])
+ ->tag('sylius_fixtures.listener');
+};
diff --git a/config/services/fixture.xml b/config/services/fixture.xml
deleted file mode 100644
index 5ae80dfdb..000000000
--- a/config/services/fixture.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/form/extension.php b/config/services/form/extension.php
new file mode 100644
index 000000000..9b36aa330
--- /dev/null
+++ b/config/services/form/extension.php
@@ -0,0 +1,29 @@
+services();
+
+ $services->set('sylius_mollie.form.extension.type.product_variant_recurring', ProductVariantRecurringExtension::class)
+ ->args([service('sylius_mollie.form.resolver.product_variant_validation_groups')])
+ ->tag('form.type_extension', ['extended_type' => ProductVariantType::class]);
+
+ $services->set('sylius_mollie.form.extension.type.payment', PaymentTypeExtension::class)
+ ->tag('form.type_extension', ['extended_type' => PaymentType::class]);
+
+ $services->set('sylius_mollie.form.extension.type.gateway_config', GatewayConfigTypeExtension::class)
+ ->tag('form.type_extension', ['extended_type' => GatewayConfigType::class]);
+
+ $services->set('sylius_mollie.form.extension.type.product_type', ProductTypeExtension::class)
+ ->tag('form.type_extension', ['extended_type' => ProductType::class]);
+};
diff --git a/config/services/form/extension.xml b/config/services/form/extension.xml
deleted file mode 100644
index a8775c5ec..000000000
--- a/config/services/form/extension.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/form/parameters.php b/config/services/form/parameters.php
new file mode 100644
index 000000000..1f6abc8b6
--- /dev/null
+++ b/config/services/form/parameters.php
@@ -0,0 +1,10 @@
+parameters();
+ $parameters->set('sylius_mollie.form.type.mollie_gateway_config.validation_groups', ['sylius']);
+ $parameters->set('sylius_mollie.form.type.payment_methods.payment_surcharge_fee.validation_groups', ['sylius']);
+ $parameters->set('sylius_mollie.form.type.mollie.validation_groups', ['sylius']);
+};
diff --git a/config/services/form/parameters.xml b/config/services/form/parameters.xml
deleted file mode 100644
index 2861804a0..000000000
--- a/config/services/form/parameters.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
- sylius
-
-
- sylius
-
-
- sylius
-
-
-
diff --git a/config/services/form/resolver.php b/config/services/form/resolver.php
new file mode 100644
index 000000000..265acefd6
--- /dev/null
+++ b/config/services/form/resolver.php
@@ -0,0 +1,17 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.form.resolver.product_variant_validation_groups', ProductVariantValidationGroupsResolver::class);
+
+ $services->alias(ValidationGroupsResolverInterface::class, 'sylius_mollie.form.resolver.product_variant_validation_groups');
+};
diff --git a/config/services/form/resolver.xml b/config/services/form/resolver.xml
deleted file mode 100644
index 377118f25..000000000
--- a/config/services/form/resolver.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/form/transformer.php b/config/services/form/transformer.php
new file mode 100644
index 000000000..74a4effcf
--- /dev/null
+++ b/config/services/form/transformer.php
@@ -0,0 +1,11 @@
+services();
+
+ $services->set('sylius_mollie.form.type.data_transformer.mollie_interval', MollieIntervalTransformer::class);
+};
diff --git a/config/services/form/transformer.xml b/config/services/form/transformer.xml
deleted file mode 100644
index 13e2028bf..000000000
--- a/config/services/form/transformer.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/config/services/form/type.php b/config/services/form/type.php
new file mode 100644
index 000000000..7f9e72897
--- /dev/null
+++ b/config/services/form/type.php
@@ -0,0 +1,89 @@
+services();
+
+ $services->set('sylius_mollie.form.type.mollie_gateway_configuration', MollieGatewayConfigurationType::class)
+ ->args([service('sylius_mollie.client.mollie_api')])
+ ->tag('sylius.gateway_configuration_type', ['type' => 'mollie', 'label' => 'sylius_mollie.ui.mollie_gateway_label'])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.mollie_subscription_gateway_configuration', MollieSubscriptionGatewayConfigurationType::class)
+ ->tag('sylius.gateway_configuration_type', ['type' => 'mollie_subscription', 'label' => 'sylius_mollie.ui.mollie_subscription_gateway_label'])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.mollie_payment', PaymentMollieType::class)
+ ->args([service('sylius_mollie.resolver.payment_methods')])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.mollie_interval', MollieIntervalType::class)
+ ->args([service('sylius_mollie.form.type.data_transformer.mollie_interval')])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.mollie_gateway_config', MollieGatewayConfigType::class)
+ ->args([
+ '%sylius_mollie.model.mollie_gateway_config.class%',
+ '%sylius_mollie.form.type.mollie_gateway_config.validation_groups%',
+ '%sylius_locale.locale%',
+ ])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.payment_surcharge_fee', PaymentSurchargeFeeType::class)
+ ->args([
+ '%sylius_mollie.model.payment_surcharge_fee.class%',
+ '%sylius_mollie.form.type.payment_methods.payment_surcharge_fee.validation_groups%',
+ ])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.customize_method_image', CustomizeMethodImageType::class)
+ ->args(['%sylius_mollie.model.mollie_method_image.class%'])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.product_type', ProductTypeType::class)
+ ->args([
+ '%sylius_mollie.model.product_type.class%',
+ '%sylius_mollie.form.type.mollie.validation_groups%',
+ ])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.translation.block_translation', TemplateMollieEmailTranslationType::class)
+ ->args(['%sylius_mollie.model.template_mollie_email_translation.class%'])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.translation.payment_method_translation', MollieGatewayConfigTranslationType::class)
+ ->args(['%sylius_mollie.model.mollie_gateway_config_translation.class%'])
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.countries_restriction_choice', CountriesRestrictionChoiceType::class)
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.payment_type_choice', PaymentTypeChoiceType::class)
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.payment_surcharge_type_choice', PaymentSurchargeFeeTypeChoiceType::class)
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.logger_level_choice', LoggerLevelChoiceType::class)
+ ->tag('form.type');
+
+ $services->set('sylius_mollie.form.type.payment_link', PaymentLinkType::class)
+ ->tag('form.type');
+};
diff --git a/config/services/form/type.xml b/config/services/form/type.xml
deleted file mode 100644
index 59646b13c..000000000
--- a/config/services/form/type.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %sylius_mollie.model.mollie_gateway_config.class%
- %sylius_mollie.form.type.mollie_gateway_config.validation_groups%
- %sylius_locale.locale%
-
-
-
-
- %sylius_mollie.model.payment_surcharge_fee.class%
- %sylius_mollie.form.type.payment_methods.payment_surcharge_fee.validation_groups%
-
-
-
-
- %sylius_mollie.model.mollie_method_image.class%
-
-
-
-
- %sylius_mollie.model.product_type.class%
- %sylius_mollie.form.type.mollie.validation_groups%
-
-
-
-
- %sylius_mollie.model.template_mollie_email_translation.class%
-
-
-
-
- %sylius_mollie.model.mollie_gateway_config_translation.class%
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/grid.php b/config/services/grid.php
new file mode 100644
index 000000000..f6b3fc633
--- /dev/null
+++ b/config/services/grid.php
@@ -0,0 +1,18 @@
+services();
+
+ $services->set('sylius_mollie.grid.filter.mollie_logger_level', MollieLoggerLevel::class)
+ ->tag('sylius.grid_filter', ['type' => 'log_level', 'form_type' => MollieLoggerLevelFilterType::class]);
+
+ $services->set('sylius_mollie.grid.filter.mollie_subscription_state', MollieSubscriptionState::class)
+ ->tag('sylius.grid_filter', ['type' => 'subscription_state', 'form_type' => MollieSubscriptionStateGridFilterType::class]);
+};
diff --git a/config/services/grid.xml b/config/services/grid.xml
deleted file mode 100644
index 2bb5d3d0d..000000000
--- a/config/services/grid.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/listeners/workflow/mollie_subscription.php b/config/services/listeners/workflow/mollie_subscription.php
new file mode 100644
index 000000000..7be65ae04
--- /dev/null
+++ b/config/services/listeners/workflow/mollie_subscription.php
@@ -0,0 +1,23 @@
+services();
+
+ $services->set('sylius_mollie.listener.workflow.mollie_subscription.complete_subscription_guard', CompleteSubscriptionGuardListener::class)
+ ->args([service('sylius_mollie.subscription.guard.subscription')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_graph.guard.complete', 'priority' => 0]);
+
+ $services->set('sylius_mollie.listener.workflow.mollie_subscription.abort_subscription_guard', AbortSubscriptionGuardListener::class)
+ ->args([service('sylius_mollie.subscription.guard.subscription')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_graph.guard.abort', 'priority' => 0]);
+
+ $services->set('sylius_mollie.listener.workflow.mollie_subscription.activate_subscription_process', ActivateSubscriptionProcessListener::class)
+ ->args([service('sylius_mollie.subscription.processor.subscription_schedule')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_graph.completed.activate', 'priority' => 0]);
+};
diff --git a/config/services/listeners/workflow/mollie_subscription.xml b/config/services/listeners/workflow/mollie_subscription.xml
deleted file mode 100644
index 39750b8dc..000000000
--- a/config/services/listeners/workflow/mollie_subscription.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/listeners/workflow/mollie_subscription_payment.php b/config/services/listeners/workflow/mollie_subscription_payment.php
new file mode 100644
index 000000000..59def3eca
--- /dev/null
+++ b/config/services/listeners/workflow/mollie_subscription_payment.php
@@ -0,0 +1,13 @@
+services();
+
+ $services->set('sylius_mollie.listener.workflow.mollie_subscription_payment.subscription_success_process', SubscriptionSuccessProcessListener::class)
+ ->args([service('sylius_mollie.subscription.processor.subscription_schedule')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.mollie_subscription_payment_state_graph.transition.success', 'priority' => 0]);
+};
diff --git a/config/services/listeners/workflow/mollie_subscription_payment.xml b/config/services/listeners/workflow/mollie_subscription_payment.xml
deleted file mode 100644
index cdc128bdf..000000000
--- a/config/services/listeners/workflow/mollie_subscription_payment.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/listeners/workflow/sylius_order_checkout.php b/config/services/listeners/workflow/sylius_order_checkout.php
new file mode 100644
index 000000000..94c2dbff7
--- /dev/null
+++ b/config/services/listeners/workflow/sylius_order_checkout.php
@@ -0,0 +1,13 @@
+services();
+
+ $services->set('sylius_mollie.listener.workflow.order_checkout.address.refresh_payment_methods', RefreshPaymentMethodsListener::class)
+ ->args([service('sylius_mollie.synchronizer.mollie_payment_methods')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_order_checkout.completed.address', 'priority' => 0]);
+};
diff --git a/config/services/listeners/workflow/sylius_order_checkout.xml b/config/services/listeners/workflow/sylius_order_checkout.xml
deleted file mode 100644
index be18ea154..000000000
--- a/config/services/listeners/workflow/sylius_order_checkout.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/listeners/workflow/sylius_order_payment.php b/config/services/listeners/workflow/sylius_order_payment.php
new file mode 100644
index 000000000..008065fa4
--- /dev/null
+++ b/config/services/listeners/workflow/sylius_order_payment.php
@@ -0,0 +1,14 @@
+services();
+
+ $services->set('sylius_mollie.listener.workflow.order_payment.refund_guard', RefundGuardListener::class)
+ ->args([service('sylius_mollie.refund.guard.order_payment_refund')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_order_payment.guard.partially_refund', 'priority' => 0])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_order_payment.guard.refund', 'priority' => 0]);
+};
diff --git a/config/services/listeners/workflow/sylius_order_payment.xml b/config/services/listeners/workflow/sylius_order_payment.xml
deleted file mode 100644
index 4ca98b06a..000000000
--- a/config/services/listeners/workflow/sylius_order_payment.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/listeners/workflow/sylius_payment.php b/config/services/listeners/workflow/sylius_payment.php
new file mode 100644
index 000000000..8dee1d78d
--- /dev/null
+++ b/config/services/listeners/workflow/sylius_payment.php
@@ -0,0 +1,24 @@
+services();
+
+ $services->set('sylius_mollie.listener.workflow.payment.subscription_payment_fail', SubscriptionPaymentFailListener::class)
+ ->args([service('sylius_mollie.subscription.processor.subscription_payment')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.completed.fail', 'priority' => -100])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.completed.cancel', 'priority' => -100]);
+
+ $services->set('sylius_mollie.listener.workflow.payment.subscription_payment_success', SubscriptionPaymentSuccessListener::class)
+ ->args([service('sylius_mollie.subscription.processor.subscription_payment')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.completed.complete', 'priority' => -100]);
+
+ $services->set('sylius_mollie.listener.workflow.payment.refund_guard', PaymentRefundGuardListener::class)
+ ->args([service('sylius_mollie.refund.guard.mollie_payment_refund')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_payment.guard.refund', 'priority' => 0]);
+};
diff --git a/config/services/listeners/workflow/sylius_payment.xml b/config/services/listeners/workflow/sylius_payment.xml
deleted file mode 100644
index 42ab7eba5..000000000
--- a/config/services/listeners/workflow/sylius_payment.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/listeners/workflow/sylius_shipment.php b/config/services/listeners/workflow/sylius_shipment.php
new file mode 100644
index 000000000..181c6051a
--- /dev/null
+++ b/config/services/listeners/workflow/sylius_shipment.php
@@ -0,0 +1,13 @@
+services();
+
+ $services->set('sylius_mollie.listener.workflow.shipment.ship', ShipmentShipListener::class)
+ ->args([service('sylius_mollie.shipping.mollie_shipment_notifier')])
+ ->tag('kernel.event_listener', ['event' => 'workflow.sylius_shipment.completed.ship']);
+};
diff --git a/config/services/listeners/workflow/sylius_shipment.xml b/config/services/listeners/workflow/sylius_shipment.xml
deleted file mode 100644
index 10f86d028..000000000
--- a/config/services/listeners/workflow/sylius_shipment.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/logger.php b/config/services/logger.php
new file mode 100644
index 000000000..07e4cb10d
--- /dev/null
+++ b/config/services/logger.php
@@ -0,0 +1,23 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.logger.mollie_logger_action', MollieLoggerAction::class)
+ ->args([
+ service('sylius_mollie.factory.mollie_logger'),
+ service('sylius_mollie.repository.mollie_logger'),
+ service('sylius.repository.gateway_config'),
+ service('sylius_mollie.resolver.mollie_factory_name'),
+ ]);
+
+ $services->alias(MollieLoggerActionInterface::class, 'sylius_mollie.logger.mollie_logger_action');
+};
diff --git a/config/services/logger.xml b/config/services/logger.xml
deleted file mode 100644
index 4eb7eda2c..000000000
--- a/config/services/logger.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/mailer/manager.php b/config/services/mailer/manager.php
new file mode 100644
index 000000000..48c9dcf5c
--- /dev/null
+++ b/config/services/mailer/manager.php
@@ -0,0 +1,21 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.mailer.manager.payment_link_email', PaymentLinkEmailManager::class)
+ ->args([
+ service('sylius_mollie.repository.template_mollie_email_translation'),
+ service('sylius_mollie.mailer.sender.payment_link'),
+ ]);
+
+ $services->alias(PaymentLinkEmailManagerInterface::class, 'sylius_mollie.mailer.manager.payment_link_email');
+};
diff --git a/config/services/mailer/manager.xml b/config/services/mailer/manager.xml
deleted file mode 100644
index f1bf8b05d..000000000
--- a/config/services/mailer/manager.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/mailer/sender.php b/config/services/mailer/sender.php
new file mode 100644
index 000000000..bc6a5537e
--- /dev/null
+++ b/config/services/mailer/sender.php
@@ -0,0 +1,21 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.mailer.sender.payment_link', PaymentLinkEmailSender::class)
+ ->args([
+ service('sylius.email_sender'),
+ service('sylius_mollie.twig.parser.content'),
+ ]);
+
+ $services->alias(PaymentLinkEmailSenderInterface::class, 'sylius_mollie.mailer.sender.payment_link');
+};
diff --git a/config/services/mailer/sender.xml b/config/services/mailer/sender.xml
deleted file mode 100644
index d3b6a8b94..000000000
--- a/config/services/mailer/sender.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/menu.php b/config/services/menu.php
new file mode 100644
index 000000000..b22e24649
--- /dev/null
+++ b/config/services/menu.php
@@ -0,0 +1,12 @@
+services();
+
+ $services->set('sylius_mollie.menu_listener.mollie_recurring', MollieRecurringMenuListener::class)
+ ->tag('kernel.event_listener', ['method' => 'buildMenu', 'event' => 'sylius.menu.admin.main']);
+};
diff --git a/config/services/menu.xml b/config/services/menu.xml
deleted file mode 100644
index a5cf20bb4..000000000
--- a/config/services/menu.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/config/services/payum/action.php b/config/services/payum/action.php
new file mode 100644
index 000000000..9888eb58e
--- /dev/null
+++ b/config/services/payum/action.php
@@ -0,0 +1,142 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.payum.get_http_request', GetHttpRequest::class);
+
+ $services->set('sylius_mollie.payum.action.capture', CaptureAction::class)
+ ->args([
+ service('sylius.repository.order'),
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius.repository.payment'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.capture'])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.capture_subscription']);
+
+ $services->set('sylius_mollie.payum.action.notify', NotifyAction::class)
+ ->args([
+ service('sylius_mollie.payum.get_http_request'),
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('sylius_mollie.state_machine.order_set_status'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.notify'])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.notify_subscription']);
+
+ $services->set('sylius_mollie.payum.action.status', StatusAction::class)
+ ->args([
+ service('sylius_mollie.refund.payment')->nullOnInvalid(),
+ service('sylius_mollie.refund.order')->nullOnInvalid(),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.voucher.updater.order_voucher_adjustment'),
+ service('sylius_mollie.refund.checker.mollie_order_refund')->nullOnInvalid(),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.status'])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.status_subscription']);
+
+ $services->set('sylius_mollie.payum.action.convert_mollie_payment', ConvertMolliePaymentAction::class)
+ ->args([
+ service('sylius_mollie.provider.payment_description'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius_mollie.converter.order'),
+ service('sylius.context.customer'),
+ service('sylius_mollie.resolver.payment_locale'),
+ service('sylius_mollie.payum.factory.create_customer'),
+ service('sylius_mollie.converter.int_to_string'),
+ service('sylius_mollie.provider.divisor'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.convert_mollie_payment']);
+
+ $services->set('sylius_mollie.payum.action.subscription.convert_mollie_subscription_payment', ConvertMollieSubscriptionPaymentAction::class)
+ ->args([
+ service('sylius_mollie.provider.payment_description'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius_mollie.converter.order'),
+ service('sylius.context.customer'),
+ service('sylius_mollie.resolver.payment_locale'),
+ service('sylius_mollie.converter.int_to_string'),
+ service('sylius_mollie.provider.divisor'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.convert_mollie_subscription_payment']);
+
+ $services->set('sylius_mollie.payum.action.create_payment', CreatePaymentAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.client.parser.api_exception'),
+ service('request_stack'),
+ service('sylius_mollie.repository.mollie_customer'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.create_payment'])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_payment_subscription']);
+
+ $services->set('sylius_mollie.payum.action.create_order', CreateOrderAction::class)
+ ->args([
+ service('sylius_mollie.resolver.payment_config'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.create_order']);
+
+ $services->set('sylius_mollie.payum.action.create_on_demand_payment', CreateOnDemandPaymentAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.client.parser.api_exception'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_on_demand_payment_action']);
+
+ $services->set('sylius_mollie.payum.action.subscription.create_on_demand_subscription', CreateOnDemandSubscriptionAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.client.parser.api_exception'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_on_demand_subscription_action']);
+
+ $services->set('sylius_mollie.payum.action.subscription.create_internal_subscription', CreateInternalSubscriptionAction::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('sylius_mollie.custom_factory.mollie_subscription'),
+ service('sylius.repository.order'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.create_internal_subscription']);
+
+ $services->set('sylius_mollie.payum.action.create_customer', CreateCustomerAction::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.repository.mollie_customer'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie', 'alias' => 'payum.action.api.create_customer'])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.api.create_customer_subscription']);
+
+ $services->set('sylius_mollie.payum.action.subscription.cancel_recurring_subscription', CancelRecurringSubscriptionAction::class)
+ ->args([service('sylius_mollie.logger.mollie_logger_action')])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.state_machine.cancel_recurring_subscription']);
+
+ $services->set('sylius_mollie.payum.action.subscription.status_recurring_subscription', StatusRecurringSubscriptionAction::class)
+ ->args([
+ service('sylius_mollie.manager.mollie_subscription'),
+ service('sylius_mollie.state_machine.applicator.subscription_and_payment_id'),
+ service('sylius_mollie.state_machine.applicator.subscription_and_sylius_payment'),
+ service('sylius_abstraction.state_machine'),
+ ])
+ ->tag('payum.action', ['factory' => 'mollie_subscription', 'alias' => 'payum.action.state_machine.status_recurring_subscription']);
+};
diff --git a/config/services/payum/action.xml b/config/services/payum/action.xml
deleted file mode 100644
index 00b2e478f..000000000
--- a/config/services/payum/action.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/payum/factory.php b/config/services/payum/factory.php
new file mode 100644
index 000000000..6a6fa11b3
--- /dev/null
+++ b/config/services/payum/factory.php
@@ -0,0 +1,39 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.payum.gateway_factory.mollie_gateway', MollieGatewayFactory::class);
+
+ $services->set('sylius_mollie.payum.gateway_factory.mollie_subscription_gateway', MollieSubscriptionGatewayFactory::class);
+
+ $services->set('sylius_mollie.payum.gateway_factory.builder.mollie', GatewayFactoryBuilder::class)
+ ->args([service('sylius_mollie.payum.gateway_factory.mollie_gateway')])
+ ->tag('payum.gateway_factory_builder', ['factory' => 'mollie']);
+
+ $services->set('sylius_mollie.payum.gateway_factory.builder.mollie_subscription', GatewayFactoryBuilder::class)
+ ->args([service('sylius_mollie.payum.gateway_factory.mollie_subscription_gateway')])
+ ->tag('payum.gateway_factory_builder', ['factory' => 'mollie_subscription']);
+
+ $services->set('sylius_mollie.payum.factory.create_customer', CreateCustomerFactory::class);
+
+ $services->alias(CreateCustomerFactoryInterface::class, 'sylius_mollie.payum.factory.create_customer');
+
+ $services->set('sylius_mollie.payum.checker.mollie_gateway_factory', MollieGatewayFactoryChecker::class)
+ ->public();
+
+ $services->alias(MollieGatewayFactoryCheckerInterface::class, 'sylius_mollie.payum.checker.mollie_gateway_factory');
+};
diff --git a/config/services/payum/factory.xml b/config/services/payum/factory.xml
deleted file mode 100644
index 64963dcce..000000000
--- a/config/services/payum/factory.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/payum/provider.php b/config/services/payum/provider.php
new file mode 100644
index 000000000..2a625707c
--- /dev/null
+++ b/config/services/payum/provider.php
@@ -0,0 +1,21 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.payum.provider.payment_token', PaymentTokenProvider::class)
+ ->args([
+ service('payum'),
+ 'sylius_shop_order_after_pay',
+ ]);
+
+ $services->alias(PaymentTokenProviderInterface::class, 'sylius_mollie.payum.provider.payment_token');
+};
diff --git a/config/services/payum/provider.xml b/config/services/payum/provider.xml
deleted file mode 100644
index 2ee45621f..000000000
--- a/config/services/payum/provider.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- sylius_shop_order_after_pay
-
-
-
-
diff --git a/config/services/processor.php b/config/services/processor.php
new file mode 100644
index 000000000..aa198c153
--- /dev/null
+++ b/config/services/processor.php
@@ -0,0 +1,18 @@
+services();
+
+ $services->set('sylius_mollie.processor.payment_surcharge', PaymentSurchargeProcessor::class)
+ ->args([service('sylius_mollie.calculator.payment_fee.composite')])
+ ->tag('sylius.order_processor', ['priority' => 10]);
+
+ $services->set('sylius_mollie.processor.payment_surcharge_cleanup', PaymentSurchargeCleanupProcessor::class)
+ ->args([service('sylius_mollie.calculator.clearer.payment_fee_adjustment')])
+ ->tag('sylius.order_processor', ['priority' => 20]);
+};
diff --git a/config/services/processor.xml b/config/services/processor.xml
deleted file mode 100644
index 08c250959..000000000
--- a/config/services/processor.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/provider.php b/config/services/provider.php
new file mode 100644
index 000000000..5c657267d
--- /dev/null
+++ b/config/services/provider.php
@@ -0,0 +1,44 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.provider.divisor', DivisorProvider::class);
+
+ $services->alias(DivisorProviderInterface::class, 'sylius_mollie.provider.divisor');
+
+ $services->set('sylius_mollie.provider.customer', CustomerProvider::class)
+ ->args([
+ service('sylius.repository.customer'),
+ service('sylius.factory.customer'),
+ ]);
+
+ $services->alias(CustomerProviderInterface::class, 'sylius_mollie.provider.customer');
+
+ $services->set('sylius_mollie.provider.payment_description', PaymentDescriptionProvider::class)
+ ->args([service('sylius_payum.provider.payment_description')]);
+
+ $services->alias(PaymentDescriptionProviderInterface::class, 'sylius_mollie.provider.payment_description');
+
+ $services->set('sylius_mollie.provider.methods.mollie_methods', MollieMethodsProvider::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ ]);
+
+ $services->alias(MollieMethodsProviderInterface::class, 'sylius_mollie.provider.methods.mollie_methods');
+};
diff --git a/config/services/provider.xml b/config/services/provider.xml
deleted file mode 100644
index 9f84dcbba..000000000
--- a/config/services/provider.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/purifier.php b/config/services/purifier.php
new file mode 100644
index 000000000..53bfbe307
--- /dev/null
+++ b/config/services/purifier.php
@@ -0,0 +1,18 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.purifier.mollie_payment_method', MolliePaymentMethodPurifier::class)
+ ->args([service('sylius_mollie.repository.mollie_gateway_config')]);
+
+ $services->alias(MolliePaymentMethodPurifierInterface::class, 'sylius_mollie.purifier.mollie_payment_method');
+};
diff --git a/config/services/purifier.xml b/config/services/purifier.xml
deleted file mode 100644
index 41886e836..000000000
--- a/config/services/purifier.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/registry.php b/config/services/registry.php
new file mode 100644
index 000000000..ebbb7c704
--- /dev/null
+++ b/config/services/registry.php
@@ -0,0 +1,15 @@
+services();
+
+ $services->set('sylius_mollie.registry.payment_method', PaymentMethodRegistry::class)
+ ->public();
+
+ $services->alias(PaymentMethodRegistryInterface::class, 'sylius_mollie.registry.payment_method');
+};
diff --git a/config/services/registry.xml b/config/services/registry.xml
deleted file mode 100644
index 046401787..000000000
--- a/config/services/registry.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/repository.php b/config/services/repository.php
new file mode 100644
index 000000000..d6d222474
--- /dev/null
+++ b/config/services/repository.php
@@ -0,0 +1,29 @@
+services();
+
+ $services->set('sylius_mollie.repository.query.order.abandoned', AbandonedOrdersQuery::class)
+ ->args([service('sylius.repository.order')]);
+
+ $services->alias(AbandonedOrdersQueryInterface::class, 'sylius_mollie.repository.query.order.abandoned');
+
+ $services->set('sylius_mollie.repository.query.payment_method.mollie_based', MollieBasedPaymentMethodQuery::class)
+ ->args([service('sylius.repository.payment_method')]);
+
+ $services->alias(MollieBasedPaymentMethodQueryInterface::class, 'sylius_mollie.repository.query.payment_method.mollie_based');
+
+ $services->set('sylius_mollie.repository.query.order.by_token_for_available_methods', OrderByTokenForAvailableMethodsQuery::class)
+ ->args([service('sylius.repository.order')]);
+
+ $services->alias(OrderByTokenForAvailableMethodsQueryInterface::class, 'sylius_mollie.repository.query.order.by_token_for_available_methods');
+};
diff --git a/config/services/repository.xml b/config/services/repository.xml
deleted file mode 100644
index 034983e12..000000000
--- a/config/services/repository.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/resolver.php b/config/services/resolver.php
new file mode 100644
index 000000000..b24d66f46
--- /dev/null
+++ b/config/services/resolver.php
@@ -0,0 +1,146 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.resolver.payment_methods', MolliePaymentsMethodResolver::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius_mollie.resolver.mollie_countries_restriction'),
+ service('sylius_mollie.voucher.checker.product_voucher_type'),
+ service('sylius_mollie.resolver.order.payment_checkout_order'),
+ service('sylius_mollie.repository.query.payment_method.mollie_based'),
+ service('sylius_mollie.resolver.mollie_allowed_methods'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.resolver.mollie_factory_name'),
+ service('sylius_mollie.provider.divisor'),
+ ]);
+
+ $services->alias(MolliePaymentsMethodResolverInterface::class, 'sylius_mollie.resolver.payment_methods');
+
+ $services->set('sylius_mollie.resolver.payment_methods_image', MolliePaymentMethodImageResolver::class);
+
+ $services->alias(MolliePaymentMethodImageResolverInterface::class, 'sylius_mollie.resolver.payment_methods_image');
+
+ $services->set('sylius_mollie.resolver.payment_config', PaymentMethodConfigResolver::class)
+ ->args([service('sylius_mollie.repository.mollie_gateway_config')]);
+
+ $services->alias(PaymentMethodConfigResolverInterface::class, 'sylius_mollie.resolver.payment_config');
+
+ $services->set('sylius_mollie.resolver.payment_locale', PaymentLocaleResolver::class);
+
+ $services->alias(PaymentLocaleResolverInterface::class, 'sylius_mollie.resolver.payment_locale');
+
+ $services->set('sylius_mollie.resolver.payment_link', PaymentLinkResolver::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.converter.int_to_string'),
+ service('sylius.repository.order'),
+ service('sylius_mollie.mailer.manager.payment_link_email'),
+ service('sylius_mollie.payum.provider.payment_token'),
+ ]);
+
+ $services->alias(PaymentLinkResolverInterface::class, 'sylius_mollie.resolver.payment_link');
+
+ $services->set('sylius_mollie.resolver.mollie_countries_restriction', MollieCountriesRestrictionResolver::class)
+ ->args([service('sylius_mollie.resolver.payment_methods_image')]);
+
+ $services->alias(MollieCountriesRestrictionResolverInterface::class, 'sylius_mollie.resolver.mollie_countries_restriction');
+
+ $services->set('sylius_mollie.resolver.mollie_factory_name', MollieFactoryNameResolver::class)
+ ->args([service('sylius.context.cart')]);
+
+ $services->alias(MollieFactoryNameResolverInterface::class, 'sylius_mollie.resolver.mollie_factory_name');
+
+ $services->set('sylius_mollie.resolver.meal_voucher', MealVoucherResolver::class);
+
+ $services->alias(MealVoucherResolverInterface::class, 'sylius_mollie.resolver.meal_voucher');
+
+ $services->set('sylius_mollie.resolver.mollie_api_client_key', MollieApiClientKeyResolver::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.repository.query.payment_method.mollie_based'),
+ service('sylius.context.channel'),
+ service('sylius_mollie.resolver.mollie_factory_name'),
+ ]);
+
+ $services->alias(MollieApiClientKeyResolverInterface::class, 'sylius_mollie.resolver.mollie_api_client_key');
+
+ $services->set('sylius_mollie.resolver.api_keys_test', ApiKeysTestResolver::class)
+ ->args([service('sylius_mollie.creator.api_keys_test')]);
+
+ $services->alias(ApiKeysTestResolverInterface::class, 'sylius_mollie.resolver.api_keys_test');
+
+ $services->set('sylius_mollie.resolver.order.payment_checkout_order', PaymentCheckoutOrderResolver::class)
+ ->args([
+ service('request_stack'),
+ service('sylius.context.cart'),
+ service('sylius.repository.order'),
+ ]);
+
+ $services->alias(PaymentCheckoutOrderResolverInterface::class, 'sylius_mollie.resolver.order.payment_checkout_order');
+
+ $services->set('sylius_mollie.resolver.mollie_methods', MollieMethodsResolver::class)
+ ->args([
+ service('sylius_mollie.logger.mollie_logger_action'),
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius.repository.gateway_config'),
+ service('sylius_mollie.creator.mollie_methods'),
+ ]);
+
+ $services->alias(MollieMethodsResolverInterface::class, 'sylius_mollie.resolver.mollie_methods');
+
+ $services->set('sylius_mollie.resolver.mollie_allowed_methods', MollieAllowedMethodsResolver::class)
+ ->args([
+ service('sylius_mollie.resolver.mollie_api_client_key'),
+ service('sylius_mollie.resolver.payment_locale'),
+ service('sylius_mollie.converter.int_to_string'),
+ ]);
+
+ $services->alias(MollieAllowedMethodsResolverInterface::class, 'sylius_mollie.resolver.mollie_allowed_methods');
+
+ $services->set('sylius_mollie.payment_methods_resolver.mollie_payment', PaymentMethodResolver::class)
+ ->decorate('sylius.resolver.payment_methods.default')
+ ->args([
+ service('.inner'),
+ service('sylius_mollie.repository.query.payment_method.mollie_based'),
+ service('sylius_mollie.resolver.mollie_factory_name'),
+ service('sylius_mollie.filter.mollie_method'),
+ service('doctrine.orm.entity_manager'),
+ ])
+ ->tag('sylius.payment_method_resolver', ['type' => 'mollie', 'label' => 'Mollie', 'priority' => 2]);
+};
diff --git a/config/services/resolver.xml b/config/services/resolver.xml
deleted file mode 100644
index 4a7a2e0df..000000000
--- a/config/services/resolver.xml
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/shipping.php b/config/services/shipping.php
new file mode 100644
index 000000000..c01a63eb5
--- /dev/null
+++ b/config/services/shipping.php
@@ -0,0 +1,15 @@
+services();
+
+ $services->set('sylius_mollie.shipping.mollie_shipment_notifier', MollieShipmentNotifier::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius.section_resolver.uri_based'),
+ ]);
+};
diff --git a/config/services/shipping.xml b/config/services/shipping.xml
deleted file mode 100644
index 3377b06be..000000000
--- a/config/services/shipping.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/state_machine.php b/config/services/state_machine.php
new file mode 100644
index 000000000..e91e01270
--- /dev/null
+++ b/config/services/state_machine.php
@@ -0,0 +1,38 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.state_machine.applicator.subscription_and_payment_id', SubscriptionAndPaymentIdApplicator::class)
+ ->args([
+ service('sylius_mollie.client.mollie_api'),
+ service('sylius_abstraction.state_machine'),
+ ]);
+
+ $services->alias(SubscriptionAndPaymentIdApplicatorInterface::class, 'sylius_mollie.state_machine.applicator.subscription_and_payment_id');
+
+ $services->set('sylius_mollie.state_machine.applicator.subscription_and_sylius_payment', SubscriptionAndSyliusPaymentApplicator::class)
+ ->args([service('sylius_abstraction.state_machine')]);
+
+ $services->alias(SubscriptionAndSyliusPaymentApplicatorInterface::class, 'sylius_mollie.state_machine.applicator.subscription_and_sylius_payment');
+
+ $services->set('sylius_mollie.state_machine.order_set_status', MollieOrderStatesApplicator::class)
+ ->args([
+ service('sylius_abstraction.state_machine'),
+ service('sylius.repository.order'),
+ ]);
+
+ $services->alias(MollieOrderStatesApplicatorInterface::class, 'sylius_mollie.state_machine.order_set_status');
+};
diff --git a/config/services/state_machine.xml b/config/services/state_machine.xml
deleted file mode 100644
index 487348ff5..000000000
--- a/config/services/state_machine.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/subscription/generator.php b/config/services/subscription/generator.php
new file mode 100644
index 000000000..b67ea91ed
--- /dev/null
+++ b/config/services/subscription/generator.php
@@ -0,0 +1,19 @@
+services();
+
+ $services->set('sylius_mollie.subscription.generator.subscription_schedule', SubscriptionScheduleGenerator::class)
+ ->public()
+ ->args([
+ service('sylius_mollie.factory.date_period'),
+ service('sylius_mollie.custom_factory.mollie_subscription_schedule'),
+ ]);
+
+ $services->alias(SubscriptionScheduleGeneratorInterface::class, 'sylius_mollie.subscription.generator.subscription_schedule');
+};
diff --git a/config/services/subscription/generator.xml b/config/services/subscription/generator.xml
deleted file mode 100644
index 0201e42e5..000000000
--- a/config/services/subscription/generator.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/subscription/guard.php b/config/services/subscription/guard.php
new file mode 100644
index 000000000..1e9d0a562
--- /dev/null
+++ b/config/services/subscription/guard.php
@@ -0,0 +1,15 @@
+services();
+
+ $services->set('sylius_mollie.subscription.guard.subscription', SubscriptionGuard::class)
+ ->public();
+
+ $services->alias(SubscriptionGuardInterface::class, 'sylius_mollie.subscription.guard.subscription');
+};
diff --git a/config/services/subscription/guard.xml b/config/services/subscription/guard.xml
deleted file mode 100644
index d38837302..000000000
--- a/config/services/subscription/guard.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/subscription/processor.php b/config/services/subscription/processor.php
new file mode 100644
index 000000000..24e3f3601
--- /dev/null
+++ b/config/services/subscription/processor.php
@@ -0,0 +1,53 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.subscription.processor.subscription', SubscriptionProcessor::class)
+ ->args([
+ service('sylius_mollie.cloner.subscription_order'),
+ service('sylius.custom_factory.payment'),
+ service('sylius.repository.order'),
+ service('sylius_mollie.factory.payment_details'),
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('payum'),
+ service('sylius.repository.gateway_config'),
+ ]);
+
+ $services->alias(SubscriptionProcessorInterface::class, 'sylius_mollie.subscription.processor.subscription');
+
+ $services->set('sylius_mollie.subscription.processor.subscription_schedule', SubscriptionScheduleProcessor::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_subscription_schedule'),
+ service('sylius_mollie.subscription.generator.subscription_schedule'),
+ ]);
+
+ $services->alias(SubscriptionScheduleProcessorInterface::class, 'sylius_mollie.subscription.processor.subscription_schedule');
+
+ $services->set('sylius_mollie.subscription.processor.cancel_recurring_subscription', CancelRecurringSubscriptionProcessor::class)
+ ->args([service('payum')]);
+
+ $services->alias(CancelRecurringSubscriptionProcessorInterface::class, 'sylius_mollie.subscription.processor.cancel_recurring_subscription');
+
+ $services->set('sylius_mollie.subscription.processor.subscription_payment', SubscriptionPaymentProcessor::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('payum'),
+ ]);
+
+ $services->alias(SubscriptionPaymentProcessorInterface::class, 'sylius_mollie.subscription.processor.subscription_payment');
+};
diff --git a/config/services/subscription/processor.xml b/config/services/subscription/processor.xml
deleted file mode 100644
index 87dde1f2f..000000000
--- a/config/services/subscription/processor.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/twig.php b/config/services/twig.php
new file mode 100644
index 000000000..15b31890f
--- /dev/null
+++ b/config/services/twig.php
@@ -0,0 +1,68 @@
+services();
+ $parameters = $container->parameters();
+ $parameters->set('sylius_mollie.twig.functions', ['sylius_mollie_render_email_template']);
+
+ $services->set('sylius_mollie.twig.parser.content', ContentParser::class)
+ ->public()
+ ->args([
+ service('twig'),
+ '%sylius_mollie.twig.functions%',
+ service('translator'),
+ ]);
+
+ $services->alias(ContentParserInterface::class, 'sylius_mollie.twig.parser.content');
+
+ $services->set('sylius_mollie.twig.extension.mollie_plugin_latest_version', MolliePluginLatestVersion::class)
+ ->tag('twig.extension');
+
+ $services->set('sylius_mollie.twig.extension.customer_credit_cards', CustomerCreditCards::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_customer'),
+ service('sylius.context.customer'),
+ ])
+ ->tag('twig.extension');
+
+ $services->set('sylius_mollie.twig.extension.apple_pay_direct_enabled', ApplePayDirectEnabled::class)
+ ->args([service('sylius_mollie.apple_pay.checker.apple_pay_enabled')])
+ ->tag('twig.extension');
+
+ $services->set('sylius_mollie.twig.extension.divisor_provider', DivisorProvider::class)
+ ->args([service('sylius_mollie.provider.divisor')])
+ ->tag('twig.extension');
+
+ $services->set('sylius_mollie.twig.extension.legacy_refund', LegacyRefundExtension::class)
+ ->args([service('sylius_mollie.payum.checker.mollie_gateway_factory')])
+ ->tag('twig.extension');
+
+ $services->set('sylius_mollie.twig.component.email_template.form', ResourceFormComponent::class)
+ ->args([
+ service('sylius_mollie.repository.template_mollie_email'),
+ service('form.factory'),
+ '%sylius_mollie.model.template_mollie_email.class%',
+ TemplateMollieEmailType::class,
+ ])
+ ->tag('sylius.live_component.admin', ['key' => 'sylius_mollie:admin:email_template:form']);
+
+ $services->set('sylius_mollie.twig.component.order.cancel_subscription', CancelSubscriptionComponent::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_subscription'),
+ service('sylius_abstraction.state_machine'),
+ ])
+ ->tag('sylius.twig_component', ['key' => 'sylius_mollie:shop:order:cancel_subscription']);
+};
diff --git a/config/services/twig.xml b/config/services/twig.xml
deleted file mode 100644
index 50572facf..000000000
--- a/config/services/twig.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
- sylius_mollie_render_email_template
-
-
-
-
-
-
- %sylius_mollie.twig.functions%
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %sylius_mollie.model.template_mollie_email.class%
- Sylius\MolliePlugin\Form\Type\TemplateMollieEmailType
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/updater.php b/config/services/updater.php
new file mode 100644
index 000000000..5ed96dfc4
--- /dev/null
+++ b/config/services/updater.php
@@ -0,0 +1,49 @@
+services();
+ $parameters = $container->parameters();
+ $parameters->set('sylius_mollie.mollie_payment_methods_refresh_ttl', 7200);
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.updater.mollie_payment_method_position', MolliePaymentMethodPositionUpdater::class)
+ ->args([
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('doctrine.orm.entity_manager'),
+ ]);
+
+ $services->alias(MolliePaymentMethodPositionUpdaterInterface::class, 'sylius_mollie.updater.mollie_payment_method_position');
+
+ $services->set('sylius_mollie.updater.mollie_methods', MollieMethodsUpdater::class)
+ ->args([
+ service('cache.app'),
+ service('sylius_mollie.provider.methods.mollie_methods'),
+ service('sylius_mollie.repository.mollie_gateway_config'),
+ service('sylius_mollie.factory.mollie_gateway_config'),
+ service('sylius_mollie.factory.methods'),
+ service('doctrine.orm.default_entity_manager'),
+ '%sylius_mollie.mollie_payment_methods_refresh_ttl%',
+ ]);
+
+ $services->alias(MollieMethodsUpdaterInterface::class, 'sylius_mollie.updater.mollie_methods');
+
+ $services->set('sylius_mollie.synchronizer.mollie_payment_methods', MolliePaymentMethodsSynchronizer::class)
+ ->args([
+ service('sylius.repository.payment_method'),
+ service('sylius.context.channel'),
+ service('sylius_mollie.updater.mollie_methods'),
+ ]);
+
+ $services->alias(MolliePaymentMethodsSynchronizerInterface::class, 'sylius_mollie.synchronizer.mollie_payment_methods');
+};
diff --git a/config/services/updater.xml b/config/services/updater.xml
deleted file mode 100644
index 03cc2fa1e..000000000
--- a/config/services/updater.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
-
- 7200
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %sylius_mollie.mollie_payment_methods_refresh_ttl%
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/uploader.php b/config/services/uploader.php
new file mode 100644
index 000000000..5b48b6c84
--- /dev/null
+++ b/config/services/uploader.php
@@ -0,0 +1,19 @@
+services();
+
+ $services->set('sylius_mollie.uploader.payment_method_logo', PaymentMethodLogoUploader::class)
+ ->public()
+ ->args([inline_service(Filesystem::class)
+ ->args(['%sylius.uploader.filesystem%'])
+ ->factory([service('knp_gaufrette.filesystem_map'), 'get'])]);
+
+ $services->alias(PaymentMethodLogoUploaderInterface::class, 'sylius_mollie.uploader.payment_method_logo');
+};
diff --git a/config/services/uploader.xml b/config/services/uploader.xml
deleted file mode 100644
index 4e7f4f6fa..000000000
--- a/config/services/uploader.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
- %sylius.uploader.filesystem%
-
-
-
-
-
-
-
diff --git a/config/services/validator.php b/config/services/validator.php
new file mode 100644
index 000000000..09e6d14b9
--- /dev/null
+++ b/config/services/validator.php
@@ -0,0 +1,32 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.validator.payment_surcharge_type', PaymentSurchargeTypeValidator::class)
+ ->tag('validator.constraint_validator', ['alias' => 'channels']);
+
+ $services->set('sylius_mollie.validator.apple_pay_direct.payment_method_checkout', PaymentMethodCheckoutValidator::class)
+ ->args([
+ service('sylius_mollie.resolver.order.payment_checkout_order'),
+ service('request_stack'),
+ service('sylius_mollie.payum.checker.mollie_gateway_factory'),
+ ])
+ ->tag('validator.constraint_validator');
+
+ $services->set('sylius_mollie.validator.payment_method_mollie_channel_unique', PaymentMethodMollieChannelUniqueValidator::class)
+ ->args([
+ service('sylius_mollie.repository.query.payment_method.mollie_based'),
+ service('translator'),
+ ])
+ ->tag('validator.constraint_validator');
+};
diff --git a/config/services/validator.xml b/config/services/validator.xml
deleted file mode 100644
index 62177d0f6..000000000
--- a/config/services/validator.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/voucher/applicator.php b/config/services/voucher/applicator.php
new file mode 100644
index 000000000..41120a762
--- /dev/null
+++ b/config/services/voucher/applicator.php
@@ -0,0 +1,31 @@
+services();
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.voucher.applicator.units_promotion_adjustments', UnitsVouchersApplicator::class)
+ ->args([
+ service('sylius.custom_factory.adjustment'),
+ service('sylius.distributor.integer'),
+ ]);
+
+ $services->alias(UnitsVouchersApplicatorInterface::class, 'sylius_mollie.voucher.applicator.units_promotion_adjustments');
+
+ $services->set('sylius_mollie.voucher.applicator.order_vouchers', OrderVouchersApplicator::class)
+ ->args([
+ service('sylius.distributor.proportional_integer'),
+ service('sylius_mollie.voucher.applicator.units_promotion_adjustments'),
+ ]);
+
+ $services->alias(OrderVouchersApplicatorInterface::class, 'sylius_mollie.voucher.applicator.order_vouchers');
+};
diff --git a/config/services/voucher/applicator.xml b/config/services/voucher/applicator.xml
deleted file mode 100644
index 2d6f3cf95..000000000
--- a/config/services/voucher/applicator.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/voucher/checker.php b/config/services/voucher/checker.php
new file mode 100644
index 000000000..f57e93eba
--- /dev/null
+++ b/config/services/voucher/checker.php
@@ -0,0 +1,16 @@
+services();
+
+ $services->set('sylius_mollie.voucher.checker.product_voucher_type', ProductVoucherTypeChecker::class)
+ ->public()
+ ->args([service('sylius_mollie.repository.mollie_gateway_config')]);
+
+ $services->alias(ProductVoucherTypeCheckerInterface::class, 'sylius_mollie.voucher.checker.product_voucher_type');
+};
diff --git a/config/services/voucher/checker.xml b/config/services/voucher/checker.xml
deleted file mode 100644
index 924c5ed3e..000000000
--- a/config/services/voucher/checker.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/services/voucher/updater.php b/config/services/voucher/updater.php
new file mode 100644
index 000000000..4ac11e552
--- /dev/null
+++ b/config/services/voucher/updater.php
@@ -0,0 +1,20 @@
+services();
+
+ $services->set('sylius_mollie.voucher.updater.order_voucher_adjustment', OrderVoucherAdjustmentUpdater::class)
+ ->public()
+ ->args([
+ service('sylius.repository.order'),
+ service('sylius_mollie.voucher.applicator.order_vouchers'),
+ service('sylius_mollie.provider.divisor'),
+ ]);
+
+ $services->alias(OrderVoucherAdjustmentUpdaterInterface::class, 'sylius_mollie.voucher.updater.order_voucher_adjustment');
+};
diff --git a/config/services/voucher/updater.xml b/config/services/voucher/updater.xml
deleted file mode 100644
index 0b6bf538f..000000000
--- a/config/services/voucher/updater.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/DependencyInjection/SyliusMollieExtension.php b/src/DependencyInjection/SyliusMollieExtension.php
index be8b12ec4..f0db509d9 100644
--- a/src/DependencyInjection/SyliusMollieExtension.php
+++ b/src/DependencyInjection/SyliusMollieExtension.php
@@ -16,24 +16,19 @@
use SyliusLabs\DoctrineMigrationsExtraBundle\DependencyInjection\Configuration;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use Symfony\Component\Config\FileLocator;
-use Symfony\Component\Config\Loader\DelegatingLoader;
-use Symfony\Component\Config\Loader\LoaderResolver;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
-use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
final class SyliusMollieExtension extends Extension implements PrependExtensionInterface
{
public function load(array $configs, ContainerBuilder $container): void
{
$this->processConfiguration($this->getConfiguration([], $container), $configs);
- $loader = new DelegatingLoader(new LoaderResolver([
- new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')),
- new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config')),
- ]));
- $loader->load('services.xml');
+
+ $loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config'));
+ $loader->load('services.php');
}
public function prepend(ContainerBuilder $container): void
diff --git a/tests/Behat/Resources/services.php b/tests/Behat/Resources/services.php
new file mode 100644
index 000000000..d0d145b60
--- /dev/null
+++ b/tests/Behat/Resources/services.php
@@ -0,0 +1,27 @@
+services();
+ $container->import('services/contexts.yml');
+ $container->import('services/pages.yml');
+
+ $services->defaults()
+ ->public();
+
+ $services->set('sylius_mollie.client.mollie_api', TestMollieApiClient::class);
+};
diff --git a/tests/Behat/Resources/services.xml b/tests/Behat/Resources/services.xml
deleted file mode 100644
index 9dcb91143..000000000
--- a/tests/Behat/Resources/services.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/TestApplication/config/services_test.php b/tests/TestApplication/config/services_test.php
index 7e590e29b..3d6fcd201 100644
--- a/tests/TestApplication/config/services_test.php
+++ b/tests/TestApplication/config/services_test.php
@@ -9,6 +9,6 @@
if (str_starts_with($env, 'test')) {
$container->import('../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml');
- $container->import('@SyliusMolliePlugin/tests/Behat/Resources/services.xml');
+ $container->import('@SyliusMolliePlugin/tests/Behat/Resources/services.php');
}
};