User guide

Learn how to use the Salesforce B2C LINK Cartridge.

Roles and responsibilities

SKU management

You must run the SKU export job when you add new products to the catalog.

Before Digital River can process the SKUs, you must complete all of the products with Digital River custom attributes and send them to Digital River. This data is necessary for valid tax calculation. The absence of these attributes will result in errors when you run the SKU export job.

Digital River needs the optional HS Code property for duty calculation.

Note: This cartridge code processes duty and appears to customers as a separate total price component without any additional site configuration. To avoid duty inclusion, leave HS Code attributes blank or contact your Digital River Representative.

The cartridge provides the next jobs to deliver SKU data to Digital River.

  • The DigitalRiver_updateDigitalRiverSKUs job will iterate through all products but send SKU data only for those products that haven’t been sent to Digital River or were modified afterward. We recommend you use this job for product data export.

  • The DigitalRiver_OptionalDigitalRiverSKUsUpdate is provided for exclusive occasions when there is a necessity to grant a merchant representative the possibility to request products export to Digital River without providing authority to manage jobs. Schedule this job to check periodically whether a merchant representative requested a SKU. If such was requested, an update will be made (same as the updateDigitalRiverSKUs job does). To learn how a merchant representative can request an update, see Business manager.

Order state management

Digital River provides a range of order statuses to track order payment. Each order has a Digital River order status which reflects the current order position within the payment cycle:

  • accepted—order has passed checks and is ready for fulfillment

  • in_review—order is on fraud review and can’t be fulfilled yet

  • pending_payment—order has delayed payment and can’t be fulfilled yet

  • blocked—order is blocked and must be cancelled

  • fulfilled—order is fulfilled and is waiting for payment capture

  • complete—order is fulfilled and has been paid

Digital River order status determines further order processing. Also, each order has a Digital River fraud status which shows the state of the order's fraud check:

  • passed—order has passed the fraud check

  • review_opened—order is on fraud review

  • blocked—order has not passed fraud check

Digital River fraud status doesn’t have direct impact on order processing and is provided for user reference.

To see Digital River order states, select Merchant Tools, then select Ordering, and click Orders. Select the order number and choose the Attributes tab.

Initial Digital River status values are set after order placement and they define order processing scenarios.

Digital River order status

Order processing scenario

accepted

order will be processed

pending_payment

in_review

order will be put on hold until status changes to "accepted" or "blocked"

blocked

order will be cancelled

After the order is placed, the status update is handled through jobs that can be run or scheduled in the Business Manager.

  • The /DigitalRiver_fulfillOrders/ job processes all orders that were shipped or cancelled but still have Digital River order status of “accepted.” For each order, fulfillment is sent to Digital River. After all orders are processed their statuses are updated through a separate Digital River call.

  • The DigitalRiver_updateCompletedOrders job queries all orders that were shipped or cancelled but still have a Digital River order status of “accepted” and updates their status through a Digital River call. Unlike “DigitalRiver_fulfillOrders” this job doesn’t send fulfillments to Digital River and is applicable only in combination with other integrations when drOrderHelper.notifyOrderFulfillment or drOrderHelper.notifyOrderCancellation functions are injected into scripts responsible for shipping management/order cancellation.

Important: neither DigitalRiver_fulfillOrders nor DigitalRiver_updateCompletedOrders cancel orders or update shipping, but only notify Digital River about the latest orders status. You can manage order shipping or cancellation in Business Manager or by other integrations, but it’s not within the scope of this cartridge functionality.

  • The DigitalRiver_updatePendingOrders job updates the state for all orders that have pending statuses (in_review, pending_payment, fulfilled) that wait for resolution on the DigitalRiver side.

In the following table, you can see all the statuses that you can expect to receive from Digital River and their impact on orders for each respective state:

Order cancellation/fulfillment

Though order fulfillment or cancellation is not within the scope of the current cartridge, it’s necessary to notify Digital River each time such an operation takes place. You can do this in two ways:

  • A DigitalRiver_fulfillOrders job. This job is available out of the box. It will choose orders with Shipped or Cancelled statuses and provide respective fulfillment to Digital River.

  • If URL endpoints or 3rd party integration perform order fulfillment/cancellation, you can inject the drOrderHelper module in the code to send fulfillments to Digital River. To do so, import the module:

var drOrderHelper = require('*/cartridge/scripts/digitalRiver/drOrderHelper');

And use one of two functions that will create fulfillments at Digital River.

drOrderHelper

drOrderHelper.notifyOrderFulfillment(order, items);
drOrderHelper.notifyOrderCancellation(order, items);

Functions accept two arguments:

  • order—The updated order number or actual order object.

  • items—Array of order product line items or order line items IDs that should be fulfilled. This parameter is provided for partial fulfillment/cancellation.

Functions return the Result of the Digital River call.