# Product basics

In the Digital River APIs, you can use [SKUs](#skus), [product details](#product-details), [SKU groups](#sku-groups) and [inventory items](#inventory-items) to identify and describe your goods and services.

Whether you integrate with [Low-code checkouts](https://docs.digitalriver.com/digital-river-api/integration-options/low-code-checkouts) or [Direct Integrations](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts), these resources and objects allow you to define each of your product's [basic and compliance data](#basic-versus-compliance-product-data).

Except for [SKU groups](#sku-groups) (as well as [inventory items](#inventory-items) used in the [distributed model](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/handling-digital-river-coordinated-fulfillments#distributed-model) of [Digital River coordinated fulfillments](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/handling-digital-river-coordinated-fulfillments)), you're responsible for managing the data contained in them.

Additionally, with the exception of [product details](#product-details), their data is stored in Digital River's system.

|                                         | Resource or object? | Supported product data | Where the product data is stored | Who manages the product data | How you manage the data                                                               | When you reference the resource / pass the object                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------------- | ------------------- | ---------------------- | -------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**SKUs**](#skus)                       | Resource            | Basic and compliance   | Digital River's system           | You                          | [SKUs API](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/skus)                       | [`POST /checkouts`](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/checkouts#checkouts-1), [`POST /checkout-sessions`](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions#drop-in-checkout-sessions)                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [**Product details**](#product-details) | Object              | Basic                  | Your system                      | You                          | System dependent                                                                      | <p><a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/checkouts#checkouts-1"><code>POST /checkouts</code></a>, <a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/checkouts#checkouts-1"><code>POST /checkouts</code></a>, <a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions#drop-in-checkout-sessions"><code>POST /checkout-sessions</code></a>, <a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/shipping-quotes#shipping-quotes"><code>POST /shipping-quotes</code></a>,<br><a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/shipping-labels#shipping-labels-1"><code>POST /shipping-labels</code></a></p> |
| [**SKU groups**](#sku-groups)           | Resource            | Compliance             | Digital River's system           | Digital River                | [SKU Groups API](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/sku-groups)           | <p><a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/checkouts#checkouts-1"><code>POST /checkouts</code></a>, <a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/checkouts#checkouts-1"><code>POST /checkouts</code></a>, <a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions#drop-in-checkout-sessions"><code>POST /checkout-sessions</code></a>, <a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/shipping-quotes#shipping-quotes"><code>POST /shipping-quotes</code></a>,<br><a href="https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/shipping-labels#shipping-labels-1"><code>POST /shipping-labels</code></a></p> |
| [**Inventory items**](#inventory-items) | Resource            | Basic and compliance   | Digital River's system           | You/Digital River            | [Inventory Items API](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/inventory-items) | [`POST /fulfillment-orders`](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/fulfillment-orders#fulfillment-orders-1)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |

## SKUs

In the Digital River APIs, SKUs are one option for identifying and defining your goods and services.

This resource holds data on the most important characteristics of a product. SKUs aren’t meant to be universal. Instead, they should be unique to your business.

You [manage SKUs](https://docs.digitalriver.com/digital-river-api/product-management/creating-and-updating-skus), and their data is stored in Digital River's system.

Depending on how you send product data in [create checkout](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items#sending-product-data) or [create checkout-session](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions#drop-in-checkout-sessions) requests, your SKUs might only contain [basic product data](#basic-versus-compliance-product-data). Alternatively, they can contain both [basic and compliance data](#basic-versus-compliance-product-data).

If you reference this resource in checkouts or [checkout-sessions](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions), you'll need to use the [SKUs API](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/skus) to define and create a SKU for every [digital and physical product](#how-products-are-classified-as-physical-or-digital) in your catalog.

For more details, refer to:

* The [Managing SKUs](https://docs.digitalriver.com/digital-river-api/product-management/creating-and-updating-skus) page
* The [Sending product data in checkouts](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items#sending-product-data) section on the [Describing line items](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items) page
* The [Product data](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions/checkout-sessions-basics#product-data) section on the [Checkout-sessions basics](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions/checkout-sessions-basics) page.

## Product details

You can use `productDetails` to identify and define your goods and services. This object holds data on the most important characteristics of a product.

You manage `productDetails` and its data is stored in your system.

A `productDetails` object can only be used to pass [basic product data](#basic-versus-compliance-product-data). Its [compliance data](#basic-versus-compliance-product-data) is stored in a referenced [SKU group](https://docs.digitalriver.com/digital-river-api/product-management/setting-up-sku-groups).

In other words, each `items[]` in a [create checkout](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/checkouts#checkouts-1) or [create checkout-session](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions#drop-in-checkout-sessions) request must include `productDetails` and nested within that object should be a `skuGroupId`.

For more details, refer to:

* The [Using product details](https://docs.digitalriver.com/digital-river-api/product-management/using-product-details) page
* The [Grouping SKUs](https://docs.digitalriver.com/digital-river-api/product-management/setting-up-sku-groups) page
* The [Sending product data in checkouts](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items#sending-product-data) section on the [Describing line items](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items) page
* The [Product data](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions/checkout-sessions-basics#product-data) section on the [Checkout-sessions basics](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions/checkout-sessions-basics) page.

## SKU groups

A [SKU group](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/sku-groups) represents a collection of products with similar compliance requirements. This resource is only used to store [compliance data](#basic-versus-compliance-product-data).

Digital River manages your SKU groups, and their data is stored in Digital River's system.

If you use SKU groups, you must reference the resource when sending product data in [create checkout](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items#sending-product-data) or [create checkout-session](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions#drop-in-checkout-sessions) requests, and the reference must either be in the [SKU](#skus) or in [`productDetails`](#product-details).

For more details, refer to:

* The [Grouping SKUs](https://docs.digitalriver.com/digital-river-api/product-management/setting-up-sku-groups) page
* The [sending product data in checkouts](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items#sending-product-data) section on the [Describing line items](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items) page
* The [Product data](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions/checkout-sessions-basics#product-data) section on the [Checkout-sessions basics](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/drop-in-checkout-sessions/checkout-sessions-basics) page.

## Inventory items

The [inventory item](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/inventory-items) resource identifies and defines physical products stored in a warehouse. You only use inventory items in [Digital River coordinated fulfillments](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/handling-digital-river-coordinated-fulfillments).

The data for an inventory item is saved in Digital River's system, and you can access it using the [Inventory Items API](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/inventory-items).

How you [interact with inventory items](https://docs.digitalriver.com/digital-river-api/product-management/managing-inventory) and how you ensure that data contained in the [shared attributes](https://docs.digitalriver.com/digital-river-api/common-attributes#shared-attributes) of [SKU-inventory item pairs](https://docs.digitalriver.com/digital-river-api/product-management/common-attributes) remains synchronized, depends on whether you're using the [distributed model](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/handling-digital-river-coordinated-fulfillments#distributed-model) or the [orchestrated model](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/handling-digital-river-coordinated-fulfillments#orchestrated-model).

For more details, refer to:

* The [Managing inventory items](https://docs.digitalriver.com/digital-river-api/product-management/managing-inventory) page
* The [SKU-inventory item pairs](https://docs.digitalriver.com/digital-river-api/product-management/common-attributes) page

## Basic versus compliance product data

In the Digital River APIs, there exist two broad categories of product data: basic and compliance. The following table lists the specific data in each category:

{% hint style="info" %}
Additional compliance data beyond what is listed here may be stored in the SKU group to which a product belongs.
{% endhint %}

| Basic product data                      | Compliance product data              |
| --------------------------------------- | ------------------------------------ |
| Name and description                    | Export control classification number |
| Image and URL                           | Harmonized system code               |
| Weight and weight unit                  | Tax code                             |
| Country of origin                       | Dangerous goods classifications      |
| Part number and manufacturer identifier | Signature requirements               |

## How products are classified as physical or digital

Digital River classifies a product as physical or digital based on its designated tax code. This code plays a role in determining a [checkout's](https://www.digitalriver.com/docs/digital-river-api-reference/#tag/Checkouts) [address requirements](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/providing-address-information#address-requirements-and-validations), its assigned [selling entity](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/selling-entities), and whether the [landed cost feature](https://docs.digitalriver.com/digital-river-api/integration-options/checkouts/creating-checkouts/landed-costs) is triggered.

Who assigns a product's tax code depends on whether or not you're using SKU groups.

### Using SKU groups

If you (1) associate a [SKU group](#sku-groups) with each of your [SKUs](#skus) or (2) reference a [SKU group](#sku-groups) in [`productDetails`](#product-details), then Digital River sets the SKU group's tax code.

As a result, you're not responsible for identifying, defining, or managing your products' tax codes.

### Not using SKU groups

If you use [SKUs](#skus) without [SKU groups](#sku-groups), then you're responsible for defining and managing each of your SKUs' [`taxCode`](https://docs.digitalriver.com/digital-river-api/creating-and-updating-skus#tax-code)(s).

### How to identify a physical or digital SKU

A [SKU's](https://app.gitbook.com/s/x8fSFzVR3sg0TsNWwwVz/skus) `physical` attribute allows you to determine whether the resource is classified as digital or physical without referencing our [supported tax code table](https://docs.digitalriver.com/digital-river-api/creating-and-updating-skus#supported-tax-codes).

{% code title="SKU" %}

```javascript
{
    "id": "db148281-a5a2-4349-baf2-5d9f76025e56",
    ...
    "physical": true
}
```

{% endcode %}
