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
  • How to associate a customer with a private store
  • Step 1. Search for a private store
  • Step 2. Get an access token
  • Step 3. Authorize a customer to access the private store

Was this helpful?

  1. Shopper APIs
  2. Shopper basics
  3. Common use cases

Private store workflow

Understand the private store workflow.

PreviousApplying store creditNextGuest checkout

Last updated 4 months ago

Was this helpful?

The private store workflow is critical for managing exclusive shopping experiences for designated customer groups. It leverages specific access rules and robust authentication mechanisms to ensure only authorized customers can access and purchase within their dedicated private stores. This guide provides a comprehensive overview of the steps required to associate customers with their private stores, ensuring a seamless and secure shopping experience tailored to their needs.

The private store workflow streamlines associating customers with their designated private stores based on specific access rules. Only authenticated customers with the appropriate credentials can browse and purchase in their private store environment. Following the steps outlined in this topic, you can efficiently manage customer associations and maintain secure access to private store content.

This topic describes the private store workflow. This scenario assumes:

  • The site uses a public API key.

  • The site has multiple private stores, the private store ID and target market ID of which are unknown. If you know this information, the search step is optional.

  • You set up a single access rule to authorize customers based on their email domain.

  • Customer authentication is required to browse within a purchase plan. Authentication is a prerequisite if isAuthenticationRequiredToBrowse is set to true.

See and for more information.

How to associate a customer with a private store

To successfully associate a customer with a private store, you must follow a series of steps, including the search for an appropriate private store and the necessary authentication processes. This guide will walk you through the entire workflow, ensuring you can efficiently associate a customer with a private store based on predefined access rules and customer credentials.

  1. Optional. .

  2. .

  3. .

  4. Optional. .

  5. Optional. .

Step 1. Search for a private store

curl --location -g --request GET ' https://api.digitalriver.com/v1/shoppers/me/purchase-plan/search? emailDomain=university.edu&apiKey=apiKey' \--header 'Authorization: bearer {{access_token}}' \ 
...
{
   "purchaseplans": {
      "purchaseplan": {
         "id": "11858700",
         "isauthenticationrequiredtobrowse": "true",
         "purchaseplanname": "Student Discounts",
         "branddisplayname": "",
         "brandlogoimage": "",
         "targetmarketid": "35100",
         "targetmarketname": "Students"
      },
      "totalresults": "1"
   }
}
{
   "purchaseplans": {
      "purchaseplan": {
         "id": "11858700",
         "isauthenticationrequiredtobrowse": "true",
         "purchaseplanname": "Student Discounts",
         "branddisplayname": "",
         "brandlogoimage": "",
         "targetmarketid": "35100",
         "targetmarketname": "Students"
      },
      "totalresults": "1"
   }
}

You will receive a 200 OK response with details about the matching private store(s).

Step 2. Get an access token

curl --location -g --request GET ' https://api.digitalriver.com/v1/oauth20/token? apiKey=yourAPIkey&format=json' \--header 'Authorization: bearer {{access_token}}' \ 
...
{
   "token": {
      "access_token": "96c44081d5ee98a7545ede88de966f0f371112b939b503219575572b5054be5b52b...",
      "token_type": "bearer",
      "expires_in": "86397",
      "refresh_token": "96c44081d5ee98a7545ede88de966f0f371112b939b503219575572b5054be5b8f5..."
   }
}
{
   "token": {
      "access_token": "96c44081d5ee98a7545ede88de966f0f371112b939b503219575572b5054be5b52b...",
      "token_type": "bearer",
      "expires_in": "86397",
      "refresh_token": "96c44081d5ee98a7545ede88de966f0f371112b939b503219575572b5054be5b8f5..."
   }
}

You will receive a 200 OK response with the access token details in JSON format:

Step 3. Authorize a customer to access the private store

curl --location -g --request POST ' https://api.digitalriver.com/v1/shoppers/me/purchase-plan/authorize' \
--header 'Authorization: bearer {{access_token}}' \ 
...
--data-raw '{
   "purchasePlanAuthorize": {
      "id": "11858700",
      "targetMarketId": "35100",
      "emailDomain": "university.edu"
   }
 }
 {
    "purchasePlanAuthorize": {
      "id": "11858700",
      "targetMarketId": "35100",
      "emailDomain": "university.edu"
    }
 }'
HTTP/1.1 204 No Content

Subsequent calls in the workflow could include:

When associating a customer with a private store, the first step is to search for the appropriate private store that matches the customer's email domain. This process involves sending a request to find available private stores based on predefined access rules. The search uses OR logic, allowing you to locate private stores using any valid configured access rule, such as email domain or IP address. This flexibility ensures you can efficiently find and match the correct private store for the customer.

To search for a private store, send a GET /v1/purchase-plan/search request to the Commerce API. Use the customer's email domain (emailDomain) or any other valid configured access rule to find matching private stores. The search uses OR logic for flexibility. See for more information. Below is an example using cURL:

In this step, you will obtain an access token to authenticate API requests when associating a customer with a private store. The access token provides the necessary permissions to securely interact with the Commerce API. Follow the instructions to send a request using your public API key and retrieve the access token in JSON format.

You must send a request using your public API key to obtain an access token. This token allows you to authenticate API requests securely. Include the apiKey and format=json query parameters with your request. Below is an example using cURL:

In this step, you will authorize customers to access a private store, allowing them to browse and purchase products with special permissions or discounts. You can authorize a customer by sending a request with specific criteria in the payload, such as purchase plan ID and target market ID. A successful request will result in a 204 No Content response confirming that the customer can access the private store.

The resource will reflect discounted prices and any associated offers if the private store provides an overall product discount. The resource will also reflect discounted prices. In the event of an unsuccessful request, an error message will indicate

Successfully authorizing a customer to access a private store is a significant achievement. To do so, send a request with the required criteria in the payload, such as purchase plan ID, target market ID, and optionally an email domain. Upon success, the response will be a 204 No Content, marking the customer's entry into the private store.

Optional. .

Optional. .

Redirect a customer to the Digital River-hosted Checkout page
Add a product to a cart
Managing private stores
Add a product to a cart
Redirect a customer to the Checkout page
Search for a private store
Get an access token
Authorize a customer to access the private store
Cart
Products
GET /v1/purchase-plan/search
Query parameters
GET /v1/oauth/token
GET /v1/oauth/token
POST /v1/shoppers/me/purchase-plan/authorize
POST /v1/shoppers/me/purchase-plan/authorize
Private stores