The Product Data Feed

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.

🗒 Note: 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 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/index.php/product/v-neck-t-shirt/ Mandatory
image_url Url link to the main image of your product. (preferably in .jpeg format) https://woocommerce.doofinder.com/index.php/product/v-neck-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 grpu 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



🗒 Note: You can add as many attributes as needed for the search (colour, 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, colour, 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


🗒 Note: 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.

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.

faceted search

This feature allows your website visitors to refine their product searches with filters such as brand, price, colour, 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. colour, 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.

🗒 Note: 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
Conteny feed example

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.