Alternative Products + Discontinued Products feature integration

Edit on GitHub
You are browsing a previous version of the document. The latest version is 202307.0.

This document describes how to integrate Alternative Products + Discontinued Products into a Spryker project.

This document describes how to integrate the Alternative Products + Discontinued Products into a Spryker project.

Install feature core

Follow the steps below to install the Alternative Products + Discontinued Products feature core.

Prerequisites

Install the required features:

NAME VERSION INTEGRATION GUIDE
Alternative Products 202204.0 Alternative Products feature integration
Product 202204.0 Product feature integration 0

1) Set up behavior

Register the following plugins:

PLUGIN SPECIFICATION PREREQUISITES NAMESPACE
DiscontinuedCheckAlternativeProductApplicablePlugin Checks if product alternatives should be shown for the product. Expects SKUand idProductConcrete to be set for ProductViewTransfer. Spryker\Client\ProductDiscontinuedStorage\Plugin\ProductAlternativeStorage
DiscontinuedCheckAlternativeProductApplicablePlugin Checks if product alternatives should be shown for the product. None Spryker\Zed\ProductDiscontinued\Communication\Plugin\ProductAlternative

src/Pyz/Client/ProductAlternativeStorage/ProductAlternativeStorageDependencyProvider.php

<?php

namespace Pyz\Client\ProductAlternativeStorage;

use Spryker\Client\ProductAlternativeStorage\ProductAlternativeStorageDependencyProvider as SprykerProductAlternativeStorageDependencyProvider;
use Spryker\Client\ProductDiscontinuedStorage\Plugin\ProductAlternativeStorage\DiscontinuedCheckAlternativeProductApplicablePlugin;

class ProductAlternativeStorageDependencyProvider extends SprykerProductAlternativeStorageDependencyProvider
{
    /**
     * @return \Spryker\Client\ProductAlternativeStorageExtension\Dependency\Plugin\AlternativeProductApplicablePluginInterface[]
     */
    protected function getAlternativeProductApplicableCheckPlugins(): array
    {
        return [
            new DiscontinuedCheckAlternativeProductApplicablePlugin(),
        ];
    }
}

src/Pyz/Zed/ProductAlternative/ProductAlternativeDependencyProvider.php

<?php

namespace Pyz\Zed\ProductAlternative;

use Spryker\Zed\ProductAlternative\ProductAlternativeDependencyProvider as SprykerProductAlternativeDependencyProvider;
use Spryker\Zed\ProductDiscontinued\Communication\Plugin\ProductAlternative\DiscontinuedCheckAlternativeProductApplicablePlugin;

class ProductAlternativeDependencyProvider extends SprykerProductAlternativeDependencyProvider
{
    /**
     * @return \Spryker\Zed\ProductAlternativeExtension\Dependency\Plugin\AlternativeProductApplicablePluginInterface[]
     */
    protected function getAlternativeProductApplicablePlugins(): array
    {
        return [
            new DiscontinuedCheckAlternativeProductApplicablePlugin(), #ProductDiscontinuedFeature
        ];
    }
}
Verification

Make sure that you can see alternatives for products that are marked as discontinued on the product details page.

Store relation

If the Product Labels feature is integrated into your project, make sure to define store relations for Discontinued and Alternatives available product labels by re-importing product_label_store.csv. Otherwise, the product labels are not displayed on the Storefront.