---
schema_version: "1"
id: c1bcca2efe218d811a5b30c3608c7cd9e397eecc82374349422c48db01850f30
title: Salesforce Payments for Order on Behalf Of
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/commerce/264-0-0/om_salesforce_payments_oobo.md
canonical_url: https://help.salesforce.com/s/articleView?id=commerce.om_salesforce_payments_oobo.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 5573bb7043daa5ca5350b3bb32900f529610e2aaf73dee51405ad6b47a2661cb
description: Place orders on behalf of customers seamlessly with Salesforce Payments.
products:
  - Commerce
  - Salesforce Order Management
release: "264"
---
# Salesforce Payments for Order on Behalf Of

Place orders on behalf of customers seamlessly with Salesforce Payments.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=commerce.om_editions.htm&amp;language=en_US" target="_blank">View supported editions</a>.</td></tr></tbody></table>

Salesforce Payments can work with both Order Entry and OOBO, using B2C, B2B, or D2C Commerce.

Because Salesforce Payment Gateways don’t automatically appear as available integrations, there’s an extra step for Order on Behalf Of B2B and D2C stores to work with Salesforce Payments.

Set up an alternative provider on the Payments page. This alternative provider must be a credit card gateway that’s created by Salesforce Payments. To configure the StoreIntegratedService for Salesforce payments, run this script. Use your own web store name and merchant account name for the payment gateway.

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-om_order_management-264-0-0-production-enus/4c4844e3-a194-4a65-95b7-17291a6dbefa/images/icon_example.png)

Example

```
// Script to add a connection between the webstore and the payment gateway for stores using
// Salesforce Payments (SFP) as the payment gateway for SFP does not show in the the Payment 
// Alternate Integration.

String merchantAccountName = 'DemoTest';
String webStoreName = 'B2B Store';

// obtain webstoreid
List<WebStore> webstores = [SELECT Id, Name FROM WebStore WHERE Name = :webStoreName];
System.debug('Webstores: ' + webstores);
if(webstores.isEmpty()){
    System.debug('Error obtaining webstore with name ' + webStoreName);
}
String webStoreId = webstores[0].Id;
System.debug('WebStoreId: ' + webStoreId);

// obtain merchant account 
List<MerchAccPaymentMethodSet> merchAccPaymentMethodSet = [SELECT Id, MerchantAccountId, DeveloperName FROM MerchAccPaymentMethodSet WHERE MerchantAccount.Name = :merchantAccountName];
System.debug('Details: ' + merchAccPaymentMethodSet);
if(merchAccPaymentMethodSet.isEmpty()){
    System.debug('Error obtaining MerchAccPaymentMethodSet with name ' + merchantAccountName);
}
String merchantAccountId = merchAccPaymentMethodSet[0].MerchantAccountId;
System.debug('merchantAccountId: ' + merchantAccountId);

// obtain payment gateway id from the merchant account
List<PaymentGateway> paymentGateways = [SELECT Id, PaymentGatewayName FROM PaymentGateway WHERE MerchantAccountId = :merchantAccountId];
System.debug('paymentGateways: ' + paymentGateways);
if(paymentGateways.isEmpty()){
    System.debug('Error obtaining payment gateway with merchant account id ' + merchantAccountId);
}
String paymentGatewayId = paymentGateways[0].Id;
System.debug('paymentGatewayId: ' + paymentGatewayId);

// If a StoreIntegratedService already exists for Payment on the WebStore then update the Integration field with the paymentGatewayId
List<StoreIntegratedService> storeServices = [SELECT Id FROM StoreIntegratedService WHERE StoreId = :webStoreId AND ServiceProviderType ='Payment' ];
System.debug('storeServices: ' + storeServices);
if(storeServices.isEmpty()){
    StoreIntegratedService storeService = new StoreIntegratedService(
        StoreId = webStoreId,
        Integration = paymentGatewayId,
        ServiceProviderType ='Payment');
    insert storeService;
} else {
    StoreIntegratedService existingStoreService = storeServices[0];
    existingStoreService.Integration = paymentGatewayId;
    update existingStoreService;
}
```

#### See Also

- [Salesforce Payments](https://help.salesforce.com/s/articleView?id=commerce.payments_product_intro.htm&type=5&language=en_US)
- [Video: Order on Behalf Of Setup](https://www.youtube.com/playlist?list=PLFNbZmUNjID6fmv7KZypuUcS32g2Tseu2)
- [Order on Behalf Of Setup](https://help.salesforce.com/s/articleView?id=commerce.om_order_on_behalf_of_setup_oobo.htm&release=264.0.0&type=5 "After you’ve installed and configured either an Order Management or B2B Commerce org or B2C Commerce instance, there are some Order on Behalf Of (OOBO) specific steps to take. Many of these tasks are the same whether you’re using Order Entry or OOBO. However, there are a few steps that are specific to the individual products. Complete the steps for your product and organization.")