پرش به محتوای اصلی
علی فاتحی

فروشگاه ووکامرس

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

چه چیزی تحویل می‌گیرید

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

روند کار

  1. ۱

    بررسی کاتالوگ و داده

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

  2. ۲

    پیاده‌سازی و بهینه‌سازی

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

  3. ۳

    تست خرید واقعی

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

جایی که فروشگاه‌های ووکامرس می‌شکنند

ووکامرس تا حدود هزار محصول تقریباً با هر تنظیمی کار می‌کند. بعد از آن، سه چیز شروع به شکستن می‌کنند:

فیلتر محصولات. فیلترهای مبتنی بر ویژگی، به کوئری روی wp_postmeta تبدیل می‌شوند. این جدول با هر محصول ده‌ها ردیف می‌گیرد و بدون ایندکس مناسب، یک فیلتر دو‌شرطی می‌تواند چند ثانیه طول بکشد.

جست‌وجو. جست‌وجوی پیش‌فرض وردپرس LIKE %...% می‌زند که هیچ ایندکسی را استفاده نمی‌کند.

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

راه‌حل معمولاً مهاجرت نیست

پیشنهاد رایج در این وضعیت «فروشگاه را ببریم روی X» است. تقریباً همیشه گران‌تر و پرریسک‌تر از حل مسئله در جای خودش است.

-- یک ایندکس ترکیبی روی postmeta برای الگوی کوئری واقعی فروشگاه،
-- به‌جای اتکا به ایندکس پیش‌فرض meta_key که برای این کار ساخته نشده.
ALTER TABLE wp_postmeta
  ADD INDEX meta_key_value_post (meta_key(32), meta_value(32), post_id);

برای کاتالوگ‌های خیلی بزرگ، راه بهتر معمولاً یک جدول تخت کمکی است که فقط فیلدهای قابل فیلتر را نگه می‌دارد و با هوک‌های ذخیره محصول به‌روز می‌شود. کوئری فیلتر به‌جای چند JOIN روی postmeta، یک SELECT ساده می‌شود.

تسویه حساب، جایی که پول از دست می‌رود

هر فیلد اضافه در فرم تسویه، درصدی از سفارش‌ها را می‌خورد. کارهایی که معمولاً انجام می‌دهم:

  • حذف فیلدهایی که واقعاً لازم نیستند (برای ارسال داخلی، «نام شرکت» و «آدرس دوم» معمولاً لازم نیست).
  • اعتبارسنجی سمت کلاینت برای کد پستی و موبایل، تا کاربر بعد از ثبت با خطا برنگردد.
  • حذف اسکریپت‌های غیرضروری از صفحه تسویه — این صفحه نه اسلایدر لازم دارد و نه ویجت اینستاگرام.

نمونه‌کارهای این خدمت

  • چاپ سه‌بعدی و تولید محصول۲۰۲۶

    فروشگاه و سامانه قیمت‌گذاری چاپ سه‌بعدی پارس افزا

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

    مسیر سفارش: محصول آماده و چاپ اختصاصی
    ۲
    مشاهده سایت

    خواندن کیس‌استادی

  • لوازم آشپزخانه و دکوراسیون منزل۲۰۲۵

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

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

    دسته اصلی محصول در صفحه اول
    ۴

    خواندن کیس‌استادی

مطالب مرتبط با این خدمت

سؤال‌های پرتکرار

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

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

درگاه پرداخت ایرانی را وصل می‌کنید؟

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

می‌شود محصولات را از فایل اکسل وارد کرد؟

بله. ورود انبوه از CSV یا اکسل، با نگاشت ستون‌ها به ویژگی‌های محصول، بخشی از کار راه‌اندازی است.

چطور مطمئن شوم کش، سبد خرید را خراب نمی‌کند؟

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

مطمئن نیستید کدام یکی است؟

کافی است بنویسید چه مشکلی دارید. تشخیص اینکه کار در کدام دسته می‌افتد با من.

شروع یک پروژه