Recommendation
What It Models
A recommendation rule determines a suggestion at an application placement. Evaluation produces offers for a particular subject, including deliberate holdouts. Supported suggestions include related products, add-ons and upgrades, with acceptance or dismissal recorded separately from presentation.
Identity and Attributes
Rules use readable keys and distinct names. Qualified keys identify placements and registered application flows. Offer identifiers connect accepted items to checkout and order lines. Displayed amounts expire with the quote and are recalculated by ordinary checkout processing.
Relationships
Related candidates come from listings, prices come from quotes and promotion actions use codes. Store restrictions narrow a rule’s scope. Commerce seeds five storefront placements.
Invariants
Validation constrains kinds, actions and placement limits. Presentation fixes protected rule fields, and holdout calculation is stable. Completed responses repeat safely in sequential requests, but the history index alone does not prove once-only concurrent checkout actions. Anonymous estimates cannot be accepted.
How It Is Stored and Shared
Recommendations owns rules, placement bindings, flow declarations, presentations and interactions. Acceptance calls checkout workflows to add or replace items. Promotion application and acceptance history use separate commits. No custom-field capability or external change event is declared.
Open Design Questions
Product scope is still open and no staff administration screen exists. Membership-savings evaluation, application-flow execution and presentation retention remain deferred. Concurrent first acceptance needs proof or serialization.