# Products and SKUs

The [checklist items](#integration-checklist) and [standards](#integration-standards) in this section cover how to manage your products in the Digital River APIs.

On this page, the [integration checklist](#integration-checklist) that you should use depends on the product data model you employ. For more information, refer to the:

* [Defining goods and services page](/digital-river-api/product-management/skus.md)
* [Sending product data in the checkouts](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md#sending-product-data) section on the [Describing line items](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md) page

## Integration checklists <a href="#integration-checklist" id="integration-checklist"></a>

The integration checklist you should work from in this section depends on your [product data model](/digital-river-api/product-management/skus.md).

{% hint style="info" %}
For more information, refer to the [sending product data in checkouts](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md#sending-product-data) section on the [Describing line items](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md) page.
{% endhint %}

Click any checklist item for more details on meeting the integration standard.

### SKUs only checklist

* [ ] [Do you have a method for manually synchronizing a full product catalog using the SKUs API?](#manually-synchronize-your-catalog)
* [ ] [Do you have a scheduled job or real-time trigger to synchronize new and updated products in your catalog with their corresponding SKUs in our system?](#automatically-synchronize-your-catalog)
* [ ] [Can you capture a product's tax code, ECCN, and country of origin within your product admin interface?](#capture-sku-attributes)
* [ ] [Does your integration use your source system's unique product identifier as the SKU identifier when interfacing with the SKUs API?](#ensure-product-and-sku-identifiers-match)

### SKUs with SKU groups checklist

* [ ] [Do you have a method for manually synchronizing a full product catalog using the SKUs API?](#manually-synchronize-your-catalog)
* [ ] [Do you have a scheduled job or real-time trigger to synchronize new and updated products in your catalog with their corresponding SKUs in our system?](#automatically-synchronize-your-catalog)
* [ ] [Does your integration use your source system's unique product identifier (UUID) as the SKU identifier when interfacing with the SKUs API?](#ensure-product-and-sku-identifiers-match)
* [ ] [Have you associated a SKU group with each of your SKU's?](#associate-a-sku-group-with-each-sku)

### Product details with SKU groups checklist

* [ ] [Have you associated a SKU group with each product in your system?](#associate-a-sku-group-with-each-product-in-your-system)

## Integration standards

The product and SKU standards that apply to your integration depend on which of the above :point\_up: checklists you're using.

### Manually synchronize your catalog

You should have a tool that manually imports and then allows you to periodically update your products in Digital River's system through the [SKUs API](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/skus). Your platform's admin interface most likely already has a product management page. You can simply modify this page to perform [SKU imports and updates](/digital-river-api/product-management/creating-and-updating-skus.md#creating-and-updating-a-sku).

### Automatically synchronize your catalog

Product catalogs are often very large. To optimize performance, you should synch your products and SKUs on a timed schedule or using a similar trigger.

These scheduled jobs should make as few calls to the [SKUs API](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/skus) as possible. Therefore, we suggest you use a delta to only update the attributes in a SKU that changed in its corresponding product. This prevents you from having to overwrite every SKU value each time you run a synchronization job.

### Capture SKU attributes

If you're [sending product data in checkouts](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md#sending-product-data) by referencing SKUs that don't belong to [SKU groups](/digital-river-api/product-management/setting-up-sku-groups.md), then you should add the following attributes to the product schema in your commerce platform:

* [Export Control Classification Number](/digital-river-api/product-management/creating-and-updating-skus.md#eccn)
* [Country of origin](/digital-river-api/product-management/creating-and-updating-skus.md#country-of-origin)
* [Tax code](/digital-river-api/product-management/creating-and-updating-skus.md#tax-code)

Similarly, regardless of whether or not you associate SKU groups with SKUs, if you're [sending product data in checkouts](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md#sending-product-data) by referencing SKUs, you should also add the following attributes to your platform's product schema:

* [Part number](/digital-river-api/product-management/creating-and-updating-skus.md#manufacturer-id-and-part-number)
* [Weight and weight unit](/digital-river-api/product-management/creating-and-updating-skus.md#weight-and-weight-unit)
* [Image and URL](/digital-river-api/product-management/creating-and-updating-skus.md#image-and-url)
* [Fulfillment coordinator](/digital-river-api/product-management/creating-and-updating-skus.md#managed-fulfillments)

When you set these values in your admin interface, you can [sync your products with their corresponding SKUs](#automatically-synchronize-your-catalog) in Digital River's system.

### Ensure product and SKU identifiers match

Your product's identifier should match the [identifier of its corresponding SKU](/digital-river-api/product-management/creating-and-updating-skus.md#unique-identifier) in our system. It's important that these values are the same. This ensures that synchronization is possible and that the SKUs work properly during [checkouts](/digital-river-api/integration-options/checkouts/creating-checkouts.md).

### Associate a SKU group with each SKU

Before deployment, you should [associate a SKU group with each of your SKUs in our system](/digital-river-api/product-management/setting-up-sku-groups.md#using-sku-groups-in-transactions).

### Associate a SKU group with each product in your system

Before deployment, you should [associate a SKU group with each product in your system](/digital-river-api/product-management/setting-up-sku-groups.md#using-sku-groups-in-transactions).

## API interfaces

| Documentation                                                                                                                                                                                                                                                                                           | Direct API                                                                        | PHP SDK                                                                               |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [Defining goods and services](/digital-river-api/product-management/skus.md), [Grouping SKUs](/digital-river-api/product-management/setting-up-sku-groups.md), [Sending product data](/digital-river-api/integration-options/checkouts/creating-checkouts/describing-the-items.md#sending-product-data) | [SKUs](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/skus) | [SKUs](https://github.com/DigitalRiver/digital-river-php/blob/main/docs/Model/Sku.md) |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digitalriver.com/digital-river-api/general-resources/standards-and-certifications/integration-checklists/products-and-skus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
