Implement ACP fulfillment options — shipping, digital delivery, in-store pickup, and local delivery. Use when building fulfillment selection, rate calculation, delivery window management, or tracking integration.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add OrcaQubits/agentic-commerce-skills-plugins --skill acp-fulfillment --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Acp Fulfillment?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/orcaqubits-acp-fulfillment-agentic-commerce-skills-plugin)More formats (shields.io, HTML) on the badges page.
---
name: acp-fulfillment
description: Implement ACP fulfillment options — shipping, digital delivery, in-store pickup, and local delivery. Use when building fulfillment selection, rate calculation, delivery window management, or tracking integration.
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch
---
# ACP Fulfillment
## Before writing code
**Fetch live docs**:
1. Fetch `https://developers.openai.com/commerce/specs/checkout/` — fulfillment options are part of the checkout spec
2. Web-search `site:github.com agentic-commerce-protocol spec json-schema FulfillmentOption` for the schema
3. Web-search `site:github.com agentic-commerce-protocol rfcs orders fulfillment` for fulfillment in orders
## Conceptual Architecture
### Four Fulfillment Types
| Type | Use Case | Key Fields |
|------|----------|------------|
| **shipping** | Physical delivery to address | Carrier, tracking number/URL, delivery windows |
| **digital** | Downloads, licenses, access | Access URL, license key, expiration date |
| **pickup** | In-store or locker collection | Location, ready-by window, pickup-by deadline |
| **local_delivery** | Same-day/local service delivery | Service area, delivery window |
### How Fulfillment Works in Checkout
1. **Create session** — Merchant returns available `fulfillment_options[]` based on items and address
2. **Agent selects** — Agent (or buyer) picks a `fulfillment_option_id`
3. **Update session** — Agent sends the chosen `fulfillment_option_id` in an update
4. **Merchant recalculates** — Totals update to include fulfillment cost
5. **Post-purchase** — Merchant emits order updates with tracking and delivery details
### FulfillmentOption Object
Each option includes:
- `id` — Unique identifier for this option
- `type` — One of the four types above
- `title` — Display name (e.g., "Standard Shipping")
- `subtitle` — Additional info (e.g., "5-7 business days")
- `carrier` — Carrier name for shipping
- Delivery window (estimated dates/times)
- Pricing — Cost of this fulfillment option
### Delivery Windows
Time-based constraints:
- **Estimated delivery** — Date range for when buyer can expect delivery
- **Ready-by** (pickup) — When the order will be ready for collection
- **Pickup-by** (pickup) — Deadline to collect before order is returned
- **Delivery window** (local delivery) — Time slot for delivery
### Fulfillment in Orders
After checkout completion, fulfillment details appear in order webhook events:
- Tracking number and tracking URL
- Carrier name
- Shipment status updates
- Delivery confirmation
### Best Practices
- Return all available fulfillment options on session create (not just the cheapest)
- Compute fulfillment costs based on actual address (not estimates)
- Include realistic delivery windows — agents present these to buyers
- Update tracking information in real-time via order webhooks
- Support multiple fulfillment groups for split shipments
- Handle address validation before computing fulfillment options
Fetch the checkout spec and JSON schema for exact FulfillmentOption field names, types, and required fields before implementing.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!