We’ve all been on an ecommerce site and browsed products according to a category: Shirts, Jackets, Pants, etc. The primary structure for category data models on the internet today is the Google Product Taxonomy. Categories in Violet are based on the Google Product Taxonomy, with a few updates for areas that could use more specificity.

Syncing Categories

Upon connecting a Store, Violet syncs with the Merchant’s catalog. When syncing, Violet pulls in category data that exists the ecommerce platform.

Category data can lack consistency. Please read the ‘Limitations’ section below to make sure this is accounted for you in your experience.

Limitations

Data Availability

Data coming from Violet is a reflection of the data coming from a Merchant. If a Merchant hasn’t entered categories for their products, there would be no data for Violet to consume and pass along for us in your application. Availability of category data is a common problem and something to watch out for as you construct your own category experience.

Data Structure

While the most common data model is the Google Product Taxonomy, there is still a lot of variability within the models used by Merchants. As a result, some category data may not map to anything in the Google Taxonomy at all, or may be subject to linguistic or cultural nuances in which the Merchant specializes. Cleanliness of category data is a common problem and something to watch out for as you construct your own category experience.

Categories via API

You can use the Get Categories API to retrieve all categories that your products fall into. You can read more about our Category endpoints in the API Reference.

You may also want to include the taxonomy tree in the Offer data you retrieve, instead of through dedicated APIs. To do this, you can include the following header in the request: X-Violet-Api-Features: include-offer-taxonomy.

If the merchant uses category names that map to Google’s taxonomy names we will include the full taxonomy tree in a new categories:[] property on the Offer object.

This currently works with the following endpoints:

GET offers/{offer_id}

GET offers/merchants/{merchant_id}