# General

# 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

If a Stock Location is set toe 'reserved' then all stock in that location will be considered reserved, even though it is not linked to a Sales Order.

## Stock Reservation and Integrations

When an order is exported to an ERP, the ERP deducts the stock on its side and sends back an updated available quantity. A settings has been added to the platform to take this into account. Without this setting, the platform would reserve stock a second time against a figure that already has the deduction applied — a double reservation.

<table border="1" id="bkmrk-step-free-stock-1-st" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 7.74648%;"></col><col style="width: 51.2542%;"></col><col style="width: 40.9885%;"></col></colgroup><thead><tr><td>  
</td><td>Step</td><td>Free Stock</td></tr></thead><tbody><tr><td>1

</td><td>Stock on hand</td><td>10</td></tr><tr><td>2</td><td>Sold, not yet dispatched</td><td>5 (reserved against total available)</td></tr><tr><td>3</td><td>Order exported to ERP; ERP reports back</td><td>5 remaining</td></tr><tr><td>4</td><td>Risk without the config</td><td>Those 5 get reserved again → double reservation</td></tr></tbody></table>

<p class="callout warning">If you have an integration that uses this function, please speak to Iconography to ensure that this is configured correctly. </p>

## 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?

Yes - it is possible to over allocate a single unit of stock. More information is available [here](https://bookstack.iconography.co.uk/books/general/page/stock-allocation).

# 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:

- calculating the total price of Purchase Orders (e.g. an error message will be shown)
- calculating the profit margin of an order (e.g. the unit of stock will be excluded, both as a revenue and as a cost)
- profit margin in reporting (e.g. the unit of stock will be excluded, both as a revenue and as a cost)
- stock holding (e.g. the unit of stock will be excluded from the report)

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:

- calculating the total price of Purchase Orders
- calculating the profit margin of an order (e.g. that line would be 100% profit)
- profit margin in reporting (e.g. sales of that unit of stock would be 100% profit)
- stock holding (e.g. the stock holding for that unit of stock will be £0.00)

## Stock Adjustments

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

### Manual Stock Adjustments

<table id="bkmrk-item-details-adjusti"><thead><tr><th>**Item**</th><th>**Details**</th></tr></thead><tbody><tr><td>*Adjusting a Variant*</td><td>When added, stock will be added to the system with a Cost Price that matches the default Cost Price for the Variant</td></tr><tr><td>*Adjusting a Unique Stock Record*</td><td>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</td></tr></tbody></table>

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

<table id="bkmrk-item-details-stock-t"><thead><tr><th>**Item**</th><th>**Details**</th></tr></thead><tbody><tr><td>*Stock Taking a Variant*</td><td>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</td></tr><tr><td> </td><td>When stock level is decreased, stock will be deducted from the oldest stock records first</td></tr><tr><td>*Stock Taking a Unique Stock Record*</td><td>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</td></tr><tr><td> </td><td>When stock level is decreased, stock will be deducted from the oldest stock records first</td></tr></tbody></table>

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](https://www.notion.so/Multiple-Suppliers-78ec2a384edb4821b28e7fd7cdb8fc93?pvs=21) 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.

<p class="callout warning">The link to the purchase order is broken once the line has been despatched. If returned, the unit of stock will not be updated by changes against the purchase order.</p>

## Cost Prices and Sales Orders

Cost Prices are linked to Sales Order Lines, and are used for margin reporting throughout IXO Commerce.

### Default Function

<table id="bkmrk-item-details-variant"><thead><tr><th>**Item**</th><th>**Details**</th></tr></thead><tbody><tr><td>*Variants*</td><td>By default, it takes the cost price of the variant as it was at the time the order was created.</td></tr><tr><td> </td><td>If the default cost price of the variant changes, it does not affect existing sales orders.</td></tr><tr><td>*Unique Stock Records*</td><td>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.</td></tr></tbody></table>

### Existing Stock

<table id="bkmrk-item-details-stock-a"><thead><tr><th>**Item**</th><th>**Details**</th></tr></thead><tbody><tr><td>*Stock Assignment*</td><td>If stock is assigned from a warehouse/stock location, it will take the cost price from the oldest unit of stock within that location.</td></tr><tr><td> </td><td>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.</td></tr><tr><td> </td><td>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.</td></tr></tbody></table>

### Purchase Orders

<table id="bkmrk-item-details-order-l"><thead><tr><th>**Item**</th><th>**Details**</th></tr></thead><tbody><tr><td>*Order Line Allocation*</td><td>If the order line is allocated/linked to a purchase order, the cost price on the purchase order will override the default cost price.</td></tr><tr><td>*Goods In*</td><td>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.</td></tr><tr><td>*Changes to Purchase Order*</td><td>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.</td></tr></tbody></table>

## 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

- Variant "Gadget B" has a default cost price of £15.00.
- On 03/01/2024, 5 units of stock are manually added via a Stock Adjustment.
- These units are now in the system at the cost price of £15.00, matching the default cost price at time of the Stock Adjustment.

### Example 5: Stock Take

- Warehouse "North" has 10 units of "Gadget C" with varying cost prices.
- During a stock take, it is discovered that 2 units are damaged and removed from the system.
- The system deducts the 2 oldest units first, adjusting the average cost price accordingly.

### Example 6: Multiple Suppliers

- Variant "Tool D" has cost prices from Supplier A (£20.00) and Supplier B (£18.00).
- A purchase order is created with Supplier B, setting the cost price to £18.00.
- When stock is manually added, the system uses the lowest cost price, which is £18.00.

## FAQs

### What happens if the stock is returned after despatch?

The link to the purchase order is broken once the line has been despatched. If returned, the unit of stock will not be updated by changes against the purchase order.

### 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

## 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⁠.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-08/scaled-1680-/6iLimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-08/6iLimage.png)

Units of stock are displayed per Location/Purchase Order, with clear indicators for quantities On Hand/Reserved/On Order/Allocated.

For definitions on these terms, please see [Stock Terminology](https://bookstack.iconography.co.uk/books/general/page/stock-terminology).

#### 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:

- Leave the line as ‘not allocated’ (this will trigger automated allocation processes)⁠ and flag the Sales Order Line to be shown in [Required Orders](https://bookstack.iconography.co.uk/books/required-orders "Required Orders") if it meets the other criteria
- Mark the line as ‘do not allocate’ (this will prevent automated allocation processes)⁠⁠ and flag the Sales Order Line to be shown in [Required Orders](https://bookstack.iconography.co.uk/books/required-orders "Required Orders") if it meets the other criteria
- 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 needed and location A only has 2, then a split stock 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⁠
    - 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](https://bookstack.iconography.co.uk/books/required-orders "Required Orders") screen⁠
- 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.

### Overallocation

A Sales Order Line may become overallocated for a variety of reasons. These include (but are not limited to):

- a stock take has reduced the amount of stock available in an allocated location
- a user has manually over allocated multiple orders to the same stock location
- fewer units than expected were received via a Purchase Order

<p class="callout info">It may also be that there is a Sales Order Line that can not be allocated as the quantity required is larger than the quantity available in any given stock location; for order lines like this, it may be necessary to treat it as an overallocation</p>

#### Resolving Overallocation

This can be achieved via the Split Stock button on the [Sales Order](https://bookstack.iconography.co.uk/books/sales-orders/chapter/sales-orders-detail "Sales Orders (Detail)") page:

1\. This order is overallocated

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-08-28/4d285644-f153-4c00-8041-35c5a13da75a/user_cropped_screenshot.webp?tl_px=0,0&br_px=822,346&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=494,515)

2\. Click "Split stock"

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-08-28/0f2f1136-08c3-4762-b59b-1ec7187096a5/ascreenshot.jpeg?tl_px=0,400&br_px=1376,1169&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=140,277)

3\. This will split the problematic Sales Order Line into two lines; this will retain the same price, date added, etc., in order to maintain reporting integrity

4\. The lines will still be allocated to the same Stock Location, so you will need to change this using the Allocation drop down

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-08-28/fe5d95a4-87b0-4674-bcc8-178f5634027b/ascreenshot.jpeg?tl_px=213,35&br_px=1589,804&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=524,277)

5\. Choose your new Location/Purchase Order

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-08-28/a1902f0c-cc0f-4f2f-8bdd-f6f1d3b41b3c/ascreenshot.jpeg?tl_px=251,168&br_px=1628,937&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=524,277)

6\. Click "Update items"

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-08-28/528224a5-3c55-44a5-b97a-635b26060c77/ascreenshot.jpeg?tl_px=544,167&br_px=1920,936&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=988,277)

7\. Repeat these steps if necessary

8\. This will have resolved the stock overallocation

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-08-28/09e58020-800a-4866-8b75-8b56931ec4bc/user_cropped_screenshot.webp?tl_px=272,215&br_px=1648,984&force_format=jpeg&q=100&width=1120.0)

## 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?

Yes - within the CMS a user may assign the same unit of stock to multiple Sales Order Lines. This will result in over allocation (see above).

# 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:

- Available: Stock is available for order fulfillment.
- Unavailable: Stock is not available for Sales Order fulfillment (typically used for damaged stock).
- Reserved: Stock is reserved and cannot be used for Sales Order fulfillment.

### 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:

- Manual adjustments
- Stock take
- Purchase ordering

### Removing Units of Stock

Units of stock can be removed through:

- Manual adjustments
- Stock take
- Supplier returns
- Sales Order fulfillment

## 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

- Variant "Gadget B" has a default cost price of £15.00.
- On 03/01/2024, 5 units of stock are manually added via a Stock Adjustment.
- These units are now in the system at the cost price of £15.00, matching the default cost price at time of the Stock Adjustment.

### Example 3: Stock Take

- Warehouse "North" has 10 units of "Gadget C" with varying cost prices.
- During a stock take, it is discovered that 2 units are damaged and removed from the system.
- The system deducts the 2 oldest units first, adjusting the average cost price accordingly.

# 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.

# Stock Terminology

### Current Stock

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

<table border="1" id="bkmrk-label-purpose-stock-" style="border-collapse: collapse; width: 100%; height: 664.734px;"><colgroup><col style="width: 50.0586%;"></col><col style="width: 49.9414%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Label</td><td class="align-center" style="height: 29.7969px;">Purpose

</td></tr></thead><tbody><tr style="height: 63.3906px;"><td style="height: 63.3906px;">Stock</td><td style="height: 63.3906px;">*Total number of units in the business*

*Includes Available, Reserved and Unavailable*

</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">On Hand</td><td style="height: 63.3906px;">*Number of units held at the current Store*

*Includes Available, Reserved and Unavailable*

</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">Available</td><td style="height: 63.3906px;">*Number of units available for Sales Order fulfilment in the User's current Store*

*This equals On Hand minus Reserved and Unavailable*

</td></tr><tr style="height: 210px;"><td style="height: 210px;">Reserved</td><td style="height: 210px;">*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'](https://bookstack.iconography.co.uk/books/stores/page/summary)*

</td></tr><tr style="height: 85.7812px;"><td style="height: 85.7812px;">Unavailable</td><td style="height: 85.7812px;">*Unavailable units, typically damaged or undergoing quality control*

*Number of units held in locations marked as ['Unavailable'](https://bookstack.iconography.co.uk/books/stores/page/summary)*

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Available Elsewhere</td><td style="height: 29.7969px;">*Number of Available units elsewhere in the business, e.g. the total amount of Available units in other Stores*</td></tr></tbody></table>

### 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.

<table border="1" id="bkmrk-label-purpose-on-ord" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr><td>Label</td><td>Purpose</td></tr></thead><tbody><tr><td>On Order</td><td>*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'*

</td></tr><tr><td>Allocated</td><td>*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*

</td></tr><tr><td>Unallocated</td><td>*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'*

</td></tr></tbody></table>

### POS

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

<table border="1" id="bkmrk-label-purpose-availa" style="border-collapse: collapse; width: 100%; height: 148.984px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Label</td><td style="height: 29.7969px;">Purpose</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Available to order</td><td style="height: 29.7969px;">*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*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Backorder lead time is xxx days</td><td style="height: 29.7969px;">*Displays the default lead time for the SKU*</td></tr></tbody></table>

### eCommerce

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

<table border="1" id="bkmrk-label-purpose-in-sto" style="border-collapse: collapse; width: 100%; height: 148.984px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Label</td><td style="height: 29.7969px;">Purpose</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">In Stock</td><td style="height: 29.7969px;">*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](https://bookstack.iconography.co.uk/books/stores/page/summary).*

</td></tr><tr><td>Out of Stock</td><td>*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](https://bookstack.iconography.co.uk/books/stores/page/summary).*

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Available (allow XXX days for delivery)</td><td style="height: 29.7969px;">*Displays the default lead time for the SKU*</td></tr><tr><td>Low Stock</td><td>*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](https://bookstack.iconography.co.uk/books/categories/page/inventory "Inventory") tab*

</td></tr><tr><td>Available to pre-order</td><td>*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*

</td></tr></tbody></table>

# Orphan Stock and Stock Matching

### Orphan Stock

<article class="text-token-text-primary w-full" data-scroll-anchor="true" data-testid="conversation-turn-2" dir="auto" id="bkmrk-orphan-stock-occurs-">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](https://bookstack.iconography.co.uk/books/stock-take "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.

</article>#### 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.

<p class="callout info">Automated Stock Matching will automatically resolve this problem (see below)</p>

### 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 adjustments are made within a week of each other, for the same SKU
- If adjustments take place within the same store

<p class="callout info">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](https://bookstack.iconography.co.uk/books/categories/page/inventory "Inventory") tab.</p>

##### 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.

<p class="callout warning">There is no matching adjustment, so nothing can be matched automatically.</p>

##### 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.

<p class="callout success">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.</p>

# Despatching Order Lines without Stock

It is possible to dispatch line items without stock, either through the POS or via the CMS (order detail screen).

### POS

A user may manually mark a line as despatched; they are also despatched when Completing an order.

<p class="callout info">A system setting is available to prevent dispatching items without stock in the POS.</p>

### CMS

It is always possible to despatch without stock from the CMS Sales Order screen.

### Reporting

If a Sales Order line is despatched without stock, an entry will be made in the [Stock Discrepancy](https://bookstack.iconography.co.uk/books/stock-reports/page/stock-discrepancy "Stock Discrepancy") report.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-08/scaled-1680-/m4Bimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-08/m4Bimage.png)

## FAQs

#### Why allow despatch of items without stock?

In most cases, businesses want to tightly control stock levels so that only available inventory can be sold or dispatched. However, there are practical situations where allowing dispatch without stock is not just useful, but necessary:

1. **Stock Accuracy Issues** – Real-world operations sometimes suffer from stock discrepancies (miscounts, damaged items, or delays in stock updates). If the system blocks dispatch completely, it can halt order fulfilment unnecessarily, even when the item *is* physically available.
2. **Urgent Customer Needs** – In retail or wholesale, meeting a critical customer deadline may be more important than stock accuracy. Dispatching without stock lets the business complete the order and correct the stock position afterward.
3. **Operational Flexibility** – Some businesses prefer to allow managers (via the CMS) to override stock restrictions when exceptional circumstances arise. This gives control to responsible staff while maintaining normal safeguards at the POS.

#### Why allow wouldn't I despatch items without stock?

1. **Stock Accuracy &amp; Integrity**  
    If items are dispatched without stock, the system no longer reflects reality. This undermines the accuracy of inventory data and makes it harder to trust reports.
2. **Overselling**  
    Allowing dispatch without stock increases the risk of selling products that cannot actually be fulfilled, leading to customer dissatisfaction or cancelled orders.
3. **Financial Misreporting**  
    Inventory valuation and cost-of-sales reporting rely on accurate stock records. Dispatching without stock can create gaps that distort financial reporting.
4. **Operational Confusion**  
    Staff may assume goods are available when they are not, leading to errors, wasted time, and additional administration to fix discrepancies later.
5. **Loss Prevention &amp; Control**  
    Strict stock controls help prevent misuse, theft, or mistakes. Allowing dispatch without stock can weaken those safeguards.

# Documents



# Delivery Notes

This will produce a form that can be used to confirm delivery with the Customer.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/9AIimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/9AIimage.png)

# Picking List

A Picking List may be printed from various sections of the system. It will include essential information.

If you would prefer to only have one Sales Order per page, this can be configured within [Site Settings](https://bookstack.iconography.co.uk/books/site-settings "Site Settings")

Example:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/p6gimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/p6gimage.png)

<p class="callout info">If the Location field is blank, that signifies that there is no stock allocated to the Sales Order line</p>

# Product Labels

Product Labels will either be printed via a [STAR printer](https://bookstack.iconography.co.uk/books/hardware-device-setup/chapter/star-printers "Hardware"), or via a standard A4 printer.

<p class="callout info">If you are using a standard printer, you can control the size of label (quantity per sheet) in [Site Settings](https://bookstack.iconography.co.uk/books/site-settings "Site Settings")</p>

These may be printed with and without prices.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/cpJimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/cpJimage.png)

# Sales Order Invoices

These are output for each Sales Order.

<p class="callout info">It is possible to customise the text that is output on these in [Site Settings](https://bookstack.iconography.co.uk/books/site-settings "Site Settings")</p>

Example:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/wuUimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/wuUimage.png)

# Shipping Labels



# Warehouse (Free Stock) Labels

Warehouse (Free Stock) Labels will either be printed via a [STAR printer](https://bookstack.iconography.co.uk/books/hardware-device-setup/chapter/star-printers "Hardware"), or via a standard A4 printer.

These have more information on them, and the barcode will be linked to either the Variant or the USR, as appropriate.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/Pyvimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/Pyvimage.png)

# Warehouse (Reservation) Labels

Warehouse (Reservation) Labels will either be printed via a [STAR printer](https://bookstack.iconography.co.uk/books/hardware-device-setup/chapter/star-printers "Hardware"), or via a standard A4 printer.

These have more information on them, and the barcode will be linked to either the Variant or the USR, as appropriate.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/yd4image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/yd4image.png)

# Purchase Order PDF

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/52himage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/52himage.png)

# Bandwidth

Bandwidth is the amount of data that can be sent between your website and its visitors. Every time someone visits your site, data like images and text is transferred, using up bandwidth.

The more visitors you have or the larger your files are (like high-quality images or PDFs), the more bandwidth you’ll need. If you use more bandwidth than your hosting plan allows, your hosting costs may increase.

# Modular Blocks



# Summary



# Version Control

Every Modular Page comes with version control.

These are intended to allow users to work on multiple versions of the page, either to make changes in draft before putting them live, or to have multiple versions for different purposes:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-09/scaled-1680-/on6image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-09/on6image.png)

<p class="callout success">Although all changes to Modular Pages are instant, you will not see them on the website unless you are editing the live version![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/scaled-1680-/3LTimage.png)</p>

### FAQs

### Can I schedule a version?

Yes - simply use the control and pick a date/time.

### How do I make a new version?

To make a new version, either copy and existing version, or alternatively user the control to create a new version from scratch.

### How do I switch between versions?

Use the drop down and select a version, then click 'view version'.

Alternatively, you can schedule a version to go live at a specific date/time.

### How do I rename a version?

Use the 'rename version' button in order to rename the version.

<p class="callout warning">You can only rename the version that you are currently viewing.</p>

# Text Blocks

Use this block to add large chunks of text to your page.

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/xKTimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/xKTimage.png)

## Editing the Block

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; height: 349.903px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Heading</td><td style="height: 46.4722px;">*Enter a short block title - this will show above the main content of the block*</td></tr><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Body Text</td><td style="height: 46.4722px;">*This is the main content of the block. Use the controls to format your text*</td></tr><tr style="height: 96.8472px;"><td style="height: 96.8472px;">Link URL</td><td style="height: 96.8472px;">*Enter a link URL - if populated, this will add a call to action below the content of the block.*

*The position of this button can be controlled with the 'Link Position' control*

</td></tr><tr style="height: 130.431px;"><td style="height: 130.431px;">Link Text</td><td style="height: 130.431px;">*Enter link text - if populated, this will change the text in a call to action below the content of the block*

*The position of this button can be controlled with the 'Link Position' control*

*If left blank, the button will read 'More'*

</td></tr></tbody></table>

### Settings

<table border="1" id="bkmrk-field-purpose-block-" style="width: 92.7381%;"><thead><tr><td style="width: 45.7196%;">Field</td><td style="width: 54.2662%;">Purpose</td></tr></thead><tbody><tr><td style="width: 45.7196%;">Block Width</td><td style="width: 54.2662%;">*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td style="width: 45.7196%;">Visibility</td><td style="width: 54.2662%;">*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td style="width: 45.7196%;">Heading Position</td><td style="width: 54.2662%;">*Alter the alignment of the block header:*

- *Left*
- *Central*
- *Right*

</td></tr><tr><td style="width: 45.7196%;">Link Position</td><td style="width: 54.2662%;">*Alter the alignment of the link button:*

- *Left*
- *Central*
- *Right*

</td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-collap" style="border-collapse: collapse; width: 100%; height: 59.3612px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Collapsible</td><td style="height: 29.6806px;">If set to yes, the whole Text block will be set as collapsible (see below)

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/y9Wimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/y9Wimage.png)

<p class="callout success">Doing so will also adjust the Schema of the block; this will be flagged to search engines as an FAQ; the block Heading will be labelled as the question, and the Body Text as the answer</p>

</td></tr></tbody></table>

<span style="font-family: var(--font-heading, var(--font-body)); font-size: 2.333em; font-weight: 400;">Advanced</span>

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Image

Use this block to add simple images to your page.

There are also other blocks which can be used to add images:

- [Carousel](https://bookstack.iconography.co.uk/books/general/page/carousel "Carousel") (small images on a swipeable carousel)
- [Hero](https://bookstack.iconography.co.uk/books/general/page/hero "Hero") (large rotating banners)
- [Parallax](https://bookstack.iconography.co.uk/books/general/page/parallax "Parallax") (an image that sits behind content, adding depth to a page)
- [Feature](https://bookstack.iconography.co.uk/books/general/page/feature "Feature") (a styled image)
- [Multi-Feature](https://bookstack.iconography.co.uk/books/general/page/multi-feature "Multi-Feature") (multiple static images in a single block)
- [Wide Feature](https://bookstack.iconography.co.uk/books/general/page/wide-feature "Wide-Feature") (image with a block of text)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/nMhimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/nMhimage.png)

## Editing the Block

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Heading</td><td>*Enter a short block title - this will show above the main content of the block*</td></tr><tr><td>Body Text</td><td>*This is the main content of the block. Use the controls to format your text*

*It will appear as a caption, below the image*

</td></tr><tr><td>Link URL</td><td>*Enter a link URL - if populated, this will add a link to the image.* </td></tr><tr><td>Image</td><td>*Use the dialogue to select an image to upload*</td></tr><tr><td>Alt Text</td><td>*Amend the Alt Text for the image*

</td></tr><tr><td>Delete Image</td><td>*Use the tick box to delete an image - you will be asked to confirm your action*</td></tr></tbody></table>

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.881%;"></col><col style="width: 49.881%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Mobile Width</td><td>*Set the block width by selecting from the drop down:*

- *33%*
- *50%*
- *100%*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Heading Position</td><td>*Alter the alignment of the block header:*

- *Left*
- *Central*
- *Right*

</td></tr><tr><td>Background Colour</td><td>*Choose a background colour for your image. Choose from recommended colours, or use a colour picker.* </td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.947%;"></col><col style="width: 49.947%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Invert Text Colour</td><td>*Toggle to invert the text colour*</td></tr><tr><td>Actual Size</td><td>*Choose to display the image at actual size*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Carousel

Use this block to add small images on a swipeable carousel.

There are also other blocks which can be used to add images:

- [Image](https://bookstack.iconography.co.uk/books/general/page/image "Image") (simple images)
- [Hero](https://bookstack.iconography.co.uk/books/general/page/hero "Hero") (large rotating banners)
- [Parallax](https://bookstack.iconography.co.uk/books/general/page/parallax "Parallax") (an image that sits behind content, adding depth to a page)
- [Feature](https://bookstack.iconography.co.uk/books/general/page/feature "Feature") (a styled image)
- [Multi-Feature](https://bookstack.iconography.co.uk/books/general/page/multi-feature "Multi-Feature") (multiple static images in a single block)
- [Wide Feature](https://bookstack.iconography.co.uk/books/general/page/wide-feature "Wide-Feature") (image with a block of text)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/92simage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/92simage.png)

## Editing the Block

### Content

Each image has an expandable menu, allowing it to be edited individually.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/scaled-1680-/B7pimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/B7pimage.png)

Images may be dragged around to resequence them.

<table border="1" id="bkmrk-field-purpose-link-e" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.881%;"></col><col style="width: 49.881%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Link URL</td><td>*Enter a link URL - if populated, this will add a link to the image*</td></tr><tr><td>Alt Text</td><td>*Amend the Alt Text for the image*

</td></tr><tr><td>Summary</td><td>*Enter text that will be shown below the image*</td></tr><tr><td>Delete Image</td><td>*Use the tick box to delete an image - you will be asked to confirm your action*</td></tr></tbody></table>

Use the Image dialogue to select images to upload to this block.

### Settings

<p class="callout info">Block width is not editable for the Hero block - it is always set to 100%.</p>


<table border="1" id="bkmrk-field-purpose-visibi" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.881%;"></col><col style="width: 49.881%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Items Visible</td><td>*Defines how many images will be visible on page load*

</td></tr><tr><td>Items Visible (mobile)</td><td>*Defines how many images will be visible on page load when on a mobile device*

</td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-mouse-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.947%;"></col><col style="width: 49.947%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Mouse Drag</td><td>*Allow a user to mouse drag/swipe to scoll through the Carousel* </td></tr><tr><td>Alt Style</td><td>*Alters the amount of padding between each image within the block*</td></tr><tr><td>Caption on Right?</td><td>*Choose to show the Summary text below the image, or to the right of the image*</td></tr><tr><td>Auto-play</td><td>*Set the Carousel to auto scroll*</td></tr><tr><td>Loop?</td><td>*Set the auto scroll on a loop*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Hero

Use this block to add large rotating banners with linked products.

There are also other blocks which can be used to add images:

- [Image](https://bookstack.iconography.co.uk/books/general/page/image "Image") (simple images)
- [Carousel](https://bookstack.iconography.co.uk/books/general/page/carousel "Carousel") (small images on a swipeable carousel)
- [Parallax](https://bookstack.iconography.co.uk/books/general/page/parallax "Parallax") (an image that sits behind content, adding depth to a page)
- [Feature](https://bookstack.iconography.co.uk/books/general/page/feature "Feature") (a styled image)
- [Multi-Feature](https://bookstack.iconography.co.uk/books/general/page/multi-feature "Multi-Feature") (multiple static images in a single block)
- [Wide Feature](https://bookstack.iconography.co.uk/books/general/page/wide-feature "Wide-Feature") (image with a block of text)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/1yQimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/1yQimage.png)

## Editing the Block

Each image has an expandable menu, allowing it to be edited individually.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/scaled-1680-/TTyimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/TTyimage.png)

Images may be dragged around to resequence them.

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.881%;"></col><col style="width: 49.881%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Title</td><td>*Enter a short title - this will be output as a text overlay, on top of the image*</td></tr><tr><td>Link URL</td><td>*Enter a link URL - if populated, this will add a link to the image.* </td></tr><tr><td>Link Text</td><td>*Text to be shown with a button, if a link is set*

*If left blank, the whole image will act as a button*

</td></tr><tr><td>Additional Text</td><td>*Enter some short text - this will be output as a text overlay, on top of the image below the title*</td></tr><tr><td>Related Products</td><td>*Search for Products by name or SKU Code to link them to this hero image*

*They will display below the image*

*If you have multiple images in a Hero Block, the Products will change along with the image*

</td></tr><tr><td>Delete This Image?</td><td>*Use this control to delete an image*</td></tr></tbody></table>

Use the Image dialogue to select images to upload to this block.

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.053%;"></col><col style="width: 50.053%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Text Colour</td><td>*Choose from:*

- *Auto (will select a high contrast automatically)*
- *Black*
- *White*

</td></tr><tr><td>Text Position</td><td>*Alter the alignment of the block text:*

- *Left*
- *Central*
- *Right*

</td></tr></tbody></table>

#### Additional Options

These options allow you to auto assign Products to Hero Images, without assigning specific Products.

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.947%;"></col><col style="width: 49.947%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Allow header overlap</td><td>*Allows for the creation of [transparent headers](https://bookstack.iconography.co.uk/books/pages/page/header-overlap "Transparent Headers")*</td></tr><tr><td>Include featured products</td><td>*Auto add featured products to the images in this Hero block*</td></tr><tr><td>Include recommended products</td><td>*Auto add recommended products to the images in this Hero block*</td></tr><tr><td>Include sale products</td><td>*Auto add sale products to the images in this Hero block*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Parallax

Use this block to add an image that sits behind content, adding depth to a page.

There are also other blocks which can be used to add images:

- [Image](https://bookstack.iconography.co.uk/books/general/page/image "Image") (simple images)
- [Carousel](https://bookstack.iconography.co.uk/books/general/page/carousel "Carousel") (small images on a swipeable carousel)
- [Hero](https://bookstack.iconography.co.uk/books/general/page/hero "Hero") (large rotating banners)
- [Feature](https://bookstack.iconography.co.uk/books/general/page/feature "Feature") (a styled image)
- [Multi-Feature](https://bookstack.iconography.co.uk/books/general/page/multi-feature "Multi-Feature") (multiple static images in a single block)
- [Wide Feature](https://bookstack.iconography.co.uk/books/general/page/wide-feature "Wide-Feature") (image with a block of text)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/hVTimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/hVTimage.png)

## Editing the Block

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.053%;"></col><col style="width: 50.053%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Heading</td><td>*Enter a short block title - this will show above the main content of the block*</td></tr><tr><td>Text</td><td>*This is the main content of the block. Use the controls to format your text*

*It will appear as a caption, below the image*

</td></tr><tr><td>Link</td><td>*Enter a link URL - if populated, this will add a link to the image.* </td></tr><tr><td>Link Text</td><td>*Text to be shown with a button, if a link is set*

*If left blank, the whole image will act as a button*

</td></tr><tr><td>Delete Image</td><td>*Use the tick box to delete an image - you will be asked to confirm your action*</td></tr></tbody></table>

Use the Image dialogue to select images to upload to this block.

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.053%;"></col><col style="width: 50.053%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Text Position</td><td>*Alter the alignment of the block text:*

- *Left*
- *Central*
- *Right*

</td></tr><tr><td>Text Colour</td><td>*Choose from:*

- *Auto (will select a high contrast automatically)*
- *Black*
- *White*

</td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.947%;"></col><col style="width: 49.947%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Full Screen</td><td>*Toggle a large or small version of the parallax image*</td></tr><tr><td>Box?</td><td>*Toggle a box to surround the text*</td></tr><tr><td>Filter?</td><td>*Toggle a filter on the image, which will make it darker if applied*

*This should be used to ensure high contrast between the image and overlaid text*

</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Callout

Use this to add small blocks of text with a coloured background.

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/FLBimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/FLBimage.png)

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; height: 349.903px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Heading</td><td style="height: 46.4722px;">*Enter a short block title*</td></tr><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Text</td><td style="height: 46.4722px;">*This is the main content of the block. Use the controls to format your text*</td></tr></tbody></table>

### Settings

<table border="1" id="bkmrk-field-purpose-block-" style="width: 92.7381%;"><thead><tr><td style="width: 45.7584%;">Field</td><td style="width: 54.2416%;">Purpose</td></tr></thead><tbody><tr><td style="width: 45.7584%;">Block Width</td><td style="width: 54.2416%;">*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td style="width: 45.7584%;">Visibility</td><td style="width: 54.2416%;">*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td style="width: 45.7584%;">Background Colour</td><td style="width: 54.2416%;">*Choose a background colour for your image. Choose from recommended colours, or use a colour picker.* </td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-collap" style="border-collapse: collapse; width: 100%; height: 59.3612px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 29.6806px;"><td>Invert text colour</td><td>*Toggle to invert the text colour*</td></tr></tbody></table>

<span style="font-family: var(--font-heading, var(--font-body)); font-size: 2.333em; font-weight: 400;">Advanced</span>

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Feature

Use this block to add a styled image.

There are also other blocks which can be used to add images:

- [Image](https://bookstack.iconography.co.uk/books/general/page/image "Image") (simple images)
- [Carousel](https://bookstack.iconography.co.uk/books/general/page/carousel "Carousel") (small images on a swipeable carousel)
- [Hero](https://bookstack.iconography.co.uk/books/general/page/hero "Hero") (large rotating banners)
- [Parallax](https://bookstack.iconography.co.uk/books/general/page/parallax "Parallax") (an image that sits behind content, adding depth to a page)
- [Multi-Feature](https://bookstack.iconography.co.uk/books/general/page/multi-feature "Multi-Feature") (multiple static images in a single block)
- [Wide Feature](https://bookstack.iconography.co.uk/books/general/page/wide-feature "Wide-Feature") (image with a block of text)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/scaled-1680-/Vs5image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/Vs5image.png)

## Editing the Block

<p class="callout info">Styling will be applied to this block as part of your website build - this will then remain constant across all pages.</p>

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Heading</td><td>*Enter a short title - this will be output as a text overlay, on top of the image*</td></tr><tr><td>Additional Text</td><td>*Enter some short text - this will be output as a text overlay, on top of the image below the title*</td></tr><tr><td>Link URL</td><td>*Enter a link URL - if populated, this will add a link to the image.* </td></tr><tr><td>Link Text</td><td>*Text to be shown with a button, if a link is set*

*If left blank, the whole image will act as a button*

</td></tr><tr><td>Delete This Image?</td><td>*Use this control to delete an image*</td></tr></tbody></table>

Use the Image dialogue to select images to upload to this block.

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.053%;"></col><col style="width: 50.053%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Mobile Width</td><td>*Choose from:*

- *33%*
- *50%*
- *100%*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Text Colour</td><td>*Choose from:*

- *Auto (will select a high contrast automatically)*
- *Black*
- *White*

</td></tr></tbody></table>

#### Additional Options

These options allow you to auto assign Products to Hero Images, without assigning specific Products.

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.947%;"></col><col style="width: 49.947%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Text underneath</td><td>*Output the text beneath the image, instead of over the image*</td></tr><tr><td>Text central</td><td>*Output the text centrally on the image*</td></tr><tr><td>Do not crop to fit</td><td>*Toggle to retain the aspect ratio of the image uploaded*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Multi-Feature

Use this block to add multiple static images in a single block.

There are also other blocks which can be used to add images:

- [Image](https://bookstack.iconography.co.uk/books/general/page/image "Image") (simple images)
- [Carousel](https://bookstack.iconography.co.uk/books/general/page/carousel "Carousel") (small images on a swipeable carousel)
- [Hero](https://bookstack.iconography.co.uk/books/general/page/hero "Hero") (large rotating banners)
- [Parallax](https://bookstack.iconography.co.uk/books/general/page/parallax "Parallax") (an image that sits behind content, adding depth to a page)
- [Feature](https://bookstack.iconography.co.uk/books/general/page/feature "Feature") (a styled image)
- [Wide Feature](https://bookstack.iconography.co.uk/books/general/page/wide-feature "Wide-Feature") (image with a block of text)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/e62image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/e62image.png)

## Editing the Block

<p class="callout info">To best configure this block, it is important to select your layout under Settings (see below) before you upload any images</p>

Each image has an expandable menu, allowing it to be edited individually.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/scaled-1680-/sm7image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/sm7image.png)

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px; height: 244.8px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr style="height: 29.6px;"><td style="height: 29.6px;">Field</td><td style="height: 29.6px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4px;"><td style="height: 46.4px;">Heading</td><td style="height: 46.4px;">*Enter a short title - this will be output as a text overlay, on top of the image*</td></tr><tr style="height: 46.4px;"><td style="height: 46.4px;">Text</td><td style="height: 46.4px;">*Enter some short text - this will be output as a text overlay, on top of the image below the title*</td></tr><tr><td>Alt Text</td><td>*Amend the Alt Text for the image*

</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Link URL</td><td style="height: 29.6px;">*Enter a link URL - if populated, this will add a link to the image.* </td></tr><tr style="height: 63.2px;"><td style="height: 63.2px;">Link Text</td><td style="height: 63.2px;">*Text to be shown with a button, if a link is set*

*If left blank, the whole image will act as a button*

</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Delete This Image?</td><td style="height: 29.6px;">*Use this control to delete an image*</td></tr></tbody></table>

Use the Image dialogue to select images to upload to this block.

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.053%;"></col><col style="width: 50.053%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Text Colour</td><td>*Choose from:*

- *Auto (will select a high contrast automatically)*
- *Black*
- *White*

</td></tr><tr><td>Layout</td><td>*Use the control to select the layout - this may alter the number of images in this block*

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/scaled-1680-/45gimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-12/45gimage.png)

</td></tr><tr><td>Gap</td><td>*Choose the number of pixels between the images within this block*

</td></tr></tbody></table>

#### Additional Options

These options allow you to auto assign Products to Hero Images, without assigning specific Products.

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Text central</td><td>*Output the text centrally on the image*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Wide-Feature

Use this block to add image with a block of text.

There are also other blocks which can be used to add images:

- [Image](https://bookstack.iconography.co.uk/books/general/page/image "Image") (simple images)
- [Carousel](https://bookstack.iconography.co.uk/books/general/page/carousel "Carousel") (small images on a swipeable carousel)
- [Hero](https://bookstack.iconography.co.uk/books/general/page/hero "Hero") (large rotating banners)
- [Parallax](https://bookstack.iconography.co.uk/books/general/page/parallax "Parallax") (an image that sits behind content, adding depth to a page)
- [Feature](https://bookstack.iconography.co.uk/books/general/page/feature "Feature") (a styled image)
- [Multi-Feature](https://bookstack.iconography.co.uk/books/general/page/multi-feature "Multi-Feature") (multiple static images in a single block)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/1w6image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/1w6image.png)

## Editing the Block

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Heading</td><td>*Enter a short title - this will be output as a text overlay, on top of the image*</td></tr><tr><td>Additional Text</td><td>*Enter some short text - this will be output as a text overlay, on top of the image below the title*</td></tr><tr><td>Alt Text</td><td>*Amend the Alt Text for the image*

</td></tr><tr><td>Link URL</td><td>*Enter a link URL - if populated, this will add a link to the image.* </td></tr><tr><td>Link Text</td><td>*Text to be shown with a button, if a link is set*

*If left blank, the whole image will act as a button*

</td></tr><tr><td>Delete This Image?</td><td>*Use this control to delete an image*</td></tr></tbody></table>

Use the Image dialogue to select images to upload to this block.

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Background colour</td><td>*Choose a background colour for your image*

*Choose from recommended colours, or use a colour picker*

</td></tr></tbody></table>

#### Additional Options

These options allow you to auto assign Products to Hero Images, without assigning specific Products.

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px; height: 118.4px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr style="height: 29.6px;"><td style="height: 29.6px;">Field</td><td style="height: 29.6px;">Purpose</td></tr></thead><tbody><tr style="height: 29.6px;"><td style="height: 29.6px;">Invert text colour</td><td style="height: 29.6px;">*Toggle to invert the text colour*</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Do not crop to fit</td><td style="height: 29.6px;">*Toggle to retain the aspect ratio of the image uploaded*</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Reverse layout</td><td style="height: 29.6px;">*swap the position of the image and the text*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Products

Use this to insert blocks of Products onto your page.

<p class="callout warning">This is only possible if your system is enabled for eCommerce</p>

This will add live products to your page, so if any product data is updated, this page will also be automatically updated.

Disabled products are not shown within the block; add automated products to fill any gaps (see below for more details)

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/FtRimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/FtRimage.png)

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; height: 349.903px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Heading</td><td style="height: 46.4722px;">*Enter a short block title - this will show above the main content of the block*</td></tr><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Search Product</td><td style="height: 46.4722px;">*Use this to search for specific products to display within this block*</td></tr><tr><td>Selected Category</td><td>*Select a Category - this will filter automated Products*

*If left blank, no filter will be applied*

</td></tr><tr><td>Selected Brand</td><td>*Select a Brand - this will filter automated Products*

*If left blank, no filter will be applied*

</td></tr><tr><td>Link URL</td><td>*Enter a link URL - if populated, this will add a call to action below the content of the block.*

</td></tr><tr><td>Link Text</td><td>*Enter link text - if populated, this will change the text in a call to action below the content of the block*

*If left blank, the button will read 'More'*

</td></tr></tbody></table>

### Settings

<table border="1" id="bkmrk-field-purpose-block-" style="width: 92.7381%;"><thead><tr><td style="width: 45.7196%;">Field</td><td style="width: 54.2662%;">Purpose</td></tr></thead><tbody><tr><td style="width: 45.7196%;">Block Width</td><td style="width: 54.2662%;">*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td style="width: 45.7196%;">Visibility</td><td style="width: 54.2662%;">*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td style="width: 45.7196%;">Heading Position</td><td style="width: 54.2662%;">*Alter the alignment of the block header:*

- *Left*
- *Central*
- *Right*

</td></tr><tr><td style="width: 45.7196%;">Link Position</td><td style="width: 54.2662%;">*Alter the alignment of the link:*

- *Left*
- *Central*
- *Right*

</td></tr><tr><td style="width: 45.7196%;">Display</td><td style="width: 54.2662%;">- *Default*
- *Scroller*
- *List*

</td></tr><tr><td style="width: 45.7196%;">Border Colour</td><td style="width: 54.2662%;">*Choose from:*

- *Default*
- *Grey*
- *Red*
- *Black*

</td></tr><tr><td style="width: 45.7196%;">Max Rows</td><td style="width: 54.2662%;">*Select the maximum number of rows to appear:*

- *Unlimited*
- *1*
- *2*
- *3*
- *4*

</td></tr></tbody></table>

#### Additional Options

<p class="callout info">These controls should be used in conjunction with the Category and Brand filters in the Content section</p>

<table border="1" id="bkmrk-field-purpose-collap" style="border-collapse: collapse; width: 100%; height: 59.3612px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr><td>Include featured products?</td><td>*Auto add featured products to the images in this content block*</td></tr><tr><td>Include home products?</td><td>*Auto add products marked as 'home page featured' to this content block*</td></tr><tr><td>Include recommended products?</td><td>*Auto add recommended products to the images in this content block*</td></tr><tr><td>Include hot this week products?</td><td>*Auto add 'hot this week' products to this content block*</td></tr><tr><td>Include most searched products?</td><td>*Auto add 'most searched' products to this content block*

</td></tr><tr><td>Include sale products?</td><td>*Auto add sale products to the images in this content block*</td></tr></tbody></table>

<span style="font-family: var(--font-heading, var(--font-body)); font-size: 2.333em; font-weight: 400;">Advanced</span>

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Video

Use this to add a video to your page.

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/JA0image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/JA0image.png)

## Editing the Block

### Content

See here for more information about locating the Video IDs for Youtube and Vimeo.

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Heading</td><td>*Enter a short block title - this will show above the main content of the block*</td></tr><tr><td>Video ID</td><td>*Enter the unique ID of the video you wish to add*  
</td></tr><tr><td>Video Type</td><td>Choose from:

- Youtube
- Vimeo

</td></tr></tbody></table>

### Settings

<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50.0596%;"></col><col style="width: 50.0596%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Heading Position</td><td>*Alter the alignment of the block header:*

- *Left*
- *Central*
- *Right*

</td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-auto-p" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Auto-play?</td><td>*Toggle auto-play for the video (e.g. if the video automatically plays on page load)*</td></tr><tr><td>Loop?</td><td>*Toggle whether the video will or will not loop*</td></tr><tr><td>Hide controls?</td><td>*Hide player controls*</td></tr><tr><td>Allow header overlap?</td><td>*Toggles whether the video shows behind the header, as per Hero banners*

<p class="callout info">*Important: User must also 'hide page title' to enable this*</p>

</td></tr><tr><td>Portrait?</td><td>*Toggle if this is a Portrait video, e.g. a Youtube Short*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Enquiry Form

Use this to add an Enquiry Form to any page.

<p class="callout warning">To use this content block, you must first have set up the [Form](https://bookstack.iconography.co.uk/books/forms) that you wish to embed.</p>

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/Yabimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/Yabimage.png)

## Editing the Block

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; height: 349.903px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4722px;"><td style="height: 46.4722px;">Heading</td><td style="height: 46.4722px;">*Enter a short block title - this will show above the main content of the block*</td></tr><tr><td>Body Text</td><td>*Enter some short text that will show above the form*</td></tr><tr><td>Form Template</td><td>*Select you Form Template from the list*</td></tr></tbody></table>

### Settings

<table border="1" id="bkmrk-field-purpose-block-" style="width: 92.7381%;"><thead><tr><td style="width: 45.7196%;">Field</td><td style="width: 54.2662%;">Purpose</td></tr></thead><tbody><tr><td style="width: 45.7196%;">Block Width</td><td style="width: 54.2662%;">*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td style="width: 45.7196%;">Visibility</td><td style="width: 54.2662%;">*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td style="width: 45.7196%;">Heading Position</td><td style="width: 54.2662%;">*Alter the alignment of the block header:*

- *Left*
- *Central*
- *Right*

</td></tr></tbody></table>

<span style="font-family: var(--font-heading, var(--font-body)); font-size: 2.333em; font-weight: 400;">Advanced</span>

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Raw HTML

Use this content block to embed raw HTML and third party code, e.g. for a Google Map.

When embedding a script or an iframe from a third party domain, it will be locked, unless that domain is on the [permitted list.](https://bookstack.iconography.co.uk/books/integrations/page/permitted-third-party-domains "Permitted Third Party Domains")

<p class="callout danger">Embedding third party code is risky and may cause harm to your website</p>

<p class="callout warning">You may have to contact Iconography prior to using these blocks, as third party domains will be blocked unless they have been whitelisted, e.g. for a Google Map</p>

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/JMzimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/JMzimage.png)

## Editing the Block

### Content

<table border="1" id="bkmrk-field-purpose-headin" style="border-collapse: collapse; width: 100%; height: 349.903px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr style="height: 29.6806px;"><td style="height: 29.6806px;">Field</td><td style="height: 29.6806px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4722px;"><td style="height: 46.4722px;">HTML</td><td style="height: 46.4722px;">*Paste your HTML into here*</td></tr></tbody></table>

### Settings

<table border="1" id="bkmrk-field-purpose-block-" style="width: 92.7381%;"><thead><tr><td style="width: 45.7196%;">Field</td><td style="width: 54.2662%;">Purpose</td></tr></thead><tbody><tr><td style="width: 45.7196%;">Block Width</td><td style="width: 54.2662%;">*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td style="width: 45.7196%;">Visibility</td><td style="width: 54.2662%;">*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr></tbody></table>

<span style="font-family: var(--font-heading, var(--font-body)); font-size: 2.333em; font-weight: 400;">Advanced</span>

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Group

Group blocks are used to create nested collections of blocks; they may also be given a background colour, allowing you to break up the appearance of a page.

Blocks may be moved within a group, or the block may be moved on the page, which will update move its contents too.

<p class="callout info">Adjusting a Group will adjust the blocks within it as well, e.g. reducing the width of the Group will make the blocks within it smaller, or changing the background colour of the Group will override the background colour of blocks within it. </p>

To add a block to a Group, simply drag and drop it over the Group.

## Appearance

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/Y2wimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/Y2wimage.png)

## Editing the Block

### Settings


<table border="1" id="bkmrk-field-purpose-block-" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.881%;"></col><col style="width: 49.881%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Block Width</td><td>*Choose from:*

- *25%*
- *33%*
- *50%*
- *66%*
- *75%*
- *100%*
- *Full Width (set to always be the full width of the user's device)*

</td></tr><tr><td>Visibility</td><td>*Set the block visibility from the list:*

- *Default (both)*
- *Desktop Only*
- *Mobile Only*
- *Hidden (none)*

</td></tr><tr><td>Background Colour</td><td>*Choose a background colour for your image. Choose from recommended colours, or use a colour picker.* </td></tr></tbody></table>

#### Additional Options

<table border="1" id="bkmrk-field-purpose-invert" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 49.947%;"></col><col style="width: 49.947%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Invert text colour</td><td>*Toggle to invert the text colour*</td></tr><tr><td>Content contained?</td><td>*Toggle to contain the Content - this will affect the maximum width available to the content in the Group*</td></tr></tbody></table>

### Advanced

#### Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/padding).

#### Margin

The margin will add additional space around the current block.

More information is available [here](https://bookstack.iconography.co.uk/books/general/page/margin).

# Margin

The margin will add additional space around the current block.

### Margin (Left &amp; Right)

#### No Margin

The block fills it's width (in this case, 100%).

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/LjWimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/LjWimage.png)

#### With Margin

The width of the block is reduced by the left/right margin (in this case, 75px).

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/pSpimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/pSpimage.png)

### Margin (Top &amp; Bottom)

#### No Margin

The blocks are touching, with no gaps.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/E7Nimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/E7Nimage.png)

#### With Margin

There is now a gap between the blocks.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/cDhimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/cDhimage.png)

# Padding

Adding padding will insert space within the current block; this will adjust the position of content within the block.

### Padding (Left &amp; Right)

Add left and right padding to indent the content.

#### No Padding

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/ff0image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/ff0image.png)

#### With Padding

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/h0rimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/h0rimage.png)

### Padding (Top &amp; Bottom)

Adding padding to the top of bottom of the block will adjust the height of the block:

#### No Padding

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/J7simage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/J7simage.png)

#### With Padding

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/scaled-1680-/P52image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-11/P52image.png)

# Content



# Meta Tags

Use this control to update meta data and add custom URLs to your pages.

Meta titles and descriptions are essential HTML elements that help define a webpage's content for search engines and users. The meta title summarises the page in a few words, while the meta description provides a brief overview. Both are crucial for improving search engine optimization (SEO) and increasing click-through rates.

Meta Keywords are used to improve the accuracy of onsite search.

## Setup

### Automated Setup

IXO Commerce will autogenerate meta data and URLs for your page.

The Meta Title will be based on the page name, to which IXO Commerce will append your business name. e.g. 'Lego - Example Retailer'.

The Meta Description will be based on the page content, typically a description or a summary.

Meta Keywords are not automatically managed.

The URL structure is autogenerated based on the page name, as well as any hierarchy, e.g. /category/subcategory/productname.

### Manual Setup

Use the fields to setup the content.

<table border="1" id="bkmrk-field-purpose-custom" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Custom URL</td><td>*Use this to define a Custom URL for a page*</td></tr><tr><td>Meta Title</td><td>*Use this to set a manual Meta Title*</td></tr><tr><td>Meta Description</td><td>*Use this to set a manual Meta Description*</td></tr><tr><td>Meta Keywords</td><td>*Use this to set your Meta Keywords*</td></tr></tbody></table>

<p class="callout info">Meta Keywords are used as additional keywords for the eCommerce site search</p>

## How Meta Tags Display

A summary of how these display will be shown below the fields. This will be updated as you type.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/scaled-1680-/fHtimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/fHtimage.png)

## FAQs

### Can I manage my Meta Tags in bulk?

Meta Data for Products may be managed in Bulk via the CSV Import/Export

# Loyalty Scheme

The IXO Commerce loyalty scheme works on a simple basis. A registered customer will earn a certain number of points based on their spend.

Each of those loyalty points is worth a fixed amount.

<p class="callout info">Both the 'loyalty points earned per £ spent' and 'loyalty point value' are defined with [Site Settings](https://bookstack.iconography.co.uk/books/site-settings/page/summary "Summary"). </p>

### Example

A system is set up to award a loyalty point for every £10 spent. Each point is worth 10p.

A customer has previously placed an order for £676; for their next order, they are prompted to use their loyalty balance of £6.70.

# CMS



# Alerts

The Alerts are a list of actions that you need to take today. These will slide out automatically on login, or can be accessed via the red roundel in the top right hand corner of the screen.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/scaled-1680-/SH8image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/SH8image.png)

They display like this, and will often have links to encourage action:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/scaled-1680-/uihimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/uihimage.png)

# Bookmarks

The Bookmarks are a series of shortcuts that appear in the CMS to aid frequent navigation. These are unique to each user.

Use the shortcut to add a Bookmark.

Right mouse click to remove a Bookmark.

Some standard Bookmarks are controlled via [Site Settings](https://bookstack.iconography.co.uk/books/site-settings "Site Settings").

It is also possible to reorder your Bookmarks via drag and drop.

## How it Displays

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-10/scaled-1680-/Mhlimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-10/Mhlimage.png)

# Show/Hide Disabled

On various screens in the CMS, it is possible to choose to show/hide Disabled items.

<p class="callout info">By default, disabled items will be hidden</p>

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-02/scaled-1680-/image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-02/image.png)

For these purposes, disabled items include those which are actively disabled or archived. These include, but are not limited to:

- Disabled Products
- Archived Products
- Disabled Categories
- Empty [Dynamic Categories](https://bookstack.iconography.co.uk/books/categories/page/dynamic-categories "Dynamic Categories")
- Disabled Collections
- Disabled Brands
- Disabled Suppliers

<p class="callout info">Disabled items will still display in all reports and filters</p>

# Label Printing

This logic is used when printing labels.

### Warehouse Labels (reserved stock)

This grabs all Sales Order Lines that follow these rules:

- Sales order status: 
    - Contains the word ‘despatch’
    - Contains the word ‘packing’
    - Contains the word ‘pending’
    - Contains the term ‘awaiting action’
    - Is ‘on order’
    - Is ‘on transfer’
    - Is ‘unallocated’
- Line is not acknowledged
- Line is not despatched
- Line is not cancelled

### Warehouse Labels (free stock)

This function will first grab all stock records that exist on the system and will order by oldest first. It  
will then retrieve all reserved labels using the above section.

Whilst looping through the reserved labels and stock records, if the reserved label shares a PO with  
the stock record, we will subtract any stock that is reserved to sales orders so that the free stock  
labels don’t print POs that are used for these sales orders.

Here are some examples:

- SKU XYZ has 3 stock linked to PO123. Order Z123 has 1 qty linked to the PO. 1 is subtracted  
    from the stock record resulting in 2 free stock labels that are linked to PO123
- SKU XYZ has 1 stock linked to PO123. Order Z123 has 3 qty linked to the PO. This will result in  
    0 free stock labels being linked to PO123

Once the calculations are complete, the system will print free stock labels using the remaining stock records.  
If more labels have been requested to be printed than there is stock, then the excess labels will be  
printed with no PO number on them.

### Retrieving labels via a PO  


This function grabs all lines on a PO and loops through them. For each line, we will try to find sales  
orders linked to it by checking:

- Order line is linked to this PO
- Order line is the same SKU and USR (if set)
- Order line is not cancelled
- Order status is not ‘draft'

If any sales orders are found, we will mark these lines as reserved labels. The rest of the quantity  
against the PO will be marked as free stock.

# Workflows



# Finding Video IDs

## YouTube

These can be found in the video URL:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/2ryimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/2ryimage.png)

## Vimeo

These can be found in the video URL:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/scaled-1680-/BMYimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-12/BMYimage.png)

# Reporting



# Margin Calculation

Profit margins are calculated as a percentage of the cost of a sale vs the revenue generated by it.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-03/scaled-1680-/a7Ximage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-03/a7Ximage.png)

Margins are calculated per Sales Order line, which will then be averaged as needed for individual reports, Sales Order level margin, etc.

### Examples

#### Positive Margin

<table id="bkmrk-gross-sale-net-sale-"><thead><tr><th>Gross sale</th><th align="right">Net sale</th><th align="right">Cost</th><th align="right">Net profit</th><th align="right">Net margin</th></tr></thead><tbody><tr><td class="align-center">£120.00</td><td align="right" class="align-center">£100.00</td><td align="right" class="align-center">£80.00</td><td align="right" class="align-center">£20.00</td><td align="right" class="align-center">20%</td></tr><tr><td class="align-center">£180.00</td><td align="right" class="align-center">£150.00</td><td align="right" class="align-center">£100.00</td><td align="right" class="align-center">£50.00</td><td align="right" class="align-center">33.33%</td></tr><tr><td class="align-center">£240.00</td><td align="right" class="align-center">£200.00</td><td align="right" class="align-center">£100.00</td><td align="right" class="align-center">£100.00</td><td align="right" class="align-center">50%</td></tr><tr><td class="align-center">£300.00</td><td align="right" class="align-center">£250.00</td><td align="right" class="align-center">£150.00</td><td align="right" class="align-center">£100.00</td><td align="right" class="align-center">40%</td></tr><tr><td class="align-center">£90.00</td><td align="right" class="align-center">£75.00</td><td align="right" class="align-center">£60.00</td><td align="right" class="align-center">£15.00</td><td align="right" class="align-center">20%</td></tr><tr><td class="align-center">£200.00</td><td align="right" class="align-center">£166.67</td><td align="right" class="align-center">£100.00</td><td align="right" class="align-center">£66.67</td><td align="right" class="align-center">40%</td></tr></tbody></table>

#### Negative Margin

<table class="w-fit min-w-(--thread-content-width)" data-end="372" data-start="0" id="bkmrk-gross-sale-net-sale--1"><thead data-end="58" data-start="0"><tr data-end="58" data-start="0"><th class="align-center" data-col-size="sm" data-end="13" data-start="0">Gross sale</th><th class="align-center" data-col-size="sm" data-end="24" data-start="13">Net sale</th><th class="align-center" data-col-size="sm" data-end="31" data-start="24">Cost</th><th class="align-center" data-col-size="sm" data-end="44" data-start="31">Net profit</th><th class="align-center" data-col-size="sm" data-end="58" data-start="44">Net margin</th></tr></thead><tbody data-end="372" data-start="85"><tr data-end="132" data-start="85"><td class="align-center" data-col-size="sm" data-end="94" data-start="85">£60.00</td><td class="align-center" data-col-size="sm" data-end="103" data-start="94">£50.00</td><td class="align-center" data-col-size="sm" data-end="113" data-start="103">£100.00</td><td class="align-center" data-col-size="sm" data-end="123" data-start="113">-£50.00</td><td class="align-center" data-col-size="sm" data-end="132" data-start="123">-100%</td></tr><tr data-end="179" data-start="133"><td class="align-center" data-col-size="sm" data-end="142" data-start="133">£96.00</td><td class="align-center" data-col-size="sm" data-end="151" data-start="142">£80.00</td><td class="align-center" data-col-size="sm" data-end="161" data-start="151">£100.00</td><td class="align-center" data-col-size="sm" data-end="171" data-start="161">-£20.00</td><td class="align-center" data-col-size="sm" data-end="179" data-start="171">-25%</td></tr><tr data-end="228" data-start="180"><td class="align-center" data-col-size="sm" data-end="190" data-start="180">£120.00</td><td class="align-center" data-col-size="sm" data-end="200" data-start="190">£100.00</td><td class="align-center" data-col-size="sm" data-end="210" data-start="200">£120.00</td><td class="align-center" data-col-size="sm" data-end="220" data-start="210">-£20.00</td><td class="align-center" data-col-size="sm" data-end="228" data-start="220">-20%</td></tr><tr data-end="277" data-start="229"><td class="align-center" data-col-size="sm" data-end="239" data-start="229">£240.00</td><td class="align-center" data-col-size="sm" data-end="249" data-start="239">£200.00</td><td class="align-center" data-col-size="sm" data-end="259" data-start="249">£250.00</td><td class="align-center" data-col-size="sm" data-end="269" data-start="259">-£50.00</td><td class="align-center" data-col-size="sm" data-end="277" data-start="269">-25%</td></tr><tr data-end="324" data-start="278"><td class="align-center" data-col-size="sm" data-end="287" data-start="278">£36.00</td><td class="align-center" data-col-size="sm" data-end="296" data-start="287">£30.00</td><td class="align-center" data-col-size="sm" data-end="305" data-start="296">£90.00</td><td class="align-center" data-col-size="sm" data-end="315" data-start="305">-£60.00</td><td class="align-center" data-col-size="sm" data-end="324" data-start="315">-200%</td></tr><tr data-end="372" data-start="325"><td class="align-center" data-col-size="sm" data-end="334" data-start="325">£50.00</td><td class="align-center" data-col-size="sm" data-end="343" data-start="334">£41.67</td><td class="align-center" data-col-size="sm" data-end="353" data-start="343">£100.00</td><td class="align-center" data-col-size="sm" data-end="363" data-start="353">-£58.33</td><td class="align-center" data-col-size="sm" data-end="372" data-start="363">-140%</td></tr></tbody></table>

### Exclusions

In addition to this, there are several specific exclusions:

- Products with a NULL cost price are omitted from all margin reporting
- Line discounts are included in margin calculation (e.g. uses line discounts to reduce the value of the sold item before working out margin)
- Excludes cancelled, deleted and returned lines (these have no value for working out margin)
- Excludes draft, quote, abandoned and cancelled orders (these are not valid)

### FAQs

#### How does IXO Commerce calculate margin?

It uses the Net Margin method.

#### Does IXO Commerce use any other methods?

No. ICO Commerce doesn't use Gross Margin, Markup, Profit or Loss on Cost or Operating Margin.

#### My margin is showing as less than -100%, does this mean that I have lost more money than the item cost?

No. This is because when calculating Net Margin, everything is relative to the Net Profit and Cost Price. Think of it as selling something at double the cost price will be a 100% Net Margin, and selling it for half the Cost Price will be a -100% profit margin.

# CRM



# Adding Notes and Tasks

Notes may be added to Tasks, Customers, Sales Orders, Purchase Orders and Stock Transfers; the process is the same for each one.

<p class="callout info">Task categories are controlled within [Site Settings](https://bookstack.iconography.co.uk/books/site-settings "Site Settings")</p>

<p class="callout info">On Sales Orders, it is possible to email the note directly to the Customer; this email will include any attachments you upload to the Note</p>

### How to add a Note or a Task

1\. Click into this box to type a note

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-02/4327c8d2-d958-47d1-94ab-a73c134bc5d6/user_cropped_screenshot.webp?tl_px=0,0&br_px=1114,343&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=573,136)

2\. Click add attachments to the note

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-02/e21a7f6c-c244-4b66-b21d-8fa0b92c13e8/user_cropped_screenshot.webp?tl_px=0,0&br_px=999,362&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=182,231)

Tip: There is a file size limit, but it is possible to add multiple files simultaneously; use this to add PDFs, images and short videos

3\. Choose your files from the dialogue, or alternatively drag and drop them onto the 'choose files' button

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-02/6aa03e8c-8521-4a85-8844-bb740a2342a2/ascreenshot.jpeg?tl_px=0,23&br_px=1376,792&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=359,277)

Tip: You have the option to save this as a note or to turn it into a Task

4\. To turn this into a task, click the appropriate button

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-02/29e2c1dd-13ee-4266-ae3d-304c5eef926c/ascreenshot.jpeg?tl_px=28,310&br_px=1405,1080&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=524,280)

5\. Make you selections, and then click to 'create task'; this will save the note and add a Task

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-02/f58f5ee0-73b4-4b0b-8f6f-99a353a11eff/ascreenshot.jpeg?tl_px=224,306&br_px=1600,1075&force_format=jpeg&q=100&width=1120.0&wat=1&wat_opacity=1&wat_gravity=northwest&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/0EA5E9_standard.png&wat_pad=524,277)

# Edit a Task

Use this control to edit a Task.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-05/scaled-1680-/image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-05/image.png)

This control may be used in order to change:

- the User responsible for the Task
- the date the Task is due
- the category of the Task

Simply use the dialogue to make the amends and click save.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-05/scaled-1680-/jf3image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-05/jf3image.png)

# Sales Order Management



# VAT Exemption Form

Use this dialogue box to add a VAT Exemption Form to a Sales Order. It may be added from the [POS](https://bookstack.iconography.co.uk/books/epos/page/removing-vat-from-a-sales-order-line-in-the-pos) or from the [Sales Order](https://bookstack.iconography.co.uk/books/sales-orders/page/quick-access-buttons "Quick Access Buttons") screen in the CMS.

<p class="callout info">VAT Exemption reasons may be edited in [Site Settings](https://bookstack.iconography.co.uk/books/site-settings "Site Settings")</p>

When adding a customer signature, this may be drawn with a mouse, or on a touch screen device.

The form will be added as an attachment on a note against the order.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/scaled-1680-/uKVimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/uKVimage.png)

# Refund to Voucher

When processing a refund, it is possible to process a refund as a Voucher.

If done, this will automatically create a voucher linked to that Customer's email address.

<p class="callout info">This can be done via the CMS or via the POS</p>

# Discontinued



# Photo Gallery

This feature is no longer supported.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/T9Gimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/T9Gimage.png)

# Products



# Assignment Rules

Rules may be used to manage various elements of the CMS, and apply them to Products.

These include:

- Addons
- Cross Selling Rules
- [FAQs](https://bookstack.iconography.co.uk/books/faqs/page/summary)
- Global Tabs
- Overlays
-

# Import/Export Files



# Product Data

This may be used as an Import or an Export.

### Export

Use these filters to limit which columns are exported.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/8vDimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/8vDimage.png)

Use the filters to narrow your selection, then click 'Export'. This will generate a file that will include all Products that match your filters.

The export will include one row for each Variant linked to those Products.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/5JEimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/5JEimage.png)

#### Presets

It is possible to build Export presets. These provide a shortcut to which columns will be output.

You can either choose an existing preset from the drop down, or select 'new preset' If you do so, you will be prompted to enter a preset name, and select the required fields. That preset will then be available for future exports.

<p class="callout info">The SKU Code is always exported as the first column.</p>

### Import

Make changes to the file and import it to update Products.

When imported, the file will perform these two functions for each row:

1. If the SKU Code already exists in the database, then it will be updated as per the data in the spreadsheet
2. If the SKU Code does not exist, then a new Product will be created (see below for more details)

<p class="callout info">It is not possible to remove data using this method; blank cells will be ignored</p>

#### Merging Products

When creating a new Product, it is possible tomerge multiple rows into a Product with multiple Variants.

To do so, each row must share the same Name and ProdRef.

New Products with the same Name and ProdRef will be automatically merged on creation.

#### Field Summary

<table border="1" id="bkmrk-field-purpose-code-s" style="border-collapse: collapse; width: 100%; height: 4866.55px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Field</td><td style="height: 29.7969px;">Purpose</td></tr></thead><tbody><tr style="height: 104.188px;"><td height="19" style="height: 104.188px; width: 48pt;" width="64">code</td><td style="height: 104.188px;">*Sku Code (alphanumeric, mandatory, max 80 characters)*

<p class="callout info">*This field will not accept special characters; please limit your entries to letters, numbers, '-' and '.'*</p>

</td></tr><tr style="height: 87.3906px;"><td height="19" style="height: 87.3906px;">barcode</td><td style="height: 87.3906px;">*Barcode field (alphanumeric)*

<p class="callout info">*This will be autogenerated if left blank*</p>

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">mpn</td><td style="height: 29.7969px;">*Manufacturer's Part Number (alphanumeric, stored per Variant)*

</td></tr><tr style="height: 104.188px;"><td height="19" style="height: 104.188px;">prodref</td><td style="height: 104.188px;">*Product Reference*

<p class="callout info">*This is used to link Products as separate Products, or to merge new Variants into a new Product (see above)*</p>

</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">department</td><td style="height: 35.3906px;">*This powers the [Sales by Department](https://bookstack.iconography.co.uk/books/sales-reports/page/sales-by-department "Sales by Department") report (alphanumeric)*</td></tr><tr style="height: 46.5938px;"><td height="19" style="height: 46.5938px;">nominal</td><td style="height: 46.5938px;">*This field typically forms part of an integration with an accounts package*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">commodity</td><td style="height: 29.7969px;">*Enter the Commodity Code of the product (for use with exports)*</td></tr><tr style="height: 63.3906px;"><td height="19" style="height: 63.3906px;">origin</td><td style="height: 63.3906px;">*Enter the Country of Origin (enter the country code, e.g. GB)*

*This is only required when exporting*

</td></tr><tr style="height: 197.766px;"><td height="19" style="height: 197.766px;">name</td><td style="height: 197.766px;">*The Name of the Product (mandatory)*

*Displays as the page title (also known as the H1 Text) and is also output on Product Listing Pages, as well as being the primary field for search results*

*Also used as the Meta-Title by default*

  
*This may be used to merge new Variants into a new Product (see above)*

</td></tr><tr style="height: 57.7812px;"><td height="19" style="height: 57.7812px;">manufacturersproductname</td><td style="height: 57.7812px;">*If populated, this will replace the Product Name on all [Purchase Orders](https://bookstack.iconography.co.uk/books/purchase-orders "Purchase Orders")*</td></tr><tr style="height: 63.3906px;"><td height="19" style="height: 63.3906px;">price</td><td style="height: 63.3906px;">*The selling price of the Variant*

*Defaults to 0*

</td></tr><tr style="height: 68.9844px;"><td height="19" style="height: 68.9844px;">rrp</td><td style="height: 68.9844px;">*The RRP of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants"), to show on the website*

*Defaults to 0*

</td></tr><tr style="height: 102.578px;"><td height="19" style="height: 102.578px;">offerprice</td><td style="height: 102.578px;">*A retail offer price for the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (this will supersede the Retail field), if enabled by the Offer Start/Expiry*

*Defaults to 0*

</td></tr><tr style="height: 80.1875px;"><td height="19" style="height: 80.1875px;">offerstart</td><td style="height: 80.1875px;">*Date until which the Retail/Trade Offer price should apply*

*If left blank, the Retail/Trade Offer price will apply unless an start date has been set in the future*

</td></tr><tr style="height: 80.1875px;"><td height="19" style="height: 80.1875px;">offerexpiry</td><td style="height: 80.1875px;">*Date from which the Retail/Trade Offer price should apply*

*If left blank, the Retail/Trade Offer price will apply unless an expiry date has been set in the past*

</td></tr><tr style="height: 204.953px;"><td height="19" style="height: 204.953px;">costprice</td><td style="height: 204.953px;">*The cost price of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants")*

*Defaults to 0*

*May be set per [Supplier](https://bookstack.iconography.co.uk/books/categories/page/suppliers "Suppliers") enabled for this Product*

<p class="callout info">*This may only be used if the Product is linked to a single Supplier. If there are multiple Suppliers, you will need to use the [Cost Price](https://bookstack.iconography.co.uk/books/general/page/cost-price "Cost Price") import.* </p>

</td></tr><tr style="height: 165.203px;"><td height="19" style="height: 165.203px;">vat</td><td style="height: 165.203px;">*Select the VAT status of this [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") - choose from:*

- *Standard*
- *Reduced*
- *Zero*
- *Exempt*

*VAT rates for Standard and Reduced are controlled via [Countries](https://bookstack.iconography.co.uk/books/countries "Site Settings")*

</td></tr><tr style="height: 124.969px;"><td height="19" style="height: 124.969px;">lowstock</td><td style="height: 124.969px;">*Use this to set a low stock threshold, e.g. '7'*

*If the stock level is below this level, a warning will be show on your website and the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") will appear within the [Low Stock](https://bookstack.iconography.co.uk/books/stock-reports/page/low-stock) report*

*This will also be used to drive [Replenishment](https://bookstack.iconography.co.uk/books/replenishment)*

</td></tr><tr style="height: 68.9844px;"><td height="19" style="height: 68.9844px;">highstock</td><td style="height: 68.9844px;">*Use this to set a minimum stock level, e.g. '5'*

*This will be used to drive [Replenishment](https://bookstack.iconography.co.uk/books/replenishment)*

</td></tr><tr style="height: 52.1875px;"><td height="19" style="height: 52.1875px;">stocktext</td><td style="height: 52.1875px;">*A label that will display on the [Product Detail Page](https://bookstack.iconography.co.uk/books/product-detail-page "Product Detail Page") if this [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") has been selected*</td></tr><tr style="height: 57.7812px;"><td height="19" style="height: 57.7812px;">allowbackorder</td><td style="height: 57.7812px;">*This sets whether the [Product](https://bookstack.iconography.co.uk/books/categories/page/product "Product") may be sold without stock, e.g. [Sales Orders](https://bookstack.iconography.co.uk/books/sales-orders "Sales Orders") will be fulfilled by a back to back [Purchase Order](https://bookstack.iconography.co.uk/books/purchase-orders "Purchase Orders") (yes/no)*</td></tr><tr style="height: 68.9844px;"><td height="19" style="height: 68.9844px; width: 48pt;" width="64">allowpreorder</td><td style="height: 68.9844px;">*This will determine whether stock 'on the water', e.g. on a submitted [Purchase Order](https://bookstack.iconography.co.uk/books/purchase-orders "Purchase Orders") that has not yet been received, will be displayed as available stock on your website (yes/no)*</td></tr><tr style="height: 96.9844px;"><td height="19" style="height: 96.9844px;">postagetypes</td><td style="height: 96.9844px;"> *Enter postage type 'codes' in a comma delimtied list, e.g. 'standard,collect'.*

*Default postage types will be applied automatically to new Products*

</td></tr><tr style="height: 80.1875px;"><td height="19" style="height: 80.1875px;">deliverytext</td><td style="height: 80.1875px;">*Text entered in this field will display to the customer on the website if the product has available free stock*

*If left blank, this will default to 'In Stock'*

</td></tr><tr style="height: 119.375px;"><td height="19" style="height: 119.375px;">deliverytext2</td><td style="height: 119.375px;">*Text entered in this field will display to the customer on the website if the product does not have available free stock*

*If left blank, this will default to 'Out of Stock', or, if enabled for allowbackorder on the [Inventory](https://bookstack.iconography.co.uk/books/categories/page/inventory "Inventory") tab, it will default to 'Available (allow XXXXXX days for delivery)'*

</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">leadtime</td><td style="height: 35.3906px;">*Set the leadtime (total days) for the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants")*</td></tr><tr style="height: 109.781px;"><td height="19" style="height: 109.781px;">brandname</td><td style="height: 109.781px;">*This adds a [Brand ](https://bookstack.iconography.co.uk/books/brands "Brands")to a product*

<p class="callout info">*This will text match to an existing entry; if a matching entry does not exist, it will be created*</p>

</td></tr><tr style="height: 200.969px;"><td height="19" style="height: 200.969px;">supplier</td><td style="height: 200.969px;">*This section is used to add [Suppliers](https://bookstack.iconography.co.uk/books/suppliers) for a product. If not manually set, the default is to apply none.*

<p class="callout info">*If you are using multiple Suppliers for a single product, these may be added as a comma delimited list*</p>

<p class="callout info">*This will text match to an existing entry; if a matching entry does not exist, it will be created*</p>

</td></tr><tr style="height: 126.578px;"><td height="19" style="height: 126.578px;">collection</td><td style="height: 126.578px;">*This section is used to add [Collections](https://bookstack.iconography.co.uk/books/collections "Collections") to a product. If not manually set, the default is to apply none.*

<p class="callout info">*This will text match to an existing entry; if a matching entry does not exist, it will be created*</p>

</td></tr><tr style="height: 120.984px;"><td height="19" style="height: 120.984px;">summary</td><td style="height: 120.984px;">*This field allows for a simple summary of the product, with simple formatting*

<p class="callout info">*This may be uploaded with HTML to apply basic formatting*</p>

</td></tr><tr style="height: 120.984px;"><td height="19" style="height: 120.984px;">description</td><td style="height: 120.984px;">*This field controls the Product Description; formatting may be added to this using the controls at the top of the screen*

<p class="callout info">*This may be uploaded with HTML to apply basic formatting*</p>

</td></tr><tr style="height: 85.7812px;"><td height="19" style="height: 85.7812px;">tab1 to tab 4</td><td style="height: 85.7812px;">*If populated, this will add a new product information tab onto the product page; this field will provide the title of that tab*

*This will display in the same manner as a [Global Tab](https://bookstack.iconography.co.uk/books/global-tabs "Global Tabs")*

</td></tr><tr style="height: 46.5938px;"><td height="19" style="height: 46.5938px;">tab1to tab 4 content</td><td style="height: 46.5938px;">*This will form the content of a custom tab; this is populated as per the Product Description*</td></tr><tr><td>Merge Tag Title</td><td>*The title used on linked eCommerce Products*

*Used in Conjunction with Product Reference*

<p class="callout info">*Note that this field is optional for linked Products*</p>

</td></tr><tr><td>Merge Tag</td><td>*The label used on linked eCommerce Products*

*If multiple Products have the same Product Reference, they will be linked to the eCommerce Customer if a Merge Tag Title and Merge Tag are entered*

*Used in Conjunction with Product Reference*

<p class="callout info">*Note that this field is mandatory for linked Products*</p>

</td></tr><tr style="height: 80.1875px;"><td height="19" style="height: 80.1875px;">pdftext</td><td style="height: 80.1875px;">*Text entered here will be the link text shown to the customer on your website**This will default to the file name, if left blank*

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">videoid</td><td style="height: 29.7969px;">*Use this to determine the type of video (Youtube/Vimeo)*

</td></tr><tr style="height: 141.766px;"><td height="19" style="height: 141.766px;">videotype</td><td style="height: 141.766px;">*Enter the ID of the video that you want to attached to the product**You can find the video ID from the URL:*

*[https://www.youtube.com/watch?v=](https://www.youtube.com/watch?v=dQw4w9WgXcQ)<span style="background-color: rgb(248, 202, 198);">[dQw4w9WgXcQ](https://www.youtube.com/watch?v=dQw4w9WgXcQ) </span>*

*[https://vimeo.com/<span style="background-color: rgb(248, 202, 198);">794492622</span>](https://bookstack.iconography.co.uk/uploads/images/gallery/2024-09/ahsimage.png)*

</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">weight</td><td style="height: 35.3906px;">*Dimension of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (kg)*</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">volume</td><td style="height: 35.3906px;">*Dimension of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (m3)*</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">unitwidth</td><td style="height: 35.3906px;">*Dimension of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (cm)*</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">unitdepth</td><td style="height: 35.3906px;">*Dimension of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (cm)*</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">unitlength</td><td style="height: 35.3906px;">*Dimension of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (cm)*</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px; width: 48pt;" width="64">unitheight</td><td style="height: 35.3906px;">*Dimension of the [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") (cm)*</td></tr><tr style="height: 108.172px;"><td height="19" style="height: 108.172px;">cartons</td><td style="height: 108.172px;">*The number of Cartons in which this [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") is delivered from your Supplier*

*This will determine the number of product labels which will be printed from the [Label Printing](https://bookstack.iconography.co.uk/books/label-printing) screen, or at [Goods In](https://bookstack.iconography.co.uk/books/goods-in)*

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">productlive</td><td style="height: 29.7969px;">*Defines the Product Status (yes/no)*</td></tr><tr style="height: 169.766px;"><td height="19" style="height: 169.766px;">variantlive</td><td style="height: 169.766px;">*Sets whether this [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") is live*

*It is possible to have a Product with multiple Variants where some are not live*

*If all Variants are set 'Variant Live' to No, then the Product will be disabled.*

*Defaults to Yes*

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">buyonline</td><td style="height: 29.7969px;">*Defines whether the Product can be bought online (yes/no)*</td></tr><tr style="height: 96.9844px;"><td height="19" style="height: 96.9844px;">visibility</td><td style="height: 96.9844px;">*By default, all products will be visible on your website, but this setting allows you to determine visibility of the product within the POS, or across multiple websites*

*Enter a comma delimited list, e.g. website/instore*

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">featuredhome</td><td style="height: 29.7969px;">*Toggle to feature the product on the Home Page*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">featured</td><td style="height: 29.7969px;">*Toggle to feature the product on Category Pages*</td></tr><tr style="height: 119.375px;"><td height="19" style="height: 119.375px;">freeshipping</td><td style="height: 119.375px;">*Determines whether this [Variant](https://bookstack.iconography.co.uk/books/categories/page/variants "Variants") receives free shipping*

*This will only apply to orders within which all items have this enabled*

*(yes/no)*

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">disallowdiscounts</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">swatchwizard</td><td style="height: 35.3906px;">*Toggle to enable the [Swatch Wizard](https://bookstack.iconography.co.uk/books/product-detail-page/page/swatch-wizard) (yes/no)*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">multiswatch</td><td style="height: 29.7969px;">*Toggle to combine variants within the Swatch Wizard (yes/no)*

<p class="callout info">*This controls the following field against the Product: 'Combine variant and swatch selection in Swatch Wizard if applicable (enables "multiswatch")'*</p>

<p class="callout warning">*This will not be available if multiple layers of Variant option are on a product, e.g. 'Size' and 'Colour'*</p>

<p class="callout warning">*This will not be available if any live Variant has no Customisations*</p>

</td></tr><tr><td>previewswatch</td><td>*Enables [swatch preview panel](https://bookstack.iconography.co.uk/books/product-detail-page/page/swatch-panel) (yes/no)*

*Made to Order Products only*

</td></tr><tr style="height: 91.375px;"><td height="19" style="height: 91.375px;">requestaswatch</td><td style="height: 91.375px;">*Toggle to enable the [Swatch Request Popup](https://bookstack.iconography.co.uk/books/product-detail-page/page/swatch-request-popup) (yes/no)**([Swatches](https://bookstack.iconography.co.uk/books/swatches "Swatches") must be enabled for the Swatch Request tool for this to function)*

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">itemcondition</td><td style="height: 29.7969px;">*Choose if a product is 'New' or 'Used'*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">meta\_title</td><td style="height: 29.7969px;">*Use this to set a manual Meta Title*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">meta\_description</td><td style="height: 29.7969px;">*Use this to set a manual Meta Description*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">meta\_keywords</td><td style="height: 29.7969px;">*Use this to set your Meta Keywords*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">google\_product\_type</td><td style="height: 29.7969px;">*Use this to override the Google Category assigned to this product*

*May be left blank*

*By default, this will inherit the setting in the [Product's](https://bookstack.iconography.co.uk/books/categories/page/product "Product") parent [Category](https://bookstack.iconography.co.uk/books/categories/chapter/categories "Categories") (the Category that this is taken from will be clearly listed here as 'default')*

</td></tr><tr style="height: 46.5938px;"><td height="19" style="height: 46.5938px;">excludefinance</td><td style="height: 46.5938px;">*Baskets that include this Product will not be permitted to checkout with finance (eCommerce)*

</td></tr><tr><td>allowvatremoval</td><td>*Enables the ability to exempt this Product from VAT, either in the POS or the CMS*

</td></tr><tr style="height: 104.188px;"><td height="19" style="height: 104.188px;">option1 to 3 name</td><td style="height: 104.188px;">*Enter an Option Name for the Product*

<p class="callout info">*This will text match to an existing entry; if a matching entry does not exist, it will be created*</p>

</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">option1 to 3</td><td style="height: 29.7969px;">*Enter an Option Value for the Variant*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">related</td><td style="height: 29.7969px;">*Enter a comma delimited list of SKU codes as Related items*</td></tr><tr style="height: 29.7969px;"><td height="19" style="height: 29.7969px;">upsells</td><td style="height: 29.7969px;">*Enter a comma delimited list of SKU codes as Upsells*</td></tr><tr style="height: 35.3906px;"><td height="19" style="height: 35.3906px;">productaddons</td><td style="height: 35.3906px;">*Enter a comma delimited list of [Addon](https://bookstack.iconography.co.uk/books/addons "Addons") SKU codes*</td></tr><tr style="height: 63.3906px;"><td height="19" style="height: 63.3906px;">prodid</td><td style="height: 63.3906px;">*Export only*

*This will export the Product ID of the selected Product*

</td></tr></tbody></table>

#### Mapping

You will need to map your data before it can be imported.

<p class="callout success">It is highly recommended that your import file should only include the columns for the fields that you are intending to edit, and nothing else.</p>

<p class="callout danger">Mistakes made here may have serious impact on your Product database.</p>

# Category Association

This may be used as an Import or an Export.

The file looks like this:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/v8Zimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/v8Zimage.png)

### Export

Use the filters to narrow your selection, then click 'Export'. This will generate a file that will include all Customisations for products that match your filters.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/yQfimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/yQfimage.png)

### Import

Make changes to the file and import it; this will update Category associations.

When exported, the file will include every Category association belonging to a Product; this may mean a single SKU code could be repeated over multiple rows. The file is split into multiple columns, with each part of the Category hierarchy having its own column.

On import, if the specific Category does not exist (text match), one will be created.

Then, if an association does not exist between the specificed SKU and Category, one will be created.

<p class="callout warning">It is possible to create Categories in bulk using this import; be wary of typos, e.g. 'Sofa' and 'Sofas'</p>

<table border="1" id="bkmrk-field-purpose-code-t" style="width: 100%;"><colgroup><col style="width: 49.4519%;"></col><col style="width: 50.5243%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Code

</td><td>*A SKU Code of the Product*

*There is no need to link every Variant of a Product; just one will do*

</td></tr><tr><td>Category1</td><td>*The top level Category of this heirarchy*

</td></tr><tr><td>Category2</td><td>*The second level Category of this heirarchy*

<p class="callout info">*Optional - if left blank, the product will only be added at the previous Category level*</p>

</td></tr><tr><td>Category3</td><td>*The third level Category of this heirarchy*

<p class="callout info">*Optional - if left blank, the product will only be added at the previous Category level*</p>

</td></tr><tr><td>Category4</td><td>*The fourth level Category of this heirarchy*

<p class="callout info">*Optional - if left blank, the product will only be added at the previous Category level*</p>

</td></tr></tbody></table>

#### Mapping

You will need to map your data before it can be imported. Included below is the optimal mapping/spreadsheet structure.

<p class="callout danger">Mistakes made here may have serious impact on your Product database.</p>

If you check the box 'remove existing Categories', this will wipe all pre-existing associations from Products in your upload file.

<p class="callout danger">Removing existing associations is dangerous, and may have a serious impact on your Product Database</p>

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/6Dpimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/6Dpimage.png)

# Customisations (AKA 'Made to Order')

This may be used as an Import or an Export option.

The file looks like this:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/scaled-1680-/9Mlimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/9Mlimage.png)

### Export

Use the filters to narrow your selection, then click 'Export'. This will generate a file that will include all Customisations for products that match your filters.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/scaled-1680-/YMYimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-09/YMYimage.png)

### Import

Make changes to the file and import it to update Products. Any changes here will be added to existing Customisations.

It is possible to remove existing Customisations when you upload a file by using he 'remove existing MTO options tickbox'.

<p class="callout danger">Please be aware that removing Customisations in bulk is risky and could result in Customisations being removed incorrectly.</p>

<table border="1" id="bkmrk-field-purpose-code-t" style="border-collapse: collapse; width: 100%; height: 1148px;"><colgroup><col style="width: 50.0477%;"></col><col style="width: 50.0477%;"></col></colgroup><thead><tr style="height: 29.6px;"><td style="height: 29.6px;">Field</td><td style="height: 29.6px;">Purpose</td></tr></thead><tbody><tr style="height: 46.4px;"><td style="height: 46.4px;">Code

</td><td style="height: 46.4px;">*The SKU Code of the Variant to which the Customisations are linked*</td></tr><tr style="height: 137.6px;"><td style="height: 137.6px;">Product</td><td style="height: 137.6px;">*The Product Name to which the Customisations are linked - Variant Option Values are also appended to this, to differentiate between Variants*

<p class="callout info">*This is for reference purposes only, and changes here will not be updated within the system.*</p>

</td></tr><tr style="height: 92.8px;"><td style="height: 92.8px;">Option Name</td><td style="height: 92.8px;">*The Name associated with the Customisation, e.g. 'Size' or 'Colour'*

<p class="callout info">*Adding a new entry here may create a new [Option](https://bookstack.iconography.co.uk/books/options "Options")*</p>

</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Option Value</td><td style="height: 29.6px;">*The Value associated with the Customisation, e.g. 'Small' or 'Red'*</td></tr><tr style="height: 120.8px;"><td style="height: 120.8px;">Option Price</td><td style="height: 120.8px;">*The additional price to the customer associated with this Customisation, e.g. selecting 'Gold Feet' may add £49.99 to the price*

<p class="callout warning">*Enter in this format only: '0.00'*</p>

</td></tr><tr><td>  
</td><td>*Additional value to be added to the Special Offer price of the Variant*

<p class="callout info">*This will only apply during a Special Offer period, as defined by the Variant*</p>

<p class="callout warning">*Enter in this format only: '0.00'*</p>

</td></tr><tr style="height: 104px;"><td style="height: 104px;">Option Percent</td><td style="height: 104px;">*The additional price to the customer associated with this Customisation, e.g. selecting 'Cotton' may add 10% to the price*

<p class="callout warning">*Enter in this format only: '0.00'*</p>

</td></tr><tr style="height: 104px;"><td style="height: 104px;">Option Cost</td><td style="height: 104px;">*The additional cost associated with this Customisation, e.g. selecting 'Gold Feet' may add £49.99 to the price*

<p class="callout warning">*Enter in this format only: '0.00'*</p>

</td></tr><tr style="height: 92.8px;"><td style="height: 92.8px;">Swatch Group</td><td style="height: 92.8px;">*The Swatch Group linked to this Customisation.*

<p class="callout info">*Adding a new entry here may create a new [Swatch Group](https://bookstack.iconography.co.uk/books/swatches/page/swatch-groups "Swatch Groups")*</p>

</td></tr><tr style="height: 160px;"><td style="height: 160px;">Swatch Name</td><td style="height: 160px;">*The Swatch Group linked to this Customisation.*

*On upload, if a Swatch Name matching this entry exists within the Swatch Group (see above), that Swatch will be linked to this customisation.*

<p class="callout info">*Adding a new entry here may create a new [Swatch](https://bookstack.iconography.co.uk/books/swatches/page/swatches "Swatches")*</p>

</td></tr><tr style="height: 137.6px;"><td style="height: 137.6px;">Swatch Image</td><td style="height: 137.6px;">*The link to the Swatch Image that is linked to this Customisation*

<p class="callout info">*If you are creating a new Swatch Group, or there is no Swatch with a corresponding Swatch Name within an existing Swatch Group, and you have entered a link here, it will import that Swatch Image and create a new Swatch*</p>

</td></tr><tr style="height: 29.6px;"><td style="height: 29.6px;">Image Link Ref</td><td style="height: 29.6px;">This shows a link to an existing Variant Image, if one exsists</td></tr><tr><td>POS Only</td><td>*Toggles whether this particular Customisation Value is available to eCommerce Customers*</td></tr><tr style="height: 63.2px;"><td style="height: 63.2px;">Child Option</td><td style="height: 63.2px;">*Use this to set up interrelated options, e.g. choices for 'Choose Pattern/Plain' could lead to Child Options of 'Choose Plain Colour' and 'Choose Pattern Colour'*</td></tr></tbody></table>

#### Mapping

You will need to map your data before it can be imported. Included below is the optimal mapping/spreadsheet structure.

<p class="callout danger">Mistakes made here may have serious impact on your Product database.</p>

<p class="callout danger">Please be aware that removing Customisations in bulk is risky and could result in Customisations being removed incorrectly unless done with care. </p>

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-03/scaled-1680-/DB2image.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-03/DB2image.png)

# Images

This may be used as an Import or an Export option.

The file looks like this:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/PElimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/PElimage.png)

### Export

Use the filters to narrow your selection, then click 'Export'. This will generate a file that will include all Images for Products that match your filters.

One Product may have multiple images, in which case these will be split over multiple lines.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/qiDimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/qiDimage.png)

### Import

Make changes to the file and import it to update Products. If the image does not exist, a new one will be imported.

<table border="1" id="bkmrk-field-purpose-code-t" style="width: 99.6429%; height: 387.36px;"><colgroup><col style="width: 48.5647%;"></col><col style="width: 51.4353%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Field</td><td style="height: 29.7969px;">Purpose</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Code

</td><td style="height: 29.7969px;">*The SKU Code of the Variant to which the Images are linked*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Image</td><td style="height: 29.7969px;">*The link to the image.*

*If importing from a URL, enter the full URL, e.g. [www.example.com/image.jpg](https://www.example.com/image.jpg)*

*If importing from the server via FTP, just enter the image name, e.g. image.jpg*

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Alt</td><td style="height: 29.7969px;">*The alt text for the image*

<p class="callout info">*Defaults to the image name if not entered*</p>

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Display</td><td style="height: 29.7969px;">*Enter 'yes' or 'no'*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Image Number</td><td style="height: 29.7969px;">*Used for image sequencing*

*Enter a number*

*New images are added in the same order as the spreadsheet*

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Colour</td><td style="height: 29.7969px;">*Use this to link a Colour to the image for eCommerce [Filters](https://bookstack.iconography.co.uk/books/product-listing-page/page/filters)*</td></tr></tbody></table>

#### Mapping

You will need to map your data before it can be imported. Included below is the optimal mapping/spreadsheet structure.

<p class="callout danger">Mistakes made here may have serious impact on your Product database.</p>

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/BGvimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/BGvimage.png)

#### Adding Images via FTP

#### <span class="TextRun SCXW41209475 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2">Step 1: Prepar</span><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2">ing</span><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2"> your images for upload</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"134245418":true,"134245529":true,"201341983":0,"335559738":40,"335559739":0,"335559740":360}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">To use the IXO images CSV upload your image files are required to be in a single folder</span><span class="NormalTextRun SCXW41209475 BCX0">, i</span><span class="NormalTextRun SCXW41209475 BCX0">t is </span><span class="NormalTextRun SCXW41209475 BCX0">also </span><span class="NormalTextRun SCXW41209475 BCX0">recommended that you name your image</span><span class="NormalTextRun SCXW41209475 BCX0"> files</span><span class="NormalTextRun SCXW41209475 BCX0"> as the product SKU to make </span><span class="NormalTextRun SCXW41209475 BCX0">S</span><span class="NormalTextRun SCXW41209475 BCX0">tep</span><span class="NormalTextRun SCXW41209475 BCX0"> 2</span><span class="NormalTextRun SCXW41209475 BCX0"> easier.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">Example folder of product images prepared for upload:</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="SCXW41209475 BCX0"><span class="WACImageContainer NoPadding BlobObject SCXW41209475 BCX0" role="presentation">![](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/embedded-image-muhhbvrm.png)</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

#### <span class="TextRun SCXW41209475 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2">Step 2: Creat</span><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2">ing the images</span><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2"> CSV file</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"134245418":true,"134245529":true,"201341983":0,"335559738":40,"335559739":0,"335559740":360}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">Fill</span><span class="NormalTextRun SCXW41209475 BCX0"> out the example images </span><span class="NormalTextRun SCXW41209475 BCX0">CSV file</span> <span class="NormalTextRun SCXW41209475 BCX0">provided by Iconography along with this guide </span><span class="NormalTextRun SCXW41209475 BCX0">as per </span><span class="NormalTextRun SCXW41209475 BCX0">the </span><span class="NormalTextRun SCXW41209475 BCX0">example</span><span class="NormalTextRun SCXW41209475 BCX0"> line in the CSV.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"201341983":0,"335559740":240}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">Ensure </span><span class="NormalTextRun SCXW41209475 BCX0">the </span><span class="NormalTextRun SCXW41209475 BCX0">“image” field is filled with the </span><span class="NormalTextRun SCXW41209475 BCX0">file</span> <span class="NormalTextRun SCXW41209475 BCX0">name </span><span class="NormalTextRun SCXW41209475 BCX0">and file type (png or jpg) </span><span class="NormalTextRun SCXW41209475 BCX0">exactly as it is in the </span><span class="NormalTextRun SCXW41209475 BCX0">folder you prepared in Step 1.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"201341983":0,"335559740":240}"> </span>

#### <span class="TextRun SCXW41209475 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2">Step 3: Uploading your images</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"134245418":true,"134245529":true,"201341983":0,"335559738":40,"335559739":0,"335559740":360}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">Upon opening FileZilla (free to download if not already using this system</span> </span>[<span class="TextRun Underlined SCXW41209475 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-charstyle="Hyperlink">https://filezilla-project.org/download.php?type=client</span></span>](https://filezilla-project.org/download.php?type=client)<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">) you’ll see this screen.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">The login fields are at the top to enter the details </span></span><span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">provided by Iconography along with this guide</span><span class="NormalTextRun SCXW41209475 BCX0"> (contact us if you do not have logins)</span><span class="NormalTextRun SCXW41209475 BCX0">.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="SCXW41209475 BCX0"><span class="WACImageContainer NoPadding BlobObject SCXW41209475 BCX0" role="presentation">![](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/embedded-image-sreh5g19.png)</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">After clicking Quickconnect, you’ll get this window and you just need to click ‘OK’ to confirm you trust the connection</span><span class="NormalTextRun SCXW41209475 BCX0">.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="SCXW41209475 BCX0"><span class="WACImageContainer NoPadding BlobObject SCXW41209475 BCX0" role="presentation">![](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/embedded-image-bttaantl.png)</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="LineBreakBlob BlobObject DragDrop SCXW41209475 BCX0"><span class="SCXW41209475 BCX0"> </span>  
</span><span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">You’ll then be logged in and can see any image files already on the server on the bottom right box and files on your computer bottom left box.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="SCXW41209475 BCX0"><span class="WACImageContainer NoPadding BlobObject SCXW41209475 BCX0" role="presentation">![](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/embedded-image-xpkwjlgz.png)</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">Next in the bottom left box navigate to </span></span><span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">the folder you prepared in Step 1</span></span><span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0"> on your computer.</span><span class="NormalTextRun SCXW41209475 BCX0"> Then </span><span class="NormalTextRun SCXW41209475 BCX0">select all the images </span><span class="NormalTextRun SCXW41209475 BCX0">you’d like to upload </span><span class="NormalTextRun SCXW41209475 BCX0">and drag them into the </span><span class="NormalTextRun SCXW41209475 BCX0">bottom right box.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"201341983":0,"335559740":240}"> </span>

<span class="TextRun SCXW41209475 BCX0" data-contrast="auto" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0">In the bottom window it</span><span class="NormalTextRun SCXW41209475 BCX0"> wi</span><span class="NormalTextRun SCXW41209475 BCX0">ll give you an overview of the progress of the file transfer</span><span class="NormalTextRun SCXW41209475 BCX0">.</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{}"> </span>

#### <span class="TextRun SCXW41209475 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXW41209475 BCX0" data-ccp-parastyle="heading 2">Step 4: Uploading the images CSV file</span></span><span class="EOP SCXW41209475 BCX0" data-ccp-props="{"134245418":true,"134245529":true,"201341983":0,"335559738":40,"335559739":0,"335559740":360}"> </span>

Upload your CSV via the CMS.

# Cost Price

This may be used as an Import or an Export.

The file looks like this:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/u8Timage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/u8Timage.png)

### Export

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/scaled-1680-/BlIimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2025-10/BlIimage.png)

Select a Supplier - this will export a list of all Variants whose Product has been linked to your selected Supplier.

### Import

<p class="callout info">It is also possible (and may sometimes be preferrable) to use the [Price Management](https://bookstack.iconography.co.uk/books/price-management "Price Management") tool, as this allows for rules based price management, as well as timed price updates</p>

Make changes to the file and import it to update Variants. Any changes here will amend Cost Prices for that Variant.

Changes here will not update the landed cost of existing units of stock; these figures are used for new Purchase Orders and for calculating default margins on Sales Orders.

<table border="1" id="bkmrk-field-purpose-code-t" style="width: 100%;"><colgroup><col style="width: 49.8097%;"></col><col style="width: 50.1665%;"></col></colgroup><thead><tr><td>Field</td><td>Purpose</td></tr></thead><tbody><tr><td>Code

</td><td>*The SKU Code of the Variant*</td></tr><tr><td>Cost Price</td><td>*The Cost Price for the Variant*

</td></tr></tbody></table>

#### Mapping

Your file will not need mapping; it just needs two columns:

| code | cost price |

When uploading your file, you will need to select the Supplier to which the prices should be applied.

<p class="callout info">If you select a Supplier that is not associated with the Products in your file, new associations will be created. </p>

<p class="callout danger">Mistakes made here may have serious impact on your Product database.</p>

# Unique Stock Records (AKA USRs)

This may be used as an import or an export.

The file looks like this:

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-07/scaled-1680-/Lzoimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-07/Lzoimage.png)

### Import

Amend your file and upload it; this will update USRs which are in the file, based on Barcode.

<table border="1" id="bkmrk-field%C2%A0-purpose-code-" style="border-collapse: collapse; width: 100%; height: 298.785px;"><colgroup><col style="width: 49.881%;"></col><col style="width: 49.881%;"></col></colgroup><thead><tr style="height: 29.8785px;"><td style="height: 29.8785px;">Field </td><td style="height: 29.8785px;">Purpose</td></tr></thead><tbody><tr style="height: 29.8785px;"><td style="height: 29.8785px;">code</td><td style="height: 29.8785px;">Read only - this is use to identify the related Variant</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">barcode</td><td style="height: 29.8785px;">Read only - this is used to identify the USR that needs to be updated</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">label</td><td style="height: 29.8785px;">Use this to set the USR Label

This may also be referred to as the 'sub variant label'

</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">price</td><td style="height: 29.8785px;">Use this to set the Price of the USR

This will only be used where it is enabled (see below)

</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">specialprice</td><td style="height: 29.8785px;">Use this to set the Special Offer Price of the USR

This will only be used where it is enabled (see below)

</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">rrp</td><td style="height: 29.8785px;">Use this to set the RRP of the USR

This will only be used where it is enabled (see below)

</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">trade\_price</td><td style="height: 29.8785px;">Use this to set the Trade Price of the USR

This will only be used where it is enabled (see below)

</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">trade\_specialprice</td><td style="height: 29.8785px;">Use this to set the Trade Special Offer Price of the USR

This will only be used where it is enabled (see below)

</td></tr><tr style="height: 29.8785px;"><td style="height: 29.8785px;">trade\_rrp</td><td style="height: 29.8785px;">Use this to set the Trade RRP of the USR

This will only be used where it is enabled (see below)

</td></tr><tr><td>costprice</td><td>Use this to set the Cost Price of the USR

This will only be used where it is enabled (see below)

<p class="callout warning">This will not be editable if you have the 'multiple suppliers' config enabled</p>

</td></tr><tr><td>vlive</td><td>This sets whether the USR is live on your website; choose from

- yes
- no

</td></tr><tr><td>vlivepos</td><td>This sets whether the USR is live in your POS; choose from

- yes
- no

</td></tr></tbody></table>

### Export

Use the filters to narrow your selection, then click 'Export'. This will generate a file that will include all Customisations for products that match your filters.

[![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-07/scaled-1680-/JlFimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-07/JlFimage.png)

#### Mapping

You will need to map your data before it can be imported. Included below is the optimal mapping/spreadsheet structure.

<p class="callout danger">Mistakes made here may have serious impact on your Product database.</p>

### [![image.png](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-07/scaled-1680-/O0Gimage.png)](https://bookstack.iconography.co.uk/uploads/images/gallery/2026-07/O0Gimage.png)

# Upsell Visibility



# How to select Upsells in the POS and CMS

This process works for both POS and CMS, with the Upsell journey being identical in both. Note that the eCommerce journey follows the same rules.

<p class="callout info">For more information, please click [here](https://bookstack.iconography.co.uk/books/general/chapter/upsell-visibility "Upsell Visibility")</p>

### Product Selection

1\. Click "ORDER" to add your base Product

![](https://colony-recorder.s3.us-west-1.amazonaws.com/files/2026-09-29/7347ffc6-85ff-4093-be9b-65cdffb639b9/sps-redacted-ca1b136ed4984108893842af3494c36e_51311e597dec4d7eafe21b97fa0ac029_text_export.jpeg)

2\. Select the Variant as normal

![](https://colony-recorder.s3.us-west-1.amazonaws.com/files/2026-09-29/b6a7942b-6d89-4a53-9590-a404206e8a6c/sps-redacted-517914e710a54c0cb40bdd085c0fec0a_1e66103d5e6149dd8b86eeb370748a35_text_export.jpeg)

3\. Configure options as necessary

![](https://colony-recorder.s3.us-west-1.amazonaws.com/files/2026-09-29/9910ae47-8cf4-4c44-8dd3-a74ab3c2ef04/sps-redacted-b3111a63b35749c59da68f3b929c823c_ee74a8fa4b404f818e3143366d60103c_text_export.jpeg)

Tip: Addons will also be configured at this stage, if enabled

### Product Upsells

4\. Once the Product is configured and your Addons are selected (if applicable), the first Upsells will be shown

![](https://colony-recorder.s3.us-west-1.amazonaws.com/files/2026-09-29/55e03b7f-729a-4da5-acac-0d0ed1d89c33/sps-redacted-7a2dfc0b47ae4f05a1347ad521785839_83b20292f513470d9712e921ab208b8e_text_export.jpeg)

Tip: At this stage, you will have to configure Customisations for the Upsell product, if applicable.

In this example, the Pink was preselected, as it matched the Pink we chose on the original Product.

5\. Click "Continue"

![](https://colony-recorder.s3.us-west-1.amazonaws.com/files/2026-09-29/422de984-d088-4586-8627-1aa2af4c9397/sps-redacted-44c4c040f6d543a588cb15febdd6f4b0_a0a4844827f240959d07716d9be17b42_text_export.jpeg)

Tip: If set up, the User will be asked to configure Addons at this stage

6\. The wizard will then automatically take the user to the next set of Upsells

![](https://colony-recorder.s3.us-west-1.amazonaws.com/files/2026-09-29/1a75af9d-2e9c-4219-b0ca-948c85f19b5d/sps-redacted-38d30c5356444d0492bd5a3f45a556b8_017b26c475074feabf026e78ba7b4731_text_export.jpeg)

# Upsell Visibility (POS, eCommerce and CMS)

This page covers how upsells work in IXO Commerce, where they appear, and the order they are presented in.

If you would like to see how to select Upsells in the POS and CMS, click [here](https://bookstack.iconography.co.uk/books/general/page/how-to-select-upsells-in-the-pos-and-cms "How to select Upsells in the POS and CMS").

### Where upsells are shown

Upsells are presented in a step-by-step wizard in two places:

- **POS and CMS**, when a product is added to an order
- **Ecommerce website**, for made-to-order (MTO) items only

### Wizard sequence

The wizard runs through the following steps in order. Any step with nothing to show is skipped.

1. **Configure the main product.** Only shown if the product needs configuring (for example, an MTO item with Customisations).
2. **Variant upsells assigned manually.** Set on the product edit screen.
3. **Variant upsells assigned by rules.**
4. **Product upsells assigned manually.** Set on the product edit screen.

All variant-level steps come before any product-level step.

#### Add-ons to upsells

If an upsell has its own add-ons, they slot into the journey straight after that upsell, before the wizard moves on to the next step.

#### Stacking

Upsells can be stacked, so a product can have as many upsell groups as it needs. Each group is shown in turn within its step.

### Rules and restrictions

#### Product type combinations

<div dir="ltr" id="bkmrk-parent-product-upsel"><table><thead><tr><th scope="col">Parent product</th><th scope="col">Upsell product</th><th scope="col">Result</th></tr></thead><tbody><tr><td>Standard</td><td>Standard</td><td>Shown</td></tr><tr><td>MTO</td><td>Standard</td><td>Shown</td></tr><tr><td>Standard</td><td>MTO</td><td>Can be attached, but will not show</td></tr><tr><td>MTO</td><td>MTO</td><td>Shown</td></tr></tbody></table>

</div>An MTO item cannot be upsold with a standard product. The system will let you attach one, but it will not appear in the wizard.

#### Rule-based upsells

Upsells assigned by rules only appear in the wizard if they are a variant upsell type. Rule-based product upsells will not show.

#### MTO option preselection

When an MTO upsell has options that match those already chosen on the parent product, those options are preselected. For example, if the customer picked a fabric on the parent and the same fabric is available on the upsell, it will be selected for them. The customer can still change it.