Skip to content

SAP SD — Sales & Distribution Complete Guide

DodaTech 9 min read

In this tutorial, you'll learn about SAP SD. We cover key concepts, practical examples, and best practices.

SAP SD (Sales and Distribution) manages sales in SAP S/4HANA — pricing, orders, deliveries, and billing across the complete quote-to-cash lifecycle.

What You'll Learn

SAP SD controls the entire sales process — from customer inquiry to order entry, delivery, billing, and payment collection — all connected to inventory and finance.

Why It Matters

Every revenue dollar flows through SD. If the sales order has wrong prices, shipping dates, or billing terms, the company loses money, customers get angry, and financial statements become unreliable.

Doda Browser uses SD-inspired pricing engines for its ad and subscription tiers — a customer's profile, usage history, and discounts are combined into a final price just like SAP SD condition types.

Real-World Use

A distributor sells 1000 laptops to a retailer. The salesperson enters one sales order. SD automatically checks the customer's credit limit ($500,000 — approved), checks stock availability (850 in warehouse, 150 on order), calculates pricing ($1000 each minus 10% volume discount plus freight), and schedules delivery. From one transaction, the warehouse gets a pick list, the customer gets an invoice, and finance records $900,000 in revenue.

Learning Path

flowchart LR
  A[SAP Overview] --> B[SAP Modules]
  B --> C[SAP MM]
  C --> D[SAP SD
You are here] D --> E[SAP HR/HCM]

What Is SAP SD?

SAP SD manages the sell side of the business. Think of it as the company's ordering system — everything from "Can I buy this?" to "Here's your invoice, please pay."

The full SD process is called O2C (Order-to-Cash):

flowchart LR
  A[Inquiry] --> B[Quotation]
  B --> C[Sales Order]
  C --> D[Delivery]
  D --> E[Goods Issue]
  E --> F[Billing]
  F --> G[Payment]

Core Components

Component Purpose Key TCode
Customer Master Customer name, address, payment terms, pricing BP, XD01, XD02
Sales Order Processing Order entry, availability check, delivery scheduling VA01, VA02, VA03
Pricing Price calculation with discounts, surcharges, taxes VOV8, VK11
Delivery Picking, packing, shipping, goods issue VL01N, VL02N
Billing Invoice, credit memo, debit memo VF01, VF02
Credit Management Credit limit check and monitoring F.31, OVA8

Master Data in SD

SD uses three levels of master data:

Customer Master

Level What It Stores Example
General Name, address, tax ID, bank Same across all company codes
Company Code Payment terms, reconciliation account Different for each legal entity
Sales Area Pricing, shipping, sales group Different for each sales channel

Material Master (Sales View)

The sales view of a material defines:

  • Base unit of measure (each, box, kg)
  • Minimum order quantity
  • Loading group
  • Item category group (standard, configurable, service)

Condition Master (Pricing)

Pricing conditions store the actual prices, discounts, and surcharges:

* ABAP: Read pricing condition from table KONP
DATA: lt_konp TYPE TABLE OF konp.

SELECT * FROM konp
  WHERE knumh IN ( SELECT knumh FROM konh
                    WHERE kappl = 'V'
                      AND kschl = 'PR00'
                      AND datbi >= sy-datum )
  INTO TABLE lt_konp
  UP TO 10 ROWS.

LOOP AT lt_konp ASSIGNING FIELD-SYMBOL(<ls_konp>).
  WRITE: / 'Condition record:', <ls_konp>-knumh,
         / 'Amount:', <ls_konp>-kbetr.
ENDLOOP.

* Output:
* Condition record: 0000001234
* Amount: 100.00

Sales Order Processing (VA01)

Creating a sales order is the central event in SD. Here is what happens when you enter VA01:

Step-by-Step Flow

  1. Enter customer, material, quantity, date
  2. System performs:
    • Credit check: Is the customer under their limit?
    • ATP check: Available-to-promise — is stock available?
    • Pricing: Calculate net price from condition table
    • Tax determination: Apply correct tax rate
    • Delivery scheduling: Calculate route and delivery date
  3. Order saved with unique document number
* ABAP: Create sales order using BAPI
DATA: ls_header TYPE bapisdh1,
      lt_items TYPE TABLE OF bapisditm,
      lt_partners TYPE TABLE OF bapiparnr,
      lt_return TYPE TABLE OF bapiret2.

ls_header-doc_type = 'OR'.
ls_header-sales_org = '1000'.
ls_header-distr_chan = '10'.
ls_header-division = '00'.

lt_items = VALUE #( ( material = 'BATTERY-100'
                      target_qty = 500
                      plant = 'PL01'
                      partwmn = 1
                      partn_numb = 'CUSTOMER-001' ) ).

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
  EXPORTING
    order_header_in       = ls_header
  TABLES
    order_items_in        = lt_items
    order_partners        = lt_partners
    return                = lt_return.

* Output: Sales order 1000001234 created

Pricing in SD

SD pricing is the most powerful and complex pricing engine in any ERP system. It uses condition technique:

Condition Type Description Example Value
PR00 Base price $100.00
K004 Material discount -$5.00
K005 Customer discount -$10.00
KF00 Customer group discount -$3.00
VPRS Cost $60.00
FK01 Freight $8.00
MWST Tax $7.50
NET VALUE Final net price $97.50

How Pricing Is Calculated

SAP reads condition records in a pricing procedure (maintained in VOV8). Each condition type has:

  • Step number: Calculation sequence
  • Condition type: What to calculate
  • From / To step: Basis for calculation (e.g., tax calculated on subtotal)
  • Manual flag: Can the user override the price?
* ABAP: Display sales order pricing
DATA: lt_komv TYPE TABLE OF komv.

SELECT * FROM komv
  WHERE knumv = '00001001234'
  INTO TABLE lt_komv.

LOOP AT lt_komv ASSIGNING FIELD-SYMBOL(<ls_komv>).
  WRITE: / <ls_komv>-kschl,
         <ls_komv>-kbetr CURRENCY 'USD',
         <ls_komv>-krate.
ENDLOOP.

* Output:
* PR00       100.00  100.00
* K004       -5.00    -5.00
* MWST        7.50     7.50

Delivery and Goods Issue

Outbound Delivery (VL01N)

The delivery document:

  • References the sales order
  • Specifies picking location and quantity
  • Determines shipping point and route
  • Manages handling units (pallets, boxes)

Picking and Goods Issue

MM integration triggers during delivery:

  1. Warehouse picks the items (can use barcode scanning via SAP WM or EWM)
  2. Goods issue is posted (movement type 601)
  3. MM: Inventory decreases by the picked quantity
  4. FI: Cost of goods sold is recorded

Billing (VF01)

Billing creates the invoice for the customer. Billing types include:

Document Type Use
F2 Standard invoice
G2 Credit memo
L2 Debit memo
S1 Proforma invoice (not legally binding)

Each billing document posts to FI automatically:

  • Debit: Customer account (Accounts Receivable)
  • Credit: Revenue account (P&L)

Credit Management

SAP SD credit management prevents sales to risky customers:

Strategy How It Works
Static credit limit Fixed limit; order blocked if exceeded
Dynamic credit limit Limit = (static limit + open orders + AR balance)
Credit horizon Check only orders within a rolling window

A blocked order sits until the credit controller reviews and releases it (transaction code VKM1).

Security Angle

SD pricing manipulation is a real attack vector. A malicious user with condition table access could change prices to zero or apply unauthorized discounts. SAP controls this via:

  • Authorization object V_VKOND: Controls who can create/change condition records
  • Pricing audit log: Available in SAP S/4HANA to track condition changes
  • Document flow: Every SD document links back to its source — you can trace a billing document to its sales order and delivery

Durga Antivirus Pro uses SD-style document flow for licensing — each license key is traceable from order through delivery to activation, preventing ghost licenses.

Common Errors

1. Incomplete Log

The sales order has a red "incomplete" status. Missing data: customer PO number, incoterms, or payment terms. Use transaction code V.02 to process the incomplete log.

2. Pricing Procedure Returns Zero Price

The condition record PR00 is missing or expired. Check VK11 for the material/customer combination and verify validity dates.

3. ATP Check Fails — No Stock Available

Material is out of stock and no re-supply is scheduled. Options: schedule a later delivery, do a partial delivery, or transfer stock from another plant.

4. Credit Limit Exceeded

The customer's open orders + AR balance exceed their credit limit. The order is blocked in VA01. Use VKM1 to review and release.

5. Delivery Cannot Be Created

The sales order has no schedule line or the delivery plant is missing. Check the item details in VA02 — ensure the schedule line tab has quantity and date.

6. Billing Due List Doesn't Pick Up the Billing Document

The billing block on the sales order or delivery hasn't been removed. Check item details and delivery for billing blocks.

Practice Questions

  1. What does O2C stand for? Order-to-Cash — the end-to-end sales process from inquiry to payment.

  2. What transaction code creates a sales order? VA01. Enter customer, material, quantity, and schedule date.

  3. What is a condition type in SD pricing? A pricing element like base price (PR00), discount (K004), or tax (MWST). Condition types are combined in a pricing procedure.

  4. How does SD check inventory availability? Through the ATP check (Available-to-Promise), which reads current stock, scheduled receipts, and planned issues.

  5. What happens when a billing document is posted? FI receives a document debiting the customer account (AR) and crediting the revenue account. CO receives profitability data.

Challenge: A sales order has price $500 with a 15% customer discount and 8% tax. The system returns $459 net (not $459.50). Find the rounding rule in the pricing procedure and explain the difference.

Real-World Task: You are the SD consultant for a furniture company. Create a sales order for 50 chairs to customer "FURN-RETAIL-01" at $120 each. Apply a 5% new customer discount. Create the delivery and post goods issue. Create the billing document.

How does SAP SD differ from SAP CRM?

SD handles transactional sales processes — orders, deliveries, billing. CRM handles marketing, lead qualification, opportunity management, and customer interaction history. They integrate seamlessly in SAP S/4HANA.

What is a billing due list?

The billing due list (VF04) shows all deliveries that are ready for billing. You select the relevant documents and create invoices in bulk. It is the standard way to process high-volume billing.

What is the difference between a debit memo and a credit memo in SD?

A credit memo (G2) reduces what the customer owes — used for returns or price corrections. A debit memo (L2) increases what the customer owes — used for under-billing or additional charges.

What's Next

Tutorial What You'll Learn
SAP Overview — Complete Guide Foundational SAP ERP concepts
SAP MM — Materials Management Guide How MM provides inventory data for SD sales orders
SAP ABAP Programming Write ABAP programs to automate SD processes

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-21.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro