Managing SKUs

Learn how to manage SKUs and understand how their configuration affects downstream processes.

You can use the SKUs API to create, update, upsert, and delete SKUs in your catalog. How you configure your SKUs affects whether they are classified as physical or digital, require a U.S. export/re-export license, or are properly set up for landed cost calculation.

Creating and updating a SKU

Creating and updating SKUs are nearly identical processes. The main difference is that in a create SKU request you're allowed to specify the unique identifier, but in an update SKU request you pass in the unique identifier as a path parameter.

Another contrast is that when creating a SKU, you're required to specify the export control classification number, tax code, a product name, and country of origin.

SKU parameters

The following parameters are available in both POST/skus and POST/skus/{id} requests. The SKUs API reference page indicates which parameters are required and which are optional.

Parameter

Description

id

The unique identifier of the SKU

countryOfOrigin

The SKU's country of origin

eccn

The SKU's export control classification number

name

The product's name.

taxCode

The designated tax code. We use this value to classify a SKU as either physical or digital.

partNumber

Identifies the manufacturer's part number. This parameter only applies to physical products.

hsCode

Represents the Harmonized System code.

description

A description of the product.

image*

An image of the product. Use this parameter if you want to display an image of the product to the customer.

url*

A product url.

weight

The weight of the product measured in the unit specified byweightUnit.

weightUnit

The unit of measurement applied to theweight.

The enumerated unit types are "oz"[default], "lb", "g", and "kg".

*These values are only needed for ApplePay or GooglePay payment methods.

Setting the tax code

Creating a SKU requires that you provide a taxCode parameter. This is to ensure that Digital River applies the correct tax to your product. The tax code also determines whether we classify the product as physical or digital.

The following table lists the tax codes currently supported by Digital River and whether they are applicable for physical or digital products.

Note: If you'd like to use a tax code not listed here, contact your account representative.

Group

Type

Tax Code

Applied to physical or digital products?

Downloadable Goods (Non-Software)

Digital Image

4512.100

Digital

Downloadable Goods (Non-Software)

Virtual Goods

55111509.12

Digital

Downloadable Goods (Non-Software)

Music

55111512.100

Digital

Downloadable Goods (Non-Software)

Electronic Newspapers (Includes Subscriptions)

55111507.120

Digital

Downloadable Goods (Non-Software)

Electronic Magazines (Includes Subscriptions)

55111506.120

Digital

Downloadable Goods (Non-Software)

Educational / Vocational Texts

55111513.120

Digital

Downloadable Goods (Non-Software)

eBooks

55111502.120

Digital

Food, Beverage & Household

Non-Prescription Vitamins

51191905

Physical

Food, Beverage & Household

Non-Prescription Drugs

5124

Physical

Food, Beverage & Household

Miscellaneous Supplies

47

Physical

Food, Beverage & Household

Food - General

50

Physical

Physical Goods

Automatic Blood Pressure Monitors

531316.150

Physical

Physical Goods

Energy Star - Stove

52141545.100

Physical

Physical Goods

Energy Star - Dehumidifier

4010.200

Physical

Physical Goods

Energy Star - Air Conditioner

4010.100

Physical

Physical Goods

Energy Star - Ceiling Fan

40101609.100

Physical

Physical Goods

Energy Star - Light Bulbs

39101629.100

Physical

Physical Goods

Energy Star - Freezer

52141506.100

Physical

Physical Goods

Energy Star - Refrigerator

52141501.100

Physical

Physical Goods

Energy Star - Washer

52141601.100

Physical

Physical Goods

Energy Star - Dryer

52141602.100

Physical

Physical Goods

Energy Star - Dishwasher

52141505.100

Physical

Physical Goods

Computer Supplies - Subscription

4321_S

Physical

Physical Goods

Mobile Devices

43211509

Physical

Physical Goods

Medical Equipment

42

Physical

Physical Goods

Consumer Electronics (Photographic, Filming, or Video Equipment)

4512

Physical

Physical Goods

Consumer Electronics (T.V., Monitor, Display) - Size (>4"<15")

52161500_C

Physical

Physical Goods

Consumer Electronics (T.V., Monitor, Display) - Size (= or >35")

52161500_B

Physical

Physical Goods

Consumer Electronics (T.V., Monitor, Display) - Size (= or >15"<35")

52161500_A

Physical

Physical Goods

Video Game Consoles and Accessories

601410

Physical

Physical Goods

Uniforms

531027

Physical

Physical Goods

Sports and Recreation Equipment

49

Physical

Physical Goods

School Supplies

441216

Physical

Physical Goods

School Instructional Materials

6010

Physical

Physical Goods

Safety Clothing (Not Suitable for Everyday Use)

461815.100

Physical

Physical Goods

Printed Media (Non-Subscription)

5510

Physical

Physical Goods

Newspapers (Includes Subscription)

55101504.100

Physical

Physical Goods

Magazines (Includes Subscriptions)

55101506.100

Physical

Physical Goods

General Merchandise

601410

Physical

Physical Goods

Consumer Electronics (Non-Computer)

5216

Physical

Physical Goods

Computers

4321_A

Physical

Physical Goods

Computer Supplies

4321_C

Physical

Physical Goods

Computer Peripheral Devices

4321_B

Physical

Physical Goods

Books - General Purpose

55101510

Physical

Physical Goods

Books - Educational and Vocational Texts

55101509

Physical

Physical Goods

Backpacks

53121603

Physical

Physical Goods

Apparel & Footwear (Everyday Use)

531029.100

Physical

Physical Goods

Apparel & Footwear (Athletic Use)

531029.200

Physical

Services & Miscellaneous

Installation Service Charges Provided by the Seller of TPP

70.360

Digital

Services & Miscellaneous

Mandatory Maintenance Agreements - Services and Upgrades, Only for Downloadable

81112201.121

Digital

Services & Miscellaneous

Computer Services

8111

Digital

Services & Miscellaneous

Consulting Services

70.60

Digital

Services & Miscellaneous

General Services

70.100

Digital

Services & Miscellaneous

Gift Cards

70.120

Digital

Services & Miscellaneous

Mandatory Maintenance Agreements - Services and Upgrades, for Downloadable and Physical Products

81112201.120

Digital

Services & Miscellaneous

Non-warranty Repairs

70.150

Digital

Services & Miscellaneous

Online Data Storage

811121

Digital

Services & Miscellaneous

Optional Maintenance Agreements - Services and Upgrades, for Downloadable Products

81112201.420

Digital

Services & Miscellaneous

Optional Maintenance Agreements - Services and Upgrades, for Physical Products

81112201.410

Digital

Services & Miscellaneous

Optional Maintenance Agreements - Services Only, for Downloadable and Physical Products

81112201.200

Digital

Services & Miscellaneous

Seminar Classes

70.300

Digital

Services & Miscellaneous

Software Training

70.280

Digital

Services & Miscellaneous

Technical Support

811118.100

Digital

Services & Miscellaneous

Virtual Currency

70.120_A

Digital

Services & Miscellaneous

Membership Dues - General

70.220

Digital

Services & Miscellaneous

Membership Dues & Professional Organization

70.222

Digital

Services & Miscellaneous

Web Hosting

81112105

Digital

Software (Downloadable & Physical)

Backup Media (CD/DVD) - One Disc per Order

4323.310_B

Physical

Software (Downloadable & Physical)

Software as a Service

81112106

Digital

Software (Downloadable & Physical)

Physical Software (Gaming Only)

4323.310_E

Physical

Software (Downloadable & Physical)

Physical Software (Non-Gaming)

4323.310_A

Physical

Software (Downloadable & Physical)

Physical Media Kits

4323.310_D

Physical

Software (Downloadable & Physical)

Backup Media (CD/DVD) - One Disc per Product

4323.310_C

Physical

Software (Downloadable & Physical)

Downloadable Media Kits

4323.320_C

Digital

Software (Downloadable & Physical)

Downloadable Software (Gaming Only)

4323.320_D

Digital

Software (Downloadable & Physical)

Downloadable Software (Non-Gaming, Includes Software Subscriptions)

4323.320_A

Digital

Software (Downloadable & Physical)

Extended Download Service

4323.320_B

Digital

Warranties

Optional Warranties - Purchased at Time of Sale of for Consumer Goods, Labor Only

95.210

Digital

Warranties

Optional Warranties - NOT Purchased at Time of Sale of for Consumer Goods, Parts & Labor

95.222

Digital

Warranties

Optional Warranties - NOT Purchased at Time of Sale of for Consumer Goods, Labor Only

95.220

Digital

Warranties

Mandatory Warranties

95.100

Digital

Warranties

Optional Warranties - Purchased at Time of Sale of for Consumer Goods, Parts & Labor

95.212

Digital

Example: POST/skus request and response

The following POST/skus request creates a physical SKU because the taxCode parameter references physical software:

cURL
cURL
curl --location --request POST 'https://api.digitalriver.com/skus' \
--header 'Authorization: Bearer <API_key>' \
--header 'Content-Type: text/plain' \
--data-raw '{
"id": "3170de75-68f8-4d54-9176-211f0e680136",
"eccn": "EAR99",
"countryOfOrigin": "US",
"taxCode": "4323.310_A",
"partNumber": "100-440-0.750-3434-A",
"name": "Test Product"
}'

A 201 Created response returns a SKU object:

JSON
JSON
{
"id": "3170de75-68f8-4d54-9176-211f0e680136",
"createdTime": "2020-06-05T21:39:43Z",
"name": "Test Product",
"eccn": "EAR99",
"partNumber": "100-440-0.750-3434-A",
"taxCode": "4323.310_A",
"countryOfOrigin": "US",
"fulfill": false,
"allowOversell": true,
"liveMode": false
}

How products are specified as physical or digital

When you set the tax code, Digital River uses the specified value to classify a product as either physical or digital. This classification then determines the address requirements for any orders that contain this SKU.

Whether the product is physical or digital also determines the selling entity, which affects how taxes are calculated and whether landed costs are applicable.

Upserting a SKU

The upsert request uses a PUT method to either create or update a SKU object. If the specified SKU doesn't exist, the operation creates one. Otherwise, if the SKU already exists, then the parameters specified in the request body update the SKU's corresponding attributes. The upsert operation is basically a create and update request rolled into one.

For example, if you'd like to update the tax code or ECCN of a product, but you can't determine whether the SKU has already been created, then an upsert request is appropriate.

Since the SKU might not exist when you make the PUT request, the same parameters as a create request are required.

Performing an upsert

Let's say your Tax department informs you that an existing software product now falls into a new tax category. As a result, you need to update the taxCode value of the SKU. The following example shows how to do this using an upsert request.

Submitting an upsert request

When submitting the request, you need to pass in the SKU identifier as a path parameter. You also need to provide the eccn, taxCode, name, and countryOfOrigin.

cURL
cURL
curl https://api.digitalriver.com/skus/sku_5823595932 \
-u sk_test_db9682a2-b04a-4e94-8e11-35fe8ec0b324: \
-d eccn="EAR99" \
-d taxCode="81112106" \
-d name="Wiser Word Editor" \
-d countryOfOrigin="US"

Response outcomes

If your request is successful, you'll receive either a 200 OK or a 201 Created response, depending on whether the SKU already exists or was created by the request.

A 200 OK response indicates the SKU was created prior to the request and is now updated. In the following example, note that the createdTime is earlier than the updatedTime.

JSON
JSON
{
"createdTime": "2020-01-11T20:48:03Z",
"id": "sku_5823595932",
"eccn": "EAR99",
"taxCode": "81112106",
"name": "Wiser Word Editor",
"description": "Wiser Word Editor",
"image": "https://imageurl.com",
"url": "https://producturl.com",
"countryOfOrigin": "US",
"weight": 61,
"weightUnit": "oz",
"liveMode": false,
"metadata": {
"coupon": "iOS"
},
"updatedTime": "2020-04-14T18:28:09Z"
}

A 201 Created response indicates that the SKU did not exist at the time of the request but has now been created. In the following example, the createdTime is identical to the updatedTime.

JSON
JSON
{
"createdTime": "2020-04-14T18:28:09Z",
"id": "sku_5823595932",
"eccn": "EAR99",
"taxCode": "81112106",
"name": "Wiser Word Editor",
"countryOfOrigin": "US",
"weightUnit": "oz",
"updatedTime": "2020-04-14T18:28:09Z"
}

Deleting a SKU

To delete a SKU, pass its unique identifier as a path parameter in a DELETE/skus/{id} request. This also deletes any Fee objects associated with the SKU.