Skip to content

CAP-ACC-PRD-009Preserve migrated special prices for Commerce

Markdown

CAP-ACC-PRD-009

Preserve migrated special prices for Commerce

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

KindCapabilityProduct areaAccountingModuleProductsRevision5

Read atservices-accounting f47cb263react-console baf6dae3

The Formal Contract

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

Outcomes
Migration retains pricing information for audience realization.
Surfaces
jobapi
Intent sources
services-accounting:docs/migrations/accounting-modernization/products-a12-a13/README.md#Provenanceservices-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D4

Controls

28 controls apply, from the corpus control catalogue.

TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-IAM-006 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-AZ-006 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-DAT-001 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-CHG-001 TC-CHG-002 TC-CHG-003 TC-CHG-004 TC-CHG-006 TC-CHG-007 TC-PI-001 TC-PI-003 TC-PI-005

Permissions

KeyChecked atScope
accounting.products.updateapitenant

Business Rules

5 rules, 3 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
Migration creates a product-local audience price for each former special price and preserves its name, criteria, amount, formula and ordering in a Commerce handover.
lifecycledatabasetest
services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js#hands each special price over as a product-local audience: minted id, product, name, criteria, amount in the base currency, formula, rank
02must prove
Proposed
The former special-price list is rejected; only an empty setting remains accepted for compatibility.
validationapitest
services-accounting:modules/products/tests/e2e/product-features.e2e.spec.js#refuses a list of special prices, naming where the feature went (A12)
03
Proposed
The migration record assigns audience realization to Commerce before a migrated audience can price a purchaser.
policydocumented
04
Proposed
The handover record assigns realization marking to Commerce, with no Accounting route for editing handovers.
policydocumented
05must prove
Proposed
After Commerce’s audience table exists, an unrealized or inactive migrated audience blocks replacement that resubmits its price rows.
validationservicetest
services-accounting:modules/products/tests/integration/services/persistence/pricing-audiences.integration.spec.js#answers the built-ins and the tenant’s active audiences among the ids asked: not an inactive one, not another tenant’s, not the ids held

Scenarios

IdGivenWhenThenProvenance
01A migrated product formerly offered a life-member special price.Migration transfers its pricing information.A local audience row and Commerce handover retain the special price, with realization still required.documented

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.