انتخاب آدرس روی نقشه
انتخاب آدرس روی نقشه و ارسال منطقهای در ووکامرس | ایران نت
چطور موقعیت مشتری را به مجاز بودن خرید، روش ارسال و هزینهٔ تحویل متصل کنیم؟ راهنمای انتخاب میان افزونهٔ وردپرس و اتصال مستقیم Geo API، همراه با سناریوی فروش محلی و نکات فنی راهاندازی.
فهرست مطالب
- چرا انتخاب آدرس روی نقشه بهتنهایی کافی نیست؟
- IranNet Geo و IranNet Location چه تفاوتی دارند؟
- Shipping Zones ووکامرس چه کاری انجام میدهد؟
- از مختصات تا آدرس و شناسهٔ محدوده
- شهر، استان یا شعاع؛ کدام محدوده مناسبتر است؟
- یک سناریوی روشن برای ارسال رایگان و هزینهٔ ثابت
- معماری امن اتصال به Geo API چگونه است؟
- اشتراک Geo و مصرف موقعیت را چطور برآورد کنیم؟
- چکلیست فنی تست فروشگاه موقعیتمحور
- کدام مسیر برای کسبوکار شما مناسب است؟
- پرسشهای متداول
برای انتخاب آدرس روی نقشه در ووکامرس، فقط به ظاهر نقشه نگاه نکنید. اگر محدودهٔ فروش و هزینهٔ ارسال شما به موقعیت مشتری وابسته است، باید انتخاب آدرس، تشخیص محدوده و اجرای قواعد فروشگاه در یک جریان هماهنگ کار کنند. این مقاله از تعریف این جریان شروع میکند و به انتخاب مسیر اجرا میرسد.
چرا انتخاب آدرس روی نقشه بهتنهایی کافی نیست؟
مشتری آدرسش را روی نقشه انتخاب میکند، اما تازه پرسش اصلی فروشگاه شروع میشود: آیا به این نقطه ارسال داریم؟ آیا همهٔ کالاها در این منطقه قابل فروشاند؟ کدام روش ارسال باید نمایش داده شود و هزینهٔ آن چقدر است؟ اگر پاسخ این پرسشها همچنان تلفنی یا پس از پرداخت مشخص شود، نقشه فقط ورود آدرس را آسان کرده است.
ارسال منطقهای در ووکامرس یعنی موقعیت انتخابشده وارد تصمیمهای فروشگاه شود. فروشگاهی که کالای سنگین میفروشد ممکن است یک محصول را فقط در یک شهر عرضه کند؛ گلفروشی ممکن است داخل شعاع مشخص ارسال داشته باشد؛ یک فروشگاه دیگر برای مناطق نزدیک ارسال رایگان و برای مناطق دورتر هزینهٔ ثابت تعریف کند.
هدف این راهنما انتخاب میان یک Map Picker ساده، افزونهٔ فروشگاه موقعیتمحور و اتصال مستقیم Geo API است. این انتخاب باید از قوانین واقعی کسبوکار شروع شود، نه صرفاً ظاهر نقشه.
IranNet Geo و IranNet Location چه تفاوتی دارند؟
IranNet Geo زیرساخت مکانی ایراننت است: نام مکان و آدرس را جستجو میکند، مختصات را به اطلاعات آدرس تبدیل میکند و محدودههای اداری پشتیبانیشده را با شناسهٔ استاندارد در اختیار نرمافزار قرار میدهد. این سرویس به وردپرس محدود نیست و میتواند در CRM، اپلیکیشن یا Backend اختصاصی استفاده شود.
IranNet Location افزونهٔ WordPress و WooCommerce است که از همین زیرساخت استفاده میکند. انتخاب موقعیت، نگهداری موقعیت مشتری، دفترچه آدرس، اتصال به Checkout و قوانین فروش و ارسال در این لایه قرار میگیرند. به بیان عملی، Geo اطلاعات موقعیت را فراهم میکند و Location آن را وارد منطق فروشگاه میکند.
| نیاز | IranNet Geo | IranNet Location |
|---|---|---|
| جستجوی مکان و تبدیل مختصات | قابلیت API زیرساخت | استفاده در تجربهٔ انتخاب آدرس |
| محدودهٔ شهر و استان | شناسه و اطلاعات محدودهٔ پشتیبانیشده | استفاده در قواعد فروشگاه و ارسال |
| محدودیت محصول و دستهبندی | تصمیم بر عهدهٔ نرمافزار مصرفکننده | قوانین جغرافیایی در ووکامرس |
| دفترچه آدرس و Checkout | نیازمند پیادهسازی در محصول شما | امکانات افزونهٔ وردپرس |
| کاربرد در نرمافزار غیروردپرسی | اتصال مستقیم به API | مخصوص اکوسیستم وردپرس |
اگر سایتساز ایراننت دارید، این سیستم در همان اکوسیستم در اختیار شماست. اگر سایت وردپرسی مستقلی دارید، مسیر افزونه را بررسی کنید؛ برای محصول اختصاصی، راهنمای توسعهدهندگان Geo نقطهٔ شروع مناسبتری است.
Shipping Zones ووکامرس چه کاری انجام میدهد؟
در تنظیمات استاندارد ووکامرس، Shipping Zone محدودهای است که روشهای ارسال مربوط به آن را تعریف میکنید. ناحیهها بر اساس آدرس مشتری تطبیق داده میشوند و ترتیبشان اهمیت دارد: اولین ناحیهٔ منطبق انتخاب میشود. برای همین معمولاً محدودههای کوچکتر پیش از محدودههای بزرگتر قرار میگیرند. جزئیات در مستند رسمی مناطق حملونقل ووکامرس آمده است.
هنگام طراحی فروشگاه موقعیتمحور، دو مفهوم را جدا کنید: «ناحیهٔ حملونقل ووکامرس» برای ارائهٔ روشهای ارسال و «محدودهٔ مکانی افزونه» برای قواعد مبتنی بر موقعیت. نام مشابه Zone به معنی یکسان بودن نقش آنها نیست. تنظیم هر دو لایه باید با سیاست فروشگاه هماهنگ باشد.
مثلاً محدود کردن یک محصول خاص به شهر تهران با تعیین هزینهٔ ارسال برای همهٔ کالاهای یک ناحیه، یک مسئله نیست. پیش از خرید افزونه مشخص کنید فقط به دستهبندی روشهای ارسال نیاز دارید، یا باید موقعیت روی نقشه، شعاع خدمت و مجاز بودن خرید محصول نیز بررسی شود.
از مختصات تا آدرس و شناسهٔ محدوده
در جریان انتخاب آدرس، سه داده را از هم تفکیک کنید: مختصات جغرافیایی، متن قابل نمایش برای مشتری و شناسهٔ استاندارد محدوده. مختصات برای محاسبات مکانی لازم است؛ متن آدرس برای خواندن و تکمیل جزئیات کاربرد دارد؛ شناسهٔ محدوده نیز ارتباط قواعد با شهر یا استان را پایدارتر میکند.
تکیه بر مقایسهٔ رشتهای نام شهر میتواند به خطا منجر شود؛ فاصله، تفاوت نگارشی و نامهای مشابه الزاماً یک کلید مطمئن برای تصمیم تجاری نمیسازند. در محدودههای پشتیبانیشدهٔ Geo، از شناسهٔ area_id استفاده کنید و نام شهر را برای نمایش نگه دارید.
/v1/search: جستجوی نام مکان، محله، شهر یا آدرس./v1/reverse: دریافت اطلاعات آدرس مرتبط با یک مختصات./v1/areas/search،/v1/areas/resolveو/v1/areas/{area_id}: کار با محدودههای اداری.
پاسخ بدون نتیجه یا محدودهٔ نامشخص را از آدرس معتبر جدا کنید. خطای شبکه نیز نشانهٔ خارج بودن مشتری از محدوده نیست. پیام مناسب این است که بررسی موقعیت تکمیل نشده و باید دوباره تلاش شود؛ تصمیم نهایی به سیاست مشخص فروشگاه نیاز دارد.
آدرس حاصل از نقشه هم لزوماً تمام جزئیات تحویل را ندارد. پلاک، واحد و توضیح دسترسی باید قابل تکمیل باشند. کد پستی نیز باید از مشتری دریافت و بررسی شود؛ یک نقطه روی نقشه جای کد پستی اختصاصی واحد را نمیگیرد.
شهر، استان یا شعاع؛ کدام محدوده مناسبتر است؟
City
برای کالایی که فقط در یک شهر عرضه میشود، قاعدهٔ شهری را بررسی کنید. وجود محدودهٔ موردنظر در دادهٔ پشتیبانیشده باید تأیید شود.
Province
وقتی سیاست خدمت شامل یک استان است، تعریف یک قاعدهٔ استانی از نگهداری فهرست دستی نام شهرها روشنتر است.
Radius
برای شعاع خدمت اطراف فروشگاه، نقطهٔ مبنا و شعاع مجاز را مشخص کنید و مرز آن را جداگانه تست کنید.
در قانون شعاعی، فاصلهٔ مشتری تا نقطهٔ مبنا با شعاع مقایسه میشود. یک سیاست نمونه میتواند مشتری با فاصلهٔ کمتر یا مساوی ۱۰ کیلومتر را مجاز بداند. رفتار نقطهٔ دقیقاً روی مرز را باید در تنظیم و تست خود صریح کنید؛ نتیجهٔ مرزی نباید وابسته به برداشت مبهم مدیر باشد.
قابلیت فعلی محاسبهٔ فاصله در Location بر فاصلهٔ مستقیم جغرافیایی تکیه دارد. رودخانه، مسیر یکطرفه یا بزرگراه ممکن است طول مسیر واقعی را بیشتر کند. این عدد را زمان رسیدن پیک، مسافت جاده یا سرویس مسیریابی معرفی نکنید.
قاعدهٔ کل فروشگاه، دستهبندی و محصول را با هدف مشخص تعریف کنید. برای نمونه، سیاست کلی فروشگاه میتواند گسترده باشد اما کالای حساس فقط در چند محدوده ارائه شود. ترکیبها، استثناها و حالت «موقعیت هنوز انتخاب نشده» را با شبیهساز بررسی کنید؛ از روی نام یک گزینه دربارهٔ نتیجهٔ چند قانون همزمان قضاوت نکنید.
یک سناریوی روشن برای ارسال رایگان و هزینهٔ ثابت
فرض کنید یک فروشگاه محلی تا شعاع ۱۰ کیلومتری خدمت میدهد. برای فاصلهٔ نزدیک ارسال رایگان تعریف میکند و از آن فاصله تا انتهای پوشش، مبلغ ثابت میگیرد. جدول زیر صرفاً نمونهٔ طراحی قانون است؛ مبلغ آن تعرفهٔ ایراننت یا تنظیم پیشفرض افزونه نیست.
| فاصلهٔ مستقیم | امکان خرید در این سناریو | ارسال |
|---|---|---|
| صفر تا ۳ کیلومتر، شامل مرز | مجاز | رایگان |
| بیش از ۳ تا ۱۰ کیلومتر، شامل مرز | مجاز | ۵۰٬۰۰۰ تومان ثابت |
| بیش از ۱۰ کیلومتر | غیرمجاز طبق سیاست این فروشگاه | خارج از محدودهٔ خدمت |
محدودهها را طوری طراحی کنید که همپوشانی رایگان و هزینهدار نتیجهٔ نامشخص ایجاد نکند. سپس یک نقطهٔ داخل، یک نقطهٔ بیرون و نقاط نزدیک مرزها را امتحان کنید. اگر محصولی استثنا دارد، همین سناریو را با آن محصول نیز تکرار کنید.
در IranNet Location امکانات کنترل روش ارسال، هزینهٔ ثابت، ارسال رایگان منطقهای، محاسبه بر مبنای فاصلهٔ مستقیم و قوانین یا کمپینهای ارسال وجود دارد. نمونهٔ تعاملی ارسال در صفحهٔ افزونه این ایده را نشان میدهد؛ تست تنظیم واقعی فروشگاه را با شبیهساز قوانین و شبیهساز ارسال انجام دهید.
ارسال محلی شما چه قاعدهای دارد؟
شهر یا شعاع خدمت، استثناهای محصول و روش محاسبه هزینه را آماده کنید؛ برای بررسی نصب و اتصال Location از پنل مشتریان شروع کنید.
معماری امن اتصال به Geo API چگونه است؟
در محصول اختصاصی، Secret دائمی سایت باید روی Backend بماند. Backend از مسیر POST /v1/token توکن کوتاهعمر میگیرد و مرورگر یا اپلیکیشن با توکن محدودشده به قابلیتهای مجاز به API متصل میشود. قرار دادن Secret در JavaScript عمومی، راه میانبر مناسبی برای اتصال نیست.
Application Backend
└─ Site Credential / Secret
└─ POST /v1/token
└─ Short-lived scoped JWT
└─ Client → Search / Reverse / AreasScopeهای معرفیشده برای این قابلیتها geo.search، geo.reverse و geo.areas هستند. تنظیم Site، Origin و Scope باید با مصرف واقعی پروژه هماهنگ شود. پارامترهای درخواست، شکل پاسخ و آدرس پایه را از قرارداد اتصال سرویس بگیرید؛ نام مسیرها بهتنهایی برای نوشتن یک کلاینت کامل کافی نیست.
برای جستجوی آدرس، درخواست را با هر فشار کلید بدون کنترل تکرار نکنید. یک تأخیر کوتاه پس از تایپ، مدیریت درخواستهای قبلی و نمایش جداگانهٔ حالت بارگذاری، بدون نتیجه و خطا، تجربهٔ قابل فهمتری میسازد. در ثبت سفارش، به دادهٔ قابل تغییر مرورگر بهعنوان تأیید نهایی خدمت اعتماد نکنید؛ قاعدهٔ خرید باید در سمت سرور نیز اعمال شود.
راهنمای عمومی اتصال، مسیرها و خطاهای تجاری در مستندات توسعهدهندگان IranNet Geo آمده است. در وردپرس، استفاده از افزونهٔ Location میتواند شما را از پیادهسازی دوبارهٔ دفترچه آدرس و اتصال Checkout بینیاز کند؛ برای توسعهٔ سفارشی هم Shortcode و API PHP در اختیار توسعهدهنده است.
اشتراک Geo و مصرف موقعیت را چطور برآورد کنیم؟
تعداد سفارش با تعداد درخواست مکانی برابر نیست. یک مشتری ممکن است چند بار جستجو کند، نقطه را تغییر دهد و چند عملیات تشخیص محدوده انجام دهد. بنابراین برای برآورد ظرفیت، سفر انتخاب آدرس را بررسی کنید، نه فقط تعداد سفارش ماهانه را.
در مدل فعلی Geo، هر Search، Reverse یا عملیات Areas پذیرفتهشده با نتیجهٔ معتبر موفق یا بدون نتیجه، یک واحد مصرف دارد. رد احراز هویت، اعتبارسنجی، محدودیت سرعت یا ظرفیت و خطای داخلی Backend از ظرفیت تجاری کم نمیشوند. واحدها از ظرفیت اشتراک کم میشوند؛ مدل محصول برداشت پول از کیف پول بهازای هر درخواست نیست.
اشتراکهای معرفیشده پرداخت سالانه و ظرفیت دورهٔ ماهانه دارند. اگر ظرفیت تمام شود، درخواست جدید رد میشود اما این وضعیت با تعلیق سرویس یکسان نیست. افزایش ظرفیت همان دوره، مصرف قبلی را پاک نمیکند و محدودیت سرعت دقیقه، ساعت یا روز را هم افزایش نمیدهد.
برای عدد دقیق ظرفیت، قیمت و شرایط آزمایش Starter، تعرفههای IranNet Geo را ببینید. شرایط دریافت افزونه را جداگانه از مسیر درخواست Location بررسی کنید؛ تعرفهٔ زیرساخت Geo را خودکار بهعنوان قیمت افزونه در نظر نگیرید.
چکلیست فنی تست فروشگاه موقعیتمحور
صرفاً ظاهر شدن نقشه به معنی آماده بودن اتصال نیست. حداقل این موارد را با دادهٔ آزمایشی بررسی کنید؛ بهخصوص اگر صفحهٔ محصول با Elementor یا تسویهحساب سفارشی ساخته شده است.
- مشتری بدون موقعیت: آیا برای محصول محدودشده، پیام روشن و مسیر انتخاب آدرس وجود دارد؟
- داخل، بیرون و مرز: یک نقطه در هر حالت را با محصول عادی و محصول دارای قانون تست کنید.
- تغییر آدرس پس از افزودن کالا: آیا مجاز بودن خرید و روش ارسال دوباره با موقعیت جدید هماهنگ میشود؟
- کاربر مهمان و واردشده: انتخاب موقعیت و دفترچهٔ آدرس را در مسیرهای مربوط به هر کدام بررسی کنید.
- Checkout واقعی شما: تسویهحساب کلاسیک یا بلوکی، قالب و ویجتهای استفادهشده در سایت خود را تست کنید.
- قوانین همزمان: حالت رایگان، هزینهٔ ثابت، استثنای محصول و تغییر دستهبندی را جداگانه و ترکیبی بررسی کنید.
- بدون نتیجه و خطای سرویس: خطا نباید به آدرس تأییدشده یا ارسال رایگان تبدیل شود.
- موبایل و متن طولانی: آدرس بلند، صفحه کوچک، باز و بسته شدن انتخابگر و دکمهٔ تأیید را بررسی کنید.
Location از Checkout کلاسیک، WooCommerce Blocks و Elementor پشتیبانی میکند؛ با این حال تست ترکیب واقعی قالب و افزونههای سایت شما ضروری است. شبیهساز، بررسی قانون را آسان میکند و تست نهایی مسیر خرید نیز تعامل اجزا را مشخص میکند.
کدام مسیر برای کسبوکار شما مناسب است؟
IranNet Location
برای انتخاب آدرس، دفترچهٔ مشتری، محدودیت محصول و ارسال منطقهای، امکانات و مسیر درخواست افزونه را ببینید.
IranNet Geo
برای دادهٔ مکانی مستقل از وردپرس، از معرفی سرویس Geo و راهنمای اتصال API شروع کنید.
سایتساز ایراننت
این سیستم در سایتسازهای ایراننت در اختیار شماست. مسیر راهاندازی سایت با ایراننت را بررسی کنید.
برای دریافت راهنمایی دقیق، در درخواست خود این چهار مورد را بنویسید: نوع سایت و Checkout، شهرها یا شعاع خدمت، استثناهای محصول و مدل هزینهٔ ارسال. اگر تیم توسعه دارید، فناوری Backend و برآورد تعداد دفعات انتخاب آدرس را هم اضافه کنید. با این اطلاعات میتوان مشخص کرد افزونه کافی است یا به اتصال اختصاصی API نیاز دارید.
مسیر فعلی شروع همکاری، ورود به پنل مشتریان ایراننت است. انتشار افزونه در مخزن رسمی وردپرس در برنامه قرار دارد؛ تا انتشار، لینک دریافت از مخزن ارائه نشده است.
پرسشهای متداول نقشه و ارسال منطقهای
آیا افزونه انتخاب آدرس روی نقشه، ارسال منطقهای را هم مدیریت میکند؟
همهٔ انتخابگرهای نقشه چنین قابلیتی ندارند. IranNet Location علاوه بر انتخاب و نگهداری موقعیت، آن را به دسترسی فروشگاه، دستهبندی و محصول و همچنین روش و هزینهٔ ارسال در ووکامرس متصل میکند.
برای فروش فقط در یک شهر یا شعاع مشخص چه چیزی لازم است؟
باید محدودهٔ پشتیبانیشده یا شعاع خدمت را تعریف کنید و آن را به قانون فروشگاه یا محصول متصل کنید. هزینهٔ ارسال و مجاز بودن خرید، دو تصمیم جدا هستند و هر دو باید آزمایش شوند.
آیا Geo API فقط برای وردپرس است؟
خیر. IranNet Geo زیرساخت مستقل مکانی است و میتواند مستقیماً در نرمافزار، CRM یا اپلیکیشن اختصاصی مصرف شود. IranNet Location مصرفکنندهٔ این سرویس در اکوسیستم وردپرس است.
آیا فاصلهٔ افزونه همان مسافت مسیر پیک است؟
خیر. فاصلهٔ فعلی مستقیم و جغرافیایی است. مسافت خیابان، زمان رسیدن، مسیریابی و بهینهسازی مسیر را نباید از آن نتیجه گرفت.
آیا Secret سرویس را میتوان داخل JavaScript گذاشت؟
Secret دائمی باید روی Backend نگهداری شود. Backend توکن کوتاهعمر با دسترسی مجاز دریافت میکند و کلاینت با آن به قابلیتهای سرویس متصل میشود.
برای شروع و دریافت افزونه از کجا اقدام کنیم؟
از مسیر درخواست نصب و اتصال وارد پنل مشتریان ایراننت شوید. اگر نرمافزار اختصاصی دارید، درخواست دسترسی Geo و قرارداد اتصال را مطرح کنید. تعرفهها در صفحهٔ Geo معرفی شدهاند.
فروشگاه وردپرسی یا نرمافزار اختصاصی؛ مسیر اتصال شما روشن است.
برای افزونه Location، درخواست نصب و اتصال بدهید. برای محصول اختصاصی، دسترسی آزمایشی Geo و قرارداد API را درخواست کنید. هر دو مسیر فعلاً از ورود به پنل مشتریان ایراننت آغاز میشوند.