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 to 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?]