Use Meshkee {id}/{fa-slug} detail URLs for products and blogs.
Resolve pages via by-id APIs, slugify Farsi titles for public paths, and redirect legacy slug-only URLs to the canonical form. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
24b5649abd
commit
0cb9aa57e2
+8
-6
@@ -40,11 +40,10 @@ This site is **catalog-only** (no shopping cart). Login / user icon goes to the
|
||||
| Path | Source |
|
||||
| --- | --- |
|
||||
| `/` | Homepage + static image slots + store specials + latest blogs |
|
||||
| `/products` | Store items (`GET /tenants/{domain}/store-items`) |
|
||||
| `/products?categoryId=` | Same, filtered |
|
||||
| `/products/[variantId]` | Store item variant + product description/gallery + comments |
|
||||
| `/blog` | `GET /tenants/{domain}/blogs` (falls back to `lib/data.ts` `blogPosts`) |
|
||||
| `/blog/[slug]` | Blog details + comments |
|
||||
| `/products` | Catalog / store items list |
|
||||
| `/products/[id]/[slug]` | Product detail via `GET .../products/by-id/{id}` |
|
||||
| `/blog` | Blog list |
|
||||
| `/blog/[id]/[slug]` | Blog detail via `GET .../blogs/by-id/{id}` |
|
||||
| `/about` | About us |
|
||||
| `/contact` | Contact us |
|
||||
| `/meshkee/static-image-slots` | Slot catalog for the dashboard Refresh button |
|
||||
@@ -97,7 +96,10 @@ Products list/search: prefer store-items; if empty, fall back to `GET /products`
|
||||
- Do **not** ship `public/sitemap.xml` or `public/robots.txt` (nginx proxies to Meshkee API).
|
||||
- Build generates `lib/sitemap-config.generated.json` (`npm run generate:sitemap-config` / `prebuild`); served at `GET /meshkee/sitemap-config.json`.
|
||||
- After deploy: business dashboard → Website → Settings → Sync sitemap config.
|
||||
- Templates omitted (defaults `/products/{slug}`, `/blog/{slug}` match this site).
|
||||
- Detail URLs (Meshkee defaults — omit `templates` unless customized):
|
||||
- Product: `/products/{id}/{nameFaSlug}` — slugify `nameFa` (Farsi kept, spaces → `-`); resolve with `products/by-id/{id}`. Never use legacy DB slug in public URLs.
|
||||
- Blog: `/blog/{id}/{titleSlug}` — `blogs/by-id/{id}`.
|
||||
- Legacy `/products/{slug}` and `/blog/{slug}` redirect to the canonical `{id}/{slug}` form.
|
||||
- Every public page has unique title/description; product/blog prefer CMS fields.
|
||||
|
||||
## Original business data (do not invent replacements)
|
||||
|
||||
Reference in New Issue
Block a user