How We Built a Revenue Lifecycle for POS Hardware and Subscriptions

A point-of-sale transaction stops being simple when one agreement combines terminals, scanners, printers, payment devices, software subscriptions, installation, training, and support. Each line can have different configuration rules, contract terms, fulfillment steps, and invoice schedules. If the architecture connects only CRM records to ERP records, the business still cannot reliably follow what was sold, accepted, delivered, installed, billed, amended, or renewed.
For a U.S. retail technology provider, we implemented a POS hardware revenue lifecycle across Salesforce and SAP. This article explains the design choices behind the full implementation case study: system ownership, product modeling, configuration, pricing, order orchestration, fulfillment, billing, and post-sale changes.
The central design decision
We treated the project as a revenue-architecture implementation, not as an isolated CPQ deployment. Every commercial decision had to remain usable by the teams and systems responsible for fulfillment, accounting, and the ongoing customer relationship.
What the implementation had to solve
The client had moved its sales organization from HubSpot to Salesforce Sales Cloud, while SAP remained the enterprise resource planning platform. A basic catalog integration synchronized product information, but it did not create a dependable path from opportunity closure to order acceptance, delivery, installation, invoicing, and renewal.
Mixed revenue models
One transaction needed to preserve one-time hardware, term-based software, recurring support, services, and different billing frequencies.
Configuration risk
Compatible components and dependent quantities were difficult to govern without creating hundreds of near-duplicate commercial SKUs.
Disconnected execution
A closed opportunity did not prove that SAP accepted the order or that warehouse, delivery, and installation work had finished.
Fragmented customer changes
Additional locations, upgrades, cancellations, and renewals were handled as new sales instead of changes to existing assets and subscriptions.
The project therefore combined Salesforce implementation with integration and operating-model design. The target was not one universal system of record; it was one authoritative owner for each data domain and a governed exchange of lifecycle events.
Architecture: a commercial layer connected to operations
We implemented Salesforce Agentforce Revenue Management as the commercial layer on top of Salesforce Sales Cloud. SAP remained authoritative for the physical product master, procurement cost, inventory, shipment, and accounting records. The resulting design joined cloud capabilities without blurring the boundary between selling, operational execution, and accounting.

The implemented architecture separates system ownership while carrying the commercial commitment through configuration, pricing, order orchestration, fulfillment, billing, assets, amendments, and renewals.
1. We assigned ownership by data domain
We began with a field-level ownership model. Synchronized copies were allowed, but each value retained one authoritative source. Shared identifiers, effective dates, and version information related a commercial offer in Salesforce to its physical material in SAP.
Data domain | Authoritative owner | Implemented responsibility |
|---|---|---|
Physical product and cost | SAP | Material number, technical and inventory attributes, procurement cost, availability, and shipment status |
Commercial catalog | Salesforce Revenue Cloud | Sellable offers, bundles, terms, attributes, relationships, and configuration dependencies |
Selling price and approvals | Salesforce Revenue Cloud | Price books, pricing procedures, adjustments, discounts, margin checks, and approval thresholds |
Fulfillment and accounting | SAP | Inventory execution, shipping, operational status, and accounting records |
Implemented system ownership for core revenue-lifecycle data.
SAP costs were synchronized into Salesforce for margin calculation but remained non-editable outside SAP. This is the same ownership-first principle we apply in a governed SAP integration with Salesforce.
2. We separated products from selling and billing models
A POS terminal, a three-year software subscription, and annual support can appear on the same quote without behaving the same way. We modeled what the product is separately from how it is sold and how it is invoiced.
Product model
Physical items, software, services, attributes, relationships, and the identifiers required downstream.
Selling model
One-time or term-defined commitments, including start and end dates and renewal behavior.
Billing model
Invoice timing and frequency, kept distinct from the length of the commercial commitment.
This separation allowed hardware revenue, recurring revenue, total contract value, subscription terms, and future obligations to remain visible without multiplying the catalog for every possible commercial variation.
3. We configured valid solutions before pricing them
A complete retail solution could include a terminal, scanner, receipt printer, payment terminal, POS software, inventory subscription, and support. We represented that solution with bundles, product attributes, compatibility rules, required components, exclusions, and quantity dependencies.
Advanced Configurator rules could require a component, exclude an impossible combination, hide an irrelevant option, display a contextual message, or act across the transaction. The control point was deliberately early: an invalid solution should never reach pricing, contracting, ordering, or fulfillment.
Why this mattered
Configuration was not only a seller-experience feature. It reduced SKU growth and protected warehouse and installation teams from avoidable downstream exceptions.
4. We centralized pricing and governed exceptions
We modeled pricing procedures and adjustments in Salesforce so product, configuration, quantity, customer agreement, country, subscription term, and promotional conditions could contribute to a consistent commercial result. SAP supplied current cost data for margin visibility.
We also separated the calculated price from the discount requested by a salesperson. Approval policies could then evaluate discount, margin, deal value, and other commercial factors. Standard transactions continued without unnecessary intervention, while larger exceptions reached the appropriate sales, commercial, or finance approver.
These controls were implemented through Salesforce Revenue Cloud as part of the wider lifecycle, rather than as isolated calculations attached only to a quote.
5. We preserved commercial intent through order and fulfillment
The quote carried more than quantity and unit price. It preserved dates, dependencies, fulfillment requirements, billing schedules, and renewal obligations so that the order and downstream systems could act on the agreement without reconstructing it.
- Configure a valid mix of hardware, software, services, and support.
- Calculate prices and margins, then route only qualifying exceptions for approval.
- Activate an order that retains the agreed terms, dates, quantities, and dependencies.
- Use Dynamic Revenue Orchestrator to create the fulfillment plan, tasks, milestones, and API actions.
- Let SAP manage inventory and shipping while returning status to Salesforce.
- Track installation through Salesforce Field Service alongside the rest of the fulfillment plan.
Dynamic Revenue Orchestrator gave Sales and Operations a shared view of the work without forcing warehouse teams out of SAP. Delivery also remained distinct from installation: receiving a device did not mean the customer was ready to use the complete solution.
For another example of operational work coordinated in Salesforce, see how a client used Sales Cloud and Field Service to connect sales and service activity.
6. We generated invoices in Salesforce and accounted in SAP
We used the Salesforce Billing Engine to generate invoices from the agreed schedules and relevant operational milestones. Invoice data then moved to SAP for accounting, preserving a clear boundary: Salesforce handled commercial invoice generation, while SAP maintained the accounting records.
Product or service | Commercial agreement | Invoice trigger or frequency |
|---|---|---|
POS hardware | One-time purchase | After shipment |
POS software | Three-year subscription | Monthly |
Support | Annual service | Annually |
How different lines in one agreement can retain different invoice schedules.
Connecting the commercial commitment to delivery and billing milestones also gave Finance a stronger basis for determining what had been sold, delivered, billed, and was ready for its revenue-recognition process. The implementation did not replace accounting policy or claim that invoice generation alone recognizes revenue.
7. We made amendments and renewals part of the architecture
The customer relationship continued after the initial order. A new store, additional devices, an upgrade to premium support, a cancellation, or a renewal changed an existing commercial position.
We configured transaction-management capabilities around customer assets and subscriptions. Teams could work from what the customer already owned, preserve lifecycle history, and apply amendments, upgrades, cancellations, and renewals without rebuilding the original configuration from scratch.
The same foundation can support ramped commitments or usage-based charges later, but we treated those as future design possibilities with their own measurement, pricing, billing, and accounting requirements—not as automatic outcomes of the initial implementation.

The implementation replaced disconnected sales and operational handoffs with a governed path from commercial design to fulfillment, billing, and ongoing customer changes.
Implementation lessons for hybrid revenue models
- Begin with the business lifecycle and data ownership model, not with individual Salesforce screens.
- Assign one authoritative owner to every material value and make synchronized copies non-authoritative.
- Separate product, selling, and billing models so hardware and subscriptions can coexist without catalog sprawl.
- Stop invalid configurations before they create pricing, order, warehouse, or installation exceptions.
- Preserve dates, dependencies, milestones, and obligations in every downstream handoff.
- Design the initial sale and post-sale lifecycle together; amendments and renewals are not edge cases.
- Keep commercial billing, operational fulfillment, and accounting responsibilities explicit.
A related Salesforce–SAP data synchronization case study shows why current ERP data and dependable ownership are prerequisites for downstream automation.
The implementation worked as one revenue architecture: product modeling shaped configuration, configuration shaped pricing, the quote shaped order and fulfillment, billing followed commercial terms and milestones, and customer assets governed every later change.
Frequently asked questions
The systems had different responsibilities. Salesforce owned commercial packaging, configuration, selling models, prices, approvals, and invoice generation; SAP owned physical product data, cost, inventory, shipment, and accounting records. Integration connected those responsibilities without turning synchronized copies into competing masters.
We separated the product from its selling and billing models. Hardware retained one-time behavior, while software and support retained terms, dates, billing frequencies, and renewal obligations inside the same commercial agreement.
After order activation, Dynamic Revenue Orchestrator represented the work required to deliver the solution through fulfillment tasks, milestones, and API actions. SAP handled inventory and shipping, while installation progress could be coordinated through Salesforce Field Service and monitored with the wider order.
No. The Billing Engine generated customer invoices in Salesforce from commercial schedules and milestones, then sent invoice data to SAP. SAP remained responsible for the accounting records and the organization's accounting process.
Scalability came from explicit ownership, reusable product and pricing rules, preserved commercial context, orchestrated operational handoffs, and asset-based lifecycle management. New offers can build on those shared structures instead of adding an unrelated custom process for every product or change.












