An e-commerce PRD template must include payment failure handling, inventory edge cases (out of stock, partial fulfillment), tax and shipping calculation logic, returns and refunds flow, and conversion metrics as success criteria. Generic PRD templates treat all features as equivalent; e-commerce features have specific failure modes — an abandoned cart at payment, a botched refund, a tax miscalculation — that cost money directly. This template prevents those failures by documenting the decisions before engineering writes a line of code.
The e-commerce PRD template
1–10. Standard sections
Use the standard 10-section PRD template as the base. For e-commerce features, the success metrics section (section 4) must use conversion metrics — not engagement metrics.
Conversion metrics for section 4 (required for e-commerce PRDs)
Metric Baseline Target Timeframe Add-to-cart rate [Current %] [Target %] 30 days post-launch Checkout initiation rate [Current %] [Target %] 30 days post-launch Checkout completion rate [Current %] [Target %] 30 days post-launch Payment failure rate [Current %] [Target %] 30 days post-launch Average order value [$X] [$X+Y] 60 days post-launch
11. Payment handling
Payment methods supported: [Credit/debit (Visa, Mastercard, Amex), Apple Pay, Google Pay, PayPal, buy-now-pay-later (Klarna / Afterpay), bank transfer — state which are in scope for v1]
Payment processor: [Stripe / Braintree / Adyen / Square — state the processor and what changes, if any, this feature requires]
Soft decline handling: When a card is soft-declined (insufficient funds, velocity check), show a specific error message and offer to try a different card. Do not show a generic error. Log the decline reason for analytics.
Hard decline handling: When a card is hard-declined (card reported stolen, fraud), show a generic "payment could not be processed" message. Do not indicate that the card is flagged. Log for fraud review.
3DS (3D Secure) authentication: [Required for EU users under PSD2. State how 3DS challenges are handled in the checkout flow — inline modal or redirect?]
Payment retry logic: [Allow user to retry with same card? Different card? After how many failed attempts does the order cancel?]
12. Inventory edge cases
Out of stock at checkout: If an item goes out of stock between add-to-cart and checkout submission, show an inline error at checkout — do not allow the order to complete. Offer: remove the item, or save to wishlist and be notified.
Partial fulfillment: If a multi-item order has one item out of stock at fulfillment time: [ship available items immediately and ship remainder when in stock / cancel out-of-stock item and refund / hold entire order until all items available — state the policy]
Oversell protection: [State the mechanism that prevents selling more units than available — database lock, pessimistic inventory reservation at add-to-cart, or optimistic check at payment capture]
Pre-order inventory: [If applicable: how is pre-order inventory tracked, what happens if pre-order demand exceeds supply, and how are customers notified of a delay?]
13. Tax and shipping calculation
Tax calculation: [TaxJar / Avalara / manual rates — state the provider. State which jurisdictions require tax collection. State how tax is displayed: included in price vs. added at checkout.]
Shipping calculation: [Flat rate / weight-based / real-time carrier rates (FedEx, UPS, USPS) — state the method. At what cart value does free shipping apply?]
International shipping: [Supported / not supported for v1. If supported: which countries? Who is responsible for customs declarations? Duty and import tax responsibility: seller (DDP) or buyer (DDU)?]
14. Returns and refunds flow
Return window: [30 days from delivery — state the policy]
Return initiation: [Self-serve via order history / contact support — state which is in scope for v1]
Refund processing time: [3–5 business days to original payment method — state the SLA]
Restocking fee: [None / X% — state the policy]
Non-returnable items: [Digital goods, personalized items, final sale — list explicitly]