Storefeeder Authentication , Database Structure & Limits
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 14/06/2023 | Hristiyan Georgiev | First publish |
Storefeeder will be treated as an ERP system of the client so we want to treat it as a Connector in Hemi.
Authentication
API Documentation : https://rest.storefeeder.com/
Storefeeder APIs use OAuth based authentication.
We first need to make a request to get an access token by POSTing to /Token with the following body content:
grant_type=password&username={example%40example.com}&password={example}&client_id={example}
The username parameter is the email address of our API user account (URL-encoded) which will be provided by StoreFeeder.
The client_id parameter is our API key which will be provided by StoreFeeder so we need to be able to add it in the UI.
The response from this request is always in JSON format, and includes an 'access_token' property which we can use in subsequent API requests by including the following header:
Authorization: Bearer {access_token}
For POST requests, the body content can be in either XML or JSON format. You can define the body format with one of the following headers:
Content-Type: application/xml
Content-Type: application/json
We will go with the JSON format.
Database
Additional tables will need to be created, however please note the structure and names are just suggestions.
StoreFeeder Connector - here we will be storing all the Storefeeder details required from the connection to work and this is our starting point.
Field Name | Type | Required | Comment | Default Value | |
---|---|---|---|---|---|
Main Fields | |||||
Name | varchar | Yes | Field for internal use to differentiate the Storefeeder connectors. | ||
Active | checkbox | No | Flag indicating if the connector is active and based on this we can switch off and on the connector | false |
|
Username | varchar | Yes | Storefeeder username that needs to be used for the authentication. | ||
Password | varchar | Yes | The password for the Storefeeder username. | ||
client_id | varchar | Yes | This is the API key needed for the authentication. | ||
Export products from Storefeeder | checkbox | We do it as a trigger which will send an email to the user that has made the request. | |||
Settings | Separate tab | ||||
Create Orders | checkbox | No | Flag indicating if we would like to export/create new orders on Storefeeder | false |
|
Get Stock | checkbox | No | Flag indicating if we would like to get stock from Storefeeder and populate it in our location quantities | false |
|
Get Products | checkbox | No | Flag indicating if we would like to get products from Storefeeder | false |
|
Get Prices | checkbox | No | Flag indicating if we would like to get prices from Storefeeder | false |
|
Get Cancellations | checkbox | No | Flag indicating if we would like to get refunds from Storefeeder | false |
|
Get Shipments | checkbox | No | Flag indicating if we would like to get shipping details from Storefeeder | false |
Account StoreFeeder Connector - slave table for Account to connect with the Storefeeder Connector. We will need Name and Channel which is an Enumeration From Table.
Field Name | Type | Required | Comment |
---|---|---|---|
Connector Name | dropdown | Yes | A dropdown list with all StoreFeeder connectors |
Channel | dropdown | No | Dropdown list with enumeration explained here : StoreFeeder Get Channels |
StoreFeeder Connector Locations - slave table of Location table where we basically map our locations with StoreFeeder Warehouse ID s so we will know how to update the stock in Hemi. Please note we may have more than one location mapped.
This API is rate limited and requests will be throttled if these limits are exceeded:
Per Second: 3
Per Minute: 60
Per Hour: 3000
Per Day: 18000