Author:
Fluent Commerce
Changed on:
16 Sept 2024
This step is to create an extension configuration in Adobe Commerce
Log in to the Adobe Commerce Admin, navigate to
`Store > Settings > Configuration > Fluent Commerce > Connector`
Credential configurations are split between 2 scopes: Global and Website. This is necessary to support multi-website where each can connect to its counterpart at Fluent OMS or have a special dedicated configuration.
Settings | Value | Scope |
Webhook Public Key | Webhook signature validation key - Available keys | global |
Account Id | Fluent Account ID | website |
Fluent API Hostname | Fluent API URL without the protocol. Example acmeinc.sandbox.api.fluentretail.com | website |
Retailer ID | Fluent Retailer ID | website |
Integration Username | Fluent API username | website |
Integration Password | Fluent API password | website |
Client Secret | Fluent API client secret |
Common settings used by the extension.
Settings | Value | Scope |
Product Catalogue ID | The ID of the product catalogue. This is used by both Product and Order integration and can be different between sites. | website |
Disable Inventory Reservation | Disable internal inventory reservation/deduction when placing orders. Fluent will push inventory updates as they are depleted or replenished. The default setting is disabled and it is recommended to leave it like so. | website |
Send Failure Notification | Boolean value to enable or disable sending failure notifications on errors | global |
Error Email Sender | Variable to hold comma-separated email addresses | global |
Product integration will push products from Adobe Commerce to Fluent OMS. Although this is not required for the extension to function, products must exist in Fluent OMS for orders to be fulfilled. Each website can have its own Fluent OMS product catalogue configuration and the integration will only push products that are assigned to the website in Adobe.
Settings | Value | Scope |
Enable product integration | Enable the integration for the website. | website |
Enabled Logging | Enable integration logging. | global |
Sync Batch Size | Queue size to process items being synchronized. Note that this value cannot be over 1000. The default value is a reasonable amount and should not be changed unless required. | global |
Inventory integration will bring aggregate stock positions from Fluent. The configuration expects a virtual catalogue id that can be configured per website as well as fine control if this integration should run for each website or not.
Settings | Value | Scope |
Enable inventory integration | Enable the integration for the website | website |
Enabled Logging | Enable integration logging | global |
Fluent Virtual Catalogue ID | Fluent virtual catalogue mapped to aggregate virtual positions in Fluent. | website |
Source Prefix | Adobe Source prefix. Used to dynamically assign inventory brought from fluent to the correct website source. It requires the source to have been pre-configured prior to running the inventory sync. | website |
Sync Batch Size | Queue size to process items being synchronized. Note that this value cannot be over 1000. The default value is a reasonable amount and should not be changed unless required. | global |
Sync Frequency | How often the integration will run. | global |
These settings will enable Adobe to publish new orders to Fluent OMS.
Settings | Value | Scope |
Enable order integration | Enable the integration for the website. | website |
Enabled Logging | Enable integration logging. | global |
Order Publish Status | The integration will only publish orders to Fluent when the order reaches a certain status within Adobe. It is possible to configure multiple statuses by separating them with commas. | website |
Whenever an order is placed, the customer may be required to be pushed to Fluent before the order. This is a mandatory extension and it’s not possible to disable it.
Settings | Value | Scope |
Enabled Logging | Enable integration logging. | global |
Fluent will submit order-level updates to Adobe based on Fluent’s workflow configuration. The extension will listen to messages named
`OrderStatusChanged`
Settings | Value | Scope |
Enable order update integration | Enable the integration for all websites. It’s currently not possible to enable per website. | global |
Enabled Logging | Enable integration logging | global |
Enable shipment processing | Creates a shipment for all order lines based on order status updates. Note that all items in the order will be added to a single shipment regardless of how they have been picked (fully or short-picked). Not to be used in conjunction with Consignment updates. | website |
Fluent order status to create shipments | Status to trigger the creation of shipments. | website |
Enable Invoice Processing | Enable invoice creation based on when the order reaches a certain fluent status. | website |
Order status to create invoice | Fluent status to trigger invoice creation. The field is not case-sensitive. Can hold multiple statuses comma separated. | website |
Enable Refund Processing | Enable order refund based on when the order reaches a certain fluent status. | website |
Order status to create refund | Fluent status to trigger the order refund. The field is not case-sensitive. Can hold multiple statuses comma separated. | website |
Enable Cancel Processing | Enable order cancellation based on when the order reaches a certain fluent status. Can hold multiple statuses comma separated. | website |
Order status to cancel the order | Fluent status to trigger the order cancellation. The field is not case-sensitive. Can hold multiple statuses comma separated. | website |
Fluent will submit consignment and fulfilment updates to Adobe based on Fluent’s workflow configuration. The extension will listen to messages named
`ConsignmentStatusChanged`
`FulfilmentStatusChanged`
Settings | Value | Scope |
Enable consignment update integration | Enable the integration for all websites. It’s currently not possible to enable per website. | global |
Enabled Logging | Enable integration logging. | global |
Consignment status to create or update shipments | Fluent consignment status that should be processed by integration. The field is not case-sensitive. Can hold multiple statuses comma separated. | website |
The store locator is a custom entity storing the locations from Fluent. These stores are going to hold the details of each store and use the product availability feature to display information about the store.
Settings | Value | Scope |
Enable store location integration | Enable the integration for all websites. It’s currently not possible to enable per website. | website |
Enabled Logging | Enable integration logging. | global |
Network | Name of the network that is associated with the website/retailer. This allows different websites to have a different list of stores. | website |
Click and Collect network | Name of the network holding stores that can accept click and collect. | website |
Sync frequency | How often the integration will run. | global |
Pushes categories from Adobe Commerce to Fluent OMS. By default, the product integration will have category references which means this integration must also be enabled. The product sync will fail when a product has a reference to a category that does not exist when Fluent utilises the default product upsert workflow. Category sync can be disabled but it requires some customization of the product sync to map products to an existing standard category - this topic is covered in the extended section of the connector.
Settings | Value | Scope |
Enable category integration | Enable the integration for the website. | website |
Enabled Logging | Enable integration logging. | global |
Category Sync Batch size | Queue size to process items being synchronized. Note that this value cannot be over 1000. The default value is a reasonable amount and should not be changed unless required. | website |
Sync frequency | How often the integration will run. | website |
Enables product availability services within Adobe Commerce. This is an optional extension and if enabled it requires the store locator extension to also be enabled.
Settings | Value | Scope |
Enable Product Availability integration | Enable the integration for the website. | website |
Enabled Logging | Enable integration logging. | global |
The extension contains sample widgets for product availability checks at the product page and checkout. It also allows placing click-and-collect orders.
Settings | Value | Scope |
Enable Product Availability integration | Enable the integration for the website. | website |
Enabled Logging | Enable integration logging. | global |
This configuration allows the translation of Fluent order status into the equivalent order status in Adobe. It is possible to either update the existing status or create a new one.
This step is to configure the source and stock in Adobe Commerce to allow receiving inventory updates from Fluent.
Navigate to
`Stores > Inventory > Sources`
This will display a list of sources (locations)
When setting it up for the first time, the default source will be the only source available. This step is to create one source per website and each of these sources will hold the consolidated stock count for each product for each website. The name of this source is important as it will be referenced by the inventory integration.
Required fields: Name and code follows a certain naming convention that has been specified on the previous step at the inventory configuration. In this step you should take the prefix specified at the inventory step and append the retailer ID at the end like shown on the picture.
You may be asked to fill other fields of the source in order to save it. This extra information is not relevant for integration but required by Adobe.
Stock will link the aggregate inventory position to a website. This setup may vary per project and the screenshot below shows a single website linking it to the only source created.
Make sure all the below configurations are set up in Fluent OMS per retailer if required
Typically the workflows and plugins are pre-installed on new environments but contact Fluent Expert Services in case they are missing.
Both product and category should use the workflow with the ability to UPSERT. This workflow will handle creating or updating products or categories.
The extension expects the following rulesets
`UPSERT_CATEGORY`
`UPSERT_PRODUCT`
Fulfilment option workflow is required for both Click and Collect and Home Delivery. No special configuration is necessary besides having the correct workflow settings.
In order to push order, fulfilment and consignment updates to Adobe Commerce the following rules are required to be present at the workflows.
1{
2 "name": "SendOrderStatusWebhook",
3 "description": "Sends a webhook for the fulfilment",
4 "type": "ORDER",
5 "eventType": "NORMAL",
6 "rules": [
7 {
8 "name": "MAGENTO.commonv2.SendWebhook",
9 "props": {
10 "webhookName": "OrderStatusChanged",
11 "webhookEndpoint": "https://<adobe-hostname>/fluent/webHook/order"
12 }
13 }
14 ],
15 "triggers": [
16 {
17 "status": "BOOKED"
18 },
19 {
20 "status": "PICK_PACK"
21 },
22 {
23 "status": "AWAITING_COURIER_COLLECTION"
24 },
25 {
26 "status": "COMPLETE"
27 },
28 {
29 "status": "ESCALATED"
30 },
31 {
32 "status": "CANCELLED"
33 },
34 {
35 "status": "REFUNDED"
36 }
37 ],
38 "userActions": []
39}
Language: json
Name: Order update webhook
Description:
[Warning: empty required content area]1{
2 "name": "SendFulfilmentStatusWebhook",
3 "description": "Sends a webhook for the fulfilment",
4 "type": "FULFILMENT",
5 "eventType": "NORMAL",
6 "rules": [
7 {
8 "name": "MAGENTO.commonv2.SendWebhook",
9 "props": {
10 "webhookName": "FulfilmentStatusChanged",
11 "webhookEndpoint": "https://<adobe-hostname>/fluent/webHook/order"
12 }
13 }
14 ],
15 "triggers": [
16 {
17 "status": "PROCESSING"
18 },
19 {
20 "status": "AWAITING_WAVE"
21 },
22 {
23 "status": "ASSIGNED"
24 },
25 {
26 "status": "REJECTED"
27 },
28 {
29 "status": "FULFILLED"
30 },
31 {
32 "status": "PARTIALLY_FULFILLED"
33 },
34 {
35 "status": "AWAITING_COURIER_COLLECTION"
36 },
37 {
38 "status": "EXPIRED"
39 },
40 {
41 "status": "COMPLETE"
42 },
43 {
44 "status": "ESCALATED"
45 }
46 ],
47 "userActions": []
48}
Language: json
Name: Fulfilment webhook
Description:
[Warning: empty required content area]1{
2 "name": "SendConsignmentStatusWebhook",
3 "description": "Sends a webhook for the consignment",
4 "type": "CONSIGNMENT",
5 "eventType": "NORMAL",
6 "rules": [
7 {
8 "name": "MAGENTO.commonv2.SendWebhook",
9 "props": {
10 "webhookName": "ConsignmentStatusChanged",
11 "webhookEndpoint": "https://<adobe-hostname>/fluent/webHook/order"
12 }
13 }
14 ],
15 "triggers": [
16 {
17 "status": "PROCESSING"
18 },
19 {
20 "status": "ACTIVE_LODGED"
21 }
22 ],
23 "userActions": []
24}
Language: json
Name: Consignment webhook It is recommended to only send consignment updates when the consignment is being dispatched or ready to collect by the courier. The extension does not have the logic to re-construct the consignment in Adobe if Fluent makes modifications to them. Although it is possible to send a webhook to have the consignments created in Adobe and a subsequent webhook to update the tracking url.
Description:
[Warning: empty required content area]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.