Migrate ProductAvailabilitiesRestApi to API Platform
Edit on GitHubThis document describes how to migrate the ProductAvailabilitiesRestApi Glue module to the API Platform Availability module.
Prerequisites
Complete the cross-cutting changes described in Migrate Glue REST API to API Platform before proceeding.
Overview
The ProductAvailabilitiesRestApi module provided the following storefront endpoints:
| Endpoint | Operation | Old plugin |
|---|---|---|
GET /abstract-products/{abstractProductSku}/abstract-product-availabilities |
Get abstract product availabilities | AbstractProductAvailabilitiesRoutePlugin |
GET /concrete-products/{concreteProductSku}/concrete-product-availabilities |
Get concrete product availabilities | ConcreteProductAvailabilitiesRoutePlugin |
These are now served by the API Platform Availability module.
1. Update module dependencies
composer require spryker/availability:"^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 |
|---|---|
AbstractProductAvailabilitiesRoutePlugin |
Spryker\Glue\ProductAvailabilitiesRestApi\Plugin\AbstractProductAvailabilitiesRoutePlugin |
ConcreteProductAvailabilitiesRoutePlugin |
Spryker\Glue\ProductAvailabilitiesRestApi\Plugin\ConcreteProductAvailabilitiesRoutePlugin |
3. Remove relationship plugins from GlueApplicationDependencyProvider
In the same file, remove the following relationship plugin registrations from getResourceRelationshipPlugins():
| Plugin to remove | Fully qualified class name | Was registered on resource |
|---|---|---|
ConcreteProductAvailabilitiesByResourceIdResourceRelationshipPlugin |
Spryker\Glue\ProductAvailabilitiesRestApi\Plugin\GlueApplication\ConcreteProductAvailabilitiesByResourceIdResourceRelationshipPlugin |
concrete-products |
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 |
|---|---|
ConcreteProductAvailabilitiesByResourceIdResourceRelationshipPlugin (ProductAvailabilitiesRestApi) |
Removed from concrete-products. |
AbstractProductAvailabilitiesByResourceIdResourceRelationshipPlugin (ProductAvailabilitiesRestApi) |
Removed from top-level abstract-products. Remains re-added in the grouped block for related-products and upselling-products legacy Glue endpoints. Do not remove that re-added registration. |
Thank you!
For submitting the form