Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ShopperOrders<ConfigParameters>

*# API Overview

The Shopper Orders API enables you to:

  • Create orders based on baskets prepared using the Shopper Baskets API.
  • Add a customer's payment instrument to an order.

You can choose to supply the full payment information or supply only a customer payment instrument ID and amount. If the customer payment instrument ID is set, all the other properties (except amount) are ignored and the payment data is resolved from the stored customer payment information.

Note:* The API doesn’t allow the storage of credit card numbers. The endpoint provides the storage of masked credit card numbers only.

To update the payment status, use the Orders API.

Caching is provided for the Shopper Products API. For details, see Server-Side Web-Tier Caching.

For additional guidance when working with baskets, see Build Baskets and Place Orders.

Authentication & Authorization

The client requesting the product information must have access to the Products resource. The Shopper Products API requires a shopper access token from the Shopper Login and API Access Service (SLAS).

For details on how to request a shopper access token from SLAS, see the guest user flows for public clients and private clients in the SLAS guides.

You must include the relevant scope(s) in the client ID used to generate the SLAS token. For details, see the Authorization Scopes Catalog.

Use Cases

Use Hooks

For details on working with hooks, see Extensibility with Hooks.*

Simple example:

  import { ShopperOrders } from "commerce-sdk-isomorphic";

  const clientConfig = {
    parameters: {
      clientId: "XXXXXX",
      organizationId: "XXXX",
      shortCode: "XXX",
      siteId: "XX"
    }
  };
  const shopperOrdersClient = new ShopperOrders(clientConfig);
API Version: 0.0.33
Last Updated:

Type parameters

Hierarchy

  • ShopperOrders

Index

Constructors

constructor

Properties

clientConfig

clientConfig: ClientConfig<ConfigParameters> & { baseUri: string }

Static Readonly defaultBaseUri

defaultBaseUri: "https://{shortCode}.api.commercecloud.salesforce.com/checkout/shopper-orders/v1" = currentBaseUri

Static Readonly paramKeys

paramKeys: { createOrder: ["organizationId", "siteId", "locale"]; createOrderRequired: ["organizationId", "siteId"]; createPaymentInstrumentForOrder: ["organizationId", "orderNo", "siteId", "locale"]; createPaymentInstrumentForOrderRequired: ["organizationId", "orderNo", "siteId"]; getOrder: ["orderNo", "organizationId", "siteId", "locale"]; getOrderRequired: ["orderNo", "organizationId", "siteId"]; getPaymentMethodsForOrder: ["organizationId", "orderNo", "siteId", "locale"]; getPaymentMethodsForOrderRequired: ["organizationId", "orderNo", "siteId"]; getTaxesFromOrder: ["organizationId", "orderNo", "siteId"]; getTaxesFromOrderRequired: ["organizationId", "orderNo", "siteId"]; guestOrderLookup: ["organizationId", "orderNo", "siteId", "locale"]; guestOrderLookupRequired: ["organizationId", "orderNo", "siteId"]; removePaymentInstrumentFromOrder: ["paymentInstrumentId", "organizationId", "orderNo", "siteId", "locale"]; removePaymentInstrumentFromOrderRequired: ["paymentInstrumentId", "organizationId", "orderNo", "siteId"]; updatePaymentInstrumentForOrder: ["paymentInstrumentId", "organizationId", "orderNo", "siteId", "locale"]; updatePaymentInstrumentForOrderRequired: ["paymentInstrumentId", "organizationId", "orderNo", "siteId"] } = {createOrder: ['organizationId','siteId','locale',],createOrderRequired: ['organizationId','siteId',],createPaymentInstrumentForOrder: ['organizationId','orderNo','siteId','locale',],createPaymentInstrumentForOrderRequired: ['organizationId','orderNo','siteId',],getOrder: ['orderNo','organizationId','siteId','locale',],getOrderRequired: ['orderNo','organizationId','siteId',],getPaymentMethodsForOrder: ['organizationId','orderNo','siteId','locale',],getPaymentMethodsForOrderRequired: ['organizationId','orderNo','siteId',],getTaxesFromOrder: ['organizationId','orderNo','siteId',],getTaxesFromOrderRequired: ['organizationId','orderNo','siteId',],guestOrderLookup: ['organizationId','orderNo','siteId','locale',],guestOrderLookupRequired: ['organizationId','orderNo','siteId',],removePaymentInstrumentFromOrder: ['paymentInstrumentId','organizationId','orderNo','siteId','locale',],removePaymentInstrumentFromOrderRequired: ['paymentInstrumentId','organizationId','orderNo','siteId',],updatePaymentInstrumentForOrder: ['paymentInstrumentId','organizationId','orderNo','siteId','locale',],updatePaymentInstrumentForOrderRequired: ['paymentInstrumentId','organizationId','orderNo','siteId',],} as const

Type declaration

  • createOrder: ["organizationId", "siteId", "locale"]
  • createOrderRequired: ["organizationId", "siteId"]
  • createPaymentInstrumentForOrder: ["organizationId", "orderNo", "siteId", "locale"]
  • createPaymentInstrumentForOrderRequired: ["organizationId", "orderNo", "siteId"]
  • getOrder: ["orderNo", "organizationId", "siteId", "locale"]
  • getOrderRequired: ["orderNo", "organizationId", "siteId"]
  • getPaymentMethodsForOrder: ["organizationId", "orderNo", "siteId", "locale"]
  • getPaymentMethodsForOrderRequired: ["organizationId", "orderNo", "siteId"]
  • getTaxesFromOrder: ["organizationId", "orderNo", "siteId"]
  • getTaxesFromOrderRequired: ["organizationId", "orderNo", "siteId"]
  • guestOrderLookup: ["organizationId", "orderNo", "siteId", "locale"]
  • guestOrderLookupRequired: ["organizationId", "orderNo", "siteId"]
  • removePaymentInstrumentFromOrder: ["paymentInstrumentId", "organizationId", "orderNo", "siteId", "locale"]
  • removePaymentInstrumentFromOrderRequired: ["paymentInstrumentId", "organizationId", "orderNo", "siteId"]
  • updatePaymentInstrumentForOrder: ["paymentInstrumentId", "organizationId", "orderNo", "siteId", "locale"]
  • updatePaymentInstrumentForOrderRequired: ["paymentInstrumentId", "organizationId", "orderNo", "siteId"]

Methods

createOrder

  • Submits an order based on a prepared basket. The only considered value from the request body is basketId.

    If you would like to get a raw Response object use the other createOrder function.

    Parameters

    Returns Promise<Order>

    A promise of type Order.

  • Submits an order based on a prepared basket. The only considered value from the request body is basketId.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Order>

    A promise of type Response if rawResponse is true, a promise of type Order otherwise.

createPaymentInstrumentForOrder

  • Adds a payment instrument to an order.

    Details:

    The payment instrument is added with the provided details. The payment method must be applicable for the order see GET /baskets/{basketId}/payment-methods, if the payment method is 'CREDIT_CARD' a paymentCard must be specified in the request.

    If you would like to get a raw Response object use the other createPaymentInstrumentForOrder function.

    Parameters

    Returns Promise<Order>

    A promise of type Order.

  • Adds a payment instrument to an order.

    Details:

    The payment instrument is added with the provided details. The payment method must be applicable for the order see GET /baskets/{basketId}/payment-methods, if the payment method is 'CREDIT_CARD' a paymentCard must be specified in the request.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Order>

    A promise of type Response if rawResponse is true, a promise of type Order otherwise.

getOrder

  • Gets information for an order.

    If you would like to get a raw Response object use the other getOrder function.

    Parameters

    Returns Promise<Order>

    A promise of type Order.

  • Gets information for an order.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Order>

    A promise of type Response if rawResponse is true, a promise of type Order otherwise.

getPaymentMethodsForOrder

  • Gets the applicable payment methods for an existing order considering the open payment amount only.

    If you would like to get a raw Response object use the other getPaymentMethodsForOrder function.

    Parameters

    Returns Promise<PaymentMethodResult>

    A promise of type PaymentMethodResult.

  • Gets the applicable payment methods for an existing order considering the open payment amount only.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : PaymentMethodResult>

    A promise of type Response if rawResponse is true, a promise of type PaymentMethodResult otherwise.

getTaxesFromOrder

  • This method gives you the external taxation data of the order transferred from the basket during order creation. This endpoint can be called only if external taxation was used. See POST /baskets for more information.

    If you would like to get a raw Response object use the other getTaxesFromOrder function.

    Parameters

    Returns Promise<Taxes>

    A promise of type Taxes.

  • This method gives you the external taxation data of the order transferred from the basket during order creation. This endpoint can be called only if external taxation was used. See POST /baskets for more information.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Taxes>

    A promise of type Response if rawResponse is true, a promise of type Taxes otherwise.

guestOrderLookup

  • Use this endpoint to lookup a guest order.

    Important*: This endpoint uses the ShopperTokenTsob security scheme. Always check the Security section of the endpoint documentation, which is hidden by default.

    The API uses the orderViewCode generated during the order creation and the email of the order customer to lookup a guest order. If email is not provided on the order, the field can be left blank in the lookup request. Note*: In the no email on order scenario, the custom implementation must include an additional verification of an order attribute. For example, a postal code or mobile number.

    This API can also be used for looking up an order for a registered customer. In addition to the verification steps used for guest order lookup, the API also verifies that the customer ID of the order matches with the customer ID supplied in the ShopperTokenTsob.

    If you would like to get a raw Response object use the other guestOrderLookup function.

    Parameters

    Returns Promise<Order>

    A promise of type Order.

  • Use this endpoint to lookup a guest order.

    Important*: This endpoint uses the ShopperTokenTsob security scheme. Always check the Security section of the endpoint documentation, which is hidden by default.

    The API uses the orderViewCode generated during the order creation and the email of the order customer to lookup a guest order. If email is not provided on the order, the field can be left blank in the lookup request. Note*: In the no email on order scenario, the custom implementation must include an additional verification of an order attribute. For example, a postal code or mobile number.

    This API can also be used for looking up an order for a registered customer. In addition to the verification steps used for guest order lookup, the API also verifies that the customer ID of the order matches with the customer ID supplied in the ShopperTokenTsob.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Order>

    A promise of type Response if rawResponse is true, a promise of type Order otherwise.

removePaymentInstrumentFromOrder

  • Removes a payment instrument of an order.

    If you would like to get a raw Response object use the other removePaymentInstrumentFromOrder function.

    Parameters

    Returns Promise<Order>

    A promise of type Order.

  • Removes a payment instrument of an order.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Order>

    A promise of type Response if rawResponse is true, a promise of type Order otherwise.

updatePaymentInstrumentForOrder

  • Updates a payment instrument of an order.

    Details:

    The payment instrument is updated with the provided details. The payment method must be applicable for the order see GET /baskets/{basketId}/payment-methods, if the payment method is 'CREDIT_CARD' a paymentCard must be specified in the request.

    If you would like to get a raw Response object use the other updatePaymentInstrumentForOrder function.

    Parameters

    Returns Promise<Order>

    A promise of type Order.

  • Updates a payment instrument of an order.

    Details:

    The payment instrument is updated with the provided details. The payment method must be applicable for the order see GET /baskets/{basketId}/payment-methods, if the payment method is 'CREDIT_CARD' a paymentCard must be specified in the request.

    Type parameters

    • T: boolean

    Parameters

    Returns Promise<T extends true ? Response : Order>

    A promise of type Response if rawResponse is true, a promise of type Order otherwise.

Object literals

Static Readonly apiPaths

apiPaths: object

createOrder

createOrder: string = "/organizations/{organizationId}/orders"

createPaymentInstrumentForOrder

createPaymentInstrumentForOrder: string = "/organizations/{organizationId}/orders/{orderNo}/payment-instruments"

getOrder

getOrder: string = "/organizations/{organizationId}/orders/{orderNo}"

getPaymentMethodsForOrder

getPaymentMethodsForOrder: string = "/organizations/{organizationId}/orders/{orderNo}/payment-methods"

getTaxesFromOrder

getTaxesFromOrder: string = "/organizations/{organizationId}/orders/{orderNo}/taxes"

guestOrderLookup

guestOrderLookup: string = "/organizations/{organizationId}/orders/{orderNo}/lookup"

removePaymentInstrumentFromOrder

removePaymentInstrumentFromOrder: string = "/organizations/{organizationId}/orders/{orderNo}/payment-instruments/{paymentInstrumentId}"

updatePaymentInstrumentForOrder

updatePaymentInstrumentForOrder: string = "/organizations/{organizationId}/orders/{orderNo}/payment-instruments/{paymentInstrumentId}"

Generated using TypeDoc