Loading
Управление заказами Salesforce
Платежи Salesforce для обменов посредством RMA

Платежи Salesforce для обменов посредством RMA

Если обмен требует дополнительных средств, используйте Salesforce Payments для беспрепятственного начисления и принятия этих средств.

Требуемые версии

Просмотр поддерживаемых версий.

Salesforce Payments может работать с Exchanges RMA посредством B2C, B2B или D2C Commerce.

Поскольку шлюзы оплаты Salesforce не отображаются автоматически в качестве доступных интеграций, существует дополнительный шаг для работы Exchanges RMA в магазинах B2B и D2C с Salesforce Payments.

Настройте альтернативного поставщика на странице платежей. Этот альтернативный поставщик должен быть шлюзом кредитной карты, созданным Salesforce Payments. Чтобы настроить StoreIntegratedService для платежей Salesforce, запустите этот сценарий. Используйте собственное имя веб-магазина и имя торговой организации для шлюза оплаты.

Пример
Пример
// 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;
}
 
Загрузка
Salesforce Help | Article