The order is summarized in three places that have drifted apart: the cart BasketSummary (rich, seat and price aware), the order pages OrderSummaryBuilder, and the [yoyaku-order:bookings] token used by the confirmation email and the cancel screen (a plain list still showing per-line state and no seats or prices).
This introduces a single TransactionSummary service in the base module that turns a transaction into events and priced tickets, with a screen renderer, an HTML renderer for rich mail and a plain-text renderer for text mail. It is seat-agnostic: a ticket label and an event links come from hook_yoyaku_summary_ticket_alter() and hook_yoyaku_summary_event_alter(), which yoyaku_seating implements to name seats and to link back to the seating page.
OrderSummaryBuilder now extends it, the cart renders it (adding its per-ticket Remove and a per-event removal, BookingCart::releaseSlot()), the cancel screen renders it, and the notification token renders its HTML plus a new plain-text variant. The payment-step summary is a follow-up, as it needs an orchestra-side seam.
Issue fork yoyaku-3612023
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #5
mably commented