conneqt/module-customer-assortment

N/A

1.1.1 2024-07-09 06:36 UTC

README

Table of Contents

About

The Customer Assortment module empowers your Magento 2 store by introducing an advanced product visibility management system. With this module, you gain the ability to finely tune the visibility of your products based on individual customer preferences, thereby delivering a personalized shopping experience like never before.

Tailor Your Product Offerings

Imagine having the capability to tailor your product catalog to cater to the unique needs and preferences of each customer. The Customer Assortment module makes this a reality. By seamlessly integrating into Magento's product display logic, it allows you to customize which products are visible to specific customers, ensuring that they only see the products that matter most to them.

Enhanced Customer Satisfaction

Customer satisfaction is at the heart of every successful online store. With this module, you can elevate customer satisfaction levels by presenting relevant product recommendations and ensuring that customers are only exposed to items that align with their interests.

Streamlined Shopping Experience

Say goodbye to cluttered product listings and hello to a streamlined shopping experience. By filtering product visibility, you can declutter your storefront and make it easier for customers to discover the products they are genuinely interested in, leading to higher conversion rates and increased sales.

In summary, the Customer Assortment module is your key to unlocking the full potential of customer-centric product visibility management in Magento 2. Tailor your product offerings, enhance customer satisfaction, and streamline the shopping experience to drive your online store's success.

Installation

You can easily install the Customer Assortment module into your Magento 2 project using Composer. Simply run the following command:

composer require conneqt/module-customer-assortment

Composer Requirements

PHP: Requires PHP version 8.1 or higher. \ Magento Framework: Compatible with Magento Framework. \ cweagans/composer-patches: Utilizes the Composer Patches plugin. \ magento/module-catalog-search: Requires Magento Catalog Search module version 102.0 or higher.

Configuration

Navigate to Store Configuration \ Go to your Magento Admin Panel and access the configuration settings: Path: Stores -> Configuration -> Conneqt -> Customer Assortment

Customer Id Attribute \ Select the customer attribute that you wish to be used as the customerId in the module. This attribute can be changed at any time.

Automatically Adjust Customer-Specific Attribute \ You can choose between "Yes" or "No" in this dropdown. When set to "Yes" the module will automatically adjust the customer-specific boolean attribute on products. This attribute determines whether a product should only be visible to customers who have that product in their assortment.

Unsupported Features

While the Customer Assortment Module enhances your Magento 2 store's product visibility management capabilities, it's important to note that certain features and functionalities are currently unsupported or have limitations. Please be aware of the following:

Product Blocks: Any blocks displaying products on your store's frontend are not automatically filtered based on the customer assortment. Products displayed in various widgets, featured sections, or custom blocks will not adapt to customer-specific preferences.

Related Products: The module does not apply filters to related product recommendations. Related products displayed on product pages or in the cart will not take into account individual customer preferences.

Configurable Product Options: Individual product options, such as size, color, or customizations, are not filtered based on the customer assortment. Customers will see the same product options regardless of their preferences.

Grouped Product Child Products: Child products within grouped products are not filtered. Customers will see all child products associated with a grouped product, even if some of them are not part of their assortment.

Layered Navigation Options: While the module enhances product visibility, it may not accurately reflect the total number of products in layered navigation options. Customers might see filters with more results than what's available in their assortment due to how layered navigation is traditionally implemented.

Compatibility with Other Modules: The module has not been extensively tested for compatibility with other third-party modules outside of a clean Magento installation. Ensure thorough testing and compatibility checks when integrating with additional extensions.

Keep these limitations in mind when configuring your Magento 2 store with the Customer Assortment Module. While it provides powerful customer-centric visibility management, certain aspects of your store's frontend and related product recommendations may not fully align with individual customer preferences.

API Documentation

We provide a comprehensive set of APIs to manage customer assortments. Below is an overview of the available endpoints:

[GET] Get Products

Description: Retrieve detailed information about all products in a customer's assortment. \ URL: /V1/product-assortment/getProducts/:customerId

Return Parameters:

products (Array of product references): \ product_sku (String): The SKU (Stock Keeping Unit) of the product. \ external_id (String): External ID associated with the product. \ customer_id (String): Customer ID to which the product belongs. \ entity_id (Int): An internal identifier representing the association between the product and the customer's assortment. \ updated_at (Timestamp): Last time stamp the row was updated. \ created_at (Timestamp): time stamp when the row was created.

[POST] Add Products

Description: Add products to a customer's assortment. When the "cleanup" parameter is set to true, any products in the customer's assortment that are not included in the provided array will be removed. \ URL: /V1/product-assortment/addProducts

Parameters:

customerId (String) \ cleanup (Bool) \ productReferences (Mixed) - Format: { sku : string, external : string }

Return Parameters:

success (True/False) \ invalidReferences (Array of product references with SKUs that do not exist in the product database) \ createdReferences (Array of product references added to the customer's assortment) \ updatedReferences (Array of product references that were updated in database)

[POST] Remove Products

Description: Remove products with the specified SKUs from a customer's assortment. assortment. \ URL: /V1/product-assortment/removeProducts

Parameters:

customerId (String) \ productReferences (Array)

Return Parameters:

removedSkus (Array of SKUs that were removed from the customer's assortment) success (True/False)

[POST] Remove All Products

Description: Remove all products from a customer's assortment, based on the customer ID provided. \ URL: /V1/product-assortment/removeAllProducts

Parameters:

customerId (String)

Return Parameters:

removedSkus (Array of SKUs that were removed from the customer's assortment) success (True/False)

[GET] Has Product

Description: Check if a product with the specified SKU is present in a customer's assortment. \ URL: /V1/product-assortment/hasProduct

Parameters:

customerId (String) productSku (String)

Return Parameters:

hasProduct (True/False) success (True/False)

For more detailed information and examples of API requests and responses, you can refer to our Postman-generated API documentation.

Please note: In Magento, the customer attribute used as customerId can be customized, so it may not always correspond to Magento's default customer ID.