Stock Management

Stock Reservation

Stock Reservation prevents automated processes from over-allocating a unit of stock

However, it is possible for a human to override this by manually selecting already reserved stock during Stock Allocation ⁠.

How Stock Reservation Works

Sales Orders

Stock which is allocated to a Sales Order line is always reserved to that Sales Order line.

Quotes

When creating a quote, the user will be asked if stock should be reserved for it. This stock will be reserved until the quote expires⁠.

Draft Orders

Stock allocated to draft orders will never act as a reservation. If the user would like to reserve stock, the draft should be converted to an order⁠.

eCommerce Baskets

Stock that is added to an eCommerce basket will be reserved for that basket for the duration of the user’s session. The reservation status will be automatically cleared one hour after the user becomes inactive⁠.

Stock Locations

Stock that

FAQs

What is Stock Reservation?

Stock Reservation is the process by which stock is reserved to Sales Orders.

How does this work with Purchase Orders?

A similar process is used with stock ordered via a Purchase Order.

Once stock has been ordered from a Supplier, and the stock has been

Can stock reservation be overridden?

Cost Prices

This page outlines the way in which Cost Prices are managed, both against individual units of stock, and directly related to Sales Orders.

The Basics

Cost prices are managed within the Variant Tab, and can also be amended within the CSV Import or by using the Price Management tool.

It is possible to set multiple Cost Prices for a single Variant if your system is enabled for Multiple Suppliers.

When stock is added to the system, it will be stored with a Cost Price. That will usually be based on the default Cost Price but may be adjusted in various ways (more detail below).

When fulfilling orders, IXO Commerce will always prioritise the oldest units of stock available.

Zero vs Null Cost Prices

When a product is created, the Cost Price will be set to 'null', unless a user actively amends it.

A 'null' Cost Price means that one has not been entered, and so IXO Commerce can not use it for any purpose. This includes, but is not limited to:

A 'zero' cost price of £0.00 must be manually entered. If it has been, this will be treated as an absolute value, and will therefore be used by the system as the Cost Price for that item. This includes, but is not limited to:

Stock Adjustments

Stock may be adjusted either through a Manual Stock Adjustment or via the Stock Take screen.

Manual Stock Adjustments

Item Details
Adjusting a Variant When added, stock will be added to the system with a Cost Price that matches the default Cost Price for the Variant
Adjusting a Unique Stock Record When added, stock will be added to the system with a Cost Price that matches the default Cost Price for the Unique Stock Record, if it is different to that stored against the linked Variant

If your product is enabled for Multiple Suppliers and has multiple Cost Prices, when stock is added manually, IXO Commerce will use the lowest Cost Price as the default Cost Price.

Stock Take

Item Details
Stock Taking a Variant When stock level is increased, stock will be added to the system with a Cost Price that matches the default Cost Price for the Variant
  When stock level is decreased, stock will be deducted from the oldest stock records first
Stock Taking a Unique Stock Record When stock level is increased, stock will be added to the system with a Cost Price that matches the default Cost Price for the Unique Stock Record, if it is different to that stored against the linked Variant
  When stock level is decreased, stock will be deducted from the oldest stock records first

If your product is enabled for Multiple Suppliers and has multiple Cost Prices, when stock is added manually, IXO Commerce will use the lowest Cost Price as the default Cost Price.

Purchase Orders

When a Variant is added to a Purchase Order, that line is added at the default Cost Price set for that Variant.

If your product is enabled for Multiple Suppliers and has multiple Cost Prices, when a Variant is added to a Purchase Order, it will use the Cost Price linked to the Supplier attached to that Purchase Order.

Cost Prices may be amended within the Purchase Order.

If the cost price is changed on the purchase order after the stock has been received, it will update the cost price of the unit of stock.

Cost Prices and Sales Orders

Default Function

Item Details
Variants By default, it takes the cost price of the variant as it was at the time the order was created.
  If the default cost price of the variant changes, it does not affect existing sales orders.
Unique Stock Records If a Unique Stock Record exists and has been selected when creating the order, the default cost price of the Unique Stock Record will override the variant cost.

Existing Stock

Item Details
Stock Assignment If stock is assigned from a warehouse/stock location, it will take the cost price from the oldest unit of stock within that location.
  If the order line is for more than one item, the oldest items in that location are allocated to that order line, producing an average cost price.
  The average cost price is calculated from the costs of the allocated units, as only one cost price can be stored per sales order line.

Purchase Orders

Item Details
Order Line Allocation If the order line is allocated/linked to a purchase order, the cost price on the purchase order will override the default cost price.
Goods In When the stock item on the purchase order is received, a new unit of stock is created with a cost price that matches the purchase order. This item is then automatically allocated to the Sales Order.
Changes to Purchase Order If the cost price is changed on the purchase order after the stock has been received, it will update the cost price of the unit of stock and, subsequently, the Sales Order.

Practical Examples

Example 1: Assigning Sales Orders

  1. Order Creation:
    • Variant "Widget A" has a default cost price of £10.00.
    • Sales order created on 01/01/2024 uses this cost price.
    • If the cost price of "Widget A" changes to £12.00 on 02/01/2024, the sales order from 01/01/2024 still uses £10.00.
  2. Unique Stock Record:
    • Unique Stock Record for "Widget A" has a cost price of £11.00.
    • When creating the sales order, this record is selected.
    • The cost price for the sales order line is £11.00, overriding the variant’s default price.

Example 2: Existing Stock

  1. Stock Assignment:
    • Warehouse location "Main" has 3 units of "Widget A" with cost prices £10.00, £11.00, and £12.00 (oldest to newest).
    • Sales order line requests 2 units of "Widget A".
    • The system assigns the two oldest units (cost prices £10.00 and £11.00).
    • The average cost price for the sales order line is £10.50.

Example 3: Purchase Orders

  1. Linking to Purchase Order:
    • Purchase order for "Widget A" has a cost price of £13.00.
    • Sales order line is linked to this purchase order.
    • The cost price for the sales order line is £13.00, overriding the default cost price.
  2. Changes and Despatch:
    • Cost price on the purchase order is changed to £14.00 after receiving stock.
    • The new cost price of £14.00 updates the unit of stock and the sales order.
    • Once the sales order line is despatched, it no longer updates from the purchase order.

Example 4: Stock Adjustments

Example 5: Stock Take

Example 6: Multiple Suppliers

FAQs

What happens if the stock is returned after despatch?

How do I view the cost price history of a variant?

Navigate to the "Inventory" section, select the variant, and view the "Price History".

Stock Allocation

IF YOU AMEND A MTO PRODUCT AFTER IT HAS BEEN ORDERED, IT WILL BREAK FUTURE ALLOCATIONS

 

Stock Allocation

Stock Allocation is the process by which a unit of Stock is added to a Sales Order. This process can be manual or automated.

Stock Allocation is powered by Store Stock and Purchase Orders.

if automated, IXO Commerce will allocate stock based on proximity and age. It will prioritise stock from the selling Store (e.g. the Store in which the Sales Order was created), and will always allocate the oldest units first.

if there is no stock available in the selling store, IXO Commerce will allocate stock from other Stores, if available. stock will be allocated from the Location with the most available stock. other settings at Store and Location level may override that. 

if there is not enough physical stock in the business, IXO Commerce will attempt to allocate stock from open purchase orders, if there is free stock on a purchase order

if there is insufficient stock available (either in the business, or in open purchase orders), then the order will fall into ‘unallocated’ and manual intervention will be required

at minimum, the auto allocation process will run hourly

manual assignment can either be done within the pos, or from the sales order edit screen. function is similar on both, but in the pos, it is not possible to split stock, or to create new purchase orders

to allocate a lpine within the pos, the user must click or tap on the line item. this will open the edit item pop up, and stock may be allocated using the drop down

to allocate a line within the sales order edit screen, the user simply uses the drop down against the relevant sales order line

a user may either

- leave the line as ‘not allocated’ (this will trigger automated allocation processes)
- mark the line as ‘do not allocate’ (this will prevent automated allocated processes)
- allocate existing stock from a location by choosing a location
    - if there is not enough stock in the location for a line, e.g. 5 are neeed and location a only has 2, then a splitstock button will appear. this will allow the user to split the line, so that the first part is fulfilled from location a, and the second part can be allocated separately
- alternatively, a user may create a new purchase order using the tick box to the right of the drop down. that will create a new back to back purchase order linked to this sales order line
    - new purchase orders may also be created from the required orders screen.

---

Overview

Stock Allocation is the process by which a unit of stock is added to a Sales Order. This process can be manual or automated⁠.

Stock Allocation is powered by Store Stock and Purchase Orders⁠.

Automated Stock Allocation

If automated, IXO Commerce will allocate stock based on proximity and age. It will prioritize stock from the selling Store (e.g., the Store in which the Sales Order was created), and will always allocate the oldest units first⁠.

If there is no stock available in the selling store, IXO Commerce will allocate stock from other stores, if available. Stock will be allocated from the location with the most available stock, although other settings at the Store and Location level may override this⁠.

If there is not enough physical stock in the business, IXO Commerce will attempt to allocate stock from open purchase orders, if there is free stock on a purchase order⁠.

If there is insufficient stock available (either in the business or in open purchase orders), then the order will fall into ‘unallocated’ and manual intervention will be required⁠.

At minimum, the auto-allocation process will run hourly⁠.

Manual Stock Allocation

Manual assignment can either be done within the POS or from the Sales Order edit screen. The function is similar in both, but in the POS, it is not possible to split stock or to create new purchase orders⁠.

POS Allocation

To allocate a line within the POS, the user must click or tap on the line item. This will open the edit item pop-up, and stock may be allocated using the drop-down⁠.

Sales Order Edit Screen Allocation

To allocate a line within the Sales Order edit screen, the user simply uses the drop-down against the relevant Sales Order line⁠.

Allocation Options

A user may either:

However, it is possible for a human to override this by manually selecting already reserved stock during Stock Allocation.

FAQs

How does automated Stock Allocation work?

IXO Commerce allocates stock based on proximity and age. It prioritizes stock from the selling Store and allocates the oldest units first⁠.

Can I rely solely on automation?

No, if there is insufficient stock available, the order will fall into ‘unallocated’ and manual intervention will be required⁠⁠.

Is it possible to over allocate?

Store Stock

Stores and Locations

In IXO Commerce, stock is managed at the Store level, with each Store potentially having multiple Locations.

Each Location can be set to one of the following statuses:

Units of Stock

For each item (e.g., a Variant or a Unique Stock Record), there may be multiple units of stock. These units are organized by:

Date Received: When the stock was added to the system (typically the date it was received on a Purchase Order)

Cost Price: The cost to associated with that unit of stock.

This allows for multiple units of the same item to have different cost prices and dates of receipt.

Adding Units of Stock

Units of stock can be created through:

Removing Units of Stock

Units of stock can be removed through:

Practical Examples

Example 1: Multiple Units of Stock

  1. Storing the age of a unit of stock:
    • Variant “Gadget A” has 5 units of stock in the Bristol Store
    • 2 units were received on the 01/05/2024
    • 3 units were received on the 24/02/2024
  2. Storing different Cost Prices:
    • Variant ‘small-pink-shirt’ has 5 units of stock in the London Store
    • 1 is stored at a Cost Price of £5
    • 3 are stored at a Cost Price of £6.50
    • 1 is stored at a Cost price of £7
    • Total value of the stock holding is £31.50

Example 2: Stock Adjustments

Example 3: Stock Take

FAQs

Can I have units of stock with multiple cost prices for the same item?

Yes, IXO Commerce allows you to manage multiple units of the same item with different cost prices and dates of receipt. This helps in accurate cost tracking and inventory management.

Will units of stock be linked to Purchase Orders?

Yes, if a unit of stock was ordered and received as part of a Purchase Order, the Purchase Order Id will be stored alongside the cost price and date or receipt.

What happens if stock units have different dates of receipt?

IXO Commerce allows you to track the date each unit of stock was received, which helps in identifying the age of your stock and managing stock rotation effectively.

Terminology - Stock

Current Stock

This list applies to units which are currently in the business. These terms are used throughout the CMS and the POS. 

Label

Purpose

Stock

Total number of units in the business

 

Includes Available, Reserved and Unavailable

On Hand

Number of units held at the current Store

 

Includes Available and Reserved, but excludes Unavailable

Available

Number of units available for Sales Order fulfilment in the User's current Store

 

This equals 'On Hand' minus 'Reserved'

Reserved

Number of units Reserved to Sales Orders and eCommerce baskets

 

Includes all Sales Order lines which have not been despatched, and excludes orders with the following statuses:

  • Draft
  • Quote (unless 'reserve' manually toggled)
  • Abandoned
  • Cancelled

Also includes units of stock in locations marked as 'Reserved'

Unavailable

Unavailable units, typically damaged or undergoing quality control

 

Number of units held in locations marked as 'Unavailable'

Available Elsewhere Number of Available units elsewhere in the business, e.g. the total amount of Available units in other Stores

Purchase Orders

This list applies to units which are currently on order from a Supplier. These terms are used throughout the CMS and the POS. 

Label Purpose
On Order

Total number of units ordered from the Supplier

 

Typically, this is in relation to the total number of units ordered from a Supplier on a particular Purchase Order

 

This equals 'Allocated' plus 'Unallocated'

Allocated

Total number of units on a Purchase Order allocated to Sales Order lines

 

This equals 'On Order' minus 'Unallocated'

 

This figure includes units on 'Locked' Purchase Orders

Unallocated

Total number of units on a Purchase Order that are free to be allocated

 

This equals 'On Order' minus 'Allocated'

 

Units on a 'Locked' Purchase Order will be excluded from 'Unallocated'

POS

This list includes labels which are only used within the POS.

Label Purpose
Available to order Signifies that there are no units of the SKU within the business, and that there are none on order - fulfilment of a new Sales Order will only be possible following a Purchase Order
Backorder lead time is xxx days Displays the default lead time for the SKU

eCommerce

This list includes labels which are only used within the eCommerce website.

Label Purpose
In Stock

Signifies that there are units available in the business, and that a new Sales Order may be immediately fulfilled

 

An 'In Stock' figure is made up of the total number of Available units in Locations across all Stores enabled for web fulfilment.

Out of Stock

Signifies that there are no units available in the business, and that a new Sales Order may be will not be fulfilled 

 

An 'Out Of Stock' figure is determined by checking the total number of Available units in Locations across all Stores enabled for web fulfilment.

Available (allow XXX days for delivery) Displays the default lead time for the SKU
Low Stock

Signifies that there are only a small number of Available units

 

Triggered if the number of 'In Stock' units is less than the 'Low Stock (order at)' figure on the Inventory tab

Available to pre-order

Signifies that stock is coming into the business, which will be used to fulfil a new Sales Order

 

The appropriate lead time will be displayed in the checkout

 

Only displays if 'allow back order' is not enabled

 

Total number of units available to pre-order equals the total amount of 'unallocated' units for that SKU across all Purchase Orders

Orphan Stock and Stock Matching

Orphan Stock

Orphan stock occurs when a unit of stock becomes disassociated from its original purchase order. This can happen in several ways, such as manual stock adjustments made through the inventory screen or the addition of new stock during a stock take. Another common issue arises when non-existent stock is dispatched—if that stock is later returned, it remains unlinked to any purchase order, further complicating inventory tracking.

Orphan Stock Cost Price

Whenever units of Orphan Stock are created, they will inherit the default cost price for that Variant or Unique Stock Record.

Example 1

A customer has bought a Red Hat. There are no stock records for the Red Hat, but Bob has found one. He packs up the item and marks the order as despatched.

The Sales Order is not linked to a Purchase Order, so the true cost of the item is not known. 

The Cost Price of the Variant as of today is £5.43, so £5.43 is recorded against the Sales Order and is used in margin reporting.

Example 2

In IXO Commerce, Shelf A has 5 Blue Hats that arrived on PO123 at £2.34 each.

During Stock Take, those are not found, and the stock is removed. At the same time, Shelf B is found to have 5 Blue Hats, so these are added.

If there was no link to another stock record, those new ones would be added at today's cost price of £3.45.

Automated Stock Matching will automatically resolve this problem (see below)

Stock Matching

IXO Commerce will attempt to match Orphan Stock Records as best it can, in order to reduce their number. This will occur in a few specific cases:

If automatic Stock Matching is not possible, it will still be possible for a user to manually amend the Cost Price of Orphan Stock Records via the Inventory tab.

Example 1

A customer has bought a Red Hat. There are no stock records for the Red Hat, but Bob has found one. He packs up the item and marks the order as despatched.

The Sales Order is not linked to a Purchase Order, so the true cost of the item is not known. 

The Cost Price of the Variant as of today is £5.43, so £5.43 is recorded against the Sales Order and is used in margin reporting.

There is no matching adjustment, so nothing can be matched automatically.

Example 2

In IXO Commerce, Shelf A has 5 Blue Hats that arrived on PO123 at £2.34 each.

During Stock Take, those are not found, and the stock is removed. At the same time, Shelf B is found to have 5 Blue Hats, so these are added.

Because these Stock Takes took place within a week of one another, IXO Commerce can update the Orphan Stock Records with Purchase Order and Cost Price information; the Stock Records on Shelf B will be linked to PO123, and their cost price will be set to £2.34.