logo

Are you need IT Support Engineer? Free Consultant

How to Bundle a Free Service with a Paid One in SA…

  • By Sanjay
  • 17/05/2026
  • 20 Views


The Business Problem

Imagine your company sells an on-site installation service for 36,000 CNY. As part of the deal, you also send a technician to unbox and inspect the equipment beforehand — at no charge to the customer. It's part of the package.

From a sales perspective this is simple: one order, two line items, one invoice. The customer sees a clean quote with the installation fee and a zero-value unboxing line. Nothing surprising.

From a finance perspective, though, there's a real question: the unboxing work still costs money. If that cost disappears into a black hole — not recorded anywhere in your management accounting — your profitability reports will be overstated. You need the cost to hit COPA even though the customer pays nothing.

From an SAP configuration perspective, getting this right requires choosing the correct item category for the free-of-charge line — and in S/4HANA Cloud, the default options are not all what they seem.

This post walks through exactly what we set up, what we tried that didn't work, and why, ending with a complete end-to-end flow from sales order to posted invoice.

The Setup at a Glance

  Detail
System SAP S/4HANA Cloud, SalesOrg 1320, DC 20
Order type OR (Standard Order)
Item category group SERV (service materials, no physical delivery)
Billing approach Order-related (FKREL=B) — invoice directly from SO, no delivery

The two items:

Item Material Description Charge

10 LQ_SRV-INSTALL On-site Installation 36,000.00 CNY
20 LQ_SRV-UNBOX Unboxing & Inspection 0.00 CNY (free)

Part 1: Configuration — For the Consultant

1.1 Assign Item Category Determination

SAP derives the item category for each sales order line from three inputs: order type + item category group + usage. This is maintained in SSCUI 102807 (Assign Item Categories).

For order type OR and item category group SERV, the system's determination table looks like this:

Role Item Category Description Pricing COPA Cost

Default TAD Standard paid service Y13101 runs VPRS determined
Manual alt TADN Service FoC Y13101 runs VPRS determined ✓
Manual alt CTAD Complementary service Y13101 runs VPRS determined
Manual alt TADL Service NoP FoC Suppressed Not determined

 

Qi_Liu_0-1778996945648.Png

Details

Screenshot 01 — VOV4 Details (activity 102807): OR + SERV. Item Category (default) = TAD; Manual ItemCat. 1 = TADN, 2 = CTAD, 3 = TADL.

1.2 Why CTAD Is Wrong for Free-of-Charge

CTAD looks like a natural choice — “C” stands for complementary. In practice, its incompletion procedure requires net value > 0. When you assign CTAD to a line with a 0.00 price, the incompletion log fires two entries:

  • Net Value — the check expects a value above zero
  • Pricing — flagged incomplete because net value is zero

A PPR0 condition record at 0.00 satisfies the pricing run but does not satisfy this incompletion check. The order cannot be saved cleanly.

1.3 Why TANN Is Not Available

TANN would be ideal: it runs the pricing procedure (so VPRS is determined and cost flows to COPA) and sets net value = 0 for the customer. When we tried to assign TANN in VA02, SAP returned:

“Item category TANN is not defined for item 000020”

The wording matters. “Is not defined” means TANN does not exist at all in this Cloud tenant — it is not just missing from the determination table. Adding it would require creating the item category from scratch, which is complex customizing not available to most Cloud customers without SAP involvement.

1.4 TADL vs TADN — Choosing the Right FoC Category

This is the real decision point:

  TADL TADN + PPR0

Pricing procedure Suppressed (PRSFD=blank) Runs (Y13101)
VPRS cost condition Not determined Determined
Cost flows to COPA No No
Net value result 0 automatically 0 via PPR0 at 0.00
PPR0 condition record Not required Required per material
Incompletion log Clean Clean when PPR0 exists
When to use Quick FoC, COPA irrelevant does not, by itself, give cost visibility in COPA

Decision: TADN + PPR0 at 0.00.

Pricing runs → VPRS is determined → cost posts to COPA correctly. Net value is zero for the customer. The only overhead is maintaining one PPR0 record per free-of-charge material.

TADN FoC does not, by itself, give cost visibility in COPA.

Why: In the standard FoC setup you described, the internal cost condition (e.g., PCIP=99) is marked Statistical. Statistical conditions do not create FI/CO postings, so no ACDOCA/COPA line items are generated. Hence, you only see zero revenue; no cost flows to COPA.

To enable “FoC but cost in COPA,” you need one of these changes:

  • Make the internal cost condition non-statistical and account-determined (CBC), posting to an expense G/L → COPA.
  • Or collect costs on a CO object (Service Order/Internal Order/WBS) and settle to COPA.
  • Or record activities to cost centers and derive to COPA.

1.5 Creating the PPR0 Condition Record

TADN requires a PPR0 (list price override) condition record in pricing table 304 (Material / SalesOrg / Distribution Channel) with a rate of 0.00. Without it, the order's incompletion log shows Net Value and Pricing as missing — the same symptoms as CTAD.

We created the record via the OData API API_SLSPRICINGCONDITIONRECORD_SRV:

ConditionType:     PPR0
ConditionTable:    304
Material:          LQ_SRV-UNBOX
SalesOrganization: 1320
DistributionChan.: 20
Rate:              0.00 CNY / H
Valid:             2026-05-14 → 9999-12-31
→ Record number:   0000009310

After creation, repricing must be triggered in the sales order: Item Detail → Conditions tab → Update → Type B (new pricing). SAP will confirm: “New pricing performed for item 000020”.

Part 2: Creating the Sales Order (VA01)

With configuration in place, creating the order is straightforward.

Header Data

Navigate to VA01, order type OR, sales area 1320 / 20 / 00.

Field Value

Sold-to Party 1000260 (TD_LQ_CM03)
Customer Reference TEST-REF-001
Incoterms EXW / SHANGHAI
Payment Terms 0001
Requested Delivery Date 05/14/2026

Qi_Liu_1-1778998790930.Png

Details

Screenshot 04 — VA01 header: sold-to party, incoterms, payment terms all completed.

Item 10 — Chargeable Installation

Field Value

Material LQ_SRV-INSTALL
Order Quantity 1 H
Item Category TAD (derived automatically from SERV group)
Plant 1320
Net Value 36,000.00 CNY

TAD picks up the standard pricing condition and nets at 36,000 CNY. No manual intervention needed.

Qi_Liu_2-1778998824751.Png

 

Details

Screenshot 05 — Item 10: TAD assigned automatically, 36,000 CNY net value.

Item 20 — Free-of-Charge Unboxing

Field Value

Material LQ_SRV-UNBOX
Order Quantity 1 H
Item Category TADN (manually overridden from TAD)
Plant 1320
Net Value 0.00 CNY

Enter TADN in the ItCa field and press Enter. SAP triggers a server round-trip, finds PPR0 record 0000009310, and runs pricing — net value drops to 0.00. The status bar confirms: “New pricing performed for item 000020”.

Qi_Liu_3-1778998874204.Png

 

Details

Screenshot 06 — Item 20: TADN manually assigned, PPR0 found automatically, net value = 0.00 CNY.

Sales Order Overview — Final State

Qi_Liu_4-1778998928258.Png

 

Details

Screenshot 08 — SO 575 final overview: item 10 (TAD, 36,000 CNY) + item 20 (TADN, 0.00 CNY). Total: 36,000.00 CNY.

Part 3: Billing (VF01)

Because both items use FKREL=B (order-related billing), there is no delivery to create and no service confirmation to process. Go directly to VF01.

  1. Open VF01
  2. Enter SO 575 in the “Documents to Be Processed” grid
  3. Press Enter — SAP proposes billing type F2 (Invoice) and loads both items
  4. Verify net value: 36,000.00 CNY (item 10 contributes 36,000; item 20 contributes 0.00)
  5. Save

Result: Invoice 90000455 saved successfully.

Qi_Liu_5-1778998951982.Png

 

Details

Screenshot 09 — VF01: SO 575 entered, F2 Invoice proposed, net value 36,000.00 CNY.

Qi_Liu_6-1778998980160.Png

 

Details

Screenshot 10 — VF01 save confirmation: “Document 90000455 has been saved.”

Part 4: Document Flow and FI Posting

Open SO 575 in VA03 and click Display Document Flow to see the complete chain.

Qi_Liu_7-1778999001301.Png

Details

Screenshot 11 — Document flow: SO 575 → Invoice 90000455 (Completed) → Journal Entry 9400000001 (Not Cleared).

Standard Order 0000000575 / 10    36,000.00 CNY    05/14/2026    Completed
  Invoice 0090000455 / 10         36,000.00 CNY    05/15/2026    Completed
    Journal Entry 9400000001                       05/15/2026    Not Cleared

What “Not Cleared” means: The FI journal entry has been posted — the AR (Accounts Receivable) open item is on the customer account. “Not Cleared” simply means the incoming payment has not yet been matched. The billing chain is complete; clearing happens when the bank payment arrives.

Summary

What started as a simple question — why does the incompletion log still complain about pricing when I've already set the price to zero? — turned into a full exploration of service item categories in S/4HANA Cloud.

The end-to-end path, once correctly configured:

VA01 (Create SO)
  → Item 10: TAD, 36,000 CNY (auto-derived)
  → Item 20: TADN + PPR0, 0.00 CNY (manual override)
       ↓
VF01 (Create Billing — no delivery, no confirmation)
  → F2 Invoice 90000455, 36,000 CNY
       ↓
FI Journal Entry 9400000001 (AR open item posted)

Key Takeaways

  1. CTAD is not a true free-of-charge category — its incompletion procedure requires net value > 0. A PPR0 record at 0.00 won't fix this.
  2. TANN does not exist in this S/4HANA Cloud tenant's VOV7. The error “is not defined” (not “not permitted for OR”) means the item category is completely absent.
  3. TADN + PPR0 at 0.00 is the correct pattern: pricing runs → VPRS determined → cost flows to COPA. Net value = 0 for the customer.
  4. TADL is a valid alternative only when COPA cost recording is not required — simpler, no PPR0 needed, but VPRS is never determined.
  5. VOV4 changes in S/4HANA Cloud must go through CBC (Central Business Configuration), not directly via IMG in the tenant.
  6. FKREL=B on service item categories means the entire fulfillment chain collapses to: Create SO → Create Invoice. No delivery, no service confirmation.

The features covered in this article are based on SAP S/4HANA Cloud, Public Edition 2602, please refer to the latest information for changes in subsequent versions.

Hope you LIKE it if it addresses your issue. After that, please feel free to comment after following my account and I will reply ASAP.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *