Standardize customer-facing Ladill Pay checkout shells across products, open them on all viewports, and escape iframe callbacks back to the product flow.
Store site names now reference the DemoWorld business identity for the
active plan, and order customers use DemoWorld people (name, email,
phone) instead of generic "Demo Customer N" placeholders. Staff logins
skip the login reseed.
Co-authored-by: Cursor <cursoragent@cursor.com>
act_runner v0.2.x does not expose gitea.run_attempt, so release archive and
workspace paths rendered with a trailing dash. Use gitea.run_id only, matching
the Meet/CRM deploy workflows.
Demo Free/Pro/Enterprise accounts wipe and reload sample data on
authorization-code SSO callbacks so every sales walkthrough starts clean.
Co-authored-by: Cursor <cursoragent@cursor.com>
Surfaces actionable controls in Ladill instead of status-only cards: sync catalogs via the plugin proxy, show channel metrics, and link to orders/labels for fulfillment.
Co-authored-by: Cursor <cursoragent@cursor.com>
Treat unreachable WordPress stores as unavailable during integrations refresh instead of throwing when the site times out.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agencies can invite store-scoped managers via Identity, with access limited to one WooCommerce store while owners retain full multi-store control.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cache per-store status for five minutes, add TikTok/Reddit/Meta cards, and let merchants refresh without reloading WordPress on every visit.
Co-authored-by: Cursor <cursoragent@cursor.com>
Surface Google, Pinterest, Snapchat, and shipping status from the WordPress plugin with deep links to finish setup in WooCommerce.
Co-authored-by: Cursor <cursoragent@cursor.com>
Desktop store pill sits left of Afia like POS; mobile store switching stays in the profile sheet and the bottom-nav search tab is removed.
Co-authored-by: Cursor <cursoragent@cursor.com>
The once-per-session sessionStorage guard suppressed the loading screen after
its first appearance, so logged-in users effectively never saw it. Show it on
app entry (external referrer / direct / new tab) and reloads, while still
suppressing it on internal link navigations and back/forward to avoid flashing.
Co-authored-by: Cursor <cursoragent@cursor.com>
The SSO login_required fallback used the invoice app's default marketing URL
(leftover from the fork), sending logged-out Woo users to /products/invoice.
Point it at /products/woo instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bundles the ladill-woo plugin zip and shows a download + connect guide panel
so merchants can install the plugin and link their WooCommerce store.
Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve the splash icon from the launcher registry by matching the current
host, so woo.ladill.com uses woomanager.svg instead of the subdomain-named
woo.svg (which is a copy of the merchant icon).
Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror platform mail.php scheme normalization and sync MAIL_* transport vars from ladill.com shared .env on each deploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
New order, store connected, Pro expiry, and past-due alerts use the Ladill notification layout with woo branding; expiry reminders dedupe per threshold like hosting.
Co-authored-by: Cursor <cursoragent@cursor.com>
Logout now lands on the branded sign-out screen with Woo-specific copy instead of the minimal placeholder card.
Co-authored-by: Cursor <cursoragent@cursor.com>
Desktop store switcher now sits after search; mobile shows route-based page titles, bottom nav, and store switching inside the profile sheet.
Co-authored-by: Cursor <cursoragent@cursor.com>
The chat panel and POST /ai/chat route were missing after the Invoice scaffold; Afia now relays through the platform when no local OpenAI key is set.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sync full image sets through the plugin, with upload/URL support in the product editor and thumbnails in the list.
Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-import catalog and orders after store activation, add manual order sync, and allow WooCommerce webhooks without CSRF tokens.
Co-authored-by: Cursor <cursoragent@cursor.com>
Sync catalog via plugin webhooks and REST proxy, with list/create/edit UI and updated logo from monolith assets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Deploy user cannot update current when APP_ROOT is root-owned; CI falls back to portable Node only when needed.
Co-authored-by: Cursor <cursoragent@cursor.com>