- shop.cart.prices_as_options (env SHOP_CART_PRICES_AS_OPTIONS, default off):
adding a ProductPrice of a plain (non-pool, non-booking) product stores the
product as the line with that price_id, so cart, checkout line and invoice
show the product and its option. Lines merge only with the same option.
- CartItemResource adds price_id, parameters (what the buyer attached, e.g. a
brief) and purchasable.virtual (no shipping needed).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
PurchaseResourceTest::it_translates_e_commerce_columns_into_loan_vocabulary
relied on the real wall clock falling inside the fixture's loan window
(2026-05-14..2026-05-28); once that window passed, the loan resolved to
`overdue` and the test failed. Freeze the clock inside the window like its
sibling tests already do.
Update the README test/assertion badges and the Testing section to the current
suite size (1400 tests, 3755 assertions) after the subscription-checkout tests.