2249a07dee118056677aec362052583749c0950f
The homepage category carousel and installments highlights matched slot.images[i] to categoryList[i] by array index, assuming the business's CMS upload order lines up with this site's own category sort order. It doesn't - live data showed a laptop photo landing on "موبایل" and "لوازم برقی" appearing on the site despite no photo ever being uploaded for it, purely from index luck. titleFa isn't reliable either: the same laptop image was titled "تبلت" in the CMS, contradicting its own linkUrl. Fix: resolve each image's category from the `category` query param on its own linkUrl (categorySlugFromLinkUrl() in slug.ts, matched against ApiCategory.slug via the new findNodeBySlug()). The homepage carousel is now fully slot-driven - it iterates slot.images (in the CMS's own sortOrder) and simply omits any category with no matching image, per explicit product direction, rather than falling back to a placeholder. Installments keeps its curated HIGHLIGHT_IDS list with a placeholder for uncovered categories, since that page always shows the same fixed set, but now uses the same identity-based lookup instead of position. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
moalem.shop
فروشگاه اینترنتی موبایل معلم — Next.js storefront on the Meshkee CMS API.
npm install
npm run dev
Environment (.env.local):
NEXT_PUBLIC_SITE_DOMAIN=moalem.shop
NEXT_PUBLIC_DEMO_PRICING=1 # temporary: the tenant has no store-items yet
Architecture, data gaps and the fallbacks currently in place are documented in AGENTS.md.
Languages
TypeScript
97.6%
CSS
1.2%
JavaScript
1.2%