📚 راهنمای کامل و جامع

سیستم فروشگاه جامع

مستند آموزشی کامل پنل‌ها، امکانات و بیزینس مدل

نسخه 1.0 آذر ۱۴۰۴ Multi-vendor Marketplace

📋 فهرست مطالب

1. خلاصه بیزینس مدل
2. معماری سیستم
3. صفحات عمومی سایت
4. پنل مدیریت (Admin)
5. پنل فروشنده (Seller)
6. پنل کاربر (User)
7. سیستم مالی و پرداخت
8. سیستم تخفیف
9. تنظیمات سیستم
10. احراز هویت و امنیت
11. تکنولوژی‌ها و زبان‌های برنامه‌نویسی

🛠️ 11. تکنولوژی‌ها و زبان‌های برنامه‌نویسی

این پروژه با استفاده از معماری Clean Architecture و الگوهای طراحی مدرن پیاده‌سازی شده است.

زبان‌های برنامه‌نویسی

💻

C#

زبان اصلی برنامه‌نویسی

📄

Razor

موتور View Engine

🎨

HTML/CSS/JavaScript

فرانت‌اند

📊

SQL

زبان پایگاه داده

فریمورک و پلتفرم

تکنولوژی نسخه کاربرد
.NET 9.0 پلتفرم اصلی توسعه
ASP.NET Core MVC 9.0 فریمورک وب برای ساخت صفحات و API
Entity Framework Core 9.0.10 ORM برای دسترسی به پایگاه داده
SQL Server - پایگاه داده رابطه‌ای

کتابخانه‌ها و پکیج‌های اصلی

📦

MediatR

الگوی CQRS و Mediator

FluentValidation

اعتبارسنجی داده‌ها

📝

Serilog

سیستم لاگینگ پیشرفته

Hangfire

Background Jobs

💳

Parbad

درگاه پرداخت (ZarinPal)

📄

QuestPDF

تولید فایل PDF

📅

PersianDateTime

تاریخ شمسی

📱

Kavenegar

ارسال پیامک

🔍

Swashbuckle (Swagger)

مستندسازی API

WebMarkupMin

فشرده‌سازی HTML/CSS/JS

🔢

MathNet.Numerics

محاسبات ریاضی

🔐

ASP.NET Identity

احراز هویت و مدیریت کاربران

معماری و الگوهای طراحی

معماری Clean Architecture

پروژه به صورت لایه‌ای و مستقل از فریمورک طراحی شده:

  • Domain Layer: موجودیت‌ها، Enum‌ها و منطق کسب‌وکار
  • Application Layer: Commands, Queries, DTOs و Interfaces
  • Infrastructure Layer: پیاده‌سازی Repository، سرویس‌های خارجی
  • Presentation Layer (WebSite): Controllers، Views و Middleware
  • SharedKernel: کدهای مشترک بین لایه‌ها

الگوهای طراحی استفاده شده

الگو توضیحات
CQRS جداسازی Commands و Queries با استفاده از MediatR
Repository Pattern جداسازی دسترسی به داده از منطق کسب‌وکار
Dependency Injection تزریق وابستگی‌ها با استفاده از DI Container
Unit of Work مدیریت تراکنش‌های دیتابیس
Specification Pattern ایجاد Query‌های قابل استفاده مجدد

ابزارها و تکنولوژی‌های کمکی

  • Response Compression: فشرده‌سازی پاسخ‌های HTTP (Gzip و Brotli)
  • HTML Minification: کاهش حجم صفحات HTML
  • Memory Cache: کش در حافظه برای بهبود عملکرد
  • Session Management: مدیریت نشست‌های کاربری
  • Cookie Management: مدیریت کوکی‌ها برای سبد خرید و نشست
  • File Upload Service: سرویس آپلود و مدیریت فایل‌ها
  • Visit Tracking: ردیابی بازدیدهای صفحات
  • SEO Metadata: مدیریت متادیتاهای SEO

💼 1. خلاصه بیزینس مدل

فروشگاه جامع یک پلتفرم فروشگاهی چندفروشندگی (Multi-vendor Marketplace) است که امکان فروش محصولات فیزیکی و دیجیتال توسط فروشندگان مختلف را فراهم می‌کند.

جریان کلی کسب‌وکار

┌─────────────────────────────────────────────────────────────────────────────┐
│                           جریان کلی بیزینس                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  فروشنده ثبت‌نام → تایید پروفایل → ثبت محصول → تایید ادمین → انتشار محصول    │
│                                                                             │
│  کاربر مشاهده → افزودن به سبد → پرداخت → ایجاد فاکتور → تحویل/دانلود        │
│                                                                             │
│  تسویه با فروشنده → محاسبه سهم → درخواست برداشت → پرداخت به فروشنده          │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

انواع محصولات

📦

فیزیکی (Physical)

محصولات قابل ارسال پستی با کد پیگیری

💾

دیجیتال (Digital)

فایل‌های قابل دانلود پس از پرداخت

💰 مدل درآمدی پلتفرم

عنوان توضیحات مثال
سهم فروشنده درصدی که فروشنده از هر فروش دریافت می‌کند 70%
کارمزد پلتفرم درصدی که پلتفرم از هر فروش کسب می‌کند 30%
مالیات ارزش افزوده درصد مالیات اضافه شده به قیمت 9%
کمیسیون همکاری درصد پرداختی به بازاریابان 5%

📊 روش‌های محاسبه کارمزد

روش فرمول مثال (فروش ۱۰۰,۰۰۰)
مکمل سهم فروشنده سهم فروشنده = مبلغ × درصد فروشنده: ۷۰,۰۰۰ | پلتفرم: ۳۰,۰۰۰
کسر از سهم فروشنده سهم - کارمزد = واریزی (۷۰,۰۰۰ - ۳۰,۰۰۰) = ۴۰,۰۰۰

👨‍💼 4. پنل مدیریت (Admin)

مسیر پایه: /Admin

داشبورد

👥

آمار کاربران

کل، جدید، فعال، فروشندگان

💰

آمار تجاری

فروش، سفارشات، میانگین

📝

آمار محتوا

محصولات، پست‌ها، نظرات

👁️

آمار بازدید

روزانه، هفتگی، پربازدید

لیست کامل بخش‌های مدیریت

بخش مسیر امکانات
کاربران /Admin/Users لیست، افزودن، ویرایش، فعال/غیرفعال، حذف، پروفایل، دستگاه‌ها
کاتالوگ /Admin/Catalog دسته‌بندی، محصولات، تنوع‌ها، ویژگی‌ها، گالری، FAQ
سفارشات /Admin/Orders لیست، جزئیات، تغییر وضعیت، ثبت ارسال
فاکتورها /Admin/Invoices لیست، جزئیات، اقلام، تراکنش‌ها
فروشندگان /Admin/Sellers لیست، افزودن، ویرایش، پروفایل، فعال/غیرفعال
درخواست محصول /Admin/ProductRequests بررسی، تایید، رد
پیشنهادات /Admin/ProductOffers مدیریت پیشنهادات قیمت فروشندگان
نظرات /Admin/ProductComments تایید، رد، پاسخ، حذف
گزارش تخلف /Admin/ProductViolationReports بررسی گزارش‌ها
کیف پول /Admin/Wallets شارژ کیف پول کاربران
درخواست برداشت /Admin/WithdrawalRequests تایید، رد، ثبت پرداخت
تیکت‌ها /Admin/Tickets پاسخ، تخصیص، تغییر وضعیت
وبلاگ /Admin/Blog پست‌ها، نظرات
بنرها /Admin/Banners مدیریت بنرهای تبلیغاتی
صفحات /Admin/Pages صفحات استاتیک
منو /Admin/NavigationMenu منوی ناوبری
کد تخفیف /Admin/DiscountCodes مدیریت کوپن‌ها
اعلان‌ها /Admin/Notifications ارسال اعلان
SEO /Admin/Seo تنظیمات سئو
گزارش مالی /Admin/FinancialReports آمار و گزارش‌ها
بازدیدها /Admin/Visits آمار بازدید
لاگ‌ها /Admin/ApplicationLogs لاگ‌های سیستم

وضعیت‌های سفارش

وضعیت کد توضیحات
پیش‌نویس Draft سبد تبدیل نشده به سفارش
در انتظار پرداخت Pending منتظر پرداخت کاربر
تسویه شده Paid پرداخت کامل انجام شده
تسویه جزئی PartiallyPaid پرداخت ناقص
لغو شده Cancelled سفارش لغو شده

💳 7. سیستم مالی و پرداخت

روش‌های پرداخت

🌐

درگاه آنلاین

زرین‌پال و سایر درگاه‌ها

👛

کیف پول

پرداخت از موجودی حساب

🏦

کارت به کارت

واریز دستی با شماره پیگیری

💵

نقدی

پرداخت حضوری

جریان پرداخت آنلاین

1. درخواست توکن از زرین‌پال
              ↓
2. هدایت کاربر به درگاه
              ↓
3. پرداخت توسط کاربر
              ↓
4. بازگشت به سایت با Authority
              ↓
5. تایید پرداخت (Verify)
              ↓
6. ثبت تراکنش و به‌روزرسانی فاکتور

⚙️ 9. تنظیمات سیستم

تنظیمات سایت

فیلد توضیحات
عنوان سایتنام نمایشی سایت
ایمیل اصلی / پشتیبانیآدرس‌های ایمیل
تلفن اصلی / پشتیبانیشماره‌های تماس
آدرسآدرس فیزیکی
لوگو / Faviconتصاویر برند
شبکه‌های اجتماعیتلگرام، اینستاگرام، واتساپ، لینکدین

تنظیمات مالی

تنظیم توضیحات محدوده
سهم فروشنده SellerProductSharePercentage 0-100%
مالیات ارزش افزوده ValueAddedTaxPercentage 0-100%
کارمزد پلتفرم PlatformCommissionPercentage 0-100%
کمیسیون همکاری AffiliateCommissionPercentage 0-100%
روش محاسبه CommissionCalculationMethod Complementary / DeductFromSeller

تنظیمات درگاه پرداخت

زرین‌پال

  • Merchant ID
  • Callback URL
  • محیط (Sandbox / Production)

🔐 10. احراز هویت و امنیت

ورود با شماره موبایل

1. کاربر شماره موبایل را وارد می‌کند
              ↓
2. کد 6 رقمی پیامک می‌شود
              ↓
3. کاربر کد را وارد می‌کند
              ↓
4. اعتبارسنجی کد
              ↓
5. کاربر موجود → ورود | کاربر جدید → ایجاد حساب
              ↓
6. ایجاد نشست (Session)

مدیریت نشست‌ها

اطلاعات توضیحات
شناسه نشستSession ID یکتا
آدرس IPآی‌پی کاربر
نوع دستگاهDesktop / Mobile / Tablet
مرورگرChrome / Firefox / Safari / ...
آخرین فعالیتزمان آخرین درخواست
وضعیتفعال / بسته شده

امکانات امنیتی:

  • ✅ مشاهده دستگاه‌های فعال
  • ✅ بستن نشست از راه دور
  • ✅ خروج از همه دستگاه‌ها
  • ✅ تشخیص خودکار نوع دستگاه

🏪 5. پنل فروشنده (Seller)

مسیر پایه: /Seller

داشبورد فروشنده

📦

محصولات

کل، منتشر شده، در انتظار، پیش‌نویس

🛒

سفارشات

کل، جدید، درآمد کل

💬

نظرات

نظرات جدید، بدون پاسخ

📋

درخواست‌ها

درخواست‌های سفارشی

امکانات پنل فروشنده

بخش مسیر امکانات
محصولات /Seller/Products لیست، ایجاد درخواست، ویرایش
درخواست‌ها /Seller/ProductRequests مشاهده وضعیت درخواست‌ها
پیشنهادات /Seller/ProductOffers مدیریت قیمت و موجودی
سفارشات /Seller/Orders مشاهده سفارشات مرتبط
ارسال /Seller/ShipmentTracking ثبت وضعیت ارسال
نظرات /Seller/ProductComments پاسخ به نظرات
پروفایل /Seller/Profile ویرایش اطلاعات
مالی /Seller/Payments گزارش درآمد
برداشت /Seller/WithdrawalRequests درخواست برداشت

👤 6. پنل کاربر (User)

مسیر پایه: /User

امکانات پنل کاربر

بخش مسیر امکانات
پروفایل /User/Profile مشاهده و ویرایش اطلاعات، آپلود آواتار
دستگاه‌ها /User/Profile/ActivityLog مشاهده و مدیریت نشست‌ها
کیف پول /User/Wallet موجودی، شارژ، تراکنش‌ها
آدرس‌ها /User/UserAddresses مدیریت آدرس‌های تحویل
محصولات /User/Products محصولات خریداری شده، دانلود
تیکت‌ها /User/Tickets ارسال و پیگیری تیکت
اعلان‌ها /User/Notifications مشاهده اعلان‌ها

⭐ ویژگی‌های خاص سیستم

سبد خرید ناشناس

کاربران بدون ورود می‌توانند محصول به سبد اضافه کنند:

  • ✅ شناسایی با کوکی AnonymousCartId
  • ✅ ذخیره در دیتابیس با UserId = null
  • ✅ ادغام خودکار پس از ورود
  • ✅ پاکسازی کوکی پس از ادغام

اطلاع‌رسانی موجودی (Back In Stock)

برای محصولات ناموجود:

  • 📱 ثبت شماره موبایل + تایید OTP
  • 💾 ذخیره در BackInStockSubscription
  • 📨 ارسال پیامک هنگام موجود شدن
  • 🔄 حذف اشتراک پس از ارسال

درخواست سفارشی

برای محصولات نیازمند سفارشی‌سازی:

وضعیتتوضیحات
Pendingدر انتظار بررسی
Contactedتماس گرفته شده
Completedتکمیل شده
Rejectedرد شده

مدیریت نشست‌ها

هر ورود یک نشست جدید ایجاد می‌کند:

🖥️

اطلاعات ثبت شده

IP, Device, Browser, User Agent

عملیات

مشاهده، بستن، حذف نشست