Loop54 needs to have the entire product catalogue, along with the relevant metadata, indexed and updated. See products.json for an example of a product feed.
We prefer to read a standard XML-feed. However, there are other available formats that we could use as JSON, CSV and others. It is also possible for Loop54 to hook up against a system endpoint to pull data, but our experience is that those solutions are significantly slower.
Note: The Magento SOAP API usually takes over 10 hours to pull an entire product catalogue from (with about 10 000 products).
Loop54 uses the product metadata for different purposes; making products searchable, building relations between products, incorporating business logic in the search result, logic for results that should be filtered, and to provide information for user-faceting.
The attributes that we use varies with the customer, but the following are quite standard (bare minimum in bold).
- Product identifier (Do you need them searchable?)
- Title (Title, subtitle)
- Description (long/short)
- Image url (Preferably in small size to increase site load speed)
- Brand / Make / Supplier
- Product series name (or similar)
- Category path (Category 1, Category 2 etc - these are generally not standard in product feeds but very important to us)
- Color (if available)
- Hidden Keywords (if available)
Other attributes that we can use for additional logic:
- Price (for faceting)
- InStock (Bool or value, we use it to filter out of stock products before we send back the result. Useful when Loop54 handles paging).
- Campaigns (we use it to give products with a campaign higher weight in search results)
- News / added date (we use it to be able to give new products higher weight, if that is a part of your business strategy)
- Parent/children connection ID's (used to associate articles and products and to make all metadata searchable even if only one type is displayed in the search response).
Other useful attributes:
- Attributes that say something about the relationship between specific products, e.g. Gear Type for a Bicycle store.
- Attributes that identify something specific about a product that should be searchable, e.g. Wheel Size for bicycles.
We could theoretically synchronize against the product feed every 5-10 minutes (depending on the size of the feed). But that depends mainly on how resource intensive it is for the platform to generate the feed.
Hybrid solutions in synchronization
There are also hybrid solutions available where delta-information/changes is pushed to our API continuously in real time, but it should always be complemented with a complete feed that Loop54 can synchronize with at least once a day.
How often should Loop54 sync against the product feed? This is often dependent on the logic that Loop54 should incorporate. E.g. if Loop54 shall filter out of stock items, the synchronization intervals needs to be short.
Which attributes should Loop54 incorporate business logic from? The usual ones are campaigns and news.
Should Loop54 filter out results (e.g. out of stock) before the result is sent back?
All attributes that are needed for faceting
need to be in the feed.
Parent or Children, or both?