---
title: Salesforce B2C Commerce API Integration on Truto
slug: salesforcecommercecloud
category: E-Commerce
canonical: "https://truto.one/integrations/detail/salesforcecommercecloud/"
---

# Salesforce B2C Commerce API Integration on Truto



**Category:** E-Commerce  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 147 tools for Salesforce B2C Commerce that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Salesforce B2C Commerce account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Salesforce B2C Commerce.** The Proxy API is a 1-to-1 mapping of the Salesforce B2C Commerce API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.
