Overview
This guide is intended to demonstrate the steps required to use iQmetrix APIs enable Dropship in a 3rd Party eCommerce solution.
What is Dropship?
Dropship is a retailer practice of sending items from a manufacturer or supplier directly to a customer.
With iQmetrix Dropship, you can showcase and sell a wide variety of unique, luxury or specialized items without having to invest in physical inventory.
Postman
iQmetrix uses Postman when testing and debugging our APIs.
Click the button below to import the collection directly into Postman.
Prerequisites
To use this guide, the following steps must be completed:
- You must have your onboarding package from iQmetrix, which includes your access credentials
Before You Begin
To make requests to iQmetrix APIs, you must first generate an Access Token using the access credentials from your onboarding package.
For more information on authentication and how to generate an access token, see Authenticating with iQmetrix APIs.
Steps
Step 1 - Get a list of Products
You can display a list of Dropship enabled products to the customer with the request Get Catalog Items by Subscription List and the following parameters:
CompanyId
- Provided in onboarding packageSubscriptionListId
- Provided in onboarding package
From the response, the following values will be used in later steps:
CatalogItemId
(a183f1a9-c58f-426a-930a-9a6357db52ed) - Identifier for a product as a CatalogItem in the Catalog API
Example Request
GET https://catalogsrc.iqmetrix.net/v1/Companies(14146)/Catalog/Items(SourceId="43d92a51-650e-4b85-b5d0-8d51bf4c59f4")
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
{
"Items": [
{
"CatalogItemId": "a183f1a9-c58f-426a-930a-9a6357db52ed",
"CatalogSku": "21Z8F4AQ",
"DateAddedUtc": "2016-08-09T20:12:05.987",
"DateUpdatedUtc": "2016-08-09T20:12:05.99",
"IsArchived": false,
"RmsId": "1",
"Slug": "M1248-V1",
"SourceIds": [
"43d92a51-650e-4b85-b5d0-8d51bf4c59f4"
],
"MeasurementType": "SingleUnit",
"BatchTracking": false,
"NonStock": false,
"LifeCycle": "Active"
}
]
}
(Optional) Step 2 - Get Product Details
You can display rich product content to the customer with the request Get Product Details for a Catalog Item and the following parameters:
CompanyId
- Provided in onboarding packageCatalogItemId
- From Step 1
This request returns product information like:
- Product Name
- Assets (images)
- Colors
- Vendor SKUs
- … and more!
Example Request
GET https://catalogsrc.iqmetrix.net/v1/Companies(14146)/Catalog/Items(a183f1a9-c58f-426a-930a-9a6357db52ed)/ProductDetails
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
{
"ExtendedAttributes": [
{
"Name": "Country of Manufacture",
"Value": "China"
}
],
"DateAddedUtc": "2017-10-18T21:42:26.393Z",
"DateUpdatedUtc": "2020-01-08T17:22:32.017Z",
"RmsId": "2314",
"MeasurementType": "SingleUnit",
"BatchTracking": false,
"NonStock": false,
"LifeCycle": "Active",
"Id": "M15-V2-E21090",
"Name": "Defender Case",
"MasterProductId": 15,
"VariationId": 2,
"Owner": {
"Id": 14146,
"Name": "Kentel"
},
"CanonicalClassification": {
"TreeId": 1,
"Id": 40,
"Name": "Cases & Skins",
"ParentCategories": [
{
"Id": 12,
"Name": "Accessories"
},
{
"Id": 37,
"Name": "Cases & Protection"
}
]
},
"ShortDescription": "",
"LongDescription": "A premium mobile device.",
"Manufacturer": null,
"MSRP": {
"Amount": 24.99,
"CurrencyCode": "USD"
},
"ReleaseDate": null,
"VariationInfo": [],
"Specifications": [],
"Assets": [
{
"Id": "e559612a-bdba-4525-ab41-2aea8665b700",
"Name": "max-4HD.png",
"Uri": "https://ams.iqmetrix.net/images/e559612a-bdba-4525-ab41-2aea8665b700",
"Type": "Image",
"IsHidden": false,
"IsRolledUp": false
}
],
"ColorDefinition": {
"Id": "46766447-efcd-48e8-ae29-5455abe11210",
"Name": "Blazed",
"ColorTagIds": [],
"ColorTags": [],
"Swatch": null,
"IsUsed": true
},
"HeroShotUri": "https://ams.iqmetrix.net/images/e559612a-bdba-4525-ab41-2aea8665b700",
"HeroShotId": "e559612a-bdba-4525-ab41-2aea8665b700",
"ManufacturerSkus": [
{
"Value": "77-43623",
"Description": "",
"Entity": null
}
],
"VendorSkus": [],
"UpcCodes": [],
"Region": null,
"Entity": {
"Id": 14146,
"Name": "Kentel"
},
"HasColor": true,
"IsLinkedToCuratedProduct": true,
"IsSaleable": true,
"IsArchived": false,
"Version": 158
}
Step 3 - Get Pricing
You can display the price of a product using the request Get All Pricing Information Records for a Product and the following parameters:
CompanyId
- Provided in onboarding packageLocationId
- Provided in onboarding packageCatalogItemId
- From Step 1
From the response, the following values will be used in later steps:
RegularPrice
(10) - Regular price, must be greater than or equal to 0OverridePrice
(4.99) - Sale priceFloorPrice
(3.99) - Minimum amount the product should be sold forOriginalPrice
(3.99) - This value is used to show the original price of an item, should it need to be displayed with the Regular and Sale prices
Example Request
GET https://pricingrc.iqmetrix.net/v1/Companies(14146)/Entities(14146)/CatalogItems(a183f1a9-c58f-426a-930a-9a6357db52ed)/Pricing
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
[
{
"Id": 10049448,
"CompanyId": 14146,
"EntityId": 14146,
"CatalogItemId": "a183f1a9-c58f-426a-930a-9a6357db52ed",
"PricingTermId": null,
"RegularPrice": 10,
"IsDiscountable": false,
"FloorPrice": 3.99,
"OriginalPrice": 3.99,
"PricingTierId": null,
"PricingGroupId": null,
"PricingShelfId": null,
"OverridePriceId": null,
"OverridePrice": 4.99,
"OverrideStartDateUtc": null,
"OverrideStopDateUtc": null,
"LastModifiedDateUtc": "2016-03-15T22:30:48.6633333"
}
]
Step 4 - Get Supplier Availability
To determine if a product is available from the supplier, you can use the request Get Supplier Availability and the following parameters:
SupplierId
- Provided in onboarding packageCompanyId
- Provided in onboarding package
From the response, the following values will be used in later steps:
SupplierEntityId
(14107) - The identifier of the SupplierIsAvailable
(true) - A flag to indicate if the product is available to be dropshippedQuantity
(94) - This value is an approximation of the Supplier’s stock. Note that some suppliers do not provide this information to iQmetrix, in which case this value will be 0
Example Request
GET https://availabilityrc.iqmetrix.net/v1/Suppliers(14107)/Companies(14146)/SupplierSkus
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
[
{
"Id": "c896e638-0268-4d2f-8764-0e7d315910e6",
"SupplierSku": "802975856602",
"SupplierEntityId": 14107,
"IsAvailable": true,
"Quantity": 94,
"LastModifiedDateUtc": "2019-02-26T23:11:47.597"
}
]
Step 5 - Create a Customer
To determine shipping, you must gather customer information using one of:
- Create a Full Customer to create a new customer or
- Search for a Custmer to retrieve an existing customer
Your system should collect the data necessary to create a customer.
From the response, the following values will be used in later steps:
Id
(5e534ed7-6c89-4f35-bc39-304783f56d1e) - Identifier of the newly created customerAddress.Id
(659c2a38-d083-4421-9330-46d779702f85) - Identifier of the newly created address for the customer
Example Request
POST https://crmrc.iqmetrix.net/v1/Companies(14146)/CustomerFull
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content: application/json
{
"CustomerTypeId": 2,
"Addresses": [
{
"AddressTypeId": 3,
"CountryCode": "US",
"Locality": "Huntingtington Beach",
"StateCode": "CA",
"PostalCode": "90210",
"StreetAddress1": "7158 Coastal St",
"StreetAddress2": ""
}
],
"ContactMethods": [
{
"Value": "sample@hotmail.com",
"ContactMethodCategory": "Email",
"ContactMethodType": "Work"
},
{
"Value": "9999999999",
"ContactMethodCategory": "Phone",
"ContactMethodType": "Work"
}
]
}
Example Response
HTTP 201 Content-Type: application/json
{
"Addresses": [
{
"Id": "659c2a38-d083-4421-9330-46d779702f85",
"CustomerId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"AddressTypeId": 2,
"AddressType": "Home",
"Default": true,
"DoNotContact": false,
"CountryCode": "US",
"Country": "United States",
"Locality": "Huntington Beach",
"StateCode": "CA",
"State": "California",
"PostalCode": "90210",
"PostOfficeBoxNumber": "",
"StreetAddress1": "7158 Coastal St",
"StreetAddress2": "",
"Notes": null,
"Version": 1,
"AttentionTo": null,
"Phone": "",
"Email": null
}
],
"ContactMethods": [
{
"Id": "cd1b475a-f89c-4829-ac6c-9f92210b20b8",
"CustomerId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"Value": "sample@hotmail.com",
"ContactMethodCategoryId": 2,
"ContactMethodCategory": "Email",
"ContactMethodTypeId": 10,
"ContactMethodType": "Work Email",
"DoNotContact": false,
"Default": true,
"Notes": null,
"Version": 1
},
{
"Id": "d703c338-df1a-417b-bb39-a2b9099123a5",
"CustomerId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"Value": "9999999999",
"ContactMethodCategoryId": 1,
"ContactMethodCategory": "Phone",
"ContactMethodTypeId": 3,
"ContactMethodType": "Mobile",
"DoNotContact": false,
"Default": true,
"Notes": null,
"Version": 1
}
],
"CustomerExtensions": [],
"RelatedCustomers": [],
"MemberOf": [],
"Documents": [],
"MergedCustomers": [],
"PrimaryName": "Jane",
"Title": "",
"AlternateName": "",
"MiddleName": "",
"FamilyName": "Doe",
"ReferralSource": "",
"Notes": "",
"UniqueIdentifier": "206B94B77E",
"Id": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"CustomerTypeId": 2,
"CustomerType": "Person",
"DateOfBirth": null,
"PricingGroupId": null,
"Disabled": false,
"DoNotContact": false,
"Version": 1,
"MergedIntoCustomerId": null,
"LastModifiedDateUtc": "2019-12-16T16:09:36.917"
}
Step 6 - Get Shipping Options
Ever iQmetrix Dropship orders requires a Shipping Option selected from a list provided by the associated supplier. In some cases, a supplier may choose to offer only one shipping option, but a list should still be presented to the customer as shipping options are dynamic and subject to change.
You can provide a list of shipping options for the customer tp choose from with the request Getting Shipping Options and the following parameters:
CompanyId
- Provided in onboarding packageLocationEntityId
- UseCompanyId
from onboarding packagePostalCode
- Customer’s postal/zip code, the same value used in Step 5- Items
CatalogItemId
- From Step 1Quantity
- Amount of item to add to order, this value should be provided by 3rd party system
From the response, the following values will be used in later steps:
Id
(1) - Identifier of the shipping option selected by the customerSupplierEntityId
(14107) - Identifier of the Supplier
Example Request
POST https://shippingaggregatorrc.iqmetrix.net/Companies(14146)/ShippingInformation
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content: application/json
{
"LocationEntityId": "14146",
"PostalCode": "90210",
"Items": [
{
"CatalogId": "a183f1a9-c58f-426a-930a-9a6357db52ed",
"Quantity": 1
}
]
}
Example Response
HTTP 202 Content-Type: application/json
{
"Id": 1,
"LocationEntityId": 14146,
"PostalCode": "90210",
"Shipments": [
{
"SupplierEntityId": 14107,
"Items": [
{
"CatalogId": "a183f1a9-c58f-426a-930a-9a6357db52ed",
"Quantity": 1,
"Cost": 9.99
}
],
"ShippingOptions": [
{
"Id": "1",
"Name": "UPS Ground",
"Cost": 0,
"EstimatedTransitTime": "14",
"Currency": "CAD"
},
{
"Id": "2",
"Name": "UPS Ground Express",
"Cost": 17.95,
"EstimatedTransitTime": "7",
"Currency": "CAD"
}
]
}
],
"Items": []
}
(Optional) Step 7 - Get Company Tree
You can allow customers to create Ship to Store orders by providing the Order with an EntityId
with the request Getting All Locations for a Company and the following paramers:
CompanyId
- Provided in onboarding package
From the response, the following values will be used in later steps:
Id
(14192) - Identifier of a location to be used for Ship to Store
Example Request
GET https://entitymanagerrc.iqmetrix.net/v1/Companies(14146)/Locations
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
[
{
"LocationStatus": "Active",
"LocationType": null,
"LocationSubType": null,
"Address": {
"AddressLine1": "1521 Main St",
"AddressLine2": null,
"City": "Huntington Beach",
"StateCode": "CA",
"StateName": "California",
"CountryCode": "US",
"CountryName": "United States",
"Zip": "90210"
},
"Contacts": [],
"StorePhoneNumbers": [],
"Area": null,
"StoreHours": {},
"Geography": null,
"TimeZone": {
"Id": "Central Standard Time",
"DaylightSavingTimeEnabled": false
},
"Id": 14192,
"Name": "Location",
"DisplayName": "",
"Description": "",
"Roles": [
{
"Name": "Location"
}
],
"Role": "Location",
"SortName": "Location",
"Attributes": {},
"Relationships": [
{
"Id": 667847,
"Definition": 16,
"Source": 173600,
"Destination": 611444,
"CreatedUtc": "2019-06-26T18:15:54.332Z",
"Version": 1
}
],
"Version": 14,
"CreatedUtc": "2016-08-11T15:06:44.111Z",
"LastModifiedUtc": "2020-05-04T08:16:59.364Z",
"CorrelationId": "6935",
"ClientEntityId": null,
"TypeId": 1818,
"Logo": null,
"Website": null
}
]
Step 8 - Create an Order
You can create a dropship order using the request Creating an Order with Items and the following parameters:
CompanyId
- Provided in onboarding packageOrderTypeId
- In most cases use1
(Sales)EntityId
- Provided in onboarding packageTenderId
- It is very important to provide a unique value forTenderId
to be able to track OrdersBillingCustomerId
- From Step 5BillingAddressId
- From Step 5ShippingAddressId
- From Step 5, if shipping to customer. Otherwise, use00000000-0000-0000-0000-000000000000
ShippingCustomerId
- From Step 5, if shipping to customer. Otherwise, use00000000-0000-0000-0000-000000000000
ShippingEntityId
- From Step 7, if shipping to store. Otherwise, use0
SourceId
- Provided in onboarding package, used for tracking the originating systemSourceName
- Provided in onboarding package, used for tracking the originating system- Items
ItemTypeId
- In most cases use1
(DropShip)ItemStatusId
- In most cases use1
(New)ProductId
- From Step 1. It is very important that this be a validCatalogItemId
or it may cause errors in RQSellingPrice
- From Step 3ShippingOptionId
- From Step 6SupplierEntityId
- From Step 6Description
- Product description, provided by 3rd party system or from Step 2Quantity
- Amount of items added to cart, this value should be provided by 3rd party system
From the response, the following values will be used in later steps:
Id
(cdd26b8f-4ed1-409d-9984-982e081c425e) - Identifier of the created order
Example Request
POST https://orderrc.iqmetrix.net/v1/Companies(14146)/OrderFull
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content: application/json
{
"OrderTypeId": 1,
"EntityId": 14146,
"TenderId": "TT101IN18",
"BillingCustomerId": "659c2a38-d083-4421-9330-46d779702f85",
"BillingAddressId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"ShippingAddressId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"ShippingCustomerId": "659c2a38-d083-4421-9330-46d779702f85",
"ShippingEntityId": 0,
"SourceId": "0ce24f40-0183-4fcf-a4eb-8ac19db55723",
"SourceName": "Third Party eCommerce",
"Items": [
{
"ItemTypeId": 1,
"ItemStatusId": 1,
"ProductId": "a183f1a9-c58f-426a-930a-9a6357db52ed",
"SellingPrice": 4.99,
"ShippingOptionId": 1,
"SupplierEntityId": 14107,
"Description": "The world’s first dual-edge display was born from a need to create something new...",
"Quantity": 1
}
]
}
Example Response
HTTP 201 Content-Type: application/json
{
"Id": "cdd26b8f-4ed1-409d-9984-982e081c425e",
"OrderTypeId": 1,
"OrderType": "Sales",
"State": "Created",
"PrintableId": "019J6MS",
"Name": null,
"TenderId": "TT101IN18",
"TenderOrigin": null,
"SourceId": null,
"SourceName": null,
"EntityId": 14146,
"ShippingEntityId": 0,
"BillingCustomerId": "659c2a38-d083-4421-9330-46d779702f85",
"BillingAddressId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"ShippingAddressId": "5e534ed7-6c89-4f35-bc39-304783f56d1e",
"ShippingCustomerId": "659c2a38-d083-4421-9330-46d779702f85",
"EmployeeId": 0,
"DiscountCode": null,
"DiscountDescription": null,
"DiscountAmount": 0,
"CreatedDateUtc": "2017-03-15T22:43:28.537",
"OrderExpiryHours": 72,
"OrderExpiryDate": "2017-03-18T22:43:28.537",
"SourceId": "0ce24f40-0183-4fcf-a4eb-8ac19db55723",
"SourceName": "Third Party eCommerce",
"Items": [
{
"Id": "f15100db-c237-49f2-97d1-7910b87e278c",
"ProductId": "a183f1a9-c58f-426a-930a-9a6357db52ed",
"SupplierEntityId": 14107
"ShippingOptionId": 1,
"OrderId": "78e50fb8-aefb-4ca1-923d-9e7800d3b792",
"ItemTypeId": 1,
"ItemType": "DropShip",
"ItemStatusId": 1,
"ItemStatus": "New",
"Quantity": 1,
"Cost": 0,
"ListPrice": 0,
"SellingPrice": 4.99,
"Index": 0,
"Description": "The world’s first dual-edge display was born from a need to create something new...",
"SKU": null,
"Notes": null,
"SerialNumbers": [],
"SupplierReference": null,
"TrackingInformation": [],
"ItemExtensions": []
}
]
}
Step 9 - Process an Order
Finally, you can submit the dropship order using the request Processing an Order and the following parameters:
CompanyId
- Provided in onboarding packageOrderId
- From Step 8
Example Request
POST https://orderrc.iqmetrix.net/v1/Companies(14146)/Orders(cdd26b8f-4ed1-409d-9984-982e081c425e)/Process
Authorization: Bearer b0k0dY70N3Vv9jR1b9oEdW9IeT5WIn85WCYFJRo6AiIKLEMBFwNbEQsfeCUeM3gdPA1gAAVxWTJacX8mJyBaGRcFVwQOEV49NgBz
Accept: application/json
Content: application/json
{
"OrderId": "cdd26b8f-4ed1-409d-9984-982e081c425e"
}
Example Response
HTTP 201 Content-Type: application/json
{
"Id": 1,
"OrderId": "33b721c3-7872-4db6-8bf4-f2ac89d2f06e"
}