نود WooCommerce در N8N
نود WooCommerce در N8N یکی از کاربردیترین نودها برای اتصال فروشگاه ووکامرس به ابزارهای اتوماسیون، CRM، پیامرسانها، فایلهای اکسل، سیستمهای حسابداری و سرویسهای بازاریابی است. با این نود میتوانید سفارشها، محصولات، مشتریان، کوپنها و تنوعهای محصول را بهصورت خودکار ایجاد، دریافت، بهروزرسانی یا حذف کنید و بسیاری از کارهای تکراری فروشگاه آنلاین را بدون کدنویسی انجام دهید.
معرفی نود در N8N
نود WooCommerce در N8N برای ارتباط مستقیم با REST API ووکامرس طراحی شده است. این نود به شما اجازه میدهد دادههای اصلی فروشگاه ووکامرسی خود را در ورکفلوهای N8N بخوانید یا تغییر دهید.
- نام نود: WooCommerce
- دستهبندی: Integration / Action
- کارکرد اصلی: مدیریت دادههای ووکامرس شامل سفارشها، محصولات، مشتریان، کوپنها و تنوع محصولات
- نوع عملکرد: اجرای عملیات روی دادهها بعد از شروع ورکفلو توسط نودهای Trigger، Cron، Webhook یا سایر نودها
- نود مرتبط: WooCommerce Trigger برای دریافت رویدادهای لحظهای از فروشگاه مانند ایجاد سفارش جدید یا تغییر وضعیت سفارش
اهمیت این نود زمانی مشخص میشود که بخواهید فروشگاه خود را به سیستمهای بیرونی متصل کنید. برای مثال، بعد از ثبت سفارش جدید، اطلاعات مشتری به CRM ارسال شود، فاکتور در Google Sheets ثبت شود، پیام تلگرام برای تیم فروش ارسال شود و موجودی محصول در یک سیستم دیگر همگامسازی شود.
موارد استفاده
ثبت خودکار سفارشها در Google Sheets
یکی از سناریوهای رایج این است که سفارشهای جدید فروشگاه را دریافت کنید و اطلاعات آنها را در یک فایل Google Sheets ذخیره کنید. در این حالت میتوانید از WooCommerce Trigger برای شروع ورکفلو و از نود WooCommerce برای دریافت جزئیات کامل سفارش استفاده کنید.
- WooCommerce Trigger: دریافت سفارش جدید
- WooCommerce: دریافت جزئیات سفارش
- Set: آمادهسازی فیلدهای لازم
- Google Sheets: ثبت اطلاعات سفارش
ارسال پیام به تیم فروش بعد از خرید
میتوانید بعد از ثبت سفارش جدید، نام مشتری، مبلغ سفارش و محصولات خریداریشده را به تلگرام، اسلک یا ایمیل ارسال کنید.
- WooCommerce Trigger: رویداد Order Created
- IF: بررسی مبلغ سفارش یا وضعیت پرداخت
- Telegram یا Slack: ارسال پیام به تیم فروش
ساخت کوپن تخفیف برای مشتریان جدید
اگر کاربر جدیدی در سایت ثبتنام کند، میتوانید بهصورت خودکار یک کوپن اختصاصی برای او ایجاد کنید و از طریق ایمیل ارسال کنید.
- WooCommerce Trigger: ایجاد مشتری جدید
- WooCommerce: ایجاد Coupon
- Email Send یا Gmail: ارسال کد تخفیف به مشتری
همگامسازی محصولات با سیستم انبارداری
در فروشگاههایی که موجودی محصولات در چند سیستم مختلف مدیریت میشود، نود WooCommerce میتواند برای دریافت یا بهروزرسانی موجودی محصولات استفاده شود.
- Cron: اجرای زمانبندیشده هر ۳۰ دقیقه
- HTTP Request: دریافت موجودی از سیستم انبارداری
- WooCommerce: بهروزرسانی stock_quantity یا stock_status محصول
- IF: ارسال هشدار در صورت کمبود موجودی
اتصال ووکامرس به CRM
با دریافت اطلاعات مشتریان ووکامرس و ارسال آنها به CRM میتوانید فرآیند فروش، پشتیبانی و بازاریابی را بهتر مدیریت کنید.
- WooCommerce: دریافت مشتریان جدید یا سفارشهای اخیر
- Code یا Set: تبدیل ساختار دادهها
- HubSpot، Pipedrive، Airtable یا HTTP Request: ثبت اطلاعات در CRM
پارامترها و تنظیمات
تنظیمات اتصال و احراز هویت
برای استفاده از نود WooCommerce ابتدا باید Credential مربوط به فروشگاه خود را در N8N تعریف کنید. این اطلاعات از بخش REST API در تنظیمات ووکامرس ساخته میشوند.
- Credential Type / نوع داده: WooCommerce API Credential / اتصال احراز هویت
کاربرد: اتصال امن N8N به فروشگاه ووکامرس
مثال: ساخت کلید API از مسیر WooCommerce > Settings > Advanced > REST API - Store URL / نوع داده: String
کاربرد: آدرس اصلی فروشگاه ووکامرس بدون مسیر اضافی API
مثال: https://example.com - Consumer Key / نوع داده: String
کاربرد: کلید عمومی API ووکامرس
مثال: ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Consumer Secret / نوع داده: String
کاربرد: کلید محرمانه API ووکامرس
مثال: cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Permission / نوع داده: Read / Write یا Read/Write
کاربرد: تعیین سطح دسترسی API Key در ووکامرس
مثال: برای ساخت و ویرایش سفارش باید دسترسی Read/Write انتخاب شود
نکته مهم: اگر فروشگاه شما روی HTTPS فعال باشد، اتصال پایدارتر و امنتر خواهد بود. همچنین پیوندهای یکتا در وردپرس باید بهدرستی فعال باشند تا REST API ووکامرس بدون خطا کار کند.
پارامتر Resource
پارامتر Resource مشخص میکند که عملیات نود روی کدام بخش ووکامرس انجام شود.
- Resource / نوع داده: Options
کاربرد: انتخاب موجودیت اصلی در ووکامرس
گزینههای رایج: Coupon، Customer، Order، Product، Product Variation
مثال: برای دریافت سفارشها مقدار Order را انتخاب کنید
پارامتر Operation
پارامتر Operation نوع عملیاتی را که میخواهید روی Resource انتخابشده انجام دهید مشخص میکند.
- Create / نوع داده: Operation
کاربرد: ایجاد یک رکورد جدید در ووکامرس
مثال: ساخت یک محصول جدید یا ایجاد کوپن تخفیف - Get / نوع داده: Operation
کاربرد: دریافت یک رکورد مشخص بر اساس ID
مثال: دریافت سفارش با شناسه 1024 - Get Many یا Get All / نوع داده: Operation
کاربرد: دریافت چندین رکورد با امکان فیلتر و محدودسازی
مثال: دریافت ۵۰ سفارش اخیر با وضعیت processing - Update / نوع داده: Operation
کاربرد: ویرایش یک رکورد موجود
مثال: تغییر وضعیت سفارش از processing به completed - Delete / نوع داده: Operation
کاربرد: حذف یک رکورد
مثال: حذف کوپن منقضیشده
پارامترهای عمومی عملیات Get و Update و Delete
- ID / نوع داده: Number یا String
کاربرد: شناسه رکورد موردنظر در ووکامرس
مثال: Order ID برابر با 4582 برای دریافت یا بهروزرسانی سفارش - Return All / نوع داده: Boolean
کاربرد: دریافت همه نتایج موجود بدون تعیین تعداد ثابت
مثال: فعال کردن برای دریافت همه محصولات فروشگاه - Limit / نوع داده: Number
کاربرد: تعیین حداکثر تعداد رکوردهای خروجی در عملیات Get Many
مثال: مقدار 100 برای دریافت ۱۰۰ سفارش آخر - Force / نوع داده: Boolean
کاربرد: حذف دائمی رکورد در عملیات Delete، در منابعی که ووکامرس از حذف دائمی پشتیبانی میکند
مثال: true برای حذف کامل یک کوپن
پارامترهای Resource: Order
Resource سفارشها برای مدیریت سفارشهای فروشگاه استفاده میشود. این بخش یکی از پرکاربردترین قسمتهای نود WooCommerce است.
- Order ID / نوع داده: Number
کاربرد: شناسه سفارش برای عملیات Get، Update یا Delete
مثال: 1205 - Status / نوع داده: Options
کاربرد: تعیین یا فیلتر وضعیت سفارش
مثال: processing، completed، pending، cancelled، refunded، failed، on-hold - Customer ID / نوع داده: Number
کاربرد: اتصال سفارش به یک مشتری ثبتشده در ووکامرس
مثال: 87 - Payment Method / نوع داده: String
کاربرد: شناسه روش پرداخت
مثال: cod یا stripe - Payment Method Title / نوع داده: String
کاربرد: عنوان قابل نمایش روش پرداخت
مثال: پرداخت در محل - Set Paid / نوع داده: Boolean
کاربرد: تعیین اینکه سفارش پرداختشده محسوب شود یا نه
مثال: true برای ثبت سفارش پرداختشده - Billing / نوع داده: Object
کاربرد: اطلاعات صورتحساب مشتری
مثال: نام، نام خانوادگی، آدرس، شهر، کد پستی، کشور، ایمیل و تلفن - Shipping / نوع داده: Object
کاربرد: اطلاعات ارسال سفارش
مثال: آدرس گیرنده، شهر، استان، کد پستی و کشور - Line Items / نوع داده: Array
کاربرد: محصولات داخل سفارش
مثال: product_id: 45 و quantity: 2 - Shipping Lines / نوع داده: Array
کاربرد: روشها و هزینههای ارسال
مثال: method_title: پست پیشتاز و total: 75000 - Coupon Lines / نوع داده: Array
کاربرد: کوپنهای اعمالشده روی سفارش
مثال: code: welcome10 - Fee Lines / نوع داده: Array
کاربرد: هزینههای اضافه مانند بستهبندی یا خدمات
مثال: name: بستهبندی ویژه و total: 20000 - Customer Note / نوع داده: String
کاربرد: یادداشت مشتری برای سفارش
مثال: لطفاً قبل از ارسال تماس بگیرید - Meta Data / نوع داده: Array
کاربرد: ذخیره اطلاعات سفارشی روی سفارش
مثال: key: campaign و value: yalda_sale
پارامترهای Resource: Product
Resource محصول برای ایجاد، دریافت و ویرایش محصولات ووکامرس استفاده میشود.
- Product ID / نوع داده: Number
کاربرد: شناسه محصول برای دریافت، ویرایش یا حذف
مثال: 312 - Name / نوع داده: String
کاربرد: نام محصول
مثال: کفش ورزشی مدل A1 - Type / نوع داده: Options
کاربرد: نوع محصول
مثال: simple، variable، grouped، external - Regular Price / نوع داده: String یا Number بهصورت رشته عددی
کاربرد: قیمت اصلی محصول
مثال: 850000 - Sale Price / نوع داده: String یا Number بهصورت رشته عددی
کاربرد: قیمت فروش ویژه
مثال: 720000 - Description / نوع داده: String یا HTML
کاربرد: توضیحات کامل محصول
مثال: توضیح کامل ویژگیها، جنس، کاربرد و شرایط گارانتی - Short Description / نوع داده: String یا HTML
کاربرد: توضیح کوتاه محصول
مثال: مناسب برای پیادهروی روزانه - SKU / نوع داده: String
کاربرد: کد یکتای انبارداری محصول
مثال: SHOE-A1-BLACK-42 - Status / نوع داده: Options
کاربرد: وضعیت انتشار محصول
مثال: publish، draft، pending، private - Featured / نوع داده: Boolean
کاربرد: مشخص کردن محصول ویژه
مثال: true برای نمایش در محصولات ویژه - Catalog Visibility / نوع داده: Options
کاربرد: نحوه نمایش محصول در فروشگاه
مثال: visible، catalog، search، hidden - Manage Stock / نوع داده: Boolean
کاربرد: فعالسازی مدیریت موجودی برای محصول
مثال: true - Stock Quantity / نوع داده: Number
کاربرد: تعداد موجودی محصول
مثال: 25 - Stock Status / نوع داده: Options
کاربرد: وضعیت موجودی
مثال: instock، outofstock، onbackorder - Categories / نوع داده: Array
کاربرد: دستهبندیهای محصول بر اساس ID
مثال: id: 15 برای دسته کفش - Tags / نوع داده: Array
کاربرد: تگهای محصول
مثال: id: 8 برای تگ ورزشی - Images / نوع داده: Array
کاربرد: تصاویر محصول با آدرس URL یا ID تصویر
مثال: src: https://example.com/wp-content/uploads/product.jpg - Attributes / نوع داده: Array
کاربرد: ویژگیهای محصول مانند رنگ و سایز
مثال: name: رنگ و options: مشکی، سفید - Default Attributes / نوع داده: Array
کاربرد: مقدار پیشفرض ویژگیها برای محصولات متغیر
مثال: رنگ پیشفرض: مشکی - Virtual / نوع داده: Boolean
کاربرد: مشخص کردن محصول مجازی
مثال: true برای دوره آموزشی آنلاین - Downloadable / نوع داده: Boolean
کاربرد: مشخص کردن محصول دانلودی
مثال: true برای فایل PDF یا نرمافزار - Downloads / نوع داده: Array
کاربرد: فایلهای دانلودی محصول
مثال: name: فایل اصلی و file: https://example.com/file.zip - Weight / نوع داده: String یا Number
کاربرد: وزن محصول برای محاسبه حملونقل
مثال: 1.2 - Dimensions / نوع داده: Object
کاربرد: ابعاد محصول شامل طول، عرض و ارتفاع
مثال: length: 30، width: 20، height: 10 - Shipping Class / نوع داده: String یا ID
کاربرد: کلاس حملونقل محصول
مثال: محصولات سنگین - Meta Data / نوع داده: Array
کاربرد: ذخیره دادههای سفارشی روی محصول
مثال: key: supplier_code و value: SUP-458
پارامترهای Resource: Product Variation
Resource تنوع محصول برای مدیریت نسخههای مختلف یک محصول متغیر استفاده میشود؛ مانند رنگ، سایز یا مدل.
- Product ID / نوع داده: Number
کاربرد: شناسه محصول والد که از نوع variable است
مثال: 312 - Variation ID / نوع داده: Number
کاربرد: شناسه تنوع محصول برای دریافت، ویرایش یا حذف
مثال: 315 - Regular Price / نوع داده: String یا Number
کاربرد: قیمت اصلی تنوع
مثال: 900000 - Sale Price / نوع داده: String یا Number
کاربرد: قیمت فروش ویژه تنوع
مثال: 790000 - SKU / نوع داده: String
کاربرد: کد یکتای تنوع محصول
مثال: SHOE-A1-BLACK-42 - Manage Stock / نوع داده: Boolean
کاربرد: مدیریت موجودی در سطح تنوع
مثال: true - Stock Quantity / نوع داده: Number
کاربرد: موجودی این تنوع خاص
مثال: 7 - Stock Status / نوع داده: Options
کاربرد: وضعیت موجودی تنوع
مثال: instock یا outofstock - Attributes / نوع داده: Array
کاربرد: ویژگیهایی که این تنوع را مشخص میکنند
مثال: رنگ: مشکی، سایز: 42 - Image / نوع داده: Object
کاربرد: تصویر اختصاصی تنوع
مثال: src: https://example.com/black-42.jpg - Weight / نوع داده: String یا Number
کاربرد: وزن تنوع محصول
مثال: 0.8 - Dimensions / نوع داده: Object
کاربرد: ابعاد تنوع محصول
مثال: length، width و height - Virtual / نوع داده: Boolean
کاربرد: مشخص کردن تنوع مجازی
مثال: true برای نسخه دیجیتال محصول - Downloadable / نوع داده: Boolean
کاربرد: مشخص کردن تنوع دانلودی
مثال: true برای نسخه قابل دانلود
پارامترهای Resource: Customer
Resource مشتری برای ایجاد، دریافت و ویرایش اطلاعات کاربران و خریداران فروشگاه استفاده میشود.
- Customer ID / نوع داده: Number
کاربرد: شناسه مشتری برای دریافت، ویرایش یا حذف
مثال: 91 - Email / نوع داده: String
کاربرد: ایمیل مشتری، معمولاً باید یکتا باشد
مثال: customer@example.com - First Name / نوع داده: String
کاربرد: نام مشتری
مثال: علی - Last Name / نوع داده: String
کاربرد: نام خانوادگی مشتری
مثال: رضایی - Username / نوع داده: String
کاربرد: نام کاربری مشتری
مثال: ali.rezaei - Password / نوع داده: String
کاربرد: رمز عبور هنگام ایجاد مشتری جدید
مثال: یک رمز امن تولیدشده توسط نود Code - Billing / نوع داده: Object
کاربرد: اطلاعات صورتحساب مشتری
مثال: billing.first_name، billing.city، billing.phone - Shipping / نوع داده: Object
کاربرد: اطلاعات ارسال مشتری
مثال: shipping.address_1، shipping.postcode - Meta Data / نوع داده: Array
کاربرد: اطلاعات سفارشی مشتری
مثال: key: crm_id و value: 55821
پارامترهای Resource: Coupon
Resource کوپن برای ساخت و مدیریت کدهای تخفیف در ووکامرس استفاده میشود.
- Coupon ID / نوع داده: Number
کاربرد: شناسه کوپن برای دریافت، ویرایش یا حذف
مثال: 44 - Code / نوع داده: String
کاربرد: کد تخفیفی که مشتری در checkout وارد میکند
مثال: WELCOME10 - Amount / نوع داده: String یا Number
کاربرد: مقدار تخفیف
مثال: 10 برای تخفیف ۱۰ درصدی یا 50000 برای تخفیف مبلغی - Discount Type / نوع داده: Options
کاربرد: نوع تخفیف
مثال: percent، fixed_cart، fixed_product - Description / نوع داده: String
کاربرد: توضیح داخلی یا عمومی برای کوپن
مثال: کوپن خوشآمدگویی کاربران جدید - Date Expires / نوع داده: DateTime
کاربرد: تاریخ انقضای کوپن
مثال: 2026-12-31T23:59:59 - Individual Use / نوع داده: Boolean
کاربرد: جلوگیری از استفاده همزمان با سایر کوپنها
مثال: true - Product IDs / نوع داده: Array
کاربرد: محدود کردن کوپن به محصولات خاص
مثال: 12، 18، 25 - Excluded Product IDs / نوع داده: Array
کاربرد: مستثنی کردن محصولات خاص از کوپن
مثال: 33، 34 - Usage Limit / نوع داده: Number
کاربرد: تعداد کل دفعات قابل استفاده بودن کوپن
مثال: 100 - Usage Limit Per User / نوع داده: Number
کاربرد: تعداد دفعات استفاده برای هر کاربر
مثال: 1 - Limit Usage To X Items / نوع داده: Number
کاربرد: محدود کردن تعداد آیتمهایی که تخفیف روی آنها اعمال میشود
مثال: 2 - Free Shipping / نوع داده: Boolean
کاربرد: فعال کردن ارسال رایگان با کوپن
مثال: true - Product Categories / نوع داده: Array
کاربرد: محدود کردن کوپن به دستهبندیهای خاص
مثال: category id: 15 - Excluded Product Categories / نوع داده: Array
کاربرد: مستثنی کردن دستهبندیهای خاص
مثال: category id: 21 - Exclude Sale Items / نوع داده: Boolean
کاربرد: عدم اعمال کوپن روی محصولات دارای تخفیف
مثال: true - Minimum Amount / نوع داده: String یا Number
کاربرد: حداقل مبلغ سبد خرید برای استفاده از کوپن
مثال: 500000 - Maximum Amount / نوع داده: String یا Number
کاربرد: حداکثر مبلغ سبد خرید برای استفاده از کوپن
مثال: 3000000 - Email Restrictions / نوع داده: Array
کاربرد: محدود کردن کوپن به ایمیلهای خاص
مثال: customer@example.com - Meta Data / نوع داده: Array
کاربرد: ذخیره دادههای سفارشی برای کوپن
مثال: key: campaign و value: spring_sale
پارامترهای فیلتر در عملیات Get Many
در عملیات دریافت چند رکورد، بسته به Resource انتخابشده، فیلترهای مختلفی در دسترس هستند.
- Search / نوع داده: String
کاربرد: جستجو در رکوردها
مثال: جستجوی محصول با عبارت کفش - After / نوع داده: DateTime
کاربرد: دریافت رکوردهای ایجادشده بعد از یک تاریخ مشخص
مثال: 2026-01-01T00:00:00 - Before / نوع داده: DateTime
کاربرد: دریافت رکوردهای ایجادشده قبل از یک تاریخ مشخص
مثال: 2026-02-01T00:00:00 - Order / نوع داده: Options
کاربرد: ترتیب مرتبسازی نتایج
مثال: asc یا desc - Order By / نوع داده: Options یا String
کاربرد: فیلدی که نتایج بر اساس آن مرتب میشوند
مثال: date، id، title، modified - Status / نوع داده: Options
کاربرد: فیلتر بر اساس وضعیت سفارش، محصول یا کوپن
مثال: processing برای سفارشها یا publish برای محصولات - SKU / نوع داده: String
کاربرد: جستجوی محصول بر اساس کد انبارداری
مثال: SHOE-A1-BLACK-42 - Category / نوع داده: Number یا String
کاربرد: فیلتر محصولات بر اساس دستهبندی
مثال: 15 - Tag / نوع داده: Number یا String
کاربرد: فیلتر محصولات بر اساس تگ
مثال: 8 - Customer / نوع داده: Number
کاربرد: فیلتر سفارشها بر اساس شناسه مشتری
مثال: 91 - Email / نوع داده: String
کاربرد: فیلتر مشتری یا سفارش بر اساس ایمیل
مثال: customer@example.com - Product / نوع داده: Number
کاربرد: فیلتر سفارشها بر اساس محصول خریداریشده
مثال: 312
نکات مهم هنگام پیکربندی
- در بسیاری از فیلدهای قیمت، ووکامرس مقدار را بهصورت رشته عددی قبول میکند؛ برای مثال “850000”.
- برای محصول متغیر، ابتدا باید Product از نوع variable ایجاد شود و سپس Variation ها برای آن ساخته شوند.
- برای بهروزرسانی محصول بر اساس SKU، ابتدا باید محصول را با فیلتر SKU پیدا کنید و سپس با Product ID عملیات Update انجام دهید.
- ایمیل مشتری در ووکامرس باید یکتا باشد؛ ایجاد مشتری با ایمیل تکراری باعث خطا میشود.
- برای حذف دائمی برخی منابع، پارامتر Force باید فعال باشد.
- تاریخها بهتر است با فرمت ISO 8601 ارسال شوند؛ مانند 2026-01-15T10:30:00.
- برای مقادیر کشور و استان در Billing و Shipping، معمولاً باید از کدهای استاندارد استفاده شود؛ مانند IR برای ایران.
ورودیها و خروجیها
ورودی نود WooCommerce
نود WooCommerce میتواند دادهها را از نود قبلی دریافت کند و با استفاده از Expression آنها را در پارامترهای خود قرار دهد. ورودی معمولاً یک یا چند آیتم JSON است.
نمونه ورودی برای ساخت سفارش:
{ "customer_id": 91, "payment_method": "cod", "payment_method_title": "پرداخت در محل", "set_paid": false, "billing": { "first_name": "علی", "last_name": "رضایی", "address_1": "تهران، خیابان مثال", "city": "تهران", "postcode": "1234567890", "country": "IR", "email": "ali@example.com", "phone": "09120000000" }, "line_items": [ { "product_id": 312, "quantity": 2 } ]}نمونه ورودی برای بهروزرسانی موجودی محصول:
{ "product_id": 312, "manage_stock": true, "stock_quantity": 18, "stock_status": "instock"}خروجی نود WooCommerce
خروجی نود WooCommerce معمولاً پاسخ مستقیم API ووکامرس است. ساختار خروجی بسته به Resource و Operation متفاوت است. برای مثال، خروجی عملیات Get روی سفارش شامل اطلاعات سفارش، مشتری، آدرسها، آیتمهای سفارش، مبالغ، وضعیت پرداخت و متادیتا است.
نمونه خروجی خلاصهشده برای سفارش:
{ "id": 1205, "status": "processing", "currency": "IRR", "total": "1700000", "customer_id": 91, "billing": { "first_name": "علی", "last_name": "رضایی", "email": "ali@example.com", "phone": "09120000000" }, "line_items": [ { "id": 33, "name": "کفش ورزشی مدل A1", "product_id": 312, "quantity": 2, "total": "1700000" } ], "date_created": "2026-01-15T10:30:00", "payment_method": "cod"}نمونه خروجی خلاصهشده برای محصول:
{ "id": 312, "name": "کفش ورزشی مدل A1", "type": "simple", "status": "publish", "sku": "SHOE-A1-BLACK-42", "price": "850000", "regular_price": "850000", "stock_quantity": 18, "stock_status": "instock", "categories": [ { "id": 15, "name": "کفش" } ]}استفاده از Expression در ورودیها
در N8N میتوانید مقدار پارامترهای WooCommerce را از نودهای قبلی بخوانید. برای مثال اگر نود قبلی یک Webhook باشد و اطلاعات محصول را دریافت کرده باشد، میتوانید در فیلد SKU از Expression زیر استفاده کنید:
{{$json.sku}}یا برای قرار دادن ایمیل مشتری در سفارش:
{{$json.customer.email}}نکات پیشرفته و ترفندها
جلوگیری از ایجاد رکورد تکراری
قبل از ایجاد مشتری یا محصول، بهتر است ابتدا با ایمیل یا SKU جستجو انجام دهید. اگر رکورد وجود داشت، آن را Update کنید و اگر وجود نداشت، Create انجام دهید.
- WooCommerce: Get Many Customers با فیلتر Email
- IF: بررسی خالی بودن خروجی
- WooCommerce: Create Customer یا Update Customer
پردازش تعداد زیاد محصولات با Split In Batches
اگر قرار است صدها یا هزاران محصول را بهروزرسانی کنید، بهتر است دادهها را دستهبندی کنید تا فشار زیادی روی سایت وردپرسی وارد نشود.
- Read Binary File یا Google Sheets: خواندن لیست محصولات
- Split In Batches: پردازش دستهای مثلاً ۲۰ آیتم در هر بار
- WooCommerce: Update Product
- Wait: ایجاد فاصله زمانی بین درخواستها
استفاده از Continue On Fail
در ورکفلوهای حجیم، ممکن است یک محصول یا سفارش خطا داشته باشد. با فعال کردن Continue On Fail در تنظیمات نود، اجرای کل ورکفلو متوقف نمیشود و میتوانید خطاها را جداگانه ذخیره یا بررسی کنید.
ترکیب با نود HTTP Request برای endpointهای خاص
اگر یک endpoint خاص ووکامرس یا یک افزونه وردپرسی در نود WooCommerce در دسترس نباشد، میتوانید از HTTP Request استفاده کنید و به REST API ووکامرس یا افزونه موردنظر درخواست مستقیم بفرستید.
- WooCommerce: دریافت محصول یا سفارش
- HTTP Request: ارسال درخواست به endpoint سفارشی
- Set یا Code: آمادهسازی پاسخ
مدیریت بهتر وضعیت سفارشها
برای جلوگیری از تغییر اشتباه وضعیت سفارش، بهتر است قبل از Update، وضعیت فعلی سفارش را با Get دریافت کنید و سپس با IF تصمیم بگیرید.
- WooCommerce: Get Order
- IF: اگر status برابر processing بود
- WooCommerce: Update Order به completed
ساخت گزارش فروش روزانه
با نود Cron میتوانید هر روز سفارشهای همان روز را دریافت کنید و مجموع فروش، تعداد سفارش و محصولات پرفروش را محاسبه کنید.
- Cron: اجرای روزانه
- WooCommerce: Get Many Orders با فیلتر After و Before
- Code: محاسبه مجموع فروش
- Google Sheets یا Email: ذخیره یا ارسال گزارش
استفاده از Meta Data برای اتصال بین سیستمها
برای اتصال ووکامرس با CRM، حسابداری یا سیستم انبارداری، میتوانید شناسه خارجی هر رکورد را در meta_data ذخیره کنید. مثلاً crm_contact_id برای مشتری یا accounting_invoice_id برای سفارش.
{ "meta_data": [ { "key": "crm_contact_id", "value": "CRM-9842" } ]}محدودیتها و خطاها
محدودیتها
- نود WooCommerce فقط قابلیتهایی را پوشش میدهد که در Resourceها و Operationهای آن پیادهسازی شدهاند؛ برای endpointهای خاص باید از HTTP Request استفاده شود.
- عملکرد نود به سلامت REST API ووکامرس، تنظیمات وردپرس، افزونههای امنیتی و کیفیت هاست وابسته است.
- در دریافت تعداد زیاد رکوردها، محدودیتهای pagination و منابع سرور وردپرس میتواند باعث کندی یا timeout شود.
- برخی افزونههای ووکامرس فیلدهای اختصاصی ایجاد میکنند که ممکن است مستقیماً در نود نمایش داده نشوند؛ این فیلدها معمولاً از طریق meta_data یا HTTP Request قابل مدیریت هستند.
- برای عملیاتهای حساس مانند حذف سفارش یا محصول، امکان بازگشت دادهها همیشه وجود ندارد؛ مخصوصاً وقتی Force فعال باشد.
خطای 401 Unauthorized
علت رایج: Consumer Key یا Consumer Secret اشتباه است، دسترسی API Key کافی نیست یا احراز هویت توسط افزونه امنیتی مسدود شده است.
- کلیدهای API را دوباره در ووکامرس بسازید.
- سطح دسترسی را Read/Write قرار دهید.
- آدرس Store URL را بدون مسیرهای اضافی وارد کنید.
- افزونههای امنیتی، فایروال یا محدودیتهای REST API را بررسی کنید.
خطای 404 Not Found
علت رایج: آدرس فروشگاه اشتباه است، REST API فعال نیست، پیوندهای یکتا مشکل دارند یا ID رکورد وجود ندارد.
- آدرس اصلی سایت را بررسی کنید.
- از فعال بودن WooCommerce و REST API مطمئن شوید.
- در وردپرس پیوندهای یکتا را دوباره ذخیره کنید.
- ID سفارش، محصول، مشتری یا کوپن را بررسی کنید.
خطای 400 Bad Request
علت رایج: داده ارسالی فرمت درستی ندارد یا فیلدهای اجباری ناقص هستند.
- برای ساخت سفارش، line_items را بررسی کنید.
- برای ساخت مشتری، ایمیل معتبر و غیرتکراری ارسال کنید.
- برای محصول، قیمت را با فرمت قابل قبول ووکامرس ارسال کنید.
- برای تاریخها از فرمت ISO 8601 استفاده کنید.
خطای تکراری بودن SKU یا Email
علت رایج: در ووکامرس SKU محصول و ایمیل مشتری معمولاً باید یکتا باشند.
- قبل از Create از Get Many برای جستجو استفاده کنید.
- اگر رکورد وجود داشت، Update انجام دهید.
- برای محصولات از SKU استاندارد و یکتا استفاده کنید.
خطای Timeout یا کندی اجرا
علت رایج: تعداد زیاد درخواستها، هاست ضعیف، افزونههای سنگین یا دریافت حجم زیاد داده.
- از Limit استفاده کنید و همه دادهها را یکجا دریافت نکنید.
- از Split In Batches برای پردازش دستهای استفاده کنید.
- بین درخواستها نود Wait قرار دهید.
- فقط فیلترهای لازم را اعمال کنید.
خطای مربوط به SSL
علت رایج: گواهی SSL سایت معتبر نیست یا بهدرستی نصب نشده است.
- SSL سایت را با ابزارهای بررسی SSL تست کنید.
- آدرس Store URL را با https وارد کنید.
- مشکلات گواهی روی هاست را برطرف کنید.
ایده ها
- سیستم امتیازدهی خودکار مشتریان: بعد از هر خرید، مبلغ سفارش بررسی شود و بر اساس آن امتیاز مشتری در CRM یا Google Sheets افزایش پیدا کند.
- هشدار هوشمند موجودی: هر روز موجودی محصولات بررسی شود و اگر stock_quantity کمتر از مقدار مشخص بود، پیام تلگرام برای مدیر فروشگاه ارسال شود.
- کوپن تولد مشتری: تاریخ تولد مشتریان از meta_data خوانده شود و در روز تولد، کوپن اختصاصی تخفیف ساخته و ایمیل شود.
- داشبورد فروش لحظهای: سفارشهای جدید ووکامرس دریافت شوند و اطلاعات فروش، محصول و مشتری به Airtable یا Google Sheets برای ساخت داشبورد منتقل شود.
- اتوماسیون پیگیری سفارشهای پرداختنشده: سفارشهای pending یا on-hold شناسایی شوند و پیام یادآوری پرداخت از طریق ایمیل یا پیامک ارسال شود.
