Changed on:
17 Oct 2023
The Product Module is responsible for synchronizing products from Adobe Commerce to Fluent.
Key features:
There are three types of synchronization available
Although they are initiated differently, they use the same flow as described below.
Products are added to Adobe’s message queue and a dedicated message consumer will handle the message and export the data to Fluent.
Executed manually from the Magento CLI and it is supposed to be used right after module installation to export all the products into Fluent. It adds all products into the message queue for a full initial load on Fluent.
`1bin/magento fluent:product_full:push`
Use this option to synchronize products manually. The number of products pushed will depend on the date selected. The extension will look for products that have been modified from the date specified up to the moment the synchronization starts running.
This is an automated synchronization that runs in the background to keep Fluent up to date. This synchronization is based on MySql DB triggers and a custom Adobe Commerce indexer. There are 4 tables being observed for modification and these hold the most critical and important product information.
Mysql triggers-based solution guarantees that any product modification is handled: manual changes from Adobe’s admin console, updates via custom modules, and direct SQL queries which are widely used during import.
An introduced indexer
`FluentConnector\Product\Model\Indexer\Product`
`FluentConnector\Product\Model\MessageQueue\ProductSyncConsumer`
A builder pattern is used to build API payloads for each product to be synchronized: class
`FluentConnector\Product\Model\Request\BuildProductPayload`
`FluentConnector\Product\Model\Request\Data\ProductType\Simple`
`FluentConnector\Product\Model\Request\Data\ProductType\Configurable`
List of events that allow product payload modification without overwriting classes.
Name | Description | Parameters |
fluent_send_products_prepare_simple_variant_product_before | Event after the products to be pushed are read from the database | collection |
fluent_send_products_prepare_simple_variant_product_data_after | Allows customization of each variant property | product-payload of type array product |
fluent_send_products_prepare_simple_standard_product_before | Event after the products to be pushed are read from the database | collection |
fluent_send_products_prepare_simple_standard_product_data_after | Allows customization of each standard product property | product-payload of type array product |
fluent_send_products_prepare_configurable_product_before | Event after the products to be pushed are read from the database | collection |
fluent_send_products_prepare_configurable_product_data_after | Allows customization of each configurable product property | productInfo of type array |
fluent_send_products_query_build_after | Allows customization of product push async event | productMessage of type EventMessageInterface |
fluent_send_products_before | Event before products are pushed to Fluent | productIds of type array |
fluent_send_products_after | Event after products are successfully pushed to Fluent | productIds of type array |
Copyright © 2024 Fluent Retail Pty Ltd (trading as Fluent Commerce). All rights reserved. No materials on this docs.fluentcommerce.com site may be used in any way and/or for any purpose without prior written authorisation from Fluent Commerce. Current customers and partners shall use these materials strictly in accordance with the terms and conditions of their written agreements with Fluent Commerce or its affiliates.