Products
Understand the basics of products.
A product (a stock keeping unit or SKU) is a sellable item or service. Products in your Digital River catalog contain all the required attributes to complete an end-consumer transaction (payments, tax, and fulfillment). You can generally configure the product in one of two ways:
An individual product (single sellable SKU)
A base product with product variations (base product with multiple sellable SKU variants)
You can retrieve the catalog product information, including applicable discounted prices, by leveraging the available product endpoints.
Individual product
An individual product is a single item, such as a downloadable song, or a collection of items, such as a box set. Use the POST /v1/products
request to create an individual product and the POST /products/{productId}
request to update an individual product. There are no product variations associated with it.
An individual product is a single sellable stock keeping unit (SKU). The following image shows an example of a SKU:

Base product
If a product comes in different colors, sizes, or versions, it is easier to maintain a base product with product variations than a handful of nearly identical products.
You can create a base product (parent) that contains the common attributes for all product variations (children) of that product. All product variations inherit common attributes. For example, if two variations of a base product require the same product images, add those images to the base product before creating your variations.
Use the POST /v1/products
request to create a base product and the POST /v1/products/{productId}
request to update a base product.
Product variations
Product variations are different versions of a base product that a shopper can purchase, such as different versions, sizes, or capacities. When you add a product variation, the request copies the common attributes from the base product to the variation. You must change the appropriate attributes and settings to make that variation unique. Each product variation contains attributes and settings that are unique to that product variation.
You must change at least one common attribute to make the product variation unique. Only change those settings or attributes that are unique to the variation to reduce operational maintenance.
The following image shows an example of a product variant on a store's website:

Creating a base product with variations
You can choose to either:
Create the base product first
Create the base product first and include the common attributes. If you choose not to define some of the common attributes, those attributes will not be available when you add a product variation.
Define as many common attributes as possible for the base product before you create a product variation.
You can add the product variations to that base product later.
Create the base product and product variations simultaneously
You can create a base product and all its product variations using one call by adding the variations
object to the payload. The request copies the common attributes from the base product to each product variation. You modify the attributes for each product variation in the payload when you update the product variation.
The following example adds or updates a base product and its product variations.
curl --location --request POST 'https://api.digitalriver.com/v1/products' \
--header 'Authorization: Bearer <API_key>' \
...
--data-raw '{
"companyId":"digitalriver",
"deploymentRequiredChanges": {
"fulfillmentTypes": ["Download","Physical"]
},
"liveChanges": {
"externalId": "external-reference-id-{{uuid}}",
"catalogs" : [ {
"catalogId" : "4783669800",
"pricing" : [ {
"type": "listPrice",
"prices": [{
"currency": "USD",
"configuredPrice": 10
}]
}]
}]
},
"localizations": [
{
"locale": "en_US",
"isDefault": "true",
"groups": [
{
"groupId": "11",
"groupName": "Software",
"attributes": {
"name": "product-name",
"displayName": "Product Display Name",
"sku": "product-sku",
"manufacturer": "manufacturer-20220308-01",
"mfrPartNumber": "mfrPartNumber-20220308-01",
"returnMethod": "LOD",
"productReturnMethod": "ByAgentAndSelfService",
"taxableUnspscCode": "43210000",
"taxableProductCode": "4321_C",
"privateStoreOnly": true,
"isViewable": true,
"isOrderable": true,
"nonSolr": true,
"shortDescription": "shortDescription",
"longDescription": "longDescription",
"keywords": "keywords",
"emailAddlInfoText": "emailAddlInfoText",
"emailAddlInfo": "emailAddlInfo",
"confirmAddlInfo": "confirmAddlInfo"
}
},
{
"groupId": "16",
"groupName": "Export Controls",
"attributes": {
"eccn": "3A992",
"ccats": "display-name-1234test",
"licenseException": "APP",
"harmonizeCode": "hcode",
"manufactureCountry": "US"
}
}
]
}
],
"variations": [
{
"productType": "VARIATION",
"companyId": "cast",
"deploymentRequiredChanges": {
},
"varyingAttributes": [
{
"attributeName": "platform",
"attributeValue": "1 user"
},
{
"attributeName": "fulfillmentType",
"attributeValue": "Download"
}
],
"localizations": [
{
"locale": "en_US",
"isDefault": "true",
"groups": [
{
"groupId": "11",
"groupName": "Software",
"attributes": {
"name": "product-name-V1",
"displayName": "Product-display-V1",
"sku": "demo-sku-AAAA-V1",
"taxableUnspscCode": "43210000",
"taxableProductCode": "4321_C",
"isViewable": true,
"isOrderable": true,
"nonSolr": true
}
},
{
"groupId": "16",
"groupName": "Export Controls",
"attributes": {
"eccn": "3A992",
"ccats": "V1{{uuid}}",
"licenseException": "APP",
"harmonizeCode": "hcode",
"manufactureCountry": "US"
}
}
]
}
]
}
]
}'
The following example verifies the successful completion of the request shown above.
curl --location --request GET
'https://api.digitalriver.com/v1/products/tasks/add1797e-2f98-4e7a-9894-c71d6b5640bb' \
--header 'Authorization: Bearer <API_key>' \
...
Physical and digital products
Use the Admin API fulfillment types (fulfillmentTypes
) to define how to deliver products to shoppers. The options are empty (""
), physical
or download
. When the value is empty, the product is neither physical nor digital (download
). The empty value reflects the Other setting in Global Commerce for service, warranty, entitlement, etc. Digital River supports two types of digital products: subscription and download.
Last updated