# LaysanX Production Release Addendum - 23 May 2026

Use this addendum with the API docs, Postman collection, feature coverage map, and SQL update files before publishing this release.

## Client Website / Client Admin

- Dynamic pages now support selected module rendering, sort-aware placement, custom HTML blocks, and service/product/project display limits.
- Dynamic pages now support page-scoped Section Layout Count controls for sort order, columns, rows, and total count. These values are independent per page and separate from the home page.
- Home page builder now supports the same custom HTML placement model as dynamic pages.
- Home page builder now supports Section Layout Count controls for columns, rows, and total count across reusable sections.
- Dedicated service/product/project listing pages support settings-driven columns, rows, pagination break count, and sort order.
- Custom Section Module is live in Client Admin with Custom Sections, Section Fields, and Section Items.
- Custom section HTML tokens such as `[[dynamic-section slug="your-route-slug" limit="6" style="service-card"]]` can render reusable section data in home-page and dynamic-page custom HTML.
- Custom section fields support `Fileupload`, and custom section item data now stores in the dedicated `CustomSectionFieldValues` table.
- Custom section items can expose detail pages at `/{section-route-slug}/{item-slug}` when an item slug is present.
- Finalized themes should render selected services, products, projects, pricing plans, contact forms, custom HTML, client logos, partner/trust logos, testimonials, and client reviews.
- Logo/testimonial/client-review style sections should use proper sliders and preserve uploaded logo colors.
- Services, products, and projects use plain textarea short descriptions in admin instead of rich HTML for short summary fields.
- Client media library includes upload support and should enforce plan-aware file limits.
- Client API Access allowed domains protect browser, Postman, and ERP lead sync requests.
- New ERP sync endpoint reads leads by form ID: `GET /api/v1/forms/{formId}/submissions`.
- Blocked ERP or browser origins return `Domain is not allowed.`
- Billing page should show token pricing, wallet recharge, wallet ledger, plan/license status, and trial-to-paid behavior.
- AI Image Generator supports AI Image Generator and LaysanX Image Generator, token charging, generated image gallery, JPG download, and physical/database delete.
- Built-in client contact page now supports admin-configured contact form assignment plus separate top/form headings and subheadings, and a dynamic page with slug `contact` overrides the built-in route.
- Page Redirects are available for migration support so old slugs can redirect to new slugs or full URLs with 301/302 behavior.
- Pricing plans support CTA text, including dynamic zero-price/contact-style CTA labels.
- Pricing-plan purchase buttons now use direct checkout/guest checkout behavior instead of redirecting to the cart page.
- Multi-currency storefront support includes currency name, symbol, conversion rate, default flag, active selector, symbol-first pricing, cart currency conversion, and gateway currency handoff where supported.
- Storefront topbar/layouts and uploaded themes should show the currency selector and selected symbol before product/pricing-plan prices.
- Checkout creates one main order and linked sub-orders for multi-product carts, so each sub-order can maintain its own invoice, order status, payment status, and fulfillment status.
- Successful checkout should clear the cart and land on the designed order-success page.
- Product add/edit admin has been reorganized into clearer panels with a compact inline variant matrix.
- Product variant images preload into the product detail gallery/slider and selecting a variant updates the main gallery image.
- Product detail no longer shows the selected variant image beside quantity; the gallery is the source of visual truth.
- Wishlist heart treatment is larger and clearer on product detail.
- Admin order management should edit main orders and sub-orders independently, not as a single forced group status.
- Customer/admin invoice routes should be verified for authenticated admin access and customer storefront access.
- Return requests can move through status changes, rejection remarks, and refund pending/paid state.
- Client Helpdesk is live with ticket create/reply/close, while only the LaysanX team can reopen closed tickets.
- Client live-site captcha settings must include both hosted route domains and custom domains in the client's reCAPTCHA domain configuration.
- Trial plan public route can open on hosted route, but trial plans cannot bind a real custom domain.
- Paid plans can request custom domains according to plan domain count.
- Deleted/resubmitted domain requests should remove stale app records/settings and clean generated nginx binding files from the managed server folder.
- Client and SaaS apps now emit no-cache/revalidation headers for HTML and static assets so old browser/proxy cache refreshes after publish and service restart.
- Chat widget admin saves agent, assigned form, voice/API integration settings, and pending action fields.
- Chat widget normal conversation remains knowledge-base/AI driven; order and ticket status are intent-gated.
- Chat widget can answer internal order status for order numbers such as `ORD-1001-20260522224715159`.
- Chat widget can answer internal support ticket status for ticket numbers such as `LX-TKT-20260516-00002`.
- Support ticket SQL bootstrap should include support ticket and support ticket message tables/indexes where not already present.

## SAAS Website / SAAS Admin

- Signup logs users in immediately while account activation email still goes out.
- Inactive customers can use trial/panel access, but should see an activation reminder in dashboard.
- Forgot password flow exists for client login with email/mobile reset link.
- Pricing pages support INR/USD, plan images, zero-price contact CTA, trial messaging, and professional pricing card layout.
- SaaS marketing site content includes dynamic documentation copy, optional header/footer/sitemap/robots scripts, and features dashboard image URL.
- SAAS blog automation supports tone, seed keywords, trend feeds/lookback/items, competitor domains, source whitelist/blacklist, topic brief, additional instructions, headline scoring, and social-caption generation.
- Helpdesk is live in SAAS Admin for ticket reply/close/reopen across all clients.
- Notification engine is queue-backed for lifecycle mails such as wallet recharge, low-balance reminders, plan reminders, plan purchase, referral events, and helpdesk replies so SMTP failure does not hang request flows.
- Email footer contact/social links now resolve from SAAS Admin Contact & Social settings instead of static hardcoded links.
- SaaS and client blog social sharing should use absolute OG/Twitter image URLs, not local file paths.
- SAAS admin list pages include required filters/pagination for customers, domains, transactions, blogs, enquiries, theme categories, theme library, and staff surfaces where implemented.
- Referral rewards and branding-removal plan flags are part of the plan/settings rollout.
- SaaS public Documentation page should mention the current storefront commerce, currency, AI theme builder, uploaded-theme, chat widget order/ticket lookup, and production SQL coverage.
- AI Website Builder now preserves copied sample theme templates/assets instead of overwriting them with generic generated output.
- AI Website Builder Add to Themes should import a ready ZIP without triggering the create-draft `Project name and requirement text are both required` validation.
- Sample uploaded themes in `sample-projects/*-theme` are aligned with the current runtime: currency selector, formatted prices, cart/account links, direct pricing checkout, and product commerce actions.

## API / Postman / Docs

- Frontend delivery docs include `/api/v1/forms/{formId}/submissions`, page-scoped section layout notes, cache behavior, redirects, current custom-section boundaries, and storefront runtime boundaries.
- Postman collection includes `Get Form Submissions By Form Id` plus widget examples for order-status and ticket-status lookup.
- Postman collection metadata and documentation download requests include the 23 May release coverage.
- Frontend delivery docs now also explain runtime-driven custom sections, home-page custom HTML placements, and current delivery boundaries for custom section detail pages.
- Feature coverage doc includes client admin, SaaS admin, standalone runtime, widget, ERP lead sync, helpdesk, notification engine, custom section module, storefront commerce, multi-currency, order/sub-order, returns/refunds, AI builder, and uploaded-theme coverage.
- Static ERP sample project is available at `sample-projects/client-erp-leads-viewer`.
- Downloadable docs and Postman collection should match the current source docs before release.

## Production Verification

1. Run SQL update scripts required for this release before application deployment, including `update_180526.sql` and `update_220526.sql` where not already applied.
2. Run older update files only if the target production database has not already received those changes.
3. Confirm SaaS site images resolve through the correct public upload base URL.
4. Confirm client theme images and plan images render in dashboard, billing, theme page, and theme preview popup.
5. Confirm client public route opens for a paid/trial workspace without redirecting to login.
6. Confirm custom domain requests obey trial/paid/domain-count rules.
7. Confirm form submission, ERP lead sync, widget ask/lead, widget order status, widget ticket status, billing, wallet, AI image generation, media upload, page redirects, scoped section layout count, and custom section save/render flows.
8. Confirm client and SaaS helpdesk flows create tickets, send replies, and queue email notifications without page hangs.
9. Confirm checkout creates main/sub-orders, order-success clears cart, invoices open for customer/admin, order statuses can be edited independently, return requests can be approved/rejected with refund state, and selected currency reaches pricing/payment flows.
10. Confirm AI Website Builder generated ZIPs preserve sample theme designs and Add to Themes imports without create-draft validation.
11. Confirm product variant images appear in the product gallery and switch when a variant is selected.
12. Confirm documentation downloads and Postman collection are current after deployment.
13. Restart both apps after publish and confirm HTML/CSS/JS responses include no-cache/revalidation headers.
