01must proveConfirmed | Portal buyers work with carts belonging to their contact or naming them as the acting contact; authorized console staff can work with any cart in the workspace. no proof recorded yet | permission | api, service | test |
02must proveConfirmed | Before an item is saved, validation reports all detected problems with sale availability, registered ownership, positive whole quantities and purchase limits, required item details, and supported currency. no proof recorded yet | validation | api, service | test |
03must proveConfirmed | A cart requires record identifiers for its buyer, acting contact, bill-to party and item recipients, and rejects slugs with a field-specific error before writing. no proof recorded yet | validation | api | test |
04must proveConfirmed | Organization purchases use product purchasing roles first, store roles next and an active affiliation otherwise; staff with order-placing authority can bypass that check for a named contact, with the override recorded. ✓ Authorized staff purchase for an organization using a named contact, with the override retained.✗ A portal buyer without the required organizational purchasing role receives a refusal. no proof recorded yet | permission | service | test |
05must proveConfirmed | Authorized staff can sell unpublished products and products outside the store assortment, while portal buyers receive an explanation and their cart remains unchanged. no proof recorded yet | policy | service | test |
06must proveConfirmed | Changes to an open cart advance its version and record the acting identity in its history, including actions by Rhythm support. no proof recorded yet | invariant | service, database | test |
07must proveConfirmed | Carts expire seven days after creation, and the minute sweep abandons expired open carts in bounded expiry order using a system action within each workspace. no proof recorded yet | lifecycle | service, database | test |
08must proveConfirmed | Abandonment prevents further cart edits and releases item holds through the applications that own them. no proof recorded yet | lifecycle | service | test |
09must proveConfirmed | An application can reserve a scarce item before placement, refuse competing buyers or an excessive extension, and release the reservation when the item is removed. no proof recorded yet | policy | service | test |
10must proveConfirmed | The reservation sweep marks an item stale when its hold expires and makes the reserved resource available again. no proof recorded yet | lifecycle | service | test |
11must proveConfirmed | A bundle child must refer to a parent already present in the cart, or validation rejects it. no proof recorded yet | validation | api, service | test |
12must proveConfirmed | Process references can contain 500 characters on a cart, but application calls omit references exceeding the shared contract’s 128-character limit. no proof recorded yet | validation | api, service | test |
13must proveConfirmed | A shipping choice records the selected strategy, and clearing that choice removes it from the cart. no proof recorded yet | policy | service | test |
14must proveConfirmed | A cart can move from open to preparing, abandoned or cancelled, and from preparing back to open or onward to placed; terminal carts refuse further transitions, and placement requires an order link. no proof recorded yet | lifecycle | service | observed |