Add Meshkee product catalog navigation and details
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
00126e5777
commit
34ce4f6925
+8
-2
@@ -5,7 +5,7 @@
|
||||
- Persian RTL storefront for Saman Andish, built with Next.js 16, React 19, and TypeScript.
|
||||
- Apex domain: `samanandish.com`.
|
||||
- Local design assets live in `public/assets`; local fonts live in `public/fonts`.
|
||||
- Public routes currently include `/`, `/about-us`, and `/contact-us`.
|
||||
- Public routes include `/`, `/about-us`, `/contact-us`, `/products`, canonical product details, and canonical product-category listings.
|
||||
|
||||
## Meshkee API
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
- `NEXT_PUBLIC_MESHKEE_DOMAIN`
|
||||
- `app/lib/meshkee.ts` owns the public static-image contract and homepage fetch.
|
||||
- The homepage fetches `pageKey=home` once, matches slots by key, and keeps local images whenever the API is unavailable or a slot is empty.
|
||||
- The same library owns public product/category types, level-two category selection, Persian URL slugs, latest-product fetching, and detail lookups.
|
||||
- The header product dropdown skips root categories and lists only level-two product categories.
|
||||
- The homepage latest-machinery section resolves the newest published Meshkee products and links cards to canonical details.
|
||||
|
||||
## Homepage Static-Image Slots
|
||||
|
||||
@@ -32,6 +35,8 @@
|
||||
- Auth, account, admin, cart, checkout, dynamic, and Meshkee integration routes are excluded from the static-page config.
|
||||
- The sitemap base URL uses `NEXT_PUBLIC_SITE_URL`, then `SITE_URL`, with `https://samanandish.com` as the fallback.
|
||||
- Product, category, blog, and portfolio detail pages must use Meshkee canonical `{id}/{Persian-title-slug}` URLs when those routes are implemented.
|
||||
- Product details use `/products/{id}/{nameFaSlug}` and resolve with `GET /tenants/samanandish.com/products/by-id/{id}`.
|
||||
- Category listings use `/products/category/{id}/{nameFaSlug}` and resolve with the category-by-id endpoint before filtering products by `categoryId`.
|
||||
- Every crawlable page must have unique metadata, exactly one H1, structured H2/H3 headings, and meaningful image alt text.
|
||||
- After deployment, use Business Dashboard → Website → Settings → Sync sitemap config.
|
||||
|
||||
@@ -40,4 +45,5 @@
|
||||
- Run `npm run lint`.
|
||||
- Run `npm run build`.
|
||||
- Verify `/meshkee/static-image-slots` returns the three slot definitions.
|
||||
- Verify `/meshkee/sitemap-config.json` lists `/`, `/about-us`, and `/contact-us`.
|
||||
- Verify `/meshkee/sitemap-config.json` lists `/`, `/about-us`, `/contact-us`, and `/products`.
|
||||
- Verify the header dropdown shows only level-two categories and product cards open canonical detail URLs.
|
||||
|
||||
Reference in New Issue
Block a user