LogoLogo
System Status
  • Commerce API
    • Test and use cases
    • Roles and permissions
    • Sending API calls
  • Shopper APIs
    • Shopper basics
      • Common use cases
        • Creating a customer
        • Applying store credit
        • Private store workflow
        • Guest checkout
    • OAuth
      • Authentication
      • OAuth 2.0 APIs
      • Token
      • Access tokens
      • Session-aware access tokens
      • Authorizing a shopper
    • Shoppers
      • Managing shoppers
        • User management
        • Single sign-on (SSO)
        • Data validation
        • Bulk user management
        • Bulk user account export
      • Managing a shopper's account
      • Managing a shopper's address
      • Managing payment options
    • Product discovery
      • Categories
      • Products
      • Product variations
      • Pricing
      • Inventory status
      • Financing
      • Offers
        • Understanding offers
        • How to use point of promotions (POPs)
          • Retrieving all point of promotion offers for a specific product
          • Retrieving all offers for a specific point of promotion
        • How to use offers
      • Private stores
        • Managing private stores
        • Submitting an order for a private store
        • Useful APIs
      • Fulfillment
        • Electronic Fulfillment Service (OFI)
        • Digital rights
        • Digital rights revocation
        • Physical fulfillment
          • EDI X12 832 definition data elements
          • EDI X12 846 definition data elements
          • EDI X12 850 definition data elements
          • EDI X12 855 definition data elements
          • EDI X12 856 definition data elements
          • EDI X12 180-1 definition data elements
          • EDI X12 180-2 definition of data elements
          • EDI X12 180-3 definition of data elements
    • Cart
      • Applying a shopper to a cart
      • Getting the current cart
      • Creating or updating a cart
        • Adding a product to a cart
          • Gifting
        • Capturing the customer's IP address
        • Providing address information
        • Managing the shipping or billing address
        • Providing subscription information
        • Managing payment methods
        • Capturing the Terms of Sale (TOS) acceptance
      • Managing offers in a cart
        • Applying an offer
        • Applying a coupon or promo code
        • Getting all applied offers
        • Removing an applied offer
        • Removing eligible offers
        • Reconciling conflicting offers
        • Dynamic offers/personalization
          • Skipping Global Commerce merchandising offer arbitration
          • Triggering a promotional URL offer
          • Overriding a promotional URL offer discount
      • Pricing
        • Landed cost
          • Mixed cart support
          • Tax-included pretty price
      • Redirecting to a Digital River-hosted cart
      • Configuring taxes
        • Managing tax identifiers
      • Managing shipping options
        • Getting shipping options
        • Providing a shipping discount
      • Managing line items
      • Applying a price override
      • Managing payment sessions
      • Managing web checkout
      • Submitting a cart
        • Initiating a charge
        • Authorization declines
      • Resuming cart submission
      • HGOP2
    • Orders
      • Getting orders
      • Selling entities
      • Retrieving addresses from an order
      • Retrieving line items from an order
      • Order lookup
      • Returns
        • Initiate an authenticated session
        • Setting up returns in Global Commerce
        • Managing returns
    • Subscriptions
      • Retrieve the subscription
        • Getting all orders for a subscription
        • Getting a subscription's pending actions
        • Getting all subscriptions for a shopper
        • Getting a subscription by identifier
      • Update subscription at the next renewal
        • Changing the subscription renewal type
        • Changing the subscription renewal quantity
        • Adding or updating a perpetual unit price
        • Changing the subscription's payment option
        • Changing the subscription's payment source
      • Immediately change the subscription
        • Updating the subscription's shipping address
        • Updating a subscription's billing and shipping email address
        • Cancelling a subscription
      • Immediately apply a midterm subscription change
        • Reducing the subscription renewal quantity
  • Admin APIs
    • Admin basics
      • Available Admin API calls
    • Order management
      • Getting the order's details
      • Downloading the invoice
    • Offer management
    • Refund management
      • Authorization
      • Refund reason codes
      • Creating a satisfaction refund
      • Getting the available refunds for a specific order
      • Getting refunds for a specific order
      • Getting refunds available for a shopper's order
      • Getting the JSON schema for an order refund
      • Managing a refund for a delayed payment method
      • Refund error scenarios
    • Subscription management
      • Retrieve the subscription
        • Getting all orders for a subscription
        • Getting a subscription's pending actions
        • Getting all subscriptions for a shopper
        • Getting a subscription by identifier
      • Update the subscription at the next renewal
        • Changing the subscription renewal type
        • Changing the subscription renewal product
        • Changing the subscription renewal price
        • Changing the subscription renewal quantity
        • Adding or updating a perpetual unit price
        • Changing the subscription's payment option
        • Changing the subscription's payment source
      • Immediately change the subscription
        • Activating a subscription
        • Changing the subscription's external reference identifier
        • Updating a subscription's billing and shipping email address
        • Cancelling a subscription
        • Updating the subscription's expiration date
      • Immediately apply a midterm subscription change
        • Applying a midterm change with price override
        • Reducing the subscription renewal quantity
      • Subscription notifications
        • Updating the subscriber's email address
        • Card Account Updater
        • Sending a payment information change notification
        • Sending an expired credit card notification
        • Sending an invalid payment account notification
        • Sending a payment failure notification
        • Sending a subscription renewal reminder notification
        • Setting up subscription renewal reminders
        • Setting up trial subscription renewal reminders
        • Setting up marketing reminders
      • Using the Expired Card Optimizer
    • Customer management
      • Retrieving customer details
      • Requesting PII removal for a customer
    • Site management
      • Configuring authorized shipping and billing countries
      • Getting a site's authorized billing countries
      • Getting a site's authorized shipping countries
    • Product management
      • Getting started
      • Manage products (asynchronous API)
        • Creating or updating a product
        • Adding or updating a product variation
        • Deploying a product
        • Applying live changes
        • Retiring a product
        • Deleting a product variation
        • Deleting a base or individual product's locale
      • Retrieve products (synchronous API)
        • Getting a product by locale
        • Getting a product variation
        • Getting a product variation by locale
      • Get the task status for a product (synchronous API)
        • Getting the latest information on a product task
        • Retrieving the tasks for a specific product
        • Retrieving the tasks for products
      • Bulk operation
        • Asynchronous bulk operations
          • Creating products in bulk
          • Updating products in bulk
          • Deploying products in bulk
          • Deleting product variations in bulk
        • Bulk product upload (BPU)
        • Bulk Product Export (BPE)
          • Line-item level satisfaction refund
          • Order-level satisfaction refund
          • Auto-created line-item level return product
          • Line-item level return product
    • File management
      • Downloading a file
  • Payments
    • Payments solutions
      • Drop-in payments
        • How Drop-in payments work
        • Drop-in payments integration guide
      • DigitalRiver.js with Elements
        • Elements integration guide
        • Configuring payment methods
          • Configuring Afterpay
          • Configuring Alipay+ (cross-border)
          • Configuring Alipay (domestic)
          • Configuring Amazon Pay
          • Configuring Apple Pay
          • Configuring Bancontact
          • Configuring BLIK
          • Configuring Boleto
          • Configuring CCAvenue
          • Configuring Clearpay
          • Configuring Credit Cards
          • Configuring FPX Online Banking
          • Configuring Google Pay
          • Configuring iDEAL
          • Configuring Klarna
          • Configuring Konbini
          • Configuring Online Banking (IBP)
          • Configuring Online Banking (Korea Bank Transfer)
          • Configuring PayCo
          • Configuring PayPal
          • Configuring SEPA Direct Debit
          • Configuring Trustly
          • Configuring Wire Transfer
          • Common payment sources
          • Common payment objects
    • Supported payment methods
      • Afterpay
      • Alipay (domestic)
      • Alipay+ (cross-border)
      • Amazon Pay
      • Apple Pay
      • Bancontact
      • BLIK
      • Boleto
      • CCAvenue
      • Clearpay
      • Credit Cards
      • FPX Online Banking
      • Google Pay
      • iDEAL
      • Klarna
      • Konbini
      • Korea Bank Transfer (Online Banking)
      • Online Banking (IBP)
      • PayCo
      • PayPal
      • PayPal Billing Agreement
      • PayPal Credit
      • PayPal Pay in 3
      • PayPal Pay in 4
      • PayPal RatenZahlung (Installment Payment)
      • SEPA Direct Debit
      • Trustly
      • Wire Transfer
    • Source basics
      • Managing sources
      • Handling credit card sources
      • Retrieving sources
    • Building payment workflows
      • Flows by payment type
      • Handling redirect payment methods
    • PSD2 and SCA
    • Payment testing scenarios
      • Testing standard payment methods
      • Testing redirect payment methods
      • Testing receiver payment methods
      • Testing the CCAvenue payment method
  • Events
    • Events overview
    • Responding to events
    • Event types
      • Delayed payment event types
        • Delayed payment expired event
          • Boleto
          • Konbini
          • Wire Transfer
        • Delayed payment reminder event
          • Boleto
          • Konbini
          • Wire Transfer
      • Subscription event types
        • Subscription created event
        • Subscription updated event
        • Subscription action processed event
        • Subscription cancelled event
        • Subscription credit card expired event
        • Subscription payment information changed event
        • Subscription renewal reminder event
        • Subscription renewed event
        • Subscription trial converted event
        • Subscription trial renewal reminder event
        • Subscription payment failed event
      • Post-order event types
        • Invoice created event
        • Refund credit memo event
      • Inventory event types
        • Inventory out of stock event
        • Inventory source and management
        • Inventory self-managed updated event
        • Inventory fulfiller-managed updated event
      • Post-order Notification Integration Guide
    • Webhooks
      • Commerce API safelist
      • Searching for a webhook
      • Creating a webhook
      • Using webhooks
      • Editing a webhook
      • Turning webhooks on or off
      • Revealing a webhook's secret
      • Rotating a webhook's secret
      • Viewing the webhook details
      • Deleting a webhook
  • Developer Resources
    • Postman collection
    • Commerce API references
    • Shopper APIs reference
    • Admin APIs reference
    • DigitalRiver.js reference
      • Including DigitalRiver.js
      • Initializing DigitalRiver.js
      • DigitalRiver object
      • Elements
        • Amazon Pay element
        • Apple Pay elements
        • Google Pay elements
        • IBAN element
        • iDEAL element
        • Konbini elements
        • Compliance element
        • Offline refund element
        • Online Banking elements
        • Tax Identifier element
        • Delayed payment instructions element
        • PayPal elements
      • Guidelines for capturing payment details
      • Security
      • Digital River payment objects
      • Error types, codes, and objects
  • General resources
    • Global Commerce
    • Global Commerce
      • Company hierarchy
      • Categories
        • Getting a list of categories
      • Products
        • Product scenarios
        • Individual products
          • Creating an individual product
        • Base product with variants
          • Creating a base product with variants
        • Bundle offers
          • Creating a prorated bundle offer with a subscription
        • Product combination
          • Creating a product combination
        • Gifting
        • Inventory status
      • Customer service
        • Log a shopper's request to remove PII
      • Customers
        • Creating a customer
        • Digital River-maintained customer login
        • Client-maintained customer login
      • Transparent Commerce purchase flow
    • eCompass
    • eCompass documentation
    • Release notes
      • 2024
      • 2024 latest
      • 2023
      • 2022
      • 2021
      • 2020
Powered by GitBook
On this page
  • Product payload example
  • Creating an individual or base product
  • Creating a digital product
  • Product history attributes
  • Adding or replacing a product's locale

Was this helpful?

  1. Admin APIs
  2. Product management
  3. Manage products (asynchronous API)

Creating or updating a product

Learn how to programmatically create or update a product using product identifiers (productId).

PreviousManage products (asynchronous API)NextAdding or updating a product variation

Last updated 2 months ago

Was this helpful?

When creating or updating a product through our API or Global Commerce system, it's essential to understand the proper procedures and guidelines to ensure a smooth process and avoid potential errors. This guide will walk you through the necessary steps and provide important details, such as product variations, locale management, and correctly grouping attribute values. Following these guidelines will help you effectively manage your products and avoid common pitfalls.

Do not send multiple simultaneous requests to create or update a product via API and Global Commerce or Bulk Product Upload (BPU). Simultaneous changes to a product can lead to errors in the database.

When managing a product or a product's locale, note that:

  • Adding the variations object to the payload allows you to . When you , it is an individual product. You cannot transfer an individual product to a base product programmatically, but you can from .

  • The request automatically adds the locales object from the base product to each product variation. An error appears in the response if the locales are inconsistent between the base product and the product variations.

    • If en_GB and en_US exist in the base product and only en_US exists in the product variation, this request copies en_GB to the product variation.

    • If en_GB and en_US exist in the base product and ja_JP exists in the product variation, the response returns an error.

  • The request updates the correct attribute value even if the attribute value is in the wrong group. For example, if you put the eccn attribute for export control in the storefront setting group, the request will update the eccn attribute as long as the value is correct. However, the response will put the attribute in the export control group where it belongs.

Product payload example

Here is an example payload for creating or updating a product, including a base product with variations. This example demonstrates the necessary structure and key attributes you need to provide for a base product with variations:

The following payload example contains data attributes for a base product with variations. See the resource for a description of the attributes.

{
  "deploymentRequiredChanges": {
    "fulfillmentTypes": [
      "Download"
    ],
    "otherFulfillmentIntegration": {
      "fulfillerIds": [
        "digitalRiver"
      ]
    },
    "transferProduct": "2234567800",
    "upgradeProducts": [
      "3234567800"
    ],
    "downgradeProducts": [
      "4234567800"
    ]
  },
  "liveChanges": {
    "externalReferenceId": "sku-1234-5678-xyz",
    "catalogs": [
      {
        "catalogId": "123456000",
        "categories": [
          {
            "categoryId": "19000000"
          }
        ],
        "prices": [
          {
            "type": "listPrice",
            "prices": [
              {
                "currency": "USD",
                "locale": "en_US",
                "configuredPrice": 15.99
              }
            ]
          }
        ]
      }
    ]
  },
  "localizations": [
    {
      "locale": "en_US",
      "isDefault": true,
      "groups": [
        {
          "attributes": {
            "property1": "string",
            "property2": "string"
          }
        }
      ]
    }
  ],
  "variations": [
    {
      "varyingAttributes": [
        {
          "attributeName": "fulfillmentType",
          "attributeValue": "Download"
        }
      ],
      "deploymentRequiredChanges": {
        "fulfillmentTypes": [
          "Download"
        ],
        "otherFulfillmentIntegration": {
          "fulfillerIds": [
            "digitalRiver"
          ]
        },
        "transferProduct": "2234567800",
        "upgradeProducts": [
          "3234567800"
        ],
        "downgradeProducts": [
          "4234567800"
        ]
      },
      "liveChanges": {
        "externalReferenceId": "sku-1234-5678-xyz",
        "catalogs": [
          {
            "catalogId": "123456000",
            "categories": [
              {
                "categoryId": "19000000"
              }
            ],
            "prices": [
              {
                "type": "listPrice",
                "prices": [
                  {}
                ]
              }
            ]
          }
        ]
      },
      "localizations": [
        {
          "locale": "en_US",
          "isDefault": true,
          "groups": [
            {
              "attributes": {
                "property1": "string",
                "property2": "string"
              }
            }
          ]
        }
      ]
    }
  ]
}

When implementing this payload structure in your requests, you must modify the example values according to your specific product data.

When creating a product, you need to provide the following objects in the payload:

Creating an individual or base product

You can create the base product and its variations using one call. When doing so, the request copies the base product attributes to each product variation. You can update the attributes for a product variation by including the modified attributes in the product variation request payload.

curl --location --request POST 'https://api.digitalriver.com/v1/products' \
--header 'Authorization: Basic <API_key>' \
...
--data-raw '{
    "liveChanges": {  },  
    "variations": [    
        {          
            "varyingAttributes": [        
                {          
                    "attributeName": "Color",          
                    "attributeValue": "Black"        
                },        
                {          
                    "attributeName": "fulfillmentType",          
                    "attributeValue": "Download"        
                }      
            ],      
            "liveChanges": {  }    
        },    
        {      
            "varyingAttributes": [        
                {          
                    "attributeName": "Color",          
                    "attributeValue": "Blue"        
                },        
                {          
                    "attributeName": "fulfillmentType",          
                    "attributeValue": "Download"        
                }      
            ],      
            "liveChanges": {  }    
        }  
    ] 
}'
curl --location --request POST 'https://api.digitalriver.com/v1/products/{ERID}' \
--header 'Authorization: Basic <API_key>' \
--header 'header x-erid-as-pid=true' \
...
--data-raw '{
    "productType": "BASE",  
    "companyId": "ace",  
    "liveChanges": 
        {  
            "externalReferenceId": "ERID_BASE"
        },  
    "variations": [    
        { 
            "productType": "VARIATION",      
            "companyId": "cast",      
            "varyingAttributes": [        
                {          
                    "attributeName": "Color",          
                    "attributeValue": "Black"        
                },        
                {          
                    "attributeName": "fulfillmentType",          
                    "attributeValue": "Download"        
                }      
            ],      
            "liveChanges": 
                { 
                    "externalReferenceId": "ERID_VARIATION_1"     
                }    
        },    
        {           
            "varyingAttributes": [        
                {          
                    "attributeName": "Color",          
                    "attributeValue": "Blue"        
                },        
                {          
                    "attributeName": "fulfillmentType",          
                    "attributeValue": "Download"        
                }      
            ],      
            "liveChanges":   
                { 
                    "externalReferenceId": "ERID_VARIATION_2"     
                }   
        }  
    ] 
}'
{    
    "taskId": "7aec3f23-3c12-479c-9d1f-4e34d498234b",    
    "requestType": "CREATE_PRODUCT",    
    "taskStatus": "PUBLISHED", 202 Accepted response"receivedTime": "2022-08-11T16:32:26.547Z" 
}

Creating a digital product

curl --location --request POST 'https://api.digitalriver.com/v1/products' \
--header 'Authorization: Basic <API_key>' \
...
--data-raw '{
    "companyId":"acme",
    "deploymentRequiredChanges": {
        "fulfillmentTypes": ["Download"]
    },
    "liveChanges": {
        "externalReferenceId": "external-reference-id-{{uuid}}",
        "catalogs" : [ {
            "catalogId" : "4783669800",
            "pricing" : [ {
                "type": "listPrice",
                "prices": [{
                    "currency": "USD",
                    "locale": "en_US",
                    "configuredPrice": 10
                }]
            }]
        }]
        
    },
    "localizations": [
    {
      "locale": "en_US",
      "isDefault": "true",
      "groups": [
        {
          "groupId": "11",
          "groupName": "Software",
          "attributes": {
            "name": "demo-name-{{uuid}}",
            "displayName": "demo-display-name-{{uuid}}",
            "sku": "demo-sku-{{uuid}}",
            "returnMethod": "LOD",
            "productReturnMethod": "ByAgentAndSelfService",
            "taxableUnspscCode": "43230000",
            "taxableProductCode": "4323.320_D",
            "privateStoreOnly": false,
            "isViewable": true,
            "isOrderable": true,
            "nonSolr": true,
            "shortDescription": "shortDescription-{{uuid}}",
            "longDescription": "longDescription-{{uuid}}",
            "keywords": "keywords-{{uuid}}",
            "emailAddlInfoText": "emailAddlInfoText-{{uuid}}",
            "emailAddlInfo": "emailAddlInfo-{{uuid}}",
            "confirmAddlInfo": "confirmAddlInfo-{{uuid}}",
            "eccn": "3A992",
            "manufactureCountry": "US"
          }
        },
        {
          "groupId": "5678",
          "groupName": "subscription",
          "attributes": {
            "autoRenewalDateBasis": "PurchaseDate",
            "combinedRenewalPeriod": 1,
            "duration": "TWO_MONTH",
            "freeExtension": "2_WEEK",
            "freeTrialPeriod": 45,
            "gracePeriod": "1_WEEK",
            "includeRenewalProductInUpgradeList": true,
            "isAutomatic": true,
            "isChangeProductAsRenewal": false,
            "isCombinedRenewal": true,
            "isDistinctScheduleTurnedOn": false,
            "isFreeTrial": true,
            "numOfDaysPriorExpirationForRenewal": 4,
            "numOfDaysPriorExpirationForRenewalFirst": 15,
            "numOfDaysPriorExpirationForRenewalPreFirst": 30,
            "paymentSchedule": "matchRecurrence",
            "postExpirationBillingAttemptIntervalInDays": 7,
            "suppressDRMInQuantityIncrease": false,
            "suppressDRMInRenewal": false,
            "suppressDRMInTrialConversion": false,
            "suppressDRMInUpgradeDowngrade": false,
            "suppressOFIInQuantityIncrease": false,
            "suppressOFIInRenewal": true,
            "suppressOFIInTrialConversion": true,
            "suppressOFIInUpgradeDowngrade": false,
            "timeIntervalForCCExpirationReminderNotifications": ["30","15","7"],
            "timeIntervalForManualReminderNotifications": ["90","30","15","7"],
            "timeIntervalForReminderNotifications": ["90","30","15","7"],
            "timeIntervalForReminderNotificationsPostExpiration": ["7","15","30","90"],
            "timeIntervalForTrialManualReminderNotifications": ["30","15","7","2"],
            "timeIntervalForTrialReminderNotifications": ["30","15","7","2"],
            "timeIntervalForUpgradeReminderNotificationsPostCreation": ["7","15","30","90"],
            "timeIntervalForUpgradeReminderNotificationsPostExpiration": ["97","37","22","14"],
            "timeIntervalForUpgradeReminderNotificationsPreExpiration": ["97","37","22","14"],
            "trialGracePeriod": "1_MONTH",
            "trialPostExpirationBillingAttemptIntervalInDays": 7
          }
        }
      ]
    }
  ]
}'
{
    "taskId": "f906e297-2275-4411-80d4-99b84c80ec69",
    "requestType": "CREATE_PRODUCT",
    "taskStatus": "PUBLISHED",
    "receivedTime": "2022-11-28T13:43:59.692Z"
}

Product history attributes

  • To Date: The beginning of the search date range.

  • From Date: The end of the search date range.

  • Change Type: A brief description of the change applied to the product. Some of the possible change type values are as follows:

    • Copied: This indicates a user copied the current product from another product. When a user copies an existing product, the Product History page shows the product ID and the name of the original product on which the new product is based.

    • Save or Save (Including Live Change): This indicates you or another user saved a change to the product. Save means you must deploy the product before shoppers can see the change in your store. Save (Live Change) indicates the system automatically applied the change to your store, and you do not need to deploy the product. You can click the plus (+) sign next to a save event to see additional information for that event. One or more of the following columns appear with every save event:

      • Locale: Indicates the locales where the change occurred.

      • Area: Indicates the general area in the editor where the change occurred. Example: If you change the name, the area lists "Storefront Settings" as the area where you can find the name.

      • Field: Displays the changed field. Example: You can use this field name and the content displayed in the Area column to locate the attribute in Global Commerce.

      • Old Value: Displays the old value. If a value is not present, no content appears in this column.

      • New Value: Displays the new value. Note: Save does not always mean the item changed. If you view the item and click the Save button without applying any changes, the system logs that change.

    • Status Changed to Deployed: The product's state has changed to Live. The changes now appear in your store.

    • Status Changed to Design: The product status changed to the Design state.

    • Status Changed to New: When you create a product, the product status changes to the New state.

    • Took Ownership: Indicates that a new user can edit a product. The name of the new user appears in the Modified By column. Ownership indicates the last person to edit the product. Another user cannot edit the product until they own it. Ownership prevents two users from editing the product at the same time.

    • Variation Added: A user added a variation to the product. The variation ID and the varying attributes also appear in the Change Type column.

    • Variation Deleted: A user deleted a product variation. The variation ID and varying attributes also appear in the Change Type column.

  • Product/Variation ID: Displays the product identifier or variation for the product.

    • If this is an individual product, only the product ID appears. If this is a base product, (Base) appears after the ID.

    • If this is a product variation, the name of the variation and the varying attributes (in parentheses) appear after the ID.

  • Modified By: The name of the person or application that last modified the product. API indicates the Admin API. For example, jdoe or API (ZDIOODJi***), where jdoe is the Global Commerce username and ZDIOODJi*** is the first eight digits of the API key for an Admin API request.

  • Modified On: The date and time when the product was last modified.

Adding or replacing a product's locale

You can localize your products so shoppers can see product information in their native language, date format, time format, and currency. You can also localize themes and styles to create a look and feel for a specific locale or region.

When you create or update a product, you can configure the product to use those locales and enter localized content for that product. When choosing locales, note the following:

  • When you enter text for the product in the default locale, the same text appears for all supported locales until you either "override" or "specify" the default in a specific locale folder. You can override the default locales by adding a product variation after creating a base product. You can also specify the default locales when creating a base product and its variations simultaneously. Changing the product's default locale does not affect your store's global default locale settings.

  • You can provide localized content for a product. A localizations object appears for each supported locale where you can enter the localized information. You do not have to enter localized content for all supported locales.

{
  "localizations": [
    {
      "locale": "en_US",
      "isDefault": true,
      "groups": [
        {
          "attributes": {
            "property1": "string",
            "property2": "string"
          }
        }
      ]
    }
  ]
}

: This object is required for or .

: This object is required for or .

: This object is required for or .

: This object is only required for a with .

The following request creates a with .

When creating an individual or base product, you do not need to provide a . The productId will be provided when you create the product. If you want to use an , provide the ERID in the payload. will associate the created product with the given ERID. After associating the ERID with the product, you can continue to use the ERID in the call request when .

You can add the variations object to the payload to . When you , it is an individual product.

To add a locale to a product, in the payload using the request.

The following example creates a new base product with a productId and product variations using a variationProductId. See the resource for a description of the attributes.

An ERID request requires the x-erid-as-pid=true header. The following example creates a new base product with an ERID and product variations using an variationERID. See for more information.

The request returns a task identifier (taskId) in the response.

Use the taskId in the response to . You can also verify the successful completion of the task by in . Note that there may be a delay before these changes appear in Global Commerce.

The following example creates a digital product. See for more information.

The request returns a task identifier (taskId) in the response.

Use the taskId in the response to . You can also verify the successful completion of the task by in . Note that there may be a delay before these chances appear in Global Commerce.

Revert: This indicates a user reverted the product to a previous version (and shows the previous version). For more about reverting a product, see .

A locale is a designator that combines the two-letter language code with the country code (such as en_US). For example, the en_GB language code represents the English language and the country of Great Britain.

The following example payload adds or replaces a product's locale. See for more information.

By default, shoppers can purchase products in any locale (within defined export controls). You should restrict the purchasing products to only supported areas. See for more information.

Ideally, you should localize a product when you first create it. However, you can localize a product after you create and deploy it to your store. If you turn off the fields and options on a locale in , the supported locale uses the default locale setting. See for more information.

ISO 639-1
ISO 3166-1 alpha-2
Limiting purchases to supported locales
Global Commerce
Overriding the default locale
verify the successful completion of the request
Global Commerce
checking the product history
verify the successful completion of the request
Global Commerce
checking the product history
Reverting changes to products
transfer an individual product to a base product
Global Commerce
create a product without the variations object
Global Commerce
updating the product
deploymentRequiredChanges
liveChanges
localization
variations
create a product without the variations object
add the locale data
base
individual products
base
individual products
base
individual products
base product
product variations
productId
ERID
products
Products
Products
Products
products
base product
product variations
asynchronous
asynchronous
create a base product with variations
create a base product with variations
POST /v1/products
POST /v1/products/{productid}