Order Lifecycle Management
As an Admin, you want to have the concept of an order for single and multi payments.
Key Features:
Create an orders table with columns:+ id
+ date
+ order_status (active, failed, cancelled)
+ order_type (payment_plan, single_payment)
+ cart
+ initial_transaction_id
+ event_id
+ partner_id
+ group_id
+ member_id
Create an order id when first transaction occurs for:+ payment plan payment (reservation)
+ single payment
Add order_id references to the following tables:+ transactions
+ reservations
+ invoices
+ payment_attempts
Pass Order Id to Adyen in metadata as merchant order referenceBehavior:
An order id is created when a user initiates a single payment or payment plan reservation.Refunds, cancellations, and transfers require an order id.Failed payments update the order status to "failed".External integration with Adyen passes the order id in metadata as merchant order reference.Acceptance Criteria:
Create an orders table with specified columns.An order id is created when a user initiates a single payment or payment plan reservation.Refunds, cancellations, and transfers require an order id.Failed payments update the order status to "failed".External integration with Adyen passes the order id in metadata as merchant order reference.Notes:
The current behavior does not match the acceptance criteria for certain actions (e.g., refunds, reservations).An updated acceptance criterion is required to clearly describe when an order id is expected to be created.A task is needed to backfill every previous transaction and reservation to link to an order id.