Feeding data to Aqurate

Aqurate supports multiple shop integrations out of the box (check the existing integrations here), but sometimes, a custom integration is needed. This guide offers an overview of the minimum data needed for Aqurate to work.

<aside> ☝ All data is pushed to Aqurate using our RESTful API. Exact documentation here.

</aside>

1. Authentication

To push your shop data to Aqurate, you need to generate an API key on the API Keys page. You can choose the Shop via API preset, or generate a custom key with the scope write:input_tables.

When making API calls, use the generated API key for the X-Auth-Token parameter**.**

<aside> 🔒 Keep you API keys safe, as they can be used to access the data in your Aqurate account. For your security, API keys can only be viewed once. If you lose an API key, you can easily revoke it and generate a new one.

</aside>

<aside> 💡 If you want to use the same API key to retrieve product recommendations, also enable the read:item_recs and read:user_recs scope. More details on the Using the Aqurate Recommendations RESTful API guide.

</aside>

2. The required data types

The data model for computing Aqurate Recommendations includes 8 tables. However, not all tables and columns are mandatory. The table below gives you an overview of what we need:

Table Details Required
Orders The orders and their customers. Yes (can be partially replaced by Website Events)
Line Items The line items corresponding to the orders. Yes (can be partially replaced by Website Events)
Items The items and their details. Yes
Item Categories The mapping of items into categories. Yes
Categories The mapping of categories. Yes
Stock The current stock level for all items available. No, but recommended
Website Events The interactions with the website. Yes (can be partially replaced by Orders + Line Items)
Customers The email addresses of customers. No (only needed for recommendations via email)

3. The tables and structures

Orders (orders)

Field name Details Type Required
order_id The unique identifier of the order. String Yes
customer_id The unique identifier of the customer. String Yes
order_date The date and time at which the order was placed by the customer. The format is ISO 8601 in UTC. Timestamp Yes
order_status The status of the order. Accepted values are: 'processing', 'completed', 'returned', 'canceled’ String

Line Items (line_items)

Field name Details Type Required
order_id The unique identifier of the order. String Yes
item_id The unique identifier of the item. String Yes

Items (items)

Field name Details Type Required
item_id The unique identifier of the item. String Yes
item_parent_id The unique identifier of the parent item. String
sku The SKU number of the item. String
name The display name of the item. String Yes
description The description of the item. String
brand The name of the item’s brand. String
price The gross price of the item. Float
currency The 3-letter currency denomination (e.g. EUR, RON, USD, HUF) String
photo_url The URL of the main product picture. String
item_uri The item’s publicly accessible URL. String
is_active 1 or 0, depending on whether the item is currently listed on the shop’s website. Boolean
attribute_1_name This is a placeholder for the name of any attributes that are highly relevant to the item. String
attribute_1_value This is a placeholder for the value of any attributes that are highly relevant to the item. String
attribute_2_name This is a placeholder for the name of any attributes that are highly relevant to the item. String
attribute_2_value This is a placeholder for the value of any attributes that are highly relevant to the item. String
attribute_3_name This is a placeholder for the name of any attributes that are highly relevant to the item. String
attribute_3_value This is a placeholder for the value of any attributes that are highly relevant to the item. String
attribute_4_name This is a placeholder for the name of any attributes that are highly relevant to the item. String
attribute_4_value This is a placeholder for the value of any attributes that are highly relevant to the item. String