Migration status - Glue API to API Platform

Edit on GitHub

This document tracks Spryker’s migration of API-providing modules to the API Platform (built on Symfony and the API Platform library). Use it to plan upgrades and check the current status of every module.

Looking for the integration guide?

This page does not describe how to integrate API Platform into your project. For step-by-step integration instructions, see:

Why Spryker is moving to API Platform

API Platform replaces Spryker-specific patterns for routing, authentication, and resource definition with industry-standard Symfony conventions, automatic OpenAPI schema generation, and a clean separation between resource schema, provider, and validation.

Aspect Previous infrastructure API Platform
Bootstrap Spryker-specific application bootstrap Symfony Kernel-based routing
Resource registration Manual plugin registration in GlueApplicationDependencyProvider Declarative YAML resource definitions (*.resource.yml)
Authentication Custom flows per module Standard OAuth2 / Symfony Security
Coupling Tight coupling between resource and routing logic Clean separation: provider + resource schema + validation
Testability Complex to test and extend Symfony-native, testable with standard PHPUnit patterns
OpenAPI Manual / partial Automatic OpenAPI schema generation

General migration workflow

For any module marked Migrated, projects upgrade in three high-level steps. Detailed instructions are in the linked integration guides above.

  1. Update the module to the API Platform-enabled version

    Pull the new module version that ships the *.resource.yml schema and Provider class:

    composer update spryker/<module-name>
    
  2. Remove the previous resource plugins

    In your project’s GlueApplicationDependencyProvider, remove the previous plugin registrations for the migrated module - typically a ResourceRoutePlugin (and any related ResourceRelationshipPlugin / expander plugins) registered in getResourceRoutePlugins().

    For extension-only modules, remove or replace the corresponding plugin wiring in the parent module’s dependency provider as indicated in the module’s release notes.

  3. Clear caches and verify

    vendor/bin/glue cache:clear
    vendor/bin/glue api:generate
    

    Confirm the endpoint is served by API Platform by hitting it against your local Glue host - the response is now produced by the new Symfony-based stack.

Parallel operation

The previous API stack and API Platform run side by side during the transition. You can migrate modules incrementally; modules that have not been migrated continue to be served by the previous stack.

Status legend

Status Meaning
Migrated Module is available on API Platform and production-ready.
Planned Module is scheduled or queued for migration to API Platform.

Storefront API modules

All StorefrontAPI and Extension-only StorefrontAPI modules. Migrated modules are listed first.

Module Category Status Key endpoints
ContentProductAbstractListsRestApi StorefrontAPI Migrated GET /content-product-abstract-lists/{id}
GET /content-product-abstract-lists/{id}/abstract-products
MerchantProductOffersRestApi StorefrontAPI Migrated GET /concrete-products/{id}/product-offers
GET /product-offers/{id}
ProductAvailabilitiesRestApi StorefrontAPI Migrated GET /abstract-products/{id}/abstract-product-availabilities
GET /concrete-products/{id}/concrete-product-availabilities
ProductOfferAvailabilitiesRestApi StorefrontAPI Migrated GET /product-offers/{id}/product-offer-availabilities
ProductOfferPricesRestApi StorefrontAPI Migrated GET /product-offers/{id}/product-offer-prices
ProductPricesRestApi StorefrontAPI Migrated GET /abstract-products/{id}/abstract-product-prices
GET /concrete-products/{id}/concrete-product-prices
ProductTaxSetsRestApi StorefrontAPI Migrated GET /abstract-products/{id}/product-tax-sets
ProductsRestApi StorefrontAPI Migrated GET /abstract-products/{id}
GET /concrete-products/{id}
StoresApi StorefrontAPI Migrated GET /stores
AgentAuthRestApi StorefrontAPI Planned POST /agent-access-tokens
POST /agent-customer-impersonation-access-tokens
GET /agent-customer-search
AlternativeProductsRestApi StorefrontAPI Planned GET /abstract-products/{id}/related-products
GET /concrete-products/{id}/abstract-alternative-products
GET /concrete-products/{id}/concrete-alternative-products
AuthRestApi StorefrontAPI Planned POST /token
POST /access-tokens
POST /refresh-tokens
DELETE /refresh-tokens/{id}
AvailabilityNotificationsRestApi StorefrontAPI Planned POST /availability-notifications
DELETE /availability-notifications/{id}
GET /my-availability-notifications
GET /customers/{id}/availability-notifications
CartCodesRestApi StorefrontAPI Planned POST /carts/{id}/cart-codes
DELETE /carts/{id}/cart-codes/{id}
POST /guest-carts/{id}/cart-codes
DELETE /guest-carts/{id}/cart-codes/{id}
CartPermissionGroupsRestApi StorefrontAPI Planned GET /cart-permission-groups
GET /cart-permission-groups/{id}
CartReorderRestApi StorefrontAPI Planned POST /cart-reorder
CartsRestApi StorefrontAPI Planned GET,POST /carts
GET,PATCH,DELETE /carts/{id}
POST /carts/{id}/items
PATCH,DELETE /carts/{id}/items/{id}
GET /guest-carts
GET,PATCH /guest-carts/{id}
POST /guest-carts/{id}/guest-cart-items
PATCH,DELETE /guest-carts/{id}/guest-cart-items/{id}
GET /customers/{id}/carts
CatalogSearchRestApi StorefrontAPI Planned GET /catalog-search
GET /catalog-search-suggestions
CategoriesRestApi StorefrontAPI Planned GET /category-trees
GET /category-nodes/{id}
CheckoutRestApi StorefrontAPI Planned POST /checkout-data
POST /checkout
CmsPagesRestApi StorefrontAPI Planned GET /cms-pages
GET /cms-pages/{id}
CompaniesRestApi StorefrontAPI Planned GET /companies
GET /companies/{id}
CompanyBusinessUnitAddressesRestApi StorefrontAPI Planned GET /company-business-unit-addresses
GET /company-business-unit-addresses/{id}
CompanyBusinessUnitsRestApi StorefrontAPI Planned GET /company-business-units
GET /company-business-units/{id}
CompanyRolesRestApi StorefrontAPI Planned GET /company-roles
GET /company-roles/{id}
CompanyUserAuthRestApi StorefrontAPI Planned POST /company-user-access-tokens
CompanyUsersRestApi StorefrontAPI Planned GET /company-users
GET /company-users/{id}
ConfigurableBundleCartsRestApi StorefrontAPI Planned POST /carts/{id}/configured-bundles
PATCH,DELETE /carts/{id}/configured-bundles/{id}
POST,PATCH,DELETE /guest-carts/{id}/guest-configured-bundles/{id}
ConfigurableBundlesRestApi StorefrontAPI Planned GET /configurable-bundle-templates
GET /configurable-bundle-templates/{id}
ContentBannersRestApi StorefrontAPI Planned GET /content-banners/{id}
CustomerAccessRestApi StorefrontAPI Planned GET /customer-access
CustomersRestApi StorefrontAPI Planned GET,POST /customers
GET,PATCH,DELETE /customers/{id}
GET,POST /customers/{id}/addresses
GET,PATCH,DELETE /customers/{id}/addresses/{id}
POST /customer-forgotten-password
PATCH /customer-restore-password/{id}
PATCH /customer-password/{id}
POST /customer-confirmation
DiscountPromotionsRestApi Extension-Only-StorefrontAPI Planned CartsRestApi, CartCodesRestApi
DiscountsRestApi StorefrontAPI Planned POST /carts/{id}/vouchers
DELETE /carts/{id}/vouchers/{id}
POST /guest-carts/{id}/vouchers
DELETE /guest-carts/{id}/vouchers/{id}
EntityTagsRestApi Extension-only StorefrontAPI Planned GlueApplication
GiftCardsRestApi Extension-only StorefrontAPI Planned GlueApplication
MerchantCategoriesRestApi Extension-only StorefrontAPI Planned MerchantsRestApi
MerchantOpeningHoursRestApi StorefrontAPI Planned GET /merchants/{id}/merchant-opening-hours
MerchantProductOfferServicePointAvailabilitiesRestApi Extension-only StorefrontAPI Planned (transfer-only)
MerchantProductOfferShoppingListsRestApi Extension-only StorefrontAPI Planned (transfer-only)
MerchantProductOfferWishlistRestApi Extension-only StorefrontAPI Planned WishlistsRestApi
MerchantProductShoppingListsRestApi Extension-only StorefrontAPI Planned (transfer-only)
MerchantProductsRestApi Extension-only StorefrontAPI Planned CartsRestApi
MerchantRelationshipProductListsRestApi Extension-only StorefrontAPI Planned CustomersRestApi
MerchantSalesReturnsRestApi Extension-only StorefrontAPI Planned (transfer-only)
MerchantShipmentsRestApi Extension-only StorefrontAPI Planned ShipmentsRestApi
MerchantsRestApi StorefrontAPI Planned GET /merchants
GET /merchants/{id}
GET /merchants/{id}/merchant-addresses
MultiCartsRestApi Extension-only StorefrontAPI Planned CartsRestApi
NavigationsRestApi StorefrontAPI Planned GET /navigations/{id}
OauthApi StorefrontAPI Planned POST /token
OmsRestApi Extension-only StorefrontAPI Planned OrdersRestApi
OrderAmendmentsRestApi Extension-only StorefrontAPI Planned OrdersRestApi, CartsRestApi, CartReorderRestApi
OrderPaymentsRestApi StorefrontAPI Planned POST /order-payments
OrdersRestApi StorefrontAPI Planned GET /orders
GET /orders/{id}
GET /customers/{id}/orders
PaymentsRestApi StorefrontAPI Planned POST /payments
POST /payment-cancellations
POST /payment-customers
PriceProductOfferVolumesRestApi Extension-only StorefrontAPI Planned ProductOfferPricesRestApi
PriceProductVolumesRestApi Extension-only StorefrontAPI Planned ProductPricesRestApi
ProductAttributesRestApi StorefrontAPI Planned GET /product-management-attributes
GET /product-management-attributes/{id}
ProductBundleCartsRestApi Extension-only StorefrontAPI Planned CartsRestApi, ShipmentsRestApi
ProductBundlesRestApi StorefrontAPI Planned GET /concrete-products/{id}/bundled-products
ProductConfigurationShoppingListsRestApi Extension-only StorefrontAPI Planned ShoppingListsRestApi
ProductConfigurationWishlistsRestApi Extension-only StorefrontAPI Planned WishlistsRestApi
ProductConfigurationsPriceProductVolumesRestApi Extension-only StorefrontAPI Planned ProductConfigurationsRestApi, ProductConfigurationShoppingListsRestApi, ProductConfigurationWishlistsRestApi
ProductConfigurationsRestApi Extension-only StorefrontAPI Planned ProductsRestApi, CartsRestApi, OrdersRestApi
ProductDiscontinuedRestApi Extension-only StorefrontAPI Planned ProductsRestApi
ProductImageSetsRestApi StorefrontAPI Planned GET /abstract-products/{id}/abstract-product-image-sets
GET /concrete-products/{id}/concrete-product-image-sets
ProductLabelsRestApi StorefrontAPI Planned GET /product-labels/{id}
ProductMeasurementUnitsRestApi StorefrontAPI Planned GET /product-measurement-units/{id}
GET /concrete-products/{id}/sales-units
ProductOfferSalesRestApi Extension-only StorefrontAPI Planned (transfer-only)
ProductOfferServicePointAvailabilitiesRestApi StorefrontAPI Planned POST /product-offer-service-point-availabilities
ProductOfferShoppingListsRestApi Extension-only StorefrontAPI Planned (transfer-only)
ProductOffersRestApi Extension-only StorefrontAPI Planned ProductsRestApi
ProductOptionsRestApi Extension-only StorefrontAPI Planned CartsRestApi, OrdersRestApi, ProductsRestApi, QuoteRequestsRestApi
ProductReviewsRestApi StorefrontAPI Planned GET,POST /abstract-products/{id}/product-reviews
GET /abstract-products/{id}/product-reviews/{id}
QuoteRequestAgentsRestApi StorefrontAPI Planned GET,POST /agent-quote-requests
GET,PATCH /agent-quote-requests/{id}
POST /agent-quote-requests/{id}/agent-quote-request-cancel
POST /agent-quote-requests/{id}/agent-quote-request-revise
POST /agent-quote-requests/{id}/agent-quote-request-send-to-customer
QuoteRequestsRestApi StorefrontAPI Planned GET,POST /quote-requests
GET,PATCH /quote-requests/{id}
POST /quote-requests/{id}/quote-request-cancel
POST /quote-requests/{id}/quote-request-revise
POST /quote-requests/{id}/quote-request-send-to-user
POST /quote-requests/{id}/quote-request-convert-to-quote
RelatedProductsRestApi StorefrontAPI Planned GET /abstract-products/{id}/related-products
SalesOrderThresholdsRestApi Extension-only StorefrontAPI Planned CartsRestApi, CheckoutRestApi
SalesReturnsRestApi StorefrontAPI Planned GET /return-reasons
GET,POST /returns
GET /returns/{id}
SecurityBlockerRestApi Extension-only StorefrontAPI Planned GlueApplication
ServicePointCartsRestApi Extension-only StorefrontAPI Planned CheckoutRestApi
ServicePointsRestApi StorefrontAPI Planned GET /service-points
GET /service-points/{id}
GET /service-points/{id}/service-point-addresses/{id}
SharedCartsRestApi StorefrontAPI Planned POST /carts/{id}/shared-carts
PATCH,DELETE /shared-carts/{id}
ShipmentTypeProductOfferServicePointAvailabilitiesRestApi Extension-only StorefrontAPI Planned ProductOfferServicePointAvailabilitiesRestApi
ShipmentTypeServicePointsRestApi Extension-only StorefrontAPI Planned CheckoutRestApi, ShipmentsRestApi, ShipmentTypesRestApi
ShipmentTypesRestApi StorefrontAPI Planned GET /shipment-types
GET /shipment-types/{id}
ShipmentsRestApi Extension-only StorefrontAPI Planned CheckoutRestApi, OrdersRestApi, QuoteRequestsRestApi
ShoppingListsRestApi StorefrontAPI Planned GET,POST /shopping-lists
GET,PATCH,DELETE /shopping-lists/{id}
POST /shopping-lists/{id}/shopping-list-items
PATCH,DELETE /shopping-lists/{id}/shopping-list-items/{id}
TaxAppRestApi StorefrontAPI Planned POST /tax-id-validate
UpSellingProductsRestApi StorefrontAPI Planned GET /carts/{id}/up-selling-products
GET /guest-carts/{id}/up-selling-products
UrlsRestApi StorefrontAPI Planned GET /url-resolver
WishlistsRestApi StorefrontAPI Planned GET,POST /wishlists
GET,PATCH,DELETE /wishlists/{id}
POST /wishlists/{id}/wishlist-items
PATCH,DELETE /wishlists/{id}/wishlist-items/{id}

Backend API modules

All BackendAPI modules tracked in the migration scope.

Module Category Status Key endpoints
CartNotesBackendApi Extension-Only BackendAPI Planned SalesOrdersBackendApi
CategoriesBackendApi BackendAPI Planned GET,POST /categories
GET,PATCH /categories/{id}
DynamicEntityBackendApi BackendAPI Planned GET,POST,PATCH,PUT /dynamic-entity/{entity-name} (~62 auto-generated entity endpoints)
OauthBackendApi BackendAPI Planned POST /token
PickingListsBackendApi BackendAPI Planned GET /picking-lists
GET /picking-lists/{id}
PATCH /picking-lists/{id}/picking-list-items/{id}
POST /start-picking
PickingListsUsersBackendApi Extension-Only BackendAPI Planned PickingListsBackendApi
PickingListsWarehousesBackendApi Extension-Only BackendAPI Planned PickingListsBackendApi
ProductAttributesBackendApi BackendAPI Planned GET,POST /product-attributes
GET,PATCH /product-attributes/{id}
ProductImageSetsBackendApi BackendAPI Planned GET /concrete-product-image-sets
ProductPackagingUnitsBackendApi Extension-Only BackendAPI Planned PickingListsBackendApi
ProductsBackendApi BackendAPI Planned GET,POST /product-abstract
DELETE,GET,PATCH /product-abstract/{id}
PushNotificationsBackendApi BackendAPI Planned GET,POST /push-notification-providers
PATCH,DELETE /push-notification-providers/{id}
POST /push-notification-subscriptions
SalesOrdersBackendApi BackendAPI Planned GET /sales-orders
ServicePointsBackendApi BackendAPI Planned GET,POST /service-points
GET,PATCH /service-points/{id}
GET,POST /service-point-addresses
PATCH /service-points/{id}/service-point-addresses/{id}
GET,POST /service-types
GET,PATCH /service-types/{id}
GET,POST /services
GET,PATCH /services/{id}
ShipmentTypesBackendApi BackendAPI Planned GET,POST /shipment-types
GET,PATCH /shipment-types/{id}
ShipmentsBackendApi BackendAPI Planned GET /sales-shipments
StoresBackendApi BackendAPI Planned GET,POST,PATCH /stores
UsersBackendApi BackendAPI Planned GET /users
WarehouseOauthBackendApi BackendAPI Planned POST /warehouse-tokens
WarehouseUsersBackendApi BackendAPI Planned GET,POST /warehouse-user-assignments
GET,PATCH,DELETE /warehouse-user-assignments/{id}
WarehousesBackendApi BackendAPI Planned GET /warehouses