Product catalogue feed integration
To keep your app up-to-date with all your latest product information, you need to provide a single CSV (or XML) file which Poq uses to populate your catalogue. This file is called the Product feed file.
Your product feed file contains all the information required to display your products to your customer - including description, name, colour, sizes available and images.
In order to keep your app up to date, Poq checks your Product feed file regularly, so it must be in a place that can be easily accessed, and it should contain the most current information about all of your products.
Updating the products in your Product feed file
Poq uses the product feed file to update product details at regular intervals. The feed is usually checked every 24 hours, but it may be more often, especially if your feed contains stock levels and other information that changes regularly.
This means you need to ensure your the feed file you provide to us is updated regularly.
If you have a very large feed file, you can improve the accuracy of the product data in the Poq database by providing an incremental feed file in addition to your full feed file. The incremental feed file contains only the changes made to products since the last time the feed has been processed. Category changes cannot be added using an incremental feed.
An incremental feed can be run and managed completely separately from the full/main feed. This means it can be run on a different, more frequent schedule and the way the file is processed can be different.
For example, This could mean that the incremental feed file only contains new products that have been added since the last feed run. Or that you provide the full feed file, but Poq only updates fields that have changed since the last feed - like stock levels or price.
The structure of the file should be the same as the full feed file.
Changes to categories cannot be made in the incremental feed. New categories and hierarchy changes are only updated when your full feed file is processed.
Example file supply schedules
A full feed file should be supplied at regular intervals. For example, every 6/8/24 hours. Or at set times of day, like 06:00/14:00/20:00. The Poq feed processor is set to run in step with these - updating the database used by your app accordingly.
An incremental feed file can be supplied at more regular intervals.
Full feed file again with regular timing. The incremental feed uses the same file as the full feed but runs more frequently (once every 1/2 hours) only process stock and pricing details.
Where to host your Product feed file
You can host your product feed file on any of the following types of FTP solution:
- An FTP/SFTP location protected by a username or password.
- A publicly accessible location, accessed via standard HTTP protocol.
- The Poq datastore, which you can access with SFTP credentials we provide.
Once you have decided which method you prefer to use, you can provide us with the address where the file is kept.
File formats you can use
You can provide your in either CSV or XML file formats. If you don't have a preference, it's best to use CSV files because they are easier to work with, produce smaller files, and are more easily read by humans.
CSV format example
The CSV file you use should look something like this:
id,name,price,specialprice,parentproductid,sku,isinstock,quantity,size,color,colorGroupId,pictureurls,productURL,categoryid,categoryname,categoryurl,categorysortindex,description,ean,shortdescription 314,Convertible Dress,340,340,425-Blue,wsd017,1,23,10,Blue,425,",http://poqmagento.westeurope.cloudapp.azure.com/media/catalog/product/w/s/wsd013t_5.jpg",http://poqmagento.westeurope.cloudapp.azure.com/convertible-dress-406.html,4>13,Women>Dresses & Skirts,http://poqmagento.westeurope.cloudapp.azure.com/women.html>http://poqmagento.westeurope.cloudapp.azure.com/women/dresses-skirts.html,1,<b></b><br/>Array<br/><br/>,Array,"This all day dress has a flattering silhouette and a convertible neckline to suit your mood. Wear tied and tucked in a sailor knot, or reverse it for a high tied feminine bow." 313,Convertible Dress,340,340,425-Blue,wsd016,1,21,8,Blue,425,",http://poqmagento.westeurope.cloudapp.azure.com/media/catalog/product/w/s/wsd013t_4.jpg",http://poqmagento.westeurope.cloudapp.azure.com/convertible-dress-405.html,4>13,Women>Dresses & Skirts,http://poqmagento.westeurope.cloudapp.azure.com/women.html>http://poqmagento.westeurope.cloudapp.azure.com/women/dresses-skirts.html,1,<b></b><br/>Array<br/><br/>,Array,"This all day dress has a flattering silhouette and a convertible neckline to suit your mood. Wear tied and tucked in a sailor knot, or reverse it for a high tied feminine bow." 312,Convertible Dress,340,340,425-Blue,wsd015,1,12,6,Blue,425,",http://poqmagento.westeurope.cloudapp.azure.com/media/catalog/product/w/s/wsd013t_3.jpg",http://poqmagento.westeurope.cloudapp.azure.com/convertible-dress-404.html,4>13,Women>Dresses & Skirts,http://poqmagento.westeurope.cloudapp.azure.com/women.html>http://poqmagento.westeurope.cloudapp.azure.com/women/dresses-skirts.html,1,<b></b><br/>Array<br/><br/>,Array,"This all day dress has a flattering silhouette and a convertible neckline to suit your mood. Wear tied and tucked in a sailor knot, or reverse it for a high tied feminine bow." 425,Lafayette Convertible Dress,340,340,,wsd013c,1,0,,,,",http://poqmagento.westeurope.cloudapp.azure.com/media/catalog/product/w/s/wsd013t.jpg,http://poqmagento.westeurope.cloudapp.azure.com/media/catalog/product/w/s/wsd013a_2.jpg,http://poqmagento.westeurope.cloudapp.azure.com/media/catalog/product/w/s/wsd013b_2.jpg",http://poqmagento.westeurope.cloudapp.azure.com/lafayette-convertible-dress.html,4>10;4>13,Women>New Arrivals;Women>Dresses & Skirts,http://poqmagento.westeurope.cloudapp.azure.com/women.html>http://poqmagento.westeurope.cloudapp.azure.com/women/new-arrivals.html;http://poqmagento.westeurope.cloudapp.azure.com/women.html>http://poqmagento.westeurope.cloudapp.azure.com/women/dresses-skirts.html,1;1,<b></b><br/>Array<br/><br/>,Array,"This all day dress has a flattering silhouette and a convertible neckline to suit your mood. Wear tied and tucked in a sailor knot, or reverse it for a high tied feminine bow."
What to include in your Product feed file
This table outlines recommended field names, and what the data in each field does in your app.
|id||Yes||A value that uniquely identifies each product. The ID does not have to be unique to each record in the feed. More than one sizes of the same product can share the same ID.|
|categoryname||Yes||When categoryid field is present, the depth of the category names must be equal to the number of category ids. (e.g. "Shoes; Sale>Men>Exclusive; Sale>T-shirt")|
|description||Yes||Please add a long description here. Include materials, specification, size, fit information and so forth in this field. Line breaks and double spaces are carried over. Please escape all double quotation marks. You can include HTML in the description.|
|name||Yes||Used as the main product title on product listings and the product details page.|
|parentproductid||Yes||Is used to group variations of the same product. Entries with same 'parentproductid' are grouped together and displayed as one product. Most commonly used for grouping together product sizes. Products with different colours must have different parent product ids.|
|pictureurls||Yes||Contains a semicolon-separated list of picture URLs. Please provide the highest resolution (minimum 500×500 pixels, 1500×1500 is recommended) pictures available.|
|price||Yes||Price of the product before any discounts.|
|sku||Yes||Must be an identifier unique to each unit that is sold independently. We will use this value "as-is" when referring to the product variation when interacting with your system.|
|categoryid||Depends||This field is required only when there is an API/Merchandising integration to list products belonging to a specific category, so it can be looked up by ID. The field contains one or more categories. Categories are semi-colon separated and category levels are separated by a greater sign. (e.g."1; 5>32>33; 5>34")|
|brand||No||Used for filtering the products by brand.|
|colourgroupid||No||Groups different products with the same colour or style together. It could be a unique number, product code, colour code, url, etc. For instance, if a single sized product comes in two colours, the two SKUs of this product should have the same
|colourname||No||Contains the name of the colour of a product. (e.g. "Navy Blue", "Light Cream")|
|colourswatch||No||A URL to an image to be used to show a colour icon on the product details page if the product has other colours. When not present, a smaller version of the lead image is displayed instead.|
|delivery||No||Used for relaying any specific delivery information related to the given product. If enabled, this will be displayed in respective content blocks on the Product Details screen. Can be supplied as HTML. In the event that only generic delivery content is required, these fields should be blank as Poq CMS managed content will be used instead.|
|ean||No||European Article Number, often used to transfer barcodes.|
|isinstock||No||The following values indicate a product is in stock:
|quantity||No||The stock level of the particular item. Is used for low stock indicator. Is not used to determine whether a product is in stock or not.|
|producturl||No||A full link to the product page, including the https schema portion.|
|promotion||No||Can be used to provide a text string, to be displayed on the PLP screen as a product promotional banner. For example, 'New In' , 'Sale', 'Special Offer' indications within each product cell on the PLP. Please ensure that the value passed fits within the promotional banner area.|
|returns||No||Used for relaying any specific returns information related to the given product. If enabled, this will be displayed in respective content blocks on the Product Details screen. Can be supplied as HTML. In the event that only generic returns content is required, these fields should be blank as Poq CMS managed content will be used instead.|
|size||No||Determines the text used to display the size. (e.g. "XL", "Small", "12")|
|sortindex||Depends||Required when the 'categoryid' is not present. Defines the order of the products in a category. The number of indexes must be equal to the number of category ids. (e.g. "1;45;3")|
|specialprice||No||Discounted sales price. When present 'price' is used to display old price.|
|style||No||Used for filtering the products by style. One style value per product is allowed.|
|videourl||No||The full link to the product's video file, including its extension. You are responsible for hosting the video file. Only MPEG-4 videos (extension .mp4) are supported.|
|Additional Information||No||To be used for custom features, you may add additional product information (such as product ratings). This is achieved by adding additional columns and values to the file.|