آموزش ووکامرس

آموزش تنظیم حمل‌ونقل در ووکامرس؛ مناطق، نرخ ثابت، ارسال رایگان و تحویل حضوری

آموزش تنظیم روش‌های حمل‌ونقل در ووکامرس

🗓 آخرین به‌روزرسانی:

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

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

هسته ووکامرس برای شروع سه روش اصلی ارائه می‌دهد: Flat Rate یا نرخ ثابت، Free Shipping یا ارسال رایگان و Local Pickup یا تحویل حضوری. پایه همه این روش‌ها Shipping Zone است؛ یعنی محدوده جغرافیایی که روش‌ها و قیمت‌های مشخصی برای آن تعریف می‌شود.

در این آموزش، Shipping Zone، ترتیب مناطق، Rest of the World، نرخ ثابت، فرمول‌های هزینه، Shipping Class، ارسال رایگان با حداقل خرید یا کد تخفیف، تحویل حضوری کلاسیک و بلوکی، مالیات ارسال، محصول متغیر، کش، WoodMart و خطاهای رایج Checkout را بررسی می‌کنیم. مثال‌های مالی با تومان نوشته شده‌اند و راهنما با WooCommerce 10.9.4 فعال روی سایت هماهنگ است.

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

فهرست مطالب
  1. Shipping Zone در ووکامرس چیست؟
  2. ووکامرس چگونه منطقه مشتری را انتخاب می‌کند؟
  3. تنظیم محل فروش و کشورهای قابل ارسال
  4. ساخت اولین Shipping Zone
  5. محدودکردن منطقه با کدپستی
  6. Rest of the World چیست؟
  7. روش‌های اصلی حمل‌ونقل هسته ووکامرس
  8. ساخت روش Flat Rate
  9. هزینه ثابت برای کل سفارش
  10. هزینه براساس تعداد اقلام
  11. هزینه درصدی حمل‌ونقل
  12. Shipping Class چیست؟
  13. ساخت Shipping Class
  14. اتصال Shipping Class به محصول
  15. قیمت‌گذاری کلاس‌ها در Flat Rate
  16. Per Class و Per Order چه تفاوتی دارند؟
  17. محصول بدون Shipping Class
  18. ارسال رایگان در ووکامرس
  19. ساخت ارسال رایگان با حداقل خرید
  20. تخفیف کوپن و حداقل ارسال رایگان
  21. ارسال رایگان با کد تخفیف
  22. پنهان‌کردن روش‌های دیگر هنگام ارسال رایگان
  23. Local Pickup یا تحویل حضوری
  24. Local Pickup کلاسیک داخل Shipping Zone
  25. Local Pickup مدرن در Checkout Block
  26. مالیات Local Pickup
  27. ترتیب روش‌های داخل یک Zone
  28. Shipping Destination
  29. ماشین‌حساب ارسال در Cart
  30. مخفی‌کردن هزینه تا ورود آدرس
  31. محصول مجازی و دانلودی
  32. سبد ترکیبی فیزیکی و مجازی
  33. وزن و ابعاد محصول
  34. محصول متغیر و حمل‌ونقل
  35. آیا هسته ووکامرس نرخ زنده پست دارد؟
  36. مالیات هزینه ارسال
  37. ارسال رایگان برای بعضی محصولات
  38. هزینه بسته‌بندی و بیمه
  39. سناریوی پیشنهادی برای فروشگاه ایرانی
  40. Debug Mode حمل‌ونقل
  41. خطا: هیچ روش ارسالی برای این آدرس وجود ندارد
  42. خطا: منطقه اشتباه انتخاب می‌شود
  43. خطا: ارسال رایگان نمایش داده نمی‌شود
  44. خطا: هم ارسال رایگان و هم Flat Rate دیده می‌شود
  45. خطا: هزینه ده برابر است
  46. خطا: Shipping Class اثر ندارد
  47. خطا: محصول مجازی هزینه ارسال دارد
  48. خطا: هزینه در Cart و Checkout متفاوت است
  49. خطا: Local Pickup دوبار نمایش داده می‌شود
  50. خطا: روش حمل بعد از تغییر تنظیمات به‌روز نمی‌شود
  51. کش LiteSpeed و صفحات حمل‌ونقل
  52. WoodMart و نمایش روش‌های ارسال
  53. آزمایش کامل پیش از انتشار
  54. چک‌لیست تنظیم حمل‌ونقل
  55. پرسش‌های متداول
  56. جمع‌بندی
  57. منابع رسمی

Shipping Zone در ووکامرس چیست؟

Shipping Zone یا منطقه حمل‌ونقل یک محدوده جغرافیایی است که مجموعه‌ای از روش‌های ارسال برای آن تعریف می‌شود. محدوده می‌تواند یک کشور، استان، شهر، کدپستی یا ترکیبی از آن‌ها باشد.

برای مثال فروشگاه می‌تواند ساختار زیر را داشته باشد:

  • تهران: پیک شهری و تحویل حضوری
  • استان تهران خارج از شهر: پست پیشتاز
  • سایر استان‌های ایران: پست و تیپاکس
  • خارج از ایران: بدون ارسال

هر مشتری فقط با یک Shipping Zone تطبیق داده می‌شود و فقط روش‌های همان منطقه را در Cart و Checkout می‌بیند.

ووکامرس چگونه منطقه مشتری را انتخاب می‌کند؟

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

مناطق کوچک‌تر و دقیق‌تر را بالاتر قرار دهید:

  1. کدپستی یا محدوده شهری
  2. استان
  3. کشور
  4. Rest of the World

اگر منطقه «ایران» بالاتر از منطقه «تهران» باشد، مشتری تهرانی ممکن است ابتدا با ایران تطبیق بخورد و روش پیک تهران را نبیند.

تنظیم محل فروش و کشورهای قابل ارسال

پیش از ساخت مناطق، به WooCommerce → Settings → General بروید و موارد زیر را بررسی کنید:

  • آدرس فروشگاه
  • کشور و استان فروشگاه
  • Selling Location
  • Shipping Location
  • کشورهایی که فروش یا ارسال به آن‌ها مجاز است

اگر Shipping Location روی کشور خاصی محدود باشد، ساخت Shipping Zone برای کشور خارج از آن محدودیت نتیجه‌ای ایجاد نمی‌کند.

ساخت اولین Shipping Zone

  1. به WooCommerce → Settings → Shipping بروید.
  2. تب Shipping Zones را باز کنید.
  3. روی Add Zone کلیک نمایید.
  4. یک نام مدیریتی واضح وارد کنید؛ مانند «شهر تهران».
  5. Zone Regions را انتخاب کنید.
  6. در صورت نیاز محدوده را با کدپستی محدود نمایید.
  7. روش‌های حمل‌ونقل را اضافه کنید.
  8. تغییرات را ذخیره نمایید.

نام Zone برای مدیریت داخلی است. نامی مانند «منطقه ۱» بعداً مفهوم روش را مشخص نمی‌کند. نام «تهران – پیک و تحویل حضوری» دقیق‌تر است.

محدودکردن منطقه با کدپستی

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

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

Rest of the World چیست؟

Rest of the World منطقه پیش‌فرضی است که مشتریان تطبیق‌نیافته را دریافت می‌کند. این منطقه قابل حذف یا جابه‌جایی نیست.

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

برای جلوگیری از ارسال به یک کشور خاص، می‌توانید منطقه‌ای برای آن کشور بسازید و هیچ روش حمل‌ونقلی داخلش قرار ندهید. این منطقه باید بالاتر از Rest of the World باشد.

روش‌های اصلی حمل‌ونقل هسته ووکامرس

  • Flat Rate: هزینه ثابت یا فرمولی
  • Free Shipping: ارسال رایگان با شرط یا بدون شرط
  • Local Pickup: دریافت سفارش توسط مشتری

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

ساخت روش Flat Rate

  1. Shipping Zone موردنظر را ویرایش کنید.
  2. روی Add Shipping Method کلیک نمایید.
  3. Flat Rate را انتخاب کنید.
  4. نام نمایشی روش را وارد نمایید.
  5. Tax Status را تعیین کنید.
  6. Cost را وارد نمایید.
  7. روش را ذخیره کنید.

نام روش باید برای مشتری قابل فهم باشد؛ مانند «پست پیشتاز – ۲ تا ۵ روز کاری»، نه فقط «Flat Rate».

هزینه ثابت برای کل سفارش

اگر هزینه ارسال همه سفارش‌های یک منطقه ۹۰٬۰۰۰ تومان است، در Cost عدد زیر را وارد کنید:

90000

این مبلغ یک بار برای کل Cart محاسبه می‌شود؛ تعداد اقلام به‌تنهایی آن را تغییر نمی‌دهد.

هزینه براساس تعداد اقلام

Placeholder [qty] تعداد اقلام قابل ارسال را نشان می‌دهد. برای هزینه پایه ۵۰٬۰۰۰ تومان به‌علاوه ۱۵٬۰۰۰ تومان برای هر کالا:

50000 + ( 15000 * [qty] )

  • یک کالا: ۶۵٬۰۰۰ تومان
  • دو کالا: ۸۰٬۰۰۰ تومان
  • سه کالا: ۹۵٬۰۰۰ تومان

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

هزینه درصدی حمل‌ونقل

ووکامرس امکان محاسبه درصدی با [fee] را فراهم می‌کند. مثال هزینه پایه ۴۰٬۰۰۰ تومان به‌علاوه ۵ درصد ارزش اقلام:

40000 + [fee percent="5"]

برای تعیین حداقل و حداکثر بخش درصدی می‌توان از این ساختار استفاده کرد:

40000 + [fee percent="5" min_fee="20000" max_fee="150000"]

فرمول را با سبدهای کم‌ارزش و گران‌قیمت آزمایش کنید تا هزینه غیرمنطقی ایجاد نشود.

Shipping Class چیست؟

Shipping Class محصولات مشابه را از نظر هزینه ارسال گروه‌بندی می‌کند؛ مانند:

  • سبک و کوچک
  • سنگین
  • شکننده
  • حجیم
  • ارسال رایگان

کلاس حمل‌ونقل به‌تنهایی یک روش ارسال نیست. کلاس باید داخل روشی مانند Flat Rate قیمت‌گذاری شود.

ساخت Shipping Class

  1. به WooCommerce → Settings → Shipping → Classes بروید.
  2. روی Add Shipping Class کلیک کنید.
  3. نام کلاس را وارد نمایید.
  4. Slug انگلیسی مانند heavy تعیین کنید.
  5. توضیح داخلی بنویسید.
  6. کلاس را ذخیره نمایید.

نام کلاس برای مدیریت و تنظیم نرخ استفاده می‌شود. ساخت کلاس براساس هر محصول باعث شلوغی می‌شود؛ محصولات با رفتار ارسال مشابه را گروه‌بندی کنید.

اتصال Shipping Class به محصول

در محصول ساده به Product Data → Shipping بروید و Shipping Class را انتخاب کنید. در محصول متغیر می‌توانید کلاس محصول مادر یا کلاس مستقل هر Variation را تعیین نمایید.

هر محصول فقط یک Shipping Class دارد. اگر Variationهای یک محصول وزن یا بسته‌بندی متفاوت دارند، کلاس هر تنوع را جدا تنظیم کنید.

قیمت‌گذاری کلاس‌ها در Flat Rate

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

مثال:

  • Cost پایه: ۳۰٬۰۰۰ تومان
  • کلاس سبک: ۲۰٬۰۰۰ تومان
  • کلاس سنگین: ۱۲۰٬۰۰۰ تومان

سفارش دارای محصول سنگین می‌تواند ۱۵۰٬۰۰۰ تومان هزینه داشته باشد: ۳۰٬۰۰۰ پایه به‌علاوه ۱۲۰٬۰۰۰ کلاس.

Per Class و Per Order چه تفاوتی دارند؟

وقتی Cart شامل چند کلاس است، Calculation Type دو رفتار اصلی دارد:

  • Per Class: هزینه همه کلاس‌های موجود جمع می‌شود.
  • Per Order: فقط گران‌ترین کلاس به هزینه پایه اضافه می‌شود.

اگر سبد شامل کلاس سبک ۳۰٬۰۰۰ تومان و سنگین ۱۲۰٬۰۰۰ تومان باشد:

  • Per Class: مجموع کلاس‌ها ۱۵۰٬۰۰۰ تومان
  • Per Order: فقط کلاس گران‌تر، ۱۲۰٬۰۰۰ تومان

انتخاب درست به بسته‌بندی بستگی دارد. اگر محصولات در دو بسته جدا ارسال می‌شوند، Per Class منطقی‌تر است. اگر همه در یک بسته قرار می‌گیرند، Per Order می‌تواند مناسب‌تر باشد.

محصول بدون Shipping Class

در تنظیم Flat Rate فیلدی برای No Shipping Class Cost وجود دارد. محصولاتی که کلاس ندارند از این مقدار استفاده می‌کنند.

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

ارسال رایگان در ووکامرس

Free Shipping باید داخل یک Shipping Zone اضافه شود. شرایط رایج آن شامل موارد زیر است:

  • بدون شرط
  • داشتن کوپن معتبر ارسال رایگان
  • رسیدن به حداقل مبلغ سفارش
  • حداقل مبلغ یا کوپن
  • حداقل مبلغ و کوپن

ساخت ارسال رایگان با حداقل خرید

  1. Zone موردنظر را ویرایش کنید.
  2. Free Shipping را اضافه نمایید.
  3. Minimum Order Amount را انتخاب کنید.
  4. حداقل مبلغ را وارد نمایید؛ مثلاً ۲٬۰۰۰٬۰۰۰ تومان.
  5. تنظیم را ذخیره کنید.

مشتری باید آدرس خود را وارد کند تا Zone درست شناسایی شود. متن کمپین را واضح بنویسید: «ارسال رایگان برای خرید محصولات فیزیکی بالای ۲ میلیون تومان در مناطق تحت پوشش».

تخفیف کوپن و حداقل ارسال رایگان

در تنظیم Free Shipping مشخص کنید حداقل خرید پیش یا پس از تخفیف کوپن بررسی شود. مثال:

  • سبد اولیه: ۲٬۱۰۰٬۰۰۰ تومان
  • تخفیف کوپن: ۳۰۰٬۰۰۰ تومان
  • مبلغ پس از تخفیف: ۱٬۸۰۰٬۰۰۰ تومان

اگر حداقل ۲٬۰۰۰٬۰۰۰ تومان پس از تخفیف محاسبه شود، ارسال رایگان فعال نخواهد شد. این رفتار را در متن کمپین اعلام کنید.

ارسال رایگان با کد تخفیف

برای این روش دو بخش باید هماهنگ شوند:

  1. در Shipping Zone، Free Shipping را با شرط کوپن معتبر تنظیم کنید.
  2. در Marketing → Coupons، گزینه Allow Free Shipping را برای کوپن فعال نمایید.

فعال‌کردن Allow Free Shipping به‌تنهایی کافی نیست. راهنمای کامل در مقاله آموزش ساخت کد تخفیف در ووکامرس قرار دارد.

پنهان‌کردن روش‌های دیگر هنگام ارسال رایگان

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

Local Pickup یا تحویل حضوری

Local Pickup به مشتری اجازه می‌دهد سفارش را از فروشگاه یا انبار دریافت کند. در هسته ووکامرس دو روش پیاده‌سازی وجود دارد:

  • نسخه مدرن Local Pickup برای Checkout Block
  • نسخه Legacy که به Shipping Zone اضافه می‌شود

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

Local Pickup کلاسیک داخل Shipping Zone

  1. Shipping Zone محل فروشگاه را باز کنید.
  2. Local Pickup را اضافه نمایید.
  3. نامی مانند «تحویل حضوری از انبار» وارد کنید.
  4. Tax Status را تعیین نمایید.
  5. در صورت وجود هزینه بسته‌بندی، Cost وارد کنید.
  6. ساعات و آدرس دریافت را در Checkout و ایمیل اعلام نمایید.

این روش فقط برای مشتریانی نمایش داده می‌شود که آدرسشان با همان Zone تطبیق داشته باشد.

Local Pickup مدرن در Checkout Block

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

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

مالیات Local Pickup

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

ترتیب روش‌های داخل یک Zone

روش‌ها را با Drag & Drop مرتب کنید. اولین روش می‌تواند به‌عنوان گزینه پیش‌فرض انتخاب شود.

ترتیب پیشنهادی:

  1. ارسال رایگان
  2. پست استاندارد
  3. ارسال سریع
  4. تحویل حضوری

گزینه پیش‌فرض نباید ناخواسته گران‌ترین روش باشد. رفتار Checkout را با آدرس واقعی آزمایش کنید.

Shipping Destination

در Shipping Settings تعیین می‌کنید هزینه ارسال براساس آدرس Shipping یا Billing محاسبه شود. برای فروش کالای فیزیکی معمولاً آدرس ارسال مبنا است.

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

ماشین‌حساب ارسال در Cart

فعال‌کردن Shipping Calculator به مشتری اجازه می‌دهد پیش از Checkout کشور، استان و کدپستی را وارد و هزینه را ببیند. این قابلیت ابهام قیمت نهایی را کاهش می‌دهد.

در فروشگاه فقط دیجیتال، نمایش ماشین‌حساب ارسال ضرورتی ندارد.

مخفی‌کردن هزینه تا ورود آدرس

گزینه Hide Shipping Costs Until an Address is Entered مانع نمایش نرخ تخمینی اشتباه می‌شود. اگر مناطق نرخ متفاوت دارند، فعال‌کردن آن منطقی است.

محصول مجازی و دانلودی

محصول Virtual نیاز به حمل‌ونقل ندارد. اگر همه اقلام Cart مجازی باشند، بخش Shipping نباید نمایش داده شود.

برای فایل PDF معمولاً هر دو گزینه Virtual و Downloadable فعال می‌شوند. اگر فقط Downloadable را فعال و Virtual را فراموش کنید، ممکن است Checkout آدرس و هزینه ارسال درخواست کند.

سبد ترکیبی فیزیکی و مجازی

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

وزن و ابعاد محصول

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

واحد وزن و ابعاد از WooCommerce → Settings → Products دریافت می‌شود. ناهماهنگی گرم و کیلوگرم می‌تواند نرخ را صدها برابر تغییر دهد.

محصول متغیر و حمل‌ونقل

هر Variation می‌تواند وزن، ابعاد و Shipping Class مستقل داشته باشد. برای مثال نسخه چاپی کتاب ارسال دارد، اما نسخه PDF مجازی و بدون ارسال است.

جزئیات ساخت Variation در مقاله آموزش محصول متغیر در ووکامرس توضیح داده شده است.

آیا هسته ووکامرس نرخ زنده پست دارد؟

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

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

  • سازگاری با WooCommerce 10.9.4
  • سازگاری با HPOS
  • پشتیبانی Checkout Blocks
  • واحد تومان یا ریال
  • استان‌ها و کدپستی ایران
  • Log و حالت آزمایشی
  • به‌روزرسانی و پشتیبانی فعال

مالیات هزینه ارسال

Tax Status روش تعیین می‌کند هزینه ارسال مشمول مالیات باشد یا خیر. نرخ و کلاس مالیاتی ارسال به قوانین و نوع کالا وابسته است.

برای سفارش دارای چند کلاس مالیاتی، محاسبه Shipping Tax می‌تواند پیچیده باشد. فاکتور و Checkout را با حسابدار بررسی کنید.

ارسال رایگان برای بعضی محصولات

برای رایگان‌کردن ارسال گروهی از محصولات می‌توانید Shipping Class «ارسال رایگان» بسازید و هزینه کلاس را صفر قرار دهید. در سبد ترکیبی باید Calculation Type و هزینه سایر کلاس‌ها را دقیق تنظیم کنید.

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

هزینه بسته‌بندی و بیمه

هزینه بسته‌بندی می‌تواند در Cost پایه Flat Rate قرار گیرد. مثال:

30000 + ( 10000 * [qty] )

در این مثال ۳۰٬۰۰۰ تومان هزینه پایه بسته‌بندی و ۱۰٬۰۰۰ تومان برای هر کالا دریافت می‌شود.

بیمه و هزینه‌های اجباری را شفاف در نام روش یا صفحه قوانین توضیح دهید. هزینه پنهان در Checkout نرخ رهاکردن سبد را افزایش می‌دهد.

سناریوی پیشنهادی برای فروشگاه ایرانی

منطقه اول: شهر تهران

  • پیک شهری: ۱۲۰٬۰۰۰ تومان
  • تحویل حضوری: رایگان
  • ارسال رایگان برای خرید بالای ۳٬۰۰۰٬۰۰۰ تومان

منطقه دوم: استان تهران

  • پست پیشتاز: ۹۵٬۰۰۰ تومان
  • ارسال رایگان بالای ۳٬۵۰۰٬۰۰۰ تومان

منطقه سوم: سایر ایران

  • پست پیشتاز: ۱۲۰٬۰۰۰ تومان
  • کالای سنگین: ۲۵۰٬۰۰۰ تومان
  • ارسال رایگان بالای ۴٬۰۰۰٬۰۰۰ تومان

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

Debug Mode حمل‌ونقل

برای عیب‌یابی به WooCommerce → Settings → Shipping → Shipping Settings بروید و Debug Mode را فعال کنید. این حالت Zone تطبیق‌یافته را در Frontend نشان می‌دهد و Cache نرخ ارسال را دور می‌زند.

پس از پایان آزمایش Debug Mode را غیرفعال کنید، زیرا پیام مدیریتی برای مشتری نمایش داده می‌شود.

خطا: هیچ روش ارسالی برای این آدرس وجود ندارد

  • آدرس با هیچ Zone دارای روش فعال تطبیق ندارد.
  • ترتیب Zoneها اشتباه است.
  • کش نرخ قدیمی باقی مانده است.
  • کشور یا استان در General محدود شده است.
  • محصول Shipping Class اشتباه دارد.
  • افزونه شرطی روش را مخفی کرده است.

Debug Mode را فعال کنید و آدرس را با منطقه تطبیق دهید.

خطا: منطقه اشتباه انتخاب می‌شود

Zone دقیق‌تر را بالاتر ببرید. اگر تهران باید پیک داشته باشد، منطقه تهران باید پیش از ایران قرار گیرد.

کدپستی و استان واردشده توسط مشتری را نیز بررسی کنید.

خطا: ارسال رایگان نمایش داده نمی‌شود

  • Free Shipping داخل Zone درست اضافه نشده است.
  • حداقل خرید برقرار نیست.
  • کوپن Allow Free Shipping ندارد.
  • تخفیف مبلغ را زیر حداقل رسانده است.
  • آدرس هنوز وارد نشده است.
  • کش Checkout قدیمی است.

خطا: هم ارسال رایگان و هم Flat Rate دیده می‌شود

این رفتار می‌تواند طبیعی باشد. برای مخفی‌کردن نرخ‌های دیگر، گزینه Hide Shipping Rates When Free Shipping Is Available را فعال کنید. اگر ارسال سریع پولی باید باقی بماند، این گزینه را فعال نکنید.

خطا: هزینه ده برابر است

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

خطا: Shipping Class اثر ندارد

  • کلاس به محصول متصل نشده است.
  • هزینه کلاس داخل Flat Rate خالی است.
  • Calculation Type مناسب نیست.
  • Variation کلاس دیگری دارد.
  • روش ارسال افزونه از کلاس‌ها پشتیبانی نمی‌کند.

خطا: محصول مجازی هزینه ارسال دارد

گزینه Virtual را در محصول یا Variation فعال کنید. وجود فایل Downloadable به‌تنهایی ارسال را حذف نمی‌کند.

خطا: هزینه در Cart و Checkout متفاوت است

آدرس، مالیات، کوپن، تغییر تعداد، Session و کش را بررسی کنید. Cart ممکن است با آدرس تخمینی و Checkout با آدرس کامل محاسبه شود.

خطا: Local Pickup دوبار نمایش داده می‌شود

احتمالاً Local Pickup مدرن Checkout Block و نسخه Legacy هم‌زمان فعال هستند. فقط یکی را نگه دارید.

خطا: روش حمل بعد از تغییر تنظیمات به‌روز نمی‌شود

Cart و Checkout به Session و Package Cache وابسته‌اند. محصول را حذف و دوباره اضافه کنید، آدرس را تغییر دهید و کش LiteSpeed را پاک نمایید.

کش LiteSpeed و صفحات حمل‌ونقل

Cart، Checkout، My Account و Endpointهای Ajax نباید Page Cache عمومی شوند. هزینه حمل برای هر مشتری و آدرس متفاوت است.

Exclude استاندارد ووکامرس را بررسی کنید و پس از تغییر Zoneها Purge Cache انجام دهید.

WoodMart و نمایش روش‌های ارسال

WoodMart می‌تواند Cart Drawer، Checkout Layout و فرم‌های آدرس را تغییر دهد. موارد زیر را آزمایش کنید:

  • ماشین‌حساب ارسال در موبایل
  • نمایش نام و قیمت روش‌ها
  • به‌روزرسانی Ajax بعد از تغییر آدرس
  • فرم استان و کدپستی
  • Bottom Toolbar و Side Cart
  • Checkout کلاسیک و بلوکی

اگر روش‌ها در قالب پیش‌فرض درست و در WoodMart اشتباه‌اند، Template Override یا JavaScript قالب را بررسی کنید.

آزمایش کامل پیش از انتشار

  1. یک محصول سبک و یک محصول سنگین بسازید.
  2. آدرس داخل شهر، استان و خارج منطقه وارد کنید.
  3. Flat Rate را در Cart و Checkout بررسی نمایید.
  4. مبلغ را به حد ارسال رایگان برسانید.
  5. کوپن ارسال رایگان را آزمایش کنید.
  6. سبد ترکیبی چند Shipping Class بسازید.
  7. محصول مجازی را جدا و همراه محصول فیزیکی تست کنید.
  8. Local Pickup را روی موبایل آزمایش کنید.
  9. یک سفارش واقعی کم‌مبلغ ثبت نمایید.
  10. هزینه سفارش و شرکت حمل را تطبیق دهید.

چک‌لیست تنظیم حمل‌ونقل

  • آدرس فروشگاه صحیح است.
  • کشورهای قابل ارسال مشخص‌اند.
  • Zoneهای دقیق بالاتر از مناطق عمومی هستند.
  • Rest of the World تصمیم‌گیری شده است.
  • هر Zone حداقل یک روش فعال دارد.
  • نام روش‌ها برای مشتری واضح است.
  • Flat Rate با تومان آزمایش شده است.
  • Shipping Class محصولات کامل است.
  • Per Class یا Per Order درست انتخاب شده است.
  • ارسال رایگان و کوپن هماهنگ‌اند.
  • Local Pickup فقط یک بار فعال است.
  • محصول مجازی هزینه ارسال ندارد.
  • Cart و Checkout از کش عمومی خارج‌اند.
  • آدرس‌های واقعی و موبایل آزمایش شده‌اند.

📌 همچنین بخوانید: تنظیم حساب کاربری و حریم خصوصی در ووکامرس، تنظیم مالیات در ووکامرس و گزارش‌های ووکامرس و WooCommerce Analytics

پرسش‌های متداول

چرا مشتری فقط یک Shipping Zone را می‌بیند؟

هر مشتری فقط با اولین Zone منطبق تطبیق داده می‌شود و روش‌های همان منطقه را می‌بیند.

آیا Shipping Class خودش روش ارسال است؟

خیر. کلاس فقط محصولات را گروه‌بندی می‌کند و باید داخل روشی مانند Flat Rate قیمت‌گذاری شود.

چگونه هزینه را براساس تعداد کالا محاسبه کنیم؟

از فرمولی مانند 50000 + ( 15000 * [qty] ) در Cost روش Flat Rate استفاده کنید.

چرا کد ارسال رایگان کار نمی‌کند؟

Free Shipping باید در Zone با شرط کوپن معتبر ساخته شود و کوپن نیز Allow Free Shipping داشته باشد.

آیا ووکامرس نرخ زنده پست دارد؟

هسته رایگان نرخ زنده و چاپ برچسب عمومی ارائه نمی‌دهد. برای این قابلیت افزونه سازگار لازم است.

برای محصول PDF چه کنیم؟

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

Per Class بهتر است یا Per Order؟

اگر کلاس‌ها در بسته‌های جدا ارسال می‌شوند Per Class و اگر یک بسته با هزینه غالب دارید Per Order معمولاً منطقی‌تر است.

جمع‌بندی

حمل‌ونقل در ووکامرس با طراحی درست Shipping Zone آغاز می‌شود. مناطق را از دقیق‌ترین به عمومی‌ترین مرتب کنید، سپس برای هر Zone روش Flat Rate، Free Shipping یا Local Pickup بسازید.

برای کالاهای سبک، سنگین و حجیم از Shipping Class استفاده کنید و نوع محاسبه Per Class یا Per Order را براساس بسته‌بندی واقعی انتخاب نمایید. ارسال رایگان را با حداقل خرید یا کوپن تنظیم کنید و Local Pickup مدرن و Legacy را هم‌زمان فعال نکنید.

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

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

منابع رسمی

آموزش‌های تازه، کد آماده و رفع خطاهر هفته در کانال Dev Source؛ رایگان.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *