# فروشگاه اینترنتی Barzinmarket

نسخهٔ کامل فروشگاه مواد غذایی فارسی برای دامنهٔ `Barzinmarket.ir` با طراحی راست‌چین، واکنش‌گرا و الهام‌گرفته از الگوهای رایج سوپرمارکت‌های آنلاین. هویت بصری و کدنویسی پروژه مستقل است.

## امکانات آماده

- صفحهٔ اصلی، دسته‌بندی، جست‌وجو، فیلتر، مرتب‌سازی و صفحه‌بندی سمت سرور
- کارت کالا با قیمت مصرف‌کنندهٔ مشکی و خط قرمز، قیمت فروش مشکی و درصد تخفیف در بالا-چپ
- صفحهٔ جزئیات، کالاهای مشابه، علاقه‌مندی و مقایسه
- سبد خرید، کد تخفیف، روش ارسال، تسویه‌حساب و ثبت سفارش
- حساب مشتری شامل سفارش‌ها، نشانی‌ها، کیف پول، امتیاز، مرجوعی و پشتیبانی
- پنل فروشنده، کارت هدیه، پرسش‌های متداول و صفحات راهنما
- پنل مدیریت کالا، موجودی، سفارش، مشتری، دسته، کمپین، کاربران و گزارش‌ها
- صفحه‌ساز و تنظیم کامل رنگ‌ها، شعاع کادرها، تراکم کارت‌ها، تعداد ستون‌ها، منوها، نوشته‌ها، سکشن‌ها، فوتر، سئو، ارسال و پرداخت
- پایگاه دادهٔ Cloudflare D1 و فضای تصاویر R2

## ورود فایل اکسل

مدیر می‌تواند فایل‌های `.xlsx` یا `.csv` را مستقیماً از پنل وارد کند. مسیر معمول برای ۵۰۰۰ قلم کالا بهینه شده و سرور تا ۱۰٬۰۰۰ ردیف را به‌عنوان حاشیهٔ ظرفیت می‌پذیرد. پردازش در گروه‌های ۱۰۰تایی انجام می‌شود تا محدودیت‌های پایگاه داده رعایت شود.

ستون‌های الزامی:

`بارکد`، `نام کالا` و `قیمت فروش`

ستون‌های پشتیبانی‌شده:

`دسته`، `قیمت خرید`، `قیمت مصرف‌کننده`، `قیمت عمده`، `موجودی` و `تاریخ انقضا`

بارکد شناسهٔ تطبیق است. با ورود مجدد، قیمت و موجودی کالای تکراری به‌روزرسانی می‌شود اما تصویر و توضیحات ثبت‌شده در پنل باقی می‌ماند. نمونهٔ سازگار در پوشهٔ `sample-data` موجود است.

## اجرا

به Node.js نسخهٔ 22.13 یا بالاتر نیاز است:

```bash
npm ci
npm run dev
```

ساخت و آزمون نسخهٔ نهایی:

```bash
npm run build
npm test
```

## راه‌اندازی تجاری

پرداخت در محل آماده است. برای پرداخت آنلاین، پیامک، نقشه، شرکت حمل‌ونقل و ایمیل تراکنشی باید اطلاعات حساب ارائه‌دهندهٔ منتخب هنگام راه‌اندازی وارد شود. هیچ رمز یا کلید محرمانه‌ای در فایل پروژه قرار نگرفته است.
