Install the Catalog + Merchant Product Restrictions feature
Edit on GitHubPrerequisites
Install the required features:
NAME | VERSION | INSTALLATION GUIDE |
---|---|---|
Glue API: Spryker Core | 202311.0 | Install the Spryker Core Glue API |
Merchant Product Restrictions | 202311.0 | Install the Merchant Product Restrictions feature |
1) Install the required modules
Run the following command to install the required modules:
composer require spryker/merchant-relationship-product-lists-rest-api:"^0.1.0" --update-with-dependencies
“Verification”
Make sure the following modules have been installed:
MODULE | EXPECTED DIRECTORY |
---|---|
MerchantRelationshipProductListsRestApi | vendor/spryker/merchant-relationship-product-lists-rest-api |
2) Set up transfer objects
Generate transfer changes:
console transfer:generate
“Verification”
Make sure that the following changes have occurred in transfer objects:
TRANSFER | TYPE | EVENT | PATH |
---|---|---|---|
Customer | class | created | src/Generated/Shared/Transfer/RestCatalogSearchAttributesTransfer |
RestUser | class | created | src/Generated/Shared/Transfer/RestCatalogSearchSortTransfer |
CustomerProductListCollection | class | created | src/Generated/Shared/Transfer/RestCatalogSearchPaginationTransfer |
CustomerIdentifier | class | created | src/Generated/Shared/Transfer/RestCatalogSearchAbstractProductsTransfer |
3) Set up behavior
Activate the following plugins:
PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
---|---|---|---|
CustomerProductListOauthCustomerIdentifierExpanderPlugin | Expands CustomerIdentifierTransfer with customers product list collection. |
None | Spryker\Zed\MerchantRelationshipProductListsRestApi\Communication\Plugin\OauthCustomerConnector |
CustomerProductListCustomerExpanderPlugin | Expands CustomerTransfer with customer’s product list collection. |
None | Spryker\Glue\MerchantRelationshipProductListsRestApi\Plugin\CustomersRestApi |
src/Pyz/Zed/OauthCustomerConnector/OauthCustomerConnectorDependencyProvider.php
<?php
namespace Pyz\Zed\OauthCustomerConnector;
use Spryker\Zed\MerchantRelationshipProductListsRestApi\Communication\Plugin\OauthCustomerConnector\CustomerProductListOauthCustomerIdentifierExpanderPlugin;
use Spryker\Zed\OauthCustomerConnector\OauthCustomerConnectorDependencyProvider as SprykerOauthCustomerConnectorDependencyProvider;
/**
* @method \Spryker\Zed\OauthCustomerConnector\OauthCustomerConnectorConfig getConfig()
*/
class OauthCustomerConnectorDependencyProvider extends SprykerOauthCustomerConnectorDependencyProvider
{
/**
* @return array<\Spryker\Zed\OauthCustomerConnectorExtension\Dependency\Plugin\OauthCustomerIdentifierExpanderPluginInterface>
*/
protected function getOauthCustomerIdentifierExpanderPlugins(): array
{
return [
new CustomerProductListOauthCustomerIdentifierExpanderPlugin(),
];
}
}
Verification
Send request POST https://glue.mysprykershop.com/access-tokens
and make sure that sub
property includes related customer_product_list_collection
.
src/Pyz/Glue/CustomersRestApi/CustomersRestApiDependencyProvider.php
<?php
namespace Pyz\Glue\CustomersRestApi;
use Spryker\Glue\CustomersRestApi\CustomersRestApiDependencyProvider as SprykerCustomersRestApiDependencyProvider;
use Spryker\Glue\MerchantRelationshipProductListsRestApi\Plugin\CustomersRestApi\CustomerProductListCustomerExpanderPlugin;
class CustomersRestApiDependencyProvider extends SprykerCustomersRestApiDependencyProvider
{
/**
* @return array<\Spryker\Glue\CustomersRestApiExtension\Dependency\Plugin\CustomerExpanderPluginInterface>
*/
protected function getCustomerExpanderPlugins(): array
{
return array_merge(parent::getCustomerExpanderPlugins(), [
new CustomerProductListCustomerExpanderPlugin(),
]);
}
}
Verification
Send request GET https://glue.mysprykershop.com/catalog-search
and make sure that response is considering the customers black- and whitelists.
Thank you!
For submitting the form