Public business-info now exposes metaTags as { html }, matching how admins paste complete <meta> tags in Tags & Badges.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stores custom meta tags and eNamad/Samandehi footer HTML in settings so storefronts can render them from the public API.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wire cart/checkout shipping fees with category groups and static rates, reject gibberish contact submissions, and SMS only valid Iranian mobiles.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Expose Organization/LocalBusiness and Product/BlogPosting jsonLd, optional seoMeta fields on content/categories, and continue mass SMS after per-recipient failures.
Co-authored-by: Cursor <cursoragent@cursor.com>
Business SMS uses optional settings.sms.senderNumber (else advertising shortcode) with SendQuick for one recipient and SendBulk for quantity.
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>
Track storefront views via POST /tenants/{domain}/analytics/views, expose business activity API, and add product/website/portfolio/blog 30-day chart types for super-admin selection.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store logo_dark_media_id on businesses, expose logoDarkUrl on tenant/website APIs, prepend awaiting-payment steps to order workflows, and surface clearer Arvan API network errors.
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>
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>
Includes SQL migrations, Prisma models, dashboard CRUD, registration status workflow, and website OpenAPI updates for workshop listing and signup.
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>
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>
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>
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 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>