Adobe Commerce Connector Setup and Configuration
Author:
Fluent Commerce
Changed on:
16 Sept 2024
Key Points
- This guide covers setting up a fresh new Adobe Connector in the below-required systems:
- Fluent OMS information details (account credentials, client secret, etc.)
- Adobe Commerce
- This guide does not cover:
- The standard setup of Fluent OMS, this guide is explicitly for the Fluent Adobe Connector configuration.
- Detail on how to migrate an existing Adobe Commerce to use Fluent OMS.
- Please get in touch with Fluent Expert Services for guidance on any migration.
Steps
Fluent Extension Configuration
Instructions
This step is to create an extension configuration in Adobe Commerce
Set the Correct Context
Log in to the Adobe Commerce Admin, navigate to
`Store > Settings > Configuration > Fluent Commerce > Connector`
Fluent Credential Settings
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 |
Global scope
Website scope
General Settings
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 |
Global Scope
Website Scope
Product Settings
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 Settings
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 |
Global scope
Website scope
Order Settings
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 |
Customer Settings
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 |
Order Update Webhook
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 |
Consignment Webhook
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 |
Store Locator Settings
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 |
Category Settings
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 |
Product Availability Settings
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 |
Luma Sample Components
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 |
Order Status Configuration
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.
Add Sources and Stock
Instructions
This step is to configure the source and stock in Adobe Commerce to allow receiving inventory updates from Fluent.
Setup Sources
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.
Setup Stock
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.
Fluent OMS Configuration Checklist
Make sure all the below configurations are set up in Fluent OMS per retailer if required
Instructions
Standard Fluent Account setup
- Retailer
- Permissions
- Settings
- Reject Location (optional)
- Carrier (optional)
- Other configs such as; Workflow, Product Catalogue, Control Groups & Controls, etc.
Virtual Catalogues
- BASE - configured and used in fulfillment options workflows
- ATS - aggregate stock synchronized with Adobe Commerce
Location Networks
- BASE (CLICK_AND_COLLECT & HOME_DELIVERY) - configured and used in fulfillment options workflows
- ATS - all locations which contribute to the ATS Virtual Catalogue
- CLICK_AND_COLLECT - a network for click-and-collect locations/pickup locations in Adobe Commerce
Configure Fluent OMS Workflows
Instructions
Typically the workflows and plugins are pre-installed on new environments but contact Fluent Expert Services in case they are missing.
Product and Category Workflow
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 Options workflow
Fulfilment option workflow is required for both Click and Collect and Home Delivery. No special configuration is necessary besides having the correct workflow settings.
Orders workflow
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]