The product/price tier thing is still fiddly.
One aim was to make it easier to carve out allocations, but we need to duplicate all the products that are affected within an allocation (e.g. to limit admissions, we need to clone full, full-s and full-sg, and then keep their prices in sync).
We have to have full, full-s and full-sg as separate products despite price being the only difference, because we also need to identify the active tier within a product, and retain previous ones because that's what purchases are tied to. This makes it hard to identify when a tier was on sale, because we don't version price_tier, which is annoying for reporting.
The only admission tickets that are for adults but are a different product are the vendor ones (which don't typically include a badge). We want to be able to rebuild products and tiers as fixtures, but this means duplication in those files.
Also, tokens are currently for ProductViews, which are tied to products. It might be easier to tie them to PriceTiers, which can be underneath the normal products.
The product/price tier thing is still fiddly.
One aim was to make it easier to carve out allocations, but we need to duplicate all the products that are affected within an allocation (e.g. to limit admissions, we need to clone full, full-s and full-sg, and then keep their prices in sync).
We have to have full, full-s and full-sg as separate products despite price being the only difference, because we also need to identify the active tier within a product, and retain previous ones because that's what purchases are tied to. This makes it hard to identify when a tier was on sale, because we don't version price_tier, which is annoying for reporting.
The only admission tickets that are for adults but are a different product are the vendor ones (which don't typically include a badge). We want to be able to rebuild products and tiers as fixtures, but this means duplication in those files.
Also, tokens are currently for ProductViews, which are tied to products. It might be easier to tie them to PriceTiers, which can be underneath the normal products.