کانکتور ووکامرس
سینک کامل دوطرفه فروشگاه ووکامرس با اودو — محصول، موجودی، سفارش، مشتری
کانکتور ووکامرس ابرک، فروشگاه اینترنتی شما روی وردپرس/ووکامرس را بهصورت زنده و کاملاً دوطرفه به نرمافزار اودو (Odoo) متصل میکند. محصولها، متغیرها، موجودی، قیمت، سفارشها و مشتریان بدون دخالت دستی بین فروشگاه و ERP همگام میمانند — یک منبع حقیقت، دو نمایش.
چرا فروشگاه ووکامرس را به اودو وصل کنیم؟
بسیاری از کسبوکارهای ایرانی فروش آنلاین خود را با ووکامرس روی وردپرس اداره میکنند، اما حسابداری، انبار، خرید و مدیریت مشتری را در اودو انجام میدهند. بدون یک پل مطمئن، تیم مجبور است سفارشها را دستی در اودو ثبت کند، موجودی را در دو جا جداگانه بهروز کند و قیمتها را تکتک هماهنگ نگه دارد. این کار کند، پرخطا و مقیاسناپذیر است.
کانکتور ابرک این شکاف را میبندد: هر سفارش سایت بلافاصله به سفارش فروش اودو تبدیل میشود، هر تغییر موجودی در انبار اودو فوراً روی فروشگاه اعمال میگردد و کاتالوگ محصولات از یک جای واحد مدیریت میشود.
چه چیزهایی سینک میشوند؟
- محصولها و متغیرها: محصول ساده و متغیر (variable)، همراه با ویژگیها و ترکیبهای رنگ/سایز، دستهبندی درختی و توضیحات.
- موجودی انبار: موجودی هر محصول از انبار انتخابشدهی اودو به فروشگاه؛ فروش همزمان از دو کانال بدون فروش بیش از موجودی.
- قیمت و مالیات: قیمت فروش و کلاس مالیاتی از اودو به ووکامرس.
- سفارشها: سفارش ووکامرس → سفارش فروش اودو، با نگاشت قابلتنظیم وضعیت سفارش (در حال پردازش، تکمیلشده، لغوشده و...).
- مشتریان: ساخت یا تطبیق خودکار مشتری بر اساس ایمیل (بدون رکورد تکراری).
- تصاویر محصول: با مکانیزم ingest-by-hash، تصویر تکراری دوباره آپلود نمیشود.
هزینهی ارسال سفارشهای ووکامرس
یک سفارش ووکامرس معمولاً سه دسته مبلغ دارد: اقلام، کرایهی ارسال و هزینههای اضافه. اگر فقط اقلام وارد اودو شود، سفارش اودو دقیقاً به اندازهی کرایهای که خریدار واقعاً پرداخت کرده کم است — و این کسری در فاکتور، در حاشیهی سود و در گزارش فروش تکرار میشود.
این کانکتور هر سه را میآورد:
- خط حملونقل سفارش با مبلغ واقعیاش.
- هزینههای اضافه (fee lines) با علامت خودشان — یک هزینهی منفی همان چیزی است که فروشگاهها برای تخفیف دستی استفاده میکنند، پس منفی میماند و مثبت فرض نمیشود.
- ارسال رایگان بهعنوان یک پاسخ واقعی: خط صفر ساخته نمیشود تا بعداً کسی وسوسه شود «درستش» کند.
کرایه بهصورت «خط تحویل» خودِ اودو نوشته میشود، نه یک خط دستساز. نتیجهی عملیاش این است که فاکتور، حاشیهی سود و صورتحساب ارسال همگی آن را میخوانند بدون اینکه بدانند ووکامرسی در کار بوده است.
نگاشت روشهای ارسال
در «ووکامرس ▸ نگاشتها ▸ نگاشت روشهای ارسال» میگویید هر روش ارسال ووکامرس (مثلاً flat_rate) کدام روش ارسال اودو است. اهمیتش برای حواله و رهگیری است.
ترتیب کار عمداً این است: اول پول، بعد نگاشت. روشی که هنوز نگاشت نشده باشد، باز هم مبلغش ثبت میشود و سفارش پیامی میگیرد که میگوید چه چیزی را باید نگاشت کنید. دلیلش ساده است — سفارشی که به اندازهی کرایه کم باشد در دفتر غلط است، ولی سفارشی که حاملش خالی باشد فقط ناقص است.
نوشتن روی فروشگاه: یک تصمیم جداگانه
کانکتور میتواند وضعیت سفارش، کد رهگیری و برگشت وجه را به فروشگاه ووکامرس هم برگرداند. این قابلیت سوئیچ مستقل خودش را دارد و پیشفرض خاموش است.
چرا جدا؟ چون «خواندن از یک فروشگاه» با «نوشتن روی آن» دو تصمیم متفاوت است. فروشگاهی که سالها پیش همگامسازی سفارش را روشن کرده تا سفارشها بیاید، لزوماً نخواسته که اودو وضعیت را روی ویترینش بنویسد. یک نسخهی جدید نباید این را برای کسی روشن کند؛ باید یکبار و صریح خواسته شود.
کد رهگیری با قرارداد متادیتای رایج افزونههای رهگیری ووکامرس نوشته میشود، پس فروشگاهی که آن افزونه را دارد بدون کار اضافه رهگیری را در رابط خودش میبیند.
اگر افزونهی ارسال ابرک را هم دارید
وقتی افزونهی روشهای ارسال ابرک نصب باشد، روش ارسال نگاشتشده میتواند همان روشی باشد که قواعد استان و شهر، قیمت کیلومتری، محدودهی روی نقشه و اتصال API را دارد — یعنی سفارشی که از ووکامرس آمده هم از همان موتور تعرفه و همان کارتابل ارسال عبور میکند.
مزیتهای فنی که ابرک را متمایز میکند
افزونههای اتصال ووکامرس-اودو کم نیستند، اما اغلب سه ضعف مشترک دارند که کانکتور ابرک آنها را از ریشه حل کرده است:
- یک کدپایه برای نسخههای ۱۴ تا ۱۹: رقبا برای هر نسخهی اودو یک بیلد جداگانه و پولی میفروشند. ابرک با یک کد واحد و یک ترنسپایلر داخلی همهی نسخهها را پوشش میدهد.
- وبهوک همگام و امضاشده: وبهوک بومی ووکامرس روی WP-Cron سوار است و بیدرنگ و غیرقابلاتکاست. افزونهی وردپرس ابرک رویدادها را همان لحظه و با امضای امن به اودو میفرستد.
- تطبیق دقیق متغیرها: بزرگترین منبع خطای رقبا، تطبیقنشدن نام رنگ/سایز بین دو سیستم است. موتور تطبیق ابرک این را (حتی با متن فارسی) حل میکند و جدول نگاشت دستی برای موارد خاص دارد.
امنیت و پایداری
ارتباط دوطرفه با امضای HMAC-SHA256 و کلید مشترک محافظت میشود؛ هر پیام پیش از هر تغییری روی داده اعتبارسنجی میگردد و پیام جعلی رد میشود. یک صف داخلی با تلاش مجدد و صف مرده تضمین میکند حتی در قطعی لحظهای شبکه، هیچ سفارشی گم نشود. کلیدها و اسرار هرگز در لاگ یا رابط کاربری فاش نمیشوند. تمام دادهها روی سرور داخل ایران میمانند.
چطور شروع کنیم؟
پس از فعالسازی اپ روی اودوی شما، افزونهی رایگان ابرک را روی وردپرس نصب میکنید، آدرس اودو و کلید مشترک را وارد میکنید، و کلیدهای API ووکامرس را در تنظیمات فروشگاه اودو میگذارید. سپس با یک بار «همگامسازی کامل»، کل کاتالوگ و سفارشهای موجود وارد میشوند و از آن پس همهچیز خودکار است. راهنمای گامبهگام کامل را در صفحهی آموزش اتصال ووکامرس به اودو ببینید. برای شروع، از همینجا اقدام کنید یا صفحهی قیمتگذاری را ببینید.
پرسشهای پرتکرار دربارهی کانکتور ووکامرس
کانکتور ووکامرس ابرک دقیقاً چهکار میکند؟
این افزونه فروشگاه ووکامرس شما (روی وردپرس) را بهصورت زنده و دوطرفه به نرمافزار اودو وصل میکند. محصولها، متغیرها (مثل رنگ و سایز)، دستهبندی، موجودی انبار، قیمت، سفارشها و مشتریان بین دو سیستم همگام میشوند. یعنی یک سفارش در سایت وردپرس بلافاصله در اودو ثبت میشود و تغییر موجودی در انبار اودو فوراً روی فروشگاه اعمال میگردد.
آیا با همهی نسخههای اودو کار میکند؟
بله. کانکتور با یک کدپایهی واحد از اودو ۱۴ تا ۱۹ پشتیبانی میکند — برخلاف رقبا که برای هر نسخه یک بیلد جداگانه و پولی میفروشند. سمت وردپرس هم با آخرین نسخههای وردپرس و ووکامرس سازگار است.
سینک دوطرفه چطور از تداخل و حلقهی بینهایت جلوگیری میکند؟
هر رکورد با یک برچسب منشأ (origin) و یک checksum نگهداری میشود؛ تغییری که خودِ سیستم ایجاد کرده دوباره برنمیگردد و رکوردِ بدونتغییر اصلاً ارسال نمیشود. سیاست حلتعارض هم قابلتنظیم است: اودو-برنده (پیشفرض)، ووکامرس-برنده، جدیدترین-برنده، یا در سطح فیلد.
مشکل رایج تطبیقنشدن متغیرها (رنگ/سایز) را چطور حل کرده؟
تطبیق نام ویژگی و مقدار بین ووکامرس و اودو بزرگترین نقطهی شکست افزونههای رقیب است. موتور ابرک ویژگیها را بدون حساسیت به حروف بزرگ/کوچک تطبیق میدهد، در صورت نبود میسازد، و یک جدول override دستی هم دارد تا موارد خاص را دقیق نگاشت کنید. متن فارسی (مثل «قرمز/آبی») هم درست کار میکند.
امنیت ارتباط بین فروشگاه و اودو چطور تأمین میشود؟
هر پیام بین وردپرس و اودو با امضای HMAC-SHA256 و یک کلید مشترک امضا و اعتبارسنجی میشود؛ امضای نامعتبر پیش از هر عملیاتی روی داده رد میشود. کلیدهای API ووکامرس و کلید مشترک هرگز در لاگ یا رابط کاربری نمایش داده نمیشوند.
اگر اینترنت یا فروشگاه لحظهای قطع شود، سفارشها گم میشوند؟
خیر. کانکتور یک صف داخلی با retry و dead-letter دارد (بدون نیاز به ابزار جانبی). هر رویداد تا موفقیت چند بار تلاش میشود و در صورت شکست دائم در صف مرده بایگانی میشود تا دستی بررسی گردد. ویزارد resync کامل هم برای همگامسازی اولیه یا ترمیم وجود دارد.
قیمت این افزونه چقدر است؟
کانکتور ووکامرس بهصورت اپ مستقل با اشتراک ماهانه/سالانه ارائه میشود. قیمت دقیق و بهروز در صفحهی قیمتگذاری آمده است. سمت وردپرس افزونهی رایگان است و موتور اصلی روی اودوی شما فعال میشود.
هزینهی ارسال سفارش ووکامرس هم وارد اودو میشود؟
بله. خط حملونقل و هزینههای اضافه هر دو وارد میشوند، وگرنه سفارش اودو دقیقاً به اندازهی کرایهای که خریدار پرداخت کرده کم میماند و این کسری در فاکتور و حاشیهی سود تکرار میشود. کرایه بهصورت «خط تحویل» خود اودو نوشته میشود تا فاکتور و گزارشها بدون اطلاع از وجود ووکامرس آن را بخوانند. هزینهی منفی هم علامتش را نگه میدارد، چون فروشگاهها تخفیف دستی را همانطور ثبت میکنند.
اگر روش ارسال ووکامرس را هنوز نگاشت نکرده باشیم چه میشود؟
مبلغ کرایه باز هم ثبت میشود و سفارش پیامی میگیرد که میگوید کدام روش را باید نگاشت کنید. ترتیب عمدی است: سفارشی که به اندازهی کرایه کم باشد در دفتر غلط است، ولی سفارشی که حاملش خالی باشد فقط ناقص است. نگاشت را در «ووکامرس ▸ نگاشتها ▸ نگاشت روشهای ارسال» کامل میکنید.
آیا اودو وضعیت سفارش را روی فروشگاه ووکامرس مینویسد؟
فقط اگر صریحاً بخواهید. نوشتن وضعیت، کد رهگیری و برگشت وجه سوئیچ مستقل خودش را دارد و پیشفرض خاموش است. دلیلش این است که «خواندن از یک فروشگاه» با «نوشتن روی آن» دو تصمیم متفاوتاند؛ فروشگاهی که همگامسازی را برای واردکردن سفارش روشن کرده، لزوماً نخواسته که اودو روی ویترینش بنویسد — و یک نسخهی جدید نباید این را برای کسی روشن کند.