Install the Return Management Glue API
Edit on GitHubInstall Feature API
Prerequisites
Install the required features:
NAME | VERSION | INSTALLATION GUIDE |
---|---|---|
Spryker Core | 202311.0 | Feature API |
Return Management | 202311.0 | Install the Return Management feature |
1) Install the required modules
Install the required modules using Composer:
composer require spryker/sales-returns-rest-api:"202311.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/returns
https://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