User guide
Learn how to use the Salesforce B2C LINK Cartridge.
Last updated
Learn how to use the Salesforce B2C LINK Cartridge.
Last updated
Product management consists of two aspects. First, the required product attributes must be configured for each product/SKU. Next, the products must be synced to Digital River. This section details those steps.
Before Digital River can process the SKUs, you must complete all the products with the necessary tax attributes and the Digital River custom attributes and send them to Digital River. This data is required for valid tax calculations. The absence of these attributes will result in errors when you run the SKU export job.
Using SKU groups, you do not need to populate the Tax Class and Digital River ECCN attributes. However, if you assign a SKU group to a Digital product, set the DR Digital Product attribute inforhe cartridge to function properly.
Note: If your Digital River account is configured for Landed Costs or Global Logistics, you must configure sku-groups
on applicable products. This cartridge code processes duty and appears to customers as a separate total price component without any additional site configuration. Work with your Digital River project manager to determine the appropriate sku-groups
for your products.
Configure the Tax Class information here:
Configure the Digital River custom attributes here:
The following new Digital River product attributes are now available in Salesforce B2C Link Cartridge:
Weight
Weight Unit
Managed Fulfillment
Manufacturer Id
Digital River SKU Group Id
Digital River Digital Product – Physical or Digital
Note: If you use Tax codes, the cartridge sets this attribute. Do not change this manually. However, if you are using SKU groups, you manually set this attribute to True/Yes for all Digital products. If the tax code is a digital code, ensure that the Tax Codes for Digital Products (drDigitalProductTaxCodes
) list is stored as the site preference to identify the digital products. After importing the metadata, the default tax codes are populated and can be used out of the box. No additional configuration is needed.
Digital River Item Breadcrumb
Digital River Tax Description Note: Digital River Item Breadcrumb and Digital River Tax Description are only needed if you use the item classification service at checkout time.
Verify the default list by selecting Sites, then select Your Site, select Site Preferences, then select Custom Preferences. Select Digital River in the Custom Site Preferences Groups and scroll down to the Tax Codes for Digital Products (drDigitalProductTaxCodes) preference.
After setting the Tax Class on the product, ensure the SKU creation job is run. Ensure the DR Digital Product field on the Digital River Attributes page (see example screen above) appears in the product’s attributes and is set to Yes for digital products.
After configuring the products, you need to sync the data to Digital River. The cartridge provides the following jobs to sync products. We recommend that you schedule these jobs to run regularly.
The DigitalRiver_DeltaSkuUpdate 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_DeltaSkuUpdateOnButton 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 DigitalRiver_DeltaSkuUpdate job does). A merchant can force a product sync using the "Request Delta SKU Update" option in the Merchant Tools / Digital River. See Digital River Merchant Tools available in Business Manager for more details.
The DigitalRiver_FullSkuUpdate job will iterate through all products and send SKU data for all products regardless of whether or not they have been updated to Digital River. We recommend you use this job for product data export.
The DigitalRiver_FullSkuUpdateOnButton job is provided for exclusive occasions when there is a necessity to grant a merchant representative the possibility to request an all products export regardless of whether or not they have been updated 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 DigitalRiver_FullSkuUpdate job does). A merchant can force a product sync using the "Request All SKU Update" option in the Merchant Tools / Digital River. See Digital River Merchant Tools available in Business Manager for more details.
The LINK Cartridge adds the drExportedDate
attribute to the product. The SKU update jobs update this attribute each time the jobs run.
The DigitalRiver_DynamicPricing job maximizes performance and allows chunked jobs to run in parallel. You can convert the price book to individual target currencies in parallel job steps. A merchant can have a job configuration that lets them specify a base price book and specify the country (the currency is derived from the price book). You can configure the target country price books for generating price books in Country and Currency pairs.
The DigitalRiver_DynamicPricing_ProductOptions job checks every currency in the Country and Currency pairs and adds the currency to the product options.
We added new Business Manager menu options under Merchant Tools.
Request SKUs update - Click the Request SKUs update link under Digital River. You'll see the following options:
Request delta SKUs update—Click this button to launch the Digital River SKUs update with the next run of DigitalRiver_DeltaSkuUpdateOnButton
job. The button will show the corresponding text indicating that you can launch the job or that the job is running.
Request all SKUs update—Click this button to launch the Digital River SKUs update with the next run of DigitalRiver_FullSkuUpdateOnButton
job.
Note: Clicking Request delta SKUs update or Request all SKUs update will not launch the job immediately, but it will raise a flag that must perform an update with the next run ofDigitalRiver_DeltaSkuUpdateOnButton
. If you haven't scheduled the job (in advance) in the Business Manager or (as an administrator) launched the job manually, clicking the button will have no impact at all.
Configure supported country and currency pairs - Click the Configure Supported Country Currency Pairs link under the Digital River module.
Digital River Service Tester—Click the Digital River Service Tester link under Digital River and then click Test Services to test Digital River service availability. Test Services will make calls to the indicated web services and evaluate the response codes.
Complete these steps to configure supported Country and Currency pairs. This module appears when the Dynamic Pricing feature is enabled:
Click the Configure Supported Country Currency Pairs link under the Digital River module. The Configure Supported Country Currency Pairs page appears.
Select the pair country choice from the Select Country drop-down. The list has the available countries for your pair.
Select the pair currency choice from the Select Currency drop-down. The list has the available currencies for your pair.
After making your pair choices, click Add Country Currency Pair button to create a new country and currency pair.
Click Remove to remove any existing pair that is no longer needed.
When a customer purchases a product, the Checkout page displays the shipping, payment, and order summary information.
The Order Summary on the Checkout page displays the subtotal, shipping fee, sales tax, total fees (if applicable), and amount total for the order.
If landed cost is enabled, the Order Summary will also include the duty and Importer of Record (IOR) tax if applicable to the order.
Note: When a Tax Identifier is applied causing a Tax Discount, the “Price includes VAT” message in the Order Summary is removed and replaced with the message “X.XX VAT exempted from order.” The former "Total Tax" text in the summary has been replaced by "Price includes VAT" underneath the total price.
The creation and management of regulatory fees are outside the scope of the LINK Cartridge. Work with your Digital River Project Manager to set up regulatory fees. Once the fees are configured, the LINK Cartridge displays any applicable fees in the Order Summary when the shopper goes to the Checkout page.
The total fees are added to the purchase order as an adjustment.
Fees will be stored in the Product Line Item objects in the following fields: Fee (drFeeAmount
), Fee Tax (drFeeTaxAmount
), and Fee Details (drFeeDetails
). The Fee Details field contains a JSON array that includes the details of all fees applied to the line item.
The customer can update or add a billing address, add their email address, and include a phone number. For US-based purchases, the customer can also state whether or not the purchase is tax-exempt.
To update the billing address, click Update Address and complete the fields. To add a new billing address, click Add New, complete the fields, and click Save.
For non-US countries, the customer can add one or more Global Tax Identifiers in the Billing section.
The shopper can add and remove tax identifiers and remove from the Checkout page by completing the form and clicking Apply.
The Digital River Salesforce B2C LINK Cartridge supports tax-exempt purchases on US storefronts. Authenticated US shoppers can add one or more tax certificates from their My Account. To add the tax certificate, navigate to the My Account page and click Add New under the Tax Certificates section, complete the fields, upload the new tax certificate, and click Save. See the detailed steps below for more information.
The Tax Certificates card appears on the My Account page only if it is enabled in Site Preferences.
The following list shows Digital River's Tax Certificate validation process once a shopper uploads a tax certificate.
Validation of the tax certificate is a manual process done by Digital River employees. It is not a real-time determination.
Pending that validation, the customer can place their order, and that order will be treated as if there was a valid certificate (that is, tax-free).
If the shopper’s certificate fails validation, their order will not be tax-free when that shopper places another order.
To add view existing certificates and add a new tax certificate from the My Account page:
Sign in to the storefront.
Go to My Account and scroll down to Tax Certificates.
Click View. The Tax Certificates page appears and displays all existing certificates.
To add a new certificate, click Add New.
Complete the fields and upload the certificate from the Add New Certificate page.
Click Save. To view taxes at the line-item level of an order. See Searching for an order.
A shopper can now retrieve their stored credit card when they go to checkout. Stored cards are authenticated using Strong Customer Authentication as required.
The Thank you page displays the receipt for the order and the order information. The system will then send a confirmation email to the customer's billing email. You can use the value for the Order Number to search for the order in Salesforce.
The Digital_River_Dropin payment processor provides the following order information in Business Manager:
To search for an order:
Return to Salesforce.
Click the Merchant Tools tab, and then click Orders under Ordering.
Enter the order number in the Order Number field and click Find.
In the search results, click the link for the order you want to view under Number. The Details for Order page appears.
To view taxes and fees at the line-item level, click the Shipment link, click the link for the product under Product ID, click the Attributes tab. Digital River attributes, including taxes, duties, and fees are shown in the Digital River section.
Select Merchant Tools, select Orders, choose an order, and click Payments.
Payment type (creditCard, PayPal, and so on) is mentioned.
Hyperlink to order on Digital River Dashboard.
Select Merchant Tools, select Orders, choose an order, and click Notes. The following occurs
A Digital River create order
response is being saved in order notes.
If the order is tax-inclusive and promotions have been applied, you may see a note added to the order reflecting the original promotions applied. See this section for more details
Digital River provides a range of order statuses to track order payments. Each order has a Digital River order status which reflects the current order position within the order 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 canceled
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 a direct impact on order processing and is provided for user reference.
To see Digital River order and fraud 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 by the Business Manager. We recommend that you schedule these jobs on a regular basis.
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. See the Order cancellation/fulfillment section for more details.
The DigitalRiver_updateCompletedOrders job queries all orders that were shipped or canceled 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 in the order management system, but only notify Digital River when the order or line item has been shipped or canceled. Once notified, Digital River will capture the payment or cancel the charge. 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 in SFCC for each respective state:
The DigitalRiver.js library replaces the Salesforce built-in payment method forms and also renders Digital River Drop-in payment integration to fulfill the payment process. The payment methods will display on the billing page. The payment methods that display depend on the configuration of your LINK cartridge key by Digital River. Visit our Drop-in payments documentation for an updated listing of payment methods available.
The customer can choose any available payment method. A registered customer can also save a credit card in their wallet. To do this, you need to set the Yes, please save this account and payment information for future purchases checkbox. The saved payment method will be visible on the My Account page.
When the customer clicks the Add New link in the My Account section, the Drop-in payments form with the specific configuration will appear. The form allows the customer to add a new payment method within Drop-in payments and create a new source.
The saved cards will be available in the list of saved cards on the billing page. You can choose any card from the list to pay for purchases in the future.
With dynamic pricing, the Storefront user interface has some feature-related functionality enhancements.
A Change your Shipping Country and Currency link is provided to select the desired shipping country and currency. The link is displayed in the Header, below the SFRA’s default locale selector. You can customize the location of this link on your storefront.
When you click on the Change your Shipping Country and Currency a modal appears to let the shopper change the shipping country and currency.
The modal displays the currencies available for specific countries and does not display unsupported pairs of countries and currencies. To select and save the specific pair, the shopper must click on the Save button. When the SFRA’s locale, shipping country, and currency is selected by the customer, the Storefront displays the selected locale language and prices displayed in the selected currency.
On the Product Detail Page (PDP) and Product Listing Page (PLP), the link to select the desired shipping country and currency is displayed in the Header, below the SFRA’s default locale selector. As before, you can customize the link location in your storefront. The PDP and PLP reflect the pricing based on the customer selection of shipping country & currency pair. Localized content is displayed as natively configured in the ecosystem.
On the Mini-Cart and Cart pages, the dynamic pricing persists and the converted pricing based on country and currency pair selection is still displayed in the price per each unit and the total price of the items.
On the Mini-Cart and Cart page, the shopper can make updates, and the dynamic pricing is still reflected. On the Cart page, the shopper can apply promotions (coupons) to the products from the cart, and the dynamic pricing is still reflected.
On the Checkout pages, the dynamic price persists throughout the checkout. The Order Summary section displays accurate dynamic pricing for every entry made for the checkout.
With global logistics (shipping options), the Storefront user interface has some feature-related functionality enhancements. Shipping options are gathered from the cross-border logistics partner after the shopper enters an address or updates their shipping address.
On the Storefront, in the Checkout – Shipping page, the shopper can view the relevant shipping options based on the shipping country as configured in Business Manager by the merchant. Shipping options are updated if the country or other address data is changed.
The customer can select a shipping option during checkout for their purchase and can change the shipping country during checkout, only if not using the dynamic pricing feature. The chosen shipping method is displayed through the checkout, order summary detail, and thank you pages.
The following examples show the information displayed based on the choice of shipping method for physical and digital products:
Native SFCC methods only
Digital River Shipping Quotes methods only
Native SFCC and DR Shipping Quotes methods (both)
If an order is placed using a Digital River shipping option, the DRDefaultShpXXX shipping method will be displayed. Otherwise, a native SFCC shipping method will be displayed. The following shows examples of how shipping options information is displayed:
Digital River shipping options only
Native SFCC shipping methods only
You can view details of the Digital River Shipping Option by navigating to the Shipment / Attributes tab:
You have the option to set specific price ranges for Digital River shipping options using the fixed pricing feature. When customers visit the Checkout-Shipping page on the storefront, they can view the relevant shipping options along with their fixed prices based on the currency.
Merchants set prices in Business Manager. Digital River Shipping Options gets prices from shipping-quotes API if no fixed price is set on the Checkout-Shipping page. If you have set up a Digital River Shipping Option with a fixed price and also added it to the DR Shipping Options - Free Shipping Option setting, then the configurations for the free shipping option will take priority over the fixed price setting.
The Digital River Salesforce B2C LINK Cartridge gives shoppers the ability to enter their banking details to obtain an offline refund. To use delayed payment methods such as wire transfers and Konbini, the shopper must provide specific banking details in order to receive the refund.
You can view and provide these details on the Order Detail page. If you have any refunds that require banking information, you can find them in the Pending Refunds section.
Perform the following steps to provide banking details:
After logging into the storefront, navigate to the Order Detail Page
Complete the form and click Submit. Allow some time for the refund to be processed.
If there are additional pending refunds, return to the Order Detail page and repeat these steps.
If you are using Digital River's Global Returns feature, you can allow your shoppers to access the global returns portal by enabling the Digital River Global Returns Portal Enabled site preference. After the order has been fulfilled, a link will appear on the shopper's Order Detail page. They can then use this link to initiate a return through the self-service portal.
Though order and line-level fulfillment or cancellation within SFCC or an order management system are not within the scope of the current cartridge, it’s necessary to notify Digital River each time such an event occurs. Once notified, Digital River will capture the payment or cancel the charge. You can do this in two ways:
If URL endpoints or third-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:
And use one of two functions that will create fulfillments at Digital River.
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.
Note: At this time, partial line item fulfillments and cancellations are not supported.
Note: When you use thedrOrderHelper.notifyOrderFulfillment
function for physical fulfillment, make sure that the tracking information is provided for the items before calling the function. By doing this, you ensure that Digital River receives the tracking details. OnProductLineItem
, populate the drTrackingNumber
, drTrackingCompany
, and drTrackingUrl
fields for shipped items.
Functions return the Result of the Digital River calls.
Refunds are handled through the Digital River Dashboard. From Salesforce, you can access the order record in the Digital River Dashboard by navigating to the Order record and clicking the Payment tab. A link to the Digital River Dashboard is provided in the Payment Method section.
Before you can refund an order, the order must be fulfilled and shipped.
Sign in to Salesforce.
Click Merchant Tools and then click Orders. The Orders page appears.
Click Find.
On the Orders page, click the order number link under the Number column. The Details for the order page appear.
Click the Attributes tab and scroll down to Digital River Attributes, where the webhook displays the retrieved information. The Digital River Order Status should be fulfilled.
Click the General tab, and then click the Shipping Status link. The Shipping Status should be Shipped. Note: If you changed the Digital River Order Status to Fulfilled or Shipping Status to Shipped, click Administration and then click Jobs. From the Jobs page, click DigitalRiver_fulfillOrders, and then click Run Jobs. This will send the fulfillment request to Digital River.
Click the Payment tab and click the Digital River logo under Payment Method to go to the Order details page for this order on the Digital River Dashboard. You may need to enter your user credentials to access the Order details page.
From the Order details page, scroll down to Refunds, click Create refund, complete the fields, and then click Review and submit.
Click Submit to complete the task.
This section focuses on setting up a workaround for a promotions issue involving tax identifiers resulting in a tax exemption.
A tax identifier applied during checkout can sometimes result in a tax exemption for the shopper. If this is the case, the gross price needs to be reduced by the tax value (known as a Tax Discount) toTax-inclusive synchronize the position price on both platforms (SFCC and Digital River).
The following approach is implemented to calculate this price on the Salesforce Commerce Cloud (SFCC) platform for the gross taxation sites (tax-inclusive sites). The formula is Net Price = Gross price - Tax
. When the tax changes, the Net price is recalculated, but the Gross price remains constant.
Sometimes this situation can lead to incorrect promotional prices calculations. This topic describes the approach used in the cartridge to fix this issue so that it correctly exempts tax when applicable while not changing the value of applied promotions.
To synchronize prices on both platforms, the following general approach is used:
The cartridge code handles the total tax discount and is stored as a non-basket item.
Whenever you must display the total to a customer, the tax discount is subtracted from the order total.
On the last step of the checkout, just before order creation, the following occurs:
Absolute discount values are calculated on the last step of the checkout, just before the order is created from the basket
All price adjustments that the SFCC Promotion Engine added are removed and replaced with one custom priceAdjustment
with type amountOff
on both the Order and Line Item level.
The line item level price adjustment, with the tax discount amount, is added to each line item.
These modifications are added to the cartridge to address this issue. They have been added to the cartridge to improve the OOTB (out-of-the-box) order creation and checkout experience.
The following specific code changes have been made to handle the price/tax calculation process:
Replaced the product line item price adjustments and shipment line item price adjustments with one amountOff
adjustment.
Created an amountOff
price adjustment and set the amount to the sum of all discounts applied to the item during checkout.
Removed all system price adjustments generated by the Promotion engine during the checkout (Applied promotion information is stored in the order notes).
Created a custom tax discount adjustment for each product line item and shipping line item, with the line item tax discount amount.
Added to the order notes descriptions of all removed discounts. The report includes the product ID, the promotion's name, and the promotion discount amount.
Kept the Tax Discount as a non-basket item during checkout. It is subtracted from the SFCC basket total to display the correct value to the customer and send it to the DropIn.
You will see the following visual differences between basket and order screens once promotions have been replaced and tax discounts added.
The Tax Discount has not been applied to the basket at this stage, and the SFCC system Line Item level promotions are in place. In this UI example, the sum of Subtotal and Shipping is greater than the Total; this is explained by the text <amount> VAT exempted from order beneath the Total.
At this stage, the Line item tax discount has been applied to the product causing a price decrease. Also, the line Shipping Discount appears. This SFRA standard reflects any price adjustment applied to the Shipping Line item.
In this UI example, the sum of Subtotal, Shipping, and Shipping Discount is equal to the Total, equals which is expected. To notify customers why the prices were changed, you add the text Prices reflect VAT exemption below the order Total.
If the order is tax-inclusive and promotions have been applied, you can see adjustments (as shown in the example) applied to the order line items and/or shipping. See this section for more details. When applicable, You can look at the General tab and see the order details, which display the amount of replaced promotions as an Adjustment - Product Promotions Additionally, the amount of the Tax Discount applied is as an Adjustment - Product Tax. Finally, the Shipping Tax Discount is displayed as Adjustment - Shipping Tax. The Total Tax Included value should be zero when a tax identifier is applied.
The following image shows how payment methods will appear on the billing page:
Under the Pending Refunds section, you see one or more links. The shopper may be required to enter banking details more than one time.
Click the first link in the list. The shopper is presented with the form to enter refund banking details.
Use the DigitalRiver_fulfillOrders job. This job is available out of the box and provides order-level fulfillment and cancellation. It will choose orders with Shipped or Cancelled statuses and provide respective fulfillment to Digital River. Line-level fulfillment and cancellation are not included in this job. We recommend that you schedule this job to run on a regular basis. In the Business Manager, change the Shipping Status to Shipped to fulfill the order.
To protect against chargebacks, you need to have transactions that contain the tracking company and a tracking number. You can provide the tracking company, tracking number, and tracking URL at the Order item level. Do this by first selecting an individual item-level shipment record from the order. For each line item in the shipment, provide the information for the tracking company, tracking number, and tracking URL fields. After providing that data, change the Shipping Status to Shipped to fulfill the order. Note that you should do this before changing the Shipping Status. Line items with the same tracking number are grouped and sent to Digital River as a single fulfillment. If the order contains multiple tracking numbers, multiple fulfillments are sent to Digital River. Any line items without a tracking number will be grouped as a single fulfillment.
To cancel the order, change the Order Status to Cancelled. The next time the DigitalRiver_fulfillOrders job runs, the fulfillment or cancellation request will be sent to Digital River.