amirhosein.ashourlooandClaude Sonnet 5 d624ad8a32 Add shopping cart, store-items pages, contact form toast; skip workshops+portfolio
Neither workshops nor portfolio is in this tenant's enabledModules
(["products","blog","finance"]) - same reasoning as before, page/nav entry
withheld until either is actually enabled.

Shopping cart (new):
- CartProvider (client context): live cart state, add/update/remove/refresh,
  reads AUTH_TOKEN_COOKIE, calls the real /businesses/{id}/cart* endpoints
  (bearer-only, no guest cart - by design, not a gap)
- CartButton: header/bottom-nav icon with a live count badge and a popup
  preview; "ادامه" hands off to the customer portal's own cart/checkout,
  since this storefront has no checkout UI (address/payment) to hand off to
  internally - out of scope for this pass
- ProductBuyPanel: quantity stepper, wired to CartProvider.addItem() instead
  of its own ad-hoc fetch+token logic, toast on success
- Cart/CartItem types are a best-effort guess at an undocumented response
  shape (OpenAPI gives no field-level schema) - unverified against real data
  since store-items are still empty; read every field defensively

Store-items pages (new): /store-items (flat listing of purchasable variants,
always priced unlike /products) and /store-items/{id} (detail - no slug,
resolves the variant's productId and reuses the product's own gallery/
description/technical-info/comments/related-products, just with that
variant preselected).

Contact form: now shows a toast + inline success text and resets while
staying on screen, instead of swapping to a separate "thank you" panel.

New shared providers: ToastProvider (useToast) and CartProvider, both
mounted once in layout.tsx.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 08:56:04 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:11:12 +03:30
2026-09-04 14:02:15 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30
2026-09-02 17:03:23 +03:30

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.

S
Description
No description provided
Readme
76 MiB
Languages
TypeScript 97.6%
CSS 1.2%
JavaScript 1.2%