Install the Availability Notification Glue API
Edit on GitHubThis document describes how to install the Glue API - Availability Notification feature.
Follow the steps below to integrate the Glue API - Availability Notification feature.
Prerequisites
Install the required features:
NAME | VERSION |
---|---|
Availability Notification | 202307.0 |
1) Install required modules using Composer
Install the required modules using Composer:
composer require spryker/availability-notifications-rest-api --update-with-dependencies
Verification
Make sure the following modules have been installed:
MODULE | EXPECTED DIRECTORY |
---|---|
AvailabilityNotificationsRestApi | vendor/spryker/availability-notifications-rest-api |
2) Set up transfer objects
Generate transfer changes:
console transfer:generate
Verification
Ensure that the following changes have occurred in transfer objects:
TRANSFER | TYPE | EVENT | PATH |
---|---|---|---|
RestAvailabilityNotificationRequestAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestAvailabilityNotificationRequestAttributesTransfer.php |
RestAvailabilityNotificationsAttributesTransfer | class | created | src/Generated/Shared/Transfer/RestAvailabilityNotificationsAttributesTransfer.php |
AvailabilityNotificationSubscriptionCollectionTransfer | class | created | src/Generated/Shared/Transfer/AvailabilityNotificationSubscriptionCollectionTransfer.php |
AvailabilityNotificationCriteriaTransfer | class | created | src/Generated/Shared/Transfer/AvailabilityNotificationCriteriaTransfer.php |
3) Enable resources and relationships
Activate the following plugins:
PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
---|---|---|---|
AvailabilityNotificationsResourceRoutePlugin | Registers the availability-notifications resource. | None | Spryker\Glue\AvailabilityNotificationsRestApi\Plugin\GlueApplication |
CustomerAvailabilityNotificationsResourceRoutePlugin | Registers the customers/{customerReference}/availability-notifications resource. | None | Spryker\Glue\AvailabilityNotificationsRestApi\Plugin\GlueApplication |
MyAvailabilityNotificationsResourceRoutePlugin | Registers the my-availability-notifications resource. | None | Spryker\Glue\AvailabilityNotificationsRestApi\Plugin\GlueApplication |
src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php
<?php
namespace Pyz\Glue\GlueApplication;
use Spryker\Glue\GlueApplication\GlueApplicationDependencyProvider as SprykerGlueApplicationDependencyProvider;
use Spryker\Glue\AvailabilityNotificationsRestApi\Plugin\GlueApplication\AvailabilityNotificationsResourceRoutePlugin;
use Spryker\Glue\AvailabilityNotificationsRestApi\Plugin\GlueApplication\CustomerAvailabilityNotificationsResourceRoutePlugin;
use Spryker\Glue\AvailabilityNotificationsRestApi\Plugin\GlueApplication\MyAvailabilityNotificationsResourceRoutePlugin;
class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependencyProvider
{
/**
* @return \Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRoutePluginInterface[]
*/
protected function getResourceRoutePlugins(): array
{
return [
new AvailabilityNotificationsResourceRoutePlugin(),
new CustomerAvailabilityNotificationsResourceRoutePlugin(),
new MyAvailabilityNotificationsResourceRoutePlugin(),
];
}
}
Verification
Make sure that you can send the following requests:
GET https://glue.mysprykershop.com/my-availability-notifications
GET https://glue.mysprykershop.com/customers/{customerReference}/availability-notifications
POST https://glue.mysprykershop.com/availability-notifications
{
"data" : {
"type" : "availability-notifications",
"attributes" : {
"sku" : {{some_existing_sku}},
"email" : {{some_valid_email}}
}
}
}
DELETE https://glue.mysprykershop.com/availability-notifications/{subscription_key}
.
Thank you!
For submitting the form