Install the Return Management Glue API
Edit on GitHubInstall Feature API
Prerequisites
Install the required features:
| NAME | VERSION | INSTALLATION GUIDE |
|---|---|---|
| Spryker Core | 202507.0 | Feature API |
| Return Management | 202507.0 | Install the Return Management feature |
1) Install the required modules
Install the required modules using Composer:
composer require spryker/sales-returns-rest-api:"202507.0" --update-with-dependencies
Verification
Make sure that the following modules have been installed:
| MODULE | EXPECTED DIRECTORY |
|---|---|
| SalesReturnsRestApi | vendor/spryker/sales-returns-rest-api |
2) Set up transfer objects
Generate transfer changes:
console transfer:generate
Verification
Make sure that the configured data are added to the spy_glossary table in the database.
| TRANSFER | TYPE | EVENT | PATH |
|---|---|---|---|
| RestReturnsAttributes | class | created | src/Generated/Shared/Transfer/RestReturnsAttributesTransfer |
| RestReturnReasonsAttributes | class | created | src/Generated/Shared/Transfer/RestReturnReasonsAttributesTransfer |
| RestReturnRequestAttributes | class | created | src/Generated/Shared/Transfer/RestReturnRequestAttributesTransfer |
| RestReturnItemRequestAttributes | class | created | src/Generated/Shared/Transfer/RestReturnItemRequestAttributesTransfer |
| RestReturnTotalsAttributes | class | created | src/Generated/Shared/Transfer/RestReturnTotalsAttributesTransfer |
| RestReturnItemsAttributes | class | created | src/Generated/Shared/Transfer/RestReturnItemsAttributesTransfer |
3) Set up behavior
Enable resources and relationships:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---|---|---|---|
| OrderItemByResourceIdResourceRelationshipPlugin | Adds order-items resource as relationship by order item uuid. | None | Spryker\Glue\OrdersRestApi\Plugin |
| ReturnItemByReturnResourceRelationshipPlugin | Adds return-items resource as relationship by return. | None | `Spryker\Glue\SalesReturnsRestApi\Plugin |
| ReturnsResourceRoutePlugin | Registers /returns route. |
None | Spryker\Glue\SalesReturnsRestApi\Plugin |
| ReturnReasonsResourceRoutePlugin | Registers /return-reasons route. |
None | Spryker\Glue\SalesReturnsRestApi\Plugin |
src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php
<?php
namespace Pyz\Glue\GlueApplication;
use Spryker\Glue\GlueApplication\GlueApplicationDependencyProvider as SprykerGlueApplicationDependencyProvider;
use Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRelationshipCollectionInterface;
use Spryker\Glue\SalesReturnsRestApi\Plugin\ReturnItemByReturnResourceRelationshipPlugin;
use Spryker\Glue\SalesReturnsRestApi\Plugin\ReturnReasonsResourceRoutePlugin;
use Spryker\Glue\SalesReturnsRestApi\Plugin\ReturnsResourceRoutePlugin;
use Spryker\Glue\SalesReturnsRestApi\SalesReturnsRestApiConfig;
class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependencyProvider
{
/**
* @return \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRoutePluginInterface[]
*/
protected function getResourceRoutePlugins(): array
{
return [
new ReturnReasonsResourceRoutePlugin(),
new ReturnsResourceRoutePlugin(),
];
}
/**
* @param \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRelationshipCollectionInterface $resourceRelationshipCollection
*
* @return \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRelationshipCollectionInterface
*/
protected function getResourceRelationshipPlugins(
ResourceRelationshipCollectionInterface $resourceRelationshipCollection
): ResourceRelationshipCollectionInterface {
$resourceRelationshipCollection->addRelationship(
SalesReturnsRestApiConfig::RESOURCE_RETURNS,
new ReturnItemByReturnResourceRelationshipPlugin()
);
$resourceRelationshipCollection->addRelationship(
SalesReturnsRestApiConfig::RESOURCE_RETURN_ITEMS,
new OrderItemByResourceIdResourceRelationshipPlugin()
);
return $resourceRelationshipCollection;
}
}
Verification
Make sure that following endpoints are available now:
https://glue.mysprykershop.com/returnshttps://glue.mysprykershop.com/return-reasons
Make sure that items from https://glue.mysprykershop.com/orders endpoint contain isReturnable and uuid properties.
Thank you!
For submitting the form