A product data feed is a structured file that contains information about products and their attributes. Doofinder needs to be 'fed' with this information in order to display results when a customer performs a search. Understanding how the data feed works is very important to integrate Doofinder smoothly and make the most of it.
If you use Shopify, WooCommerce, BigCommerce, Prestashop, Magento 2, Shopware or any of the other eCommerce platforms that integrate with doofinder, your products will automatically be added to Doofinder once you link an ecommerce store to your doofinder account.
If you are not using any of the supported platforms, a Product Data Feed can be used to upload your product catalog to Doofinder. The most common way is by using a file in .txt, .xml or CSV format.
If you prefer, you can use the Google Shopping data feed to supply product information to Doofinder, if so, please follow their specifications . The Google Shopping Feed can be found at Google Merchant Center under Products > Feeds.
As we mentioned at the beginning of our doc, a feed is a file that contains a list of products you want to display. Doofinder needs to be 'fed' with information on the products in order to show them when a customer performs a search.
There are several ways to feed Doofinder with the products' information. The most common are using a file or a URL. The file can be in .txt, .xml or CSV format. You can compress such a feed file in .zip, .gz, or .bz2 formats.
The accepted formats are: .zip, .bz2, .txt, .csv, .xml, .gz or .tgz. Max File Size: 625MB.
The Data Feed Information Fields
The specific fields in a product data feed can vary depending on the platform. In the case of Doofinder, these are some of the information fields that the feed must contain:
Name | Content | Example | Status |
---|---|---|---|
id | Unique identifier: a number, a string, or an alphanumeric string. It must be unique for every product. | 3253 | Mandatory |
title | The name or title of the product. | V-Neck T-Shirt | Mandatory |
link | Your product's landing page | https://woocommerce.doofinder.com/product/adidas-originals-short-sleeve-t-shirt/ | Optional |
image_link | Url link to the main image of your product. (preferably in .jpeg format) | https://woocommerce.doofinder.com/product/adidas-originals-short-sleeve-t-shirt/ | Recommended |
price | Selling price of the product. | 15.0 | Recommended |
sale_price | The discounted price if the product is on sale. If there is no discount, this field has to be empty. | 13.0 | Recommended |
category | The category or type of the product (e.g., electronics, clothing, home & garden) | Clothing > Tshirts | Recommended |
group_id | Items with the same group_id attribute are considered variants of the same item. | DFF-0283A | Recommended |
group_leader | The item set to true will be chosen as the group representative in search result. The rest of the items in the group must be set to false. | true | Recommended |
description | A brief description of the product. | V-shape collar and short sleeve, cotton t-shirt. | Optional |
availability | Indicates if the product is in stock or out of stock. | In stock | Optional |
Condition | The condition of the product (new, used, refurbished). | New | Optional |
gtin | Global Trade Item Number. | 1232513152432 | Optional |
Additional Attributes | Depending on the platform, there may be additional fields specific to the product type, such as color, size, weight, material, etc. | S/M/L/XL | Optional |
A plain text file is the easiest to use, where each line represents a product. The first line must specify the field's name, and each field must be separated by:
- tab
- | (pipe)
- ; (semicolon)
- , (comma)
For example:
title | link | description | id | price | sale_price | image link | category | availability
Rich Organic Tea | https://woocommerce.doofinder.com/index.php/product/rich-organic-tea/ | Organic Teas use no chemicals like pesticides, herbicides, fungicides, or chemical fertilizers, to grow or process the tea after it is harvested. | 12342 | 7.0 | 5.0 | https://woocommerce.doofinder.com/wp-content/uploads/2018/06/pumpkin-pulp-tin.jpg | Groceries | in stock
Natural Extracted Olive Oil | https://woocommerce.doofinder.com/index.php/product/natural-extracted-olive-oil/ | oil extracted from the fleshy part of the ripened fruit of the olive tree, Olea europaea | 12257 | 14.5 | 12.95 | https://woocommerce.doofinder.com/wp-content/uploads/2018/06/product23-free-img.jpg | Groceries | in stock
Download Feed Examples
You can add as many attributes as needed for the search (color, size, weight, brand…). If the product has many field names to specify, it is better to use the Special Attributes function.
Special Attributes Feature
If the type of feed you provide to Doofinder is in CSV format and has a large number of attributes for different products, you would need a very long header to specify all the attribute fields.
Example:
title | link | description | ID |price | image link | brand | category| size | color | style | fabric | screen size | hdd size | hdd type | video manufacturer
The names of these fields can be numerous depending on your product and can lead to a long and confusing list. So, to avoid this, we use the "special attributes" function.
Let's say your e-commerce shop sells T-shirts and you would like to categorise T-shirts by size, color, style and fabric, among other things. In addition, price, brand, category, etc. should be included in the field headers.
Such a field name header would look like this, with all possible field names included:
title | link | description | ID | price | image link | brand | category | availability | size | color | style | fabric | neck shape | sleeve | season
Using Doofinder's special attributes function, the above field name header would be displayed as:
title | link | description | id | price | image link | brand | category | attributes
This is done by adding dynamic attributes to your products, as indicated in this example:
title | link | description | id | price | image link | brand | category | attributes
Long Sleeve Tee |https://woocommerce.doofinder.com/index.php/product/long-sleeve-tee/ | Cotton t-shirt. | 4562 | 17.0 | http://woocommerce.doofinder.com/wp-content/uploads/2020/06/long-sleeve-tee-2-300x300.jpg | nike | clothing | size=M/color=green/style=sport/fabric=cotton/neck shape=round/sleeve=long/season=winter
For this purpose, the special field name attributes is used, and only the relevant attributes are added to each product in this way:
| attribute-name=value / other-attribute=value2 / third-attribute=value3 |
| size=M/color=green/style=sport/fabric=cotton |
Doofinder will smartly separate them into different fields as needed.
Another example of a laptop categorisation before using the special attributes feature would be:
title | link | description | id | price | image link | brand | category | screen size | hdd size | hdd type | video card
Toshiba Satellite L755|www.mygreatshop.com/laptop/toshibaL755.html|A powerful laptop with the best price you could find out there|1425|300.00|www.mygreatshop.com/img/toshibaL755|Toshiba|Laptops|17"|500Gb|Magnetic|NVidia
By using the special attributes function, it would then be:
title | link | description | id | price | image link | brand | category | attributes
Toshiba Satellite L755|www.mygreatshop.com/laptop/toshibaL755.html|A powerful laptop with the best price you could find out there | 1425 | 300.00 | www.mygreatshop.com/img/toshibaL755|Toshiba|Laptops|screen size=17/hdd size=500Gb/hdd type=Magnetic/video card=NVidia
We use the forward-slash symbol ( / ) to separate different attributes of the same item. However, there may be cases where it is necessary to use ( / ) as part of the value of an attribute, such as 1/4 oz and 1/2 oz, etc. In such a case, we include the backslash (\ ) before the ( / ) as follows 1\ /2 oz, 1\ /4 oz.
The Faceted Search
Another data feed feature that will make using the Doofinder search engine even better is the "Faceted Search". The Facets feature, or rather "Filters" as we call it, allows you to "filter" the search by certain fields.
This feature allows your website visitors to refine their product searches with filters such as brand, price, color, material, etc.
In order to use the filter function in your data feed, the following must be taken into account:
If the value of the field to be used for the filter is unique for each product, you do not have to do anything else. For example, the brand field.
If a product can have several values of a filter (e.g. color, size, etc.) the values must be separated by the / character, thus: blue/red/green.
However, if you want to include / as part of the value (say you want to use 1/4oz and 1/2oz as part of your possible values for a facet), use another / before, so 1oz / 1//2oz / 1//4oz.
This is different from how we include / in special attributes.
If your feed has products grouped by categories and subcategories, and you want to filter them, make sure that the categories are separated by > having the most general category as the first one. Therefore, the category tree would look like this:
Hardware > Hard Drives > SSD
In this case, SSD is a subcategory within hard disks, which are also a subcategory of hardware.
You can also have several category trees for one product. Just separate them with %%. An example of a category field would be:
Hardware > Hard Drives > SSD %% Desktops > Peripherals > HDD
This is an example of an article with appropriate values for the facets:
id | title | price | brand | product_type | link | image_link | color | description
23| New hard drive | 23.43 | Acme | Hardware > Hard Drives > SSD|http://www.acme.com/23|http://www.acme.com/23.jpg | blue/red/green | It stores a lot of stuff
Category Attribute
Best practice is to start with the most general category in the field names, and break them down to the finest specification.
See this example:
title | id | link | description | mpn | price | image link | category
LG Flatron M2262D 22" Full HD LCD | 2435 | http://www.example.com/electronics/tv/LGM2262D.html | Attractively styled and boasting stunning picture quality | TV_123456 | 159 USD|http://images.example.com/TV_123456.png | Consumer Electronics > TVs > Flat Panel TVs
Multicategory Attribute
You can configure various category trees. For instance, a sports shoe could belong to two categories like this:
Sports > Clothes > Shoes
or
Snickers > Jogging
An example of this would be:
(..) | category | (...)
Sports > Clothes > Shoes %% Snickers > Jogging
Content Feed For Blogs
If you'd like to display categories and content in search results, it is necessary to index a content feed. This feed, should be a .txt, .csv or .xml file, including at least the following fields:
id|title|link|image_link|description
We also recommended you to include a specific attribute to this feed, such as: isContent: 1
In this way, you can use this field to perform a default sorting of the results and, for example, make the categories always appear in the first position when a customer performs a related search.
Once you have prepared your data feed with all the relevant product details, you need to upload your it to the Doofinder Admin for indexing. Find the how-to guide here: How to index my feed.