Product Sync
The purpose of this feature is to create and update products in Infigo from printIQ.
This supports both print-on-demand Static PDF products and stock/inventory items.
The concept is that when a product is created or updated in printIQ, a webhook will be triggered from printIQ sending a product payload to your Infigo platform. Infigo will then parse the information channelled through a central "Master" storefront and either create or update the relevant product in the relevant storefront based on information with that request.
The plugin introduces the concept of a blueprint/master product and category to be created and configured so that the display of the products and categories created from printIQ can be controlled to a certain degree. Options like display settings will then be copied over to the new products and categories based on the Master one set.
Setup Process
You need to set up a Master storefront that is used to filter the products from PIQ so that they can be created on their respective storefront. To set this you can either use an existing storefront that is already created on your platform OR you would create a new storefront and set that as the "Master Sync storefront". The benefit of having a separate storefront is that if any of the products are created without the correct category structure in PIQ they would be set up on this separate storefront which would not act as a LIVE storefront. Create the new storefront and make a note of the ID under the manage storefront section OR navigate to the platform level using your Platform Admin account.
Platform level settings
To set the Master storefront you need to go to the platform level and specify the storefront ID of the new Master storefront you wish to use against the connect settings section and the entry for ":"
Whilst still at platform navigate to the Connect plugin section and click configure on PIQ plugin - under the section for Product Sync, enable the sync switches for Sync Print on Demand products + Sync stock products
Master Storefront settings
Now set the settings on the Master storefront. Here you will need to create the master product and category (if using one) in product management and manage categories. These will form the basis of your product and category setups when the sync from PIQ has taken place. Use the naming convention of 'Master_XXXX' for product and category.
Navigate back to the Connect Plugin PIQ settings page you can now set the 'Master_' options for product and category under the Product Sync section.
Add in the general info for the plugin using the V0 and V1 (Base 64 token) credentials provided by PIQ and remember to turn on the plugin under Connect settings (checkbox for PIQ plugin).
The final part of the setup is setting the PIQ category code used for the customer's clients in PIQ. This code has to be set against each storefront where the products are designated to go from within the PIQ category hierarchy.
In your PIQ each customer will have a Category ID - that same ID will need to be set against the Infigo Storefront connect link section. Navigate to Storefront Management and select the storefront you wish to map to using the individual customer category codes from PIQ. Click the connect link and add the ID.
Once the IDs are all mapped and in place for their respective category ID that needs importing to their store and the connect settings have the PrintIQ plugin setting enabled, the sync from PIQ should pass the product info across to Infigo and through the master storefront and use the ID to create products on the relevant storefronts.
Important notes
The category structure of the products is passed from printIQ to Infigo as per the table below. It is important that the category structure in PrintIQ is correctly set as this will be represented in Infigo.
It is also important to note that, due to the nature of multiple storefront setups adopted by many users, that the very top-level category in PrintIQ is named the same as the Infigo Storefront External ID. This is used in Infigo to determine which storefront the product is subsequently created and updated on.
Products are created with a free type quantity box for all products in PrintIQ that are set up with a pricing method of ‘Each’. Otherwise, if a quantity exists against a product, we create quantity tiers in Infigo for each quantity and ignore any pricing that is stored in Infigo which restricts the end user from being able to order that product apart from only in those specified set quantities.
Pricing should be held solely in PrintIQ and Infigo requests this via the GetPrice API.
Inventory Products
The below table describes the mapping from the printIQ payload into Infigo for Inventory products, demonstrating the information that is captured and how it is used.
PrintIQ | Infigo | Comments |
SIName | Product Name | |
SIDescription | Product Description | |
SIActive | IsActive | true = enabled, false = disabled |
SIAllowBackOrders | BackOrders |
true = Allow qty below 0 false = No backorders |
InventoryItem.IICode | Product External ID | This will be used as the key mapping between the product in Infigo and the product in IQ. When GetPrice is called to obtain a price this is the product code that is passed, likewise when the order is placed. |
InventoryItem.IICode | SKU | |
InventoryItem.IISingleUnitWeight | Product Unit Weight | |
InventoryItem.ItemWidth | Product width | |
InventoryItem.ItemHeight | Product height | |
InventoryItem.ItemDepth | Product depth | |
InventoryItem.ItemDefaultLocation | Item Location | Not supported |
InventoryItem.ImageFullFilePath | Product Image | Will be displayed on the product landing page and in the product teaser on category pages |
Categories[] | This section details the category structure that needs to be created/updated related to that product | This object will include an array of categories for the entire tree structure |
Categories[i].ID | Category External ID | |
Categories[i].Name | Category Name | |
Categories[i].ParentID | External ID of parent Category | Used to assign the category to a parent category to create the hierarchy |
Categories[i].Description | Category Description | |
Categories[i].ImageURL | Category Image | |
Categories[i].Level | A numerical representation of the hierarchy of that category |
Level 0 is always the value of the category where the product is assigned. Any parent categories are then represented with a negative number for each level up (0 = product category, -1 = parent, -2 = parents parent) The top-level category (i.e. the lower number) would be the storefront (Categories[i].Name = storefront external ID) |
Static Print-On-Demand products
The below table describes the mapping from the printIQ payload into Infigo for Static PDF products, demonstrating the information that we capture and how it is used.
PrintIQ | Infigo | Comments |
Name | Product Name | |
Description | Product Description | |
QPDActive | IsActive | true = enabled, false = disabled |
ProductCode | Product External ID | |
ProductCode | SKU | |
Weight | Product Unit Weight | Always in grams |
QPDMinOrderQuantity | Minimum basket quantity | |
QPDMaxOrderQuantity | Maximum basket quantity | |
ThumbnailURL | Product Image | |
PricingItems.SPQuantity | Quantity Tiers | If the pricing method is not set to ‘Each’ for the product in PrintIQ we will create the relevant passed quantity tiers so that customers can only order in those quantities. |
TreeNodes[] | This section details the category structure that needs to be created/updated related to that product | This object will include an array of categories for the entire tree structure |
TreeNodes[i].ID | Category External ID | |
TreeNodes[i].Name | Category Name | |
TreeNodes[i].ParentID | External ID of parent Category | Used to assign the category to a parent category to create the hierarchy |
TreeNodes[i].Description | Category Description | |
TreeNodes[i].ImageURL | Category Image | |
TreeNodes[i].Level | A numerical representation of the hierarchy of that category |
Level 0 is always the value of the category where the product is assigned. This will also act as the storefront filter to determine which storefront that product should be created/sync’d on. The lowest level must match the Storefront External ID. |
ArtworkURL | Dictates if a static PDF product should be created (if there is a valid URL set) or not (if the value is empty/null) |
NOTE: If the Print IQ product contains multiple sections and therefore multiple PDFs we will not pull these into Infigo and treat the product as a inventory stock item. Only when the artwork is a single section, single PDF static product we will create a static PDF product in Infigo.
0 Comments