← Selected work

Commercial operations / Architecture story

Product choices. Consistent commercial logic.

Connecting bundle configuration, pricing and commercial documents for different ways of selling the same product family.

Delivered capability
A live configuration, pricing and document-generation workflow.
Architectural focus
Separate rule responsibilities. Connect the commercial context.
Contribution
Matt Stirling · Revenue Cloud implementationExperience delivered through a consulting partner

The system at a glance

Clear responsibilities.
Connected behavior.

Catalog and configuration rules describe the offering. An Apex prehook translates bundle attributes into transaction values. A staged pricing procedure applies prices, overrides, discounts and term calculations. Quote and contract context then supports configured document-generation workflows, with discount approvals handled through Flow.

Architecture / simplifiedCarry product intent into the commercial output
  1. Product configuration

    Catalog, selling models and bundle constraints.

    Supply bundle attributes
  2. Transaction context

    Apex derives quantities, terms and custom values.

    Supply pricing inputs
  3. Staged pricing

    Apply prices, adjustments and term calculations.

    Provide commercial values
  4. Quote + contract

    Use mapped data in the document workflow.

    Generate documents
  5. Commercial output

    Produce quote and agreement documents.

Simplified responsibility map, not a trace of every quote operation. Configuration and transaction values inform pricing; the resulting commercial context supports document generation. A related Flow handles discount-approval exceptions.

The problem behind the system.

A configurable product offering needed to support both subscription and capital-purchase models. Bundle choices affected related components, quantities, terms and pricing. Those values also needed to reach the quote or agreement presented to the customer. The challenge was to keep the commercial meaning connected while assigning each type of rule a clear responsibility.

  • Product relationships and selling-model choices affect which components belong in a configuration.
  • Child quantities, subscription terms and custom-product values need to be reflected in the transaction context used for pricing.
  • Quote and contract documents need commercial data in a usable presentation, alongside approval handling for discount exceptions.

Our contribution

Matt Stirling implemented the product catalog, CML configuration rules, Apex prehook, pricing method and PDF document-generation workflows through a consulting partner. The work configures and extends Salesforce Revenue Cloud. Its native pricing, configuration and document-generation engines provide platform capabilities; Matt’s contribution is the connected solution design, custom logic and delivery.

The decisions that shaped the work.

Give different rules different responsibilities.

A valid product selection and the quantity or term used to price it are related questions, but they are not the same rule.

CML handles configuration relationships and choices. The Apex prehook reads bundle attributes, matches child items to their parent, and maps quantities, terms and custom-product values into transaction context. This separation keeps selection logic distinct from downstream calculation inputs.

Design consideration. The boundaries still need coordination when the offering changes. The hook reflects the supported bundle structure; a different bundle model would require corresponding changes.

Make the pricing sequence explicit.

Custom price inputs, discounts and subscription terms need to be applied in a defined order so that later calculations receive the appropriate values.

The configured pricing procedure progresses through list prices and custom overrides, line calculations, discount stages, term adjustments and aggregation. The prehook collects its attribute changes before making a consolidated context update. This gives related values a common path into the calculation.

Design consideration. A visible sequence makes rules easier to inspect, but it does not remove boundary cases. Blank or zero terms, custom prices and discount combinations remain scenarios to validate against the commercial requirements.

Connect documents to the same commercial context.

The customer-facing output needs to reflect the configured offering and its commercial model, rather than ending the workflow at a calculated total.

Configured OmniScripts, context mappings and supporting Flows handle quote and contract document generation. An account-driven agreement-creation path and discount-approval routing support adjacent steps in the commercial process.

Design consideration. Document templates remain presentation assets with their own maintenance needs. Changes to the offering must be reflected in the relevant rules, mappings and templates; document automation does not remove that responsibility.

What the system delivers

  • A live revenue workflow spanning product catalogs, configuration rules, custom transaction logic, pricing and PDF document generation.
  • A staged pricing model that combines custom inputs and commercial adjustments before aggregation.
  • Quote and contract document workflows, an account-driven agreement path and discount-approval routing.

Technical implementation

  • Revenue Cloud
  • Apex
  • Constraint Modeling Language
  • Pricing procedures
  • OmniScript
  • DocGen
  • Revenue Cloud provides product and selling-model configuration, Constraint Modeling Language and pricing procedures.
  • Apex extends the transaction through the signaling prehook and context APIs.
  • OmniScript, DocGen, context mappings and Salesforce Flow connect commercial data to document creation and approval handling.

Let's make the next step clear

Do your product rules, prices and documents tell the same story?

Discuss a project