Product feed setup

Product feed setup

For the most part, our customers provide a product feed for us, either via one of our e-commerce platform extensions, or a feed created by the customer.

This is the best way to populate our product database, and should be used in all cases where it's available. Note that search is never recommended without a feed. This is because without a product feed, there's a very high chance we don't know all of the customer's products, which makes search moot.

To set up a product feed, press the "Feeds" menu item in the top navigation bar of the the website overview. In the menu that opens, select "Product feeds" (see Screenshot 1).

From the product feed overview page, click "+ Add feed" (see Screenshot 2), and you are taken to the feed setup page (see Screenshot 3).

From here, you'll either need to setup a feed manually, or - if the customer has installed on of our e-commerce platform extensions, use a standard setup.

If the customer has installed one of our e-commerce platform extensions, the setup is straightforward:

The product feed is available via [website]/awext/index/ - e.g. www.smartdog.dk/awext/index. Enter the address in the field labelled "Feed url". Choose "XML" from the dropdown labelled "Feed type". Next, enter "product" (without the quotes!) in the field labelled "Product element selector".

The box labelled "Read interval in seconds" controls how often we download and parse the feed. Click the quick link "4h" to the right of the box, which will instruct the system to download and parse every 4 hours.

Now, click the button "addwish Magento plugin". This will populate the field "Crawl strings" with the correct selectors for the feed.

Lastly, click "Test a sample", to see that the feed loads with no errors. When you are satisfied, click "Save". The feed will be downloaded and parsed promptly.

Note: As of version 0.19.1 the Magento extension supports fetching additional fields from Magento. To see what additional fields are available, go to [shopurl]/awext/index/info. This gives you an xml file, with a list of available fields. Identify the "attribute_code"(s) you need, and change the url in the feed reader to:

[shopurl]index.php/awext/?extraAttributes=[list of attribute_codes, commaseparated]

It is also possible to paginate the feed. This is purely for testing purposes, and helpful if the customer has a large feed, and you need to test something quickly. The syntax for this is [shopurl]/index.php/awext/index?pageSize=[number of items per page]&page=[page no., zero-indexed]. Here's an example from www.uretilalt.dk. We fetch two extra attributes (brand name, with the attribute_code "brand", and glass type, with the attribute "glass"), ask for 10 items per page, and ask for the first page:

http://www.uretilalt.dk/index.php/awext/index?pageSize=10&page=1&extraAttributes=brand,glas

Note that the first argument needs to be initiated with a questionmark (?), and arguments following need to be initiated with an ampersand (&). That is, if you only need extra attributes, the syntax is

[shopurl]index.php/awext/?extraAttributes=[list of attribute_codes, commaseparated]

If you need pagination and extra attributes, the syntax is

[shopurl]/index.php/awext/index?pageSize=[number of items per page]&page=[page no., zero-indexed]&extraAttributes=[list of attribute_codes, commaseparated]

The url for the product feed follows this convention: http://apps.cyclopco.com/addwish/xml/[DanDomain ID].xml - thus, we need the customer's DanDomain ID. This is obtained by emailing Cyclop & Co (the DanDomain partner that created the extension for us). Send an email to Andreas Hjorth (andreas@cyclopco.com), asking for the product feed link for the customer.

When you receive the link, paste it into the box labelled "Feed url" on the product feed setup page. Next, choose "XML" from the dropdown labelled "Feed type", and enter "product" (without the quotes!) in the box labelled "Product element selector".

To the right of the box labelled "Read interval in seconds", choose "4h", which will instruct our system to download and parse the feed every 4 hours.

Now, click the button "addwish DanDomain plugin". This will populate the field "Crawl strings" with the correct selectors for the feed.

Lastly, click "Test a sample", to see that the feed loads with no errors. When you are satisfied, click "Save". The feed will be downloaded and parsed promptly.

If you need to setup the feed manually, you'll have to do a bit more work. First of all, you'll need to download the feed, and view it in your favourite text editor (Sublime Text or Github's Atom is recommended).

You can download the feed by clicking the button "Download feed through server" in the bottom of the product feed setup page. Once downloaded, open it with your text editor.

We support CSV-, XML- and JSON-filetypes.

CSV files store tabular data in a plain text format. Each record is separated by a comma or, in some cases, a semicolon or a tab. CSV is not a standardised format, and you might therefore see files with the endings .csv, .txt, .tsv or .tab. As the content is plain text, the filename extension doesn't matter.

You can visualize a CSV file as an Excel spreadsheet - it consists of columns, which contain product attributes, and rows, which contain products.

Our feed reader needs the following values set up in "Product element selector" to read a CSV file successfully:

Field delimiter: this denotes what character separates the fields in the CSV file. These are typically, as previously mentioned, either comma, semicolon or a tab. You specify the character by entering "delimiter=[character]" (without quotes!), where [character] is either , (comma), ; (semicolon) or \t (tab). For example, for a file with tab delineation, you'd write delimiter=\t .

Next, you'll need to specify how many rows to skip. Usually, the first row of a CSV file is reserved for headers. These headers are usualy friendly-to-read strings, that describe what each column contains, but they shouldn't be read as products by our feed reader. Thus, you'll specify how many rows to skip with the command "skip=[number of rows]" (without quotes!), where [number of rows] is an integer corresponding to the amount of rows to skip from the start of the file. If a file has one header row, you'd write skip=1 .

Lastly, you'll specify what character (if any) is used to encapsulate fields

Files structured as XML files, most often with the ending .xml. These files are by far the most typical files. An XML file uses tags, just like HTML, and might be familiar to you for this reason. Tags can be nested, and probably are in an XML feed. This is to say, a product might be nested in the tag <product>, which means that everything nestled between the opening product tag ("<product>") and the closing product tag ("</product>") describes a single product. In the case of the product delimiter tag being "<product>" you would thus instruct our system to read everything between the product tag as on single product, by entering "product" (without the quotes!) in the field "Product element selector" on the product feed setup page.

Next, you'll need to populate the "Crawl strings" box. For a feed to be useful to us, it'll at least need to contain the following info about products:

  • Product url
  • Product image url
  • Product price
  • Product title

If the tag containing the product url is called "<product_url>", you'll set it up by clicking the "title"-button above the "Crawl strings" box. Your cursor is now active in the "Crawl strings" box, and "title: $("")" has been pre-filled for your. Enter the tag name between the double quotes, and enter ".text()" after, such that the string (in the case where the product url tag is <product_url>) now looks like this:

title: $("product_title").text()

The above is a selector

Files structured as JavaScript Object Notation.

Reply Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
Follow
  • 4 mths agoLast active
  • 21Views
  • 1 Following