Migrate CartCodesRestApi to API Platform
Edit on GitHubThis document describes how to migrate the CartCodesRestApi Glue module to the API Platform CartCode module.
Prerequisites
- Complete the cross-cutting changes described in Migrate Glue REST API to API Platform.
- Migrate
CartsRestApifirst, as described in Migrate CartsRestApi. TheCartCodemodule depends on theCartmodule for cart resource resolution.
Overview
The CartCodesRestApi module provided the following storefront endpoints:
| Endpoint | Operation | Old plugin |
|---|---|---|
POST /carts/{cartId}/cart-codes |
Apply code to cart | CartCodesResourceRoutePlugin |
DELETE /carts/{cartId}/cart-codes/{code} |
Remove code from cart | CartCodesResourceRoutePlugin |
POST /carts/{cartId}/vouchers |
Apply voucher to cart | CartVouchersResourceRoutePlugin |
DELETE /carts/{cartId}/vouchers/{code} |
Remove voucher from cart | CartVouchersResourceRoutePlugin |
POST /guest-carts/{guestCartId}/guest-cart-codes |
Apply code to guest cart | GuestCartCodesResourceRoutePlugin |
DELETE /guest-carts/{guestCartId}/guest-cart-codes/{code} |
Remove code from guest cart | GuestCartCodesResourceRoutePlugin |
POST /guest-carts/{guestCartId}/guest-cart-vouchers |
Apply voucher to guest cart | GuestCartVouchersResourceRoutePlugin |
DELETE /guest-carts/{guestCartId}/guest-cart-vouchers/{code} |
Remove voucher from guest cart | GuestCartVouchersResourceRoutePlugin |
These are now served by the API Platform CartCode module.
1. Update module dependencies
composer require spryker/cart-code:"^X.Y.Z"
Version
Use the version that includes the API Platform resources. Check the module changelog for the exact version.
2. Remove route plugins from GlueApplicationDependencyProvider
In src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php, remove the following plugins from getResourceRoutePlugins():
| Plugin to remove | Fully qualified class name |
|---|---|
CartVouchersResourceRoutePlugin |
Spryker\Glue\CartCodesRestApi\Plugin\GlueApplication\CartVouchersResourceRoutePlugin |
GuestCartVouchersResourceRoutePlugin |
Spryker\Glue\CartCodesRestApi\Plugin\GlueApplication\GuestCartVouchersResourceRoutePlugin |
CartCodesResourceRoutePlugin |
Spryker\Glue\CartCodesRestApi\Plugin\GlueApplication\CartCodesResourceRoutePlugin |
GuestCartCodesResourceRoutePlugin |
Spryker\Glue\CartCodesRestApi\Plugin\GlueApplication\GuestCartCodesResourceRoutePlugin |
3. Delete the CartCodesRestApi Pyz module
Delete the entire src/Pyz/CartCodesRestApi/ directory. This module contained:
Pyz\Glue\CartCodesRestApi\CartCodesRestApiDependencyProvider— hadDiscountPromotionDiscountMapperPluginingetDiscountMapperPlugins()
This mapping is now handled internally by the CartCode module.
4. Regenerate transfers and API resources
docker/sdk cli console transfer:generate
docker/sdk cli glue api:generate
docker/sdk cli glue cache:clear
Relationship plugin status
| Plugin | Status |
|---|---|
VoucherByQuoteResourceRelationshipPlugin (CartCodesRestApi) |
Remains on legacy Glue for old cart endpoints. Do not remove yet. |
CartRuleByQuoteResourceRelationshipPlugin (CartCodesRestApi) |
Remains on legacy Glue for old cart endpoints. Do not remove yet. |
Thank you!
For submitting the form