Next.jsPostgreSQLPrismaReactTypeScriptNextAuth / Auth.jsZodLeafletTailwind CSSVitestPlaywright

پلتفرم بازارگاه چندفروشنده با موتور مالی سمت سرور

بازارگاهی که خریدار، فروشنده و مدیر پلتفرم را در یک برنامه جمع می‌کند؛ با محاسبهٔ کامل قیمت، تخفیف، کارمزد و تسویه در سمت سرور و کیف پولی که مانده‌اش از دفتر تراکنش‌ها استخراج می‌شود، نه از یک عدد قابل‌دستکاری.

  • نوع پروژه: پلتفرم بازارگاه چندفروشنده (نمونهٔ اولیهٔ کامل)
  • کارفرما: پروژهٔ مشارکتی؛ ایدهٔ اولیه و مفهوم کسب‌وکار متعلق به شریک پروژه است و به‌درخواست ایشان منتشر نمی‌شود
  • نقش سپرو وب: طراحی و پیاده‌سازی کامل لایهٔ فنی — تمام سطوح کاربری، موتور دفترداری و کیف پول، جریان‌های امانی و کنترل دسترسی مبتنی بر نقش
  • وضعیت: نمونهٔ اولیهٔ کارکرد‌کامل؛ درگاه پرداخت، ارسال و دستیار هوشمند در قالب شبیه‌ساز پیاده‌سازی شده‌اند

مسئله‌ای که حل کردیم

در یک بازارگاه چندفروشنده، سخت‌ترین بخش نمایش کالا نیست؛ پول است. سبد خرید ممکن است کالای چند فروشندهٔ مختلف را هم‌زمان داشته باشد، هر سفارش باید به سهم هر فروشنده تقسیم شود، کارمزد پلتفرم و تخفیف‌ها باید دقیق و تکرارناپذیر محاسبه شوند، و مبلغ فروشنده تا زمان تحویل باید امانی نگه داشته شود. اگر این محاسبات به سمت مرورگر سپرده شود یا مانده در یک ستون قابل‌تغییر نگهداری شود، خطا و سوءاستفاده اجتناب‌ناپذیر است.

آنچه طراحی و پیاده‌سازی کردیم

تمام محاسبات مالی در سمت سرور و درون تراکنش انجام می‌شود. مانده کیف پول هر فروشنده به‌جای یک عدد ذخیره‌شده، از یک دفتر تراکنشِ فقط‌افزودنی استخراج می‌گردد؛ یعنی همیشه می‌توان نشان داد هر ریال از کجا آمده است. با تأیید پرداخت، سهم هر فروشنده به‌صورت امانی ثبت و پس از تحویل و سپری‌شدن مهلت تعیین‌شده آزاد می‌شود. درخواست برداشت فروشنده مسیر تأیید مدیر را طی می‌کند.

موتور کوپن و تخفیف، هم در سطح پلتفرم و هم در سطح فروشنده کار می‌کند، محدودیت دفعات استفاده دارد و ثبت مصرف کوپن به‌گونه‌ای طراحی شده که تکرار یک درخواست، دو بار اعمال نشود. دسترسی‌ها با یک ماتریس مجوز داده‌محور کنترل و هر عملیات حساس در سوابق ثبت می‌شود؛ داده هر فروشنده نیز از دیگران جدا نگه داشته می‌شود.

سرویس‌های بیرونی — درگاه پرداخت، ارسال و دستیار هوشمند — پشت آداپتورهای قابل‌تعویض قرار گرفته‌اند و در این نسخه به‌صورت شبیه‌سازی‌شده کار می‌کنند؛ جایگزینی آن‌ها با سرویس واقعی بدون تغییر منطق کسب‌وکار ممکن است.

مقیاس پروژه

  • مدل دادهٔ ۳۵ جدولی و حدود ۶۶ صفحه
  • ۵ نقش کاربری با ماتریس مجوز داده‌محور
  • ۲۹ ماژول عملیات سمت سرور روی یک لایهٔ دامنهٔ مشترک
  • موتور کیف پول دفتری، امانت‌گذاری و آزادسازی وجه

معماری فنی

پروژه یک برنامهٔ واحد Next.js 16 با App Router روی PostgreSQL و Prisma 7 است. گروه‌های مسیر، فروشگاه، داشبورد مشتری، پنل فروشنده و بخش مدیریت را از هم جدا می‌کنند. منطق کسب‌وکار در ماژول‌های عملیات سمت سرور قرار دارد که یک لایهٔ دامنه (کیف پول، امانت، کوپن، پرداخت، ارسال و مجوزدهی) را فراخوانی می‌کنند. صحت جریان‌ها با آزمون‌های واحد و آزمون‌های سرتاسری بررسی می‌شود.

ویژگی‌ها

آنچه این پروژه دارد.

  • سبد خرید چندفروشنده با تفکیک خودکار سفارش هر فروشنده
  • محاسبهٔ کامل قیمت، تخفیف و کارمزد در سمت سرور
  • کیف پول با مانده استخراج‌شده از دفتر تراکنش فقط‌افزودنی
  • نگهداری امانی وجه فروشنده و آزادسازی پس از تحویل
  • درخواست برداشت فروشنده با تأیید مدیر
  • موتور کوپن در سطح پلتفرم و فروشنده با کنترل مصرف تکراری
  • کنترل دسترسی داده‌محور با ۵ نقش و ثبت سوابق
  • نقشهٔ تعاملی مبتنی بر Leaflet و OpenStreetMap
  • آداپتورهای قابل‌تعویض برای پرداخت، ارسال و دستیار هوشمند
همکاری

پروژه‌ای مشابه دارید؟

شروع پروژهبازگشت به نمونه‌کارها
پلتفرم بازارگاه چندفروشنده | نمونه‌کار سپرو وب | سپرو وب