Fix Stripe authorization lifecycle timing

This commit is contained in:
twooey committed 2026-08-28 17:18:54 -04:00
1 parent 21038d68ca
commit 61ea299b0e
5 files changed
+157 -19

No files matched your search

+6 -4
View File
@@ -219,10 +219,12 @@ card is actually charged for the first time here) before moving to
no sellable offer, margin no longer holds, fraud check fails, or the
supplier submission itself fails — lands the order in `bsc-exception`
("Needs Review"), which is the review queue: just a filterable
WooCommerce order status, not a separate table. Because nothing is
charged until capture, most failures are a **void** (`AuditTrail::record_void()`,
zero cost) rather than a refund — a refund only happens for the rarer
case of something going wrong *after* a real capture.
WooCommerce order status, not a separate table. Because nothing is charged
until capture, most failures request a zero-cost authorization release rather
than a refund. They remain in **Needs Review** until the Stripe order note or
dashboard confirms release; only then should `AuditTrail::record_void()` be
recorded. A refund is reserved for the rarer case of something going wrong
*after* a real capture.
`wp bookstore force-offer-status <isbn13> <active|stale|discontinued>` (see
`wp bookstore help`) forces a specific ISBN's synthetic offer into a