feat: add order item exception system for graceful product matching
Replaces the "fail on missing product" behavior with graceful handling: - Orders import even when products aren't found by GTIN - Unmatched items link to a per-vendor placeholder product - Exceptions tracked in order_item_exceptions table for QC resolution - Order confirmation blocked until exceptions are resolved - Auto-matching when products are imported via catalog sync New files: - OrderItemException model and migration - OrderItemExceptionService with CRUD and resolution logic - Admin and vendor API endpoints for exception management - Domain exceptions for error handling Modified: - OrderItem: added needs_product_match flag and exception relationship - OrderService: graceful handling with placeholder products - MarketplaceProductService: auto-match on product import - Letzshop confirm endpoints: blocking check for unresolved exceptions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,7 @@ from . import (
|
||||
marketplace,
|
||||
monitoring,
|
||||
notifications,
|
||||
order_item_exceptions,
|
||||
orders,
|
||||
products,
|
||||
settings,
|
||||
@@ -115,6 +116,11 @@ router.include_router(inventory.router, tags=["admin-inventory"])
|
||||
# Include order management endpoints
|
||||
router.include_router(orders.router, tags=["admin-orders"])
|
||||
|
||||
# Include order item exception management endpoints
|
||||
router.include_router(
|
||||
order_item_exceptions.router, tags=["admin-order-exceptions"]
|
||||
)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Marketplace & Imports
|
||||
|
||||
Reference in New Issue
Block a user