Blanket Purchase Orders
Complete guide to Blanket Purchase Orders (BPOs) for volume-based vendor agreements.
Overview
BLANKET PURCHASE ORDER CONCEPT
═══════════════════════════════════════════════════════════════════
BLANKET PO RELEASE ORDERS
────────── ──────────────
┌─────────────────────────┐
│ Blanket PO: BPO-001 │
│ Vendor: ABC Supplies │
│ Item: WIDGET-100 │
│ Total Qty: 10,000 │
│ Price: $20.00/unit │
│ Period: Jan-Dec 2026 │
│ Total Value: $200,000 │──┬──► Release 1: 2,000 units ($40,000)
└─────────────────────────┘ │
├──► Release 2: 3,000 units ($60,000)
│
├──► Release 3: 2,500 units ($50,000)
│
└──► Release 4: 2,500 units ($50,000)
─────────────────────────────────
Total Released: 10,000 ($200,000)
BPO vs Purchase Contract
| Feature | Blanket PO | Purchase Contract |
|---|---|---|
| Primary Focus | Quantity commitment | Price agreement |
| Pricing | Fixed price | Tiered/variable pricing |
| Order Creation | Release orders | Linked POs |
| Tracking | Quantity released | Amount spent |
| Best For | Bulk purchasing | Ongoing buying |
When to Use BPO
USE CASE DECISION
───────────────────────────────────────────────────────────
Use Blanket PO when:
✓ Fixed price negotiated for specific quantity
✓ Multiple deliveries over time
✓ Need to track remaining quantity
✓ Volume discount from bulk commitment
Use Purchase Contract when:
✓ Variable/tiered pricing
✓ Multiple items with different terms
✓ Price-focused (not quantity-focused)
✓ Need min/max spend tracking
Prerequisites
Feature Enablement
ENABLE BLANKET PURCHASE ORDERS
───────────────────────────────────────────────────────────
Navigation: Setup > Company > Enable Features
Transactions Tab:
☑ Purchase Orders (Required)
☑ Blanket Purchase Orders (Required)
Creating a Blanket PO
Step-by-Step
CREATE BLANKET PURCHASE ORDER
═══════════════════════════════════════════════════════════════════
Navigation: Transactions > Purchases > Enter Blanket Purchase Order
Step 1: Header Information
┌────────────────────────────────────────────────────────────────┐
│ Vendor: ABC Supplies Inc. │
│ Date: 01/15/2026 │
│ Memo: 2026 Annual Widget Supply │
│ │
│ Terms: Net 30 │
│ Location: Main Warehouse │
│ │
│ Effectivity: │
│ Start Date: 01/01/2026 │
│ End Date: 12/31/2026 │
└────────────────────────────────────────────────────────────────┘
Step 2: Add Items
┌────────────────────────────────────────────────────────────────┐
│ Item Description Quantity Rate Amount │
│ ──── ─────────── ──────── ──── ────── │
│ WIDGET-100 Widget Standard 10,000 $20.00 $200,000 │
│ SUPPLY-001 Office Supplies 5,000 $5.00 $25,000 │
└────────────────────────────────────────────────────────────────┘
Step 3: Save
Status: Open
Ready for release orders
BPO Fields
Header Fields
| Field | Description | Required |
|---|---|---|
| Vendor | Supplier | Yes |
| Date | BPO creation date | Yes |
| Start Date | Effectivity start | Yes |
| End Date | Effectivity end | Yes |
| Terms | Payment terms | No |
| Location | Delivery location | No |
Line Fields
| Field | Description |
|---|---|
| Item | Item to purchase |
| Quantity | Total committed quantity |
| Rate | Fixed unit price |
| Amount | Extended total (Qty × Rate) |
Release Orders
Creating Release Orders
CREATE RELEASE ORDER FROM BPO
───────────────────────────────────────────────────────────
Method 1: From BPO Record
1. Open Blanket PO record
2. Click "Release Order" button
3. Specify release quantity
4. Save as Purchase Order
Method 2: From PO Entry
1. Create new Purchase Order
2. Select Blanket PO field
3. Choose the BPO
4. Items and pricing auto-populate
5. Adjust quantity as needed
Release Order Example
RELEASE ORDER CREATION
───────────────────────────────────────────────────────────
Blanket PO: BPO-00042
├── Item: WIDGET-100
├── Total Committed: 10,000 units
├── Already Released: 5,000 units
└── Available: 5,000 units
Release Order:
┌────────────────────────────────────────────────────────┐
│ Create Release Order │
│ │
│ Item: WIDGET-100 │
│ Available: 5,000 units │
│ Release Qty: [2,000] │
│ │
│ Expected Delivery: 02/15/2026 │
│ │
│ [Cancel] [Create PO] │
└────────────────────────────────────────────────────────┘
Result: PO-00567 created for 2,000 units at $20.00/unit
BPO Tracking
Status Tracking
BLANKET PO STATUS VIEW
───────────────────────────────────────────────────────────
BPO-00042: 2026 Widget Supply
┌────────────────────────────────────────────────────────┐
│ Status: Open │
│ Effectivity: 01/01/2026 - 12/31/2026 │
├────────────────────────────────────────────────────────┤
│ Item Committed Released Available % │
│ ──── ───────── ──────── ───────── ─ │
│ WIDGET-100 10,000 7,000 3,000 70% │
│ SUPPLY-001 5,000 2,500 2,500 50% │
├────────────────────────────────────────────────────────┤
│ Total Value: $225,000 │
│ Released: $152,500 │
│ Remaining: $72,500 │
└────────────────────────────────────────────────────────┘
Linked Transactions
BPO RELATED TRANSACTIONS
───────────────────────────────────────────────────────────
BPO-00042: Related Records
Release Orders (Purchase Orders):
├── PO-00501 2,000 units $40,000 01/15/2026 Received
├── PO-00523 3,000 units $60,000 02/20/2026 Received
├── PO-00567 2,000 units $40,000 03/15/2026 Pending
└── Total: 7,000 units $140,000
Related Bills:
├── BILL-001 2,000 units $40,000 01/25/2026 Paid
└── BILL-002 3,000 units $60,000 03/01/2026 Open
Scheduled Deliveries
Delivery Schedule Setup
SCHEDULED DELIVERIES
───────────────────────────────────────────────────────────
For predictable delivery needs, set up schedule:
BPO-00042 Delivery Schedule:
┌────────────────────────────────────────────────────────┐
│ Item: WIDGET-100 │
│ Total Qty: 10,000 │
│ │
│ Schedule: │
│ Q1 (Jan-Mar): 2,500 units │
│ Q2 (Apr-Jun): 2,500 units │
│ Q3 (Jul-Sep): 2,500 units │
│ Q4 (Oct-Dec): 2,500 units │
│ │
│ Create release orders according to schedule │
└────────────────────────────────────────────────────────┘
Note: NetSuite doesn't auto-create releases.
Use saved search/workflow for reminders.
BPO Statuses
| Status | Description | Can Release? |
|---|---|---|
| Pending Approval | Awaiting approval | No |
| Open | Active, within dates | Yes |
| Fully Released | All quantity released | No |
| Closed | Manually closed | No |
| Expired | Past end date | No |
Status Transitions
BPO STATUS FLOW
───────────────────────────────────────────────────────────
Pending Approval ──► Open ──┬──► Fully Released
│
├──► Closed (manual)
│
└──► Expired (date passed)
Quantity Enforcement
Over-Release Prevention
QUANTITY ENFORCEMENT
───────────────────────────────────────────────────────────
Scenario: Attempt to release more than available
BPO Available: 3,000 units
Release Request: 5,000 units
Options (configurable):
1. BLOCK: Cannot create release order
Error: "Release quantity exceeds available"
2. WARN: Warning but allow override
Warning: "Requested qty exceeds available"
Proceed? [Yes] [No]
3. ALLOW: No restriction
Release created (BPO shows negative available)
Reporting
BPO Status Report
BLANKET PO STATUS REPORT
───────────────────────────────────────────────────────────
Navigation: Reports > Purchases > Blanket PO Status
Sample Report:
┌────────────────────────────────────────────────────────────────┐
│ BPO# Vendor Item Committed Released % │
│ ──── ────── ──── ───────── ──────── ─ │
│ BPO-00042 ABC Supplies WIDGET-100 10,000 7,000 70 │
│ BPO-00043 XYZ Parts PART-200 5,000 5,000 100 │
│ BPO-00044 Global Co. SERVICE-01 12 8 67 │
└────────────────────────────────────────────────────────────────┘
Best Practices
BPO Management
| Practice | Recommendation |
|---|---|
| Quantity | Set realistic annual quantities |
| Pricing | Document price negotiation |
| Dates | Align with fiscal year |
| Tracking | Review utilization monthly |
| Renewal | Start renewal 60 days before expiry |
Common Issues
| Issue | Cause | Resolution |
|---|---|---|
| Can't release | BPO expired | Extend or create new BPO |
| Wrong price on release | BPO not selected | Link PO to BPO |
| Over-released | No enforcement | Enable quantity check |
| BPO not found | Search filter | Check date/status filters |
Related Topics
- Contract Setup - Purchase Contracts
- Contract Fulfillment - PO creation
- Contract Reporting - Analysis