Enable Batch Inventory Pre-Processing
How-to Guide
Authors:
Girish Padmanabha, Randy Chan
Changed on:
27 May 2025
Key Points
- Inventory Batch Pre-Processing (BPP) occurs before batch inventory updates reach the workflow engine. If you rely on every incoming inventory item hitting the workflow, ensure you configure the job-level meta value appropriately or disable BPP at the relevant account/retailer level. However, we recommend using the job-level option for greater flexibility. Be sure to read through this article in full—especially the “Managing Batch Pre-Processing” section—before making any changes.
- If enabled at an ACCOUNT level, every retailer under that ACCOUNT will have their batch inventory updates pre-processed
- If enabled at RETAILER levels, it will only pre-process updates for that specific retailer
- The RETAILER context setting overrides the ACCOUNT context setting. This allows you to enable the whole account and disable it for specific retailers.
Prerequisites
Steps
Setting up Batch Pre-Processing
Workflow Comparison
The first step is to ensure that your inventory workflows are compatible with Batch Pre-Processing to ensure that they work correctly and won’t impact your inventory accuracy.Batch Pre-Processing is based on the logic within the inventory module. This diagram details the high-level view of the logic.
Signs of a compatible workflow
- Uses the latest inventory module reference workflow and reference plugin
- Transient quantities are either standard/default types or, if custom, are properly input in the batch payload
- Does not rely on unchanged inventory records for further processing
Signs of an incompatible workflow
- The workflow executes logic on unchanged inventory records (which Batch Pre-Processing typically filters out)
Managing Batch Preprocessing (BPP) at Account and Retailer Levels
Batch Pre-Processing is enabled by default. You will notice that the setting `fc.enable.batch.preprocessing` is set to `TRUE` at your configured context level (Account or Retailer). If this setting is not explicitly configured, the default behavior is to enable Batch Pre-Processing for the account.Managing Batch Preprocessing (BPP) at Account and Retailer Levels
The`fc.enable.batch.preprocessing` setting allows you to enable or disable Batch Preprocessing (BPP) at both the Account and Retailer levels, with Retailer-level settings overriding Account-level settings. Here's how it works:Disabling BPP
- At the Account Level:
To disable BPP globally for all Retailers under an Account, set`fc.enable.batch.preprocessing`to`FALSE`at the Account level. This sets a default behavior for all Retailers unless overridden by specific Retailer-level settings. - At the Retailer Level:
To disable BPP for a specific Retailer, set`fc.enable.batch.preprocessing`to`FALSE`for that Retailer. This ensures that BPP is turned off for the selected Retailer, regardless of the Account-level setting.
Enabling BPP
- To Enable BPP Globally:
Set`fc.enable.batch.preprocessing`to`TRUE`at the Account level. This enables BPP for all Retailers within the Account unless explicitly overridden by a Retailer-level setting. - To Enable BPP for a Specific Retailer:
- If the Account-level setting is
`FALSE`, you can enable BPP for a specific Retailer by setting`fc.enable.batch.preprocessing`to`TRUE`for that Retailer. - This Retailer-level setting will take precedence over the Account-level setting, ensuring BPP is enabled only for the desired Retailer.
- If the Account-level setting is
Key Rules and Behavior
- Retailer-Level Overrides: A Retailer-level setting (
`TRUE`or`FALSE`) will always override the Account-level setting for that specific Retailer. - Global Defaults: The Account-level setting acts as the default behavior for all Retailers unless a specific Retailer-level override is applied.
- Case-Insensitive: The value input for
`fc.enable.batch.preprocessing`is not case-sensitive (e.g.,`TRUE`and`true`are treated the same). - Flexible Control: This setup allows for flexible configurations, enabling global control while allowing exceptions at the Retailer level.
`fc.enable.batch.preprocessing` at the appropriate level, you can efficiently manage BPP behavior for both global and specific Retailer contexts.After updating the setting, the new value will take effect within 5 minutes. The handling of all inventory within the batches created under a job will be determined based on the logic defined by the input at the job level, including the `meta` key, as well as the configuration of the `fc.enable.batch.preprocessing` setting. Once the update is applied, the inventory will either be processed through Batch Pre-Processing (BPP) or handled directly according to these combined rules. Refer to the details below for further clarification.Inventory Batch Preprocessing Settings and Behavior in Job API
The
`meta` object allows for the inclusion of additional metadata when creating a Job. The currently supported key within `meta` is `preprocessing`, which can influence whether the Batch Preprocessing Process (BPP) is utilized based on the account's settings.The behavior of the `meta.preprocessing` key is governed by the `fc.enable.batch.preprocessing` configuration setting. Below is a table outlining the expected behavior:`fc.enable.batch.preprocessing `value | `meta.preprocessing` Value | Additional Info in Job Payload | Result |
| true | "preprocessing": "skip" | BPP should not be used | Do not use BPP |
| true | "preprocessing": "enabled" | BPP should be used | Use BPP |
| true | "meta": null or "meta": {} | BPP should be used | Use BPP |
| true | Omitted or previously created Jobs | BPP should be used | Use BPP |
| false | Any value | BPP should not be used (overridden) | Do not use BPP |
- When
`fc.enable.batch.preprocessing`is`true`:- "preprocessing": "skip"
- Action: BPP should not be used.
- "preprocessing": "enabled" ( any value other than "skip" )
- Action: BPP should be used.
- "meta": null or "meta": {}
- Action: BPP should be used.
- Jobs without
`meta`- Action: BPP should be used.
- "preprocessing": "skip"
- When
`fc.enable.batch.preprocessing`is`false`:- Regardless of the
`meta.preprocessing`value (including`null`or omitted)- Action: BPP should not be used.
- Regardless of the
- The fc.enable.batch.preprocessing setting takes precedence over the
`meta.preprocessing`value. If fc.enable.batch.preprocessing is set to`FALSE`, BPP will not be used regardless of the`meta.preprocessing`value. - Ensure that when setting
`meta.preprocessing`, only the supported values (`"skip"`or`"any value not skip"`) are used to avoid unexpected behavior. - A job-level override will affect only the batches containing inventory data created under the specific job, and this impact will remain in effect until the job expires.