فروشگاه اینترنتی · دارو، مکمل، آرایشی و بهداشتی

داروبین: داروخانه‌ی آنلاین با انبار تاریخ‌محور، سری ساخت و فروش بر اساس انقضا

فروشگاه آنلاین دارو، مکمل و محصولات آرایشی و بهداشتی روی .NET 10: انبار چند‌محموله‌ای با سری ساخت و تاریخ انقضا، تخصیص FEFO، سه درگاه پرداخت، کمپین و فروش ویژه‌ی زمان‌بندی‌شده، و گزارش حاشیه‌ی سود.

کارفرما
داروبین
حوزه
دارو، مکمل، آرایشی و بهداشتی
سال
1404
وضعیت
در حال بهره‌برداری
مشاهده سایت
  • تحلیل و کشف نیاز
  • طراحی تجربه و رابط کاربری
  • معماری نرم‌افزار
  • توسعه فرانت‌اند
  • توسعه بک‌اند و API
  • طراحی پایگاه داده
  • یکپارچه‌سازی با سیستم‌های دیگر
  • مهاجرت داده
  • استقرار و DevOps
  • سئوی فنی
  • تست و تضمین کیفیت
  • پشتیبانی و توسعه مستمر

نتیجه در عدد

FEFO
تخصیص بر اساس نزدیک‌ترین انقضا

موجودی به‌ازای هر محموله، نه هر کالا

3
درگاه پرداخت یکپارچه

چالش

فروش دارو و مکمل شبیه فروش کالای معمولی نیست، و همین‌جاست که یک فروشگاه آماده کم می‌آورد.

یک کالا، چند موجودی متفاوت. یک قلم دارو ممکن است در انبار از سه محموله‌ی مختلف باشد، با سه سری ساخت و سه تاریخ انقضای متفاوت. «موجودی: 40 عدد» عددی بی‌معنی است اگر ندانید کدام 40 عدد و کدامشان دو ماه دیگر منقضی می‌شود. ترتیب فروش هم دلخواه نیست: باید نزدیک‌ترین به انقضا اول برود، وگرنه موجودی روی دست می‌ماند و باطله می‌شود.

چند انبار، چند تأمین‌کننده. همان کالا از دو تأمین‌کننده با قیمت خرید متفاوت می‌آید، و برای اینکه حاشیه‌ی سود واقعی باشد باید بدانید هر فروش از کدام محموله رفته است.

فروشگاه قبلی روی وردپرس و ووکامرس بود. جایگزینی‌اش یعنی انتقال کاتالوگ و مشتری و سفارش، و مهم‌تر از آن حفظ مسیرهای سئو — نشانی‌هایی که رتبه دارند نباید بشکنند.

راه‌حل

یک پلتفرم اختصاصی به‌شکل مونولیت ماژولار ساخته شد با سه بخش مستقل — فروشگاه، پنل مدیریت و API — و لایه‌بندی Domain، Application، Infrastructure و API.

قلب سیستم، انبار تاریخ‌محور است. موجودی به‌ازای هر محموله نگه داشته می‌شود، نه به‌ازای هر کالا: سری ساخت، تاریخ انقضا، تأمین‌کننده و انبار. تخصیص با قاعده‌ی FEFO انجام می‌شود — نزدیک‌ترین به انقضا اول می‌رود — و دفتر گردش موجودی هر ورود، خروج، انتقال و اصلاح را ثبت می‌کند. سیستم برای کالای نزدیک انقضا و موجودی رو به اتمام هشدار می‌دهد، و رزرو سفارش‌های پرداخت‌نشده خودکار آزاد می‌شود.

قیمت و کمپین جدا از موجودی مدیریت می‌شوند: قیمت پایه و ویژه، تاریخچه‌ی قیمت، ویرایش گروهی، کوپن، فروش ویژه و جشنواره — همه با زمان‌بندی فعال‌سازی، پس کمپین را از قبل می‌چینید و خودش سر ساعت شروع و تمام می‌شود.

سه درگاه پرداخت — زرین‌پال، به‌پرداخت ملت و سامان کیش — با انتخاب درگاه، درگاه پیش‌فرض و تأیید امن تراکنش. کارهای سنگین روی RabbitMQ با MassTransit و کارهای زمان‌بندی‌شده با Quartz اجرا می‌شوند، پس ثبت سفارش منتظر پیامک و فاکتور و به‌روزرسانی فید نمی‌ماند.

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

قابلیت‌های کلیدی

  • انبار تاریخ‌محور با سری ساخت

    موجودی به‌ازای هر محموله: سری ساخت، تاریخ انقضا، تأمین‌کننده و انبار — نه یک عدد واحد برای کل کالا.

  • فروش بر اساس FEFO

    نزدیک‌ترین موجودی به انقضا اول تخصیص می‌یابد، پس کالا روی دست نمی‌ماند و باطله نمی‌شود.

  • دفتر گردش موجودی و انتقال

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

  • کمپین و فروش ویژه‌ی زمان‌بندی‌شده

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

  • سه درگاه پرداخت

    زرین‌پال، به‌پرداخت ملت و سامان کیش با انتخاب درگاه، درگاه پیش‌فرض و تأیید امن تراکنش.

  • عملیات انبار و بسته‌بندی

    چاپ فاکتور، لیبل و لیست جمع‌آوری و بسته‌بندی، ثبت کد رهگیری، و پیامک خودکار رویدادهای سفارش.

  • گزارش حاشیه‌ی سود

    فروش، مالی، حاشیه‌ی سود، انبار و مرجوعی با تاریخ شمسی — و چون فروش به محموله وصل است، سود واقعی است نه تخمینی.

  • اتصال به ترب و مهاجرت از ووکامرس

    فید داینامیک محصول و موجودی برای ترب، و مهاجرت کامل با ریدایرکت نشانی‌های قدیمی تا رتبه‌ی گوگل حفظ شود.

معماری و فناوری

سبک معماری
مونولیت ماژولار
الگوها
معماری پاک (Clean)CQRSرویدادمحور

مونولیت ماژولار با تفکیک Domain، Application، Infrastructure و API: سادگی عملیات یک استقرار، با مرزهایی که اجازه می‌دهند بعداً بخشی جدا شود.

سه بخش مستقل: فروشگاه روی Next.js 16 و React 19، پنل مدیریت روی React با Vite، و API با قراردادهای نسخه‌بندی‌شده و مستندات OpenAPI.

داده: PostgreSQL منبع حقیقت است، با EF Core برای نوشتن و Dapper برای گزارش‌هایی که کوئری‌شان باید دقیق و سریع باشد — گزارش حاشیه‌ی سود روی صدها هزار سطر با یک ORM عمومی، خودش یک باگ کارایی است. Redis کش و نشست را نگه می‌دارد.

کارهای پس‌زمینه: پیامک، فاکتور، فید ترب و پردازش‌های سنگین روی RabbitMQ با MassTransit می‌روند و کارهای زمان‌بندی‌شده با Quartz اجرا می‌شوند. ثبت سفارش مشتری هیچ‌وقت پشت یکی از این‌ها نمی‌ماند.

استقرار کانتینری با Docker و nginx، لاگ ساخت‌یافته با Serilog، و انتشار همراه با بکاپ و کنترل سلامت و امکان بازگشت — چون این فروشگاه هنگام به‌روزرسانی هم در حال فروش است.

فرانت‌اند
Next.jsReact.jsTypeScriptTailwind CSS

فروشگاه — Next.js 16 و React 19، فارسی و راست‌به‌چپ

فرانت‌اند
Vite

پنل مدیریت واکنش‌گرا با TanStack Query

بک‌اند و API
.NET 10ASP.NET CoreC#REST APIClean ArchitectureEntity Framework CoreDapper

EF Core برای نوشتن، Dapper برای گزارش‌های سنگین

پایگاه داده
PostgreSQL
کش
Redis
پیام‌رسانی و صف
RabbitMQMassTransitQuartz.NET

پیامک، فاکتور، فید ترب و کارهای زمان‌بندی‌شده

زیرساخت و استقرار
DockernginxSerilog

استقرار کانتینری با بکاپ، کنترل سلامت و بازگشت نسخه

یکپارچه‌سازی‌ها

  • زرین‌پال، به‌پرداخت ملت و سامان کیش
  • ترب — فید داینامیک محصول و موجودی
  • SMS.ir برای اعلان رویدادهای سفارش
  • نقشه‌ی نشان برای ثبت موقعیت آدرس مشتری

شرح تکمیلی

امکانات، به تفکیک

محصول و کاتالوگ

دسته‌بندی چندسطحی، برند و کشور تحت لیسانس، مشخصات شرطی بر اساس نوع کالا، محصول ساده و متغیر با ویژگی‌های نامحدود، گالری تصاویر، SKU و GTIN، و وضعیت انتشار.

انبار و موجودی تاریخ‌محور

چند انبار و چند تأمین‌کننده، موجودی مستقل برای هر تنوع و هر محموله، سری ساخت و تاریخ انقضا، تفکیک موجودی فیزیکی و آنلاین، انتقال بین انبارها، دفتر گردش موجودی، اولویت فروش بر اساس FEFO، هشدار کمبود و نزدیک انقضا، و رزرو و آزادسازی خودکار موجودی سفارش‌ها.

قیمت‌گذاری و کمپین

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

سفارش و عملیات

ثبت سفارش توسط مشتری یا اپراتور، مدیریت وضعیت سفارش و پرداخت و ارسال، چاپ فاکتور و لیبل و لیست جمع‌آوری و بسته‌بندی، ثبت کد رهگیری، پیامک رویدادهای سفارش، و فرایند مرجوعی با بررسی و بازپرداخت.

پرداخت

سه درگاه — زرین‌پال، به‌پرداخت ملت و سامان کیش — با امکان انتخاب درگاه، تعیین درگاه پیش‌فرض، callback کنترل‌شده و تأیید امن تراکنش.

ارسال و رهگیری

مناطق و روش‌های ارسال داینامیک، ثبت آدرس و موقعیت روی نقشه‌ی نشان، کد رهگیری پستی و اعلان وضعیت سفارش.

مشتریان

ورود با رمز یک‌بارمصرف، پروفایل، چند آدرس، فهرست علاقه‌مندی، نظرات، تیکت پشتیبانی، درخواست مرجوعی، اعلان موجود شدن کالا، و باشگاه مشتریان.

سئو

Canonical، نقشه‌ی سایت، robots، کنترل index و noindex، هدایت لینک‌های قدیمی، و داده‌ی ساختاریافته‌ی محصول و مسیر راهنما.

گزارش‌های مدیریتی

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

محتوا و یکپارچه‌سازی

مدیریت صفحات، بلاگ، بنر، منو و رسانه؛ اتصال داینامیک محصولات و موجودی به ترب؛ ارسال پیامک با SMS.ir؛ نقشه‌ی نشان؛ و زیرساخت آماده برای اتصال به CRM و حسابداری.

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

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

زرشاپ: فروشگاه اختصاصی شوینده و بهداشتی، با کنترل موجودی چندلایه و گزارش شمسی
کار شاخص

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

زرشاپ: فروشگاه اختصاصی شوینده و بهداشتی، با کنترل موجودی چندلایه و گزارش شمسی

فروشگاه اینترنتی اختصاصی زرشاپ بابل روی ASP.NET Core و Next.js: رزرو موجودی سی‌دقیقه‌ای، ارسال بر اساس وزن و منطقه با پنج شرکت حمل، گزارش فروش به تفکیک ماه شمسی با خروجی PDF، و مهاجرت بیش از پنج هزار سفارش تاریخی.

  • Next.js
  • React.js
  • TypeScript
  • Tailwind CSS

زرشاپ بابل · 1404

روبوکد: آموزشگاه، آزمون آنلاین، فروشگاه و شبکه‌ی نمایندگان روی یک سامانه
کار شاخص

نرم‌افزار سفارشی · فروشگاه اینترنتی

روبوکد: آموزشگاه، آزمون آنلاین، فروشگاه و شبکه‌ی نمایندگان روی یک سامانه

سکوی یکپارچه‌ی مؤسسه‌ی آموزشی روبوکد روی .NET 10: دوره‌ی آنلاین و حضوری، آزمون با کارنامه، فروشگاه با قیمت‌گذاری عمده، صدور گواهی با استعلام QR، پنل نمایندگان و مدرسان با پورسانت، و ورود یکپارچه از شاد.

  • .NET 10
  • C#
  • Entity Framework Core
  • MediatR

مؤسسه آموزشی روبوکد · 1404