Validates a commercial order to trigger downstream logistic processing.
This is the final step of the checkout process. It transitions the order from a draft phase to a confirmed state.
Once validated:
- All linked logistic orders are marked as CREATED.
- The commercial order is flagged with isValidated = true.
- If no payment method is attached, the order's payment status is set to NOT_INITIATED.
✅ Eligibility conditions:
- All logistic orders must be in status DRAFT_ORDER or DRAFT_ORDER_ON_HOLD.
- Each logistic order must have:
- A shipping address
- A billing address
- A delivery method defined
✅ Stock checks:
- Without Real-Time Pricing (RTP): Quantities are validated against stock availability, minimum/maximum purchase limits, and packaging multiples.
- With Real-Time Pricing (RTP): Stock availability is validated live using the Real-Time Data API.
✅ Payment rules:
- If the order is not derived from a quote, payment options must be validated based on the customer's account type.
- Example: BANK_WIRE_ON_DUE_DATE requires a customer account of type DUE_DATE.
🔐 Permissions:
- If the user is not the owner of the commercial order, they must have the ORDER_VALIDATE_ON_ALL_ACCOUNT permission within the same account.
Authentication: Requires a valid API key and client type.
Multistore Support: Optional headers allow scoping to a specific store and store view.
