Publishable Stock Explained: Configuration and Best Practices in Novulo

Publishable Stock in Novulo

Why Publishable Stock?

In many implementations, you want to share stock information externally — for example, to webshops, marketplaces, or other systems.
However, the real stock values in Novulo might not always be exactly what you want to publish.
Reasons include:

  • Performance: Prevent constant recalculations and API calls by only publishing when relevant changes happen.

  • Filtering: Exclude certain warehouses, products, or conditions from what’s published.

  • Adjustment: Allow operational or commercial overrides of published quantities.


Use Cases

Publishable stock is useful for both operational and commercial reasons:

  • Operational:

    • Hide products that are temporarily blocked, damaged, or otherwise not ready for sale.

    • Reduce values to prevent overselling when there’s high turnover or uncertain availability.

  • Commercial:

    • Increase published stock to boost sales when incoming deliveries are already confirmed but not yet received.

    • Publish stock for promotional campaigns even if the physical quantity is not yet available.

Note: Manual overrides are possible via N_Overwrite publishable stock for both operational adjustments and commercial strategies.


Central Warehouse vs All Warehouses

Publishable stock is calculated for two main scopes:

  • All warehouses: Aggregates stock from all warehouses flagged for inclusion.

  • Central warehouse: Aggregates stock only from warehouses designated as “central.”

This distinction supports different business models and sales channels that may only sell from specific warehouses.


Warehouse-Level Configuration

At the warehouse level, these features control inclusion in publishable stock:

  • N_Include in publishable stock all warehouses — Yes/No flag to include/exclude this warehouse in the “all warehouses” calculation.

  • N_Include in publishable stock central warehouses — Yes/No flag to include/exclude this warehouse in the “central warehouse” calculation.

By configuring warehouses accordingly, you can tailor publishable stock calculations for various scenarios and channels.


Use Case for “Has Publishable Stock” Flags

To simplify integration and UI logic, Novulo provides helper flags at the product level:

  • N_Has publishable stock all warehouses

  • N_Has publishable stock for central warehouse

These flags indicate whether a product currently has any publishable stock in the respective scope, enabling quick filtering and decision-making without needing to check numeric values.


Special Case: Kit Products

Publishable stock also supports kit products by calculating availability based on their component products.
This avoids overselling kits when one or more components have limited stock.

Important: Do not sum publishable stock values for kit products when calculating total inventory, as this will inflate stock numbers due to shared components.

For more detail on how kits work in Novulo, see the post:
Kit Products in Novulo


Reference Architecture & Components

The following components and features are involved in producing publishable stock:

On N_Product:

  • N_Publishable stock all warehouses (component M7688)

  • N_Publishable stock central warehouse (component M7690)

  • N_Overwrite publishable stock (component M7688)

  • N_Has publishable stock all warehouses (component M7688)

  • N_Has publishable stock for central warehouse (component M7690)

  • N_Publishable stock value per unit (component M7288)

On N_Warehouse:

  • N_Include in publishable stock all warehouses

  • N_Include in publishable stock central warehouses


Configuration – What needs to be set up

Calculation Process

In Process Action Definitions, register the process:
products_set_publishable_stock_values.

Scheduled Task

Register the scheduled task to run the above process.

Process parameters:

Parameter Value
log_for_differences false
not_current_only true
product products:getnull()

Scheduled task parameters:

Parameter Value
timeout 599000 milliseconds
queuing_policy SameScheduledTask:skip

How it works

  • Stock changes (or manual overrides) queue the product for recalculation.

  • The scheduled task picks up queued products, runs the calculation, and updates the publishable_stock value.

  • This value can then be used in interfaces, exports, or API responses — instead of the real-time stock calculation.