Surface wallet balance and key counts in gradient hero sections so Merchant list pages match the Events pattern.
Co-authored-by: Cursor <cursoragent@cursor.com>
- New Products page (merchant.products.*) with full CRUD proxied to the Ladill
CRM products API via a new CrmClient + config/crm.php (owner-scoped, type=product).
- Sidebar gains a Products entry.
- The new storefront form loads the merchant's catalog: each shop/menu section
gets an "Add from products…" picker that drops a CRM product in as an item
(name, price, description). Catalog fetch is resilient — empty if CRM is down.
Wires CRM_API_URL + CRM_API_KEY_MERCHANT on the merchant env (matches CRM).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>