Overview
The goal of the Managing Products stage is to ensure your products are available for purchase in the iQmetrix ecosystem.
Map Classifications
iQmetrix organizes retail products in a hierarchical structure using Classification Trees.
Each Product must have an associated Classification Tree and Classification.
For a list of Classifications, use the request Get a Classification Tree and the following parameters:
ClassificationTreeId
- Provided in Onboarding Package
Example Request
GET https://productlibraryrc.iqmetrix.net/v1/ClassificationTrees(1)
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
{
"Id": 1,
"Name": "Cellular & Accessories",
"IsCanonical": true,
"Description": "iQmetrix classification of products for wireless retail",
"Owner": null,
"Categories": [
{
"Id": 2,
"Name": "Devices",
"Order": 1,
"Categories": [
{
"Id": 3,
"Name": "Phones",
"Order": 1,
"Categories": [],
"Classifications": [...]
},
...
],
...
},
...
],
"Classifications": [
{
"Id": 69,
"Name": "SIM Cards",
"Order": 5,
"ProductTemplate": {
"Id": 16,
"Name": "Wireless Device"
}
},
...
],
"IsPrivate": false,
"Version": 878
}
Map Product Details
To send product information to iQmetrix, you must map product specifications in your system to iQmetrix as Field Definitions.
Field Definitions have two identifier properties:
Id
values are used in API requests and differ across EnvironmentsStringId
values are used for mapping Field Definitions and are consistent across Environments
Follow these instructions to map Field Definitions between RC and Production Environments.
- Get a list of all Field Definitions from the Production Environment using the example below
- Search and map fields from your system to fields in the response
- While mapping, locate the field identifier and string identifiers from the API and add them to a configuration table
- Get a list of all Fields Definitions from the RC Environment
- Search for the string identifiers to be mapped and add their corresponding field identifier to your configuration table
Example
Your Definition | StringId | Id (RC) | Id (Production) |
---|---|---|---|
Name | Product Name | 1 | 1 |
Description | Long Description | 33 | 40 |
Suggested Price | MSRP | 76 | 87 |
Field Recommendations
When providing Field Definition information for a product, we recommend the following:
- Product Name - Since there is a Manufacturer field, the manufacturer does not need to be included in the product name
- Long Description - Supports up to 20,000 characters, but products typically use 2,000 characters. Formatting should be handled with HTML tags
- MSRP - Requires value and currency code (e.g. 35.99 CAD, 24.00 USD). This value sets the default price for the retailer, who can update the price later if they choose
- Dimensions should be in separate fields, and not as a string, i.e. “5x5x5”.
- Color Definition should use model descriptions, such as Space Gray
- Color Tag should use the palette:
- Black, Blue, Brown, Gray, Green, Orange, Pink, Purple, Red, Translucent, Turquoise, White, Yellow, Gold, Silver, Bronze, Multicolor, Pattern
To get a list of Field Definitions, use the request Get All Field Definitions.
Example Request
GET https://productlibraryrc.iqmetrix.net/v1/FieldDefinitions
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
[
{
"Id": 1,
"StringId": "Product Name",
"InputType": "TextSingleLine",
"IsRequired": true,
"LanguageInvariantUnit": "",
"DisplayName": "Product Name",
"Owner": null,
"Unit": "",
"LastModifiedUtc": "2016-10-05T21:16:26.572Z",
"IsPrivate": false,
"Options": [],
"LanguageInvariantName": "Product Name",
"IsArchived": false
},
...
]
Send Products to iQmetrix
To sell a dropship product from within the iQmetrix ecosystem, you must provide product information to iQmetrix using a Product Feed.
Product information can be sent using the request Add Products to a Product Feed and the following parameters:
FeedId
- Provided in Onboarding PackageFields
- See Field RecommendationsDefinition
Id
- See Map Product Details. At minimum you must provide: Product Name, Long Description and MSRP.
Value
- Value for field (i.e. 9.99 CAD)
Manufacturer
- Manufacturer nameManufacturerSku
- We highly recommended providing a Sku for every productModelName
- The ModelName field should be specific enough that variations of one product should be able to be grouped together, but different products would not be grouped togetherUPC
- Universal Product CodeAssets
AssetUrl
- URL of an image, should be high quality and have a transparent background for projecting on high-resolution displays
Classification
Id
- Classification for the Product, see Map ClassificationsTreeId
- Classification Tree Identifier, provided in Onboarding Package
ClassificationTreeName
- Classification Tree Name, provided in Onboarding PackageLastModifiedByVendorUtc
- Provides the last date that the product feed was modified by the vendor, in UTC. We recommend updating this value as it updates the iQmetrix curation team that changes have been made to your feedVendorSkus
Sku
- Provide a SKU for every productVendorName
- Vendor nameDescription
- Description for SKU
Example Request
POST https://curationrc.iqmetrix.net/v1/ProductFeeds(5)/Products
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content-Type: application/json
{
"Fields": [
{
"Definition": {
"Id": 76,
"StringId": "MSRP"
},
"Value": "69.95 USD"
},
{
"Definition": {
"Id": 33,
"StringId": "Long Description"
},
"Value": "The Defender case features three layers of defense."
},
{
"Definition": {
"Id": 1,
"StringId": "Product Name"
},
"Value": "Defender Case for Apple iPad Mini 4 Black"
}
],
"Manufacturer": "OtterBox",
"ManufacturerSku": "77-52771",
"ModelName": "Defender Cases for Apple iPad Mini 4",
"UPC": "723755004337",
"Assets": [
{
"AssetUrl": "https://animaliaz-life.com/data_images/cat/cat2.jpg"
}
],
"Classification": {
"TreeId": 1,
"Id": 4
},
"ClassificationTreeName": "Cellular & Accessories",
"LastModifiedByVendorUtc": "2017-08-08T00:00:00Z",
"VendorSkus": [
{
"Sku": "SMX551",
"VendorName": "Amazon",
"Description": ""
}
]
}
Example Response
HTTP 200 Content-Type: application/json
{
"Id": 2,
"Classification": {
"TreeId": 1,
"Id": 4,
"Name": "Smartphones"
},
"ClassificationTreeName": "Cellular & Accessories",
"ProviderClassification": null,
"Manufacturer": "OtterBox",
"ManufacturerSku": "77-52771",
"UPC": "723755004337",
"VendorSkus": [
{
"Sku": "SMX995",
"VendorName": "Amazon",
"Description": ""
}
],
"Fields": [
{
"Definition": {
"Id": 1,
"StringId": "Product Name",
"InputType": "TextSingleLine",
"IsRequired": true,
"LanguageInvariantUnit": "",
"DisplayName": "Product Name",
"Unit": "",
"Options": [],
"LanguageInvariantName": "Product Name"
},
"Value": "Defender Case for Apple iPad Mini 4 Black"
}
],
"Assets": [
{
"Id": "00000000-0000-0000-0000-000000000000",
"FileName": null,
"MimeType": null,
"OriginalUrl": "https://animaliaz-life.com/data_images/cat/cat2.jpg",
"MediaUrl": null,
"IsConverted": false
}
],
"UnsupportedAssets": [],
"LastModifiedByVendorUtc": "2016-03-08T00:00:00Z",
"ModelName": "Defender Cases for Apple iPad Mini 4"
}
Determine Update Schedule
To ensure your products remain up to date and accurate in the iQmetrix ecosystem, we require you to make periodic updates to your Product Feed(s).
This should be done only when there are major changes to product details, such as name and description.
Read About Subscription Lists
While the Product Feed provides iQmetrix with details of your products, the Product Subscription Feed is similar to an RSS feed where retailers subscribe to your feed to get a list of your latest dropship products.
Each Product Subscription Feed contains a list of SKUs and their selling price (MSRP), allowing you to control which products are visible to individual retailers.
You may provide more than one feed, serving different products to different groups of retailers. For example, one feed could be based on the manufacturer (e.g. Supply Inc - Otterbox) while another could be based on the product line (e.g. Supply Inc. - iPhone).
Once a retailer is subscribed your feed(s), they will see the products available to them through the various iQmetrix applications they use.
Synchronization of these feeds occurs nightly, updating all of your subscribed retailers with the products you have added or removed from your feeds, allowing you to control which products are available for dropship.
Example Scenario
Below is an example of a supplier updating their product subscription feed:
- Monday: 8 products
- Tuesday: +2 products
- Wednesday: -1 product
On Monday, a supplier provides 8 products to their Subscription Feed. Since synchronization occurs at night, subscribed retailers see the 8 products on Tuesday.
On Tuesday evening, the supplier then adds 2 more products to their Subscription Feed. This is done by including 2 additional products to their original list, which now has 10 products instead of 8. The following morning, subscribed retailers see 10 products total.
Finally on Wednesday moning, the supplier removes 1 product, leaving the Subscription Feed with 9 products.
The following morning, subscribed retailers now have 9 products.
Create a Subscription List
You must create at least one Subscription List using the request Create a Subscription List with Products and the following parameters:
ListId
- A GUID from a GUID generatorEntityId
- Supplier identifier, provided in Onboarding PackageName
- Descriptive list nameDropshippable
- Usetrue
Products
- Use an empty array, or add Products
Example Request
PUT https://productsubscriptionsrc.iqmetrix.net/v1/subscribablelists(83076078-d27e-4ca4-8d42-3bbaf5ec7f68)
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content-Type: application/json
{
"EntityId": "14107",
"Name": "Otterbox Products",
"Dropshippable": true,
"Products": []
}
Example Response
HTTP 200 Content-Type: application/json
{
"Id": "83076078-d27e-4ca4-8d42-3bbaf5ec7f68",
"EntityId": 14107,
"MasterEntityId": null,
"Name": "Otterbox Products",
"Dropshippable": true,
"Products": [],
"Version": 2
}
Add a Product to a Subscription List
Once you have created a Subscrition List, you can add products to it, if you have not added Products in the same API call.
To add products, see Create a Subscription List with Products and the following parameters:
SubscribableListId
- Identifier for the Subscription List created in Create a Subscription ListEntityId
- Supplier identifier, provided in Onboarding PackageName
- Name of the Subscription List created in Create a Subscription ListProducts
ProductName
- Product nameVendorSku
- VendorSKU, as mentioned in Determine Product IdentifierPrice
- The price the consumer has to pay, must be provided or the price will be 0
Dropshippable
- Usetrue
Example Request
PUT https://productsubscriptionsrc.iqmetrix.net/v1/subscribablelists(83076078-d27e-4ca4-8d42-3bbaf5ec7f68))
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content-Type: application/json
{
"EntityId": "14107",
"Name": "Otterbox Products",
"Dropshippable": true,
"Products": [
{
"ProductName": "Samsung Galaxy S4 Standard Battery",
"VendorSku": "9101AGAP6",
"Price": 24.99
}
]
}
Example Response
HTTP 200 Content-Type: application/json
{
"Id": "83076078-d27e-4ca4-8d42-3bbaf5ec7f68",
"EntityId": 14107,
"MasterEntityId": null,
"Name": "Otterbox Products",
"Dropshippable": true,
"Products": [
{
"ProductName": "Samsung Galaxy S4 Standard Battery",
"VendorSku": "9101AGAP6",
"Price": 24.99,
"Dropshippable": true,
"ProductSlugs": [],
"Version": 1
}
],
"Version": 3
}
Add a Company to a Subscription List
Once your integration is launched, iQmetrix will manage adding companies to your Subscription Lists.
However, to speed up development you can perform this step using the request Add a Company to a Subscription List and the following parameters:
ListId
- Identifier for the Subscription List created in Create a Subscription ListCompanyId
- Identifier for each retailer (Company), provided by iQmetrix in Provide Retailer List
Example Request
PUT https://productsubscriptionsrc.iqmetrix.net/v1/subscription(83076078-d27e-4ca4-8d42-3bbaf5ec7f68)/company(14146)
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 204 No Content
Configure Product Costs
All products sold in the iQmetrix ecosystem must have an associated wholesale price or “cost” in the Cost Feed to ensure accurate commission and general ledger calculations.
To provide product cost, use the request Update the Wholesale Cost of a Dropship Product and the following parameters:
SupplierId
- Supplier identifier, provided in Onboarding PackageProducts
Sku
- VendorSKU, as mentioned in Determine Product IdentifierCost
- Wholesale cost for retailerCompanyIds
- Array of identifiers for each retailer (Company) applicable to the provided cost, provided by iQmetrix in Provide Retailer List
Example Request
POST https://dropshiprc.iqmetrix.net/v1/Suppliers(14107)/Cost
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content-Type: application/json
{
"SupplierId": 14107,
"Products": [
{
"Sku": "9101AGAP6",
"Cost": 64.99,
"CompanyIds": [
14146
]
}
]
}
Example Response
HTTP 202 Content-Type: application/json
{
"Id": "5bc658e6-a1e4-4aff-ac13-939acae20bb1",
"Products": [
{
"Sku": "9101AGAP6",
"Cost": 64.99,
"CompanyIds": [
14146
]
}
]
}
Configure Product Stock Levels
To ensure iQmetrix applications accurately display your stock levels, you must set the stock level and update it on a regular basis using the Supplier Availability API.
Setting stock level can be done using the request Update the Stock Level of a Dropship Product and the following parameters:
SupplierId
- Supplier identifier, provided in Onboarding PackageProducts
Sku
- VendorSKU, as mentioned in Determine Product IdentifierIsAvailable
- A flag to indicate if product is in stock (true) or not (false)Quantity
- Stock level. If this value is zero andIsAvailable
is true, quantity is interpreted as unlimited
Example Request
POST https://dropshiprc.iqmetrix.net/v1/Suppliers(14107)/Availability
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content-Type: application/json
{
"Products": [
{
"IsAvailable": true,
"Sku": "9101AGAP6",
"Quantity": 10
}
]
}
Example Response
HTTP 202 Content-Type: application/json
{
"Id": "51a58510-8405-47be-8824-03c83fa85073",
"Products": [
{
"Sku": "9101AGAP6",
"IsAvailable": true,
"Quantity": 10
}
]
}