Bug Fixes
- Customizer crash from a Print Profile's bulk variations — A trailing semicolon or a segment without "=" in a Print Profile's bulk variations value took down the storefront customizer for every product using that profile. Malformed segments are now skipped and well-formed values parse exactly as before; nothing stored is changed.
- Names & Numbers panel missing in the order viewer — Orders from products with only a name placeholder (no number) showed no roster at all. Rows with a name, number or selection are now all kept, so the panel and its badge appear for every roster order.
Core Engine
- Curved text exported in the wrong place — Left- or right-aligned curved text sat at a different point on the arc in the print-ready file than on the storefront canvas, so shoppers who had rotated the text to look right on screen got an export with the arc swung out of position. Print-ready output now places curved text exactly as the canvas shows it for every alignment, including reversed text.
- Coverage-based prices jumping between views — With coverage pricing, print areas on views that were not currently shown counted as empty, so the total changed every time the customer switched views or opened a view for the first time. Coverage is now measured for every view on load and remembered per view, so the price is correct from the start and stable across view switches.