Enabling a store to use available-to-promise (ATP) inventory

During the process of publishing a store, the developer can enable the store to use the available-to-promise (ATP) inventory capabilities. For stores, the developer can choose to enable ATP or not, except for the demand chain reseller hosted store.


  1. Edit the INVENTORYSYSTEM column in the STORE table. If INVENTORYSYSTEM is set to be -1, the store is enabled for ATP.
    Note: Check the value of the ALLOCATIONGOODFOR column in the STORE table. If ALLOCATIONGOODFOR is set to be 0, change the value to a positive number to indicate the expiration time (second) of the inventory allocation.
  2. Use the Catalogs tool to populate the following inventory fulfillment tables by creating a product:
    The BASEITEM, BASEITMDSC, and ITEMSPC inventory tables are handled by the Catalogs tool. When you create a product, these inventory tables are automatically populated. For more information about creating a product with the Catalogs tool, see Creating products.

    However, if you have existing catalog entries and these inventory tables are not populated, you might need to manually populate the tables by using the Data Load utility.

    When these tables are populated, the store can use these ATP functions:

    • ATP functionality of Find Inventory
    • Ad hoc Receipt
    • Adjust Quantity
    • Expected Inventory Records
  3. Establish the behavior of order capture checks that are made during the order capture process by editing the INVENTORYOPFLAGS column in the FFMCENTER table.
    The program code uses the binary bits in this column individually; however, you must enter one decimal integer to represent all the bit settings. Complete the following chart and enter the resulting integer into the field. To use the full capabilities of ATP inventory, enter a result of 0 or 1. Other results limit the ATP inventory functions.
    Flag Operation Enter a value
    1 Enter a value of 0 to have operations accept single order items, or enter a 1 to have operations accept multiple order items.
    2 Enter a value of 0 to have inventory that is always checked, or enter a 2 if you want inventory that is never checked and have the check operation always appear to succeed.
    4 Enter a value of 0 if you want the allocate operation to check inventory and allocate it. Or, enter a 4 if you want the allocate operation to check inventory, but not allocate it (the allocate operation appears to succeed if the check succeeds).
    8 Enter 0 to want back ordering, or enter an 8 if you want the backorder operation to always fail so no inventory is ever backordered.
    Enter the sum of the values you have entered in the rightmost column. This sum is the integer you should enter in the INVENTORYOPFLAGS column Sum =
  4. Specify allocation offsets to modify the time frames that are used to determine inventory allocation by editing the following columns in the STORE table:
    Column name Description
    MAXBOOFFSET The maximum number of seconds that an item can be backordered. If the estimated availability time for a backordered order item exceeds the number of seconds into the future that is specified in this column, the availability date will automatically be set to this many seconds into the future. Thus, an item cannot be backordered longer than the interval specified here. The default value is 7776000 seconds, which equals 90 days.
    DEFAULTBOOFFSET When an estimated availability time cannot be determined for a backordered order item, it will be set to the number of seconds into the future that are specified in this column. The default value is 7776000 seconds, which equals 90 days.
    ALLOCATIONOFFSET Amount of time before the requested shipping date when inventory allocation is performed. This time period provides a buffer for the store to reserve the inventory to the order. This time period also allows for enough time to obtain inventory if there is an insufficient amount. (See REQUESTEDSHIPDATE column in the ORDERITEMS table.) The default value is 86400, which equals 1 day.
    MAXFOOFFSET The maximum time that can be requested for a future shipping date after the date when the requested ship date is entered. (See REQUESTEDSHIPDATE column in the ORDERITEMS table.) The default value is 7776000 seconds, which equals 90 days.
    Note: You can move from non-ATP inventory to ATP inventory. To migrate from non-ATP inventory to ATP inventory, you must manually set it up:
    1. In the INVENTORYSYSTEM column in the STORE_ID (store_id) table, ensure INVENTORYSYSTEM=-1.
    2. Remove the non-ATP data if the data is no longer needed. For more information about deleting the non-ATP data, see: Example: Deleting non-ATP inventory.
    3. Manually populate the database tables by using the data load utility. For more information about loading ATP inventory, see: Example: Inserting and replacing ATP inventory and Inventory samples.
      Important: You can find the sample data in the WCInstallDIR\samples\DataLoad\Inventory folder.