B2B and Quotes

Learn about the recent B2B additions, and how they can enable you to engage in B2B commerce.

  • After completing this page, you should be able to:

    • Identify how the changes to Business Units, Associates, and Associate Roles affect the use of the Composable Commerce API in your Projects.
  • B2B endpoints

    Let's take a look at the newly introduced B2B endpoints aimed at assisting in the design of departmental hierarchy, roles, and responsibilities in a B2B ordering process.

    Business Units

    Business Units represent companies or divisions within companies. You can model a real company hierarchy in your Project to assign roles and responsibilities. They can be referenced by Carts, Orders, Quotes, and Quote Requests. With the help of Stores, Product Selections, and Channels, Business Units can be used to create company-specific Products, Prices, and Discounts.

    The structure of a Business Unit can be hierarchical and can be up to five sub-levels deep. The top level of a Business Unit is always of type Company, while sub-levels are of type Division and may inherit properties such as assigned Stores, Associates, and Associate Roles from their parent Business Unit.

    Associate

    An Associate acts on behalf of a Company or Division and must be represented as a Customer in your Project. Each Associate (of a Business Unit) is assigned a specific role that defines the scope (the access and execution rights) of that Associate within the respective Business Unit.

    An Associate can have one or many roles assigned. The roles are additive—meaning the permissions of an Associate are the sum of all permissions included on the Associate Roles assigned to that Associate directly, and those from inherited roles. If an Associate has multiple roles within a Business Unit, they will have access to all the permissions granted by each of those roles.

    With Audit Log, you can track changes to Business Units, and identify changes made by Associates on Business Units, Orders, Quote Requests, and Quotes.

    Associate Roles

    As mentioned earlier, Associate Roles grant access rights and permissions for Associates. Composable Commerce has a few Associate Role templates that can be used to create Associate Roles within your project - or you can create Associate Roles by selecting the appropriate set of permissions from those available to you. To define a new role, you must declare the permissions on the resources (Business Units, Orders, Quotes, and Quote Requests) managed by the Company. With Audit Log, you can track changes in Associate Roles as well.

    Modeling Business Units, Associates, and Associate Roles is a complex yet important topic during the setup of your B2B infrastructure. To understand the topic better, you can take part in our B2B Functional Architect training.

    Example of a B2B hierarchy model

    In the following diagram, you can find representations of a company-level Business Unit with divisions and different inheritance behaviors.

    In this example, the hierarchy represents the following entities:

    • Company: the top-level Business Unit in the company hierarchy.
    • Division A: a child Business Unit with its associateMode set to ExplicitAndFromParent. This setting allows the Business Unit to have both directly assigned Associates and inherited Associates from its parent (Company).
    • Division B: a child Business Unit with its associateMode set to Explicit. This means that the Business Unit does not inherit any Associates from its parent (Company). It can only have Associates that are directly assigned to it.
    • Division C: a child Business Unit with an associateMode of ExplicitAndFromParent. It inherits Associates from its parent (Division A), which in turn also inherits from its parent (Company).

    Quotes and Quote Requests

    Orders and prices are often subject to a negotiation process. This can be replicated with Composable Commerce using Quotes. Quotes generation follows the following process in B2B commerce scenarios:

    1. Request Quote with Cart: The Buyer starts the negotiation process by creating a Cart with the desired Products, adds a comment, and sends a request for a Quote to the Seller.
    2. Review Quote Request: Upon receiving the Quote Request, the Seller then reviews the details of the Buyer's Cart and the request.
    3. Accept or reject Quote Request: The Seller decides whether to accept the Quote Request (to proceed with the negotiation) or reject it. If rejected, the negotiation process ends here.
    4. Prepare Staged Quote: If the Seller accepts the Quote Request, they prepare a Staged Quote. This potentially involves adding or removing Line Items, adjusting quantities, and setting prices.
    5. Finalize Quote: The Seller finalizes the Staged Quote, which becomes a legally binding Quote. No further changes can be made to the Quote after this point.
    6. Send Quote to Buyer: The finalized Quote is sent to the Buyer for review.
    7. Accept, reject, or request renegotiation: The Buyer reviews the Quote and accepts it, rejects it, or requests renegotiation. The Buyer might provide comments or reasons for renegotiation.

    alt Buyer requests renegotiation

    1. Request Renegotiation with comments: If the Buyer requests renegotiation, they communicate this to the Seller along with any relevant comments or requested changes.
    2. Review and Work on Renegotiation: The Seller reviews the Buyer's comments and works on adjusting the Quote according to the renegotiation request.
    3. Finalize Renegotiated Quote: The Seller finalizes the renegotiated Quote, which is then sent back to the Buyer for another review.

    alt Send Renegotiated or negotiated Quote to Buyer

    1. Send renegotiated Quote to Buyer: The renegotiated Quote is sent to the Buyer, who will review it once more.
    2. Turn Quote into Order: If the Buyer accepts the Quote (original or renegotiated), the Quote is converted into an Order and the sales process moves forward.
    3. Reject Quote: If the Buyer rejects the Quote, the negotiation process ends without an Order being placed.

    Test your knowledge