دکان چندفروشندگی (Dokan Multi-Vendor)
multi-seller ساخت مارکت‌پلیس شبیه دیجی‌کالا

راهنمای جامع معماری و بهینه‌سازی افزونه دکان چندفروشندگی (Dokan Multi-Vendor) در وردپرس

بررسی فنی، سئو و امنیت افزونه دکان (dokan-lite). راهنمای جامع معماری بازارچه آنلاین، سازگاری HPOS، تسویه حساب و بهینه‌سازی دیتابیس در وردپرس.

آخرین نگارش نسخه 5.0.19
نصب‌های فعال +30 هزار
امتیاز کاربران ★ 4.6 (767 رأی)
توسعه‌دهنده رسمی Dokan, Inc.

📋 تفکیک گزارش تغییرات (Changelog) در ۲ نسخه اخیر

پایش لحظه‌ای تغییرات، وصله‌های امنیتی و ویژگی‌های اضافه شده در نسخه کنونی و نسخه پیشین از مخزن رسمی WordPress.org:

نگارش فعلی (Latest) نسخه 5.0.19
• ارتقای سازگاری کامل با نگارش جدید ووکامرس و رفع پیام‌های منقضی شدن در پیشخوان افزونه‌ها. • رفع باگ: حل مشکل ذخیره‌سازی محصولاتی که دارای گالری تصویر بدون تصویر شاخص بودند در ویرایشگر جدید.
📑 فهرست عناوین و سرفصل‌های این مقاله:

معماری ذخیره‌سازی داده‌ها و سازگاری با HPOS در دکان

افزونه دکان (Dokan Multi-Vendor) با اسلاگ dokan-lite هسته ووکامرس را به یک پلتفرم جامع بازارچه آنلاین تبدیل می‌کند. در معماری نوین وردپرس و ووکامرس، یکی از مهم‌ترین چالش‌ها نحوه ذخیره‌سازی متادیتا سفارش‌ها و محصولات است. با معرفی قابلیت High-Performance Order Storage یا همان HPOS در ووکامرس، دکان نیز برای حفظ پایداری و عدم ایجاد باتلنک در جدول‌های wp_posts و wp_postmeta، ساختار کوئری‌های خود را با جداول اختصاصی سفارش‌ها تطبیق داده است. این تغییر ساختاری باعث می‌شود تا گزارش‌گیری فروشندگان و محاسبه کمیسیون‌ها بدون ایجاد قفل روی پایگاه داده انجام گیرد. از منظر توسعه‌دهندگان، دستکاری کوئری‌های مرتبط با محصولات و سفارشات فروشندگان نیازمند شناخت دقیق هوک‌های سفارشی دکان است. به عنوان مثال، هنگامی که یک فروشنده اقدام به درج محصول جدید می‌کند، دکان وضعیت انتشار را روی حالت پیش‌نویس معنادار یا بررسی مدیریت تنظیم می‌کند تا مدیر سایت نظارت کامل داشته باشد. استفاده از متغیرهای گلوبال و توابع کمکی دکان مانند dokan_get_seller_id به جای کوئری‌های مستقیم به جدول wp_users، پایداری سیستم را در مقیاس‌های بزرگ تضمین می‌کند و از بروز خطاهای منطقی در سطح دیتابیس جلوگیری می‌نماید. در هاستینگ‌های ایرانی، به دلیل محدودیت‌های منابع سخت‌افزاری در هاست‌های اشتراکی، بهینه‌سازی این کوئری‌ها اهمیت دوچندانی پیدا می‌کند. فعال‌سازی ایندکس‌های سفارشی روی جدول‌های متا و استفاده از سیستم‌های کشینگ پیشرفته مانند Redis برای ذخیره اطلاعات موقت جلسات فروشندگان، بار اجرایی روی سرور را به شدت کاهش می‌دهد. طراحان سیستم باید اطمینان حاصل کنند که تمام اکستنشن‌های دکان با آخرین تغییرات سازگاری HPOS ووکامرس همگام‌سازی شده‌اند تا از تداخل در متادیتای سفارشات جلوگیری شود.

مدیریت سبد خرید، هوک wc-ajax و چالش‌های فرگمنت‌ها

یکی از سنگین‌ترین عملیات‌ها در هر فروشگاه سازگار با ووکامرس، رخداد wc-ajax=get_refreshed_fragments است که در هر بار افزودن محصول به سبد خرید توسط مشتری اجرا می‌شود. در یک مارکت‌پلیس چندفروشنده مانند دکان، این فرآیند پیچیده‌تر نیز می‌شود؛ زیرا سبد خرید ممکن است شامل کالاهایی از چندین فروشنده مختلف با سیاست‌های ارسال و انبارداری مجزا باشد. پردازش همزمان این درخواست‌ها برای کاربران مختلف روی سرور، نیازمند مدیریت دقیق کَش و جلوگیری از اجرای کوئری‌های تکراری (Duplicate Queries) است. برای بهینه‌سازی این بخش در اکوسیستم وردپرس فارسی، غیر فعال کردن درخواست‌های غیرضروری فرگمنت‌ها در صفحاتی که نیازی به نمایش سبد خرید زنده ندارند، یکی از راهکارهای استاندارد مهندسی است. همچنین، توسعه‌دهندگان باید با استفاده از Transient API دکان، داده‌های مربوط به هزینه ارسال هر فروشنده را کش کنند تا سیستم مجبور نباشد برای هر آیتم سبد خرید، جدول‌های سنگین حمل‌ونقل را به صورت آنی اسکن کند. این رویکرد تأثیر مستقیمی بر بهبود شاخص‌های حیاتی وب یعنی LCP و FID در سئوی سایت خواهد داشت. در محیط‌های راست‌چین (RTL) و قالب‌های ایرانی، تداخل اسکریپت‌های جاوا اسکریپت قالب با سیستم مدیریت سبد خرید دکان گاهی منجر به خطاهای timeout می‌شود. بررسی کنسول مرورگر و مانیتورینگ درخواست‌های ایجکس از طریق ابزارهای توسعه‌دهنده مرورگر کمک می‌کند تا اسکریپت‌های اضافی حذف شده و فرآیند تسویه حساب مشتری بدون وقفه و با بالاترین سرعت ممکن طی شود تا نرخ ریزش سبد خرید به حداقل برسد.

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

پیاده‌سازی سیستم مالی در بازارچه‌های آنلاین ایران نیازمند انطباق دقیق با قوانین بانکی کشور، سیستم شاپرک و درگاه‌های پرداخت معتبر است. دکان به صورت پیش‌فرض امکان تعریف کمیسیون به صورت درصدی یا ثابت را فراهم می‌کند، اما چالش اصلی زمانی آغاز می‌شود که تراکنش مالی انجام شده و مبلغ کل باید بین مدیر سایت و فروشندگان مختلف تقسیم (Split Payment) شود. در معماری استاندارد دکان، کل مبلغ به حساب مدیر سایت واریز شده و سپس بر اساس تراکنش‌های موفق، درخواست‌های تسویه حساب (Withdrawal Requests) تولید می‌شوند. مدیریت این فرآیند مستلزم استفاده از وب‌سرویس‌های سازگار با سیستم حسابداری دکان و درگاه‌های پرداختی است که از توابع بازگشتی (Webhooks) پشتیبانی می‌کنند. توسعه‌دهندگان باید توجه داشته باشند که ساختار پول در ووکامرس بر اساس واحد پیش‌فرض تنظیم می‌شود و تبدیل آن به ریال یا تومان در افزونه‌های واسط پرداخت، نباید در محاسبات اعشاری کمیسیون دکان تداخل ایجاد کند. استفاده از توابع داخلی فرمت‌بندی پول دکان تضمین می‌کند که هیچ خطایی در گرد کردن مبالغ تسویه حساب رخ ندهد. علاوه بر این، اتصال وب‌سرویس‌های پیامکی معتبر به دکان برای اطلاع‌رسانی آنی ثبت درخواست تسویه حساب یا تأیید پرداخت به فروشنده، نقش کلیدی در ایجاد اعتماد متقابل دارد. مدیران سایت باید لاگ‌های تراکنش‌ها را در جدول‌های wp_dokan_withdraw بررسی کنند تا باگ‌های احتمالی در وضعیت تسویه حساب‌ها (Pending, Completed, Cancelled) به سرعت شناسایی و رفع شوند.

بهینه‌سازی سئو، ساختار URL فروشگاه‌ها و مدیریت محتوای چندفروشندگی

از منظر بهینه‌سازی موتورهای جستجو (SEO)، ساختار URL صفحات فروشندگان در دکان (مانند /store/vendor-name) از اهمیت بالایی برخوردار است. افزونه دکان ابزارهای مناسبی برای سفارشی‌سازی نامک (Slug) فروشگاه، عنوان صفحه (Meta Title) و توضیحات متا در اختیار فروشندگان قرار می‌دهد. با این حال، اگر مدیر سایت نظارت درستی بر محتوای تولید شده توسط کاربران (UGC) نداشته باشد، خطر ایجاد صفحات تکراری (Duplicate Content) یا صفحات کم‌ارزش (Thin Content) توسط فروشندگان تازه کار وجود خواهد داشت. برای جلوگیری از افت سئو، استفاده از تگ‌های متعارف (Canonical Tags) و تنظیمات ربات‌های جستجوگر در صفحات فروشگاه الزامی است. افزونه‌های سئو مانند Rank Math یا Yoast SEO باید به درستی با دکان یکپارچه شوند تا عنوان‌های خودکار برای پروفایل فروشندگان تولید کنند. همچنین، به دلیل بارگذاری تصاویر متعدد توسط فروشندگان مختلف برای محصولاتشان، پیاده‌سازی سیستم بهینه‌سازی خودکار تصاویر، تبدیل فرمت‌ها به WebP و استفاده از شبکه توزیع محتوا (CDN) برای پوشه wp-content/uploads ضروری است. چالش دیگر در وب فارسی، سازگاری فونت‌ها و استایل‌های بخش کاربری فروشندگان (Vendor Dashboard) با قالب‌های مختلف است. بارگذاری فایل‌های CSS و JS اضافی دکان در تمام صفحات سایت می‌تواند سرعت لود را کاهش دهد. با استفاده از تکنیک‌های بارگذاری شرطی اسکریپت‌ها (Conditional Script Loading)، می‌توان تعیین کرد که استایل‌ها و کدهای جاوا اسکریپت دکان تنها در صفحات مرتبط با پنل فروشندگی و فروشگاه‌ها بارگذاری شوند، که این امر بهبود چشمگیری در سرعت سایت و امتیاز سئو ایجاد می‌کند.

❓ سوالات متداول درباره دکان چندفروشندگی (Dokan Multi-Vendor)

پاسخ به سوالات و چالش‌های فنی وبمسترها، طراحان سایت و مدیران سرور درباره افزونه دکان چندفروشندگی (Dokan Multi-Vendor) در این بخش گردآوری شده است:

برای رفع کندی کوئری‌ها، اطمینان حاصل کنید که سایت شما از آخرین نسخه ووکامرس با قابلیت HPOS استفاده می‌کند و دکان نیز با آن همگام است. همچنین، ایجاد ایندکس‌های مناسب روی جدول‌های متا، استفاده از کش Redis برای ذخیره‌سازی داده‌های موقت نشست فروشندگان و پاکسازی مرتب تاریخچه‌های قدیمی لاگ‌ها از طریق ابزارهای دیتابیس به شدت توصیه می‌شود.
دلیل این امر محاسبه همزمان موجودی، قیمت و هزینه‌های ارسال محصولات متعلق به فروشندگان مختلف در هر به‌روزرسانی سبد خرید است. برای حل این مشکل، پیشنهاد می‌شود در صفحاتی غیر از فروشگاه و سبد خرید، این درخواست‌ها را غیرفعال کنید و از Transient API برای کش کردن محاسبات حمل‌ونقل فروشندگان بهره بگیرید.
درگاه‌های پرداخت باید به گونه‌ای پیکربندی شوند که کل مبلغ سفارش را به حساب مدیر واریز کنند. سپس سیستم تسویه حساب داخلی دکان (Withdrawal) بر اساس وضعیت سفارش (Completed) سهم فروشنده را محاسبه کرده و به صورت درخواست تسویه ثبت می‌کند. حتماً از سازگاری واحد پول (تومان/ریال) در افزونه درگاه و تنظیمات ووکامرس اطمینان حاصل کنید.
برای مدیریت سئوی صفحات فروشندگان در دکان، افزونه‌های سئو مانند Rank Math یا Yoast را با دکان یکپارچه کنید تا تگ‌های Canonical به درستی درج شوند. همچنین با استفاده از قابلیت Noindex کردن صفحات خالی یا صفحات ویرایش حساب کاربری، و بهه‌سازی تصاویر آپلود شده توسط فروشندگان با فرمت WebP، از افت رتبه سئو جلوگیری کنید.