You have a complex configurable product in SAP Variant Configuration — an elevator, a server rack, a pump system. Your sales team needs to configure and quote these products online, without SAP GUI access.
That's where SAP CPQ (Configure, Price, Quote) comes in. It provides a web-based guided selling interface that connects back to your SAP VC models through SAP BTP (Business Technology Platform).
This guide walks through the architecture, setup, and real-world pitfalls of the SAP CPQ — Variant Configuration integration.
Source: SAP CPQ-VC Integration help portal | SAP BTP — Variant Configuration and Pricing admin guide
Why Integrate CPQ with VC?
Without CPQ, configuring a complex product in SAP goes like this:
- Sales rep takes a call
- Opens SAP GUI (VA21)
- Configures the product manually
- Copies the result into a quote or email
With CPQ, the flow changes:
- Customer or sales rep opens a web form
- Selects options in a guided wizard
- CPQ calls SAP's VC engine through BTP
- A valid configuration comes back with pricing
- Quote is generated automatically
The result: faster quoting, fewer errors, and a better customer experience.
Integration Architecture
The integration has three layers:
SAP CPQ (Cloud) ─── SAP BTP — Variant Configuration & Pricing (Cloud) ─── SAP S/4HANA (On-premise or Cloud)
SAP CPQ is the front-end. It presents product options to the user in a clean web interface. It does not perform configuration logic locally — it delegates to SAP's cloud services on BTP.
SAP BTP hosts the SAP Variant Configuration and Pricing service — a SaaS middleware that processes configuration requests in the cloud. Your VC models (knowledge bases) are replicated from S/4HANA to a cloud HANA database using the SDI Data Provisioning Agent, so the actual dependency processing happens in the cloud service, not by forwarding each request to S/4HANA. Source: SAP Feature Scope Description for Variant Configuration and Pricing
SAP S/4HANA is where the VC master data lives — characteristics, classes, configuration profiles, and object dependencies are maintained and replicated to the cloud.
The Three Services on BTP
| Service | What It Does | Endpoint Type |
|---|---|---|
| Variant Configuration service | Validates characteristic selections, explodes BOM | REST API |
| Pricing service | Calculates price based on configured options | REST API |
| SDI Data Provisioning Agent | Bridges BTP to on-premise SAP systems | On-premise agent |
Source: SAP Help Portal — CPQ Variant Configuration Integration
Setup Steps
Step 1: Enable SAP CPQ in the System
Configure the Variant Configuration & Pricing section in CPQ Setup:
- Authentication URL — Your BTP subaccount's OAuth 2.0 token endpoint
- Client Identifier and Secret — From your BTP service instance credentials
- Configuration Base URL —
https://cpservices-product-configuration.cfapps.<region>.hana.ondemand.com/ - Pricing Base URL —
https://cpservices-pricing.cfapps.<region>.hana.ondemand.com/
The region (eu10, us10, ap11) must match your BTP subaccount region.
Step 2: Configure Attribute Mappings
This is the most important step. CPQ needs to know how its fields map to SAP VC characteristics.
For each characteristic in your VC model, you create a corresponding attribute in CPQ:
| CPQ Attribute | SAP Characteristic | Data Type | Example Values |
|---|---|---|---|
COLOR |
Z_DOOR_COLOR |
Dropdown | Silver, Red, Blue |
SPEED |
Z_RATED_SPEED |
Number | 1.0, 1.5, 2.0, 2.5 |
FLOORS |
Z_NUM_FLOORS |
Number | 5–50 |
DOOR FINISHING |
Z_DOOR_FINISHING |
Dropdown | Steel, Aluminum, Glass |
The critical rule: Every characteristic that appears in your VC model dependencies must be mapped. If a dependency references Z_DOOR_COLOR but you forget to map it in CPQ, the configuration will produce incorrect (or failing) results.
Source: SAP Help Portal — Attribute Mappings
Step 3: Enable AVC Forwarding (Optional)
If your S/4HANA backend uses Advanced Variant Configuration (AVC), you can configure the Variant Configuration service to forward configuration requests to AVC. This is supported as of SAP Variant Configuration and Pricing 2.0. Source: SAP Help Portal — Forwarding to AVC
Important: AVC forwarding currently operates within the scope supported by the existing VC integration. Test thoroughly if your AVC models use features that differ from LO-VC behavior, such as constraint solver reordering or temporary characteristic handling.
Step 4: Set Up Pricing Integration
- In CPQ, select Variant Pricing as the pricing type for configurable products
- Variant Pricing means prices come from SAP, not from CPQ's own price book
- The pricing service returns surcharges, discounts, and base prices based on the selected options
Note: SAP CPQ's own pricing engine (price books, discounts, promotions) can still be used alongside Variant Pricing. They are not mutually exclusive — but you should define the pricing responsibility clearly to avoid double-discounting.
Step 5: Test with a Real Configuration
Create a test product in CPQ and run through a complete configure-and-quote flow.
Quote-first approach: SAP CPQ integrated with Variant Configuration requires a quote-first approach — the user lands on a new quote, then configures the product from within the quote. Standalone product configuration without a quote context is not supported. Source: SAP Help Portal — Quote-First Approach
Test flow:
- Create a new quote in CPQ
- Add the configurable product
- Select characteristic values in CPQ
- CPQ sends the request to BTP VC service
- BTP processes the configuration (or forwards to AVC if enabled)
- Pricing data comes back from the Pricing service
- CPQ displays the configured product with price
- Generate a quote PDF
Step 6: Configure Order Creation Mapping
Regardless of whether VC integration is enabled, order creation/update mappings must be configured to transfer the quote data back to S/4HANA as a sales order. When VC integration is enabled, pricing procedures are automatically retrieved from SAP Variant Configuration and Pricing and passed to the order creation process. Source: SAP Help Portal — Order Creation Mapping
Common Pitfalls
1. Characteristic Value Mismatches
The most common integration failure. If a characteristic value in CPQ doesn't match the exact value in SAP VC (e.g., "Silver" vs "SILVER" vs "SLVR"), the configuration fails silently.
Fix: Use a leading column in your CPQ attribute definition to map CPQ display values to SAP internal characteristic values.
2. Dependency Behavior Differences
Some VC dependencies behave differently when processed by the cloud VC service on BTP versus CU50:
- Temporary characteristics — Not supported in AVC (which is what the BTP VC service uses). If your LO-VC model uses temporary characteristics, refactor them before connecting to CPQ.
- Procedure execution order — AVC's constraint solver may evaluate dependencies in a different order than your LO-VC model expects.
Fix: Test every dependency path through the CPQ interface, not just CU50.
3. Pricing Returns Zero
If pricing integration is set up but returns $0 for all options:
- Check that the pricing procedure in SAP correctly maps VC characteristic values to condition records
- Verify the base price is maintained in the material master
- Confirm the BTP Pricing service instance is properly configured and the correct pricing procedure is assigned
4. Latency in Multi-Level Configurations
Complex products with multiple levels (e.g., an elevator car configured within a complete elevator system) can slow down CPQ response times. Each BTP call adds network latency.
Fix: Minimize round-trips by sending complete configuration data in one request rather than step-by-step. Pre-cache characteristic values where possible.
5. Session Timeouts
CPQ sessions that wait for long VC configuration cycles can time out during the user interaction.
Fix: Increase the CPQ session timeout in the BTP service configuration. For very complex configurations, consider a two-step approach: configure in SAP first, then push the result to CPQ for quoting.
Performance Considerations
| Factor | Impact | Mitigation |
|---|---|---|
| Number of VC characteristics | Higher = slower CPQ load times | Only expose relevant characteristics in CPQ |
| Dependency complexity | Complex procedures increase latency | Refactor for AVC constraint solver |
| Network round-trips | Each BTP call adds 200-500ms | Batch characteristic validation when possible |
| SAP backend load | Other processes competing for resources | Schedule during off-peak hours, monitor ST03 |
When Not to Use This Integration
The SAP CPQ-VC integration is powerful, but it's not always the right answer:
- Simple products — If your product has fewer than 10 configurable options and no complex dependencies, CPQ's own configuration engine (without VC) is simpler and faster.
- Offline quoting — The integration requires connectivity to SAP. If your sales team works offline frequently, consider a local CPQ fallback with periodic sync.
- High-volume e-commerce — For configurators on public websites with thousands of concurrent users, the SAP CPQ-VC integration introduces latency and cost that may not scale. Consider a decoupled caching layer.
Summary
| Integration Component | Key Takeaway |
|---|---|
| Architecture | SAP CPQ → BTP VC & Pricing service (cloud processing) ← SDI ← SAP S/4HANA |
| Setup effort | 2–4 weeks for first product family |
| Critical success factor | Characteristic value mapping must be exact |
| Common failure mode | Dependency behavior differs via BTP service vs CU50 |
| AVC support | Supported via forwarding — test constraint solver differences |
| Quote-first required | Product configuration must happen within a quote context |
| Best for | Complex products, guided selling, sales teams |
| Not for | Simple products, high-volume public websites |
The SAP CPQ-VC integration bridges the gap between complex SAP VC models and a modern web-based sales experience. The setup is straightforward for simple products but requires careful testing for complex, multi-level configurations. Map your characteristics precisely, test every dependency path, and plan for the latency that comes with cloud-to-on-premise round-trips.