Data requirements for integrating with Northfork
Overview
In order for Northfork to be able to do it’s work, we need to persist data in our end. This includes recipe, product and inventory data. This allows us to make the best choice possible when it comes to for instance transforming a recipe into a list of products. Northfork take pride in being able to handle pretty much any kind of format that can be made available to us.
Recipes
We’ve probably seen every type of format there is, for recipes, and are very flexible in whatever format you prefer.
-
Schema.org
If your content is formatted using the Schema.org standard, Northfork can take advantage of that and import your data seamlessly. Below is the list of the data we need to make your recipes shopable.
For more information about the format, visit Schema.org.
Mandatory fields
identifier
Unique identifier. Used as reference to communicate between Northfork and the Publisher.name
Recipe title.image
Image URL or URI.recipeYield
Number of portions/servings that the recipe yields.recipeIngredient
A list of ingredients.recipeCategory
Categories/tags associated to the recipe.
url
Source URL or URI to display the recipe’s page.Optional fields
cookTime
Total time it takes to cook the recipe (including preparation and waiting).recipeCuisine
Type of cuisine.recipeInstructions
Instructions on how to cook the recipe.about
Short description of the recipe.aggregateRating
Rating of the recipe. Can be used to filter by e.g. popularity.
author
Owner of the recipe. -
Customised
Regardless of the way you store your recipe data currently, Northfork can ingest it to our system. Below is an JSON example of what it could look like:
[ { "id": 12345, "title": "Fish Taco deluxe", "image_url": "https://somesite.com/images/fish_taco_deluxe.jpg", "portions": 4, "ingredients": [ { "name": "Tortillas", "amount": "2", "unit": "pcs" }, { "name": "Fish fillet", "amount": "200", "unit": "g" }, { "name": "Lime juice", "amount": "1", "unit": "oz" } ] } ]
Products
-
Products
MINIMUM REQUIREMENTS
ProductID/EAN/GTIN 123456
Name Yellow onion
Manufacturer Barilla
Size 180
Unit g
Section 1/2/3 Vegetables/greens/avocado
Image 245_IMG
RECOMMENDED REQUIREMENTS
State (labels) Frozen/fresh/canned
Country DK/SE/US
Environmental marking (labels) Organic, CO2 Emissions etc.
Popularity is relative 1
Perishable date 3 days / 2017-08-02
Order type Piece|Weight
AVAILABILITY
MINIMUM REQUIREMENTS
Store id 123456
Product id 123
Price 14,35
Discount Price 12,34 (when applicable)
Availability y/n
In stock y/n -
Customised
Catalog
Northfork will need meta information about all grocery products, which are available in one or more stores, that ingredients can be converted to. Below is a JSON example of the basic meta data Northfork needs:
[ { "identifier": 12345, "title": "Penne", "brand": "Barilla", "size": "500", "unit": "g", "image_url": "https://somesite.com/images/penne_250x250.png" }, { "identifier": 12346, "title": "Fusilli", "brand": "Barilla", "size": "350", "unit": "g", "image_url": "https://somesite.com/images/fusilli_250x250.png" } ]
Inventory & Pricing
In order for the Northfork Smart Cart Resolver to be able to recommend the best available products for the end user, Northfork need data about the products’ inventory status and prices. Below is a JSON example on what it could look like:
[ { "store_id": 1, "product_id": 12345, "price": 1.49 }, { "store_id": 1, "product_id": 12346, "price": 1.69 } ]
Continuous updates
API integration
Northfork is able to adapt to whatever APIs the retailer has available for third parties to keep the data as “up-to-date” as possible.
Full files
The most common way for Northfork to continuously synchronise data with a retailer is with full files, especially for the product catalog. When it comes to Inventory & Pricing, it varies depending on the amount of data we need to keep track.
Push
SFTP – You push files to Northfork’s server.
AWS S3 – You push files to a Northfork provided S3 bucket.Pull
Customised – Northfork can pull files from a setup you currently use.Message Bus
Push – Retailer produces messages to Northfork’s message bus (Kafka)
Pull – Northfork consumes messages from an external message bus.