Product labels + Promotions and Discounts feature integration

Edit on GitHub

This document describes how to install the Product Labels + Promotions & Discounts feature.

Install feature core

Follow the steps below to install the feature core.

Prerequisites

Install the required features:

NAME VERSION INSTALLATION GUIDE
Promotions & Discounts 202311.0 Promotions & Discounts feature integration
Product Labels 202311.0 Product Labels feature integration
Spryker Core 202311.0 Spryker Сore feature integration

1) Set up behavior

Set up the following behaviors:

PLUGIN SPECIFICATION PREREQUISITES NAMESPACE
ProductLabelDiscountableItemCollectorPlugin Collects the cart items with product labels to which a discount should be applied. None Spryker\Zed\ProductLabelDiscountConnector\Communication\Plugin\Collector
ProductLabelListDecisionRulePlugin Defines if a discount can be applied to a cart item with a product label. None Spryker\Zed\ProductLabelDiscountConnector\Communication\Plugin\DecisionRule

src/Pyz/Zed/Discount/DiscountDependencyProvider.php

<?php

namespace Pyz\Zed\Discount;
use Spryker\Zed\Discount\DiscountDependencyProvider as SprykerDiscountDependencyProvider;
use Spryker\Zed\ProductLabelDiscountConnector\Communication\Plugin\DecisionRule\ProductLabelListDecisionRulePlugin;
use Spryker\Zed\ProductLabelDiscountConnector\Communication\Plugin\Collector\ProductLabelDiscountableItemCollectorPlugin;

class DiscountDependencyProvider extends SprykerDiscountDependencyProvider
{
    /**
     * @return \Spryker\Zed\Discount\Dependency\Plugin\DecisionRulePluginInterface[]
     */
    protected function getDecisionRulePlugins()
    {
        return array_merge(parent::getDecisionRulePlugins(), [
            new ProductLabelListDecisionRulePlugin(),
        ]);
    }

    /**
     * @return \Spryker\Zed\Discount\Dependency\Plugin\CollectorPluginInterface[]
     */
    protected function getCollectorPlugins()
    {
        return array_merge(parent::getCollectorPlugins(), [
            new ProductLabelDiscountableItemCollectorPlugin(),
        ]);
    }
}
Verification

Ensure that the plugins work correctly:

  1. Create a discount and define its condition as a query string with a product-label field.
  2. Add a product with the defined product label to the cart.
  3. Verify that the discount is applied to the cart.