Case Study: The Tottenham Hotspur Aluminium Water Bottle
Product 1299978
is a Tottenham Hotspur FC Aluminium Water Bottle fulfilled
by GBN and uses licensed content.
It has two different aspect options:
- White
- Silver
Supplier
GBN require a different SKU for each option.
This can be handled in a straight forward manner using product variants.
Aspect Option 1 Name | Variant SKU | Variant Ref |
---|---|---|
White | MAP034 | EC2559BA8710 |
Silver | MAP035 | CCCE59BA8710 |
Retailer
For the correct SKU to be passed to the supplier, we need the order item’s SKU field to be the variant SKU.
How this happens depends on which order creation method is being used.
There are currently two ways in which an order for product 1299978
can reach OMS:
- Via the standard CSV integration with a Tottenham Hotspur specific row mapper
- Via the PFG website using the Personalise-iT and Order-iT APIs
CSV Retailer Integration
A standard CSV retailer integration for Tottenham Hotspur is set up on company 18633.
Tottenham use their own CSV format which gets mapped to the standard format using the
Tottenham
row mapper.
Tottenham do not use GBN SKUs and instead have their own SKU for each option:
Aspect Option 1 Name | Variant SKU | Tottenham SKU |
---|---|---|
White | MAP034 | PERSWHITEBOTTLE |
Silver | MAP035 | PERSSILVERBOTTLE |
To deal with Tottenham’s SKUs, a SKU map is set up on 18633 which maps from their SKU to the relevant product variant ref:
from | to_pv_ref |
---|---|
PERSWHITEBOTTLE | EC2559BA8710 |
PERSSILVERBOTTLE | CCCE59BA8710 |
This means that when a CSV row for PERSWHITEBOTTLE
is imported, the system
goes through the following steps:
- It looks up
PERSWHITEBOTTLE
in the SKU map for 18633 - The product variant ref
EC2559BA8710
is returned from the SKU map -
- It looks up the variant SKU for variant ref
EC2559BA8710
and getsMAP034
- It looks up the product ID for variant ref
EC2559BA8710
and gets1299978
- It looks up the variant SKU for variant ref
-
- It creates an order line using SKU
MAP034
- It creates a print job using product
1299978
taking into account the variant’s properties
- It creates an order line using SKU
Personalise-iT and Order-iT API
The process the system goes through for print jobs and orders that are created via the Personalise-iT (i.e. iframe app) and Order-iT APIs is much simpler.
As long as the app used to create the print job is fairly up to date (i.e. acp3_2
)
and the custom-gateway.net
API endpoints are being used, the system will handle
the product variant automatically without the need for any mapping.
Appendix
Appendix A
Example Import CSV
A CSV containing product variants can currently only be imported by James.
product_id | aspect_option_1_name | aspect_option_2_name | attribute_1_name | attribute_2_name | text_area_1_option | sku |
---|---|---|---|---|---|---|
1299978 | White | MAP034 | ||||
1299978 | Silver | MAP035 |
Appendix B
The Tottenham Row Mapper
Original Field | Maps To |
---|---|
Date |
order.sale_datetime |
Order Number |
order.external_ref |
Customer Name |
order.customer_name |
Customer Address 1 |
order.shipping_address_1 |
Customer Address 2 |
order.shipping_address_2 |
Customer Address 3 |
order.shipping_address_3 |
Customer Address 4 |
order.shipping_address_4 |
Customer Address 5 |
order.shipping_address_5 |
Customer Postcode |
order.shipping_postcode |
Country |
order.shipping_country |
Telephone No |
order.shipping_telephone |
Personalisation 1 |
textual.field_value1 |
Personalisation 2 |
textual.field_value2 |
Personalisation 3 |
textual.field_value3 |
Personalisation 4 |
textual.field_value4 |
Personalisation 5 |
textual.field_value5 |
Personalisation 6 |
textual.field_value6 |
Personalisation 7 |
textual.field_value7 |
Personalisation 8 |
textual.field_value8 |
Personalisation 9 |
textual.field_value9 |
Personalisation 10 |
textual.field_value10 |
Personalisation 11 |
textual.field_value11 |
Personalisation 12 |
textual.field_value12 |
Personalisation 13 |
textual.field_value13 |
Personalisation 14 |
textual.field_value14 |
Product Description |
item.description |
Quantity |
item.quantity |
Price |
item.price |
Priam Code |
item.sku |