Managing SKUs
Gain a better understanding of a SKU's attributes and how they affect downstream processes
Last updated
Gain a better understanding of a SKU's attributes and how they affect downstream processes
Last updated
On this page, you'll find information on a key attributes.
Once you define a attributes, you can perform a or operation. After that, the resource can be or . You can also or .
A SKU's physical
attribute indicates whether Digital River has classified the product as physical or digital.
If physical
is true
, then the SKU's or the tax code of the SKU's represents a physical product, and vice versa.
For details, refer to on the page.
A unique identifier is represented by id
.
A product's identifier in your system should ideally match the SKU's id
in ours. This ensures that synchronization is possible and that SKUs work properly throughout an . Therefore, we recommend that you specify your own id
and ensure it matches your product's universally unique identifier.
If you don't specify id
in the body of a , Digital River generates and returns a unique value.
In or SKU requests, id
must adhere to the following character set:
Digits from 0
to 9
Upper case letters from A
to Z
Lowercase letters from a
to z
Dots/points: .
Hyphens: -
Underscores: _
If id
contains any other character, then a 400 Bad Request
is returned:
A SKU's itemBreadcrumb
represents a hierarchical classification system that organizes and categorizes your products based on their attributes, characteristics, and relationships. You'll typically structure itemBreadcrumb
by defining a broad top-level category and, as you move down the hierarchy, getting more specific at each subsequent level.
You might have built similar data structures that inventory your products and make it easier for customers to find what they want. In that case, we recommend using this same data.
For example, Clothing > Women’s Jeans
is an acceptable value but Clothing > Women’s Clothing > Jeans > Bootcut Jeans
will likely result in more accurate classifications. You can also define multiple hierarchies, just make sure to separate each with a ;
(semi-colon).
Although not technically required, it's highly recommended that you define itemBreadcrumb
in English. If its value is in a different language, the classification service will disregard this data point.
If you submit an invalid country code, then Digital River returns a 400 Bad Request
:
This value determines whether a product:
Requires a U.S. export/re-export license
Contains any other license requirements/restrictions
Has an end use which is prohibited by applicable export control laws
The format of the code is ####.##.####
, where #
represents a numeric digit between 0 and 9. The first six digits are mandatory. Any code longer than six digits but less than ten digits is optional and based on the country's preference. The period is not included in the character count.
Digital River validates the format of a Harmonized System code. We don't, however, determine whether hsCode
accurately classifies your product.
For example, the full ten-digit code for Jasmine rice in the United States is 1006.20.4025. If that's the value you specify, we don't check to ensure your product belongs in that category.
If you submit an incorrectly formatted hsCode
, then Digital River returns a 400 Bad Request
:
The manufacturerId
represents the unique identifier of a part/product's manufacturer.
A manufacturer part number (MPN) is a unique code a manufacturer issues that identifies a part/product. This is represented by a SKU's partNumber
.
MPNs are meant to be static identifiers of a part/product, universal to all distributors, wholesalers, and resellers. They allow customers to identify exact parts and protect themselves from counterfeits accurately.
If two parts/products originate from two manufacturers, each must have its own MPN. These identifiers are especially relevant for automotive and consumer electronics due to the numerous parts in these complex products.
managedFulfillment
The specified value must be DRGlobalFulfillment
.
400 Bad Request
{ "type": "bad_request",
"errors": [ {
"code": "invalid_parameter", "parameter":"managedFulfillment", "message": "'DRGlobalFulfillment^&%^' is not a valid item type." }
] }
taxCode
400 Bad Request
{ "type": "bad_request",
"errors": [ {
"code": "invalid_parameter", "parameter": "taxCode",
"message": "'4512.100' is not a valid parameter." }
] }
partNumber
The value must be specified.
400 Bad Request
{ "type": "bad_request",
"errors": [ {
"code": "invalid_parameter", "parameter": "partNumber", "message": "'null' is not a valid parameter." }
] }
manufacturerId
If you specify this value, then the partNumber
must be valid. In other words, the combination of manufacturerId
and partNumber
must be correct.
409 Conflict
{ "type": "conflict",
"errors": [ {
"code": "invalid_parameter", "parameter": "manufacturerId", "message": "Invalid manufacturer ID. The manufacturer ID and manufacturer part # combination could not be found." }
] }
Request
Response
Request
Response
Request
Response
A name
is required butdescription
is optional. If you assign a string to description
, we recommend limiting its length to 1000 characters or less.
image
to specify the URL of a resource that holds the product's image. This resource should be similar to the image(s) you display to customers while they review your store's products.
url
to specify the address of a resource that contains the product's description.
If you're engaging the , then all of your must have an itemBreadcrumb
.
Even if you're not currently making sales, it's best practice to define this parameter so that, in the event you do start selling internationally, you're better positioned to get started.
We recommend making your taxonomies as detailed as possible. This will increase the probability that the returned by this service are accurate.
A countryOfOrigin
is a two-letter described in the international standard. It represents the country where a product was manufactured.
If a SKU does not have a , then it must contain a countryOfOrigin
.
A eccn
represents its (ECCN).
If a SKU does not have a , then it must contain an eccn
.
Digital River's lists ECCNs approved for use in the Digital River APIs. In the table's description field, you may find additional requirements and restrictions that further limit the use of the ECCN.
Digital River can only resell products with these listed ECCNs. If you have a product with an ECCN that you'd like to be considered for addition to the list, contact
A hsCode
represents a .
The skuGroupId
uniquely identifies the associated with the . For details, refer to .
A manufacturerId
and partNumber
are only applicable to .
In that use the , you'll need to meet our before .
All the must meet the following requirements:
The specified value must be associated with a .
When you or a SKU that meets our , Digital River synchronously creates an associated . These have with identical values.
Since the SKU's id
and the inventory item's id
are the same, you can use this value to , , and .
Every subsequent modification of a managedFulfillment
SKU (assuming the satisfies our ) synchronously updates the paired inventory item.
Once Digital River creates an , do not directly update or delete it through the . These operations modify and delete the inventory item but do not affect its paired SKU.
When you want to remove Digital River as a product's fulfillment coordinator, set managedFulfillment
to null
in an . This deletes the inventory item paired with the SKU. If you then attempt to retrieve the inventory item, you receive a 404 Not Found
.
A deletes the SKU and the inventory item it's paired with.
A name
should represent the product's brand name and description
should provide more details about the product.
In , name
is displayed in the order summary section.
You can use a :
If your integration gives customers the option to use then each of your SKUs must contain an image
and url
.
In , the image
of each SKU referenced in the ' items[]
is displayed in the order summary section of the .
For , you should provide a product’s weight
denoted in a weightUnit
. The enumerated weightUnit
values are oz
, lb
, g
, and kg
. If you provide weight
but not a weightUnit
, then the value defaults to oz
.
If your site intends to sell physical products , then we recommend that you pass the weight
and weightUnit
of all of your catalog's .
In some countries, like Switzerland, customs officials use a product's weight when calculating import duties. Without this data, Digital River is unable to calculate .
If you send a or checkout request whose shipTo.address.country
represents one of these nations, and any SKU referenced in the is missing weight
, then the following error is thrown:
In , you may build your integration so customers can reserve out-of-stock or pre-order items not yet in stock. To do this, you can use the SKU's allowOversell
flag.
In 2021-12-13
and later, you can't set a allowOversell
.
If you set the flag to true
, customers can even when inventory is not available. When set to false
, customers won't be able to place a hold on an item when its inventory levels are insufficient.
A taxCode
determines whether Digital River classifies a product as and ensures its taxes are properly assessed.
If a SKU does not have a , then it must contain a taxCode
.
You can modify a SKU's taxCode
in either an or an SKU request.
The following table lists the taxCode
values supported by Digital River provides a short description of each and indicates whether it represents a .