6.5 KiB
UPGRADE FROM v1.11.X TO v1.12.0
-
The
Sylius\Bundle\ApiBundle\DataProvider\CartShippingMethodsSubresourceDataProviderhas been removed and replaced bySylius\Bundle\ApiBundle\DataProvider\ShippingMethodsCollectionDataProvider. src/Sylius/Bundle/CoreBundle/spec/Provider/CustomerProviderSpec.php -
The
Sylius\Bundle\ApiBundle\Provider\CustomerProviderInterfacehas been refactored and moved toCoreBundleuseSylius\Bundle\CoreBundle\Resolver\CustomerResolverInterfaceinstead. -
The
Sylius\Bundle\ApiBundle\Serializer\ShippingMethodNormalizerlogic and constructor has been changed due to refactor above.public function __construct( private OrderRepositoryInterface $orderRepository, private ShipmentRepositoryInterface $shipmentRepository, private ServiceRegistryInterface $shippingCalculators, + private RequestStack $requestStack, + private ChannelContextInterface $channelContext ) { ... } -
The
GETapi/v2/shop/orders/{token}/shipments/{id}/methodsandapi/v2/shop/shipments/{id}/methodsendpoints have been removed and changed into collection request with 2 parametersapi/v2/shop/shipping-methods?shipmentId={id}&tokenValue={token}. Now when we do not provide parameters in response it returns all availableshippingMethodsin channel. Wrong parameters otherwise cause empty array[]in response and correct parameters returnshippingMethodsavailable for yourshipment.
Here is how the response looks like:{ "@context": "/api/v2/contexts/ShippingMethod", "@id": "/api/v2/shop/shipping-methods", "@type": "hydra:Collection", "hydra:member": [ { "@id": "/api/v2/shop/shipping-methods/ups", "@type": "ShippingMethod", "id": 1, "code": "ups", "position": 0, "name": "UPS", "description": "Quasi perferendis debitis officiis ut inventore exercitationem." } ], "hydra:totalItems": 1, "hydra:search": { "@type": "hydra:IriTemplate", "hydra:template": "/api/v2/shop/shipping-methods{?shipmentId,tokenValue}", "hydra:variableRepresentation": "BasicRepresentation", "hydra:mapping": [ { "@type": "IriTemplateMapping", "variable": "shipmentId", "property": null, "required": false }, { "@type": "IriTemplateMapping", "variable": "tokenValue", "property": null, "required": false } ] } } -
Service
src/Sylius/Bundle/ApiBundle/DataProvider/CartPaymentMethodsSubresourceDataProvider.phphas been removed and logic was replaced bysrc/Sylius/Bundle/ApiBundle/DataProvider/PaymentMethodsCollectionDataProvider.php -
Endpoints
/shop/orders/{tokenValue}/payments/{payments}/methods,/shop/payments/{id}/methodshas been removed and replaced by/shop/payment-methodswith filterpaymentIdandtokenValue/shop/payment-methodsreturns all enable payment methods if filters are not set, payment methods related to payment if filters are filled or empty response if filters ale filled with invalid data. -
Service
Sylius\Bundle\ApiBundle\DataProvider/CartPaymentMethodsSubresourceDataProviderhas been removed and logic was replaced bySylius\Bundle\ApiBundle\DataProvider\PaymentMethodsCollectionDataProvider -
The
GETapi/v2/shop/orders/{tokenValue}/payments/{payments}/methodsandapi/v2/shop/payments/{id}/methodsendpoints have been removed and changed into collection request with 2 parametersapi/v2/shop/payment-methods?paymentId={id}&tokenValue={token}. Now when we do not provide parameters in response it returns all availablepaymentMethodsin channel. Wrong parameters otherwise cause empty array[]in response and correct parameters returnpaymentMethodsavailable for yourpayment. -
All arguments of
src/Sylius/Bundle/ApiBundle/CommandHandler/Account/ResetPasswordHandlerhave been removed and substituted withSylius\Bundle\CoreBundle\Security\UserPasswordResetter. -
The file
src/Sylius/Bundle/ApiBundle/Resources/config/api_resources/ResetPassword.xmlhas been renamed tosrc/Sylius/Bundle/ApiBundle/Resources/config/api_resources/AccountResetPassword.xmland its short name has been changed fromResetPasswordRequesttoAccountResetPasswordRequest. -
Constructor of
Sylius\Bundle\ApiBundle\CommandHandler\Account\RequestResetPasswordTokenHandlerhas been extended withSylius\Calendar\Provider\DateTimeProviderInterfaceargument:public function __construct( private UserRepositoryInterface $userRepository, private MessageBusInterface $commandBus, - private GeneratorInterface $generator + private GeneratorInterface $generator, + private DateTimeProviderInterface $calendar ) { } -
Constructor of
\Sylius\Bundle\ApiBundle\CommandHandler\Account\VerifyCustomerAccountHandlerhas been extended withSylius\Calendar\Provider\DateTimeProviderInterfaceargument:- public function __construct(private RepositoryInterface $shopUserRepository) - { + public function __construct( + private RepositoryInterface $shopUserRepository, + private DateTimeProviderInterface $calendar + ) { } -
The 2nd parameter
localeCodehas been removed fromsrc/Sylius/Bundle/ApiBundle/Command/Cart/PickupCart.phpand now is set automatically bysrc/Sylius/Bundle/ApiBundle/DataTransformer/LocaleCodeAwareInputCommandDataTransformer.php. -
The responses of endpoints
/api/v2/admin/productsand/api/v2/admin/products/{code}have been changed in such a way that the fielddefaultVarianthas been removed. -
The configuration of
config/packages/security.yamlhas to be updated:security: access_control: + - { path: "%sylius.security.new_api_admin_route%/reset-password-requests", role: IS_AUTHENTICATED_ANONYMOUSLY } -
The second argument
$billingAddressofSylius\Bundle\ApiBundle\Modifier\OrderAddressModifierInterface::modifyhas become nullable. -
The
Sylius\Bundle\ApiBundle\Assigner\OrderPromoCodeAssignerInterfacehas been renamed toSylius\Bundle\ApiBundle\Assigner\OrderPromotionCodeAssignerInterface.