Skip to main content
Featured group

* B2C Commerce *

Welcome! This group is dedicated to your success with Salesforce B2C Commerce. Join the conversation here to stay up to date on the product, learn best practices, and everything in between. Use this group to review resources, ask questions, help each other, and share experiences. --------------------------------------- This group is maintained and moderated by Salesforce employees. The content received in this group falls under the official Forward-Looking Statement: http://investor.salesforce.com/about-us/investor/forward-looking-statements/default.aspx

🚀 Shape the Future of Agentblazer Content (and enter to win!) 

 

The world of AI is moving fast, and we want to ensure Trailhead is keeping pace with your needs. 

 

Whether you’re just starting your AI journey or already building autonomous agents, we want to hear about your experience with Agentblazer Statuses.

Take our quick 10-minute survey to directly influence future badges and trails.

 

🎟️ Bonus:

 Complete the survey by May 15 for a chance to win 1 of 5 Salesforce Certification Vouchers!   

**See official rules in linked survey.

 

#Trailhead  #Salesforce Admin  #Salesforce Developer  #Certifications  #Salesforce

19 comments
0/9000

Hi everyone,

 

I'm studying for the B2C Commerce Architect cert, does anyone have resources to study for this exam? It doesn't have to be on Trailhead, it could be study groups or anything really :)

Here are some modules I've looked at so far:

 

Most resources on Trailhead are for Solution Architect, but I'm focusing on B2C Commerce now. Also, I know there are Trailhead classes/courses, but I'm not looking for paid content right now.

 

Any help is very much appreciated!

 

@* B2C Commerce *

7 answers
  1. Apr 27, 8:59 AM

     Preparing with PassCertHub helped me succeed in the Salesforce B2C-Commerce-Architect exam, thanks to their guidance, support, and reliable materials. 

0/9000

Hi Team, 

 

We have a requirement to extend the Customer Details view within the B2C Commerce Business Manager. Specifically, we need to add a custom tab (alongside "General," "Addresses," etc.) that will display records from a Custom Object filtered by the specific customer's CustomerNo. 

 

Our Questions: 

 

1. Is it possible to inject a custom tab into the Customer Profile interface using a Business Manager extension cartridge? 

 

2. Could you provide the official documentation link or a sample bm_extensions.xml structure that complies with current server schema requirements? 

 

3. Are there any known limitations regarding the use of JavaScript Controllers or ISML templates to render content within these custom tabs? 

 

Thank you for your guidance on the best practices for this implementation. 

 

Screenshot for your reference. 

Adding Custom Tabs to the Customer Profile Page in Business Manager for Commerce Cloud.

 

Regards, 

Harsh Chandra 

 

@* B2C Commerce *

 

 

#B2C Commerce

2 answers
  1. Apr 20, 1:24 PM

    Hi @Utkarsh Srivastava

     

    We have already created a Menu Action under a Menu Item within Merchant Tools. 

     

    However, the requirement is to display a new custom tab within the Customer detail page (alongside tabs like General, Addresses, etc.) when accessed from Merchant Tools. (As Shown in Image) 

     

    We reviewed the shared documentation but did not find a specific approach to achieve this. 

     

    Based on our understanding, adding a custom tab directly within the standard Customer detail page in Business Manager is not supported through standard extension mechanisms. Business Manager extensions allow adding menu items, actions, and modules, but not modifying the core layout of existing system pages such as adding new tabs.  

     

    Could you please confirm if the understanding is correct? If there is any alternative approach to achieve similar functionality (for example, through a custom module or separate page), we would appreciate your guidance. 

     

    Thanks 

    Harsh

0/9000

Does B2C commerce cloud have the same storage and limitations as normal Salesforce Orgs? It is my understanding that it sits on Salesforce like other Clouds but I have gotten conflicting information. 

3 answers
  1. Apr 12, 1:44 PM

    The storage model for B2C Commerce Cloud is fundamentally different from core Salesforce. Core Salesforce allocates storage in MB across two buckets: data storage and file storage. Each record consumes roughly 2KB depending on the object. B2C Commerce is built for high-volume transactional data, and its storage model is tied to your edition and order volume rather than the per-record allocation model you're used to in core.

    From my experience, the mistake most teams make is trying to apply core org sizing logic to Commerce Cloud. They run capacity planning based on their core storage dashboard and assume Commerce works the same way. It doesn't. The architectures were designed for different use cases: core for relational CRM data, Commerce for catalog and transactional throughput.

    If you're planning a B2C implementation, start with the Commerce Cloud technical documentation on data storage and catalog limits rather than extrapolating from your core org. The constraints you need to plan around are different: catalog size, indexing performance, and order processing volume are the bottlenecks, not record storage in the traditional sense.

0/9000

Hi everyone,

 

I'm trying to manage our SFCC sandboxes using Postman.  I've set up an API client ID in Account Manager.  Then in postman, I've did a POST request to https://account.demandware.com/dw/oauth2/access_token to generate a token.  I then try to use that token to make a GET call to https://admin.us01.dx.commercecloud.salesforce.com/api/v1/sandboxes .  

 

However this is resulting in a 401 Unauthorized error "Full authentication is required to access this resource".

 

What am I missing here?

Thanks!

8 comments
  1. Mar 23, 2:02 PM

    It is worth noting that the Default Scopes in the above referenced documentation need to be one on each line, not comma-delimited or any other format. This field should look like this: 

     

    roles 

    tenantFilter 

    profile

0/9000

Hi Folks,

 

Greetings!

 

I am looking for the trial org of commerce cloud for practice on it.

Can someone please guide me to get the same

Thanks in advance!

 

Regards,

Vikrant Kaushal

9 answers
0/9000

Hi Community,  Looking for best practices / patterns.    Use case  We have partial cancellations/refunds. Some orders have order-level promotions where eligibility depends on product attribute-based qualifying rules.    Example configuration (BM):  - Order promotion: 20% off order  - Eligibility: order includes >=1 qualifying product  - Qualifying products: “Products with attribute tvType = '0020'”, qty >= 1  - Scenario: Customer buys A, B, C. Only C has tvType='0020', so promo applies. Later C is canceled. Then promo should be invalidated and discount removed (recalculate the remaining order total before determining refund delta).    Constraints confirmed by Support  - No supported Script API/OCAPI to retrieve the internal Promotion Rule logic (qualifying groups/attribute conditions) as a structured object.  - PromotionMgr.applyDiscounts() uses current system time only; no “as-of order date” parameter. So shadow basket recalculation at refund time may diverge from order-time rules if the promotion expired/changed.    What we considered  - getProratedPrice() works for refunding “what customer paid per line item”, but it doesn’t tell us whether an order-level promo “should still be valid” after cancellation (since we can’t re-evaluate as-of order time, nor retrieve rule logic).    Questions / Ask  1. If the business policy requires refunds based on order-time promotion rules (not refund-time active promos), what’s the recommended approach?  2. Do teams usually implement custom “snapshot” tracking at order placement?   e.g., store:  - applied promotion IDs/coupon codes  - qualifying basis (rule key / qualifying line item UUIDs / qualifying counts)  - allocation/adjustment amounts  3. Alternative approach: at order placement, simulate removal of each line item (or only those that can break eligibility) and store delta totals for accurate future partial refunds. Has anyone done this at scale?  4. Any recommended hooks/events for capturing this (SFRA/OCAPI flows), and storage pattern (Order custom attrs vs Custom Objects)?  5. Any gotchas with bonus products, multiple stackable promotions, shipping discounts, taxes, etc.?    Thanks in advance—happy to share findings back to the community.

@* B2C Commerce * 

1 answer
0/9000

We’re a B2B company running Sales Cloud and Commerce Cloud only, no CPQ, Finance, or other ecosystem products.

  We design and manufacture goods plus work with vendors, and I’m trying to leverage Order Management objects directly in the sales process for our direct sales team.

  Here’s the workflow we’re building:

  • Opportunity closes,
  • Order gets created and validated with any additional line items like shipping or packaging.
  • Then we create Order Delivery Groups and assign products to them based on where they’re shipping from and to.
  • Once that’s locked in, we activate the Order, which triggers the Order Summary creation.
  • From there, we create either Fulfillment Orders or -Work Orders to handle picking or manufacturing.
  • When those complete, the Order Summary is complete and ready to ship, then we create Shipment record and shipment items.

My main questions: Is this a normal approach or am I going outside the intended use case? Will using Order Management this way conflict with our web store checkout process? Does this workflow actually make sense, or am I missing something fundamental?

  Everything’s working so far, but I want to validate this before we build too much on it. Cheers for any insights   

 

@* Sales Cloud - Best Practices *  @* Sales Cloud - Getting Started *  @* B2C Commerce * 

2 answers
  1. Mar 15, 11:30 PM

    Your Approach Is Valid (with Caveats) 

     

    You're using OMS in a **hybrid model**—both for web commerce fulfillment *and* manual direct sales. This is supported, but requires careful design to avoid conflicts. 

     

    **Key considerations:** 

     

    **1. Separation of Order Sources** 

    - Use the **Order.Type** or **Order.OriginatingChannel** field to distinguish direct sales orders from web orders 

    - Consider different **Order Delivery Methods** for B2B direct vs. web checkout 

    - This lets you route orders through different fulfillment logic based on source 

     

    **2. Order Activation Timing** 

    Your workflow activates the Order *after* manual validation and Order Delivery Group setup. This works well for direct sales but differs from typical web checkout, where: 

    - Commerce Cloud usually auto-creates the Order Summary during checkout 

    - Order Delivery Groups are often auto-assigned based on inventory rules 

     

    **Solution:** Keep web orders on the standard Commerce Cloud → OMS integration path, and use your manual workflow only for direct sales orders. Gate your custom automation with a check on order source. 

     

    **3. Fulfillment Order vs. Work Order** 

    - **Fulfillment Orders** = picking/packing existing inventory 

    - **Work Orders** = manufacturing or assembly 

     

    Your split makes sense for a manufacturer. Just ensure your downstream systems (WMS, ERP, production scheduling) can consume both record types appropriately. 

     

    **4. Potential Conflicts to Watch** 

     

    | **Risk** | **Mitigation** | 

    |----------|----------------| 

    | Duplicate Order Summary creation | Ensure your direct-sales activation flow doesn't trigger the same OMS integration that web checkout uses. Use Process Builder/Flow filters on `Order.Type`. | 

    | Inventory allocation conflicts | If both channels share inventory, implement **Inventory Reservation** records or use OMS's built-in allocation engine to prevent overselling. | 

    | Shipment record duplication | If you integrate with a 3PL or carrier system, make sure only *one* process creates Shipment records per Order Summary. | 

     

    **5. Missing Pieces to Consider** 

    - **Returns & Refunds:** OMS supports Return Orders and Credit Memos. Plan how direct sales returns will flow (manual RMA vs. self-service). 

    - **Invoicing:** Without Revenue Cloud or Finance, you'll need to generate invoices from Order Summary or integrate with an external billing system. 

    - **Order Amendments:** If customers change orders post-activation, OMS supports Change Orders, but the UX is complex without CPQ. 

     

    ### Recommended Architecture 

     

     

    Your Approach Is Valid (with Caveats) You're using OMS in a **hybrid model**—both for web commerce fulfillment *and* manual direct sales.

     

     

    Before scaling this: 

     

    ✅ **Test both order sources end-to-end** in a sandbox   

    ✅ **Confirm inventory doesn't double-allocate** between web and direct sales   

    ✅ **Verify Order Summary status transitions** match your business states   

    ✅ **Check reporting**—ensure Sales Cloud reports can distinguish order types   

    ✅ **Plan for exceptions**—cancellations, partial shipments, backorders   

    ✅ **Document the process** for your sales team (when to activate, how to handle split shipments, etc.) 

     

    ### Bottom Line 

     

    Your workflow is **architecturally sound** for a B2B manufacturer doing direct sales + web commerce. The main risk is collision between manual and automated order flows—mitigate that with clear source-type filtering and separate automation paths. Since you're already operational, I'd recommend: 

     

    1. **Formalize the order type taxonomy** (direct vs. web) 

    2. **Add validation rules** to prevent manual activation of web orders 

    3. **Build a dashboard** showing order pipeline by source and fulfillment stage 

    4. **Plan your invoice/payment flow** if you haven't already 

     

    You're not missing anything fundamental—this is a legitimate use of OMS outside pure commerce. Just keep the two channels logically separated in your automation, and you'll be fine.

0/9000

Hi, I am trying to use this action: https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_om_actions_add_ois.htm&type=5     to create a flow to add order item summaries to an existing order summary. However, when I reach the Action, I am consistently getting a generic error ("something went wrong"), and I'm not sure what I am missing. Does anyone have any examples of flows that use this specific action?     I have defined the "newItems" list with one item that contains a reasonCode, and with an order item summary that contains all of the required fields listed in this documentation.

@Salesforce Flow Automation 

1 answer
  1. Mar 1, 11:34 PM

    This is a common issue with Order Management flows, and the generic error usually points to missing required fields or incorrect data structure. 

     

    I can help you troubleshoot the "Add Order Item Summary" action in your Salesforce Flow. Based on common issues with this action, here are the key things to check: 

     

    ### Common Causes of the Generic Error 

     

    **1. Required Fields in the Order Item Summary** 

     

    The action requires specific fields to be populated in your `orderItemSummary` object within the `newItems` list. Make sure you're setting: 

     

    - **Product2Id** - Reference to the product 

    - **Quantity** - Item quantity 

    - **Type** - Must be a valid value (typically "Order Product") 

    - **OrderSummaryId** - Reference to the parent Order Summary 

    - **TotalPrice** or **UnitPrice** - Pricing information 

     

    **2. Reason Code Validation** 

     

    You mentioned including a `reasonCode` - ensure this is a valid picklist value that exists in your org. Invalid reason codes will cause silent failures with generic errors. 

     

    **3. Missing Context Fields** 

     

    While not explicitly listed as "required" in the documentation, these fields often cause issues when missing: 

     

    - **OrderItemId** - If you're adding items related to existing order items 

    - **OriginalOrderItemSummaryId** - For return/exchange scenarios 

     

    ### Recommended Troubleshooting Steps 

     

    **1. Enable Debug Mode** 

     

    In your flow, add a Debug statement right before the action to log the exact values you're passing: 

     

    - Log the entire `newItems` collection 

    - Verify each field has a non-null value 

    - Check data types match expectations 

     

    **2. Simplify Your Test** 

     

    Start with the absolute minimum required fields: 

     

    ``` 

    newItems (Collection of ConnectApi.OrderItemSummaryInputRepresentation): 

      - orderItemSummary: 

          - Product2Id: [valid product ID] 

          - Quantity: 1 

          - Type: "Order Product" 

          - OrderSummaryId: [your order summary ID] 

          - UnitPrice: 10.00 

      - reasonCode: [valid reason code or leave blank initially] 

    ``` 

     

    **3. Verify Order Summary State** 

     

    The Order Summary must be in a valid state to accept new items. Check: 

    - Order Summary status allows modifications 

    - No active fulfillment processes are blocking changes 

    - The Order Summary isn't already closed/completed 

     

    **4. Check Field-Level Security** 

     

    Ensure the running user has: 

    - Create permission on OrderItemSummary 

    - Edit access to all fields you're trying to populate 

    - Read access to Product2 and related objects 

     

    **5. Review Salesforce Order Management Setup** 

     

    - Verify Order Management is properly enabled in your org 

    - Check that your products are configured for Order Management 

    - Ensure price books are properly associated 

     

    ### Alternative Approach: Use Apex Instead 

     

    If the declarative action continues to fail, consider creating a simple Apex action that provides better error messages: 

     

    ```apex 

    @InvocableMethod(label='Add Order Item Summary with Error Details') 

    public static List<Result> addOrderItemSummary(List<Request> requests) { 

        List<Result> results = new List<Result>(); 

         

        for (Request req : requests) { 

            Result res = new Result(); 

            try { 

                // Your order item summary creation logic here 

                // This will give you actual error messages instead of "something went wrong" 

                res.success = true; 

            } catch (Exception e) { 

                res.success = false; 

                res.errorMessage = e.getMessage() + ' | ' + e.getStackTraceString(); 

            } 

            results.add(res); 

        } 

        return results; 

    ``` 

     

    ### Next Steps 

     

    1. **Check Flow Debug Logs**: Run the flow with debug enabled and examine the exact error in Setup → Debug Logs 

    2. **Test via Workbench**: Try creating an OrderItemSummary via Workbench REST API to see if it's a flow-specific issue 

    3. **Verify API Version**: Ensure your flow is using API version 50.0 or higher (Order Management requirement)

0/9000