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

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

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

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

نتیجه در عدد

1,178+
تست خودکار بک‌اند

واحد و یکپارچگی

5,000+
سفارش تاریخی منتقل‌شده

با حفظ مشتری، آدرس و وضعیت

30 دقیقه
چرخه‌ی رزرو موجودی

رزرو پرداخت‌نشده خودکار آزاد می‌شود

چالش

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

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

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

راه‌حل

معماری به سه بخش مستقل تقسیم شد — فروشگاه، پنل مدیریت و API — روی هسته‌ای با Clean Architecture و الگوی CQRS.

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

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

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

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

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

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

  • کنترل چندلایه‌ی موجودی

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

  • رزرو سی‌دقیقه‌ای با آزادسازی خودکار

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

  • گزارش فروش به تفکیک ماه شمسی

    فروش، مشتری و محصول با فیلتر جلالی، جدول، نمودار و خروجی PDF، و داشبورد هفتگی و ماهانه و سالانه.

  • دسترسی تفکیک‌شده و مالی محدود

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

  • ارسال بر اساس وزن و منطقه

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

  • سبد مهمان با ادغام خودکار

    مشتری بدون ورود خرید را شروع می‌کند و پس از ورود، سبدش با سبد حسابش ادغام می‌شود.

  • واحد پول یکپارچه

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

  • انتشار امن روی فروشگاه در حال فروش

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

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

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

سه بخش مستقل روی یک هسته: فروشگاه با Next.js و React برای رندر مناسب سئو و تجربه‌ی راست‌به‌چپ واکنش‌گرا، پنل مدیریت با React و Vite شامل جداول پیشرفته و نمودار و فرم‌های اعتبارسنجی‌شده، و API روی ASP.NET Core با احراز هویت و کنترل دسترسی سیاست‌محور.

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

داده: SQL Server با EF Core برای نوشتن و Dapper برای گزارش‌ها؛ Redis برای کش. تصمیم مهم این‌جا کنترل اتمیک موجودی در سطح پایگاه داده بود — فروش بیشتر از موجودی مسئله‌ای است که فقط در همروندی واقعی خودش را نشان می‌دهد و با قفل در لایه‌ی برنامه قابل اعتماد حل نمی‌شود.

امنیت: JWT با Refresh Token، محدودیت نرخ روی مسیرهای حساس، کنترل CORS، اعتبارسنجی متمرکز ورودی‌ها، و کنترل دسترسی نقش‌محور و سیاست‌محور. استقرار با Docker و nginx و CDN، با گزارش رویدادها و Health Check سرویس‌ها.

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

فروشگاه — رندر مناسب سئو، راست‌به‌چپ و واکنش‌گرا

فرانت‌اند
Vite

پنل مدیریت — جداول پیشرفته، نمودار و فرم‌های اعتبارسنجی‌شده

بک‌اند و API
ASP.NET CoreC#REST APIClean ArchitectureEntity Framework CoreDapperMediatRFluentValidation
پایگاه داده
SQL Server
کش
Redis
زیرساخت و استقرار
DockernginxSerilog

استقرار کانتینری با CDN، لاگ رویداد و Health Check

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

  • درگاه پرداخت زرین‌پال با callback کنترل‌شده
  • پست، دکاپست، چاپار، تیپاکس و اسنپ برای ارسال
  • SMS.ir با قالب‌های پیامکی پویا

شرح تکمیلی

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

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

محصولات ساده و متغیر با ویژگی و تنوع، SKU یکتا، قیمت اصلی و قیمت تخفیف‌خورده، گالری تصاویر، برند، دسته‌بندی چندسطحی، محصولات مرتبط و مکمل، توضیحات ارسال، و ابزارهای URL و اسلاگ و متادیتا و سئو.

سبد خرید و تسویه‌حساب

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

انبار و موجودی

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

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

داشبورد سفارش‌های جدید با وضعیت دیده‌شده، گردش وضعیت از ثبت تا ارسال و تحویل، جزئیات اقلام و مشتری و آدرس و روش ارسال، اتصال امن به زرین‌پال با callback کنترل‌شده، و پشتیبانی یکپارچه از تومان و ریال.

ارسال و لجستیک

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

مشتریان و ارتباطات

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

محتوا و بازاریابی

مقالات و دسته‌بندی مقاله، صفحات و منوها، اسلایدر و بنرهای داینامیک صفحه‌ی اصلی، جشنواره‌ی فروش و کوپن و پیشنهاد ویژه، برندها، نظرات کاربران، خبرنامه، و مدیریت متادیتا و نقشه‌ی سایت و وضعیت سئو.

گزارش و مدیریت سازمانی

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

امنیت و پایداری

احراز هویت JWT با Refresh Token، محدودیت نرخ روی مسیرهای حساس، کنترل CORS و اعتبارسنجی متمرکز ورودی‌ها، کنترل دسترسی نقش‌محور و سیاست‌محور، و ثبت فعالیت‌ها با گزارش ساختاریافته‌ی خطاها.

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

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

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

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

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

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

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

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

داروبین · 1404

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

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

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

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

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

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