Verified purchase badge distinguishes buyer reviews from non-buyer reviews
Why it matters
The FTC Endorsement Guides (revised 2023) explicitly require that "Verified Purchase" or equivalent indicators be truthful — displaying the badge for reviews from non-buyers is a deceptive endorsement. Beyond legal risk, unverified reviews mixed into the same display as genuine buyer reviews dilute trust: a product with 100% "Verified Purchase" badges where the badge is just hardcoded to true will have the label completely reverse-fired when a single fraudulent review is exposed publicly. The verified_purchase check must reach into order history at submission time to have any meaning; a database field alone without that query is cosmetic.
Severity rationale
Medium because a hardcoded or query-free verified-purchase badge violates FTC endorsement guidelines and misleads shoppers without allowing unauthorized data access.
Remediation
Check order history at review submission time in api/reviews/submit and expose the badge in components/ReviewItem.tsx.
ALTER TABLE reviews ADD COLUMN verified_purchase BOOLEAN NOT NULL DEFAULT FALSE;
// api/reviews/submit
const purchase = await db.orders.findFirst({
where: { user_id: userId, product_id: productId, status: 'completed' }
})
await db.reviews.create({
data: {
verified_purchase: purchase !== null,
// ...
}
})
// components/ReviewItem.tsx
{review.verified_purchase && (
<span className="badge-verified" aria-label="Verified Purchase">
✓ Verified Purchase
</span>
)}
Never set verified_purchase: true on insert without the order lookup — the badge only has legal standing if it reflects an actual completed transaction.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Reviews & Social Proof Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · ftc-endorsement-guides-verified-purchase — FTC Endorsement Guides — 16 CFR Part 255: Disclosure of Material Connections (Verified Purchase)
Taxons
History
- 2026-04-18·v1.0.0·Initial import from ecommerce-reviews·automated