Files
Alireza HassaniandCursor e2468a1ba1 Wire live business contact data and refresh homepage/about branding.
Pull landline, cell, and address from Meshkee business-info across footer and contact surfaces, update brand spelling and 14-year messaging, and keep product cards free of placeholder call-to-action pricing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 00:08:45 +03:30

2.3 KiB

Arad Arisman Website Context

Project

  • Persian RTL storefront for Arad Arisman (livestock/poultry feed supplements).
  • Next.js 16 App Router, React 19, TypeScript, Tailwind 4, src/app.
  • Apex domain: aradarisman.com.
  • Local images live in public/images.

Meshkee API

  • Canonical docs: https://api.meshkee.com/docs/website
  • API base: https://api.meshkee.com/api/v1
  • Tenant domain: aradarisman.com (TENANT_DOMAIN in src/lib/meshkee.ts)
  • All public fetches go through src/lib/meshkee.ts. Do not call the API from components.
  • Do not invent dashboard/CMS/upload endpoints.

Homepage static-image slots

Consumers read GET /tenants/aradarisman.com/website/static-images and match by key. Empty or failed slots keep local placeholders.

Key Kind itemCount Aspect Width Component
hero-category-icons list (duplicatable) null 1:1 256 HeroSlider category boxes (square icons)
categories list (duplicatable) null 3:5 720 CategoryShowcase
four-icon-image list 4 1:1 128 Features
about-us single 1 4:3 960 About
brands list (duplicatable) null 1:1 200 Partners

Dashboard import catalog: GET /meshkee/static-image-slots (src/app/meshkee/static-image-slots/route.ts).

If a rendered image size or crop ratio changes, update both the component container (aspectRatioToCss) and the matching catalog entry.

Business contact (business-info)

GET /tenants/aradarisman.com/website/business-info → getBusinessInfo / getResolvedBusinessContact in src/lib/meshkee.ts.

Field UI
phoneNumbers (landline / cell) Footer, ContactInfo, HomeContactStrip
addresses[0] Footer, ContactInfo (map pin is fixed coords on contact page)
emails Footer
socialMedia Contact page social icons (when set)

Failed/empty responses keep local address + phone fallbacks so the page never blanks out.

Other conventions

  • Category tiles from live products (getCategorySummary) because the raw /categories taxonomy has duplicate display names.
  • Blog field names are inferred; accessors fall back across nameFa / titleFa / title, etc.
  • Next.js images.remotePatterns allows c804387.parspack.net (Meshkee media CDN).