Fluent Commerce Logo
Docs

Account per brand vs Retailer per brand solutions analysis

Essential knowledge

Changed on:

17 Apr 2025

Overview

OBJECTIVE: compare the 2 different  FLUENT architectural approaches:
  • 1 account per brand 
  • 1 retailer per brand 

Key points

[Warning: empty required content area]
 Separate Account per brandMultiple Brands per Account
Pros
  • Fully isolated data access per brand
  • Ability to manage discrete Fluent configuration per brand
  • Separate SSO setup per brand
  • Specific plugins (business rules) can be isolated from one brand to another as they are deployed per account
  • Fluent plugin(s) can also be shared by multiple brands. It’s only a matter of deploying them to the different brands accounts (CI/CD process) and allows you to roll out new releases following each brands own release cycle.
  • Can share resources across brands, e.g.:
    • Locations - fulfilment/inventory, customer collection, customer return
    • Products (Product Catalogue)
    • Inventory (Inventory/Virtual Catalogue) for product availability and order fulfilment
    • Customers
    • User accounts
    • Fluent plugins
  • Reduced account setup/maintenance overhead
Cons
  • Additional account setup/maintenance overhead
  • Brands can’t share fluent resources:
    • Locations - fulfilment/inventory, customer collection, customer return
    • Products (Product Catalogue)
    • Inventory (Inventory/Virtual Catalogue) for product availability and order fulfilment
    • Customers
    • User accounts
  • While you have the flexibility to deploy shared rules to different brand / account, it comes with more operational overhead as a change to a common rule will need to be deployed to the multiple brands/accounts using it.
  • Certain Fluent data objects can be viewed/accessed by all brands within an account:
    • Settings, Products, Inventory Catalogue, Virtual Catalogue, Control Groups & Controls
    • Fluent plugins are deployed at account level and are accessible to all retailers under an account
  • A Fluent plugin can be shared by multiple brands by default. The downside is that all changes on one of the shared rules can impact all the retailers using it. Therefore a fix on a shared rule for given brand will need to be tested for all the brand using that rule. Which leads to some strict operational processes as all the brands will have the same release cycle for the shared plugins.
  • Some Fluent configuration is applied at the account level which does not allow you to have a different strategy per brands (= retailers)
    • See Account Settings
    • Batch Pre Processing (BPP)
    • UI manifests (can work around this by creating separate web apps per brand)
  • Multiplication of the number of retailers especially on the development account as multiple retailers would need to be created for the devs and QA who work on multiple brands.
  • Fluent SSO solution configuration is managed at the account level - e.g. a single Fluent SSO environment is provisioned per Fluent account
  • In the case the PRODUCTION account is still account per brand based as it is the case for one of the proposal on the topic, while the sandboxes are using the retailer per brand solution, there could be a misalignment and confusion between the staging environments and the production environ.

Development and QA considerations

Plugins
In both approaches, developers and QAs have the ability to work on the plugin code in parallel. They will be able to create and test their own versions of the code before pushing it to the code repository where it can then be merge into the release candidate branch that can then be tested by the QAs.
Fluent Webapps
A special attention will need to be made on the webapp configuration (Fluent Store / Fluent OMS). Configuring and customising the Fluent webapps are natively done by account. As a consequence, the best solution for brand specific webapps and for SSO enablement per brand is to use the brand per account approach. If the retailer based approach is used, you would need to either configure different webapps per retailer which is not allowing SSO to redirect a user on the relevant brand specific Webapp url by default or control the UI using custom user roles that would act as controls to display brand specific information. Therefore, you will have an unnecessary complexity in the UI manifests which is defining the Fluent webapps.
Operation considerations
While both approaches enables dev, QA and Devops to operate, there’s no limits but flexibility and overhead as mentioned above will need to be considered in that field.
Performance considerations
Since IPUs/IPCs are calculated per account while adding more brands as retailers, you will increase the number of IPUs/IPCs for the entire account and you will need to agree with Fluent on new limits for that metric.Overall, the resources consumptions should be sensitively the same for both solutions as the retailers or accounts should consume the same services resources.Considering the retailer per brand approach, Batch PreProcessing which enables the Fluent to process the batch inventory updates more efficiently will either need to be enabled or disabled for all the brands while the account based brand will allow you to enable or disable BPP per brand. For brands where the majority of the stock level is not changing massively, BPP will enable to absorb the incoming batch inventory update in a timely manner. Therefore having the ability to adapt BPP depending on the brand specificities is a plus. 
Conclusion
The account based brand offers more data isolation between brands, more flexibility and reduce the implementation complexity in most area of a Fluent implementation than the retailer based brand solution. Even though, it’s feasible to implement different solutions such an hybrid one, using retailers on sandboxes and deploy a single brand per prod account, or the fully retailer oriented one, where the same pattern of multiple retailers are set up on sandbox and production, we (ES) do not recommend to use a different approach than the one that is currently used where you have an account per brand and where retailers can be representing the brand’s regions (EU, RNA …).