Skip to content

CAP-COM-CAT-008Present the store’s available products

Markdown

CAP-COM-CAT-008

Present the store’s available products

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaCommerceModuleCatalog and Selling ConfigurationRevision1

Read atservices-commerce c8b66a98

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Shoppers see exclusively what is for sale to them.Authenticated buyers receive their applicable pricing and visitors receive public amounts with sign-in guidance.
Surfaces
portalapi
Intent sources
services-commerce:docs/milestones/COMM-M1-set-up-what-you-sell.md#D8services-commerce:docs/milestones/COMM-M1-set-up-what-you-sell.md#D10

Controls

21 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-006 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-TEN-004 TC-CRY-001 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-LOG-004 TC-LOG-005 TC-AVL-005 TC-PI-001 TC-PI-005 TC-PRV-001 TC-PRV-002

Permissions

KeyChecked atScope
commerce.storefront.readapitenant

Business Rules

10 rules, 7 to be proved before approval. A rule's product intent is derived from its origin: 0 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
A visible store item requires an active store, an admitted category, a published listing or direct-page unlisted listing, and an active Accounting product currently on sale and visible to the portal.
origin: COMM-M1 D8 (docs/milestones/COMM-M1-set-up-what-you-sell.md)
no proof recorded yet
policyservicetest
services-commerce:modules/catalog/tests/unit/storefront/storefront-visibility.spec.js#removes a product not yet on sale, and one whose sale has ended (the end exclusive)
02must prove
Proposed
Signed-in buyers lose products their purchase eligibility refuses; anonymous visitors retain those products with a notice that signing in may change availability.
no proof recorded yet
policyservicetest
services-commerce:modules/catalog/tests/integration/services/storefront/storefront-listings.integration.spec.js#is not evaluated for eligibility: a bound product is shown, flagged that signing in may change its availability
03must prove
Proposed
Visitors receive Standard pricing alongside only publicly displayed audience prices and a notice that authentication may change pricing.
origin: COMM-M1 D10 (docs/milestones/COMM-M1-set-up-what-you-sell.md)
no proof recorded yet
policyservicetest
services-commerce:modules/catalog/tests/e2e/storefront.e2e.spec.js#shows the audiences marked for public display beside the Standard price (D10): the Members price 2000, with its audience
04must prove
Proposed
Storefront pricing uses the signed-in buyer’s own identity.
no proof recorded yet
policyservicetest
services-commerce:modules/catalog/tests/e2e/storefront.e2e.spec.js#prices a portal member as themselves (the recorded member: the member price, nothing signing in could change)
05
Proposed
Absent an explicit sort, storefront lists use configured merchandising order with featured items first; search matches names and headlines and pages contain at most sixty items.
policyservicetest
services-commerce:modules/catalog/tests/integration/services/storefront/storefront-listings.queries.integration.spec.js#answers the published listings that sell now, featured first then in sort order, under the rule `all`
06
Proposed
Currency prohibition leaves a product visible with an unavailable-in-currency indication.
policyservicetest
07must prove
Proposed
Availability uses descriptive words and displays units on hand only when the listing enables a remaining count.
no proof recorded yet
calculationservicetest
services-commerce:modules/catalog/tests/unit/storefront/storefront-availability.spec.js#shows the units on hand when the listing shows its remaining count
08must prove
Proposed
Inactive stores return empty lists, unknown stores are not found, and draft or out-of-assortment products have no storefront page.
no proof recorded yet
policyservicetest
services-commerce:modules/catalog/tests/integration/services/storefront/storefront-listings.integration.spec.js#opens an unlisted product by its page, and is answered 404 for a draft and for a product another store does not sell
09
Proposed
Console readers receive removal reasons for excluded listings and a diagnostic product page rather than an unexplained not-found result.
policyservicetest
10must prove
Proposed
Public storefront requests need no authentication, use the addressed workspace alone, refuse unavailable workspaces and ignore supplied signed context.
no proof recorded yet
permissionapitest
services-commerce:modules/catalog/tests/e2e/catalog-security.e2e.spec.js#ignores a signed context it is handed: no diagnosis, the public prices

Scenarios

IdGivenWhenThenProvenance
01Style Guide is published in an active store with Standard and public Member pricesBrowse without authenticationIts presentation includes both prices and the notice that signing in may change pricingtest
services-commerce:modules/catalog/tests/e2e/storefront.e2e.spec.js#shows the audiences marked for public display beside the Standard price (D10): the Members price 2000, with its audience
02The dinner requires a membership bindingBrowse as a signed-in contact who fails the ruleThe product is excluded without a shopper-facing diagnostic tracetest
services-commerce:modules/catalog/tests/integration/services/storefront/storefront-listings.integration.spec.js#who is not a member loses the dinner to the binding, with no trace on the page

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.