Supports dashboard CRUD and tenant list/get/calculate so storefronts can offer installments, requiring a method pick when several exist.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align storefront/sitemap URLs with catalog products, add by-id public APIs, and include user-product detail views in the product visit chart.
Co-authored-by: Cursor <cursoragent@cursor.com>
Charge ceil(len/64)*400 IRT per recipient across OTP, customer, and partner SMS; seed new businesses with 500k IRT; default partner sends to the advertising line.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store product/category translations in entity_translations, expose CMS APIs, and gate the MultiLanguage Data module for businesses.
Co-authored-by: Cursor <cursoragent@cursor.com>
Update DNS writes @, www, business, customer, and api records on the chosen provider instead of Arvan only.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose /sitemap-user-products.xml when customer_products is enabled, invalidate on listing mutations, and proxy the new path from nginx provision scripts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move blogs, portfolios, videos, instructions, and workshops out of sitemap-main into dedicated files like products, and allow saving migrated Farsi category color labels without wiping store-item links.
Co-authored-by: Cursor <cursoragent@cursor.com>
sitemap.xml is now an index of main + products; category loc paths use /products/category/{id}/{nameFaSlug} with a public by-id lookup for storefronts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Adds /products/category/{slug} to default sitemap generation and a public categories/by-slug endpoint for storefront category pages.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default sitemap templates now emit SEO-friendly Farsi path segments with stable CMS ids; storefronts resolve content via new by-id public endpoints.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stores synced route config from /meshkee/sitemap-config.json, serves sitemap.xml and robots.txt per tenant, and invalidates cache on CMS writes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cross-site register now updates the password to the signup value and documents passwordUpdated for storefronts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Let businesses choose product vs store_item sourcing, defaulting from the store module, and expose it on tenant resolve and store-specials.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support one-time Redis-backed dashboard sign-in handoff and seed European, Middle East, and Far East countries with major cities.
Co-authored-by: Cursor <cursoragent@cursor.com>
Dashboard can download grouped product variants and re-upload to update price and stock. Also expose Content-Disposition for downloads and keep related product/customer API docs in sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
Business settings can store ZarinPal merchant credentials, and the payment registry can initiate and verify ZarinPal alongside Mellat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Tenant zones get an apex ANAME and CNAMEs for www, business, customer, and api without storing origin IPs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store gateway credentials per business, initiate/verify Mellat at checkout, and resolve old CMS ids from domains in the migrate modal.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce invoices.user_id, business template/invoice APIs, and tenant-domain public URLs so business dashboards can issue invoices without platform-scope template mismatches.
Co-authored-by: Cursor <cursoragent@cursor.com>
Super-admins can assign Admin; owners/admins manage Editor/Viewer via team/access, and the customers list supports all/customers/managers filtering.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose published customer listings under /tenants/:host/user-products (list, search, details, technical-info) and document them in the website API pack.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose login-otp and reset-password so dashboards can finish forgot-password and one-time SMS sign-in, and sync website API docs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose POST /public/sms/send with API key + domain allowlist for external backends like Balout, wire Meshkee OTP/message sends to Gama, and publish Partner SMS docs on /docs/website.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose branding.defaultLocale, optional user EN name fields, and lightweight dual daily activity for orders/customers; update project context and rules.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add invoice template CRUD, key points/accounts, public GET endpoint, and migration 039 for account_holder_name.
Co-authored-by: Cursor <cursoragent@cursor.com>
Super admins can manage predefined invoice lines and issue invoices to businesses; schema is ready for future business-scoped use.
Co-authored-by: Cursor <cursoragent@cursor.com>