E-Commerce · Beta
Salesforce B2C Commerce
API integration
Ship E-Commerce features without building the integration. Full Salesforce B2C Commerce API access via Proxy and 140+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Salesforce B2C Commerce
Common scenarios for SaaS companies building Salesforce B2C Commerce integrations for their customers.
Sync enterprise catalogs from PIM to storefront
Let PIM and product content platforms push master products, variations, variation groups, and category trees directly into Salesforce B2C Commerce so merchandisers don't have to manually re-enter data. Truto handles the OAuth, pagination, and SFCC-specific product hierarchy quirks.
Power OMS and 3PL order fulfillment loops
Enable order management and shipping platforms to ingest new SFCC orders and write back granular shipping, payment, export, and OMS status events. This gives shoppers accurate real-time order tracking on the storefront without custom SFCC development.
Drive personalized promotions from marketing and loyalty tools
Allow marketing automation, CDP, and loyalty platforms to create customer groups, assign members in bulk, and generate exclusive promotions and coupon codes inside SFCC. End users can launch segment-based discounts without leaving your product.
Resolve support tickets with native SFCC actions
Give helpdesk and CX platforms the ability to fetch order details, update shipping addresses on unfulfilled orders, and issue gift certificates as goodwill credit. Agents stay in your UI while the writes happen natively inside SFCC.
Automate merchandising with rule-based categorization
Let merchandising and analytics SaaS tools create and execute category rules in SFCC, so products automatically land in the right categories based on logic instead of manual assignment. Perfect for apps that optimize site navigation and product discovery.
What You Can Build
Ship these features with Truto + Salesforce B2C Commerce
Concrete product features your team can ship faster by leveraging Truto’s Salesforce B2C Commerce integration instead of building from scratch.
Two-way order and fulfillment sync
Pull orders with list and get endpoints and push back shipping, payment, OMS, export, and confirmation status updates in bulk to keep SFCC and your system aligned.
Master product and variation publishing
Create and update products, product variations, variation groups, variation attributes, and option values to model complex apparel-style catalogs programmatically.
Dynamic category tree management
Build, update, and delete catalog categories, assign or exclude products, and run category rule executions to auto-categorize inventory based on attribute conditions.
Segment-driven promotions and coupons
Create promotions, discount rules, compatibility settings, campaigns, and coupon codes, then bulk-assign customers to customer groups so discounts apply automatically at checkout.
Gift certificate issuance from any app
Issue, update, or revoke SFCC gift certificates directly from helpdesk, loyalty, or retention tools to resolve tickets or reward customers without manual backend work.
Site preference and configuration management
Read and update site preferences, global preference groups, and custom preferences so your app can configure its own behavior per storefront without requiring merchant engineering time.
SuperAI
Salesforce B2C Commerce AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_salesforce_b_2_c_commerce_campaign_promotions
List promotions assigned to a campaign. Required: campaign_id, siteId. Scope: sfcc promotions or sfcc promotions rw.
get_single_salesforce_b_2_c_commerce_campaign_promotion_by_id
Get a promotion campaign assignment. Required: id, campaign_id, siteId. Scope: sfcc promotions or sfcc promotions rw.
create_a_salesforce_b_2_c_commerce_campaign_promotion
Create or replace a promotion campaign assignment. Required: campaign_id, promotion_id, siteId, schedule. Scope: sfcc promotions rw.
update_a_salesforce_b_2_c_commerce_campaign_promotion_by_id
Update a promotion campaign assignment. Required: id, campaign_id, siteId. Scope: sfcc promotions rw.
delete_a_salesforce_b_2_c_commerce_campaign_promotion_by_id
Unassign a promotion from a campaign. Required: id, campaign_id, siteId. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_campaigns
## Supported Query Attributes The query attribute specifies a complex query that you can use to narrow down the search. A subset of these attributes can optionally be used to sort the returned results. Required: siteId. Scope: sfcc promotions or sfcc promotions rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_single_salesforce_b_2_c_commerce_campaign_by_id
Get campaign information. Required: id, siteId. Scope: sfcc promotions or sfcc promotions rw.
create_a_salesforce_b_2_c_commerce_campaign
Create a campaign using the information provided. Required: campaign_id, siteId. Scope: sfcc promotions rw.
delete_a_salesforce_b_2_c_commerce_campaign_by_id
Deletes a campaign with a specified ID. Required: id, siteId. Scope: sfcc promotions rw.
update_a_salesforce_b_2_c_commerce_campaign_by_id
Update a campaign with the specified information. Required: id, siteId. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_catalog_categories
Get all categories with no filtering. Required: catalog_id. Scope: sfcc catalogs or sfcc catalogs rw. Truto follows offset/limit through every page.
get_single_salesforce_b_2_c_commerce_catalog_category_by_id
By default, the server returns the first level of sub-categories, but you can specify another level by setting the levels parameter. Using a large value for levels can cause performance issues with large and deep category trees. Required: id, catalog_id. Scope: sfcc catalogs or sfcc catalogs rw.
create_a_salesforce_b_2_c_commerce_catalog_category
Create a catalog category using the information provided. Required: catalog_id, category_id, id. Scope: sfcc catalogs rw.
delete_a_salesforce_b_2_c_commerce_catalog_category_by_id
Delete a category by catalog ID and category ID. Required: id, catalog_id. Scope: sfcc catalogs rw.
update_a_salesforce_b_2_c_commerce_catalog_category_by_id
Update a catalog category using the information provided. Required: id, catalog_id. Scope: sfcc catalogs rw.
salesforce_b_2_c_commerce_catalog_categories_search
Search for catalog categories in the scope of a catalog. By default, the server returns the first level of subcategories, but you can specify another level by setting the levels parameter. Subcategories are sorted by category position, then by categoryId. Required: catalog_id. Scope: sfcc catalogs or sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_catalogs
Get the list of catalog IDs with no filtering. Scope: sfcc catalogs or sfcc catalogs rw. Truto follows offset/limit through every page.
get_single_salesforce_b_2_c_commerce_catalog_by_id
Gets the catalog with the specified information. Required: id. Scope: sfcc catalogs or sfcc catalogs rw.
update_a_salesforce_b_2_c_commerce_catalog_by_id
Update the catalog with the specified information. Required: id. Scope: sfcc catalogs rw.
salesforce_b_2_c_commerce_catalogs_search
Search for catalogs. Scope: sfcc catalogs or sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_categories
Search for catalog categories. By default, the server returns the first level of subcategories, but you can specify another level by setting the levels parameter. Subcategories are sorted by category position, then by categoryId. Scope: sfcc catalogs or sfcc catalogs rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
list_all_categorization_attribute_definitions
Get the list of allowed attributes, values, and operators for creating rule-based categorization conditions. Scope: sfcc products or sfcc products rw.
list_all_salesforce_b_2_c_commerce_category_excluded_products
Get the list of excluded products for a given catalog and category. Required: catalog_id, category_id. Scope: sfcc catalogs or sfcc catalogs rw.
create_a_salesforce_b_2_c_commerce_category_excluded_product
Add the product to the excluded product list for a given catalog and category. After a product is added as an excluded product for the category, the categorization process no longer categorizes that product for that category. Required: catalog_id, category_id, data. Scope: sfcc catalogs rw.
salesforce_b_2_c_commerce_category_excluded_products_bulk_delete
Delete products from the excluded products list for a catalog category. Required: catalog_id, category_id, data. Scope: sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_category_product_assignments
The query attribute specifies a complex query that can be used to narrow down the search. Required: catalog_id, category_id. Scope: sfcc catalogs or sfcc catalogs rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_category_product_assignment_by_id
Retrieve a category product assignment. For example, if we have products A, B, C at positions 1, 2, 7.5, and we delete the assignment for product B, the result is products A, B, C at positions 1, null, 7.5. Required: id, catalog_id, category_id. Scope: sfcc catalogs or sfcc catalogs rw.
create_a_salesforce_b_2_c_commerce_category_product_assignment
Create a category product assignment using the information provided. Because the assigned position n is a normalized target position, we verify that the product is assigned to a position that maintains the position order. Required: catalog_id, category_id, product_id, catalogId, categoryId, productId. Scope: sfcc catalogs rw.
delete_category_product_assignment_by_id
Remove a category product assignment. For example, if we have products A, B, C at positions 1, 2, 7.5, and we delete the assignment for product B, the result is products A, B, C at positions 1, null, 7.5. Required: id, catalog_id, category_id. Scope: sfcc catalogs rw.
update_category_product_assignment_by_id
Update the category product assignment with the specified information, such as position. Because the assigned position n is a normalized target position, we verify that the product is assigned to a position that maintains position order. Required: id, catalog_id, category_id. Scope: sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_category_rule_conditions
Get the conditions for a given rule, catalog and category. Required: catalog_id, category_id, rule_id. Scope: sfcc catalogs or sfcc catalogs rw.
salesforce_b_2_c_commerce_category_rule_conditions_bulk_delete
Deletes all conditions for a given rule, catalog, and category. Required: catalog_id, category_id, rule_id. Scope: sfcc catalogs rw.
get_category_rule_condition_by_id
Get a condition by ID. Required: id, catalog_id, category_id, rule_id. Scope: sfcc catalogs or sfcc catalogs rw.
update_a_salesforce_b_2_c_commerce_category_rule_condition_by_id
Create or update a condition. Required: id, catalog_id, category_id, rule_id, attributeKey, attributeValue, operator. Scope: sfcc catalogs rw.
delete_a_salesforce_b_2_c_commerce_category_rule_condition_by_id
Delete a condition. Required: id, catalog_id, category_id, rule_id. Scope: sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_category_rule_executions
Get the status of the latest categorization job, which could be evaluation or execution. For evaluation, the matched count and a paginated list of product IDs are returned. For execution, the counts of the products that are assigned or unassigned are returned. Required: catalog_id, category_id. Scope: sfcc catalogs or sfcc catalogs rw.
create_a_salesforce_b_2_c_commerce_category_rule_execution
Submit a job to evaluate or execute the rules. The evaluation returns a set of matching products based on the rules and conditions. The execution categorizes the products based on the evaluated results. Required: catalog_id, category_id, evaluation. Scope: sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_category_rules
Get all rules for the given catalog and category. Required: catalog_id, category_id. Scope: sfcc catalogs or sfcc catalogs rw.
create_a_salesforce_b_2_c_commerce_category_rule
Create all rules and conditions within the catalog and category. This deletes any existing rules and conditions for that catalog and category combination, and recreates them based on the new request. Required: catalog_id, category_id. Scope: sfcc catalogs rw.
salesforce_b_2_c_commerce_category_rules_bulk_delete
Delete all rules and conditions for the given catalog and category. Required: catalog_id, category_id. Scope: sfcc catalogs rw.
get_single_salesforce_b_2_c_commerce_category_rule_by_id
Get a rule by ID. Required: id, catalog_id, category_id. Scope: sfcc catalogs or sfcc catalogs rw.
update_a_salesforce_b_2_c_commerce_category_rule_by_id
Create or update a rule. Required: id, catalog_id, category_id, enabled, exclusion. Scope: sfcc catalogs rw.
delete_a_salesforce_b_2_c_commerce_category_rule_by_id
Delete a rule. Required: id, catalog_id, category_id. Scope: sfcc catalogs rw.
list_all_salesforce_b_2_c_commerce_coupon_codes
Get the coupon codes for the given coupon. If the user role does not have the ViewCouponCodes permission, then the coupon codes returned are masked. Required: coupon_id, siteId. Scope: sfcc promotions or sfcc promotions rw. Truto follows offset/limit through every page.
salesforce_b_2_c_commerce_coupon_codes_bulk_update
Add or delete (modify) multiple codes to and from the supplied coupon. Required: coupon_id, siteId, codes. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_coupon_redemptions
The Coupon Redemption Search document contains a search object that allows filtering on various attributes. Required: siteId. Scope: sfcc promotions or sfcc promotions rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
create_a_salesforce_b_2_c_commerce_coupon_redemption
The coupon code must be redeemable. --- Note: Coupon redemptions are evaluated during checkout. A large number of coupon redemptions negatively impacts order creation performance and scale. 1. Avoid importing unnecessary coupon redemptions. 2. Required: siteId, code, orderNo. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_coupons
The Coupon Search document contains a search object that allows filtering on various attributes. Required: siteId. Scope: sfcc promotions or sfcc promotions rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_single_salesforce_b_2_c_commerce_coupon_by_id
If the user role does not have the ViewCouponCodes permission, then the returned coupon codes are masked. Required: id, siteId. Scope: sfcc promotions or sfcc promotions rw.
create_a_salesforce_b_2_c_commerce_coupon
Create a coupon using the information provided. If a coupon with the specified identifier already exists, the existing coupon is replaced. Required: coupon_id, siteId, couponId, enabled, type. Scope: sfcc promotions rw.
delete_a_salesforce_b_2_c_commerce_coupon_by_id
Delete a coupon with a specified ID. Required: id, siteId. Scope: sfcc promotions rw.
update_a_salesforce_b_2_c_commerce_coupon_by_id
Update a coupon with the specified information. Required: id, siteId. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_customer_addresses
Returns a list of all customer addresses in pages. The default page size is 10 customer addresses. Required: customer_list_id, customer_no. Scope: sfcc customerlists or sfcc customerlists rw. Truto follows offset/limit through every page.
create_a_salesforce_b_2_c_commerce_customer_address
Creates a new customer address with the given address information. Required: customer_list_id, customer_no, addressId, countryCode, lastName. Scope: sfcc customerlists rw.
get_single_salesforce_b_2_c_commerce_customer_address_by_id
Action that returns a single customer address from a customer list. Required: id, customer_list_id, customer_no. Scope: sfcc customerlists or sfcc customerlists rw.
delete_a_salesforce_b_2_c_commerce_customer_address_by_id
Deletes a customer address. Required: id, customer_list_id, customer_no. Scope: sfcc customerlists rw.
update_a_salesforce_b_2_c_commerce_customer_address_by_id
Updates an address of a customer with the given address information. Required: id, customer_list_id, customer_no. Scope: sfcc customerlists rw.
salesforce_b_2_c_commerce_customer_group_members_bulk_update
Add multiple customers to a (static) customer group. This endpoint assigns the specified customers to the customer group identified by the given ID. Only static customer groups support this operation. Required: customer_group_id, siteId, customerNos. Scope: sfcc customergroups or sfcc customergroups rw.
salesforce_b_2_c_commerce_customer_group_members_bulk_delete
Remove multiple customers from a (static) customer group. This endpoint unassigns the specified customers from the customer group identified by the given ID. Only static customer groups support this operation. Required: customer_group_id, siteId, customerNos. Scope: sfcc customergroups or sfcc customergroups rw.
salesforce_b_2_c_commerce_customer_groups_search
Search for customer groups in a given site ID. The query attribute specifies a complex query that can be used to narrow down the search. Required: siteId. Scope: sfcc customergroups or sfcc customergroups rw.
list_all_salesforce_b_2_c_commerce_customer_groups
Returns a list of all customer groups for a given site in pages. The default page size is 25 customer groups. Required: siteId. Scope: sfcc customergroups or sfcc customergroups rw. Truto follows offset/limit through every page.
list_all_salesforce_b_2_c_commerce_customers
Search for customers in a customer list. The query attribute specifies a complex query that can be used to narrow down the search. Required: customer_list_id. Scope: sfcc customerlists or sfcc customerlists rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
salesforce_b_2_c_commerce_customers_bulk_create
Create a new customer. The customer is created using the specified credentials and customer information. This action verifies: - Login acceptance criteria and uniqueness. - Mandatory customer properties. If the action fails to create the customer, it returns a 400 fault with an appropriate message. Required: customer_list_id, customerNo, lastName. Scope: sfcc customerlists rw.
get_single_salesforce_b_2_c_commerce_customer_by_id
Action to get customer information. Required: id, customer_list_id. Scope: sfcc customerlists or sfcc customerlists rw.
create_a_salesforce_b_2_c_commerce_customer
Create a new customer. The customer is created using the specified customer number, credentials, and customer information. This action verifies: - Login acceptance criteria and uniqueness. - Mandatory customer properties. If the action fails to create the customer, it returns a 400 fault with an appropriate message. Required: customer_list_id, customer_no, customerNo, lastName. Scope: sfcc customerlists rw.
delete_a_salesforce_b_2_c_commerce_customer_by_id
Deletes the customer, including all related information like the customer addresses. Required: id, customer_list_id. Scope: sfcc customerlists rw.
update_a_salesforce_b_2_c_commerce_customer_by_id
Updates the customer with the specified information. The customer number can be updated, but results in a CustomerNumberAlreadyInUseException if there is another customer with the same customer number. Required: id, customer_list_id. Scope: sfcc customerlists rw.
create_a_salesforce_b_2_c_commerce_gift_certificate
If an existing identifier is specified, the gift certificate with that unique identifier is deleted and a new one is created. Required: siteId. Scope: sfcc gift-certificates rw.
list_all_salesforce_b_2_c_commerce_gift_certificates
Use the following searchable query attributes to narrow the search: | Attribute | Type | Sortable | |-----------|--------|----------| | merchantId | String | yes | | maskedGiftCertificateCode | String | no | | orderNo | String | yes | | senderName | String | yes | | recipientName | String | yes | | recipientEmail | Str. Required: siteId. Scope: sfcc gift-certificates or sfcc gift-certificates rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_single_salesforce_b_2_c_commerce_gift_certificate_by_id
Retrieve gift certificate information for a specified merchant ID. Required: id, siteId. Scope: sfcc gift-certificates or sfcc gift-certificates rw.
delete_a_salesforce_b_2_c_commerce_gift_certificate_by_id
Delete gift certificate information for a specified merchant ID. Required: id, siteId. Scope: sfcc gift-certificates rw.
update_a_salesforce_b_2_c_commerce_gift_certificate_by_id
Update gift certificate information for a specified merchant ID. Required: id, siteId. Scope: sfcc gift-certificates rw.
list_all_salesforce_b_2_c_commerce_global_custom_preferences
Retrieves the Global Custom Preferences. Scope: sfcc preferences or sfcc preferences rw. Truto follows offset/limit through every page.
list_all_salesforce_b_2_c_commerce_global_preference_groups
For the specified instance, read the custom preferences in the preference group at the global (organization) level. Specify 'current' to retrieve the preferences for the instance on which this call is being made. The system will recognize its type. Required: group_id, instance_type. Scope: sfcc preferences or sfcc preferences rw.
salesforce_b_2_c_commerce_global_preference_groups_bulk_update
For the specified instance, update one or more custom preferences in the preference group at the global (organization) level. Note: If instance type sandbox is used, the preference values of development instance type will be returned as fallback. Required: group_id, instance_type. Scope: sfcc preferences rw.
order_confirmation_statuses_bulk_update
Update order confirmation status. Required: order_no, siteId, status. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_export_statuses_bulk_update
Update order export status. If on-order inventory is enabled for the associated inventory list, then setting the export status to EXPORTED finalizes on-order inventory transactions for this order by changing their type from on-order to final. Required: order_no, siteId, status. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_external_statuses_bulk_update
Update order external status. Required: order_no, siteId, status. Scope: sfcc orders rw.
create_a_salesforce_b_2_c_commerce_order_oms_status_event
Accepts a single fulfillment or adjustment event from an external OMS and forwards it to the configured order event subscribers. Exactly one of fulfillmentEvent or adjustment must be present. The event is processed asynchronously; the endpoint returns 202 Accepted once the event is validated and queued. Required: order_no, siteId. Scope: sfcc orders rw.
update_order_payment_instrument_by_id
Update the payment instrument of an order. Required: id, order_no, siteId. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_payment_statuses_bulk_update
Update order payment status. Required: order_no, siteId, status. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_payment_transactions_bulk_update
Update the transaction of an order payment instrument. Required: order_no, payment_instrument_id, siteId. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_shipping_addresses_bulk_update
Create or replace a shipping address. Required: order_no, shipment_id, siteId. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_shipping_statuses_bulk_update
Update order shipping status. Required: order_no, siteId, status. Scope: sfcc orders rw.
salesforce_b_2_c_commerce_order_statuses_bulk_update
Orders in status NEW, COMPLETED or CANCELLED can't be changed to status CREATED or FAILED. Changing the status causes different actions on inventory, coupons, wishlists, and the order itself: - Fail Order: Release inventory and remove coupon redemptions. Required: order_no, siteId, status. Scope: sfcc orders rw.
list_all_salesforce_b_2_c_commerce_orders
Return order details that match the query filters. By default, calling this API with no filter returns the 100 most recently created orders. To return up to 200 orders, use the limit parameter. To return a page of results past the first page, use a resource offset. Required: siteId. Scope: sfcc orders or sfcc orders rw. Truto follows offset/limit through every page.
get_single_salesforce_b_2_c_commerce_order_by_id
Return order details for the specified order number. Required: id, siteId. Scope: sfcc orders or sfcc orders rw.
update_a_salesforce_b_2_c_commerce_order_by_id
Update an order. Required: id, siteId. Scope: sfcc orders rw.
get_single_salesforce_b_2_c_commerce_product_option_value_by_id
Read a local product option value for a specified product. Required: id, product_id, option_id. Scope: sfcc products or sfcc products rw.
create_a_salesforce_b_2_c_commerce_product_option_value
Create a local product option value using the information provided. Required: product_id, option_id, value_id, id, value. Scope: sfcc products rw.
delete_a_salesforce_b_2_c_commerce_product_option_value_by_id
Delete a local product option value by ID. Required: id, product_id, option_id. Scope: sfcc products rw.
update_a_salesforce_b_2_c_commerce_product_option_value_by_id
Update a local product option value using the information provided. Required: id, product_id, option_id. Scope: sfcc products rw.
list_all_salesforce_b_2_c_commerce_product_options
Read local and shared product options for a specified product. Required: product_id. Scope: sfcc products or sfcc products rw. Truto follows offset/limit through every page.
get_single_salesforce_b_2_c_commerce_product_option_by_id
Read a local or shared product option for a specified product. Required: id, product_id. Scope: sfcc products or sfcc products rw.
create_a_salesforce_b_2_c_commerce_product_option
Creates a local product option using the information provided or binds a shared product option to the product. Required: product_id, product_option_id, id. Scope: sfcc products rw.
delete_a_salesforce_b_2_c_commerce_product_option_by_id
Delete a local product option or unbind a shared product option from the product. Required: id, product_id. Scope: sfcc products rw.
update_a_salesforce_b_2_c_commerce_product_option_by_id
Update a local product option with the information provided. Required: id, product_id. Scope: sfcc products rw.
list_all_salesforce_b_2_c_commerce_product_variants
Search product variations for master product or variation group product. The query attribute specifies a complex query that can be used to narrow down the search. Required: product_id. Scope: sfcc products or sfcc products rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_product_variation_attribute_value_by_id
Get product variation attribute information. Required: id, product_id, attribute_id. Scope: sfcc products or sfcc products rw.
create_product_variation_attribute_value
Create a product variation attribute value. Required: product_id, attribute_id, value_id, value. Scope: sfcc products rw.
delete_product_variation_attribute_value_by_id
Delete the variation attribute value of a variation attribute bound to a product. Required: id, product_id, attribute_id. Scope: sfcc products rw.
update_product_variation_attribute_value_by_id
Update the variation attribute value of a variation attribute of a product. Required: id, product_id, attribute_id. Scope: sfcc products rw.
list_all_salesforce_b_2_c_commerce_product_variation_attributes
Read variation attributes of a product of type variant, variation master, or variation group. Required: product_id. Scope: sfcc products or sfcc products rw. Truto follows offset/limit through every page.
get_product_variation_attribute_by_id
Get variation attribute information only for master product. Required: id, product_id. Scope: sfcc products or sfcc products rw.
create_a_salesforce_b_2_c_commerce_product_variation_attribute
Create a variation attribute using the information provided. Required: product_id, variation_attribute_id, attributeDefinitionId. Scope: sfcc products rw.
delete_product_variation_attribute_by_id
Delete the variation attribute by ID. Required: id, product_id. Scope: sfcc products rw.
update_product_variation_attribute_by_id
Update the variation attribute with the specified information. name slicing. Required: id, product_id. Scope: sfcc products rw.
list_all_salesforce_b_2_c_commerce_product_variation_groups
List all variation groups of a product. Required: master_product_id. Scope: sfcc products or sfcc products rw. Truto follows offset/limit through every page.
get_product_variation_group_by_id
Read a variation group for a product. Required: id, master_product_id. Scope: sfcc products or sfcc products rw.
create_a_salesforce_b_2_c_commerce_product_variation_group
Assign a variation group for a product. If the variation group product does not initially exist, one is created using the body passed in. Required: master_product_id, variation_group_id, productId. Scope: sfcc products rw.
delete_a_salesforce_b_2_c_commerce_product_variation_group_by_id
Unassign a variation group product from a product. The variation group product is not deleted: it remains as a typical product after unassign. Required: id, master_product_id. Scope: sfcc products rw.
update_a_salesforce_b_2_c_commerce_product_variation_group_by_id
Update a variation group for a product master. Required: id, master_product_id. Scope: sfcc products rw.
list_all_salesforce_b_2_c_commerce_product_variations
List all variations of a master product. Required: master_product_id. Scope: sfcc products or sfcc products rw. Truto follows offset/limit through every page.
get_single_salesforce_b_2_c_commerce_product_variation_by_id
Get details of a specific variation. Required: id, master_product_id. Scope: sfcc products or sfcc products rw.
create_a_salesforce_b_2_c_commerce_product_variation
Assign a variation for a product master. If the variation product does not initially exist, one is created using the body that is passed. Required: master_product_id, variation_id, productId. Scope: sfcc products rw.
delete_a_salesforce_b_2_c_commerce_product_variation_by_id
Unassign a variation product from a product. The variation product is not deleted: it remains as a typical product after unassign. Required: id, master_product_id. Scope: sfcc products rw.
update_a_salesforce_b_2_c_commerce_product_variation_by_id
Update a variation for a product. Required: id, master_product_id. Scope: sfcc products rw.
get_single_salesforce_b_2_c_commerce_product_by_id
Retrieve detailed information about a specific product. Required: id. Scope: sfcc products or sfcc products rw.
create_a_salesforce_b_2_c_commerce_product
Create a product using the information provided. If a product with the same unique identifier exists, it is overwritten. Required: product_id, id. Scope: sfcc products rw.
delete_a_salesforce_b_2_c_commerce_product_by_id
Permanently remove a product by ID. Required: id. Scope: sfcc products rw.
update_a_salesforce_b_2_c_commerce_product_by_id
Update a product using the information provided. Fields that can be updated: name, pageDescription, longDescription, pageTitle, pageKeywords, brand, ean, upc, manufactureSku, manufactureName, searchable, unit, searchable, onlineFlag, defaultVariantId. Required: id. Scope: sfcc products rw.
list_all_salesforce_b_2_c_commerce_products
Search for products. The query attribute specifies a complex query that can be used to narrow down the search. Attributes are grouped into different buckets. Scope: sfcc products or sfcc products rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
list_all_salesforce_b_2_c_commerce_promotion_assignments
The promotion campaign assignment search document contains a search object that allows filtering on various attributes. The query attribute specifies a complex query that can be used to narrow down the search. Attributes are grouped into different buckets. Required: siteId. Scope: sfcc promotions or sfcc promotions rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
list_all_salesforce_b_2_c_commerce_promotion_compatibilities
Returns the stacking / exclusivity settings that control how this promotion combines with other promotions. Required: promotion_id, siteId. Scope: sfcc promotions or sfcc promotions rw.
create_a_salesforce_b_2_c_commerce_promotion_compatibility
Replaces the stacking / exclusivity settings for the promotion. Required: promotion_id, siteId. Scope: sfcc promotions rw.
salesforce_b_2_c_commerce_promotion_compatibilities_bulk_update
Partially updates the stacking / exclusivity settings for the promotion. Each field (exclusivity, exclusivityGroup, combinablePromotions, mutuallyExclusivePromotions) that is omitted is left unchanged. Required: promotion_id, siteId. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_promotion_discount_rules
Returns the discount rule, product qualifiers, and payment-method qualifiers for the promotion. Required: promotion_id, siteId. Scope: sfcc promotions or sfcc promotions rw.
create_a_salesforce_b_2_c_commerce_promotion_discount_rule
Replaces the entire discount rule, product qualifiers, and payment-method qualifiers for the promotion. Required: promotion_id, siteId. Scope: sfcc promotions rw.
salesforce_b_2_c_commerce_promotion_discount_rules_bulk_update
Updates the discount rule, product qualifiers, or payment-method qualifiers for the promotion. Required: promotion_id, siteId. Scope: sfcc promotions rw.
salesforce_b_2_c_commerce_promotion_discount_rules_bulk_delete
Removes the discount rule and its qualifiers from the promotion, resetting it to a shell with no discount configuration. Required: promotion_id, siteId. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_promotions
The SearchRequest document contains a search object that allows you to filter using various attributes. Required: siteId. Scope: sfcc promotions or sfcc promotions rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_single_salesforce_b_2_c_commerce_promotion_by_id
Retrieve promotion information. Required: id, siteId. Scope: sfcc promotions or sfcc promotions rw.
create_a_salesforce_b_2_c_commerce_promotion
Create a promotion using the information provided. Required: promotion_id, siteId. Scope: sfcc promotions rw.
delete_a_salesforce_b_2_c_commerce_promotion_by_id
Delete a promotion for a specified ID. Required: id, siteId. Scope: sfcc promotions rw.
update_a_salesforce_b_2_c_commerce_promotion_by_id
Update a promotion with the specified information. Required: id, siteId. Scope: sfcc promotions rw.
list_all_salesforce_b_2_c_commerce_site_custom_preferences
Retrieves the Custom Preferences for a specified siteId. Required: siteId. Scope: sfcc preferences or sfcc preferences rw. Truto follows offset/limit through every page.
list_all_salesforce_b_2_c_commerce_site_preference_groups
For the specified site and instance, read the custom preferences in the preference group. Specify 'current' to retrieve the preferences for the instance on which this call is being made. The system will recognize its type. Required: group_id, instance_type, siteId. Scope: sfcc preferences or sfcc preferences rw.
salesforce_b_2_c_commerce_site_preference_groups_bulk_update
For the specified site and instance, update one or more custom preferences in the preference group. Preferences of type password cannot be set to "" since it is a reserved value. Required: group_id, instance_type, siteId. Scope: sfcc preferences rw.
list_all_salesforce_b_2_c_commerce_site_preferences
Search preferences across sites in the specified preference group and instance. The query attribute specifies a complex query that can be used to narrow down the search. Required: group_id, instance_type. Scope: sfcc preferences or sfcc preferences rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
get_single_salesforce_b_2_c_commerce_site_preference_by_id
Read a specific preference value identified by its ID within the given preference group and instance type. Returns the preference value for all sites. Required: id, group_id, instance_type. Scope: sfcc preferences or sfcc preferences rw.
update_a_salesforce_b_2_c_commerce_site_preference_by_id
Update a specific preference value identified by its ID within the given preference group and instance type. The siteValues map specifies the new values per site. Required: id, group_id, instance_type. Scope: sfcc preferences rw.
get_single_salesforce_b_2_c_commerce_source_code_group_by_id
Retrieve source code group information. Required: id, siteId. Scope: sfcc source-codes or sfcc source-codes rw.
create_a_salesforce_b_2_c_commerce_source_code_group
Create a source code group using the information provided. Required: source_code_group_id, siteId, id. Scope: sfcc source-codes rw.
delete_a_salesforce_b_2_c_commerce_source_code_group_by_id
Delete the specified source code group ID. Required: id, siteId. Scope: sfcc source-codes rw.
update_a_salesforce_b_2_c_commerce_source_code_group_by_id
Update the source code group with the specified information. Required: id, siteId. Scope: sfcc source-codes rw.
list_all_salesforce_b_2_c_commerce_source_code_groups
The following query attributes can be used to narrow the search: | Attribute | Type | |-----------|--------| | id| String | | description | String | | sourceCode | String | | startTime | DateTime | | endTime | DateTime | | creationDate | DateTime | | enabled | Boolean | | active | Boolean | The sourceCode and active fi. Required: siteId. Scope: sfcc source-codes or sfcc source-codes rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
list_all_salesforce_b_2_c_commerce_unassigned_products
Search for products that are not assigned to a specific category within a catalog. This endpoint helps identify products that exist in the catalog but are not categorized under the specified category. The query attribute specifies a complex query that can be used to narrow down the search. Required: catalogId, categoryId. Scope: sfcc products or sfcc products rw. Search endpoint: Truto sends query, sorts, limit and offset in the request body; query is optional here (Truto sends matchAllQuery when it is missing). Truto follows offset/total through every page.
Why Truto
Why use Truto’s MCP server for Salesforce B2C Commerce
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 950+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Start with Salesforce B2C Commerce in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.
Link your customer’s Salesforce B2C Commerce account
Use Truto’s frontend SDK to connect your customer’s Salesforce B2C Commerce account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Salesforce B2C Commerce
Truto’s Proxy API is a 1-to-1 mapping of the Salesforce B2C Commerce API. You call us, we call Salesforce B2C Commerce, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Salesforce B2C Commerce’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Salesforce B2C Commerce on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication to Salesforce B2C Commerce work through Truto?
Truto handles the OAuth 2.0 client credentials flow against SFCC's Account Manager and manages token refresh, scope negotiation, and the per-instance OCAPI/SCAPI base URL configuration. Your end users connect their SFCC instance once and Truto maintains the session.
Which SFCC APIs are covered by these tools?
The tools map primarily to SFCC's Data API (OCAPI/SCAPI Data) covering catalogs, products, product variations, categories, promotions, campaigns, coupons, customers, customer groups, orders, gift certificates, source codes, and site/global preferences. Both read and write operations are supported where SFCC exposes them.
Can we handle bulk operations efficiently?
Yes. SFCC-native bulk endpoints are exposed for customer group members, coupon codes, promotion compatibilities, discount rules, category rule conditions, and multiple order status types (shipping, payment, export, confirmation, OMS, external), so you don't have to loop per-record for high-volume updates.
How fresh is the order and inventory data?
Data is fetched on-demand via live API calls, so reads reflect current SFCC state. For near real-time order ingestion, you can poll list_all_salesforce_b_2_c_commerce_orders on a schedule; Truto normalizes pagination so you can reliably sync incrementally.
Do you support SFCC custom attributes and site preferences?
Yes. Custom attributes on products, customers, and orders are preserved in responses, and you can read and write site_custom_preferences, global_custom_preferences, and preference groups to configure per-storefront behavior programmatically.
Can a single integration handle multiple storefronts or sites?
SFCC is multi-site by design, and the tools operate per site/catalog scope as defined in the connected instance. Your end users can connect multiple sites, and Truto will route requests to the correct storefront context on each call.
Salesforce B2C Commerce
Get Salesforce B2C Commerce integrated into your app
Our team understands what it takes to make a Salesforce B2C Commerce integration successful. A short, crisp 30 minute call with folks who understand the problem.