feat(website): reflect new features + 5-tier pricing
CI/CD / CI · API (dotnet build + test) (push) Successful in 50s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 45s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m4s
CI/CD / CI · Admin Web (tsc) (push) Successful in 36s
CI/CD / CI · Website (tsc) (push) Successful in 44s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 3m18s

- Pricing: add the Starter tier (now Free·Starter·Pro·Business·Enterprise),
  fix currency ₺ (Turkish Lira) → Toman, and rewrite every plan's bullets to the
  agreed matrix (Free: 6 tables/30 orders/Koja/offline + watermark; Starter:
  watermark-removal/custom-styling/review-reply; Pro: CRM/reports/taxes/payroll/
  delivery/3 branches; Business: 3D + AI-3D + unlimited; Enterprise: API/white-label/
  SLA/24-7). 5-column responsive grid.
- Features: add two headliner cards that were missing — "Works offline" and
  "Get discovered on Koja". fa/en.

Website tsc + build clean.
This commit is contained in:
soroush.asadi
2026-06-03 02:20:16 +03:30
parent 7d06f149d3
commit 9b2f15151d
4 changed files with 122 additions and 76 deletions
+44 -30
View File
@@ -73,7 +73,11 @@
"inventory": "Inventory Management", "inventory": "Inventory Management",
"inventoryDesc": "Automatic ingredient tracking, low-stock alerts, and daily consumption reports.", "inventoryDesc": "Automatic ingredient tracking, low-stock alerts, and daily consumption reports.",
"multiBranch": "Multi-Branch Management", "multiBranch": "Multi-Branch Management",
"multiBranchDesc": "Manage and compare all your branches from a single central dashboard." "multiBranchDesc": "Manage and compare all your branches from a single central dashboard.",
"offline": "Works offline",
"offlineDesc": "Keep taking orders with no internet — everything syncs automatically when you reconnect.",
"koja": "Get discovered on Koja",
"kojaDesc": "Your cafe appears on the Koja discovery platform (koja.meezi.ir) to attract new customers."
}, },
"howItWorks": { "howItWorks": {
"badge": "Easy Setup", "badge": "Easy Setup",
@@ -121,50 +125,60 @@
"yearlyDiscount": "2 months free", "yearlyDiscount": "2 months free",
"popular": "Most popular", "popular": "Most popular",
"freeName": "Free", "freeName": "Free",
"freePrice": "Free", "freePrice": "0",
"freePriceNote": "forever", "freePriceNote": "forever",
"freeDesc": "For small cafes just getting started.", "freeDesc": "For small cafes getting started.",
"ctaFree": "Start for free", "ctaFree": "Start free",
"f1": "1 branch", "f1": "Full QR digital menu",
"f2": "Up to 50 orders/day", "f2": "Up to 6 tables",
"f3": "QR digital menu", "f3": "30 orders/day",
"f4": "Tables & reservations", "f4": "Listed on Koja (koja.meezi.ir)",
"f5": "Basic dashboard", "f5": "Offline mode + waiter app",
"proName": "Pro", "proName": "Pro",
"proPrice": "1,490,000", "proPrice": "1,490,000 Toman",
"proPriceNote": "/ month", "proPriceNote": "/ month",
"proDesc": "For growing cafes that need professional features.", "proDesc": "For growing cafes.",
"ctaPro": "Get Pro", "ctaPro": "Get Pro",
"p1": "3 branches — unlimited orders", "p1": "Everything in Starter",
"p2": "3 POS terminals", "p2": "3 branches & 3 terminals",
"p3": "Full POS & kitchen KDS", "p3": "CRM / loyalty",
"p4": "Full analytics & reports", "p4": "Full analytics & reports",
"p5": "Tax system integration", "p5": "Tax system",
"p6": "50 marketing SMS / month", "p6": "Delivery integration",
"p7": "Phone support", "p7": "Payroll management",
"businessName": "Business", "businessName": "Business",
"businessPrice": "3,490,000", "businessPrice": "3,490,000 Toman",
"businessPriceNote": "/ month", "businessPriceNote": "/ month",
"businessDesc": "For restaurants and multi-branch chains.", "businessDesc": "For restaurants & chains.",
"ctaBusiness": "Get Business", "ctaBusiness": "Get Business",
"b1": "Unlimited branches — unlimited orders", "b1": "Everything in Pro",
"b2": "Unlimited terminals", "b2": "Unlimited branches",
"b3": "HR module & shift management", "b3": "Unlimited terminals",
"b4": "Delivery platform integration", "b4": "3D menu",
"b5": "200 marketing SMS / month", "b5": "AI 3D model generation",
"b6": "Waiter mobile app", "b6": "Advanced delivery integration",
"b7": "Priority support", "b7": "Priority support",
"enterpriseName": "Enterprise", "enterpriseName": "Enterprise",
"enterprisePrice": "Contact us", "enterprisePrice": "Contact us",
"enterprisePriceNote": "custom pricing", "enterprisePriceNote": "custom pricing",
"enterpriseDesc": "For large chains with specific needs.", "enterpriseDesc": "For large chains.",
"ctaEnterprise": "Contact us", "ctaEnterprise": "Contact us",
"e1": "Unlimited branches", "e1": "Everything in Business",
"e2": "Public API", "e2": "Public API",
"e3": "White-label branding", "e3": "White-label branding",
"e4": "Trust badges", "e4": "Custom SLA",
"e5": "Custom SLA", "e5": "24/7 support",
"e6": "24/7 support" "e6": "Dedicated manager",
"starterName": "Starter",
"starterPrice": "690,000 Toman",
"starterPriceNote": "/ month",
"starterDesc": "Remove the watermark & customize.",
"ctaStarter": "Get Starter",
"s1": "Everything in Free",
"s2": "Remove Meezi watermark",
"s3": "Custom menu styling",
"s4": "Reply to customer reviews",
"s5": "Up to 15 tables"
}, },
"faq": { "faq": {
"badge": "FAQ", "badge": "FAQ",
+56 -42
View File
@@ -73,7 +73,11 @@
"inventory": "مدیریت موجودی", "inventory": "مدیریت موجودی",
"inventoryDesc": "کنترل خودکار مواد اولیه، هشدار کمبود موجودی و گزارش مصرف روزانه.", "inventoryDesc": "کنترل خودکار مواد اولیه، هشدار کمبود موجودی و گزارش مصرف روزانه.",
"multiBranch": "مدیریت چند شعبه", "multiBranch": "مدیریت چند شعبه",
"multiBranchDesc": "تمام شعبه‌هایتان را از یک داشبورد مرکزی مدیریت و مقایسه کنید." "multiBranchDesc": "تمام شعبه‌هایتان را از یک داشبورد مرکزی مدیریت و مقایسه کنید.",
"offline": "کار بدون اینترنت",
"offlineDesc": "حتی با قطع اینترنت، ثبت سفارش و کار ادامه دارد و هنگام اتصال همه‌چیز همگام می‌شود.",
"koja": "نمایش در کجا",
"kojaDesc": "کافه شما در پلتفرم کشف «کجا» (koja.meezi.ir) دیده می‌شود و مشتری جدید جذب می‌کنید."
}, },
"howItWorks": { "howItWorks": {
"badge": "شروع آسان", "badge": "شروع آسان",
@@ -113,58 +117,68 @@
"t3Text": "با میزی می‌توانم همه ۴ شعبه‌ام را از یک جا مدیریت کنم. دیگر نیازی به گزارش جداگانه نیست." "t3Text": "با میزی می‌توانم همه ۴ شعبه‌ام را از یک جا مدیریت کنم. دیگر نیازی به گزارش جداگانه نیست."
}, },
"pricing": { "pricing": {
"badge": "قیمت‌گذاری", "badge": "تعرفه‌ها",
"title": "برای هر مقیاسی یک پلن مناسب", "title": "یک پلن برای هر مقیاس",
"subtitle": "بدون هزینه پنهان دقیقاً همان چیزی که می‌بینید پرداخت می‌کنید.", "subtitle": "بدون هزینه پنهان؛ دقیقاً همان چیزی که می‌بینید پرداخت می‌کنید.",
"monthly": "ماهانه", "monthly": "ماهانه",
"yearly": "سالانه", "yearly": "سالانه",
"yearlyDiscount": "۲ ماه رایگان", "yearlyDiscount": "۲ ماه رایگان",
"popular": "پرفروش", "popular": "محبوب‌ترین",
"freeName": "رایگان", "freeName": "رایگان",
"freePrice": "رایگان", "freePrice": "۰",
"freePriceNote": "برای همیشه", "freePriceNote": "همیشه رایگان",
"freeDesc": "برای کافه‌های کوچک که می‌خواهند شروع کنند.", "freeDesc": "برای شروع کافه‌های کوچک.",
"ctaFree": "شروع رایگان", "ctaFree": "شروع رایگان",
"f1": "۱ شعبه", "f1": "منوی دیجیتال QR کامل",
"f2": "تا ۵۰ سفارش در روز", "f2": "تا ۶ میز",
"f3": "منوی دیجیتال QR", "f3": "۳۰ سفارش در روز",
"f4": "میز و رزرو", "f4": "نمایش در کجا (koja.meezi.ir)",
"f5": "داشبورد پایه", "f5": "حالت آفلاین + اپ گارسون",
"proName": "پرو", "proName": "حرفه‌ای",
"proPrice": "۱٬۴۹۰٬۰۰۰", "proPrice": "۱٬۴۹۰٬۰۰۰ تومان",
"proPriceNote": "تومان / ماه", "proPriceNote": "/ ماه",
"proDesc": "برای کافه‌های در حال رشد با نیاز به امکانات حرفه‌ای.", "proDesc": "برای کافه‌های در حال رشد.",
"ctaPro": "خرید پرو", "ctaPro": "انتخاب حرفه‌ای",
"p1": "۳ شعبه — سفارش نامحدود", "p1": "همه امکانات پایه",
"p2": "۳ ترمینال صندوق", "p2": "تا ۳ شعبه و ۳ پایانه",
"p3": "POS کامل و آشپزخانه KDS", "p3": "باشگاه مشتریان (CRM)",
"p4": "گزارش‌های کامل و تحلیلی", "p4": "گزارش‌ها و تحلیل کامل",
"p5": امانه مودیان (تاراز)", "p5": یستم مالیات",
"p6": "۵۰ پیامک بازاریابی", "p6": "اتصال به پلتفرم‌های پیک",
"p7": "پشتیبانی تلفنی", "p7": "مدیریت حقوق و دستمزد",
"businessName": "بیزنس", "businessName": "کسب‌وکار",
"businessPrice": "۳٬۴۹۰٬۰۰۰", "businessPrice": "۳٬۴۹۰٬۰۰۰ تومان",
"businessPriceNote": "تومان / ماه", "businessPriceNote": "/ ماه",
"businessDesc": "برای رستوران‌ها و زنجیره‌های چند شعبه‌ای.", "businessDesc": "برای رستوران‌ها و زنجیره‌ها.",
"ctaBusiness": "خرید بیزنس", "ctaBusiness": "انتخاب کسب‌وکار",
"b1": "شعبه نامحدود — سفارش نامحدود", "b1": "همه امکانات حرفه‌ای",
"b2": "ترمینال نامحدود", "b2": "شعب نامحدود",
"b3": "ماژول منابع انسانی و شیفت", "b3": "پایانه نامحدود",
"b4": "یکپارچگی اسنپ‌فود / پیک", "b4": "منوی سه‌بعدی",
"b5": "۲۰۰ پیامک بازاریابی", "b5": "ساخت ۳D با هوش مصنوعی",
"b6": "اپ موبایل گارسون", "b6": "اتصال پیک پیشرفته",
"b7": "پشتیبانی اولویت‌دار", "b7": "پشتیبانی اولویت‌دار",
"enterpriseName": "سازمانی", "enterpriseName": "سازمانی",
"enterprisePrice": "تماس بگیرید", "enterprisePrice": "تماس بگیرید",
"enterprisePriceNote": "قیمت سفارشی", "enterprisePriceNote": "قیمت اختصاصی",
"enterpriseDesc": "برای زنجیره‌های بزرگ با نیازهای خاص.", "enterpriseDesc": "برای زنجیره‌های بزرگ.",
"ctaEnterprise": "تماس با ما", "ctaEnterprise": "تماس با ما",
"e1": "شعبه نامحدود", "e1": "همه امکانات کسب‌وکار",
"e2": "API عمومی", "e2": "API عمومی",
"e3": "برند اختصاصی (White-label)", "e3": "برند اختصاصی (White-label)",
"e4": "نشان اعتبار", "e4": "SLA اختصاصی",
"e5": "SLA اختصاصی", "e5": "پشتیبانی ۲۴/۷",
"e6": "پشتیبانی ۲۴/۷" "e6": "مدیر اختصاصی",
"starterName": "پایه",
"starterPrice": "۶۹۰٬۰۰۰ تومان",
"starterPriceNote": "/ ماه",
"starterDesc": "برای حذف واترمارک و شخصی‌سازی.",
"ctaStarter": "شروع پایه",
"s1": "همه امکانات رایگان",
"s2": "حذف واترمارک میزی از منو",
"s3": "طراحی اختصاصی منو",
"s4": "پاسخ به نظرات مشتریان",
"s5": "تا ۱۵ میز"
}, },
"faq": { "faq": {
"badge": "سوالات متداول", "badge": "سوالات متداول",
@@ -6,10 +6,14 @@ import {
Users, Users,
Package, Package,
Building2, Building2,
WifiOff,
MapPin,
} from "lucide-react"; } from "lucide-react";
const FEATURES = [ const FEATURES = [
{ icon: QrCode, key: "qrMenu", descKey: "qrMenuDesc", color: "bg-brand-50 text-brand-700" }, { icon: QrCode, key: "qrMenu", descKey: "qrMenuDesc", color: "bg-brand-50 text-brand-700" },
{ icon: WifiOff, key: "offline", descKey: "offlineDesc", color: "bg-emerald-50 text-emerald-700" },
{ icon: MapPin, key: "koja", descKey: "kojaDesc", color: "bg-sky-50 text-sky-700" },
{ icon: ShoppingCart, key: "pos", descKey: "posDesc", color: "bg-amber-50 text-amber-700" }, { icon: ShoppingCart, key: "pos", descKey: "posDesc", color: "bg-amber-50 text-amber-700" },
{ icon: BarChart3, key: "analytics", descKey: "analyticsDesc", color: "bg-blue-50 text-blue-700" }, { icon: BarChart3, key: "analytics", descKey: "analyticsDesc", color: "bg-blue-50 text-blue-700" },
{ icon: Users, key: "staff", descKey: "staffDesc", color: "bg-purple-50 text-purple-700" }, { icon: Users, key: "staff", descKey: "staffDesc", color: "bg-purple-50 text-purple-700" },
@@ -39,11 +39,25 @@ export function PricingSection() {
popular: false, popular: false,
variant: "outline", variant: "outline",
}, },
{
id: "starter",
name: t("starterName"),
price: yearly
? (locale === "fa" ? "۵۷۵٬۰۰۰ تومان" : "575,000 Toman")
: t("starterPrice"),
priceNote: t("starterPriceNote"),
desc: t("starterDesc"),
cta: t("ctaStarter"),
href: `${base}/demo`,
features: [t("s1"), t("s2"), t("s3"), t("s4"), t("s5")],
popular: false,
variant: "outline",
},
{ {
id: "pro", id: "pro",
name: t("proName"), name: t("proName"),
price: yearly price: yearly
? (locale === "fa" ? "۱٬۲۴۲٬۰۰۰" : "1,242,000") ? (locale === "fa" ? "۱٬۲۴۲٬۰۰۰ تومان" : "1,242,000 Toman")
: t("proPrice"), : t("proPrice"),
priceNote: t("proPriceNote"), priceNote: t("proPriceNote"),
desc: t("proDesc"), desc: t("proDesc"),
@@ -57,7 +71,7 @@ export function PricingSection() {
id: "business", id: "business",
name: t("businessName"), name: t("businessName"),
price: yearly price: yearly
? (locale === "fa" ? "۲٬۹۰۸٬۰۰۰" : "2,908,000") ? (locale === "fa" ? "۲٬۹۰۸٬۰۰۰ تومان" : "2,908,000 Toman")
: t("businessPrice"), : t("businessPrice"),
priceNote: t("businessPriceNote"), priceNote: t("businessPriceNote"),
desc: t("businessDesc"), desc: t("businessDesc"),
@@ -120,8 +134,8 @@ export function PricingSection() {
</div> </div>
</div> </div>
{/* Plan cards — 4-column grid on xl, 2-col on md, 1-col on mobile */} {/* Plan cards — 5 tiers: 5-col on xl, 3-col on lg, 2-col on md, 1-col on mobile */}
<div className="mt-12 grid gap-5 sm:grid-cols-2 xl:grid-cols-4"> <div className="mt-12 grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5">
{plans.map((plan) => ( {plans.map((plan) => (
<PlanCard key={plan.id} plan={plan} t={t} /> <PlanCard key={plan.id} plan={plan} t={t} />
))} ))}