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>
2.3 KiB
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_DOMAINinsrc/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/categoriestaxonomy has duplicate display names. - Blog field names are inferred; accessors fall back across
nameFa/titleFa/title, etc. - Next.js
images.remotePatternsallowsc804387.parspack.net(Meshkee media CDN).