conneqt / module-customer-assortment
N/A
Requires
- php: >=8.1
- conneqt/m2-base: *
- cweagans/composer-patches: *
- magento/framework: *
- magento/module-catalog-search: ^102.0
- dev-develop
- 1.1.1
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-feature/INT-50
- dev-feature/improved-get-api
- dev-feature/elasticsearch-filter
- dev-feature/assortment-visibility-extension
- dev-feature/INT-41-cache-support
- dev-feature/INT-45-fixed-customer-id-custom
- dev-feature/INT-40-add-unsupported-features-readme
- dev-feature/INT-30
- dev-feature/INT-13-READ-ME
- dev-feature/INT-11
- dev-feature/INT-17
- dev-feature/INT-16
- dev-feature/INT-10
This package is auto-updated.
Last update: 2024-12-09 07:41:21 UTC
README
Table of Contents
- Customer Assortment Module
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.