Feature: Add 24-hour cleanup for incomplete orders and update status display

- Create cleanupOrders utility to delete pending orders older than 24 hours
- Update admin notifications to only count recent pending orders (< 24h old)
- Automatically call cleanup when customer initiates checkout
- Change status display from "PENDING" to "Waiting payment" for customer-facing views
- Update both customer account page and admin orders page with new status label
- Incomplete orders automatically purged, reducing admin clutter

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Andymick
2026-07-19 07:50:55 +01:00
co-authored by Claude Haiku 4.5
parent fa202db4a7
commit 3e90928986
6 changed files with 48 additions and 3 deletions
+4
View File
@@ -6,6 +6,7 @@ import { getEffectivePrice } from '@/lib/pricing';
import { fetchActivePromotions } from '@/lib/promotions';
import { checkRateLimit, getClientIp } from '@/lib/rateLimit';
import { getRoyalMailShippingQuotes } from '@/lib/royalmail-shipping';
import { cleanupPendingOrders } from '@/lib/cleanupOrders';
type CheckoutCartItem = {
productId: string;
@@ -51,6 +52,9 @@ export async function POST(req: Request) {
);
}
// Clean up old incomplete orders (non-blocking)
cleanupPendingOrders().catch((err) => console.error('Cleanup error:', err));
const body = await req.json();
console.log('Checkout request received with items:', body.items?.length, 'customerId:', body.customerId);
const items: CheckoutCartItem[] = body.items ?? [];