انتقال سفارشات ووکامرس بین دو سایت با WP All Export Pro و WP All Import Pro + نکته فنی مهم
اگر تا به حال قصد داشتهاید سایت فروشگاهی خود را بازطراحی کنید، احتمالاً با محدودیتهای ابزار پیشفرض وردپرس روبهرو شدهاید. انتقال سفارشات ووکامرس یکی از حساسترین کارهایی است که یک توسعهدهنده وردپرس انجام میدهد. کوچکترین خطا میتواند به از دست رفتن اطلاعات مالی و مشتریان منجر شود. در بلوهینت قرار است دو افزونه WP All Export Pro و WP All Import Pro را بهطور کامل بررسی کنیم. همچنین روش درست استفاده از آنها برای انتقال سفارشات را قدمبهقدم توضیح میدهیم.
در ادامه، علاوه بر آموزش انتقال، به یک مشکل فنی رایج در سایتهای فارسیزبان هم میپردازیم. این مشکل باعث میشود فیلدهای سفارش هنگام درونریزی بهصورت undefined1، undefined2 و مشابه آن نمایش داده شوند. این نکته را کمتر جایی بهصورت شفاف توضیح دادهاند، پس تا انتهای مقاله همراه ما بمانید.
افزونه WP All Export Pro چیست؟
WP All Export Pro یک افزونه حرفهای برونبری برای وردپرس است. این افزونه امکان خروجی گرفتن از تمام بخشهای سایت را فراهم میکند؛ از نوشتهها و محصولات گرفته تا سفارشات و کاربران. این افزونه با رابط بصری کشیدن و رهاکردن کار میکند و نیازی به دانش برنامهنویسی ندارد.
با کمک فیلترهای سفارشی این افزونه، میتوانید فقط بخشی از دادهها را خروجی بگیرید. برای مثال، فقط سفارشات یک بازه زمانی خاص یا فقط محصولات یک دستهبندی مشخص. خروجی نهایی در قالبهای CSV، XLS، XLSX و XML قابل دریافت است. امکان زمانبندی خودکار خروجی با کرون جاب هم وجود دارد. برای انتقال سفارشات ووکامرس، این افزونه به همراه افزودنی WooCommerce Export کار میکند. این ترکیب مشتریان، سفارشات، محصولات متغیر، ویژگیها، اشتراکها و نظرات را هم پوشش میدهد.
افزونه WP All Import Pro چیست؟
در سمت مقابل، WP All Import Pro وظیفه درونریزی فایلهای CSV، XML و اکسل به وردپرس را بر عهده دارد. این افزونه هم مانند نمونه صادراتی خود، رابط کاربری کشیدن و رهاکردن دارد. همچنین از زبان فارسی و راستبهچپ پشتیبانی کامل میکند.
نکته مهم درباره این افزونه این است که نگاشت فیلدها بهصورت خودکار و بینقص انجام نمیشود. کاربر باید در مرحله چهارم ویزارد، هر ستون فایل ورودی را به فیلد درست وردپرس یا ووکامرس متصل کند. برای بهروزرسانی محصولات یا سفارشات موجود هم باید یک شناسه مشترک وجود داشته باشد؛ مثل شماره سفارش یا SKU. این شناسه به افزونه کمک میکند رکورد درست را در سایت مقصد تشخیص دهد. این افزونه هم مانند WP All Export Pro، افزودنیهای تخصصی دارد؛ از جمله WooCommerce، ACF، کاربران و گراویتیفرم. همین افزودنیها دامنه کاربرد آن را گسترش میدهند.
چرا این دو افزونه بهترین گزینه برای انتقال سفارشات ووکامرس هستند؟
ابزار پیشفرض برونبری و درونریزی وردپرس فقط فایل XML ساده تولید میکند. این ابزار کنترل چندانی روی فیلدها به شما نمیدهد. در مقابل، ترکیب WP All Export Pro و WP All Import Pro چند مزیت مشخص دارد.
- کنترل کامل روی فیلدهای خروجی و ورودی: میتوانید دقیقاً مشخص کنید کدام متادیتای سفارش منتقل شود؛ از اطلاعات صورتحساب تا روش پرداخت.
- پشتیبانی از دادههای سریالایزشده: بسیاری از افزونههای جانبی ووکامرس، اطلاعات را بهصورت سریالایز ذخیره میکنند. این دو افزونه این نوع داده را هم بهدرستی منتقل میکنند.
- قابلیت بهروزرسانی رکوردهای موجود: بهجای ایجاد سفارش تکراری، افزونه سفارش موجود در سایت مقصد را با اطلاعات جدید بهروزرسانی میکند.
- زمانبندی خودکار با کرون جاب: برای انتقال دورهای اطلاعات بین دو سایت، هر دو افزونه امکان اجرای خودکار دارند.
- قالبهای قابل ذخیره: بعد از تنظیم درست نگاشت فیلدها، میتوانید تنظیمات را بهعنوان یک قالب ذخیره کنید. این کار در انتقالهای بعدی زمان زیادی صرفهجویی میکند.
آموزش گامبهگام انتقال سفارشات ووکامرس با این دو افزونه
برای انتقال سفارشات ووکامرس بین دو سایت وردپرسی، ابتدا باید از سایت مبدأ خروجی بگیرید. سپس فایل تولیدشده را در سایت مقصد درونریزی میکنید. در ادامه هر دو مرحله را جداگانه توضیح میدهیم.
مرحله اول: خروجی گرفتن از سفارشات با WP All Export Pro
پس از نصب و فعالسازی افزونه و افزودنی WooCommerce Export، از منوی افزونه گزینه ایجاد خروجی جدید را انتخاب کنید. در این مرحله باید نوع محتوا را روی «سفارشات ووکامرس» تنظیم کنید. سپس با فیلترهای موجود میتوانید بازه زمانی یا وضعیت سفارش را مشخص کنید؛ مثل تکمیلشده یا در انتظار پرداخت.
در مرحله انتخاب فیلدها، تمام دادهٔ سفارش نمایش داده میشود؛ اطلاعات مشتری، محصولات خریداریشده، مبلغ نهایی و متادیتای سفارشی. بهتر است فرمت خروجی را روی XML تنظیم کنید. این فرمت ساختار متادیتای سفارشی و فیلدهای سریالایزشده را دقیقتر از CSV نگه میدارد. در پایان، فایل خروجی را دانلود کنید تا برای مرحله دوم آماده باشد.
مرحله دوم: درونریزی فایل خروجی در سایت مقصد با WP All Import Pro
در سایت مقصد، افزونه WP All Import Pro و افزودنی WooCommerce Import را نصب و فعال کنید. سپس فایل خروجیشده در مرحله قبل را در بخش درونریزی جدید بارگذاری کنید. افزونه بهطور خودکار نوع محتوای فایل را تشخیص میدهد و آن را روی «سفارشات ووکامرس» تنظیم میکند.
در مرحله چهارم، هر فیلد فایل باید به فیلد متناظر خود در ووکامرس متصل شود. برای جلوگیری از ایجاد سفارش تکراری، حتماً گزینه بهروزرسانی بر اساس شماره سفارش را فعال کنید. پس از بررسی پیشنمایش نهایی، عملیات درونریزی را اجرا کنید. توصیه میشود ابتدا این فرآیند را روی چند سفارش آزمایشی تست کنید. بعد از اطمینان از نتیجه، میتوانید کل داده را منتقل کنید.
نکته فنی مهم: چرا فیلدهای سفارش undefined1، undefined2 نمایش داده میشوند؟
این بخش دقیقاً همان نکتهای است که در ابتدای مقاله وعده دادیم. اگر زبان کاربر ادمین شما در وردپرس روی فارسی تنظیم باشد و از افزونههای فارسیساز استفاده کنید، احتمالاً با این مشکل مواجه شدهاید. در این حالت، وردپرس هنگام ورود همان کاربر، فایل زبان فارسی را هم بارگذاری میکند. افزونههای فارسیساز از همین فایل زبان برای ترجمه نام فیلدهای سفارش و ووکامرس استفاده میکنند. وقتی با WP All Export Pro از چنین حسابی خروجی میگیرید، سرستونهای فایل هم تحتتأثیر قرار میگیرند. بهجای نام استاندارد انگلیسی فیلد، همان برچسب فارسی ترجمهشده در فایل ثبت میشود.
مشکل زمانی رخ میدهد که این فایل را در سایت مقصد با WP All Import Pro درونریزی میکنید. افزونه در مرحله نگاشت فیلدها، بهدنبال نام استاندارد فیلدهای سفارش ووکامرس میگردد. چون سرستون فایل با برچسب فارسی متفاوت است، افزونه آن را تشخیص نمیدهد. نتیجه این ناهماهنگی، نمایش شمار زیادی فیلد با نامهای undefined1، undefined2 تا undefinedN است. عددی که در انتهای هر undefined میآید، به تعداد فیلدهای شناسایینشده بستگی دارد.
راهحل عملی رفع مشکل undefinedN
خوشبختانه راهحل این مشکل بسیار سادهتر از چیزی است که به نظر میرسد.
- تغییر زبان کاربر ادمین به انگلیسی، پیش از ایجاد خروجی: کافی است در سایت مبدأ، از مسیر پروفایل کاربری همان ادمینی که خروجی میگیرد، زبان را روی English بگذارید. با این کار، وردپرس دیگر فایل زبان فارسی را برای آن کاربر بارگذاری نمیکند. در نتیجه، افزونه فارسیساز هم فرصتی برای ترجمه نام فیلدهای ووکامرس پیدا نمیکند. WP All Export Pro در همین حالت اجرا میشود و فایل خروجی را با نام استاندارد و اصلی فیلدها میسازد. این تغییر فقط روی زبان پنل همان کاربر اثر میگذارد و به زبان سایت برای بازدیدکنندگان کاری ندارد. پس از پایان خروجیگیری، میتوانید زبان کاربر را دوباره به فارسی برگردانید.
- نگاشت دستی فیلدهای undefined در مرحله چهارم درونریزی: اگر خروجی از قبل با نامهای فارسی گرفته شده، راه دیگری هم دارید. در صفحه نگاشت WP All Import Pro، محتوای هر ستون را بررسی کنید. سپس آن را بهصورت دستی به فیلد درست سفارش وصل کنید.
- ذخیره نگاشت بهعنوان قالب برای انتقالهای بعدی: بعد از تصحیح نگاشت فیلدها برای اولین بار، آن را بهعنوان یک قالب درونریزی ذخیره کنید. در انتقالهای بعدی از همان منبع، دیگر نیازی به تکرار این کار نیست.
رعایت همین نکتهها، ساعتها زمان صرفهجویی میکند. این ساعتها معمولاً صرف پیدا کردن دلیل نمایش undefinedN میشوند.
نکاتی برای انتقال بینقص سفارشات ووکامرس
- پیش از هر انتقالی، از سایت مبدأ و مقصد یک نسخه پشتیبان کامل تهیه کنید.
- افزونههای وابسته به سفارش، مثل افزونههای گزینه محصول یا حملونقل، باید روی هر دو سایت فعال باشند.
- برای فایلهای حجیم، صادرات و درونریزی را به چند بخش کوچکتر تقسیم کنید. این کار ریسک قطعشدن فرآیند را کاهش میدهد.
- بعد از پایان درونریزی، چند سفارش نمونه را بهصورت دستی بررسی کنید. مبلغ، وضعیت پرداخت و اطلاعات مشتری را دوباره چک کنید.
سؤالات متداول
آیا با این دو افزونه اطلاعات مشتریان همراه سفارشات منتقل میشود؟
بله، در صورت فعالبودن افزودنی WooCommerce، اطلاعات مشتری هم منتقل میشود؛ از نام گرفته تا آدرس و شماره تماس.
آیا WP All Export Pro و WP All Import Pro با آخرین نسخه ووکامرس سازگار هستند؟
هر دو افزونه بهطور مرتب بهروزرسانی میشوند. این بهروزرسانیها سازگاری با نسخههای جدید ووکامرس و PHP را حفظ میکند.
برای رفع مشکل undefinedN حتماً باید افزونه فارسیساز را حذف یا غیرفعال کنم؟
خیر، کافی است پیش از خروجی گرفتن، زبان کاربر ادمین را در پروفایلش موقتاً به انگلیسی تغییر دهید. راه دیگر هم نگاشت دستی فیلدها در سایت مقصد است.
آیا امکان زمانبندی خودکار انتقال سفارشات بین دو سایت وجود دارد؟
بله، هر دو افزونه با کرون جاب امکان اجرای خودکار دارند. این ویژگی خروجیگیری و درونریزی دورهای را ساده میکند.
جمعبندی
انتقال سفارشات ووکامرس بین دو سایت، با ابزار درست، از یک کار پرریسک به یک فرآیند قابلکنترل تبدیل میشود. ترکیب WP All Export Pro و WP All Import Pro، پشتیبانی کامل از فارسی و متادیتای سریالایزشده را ارائه میدهد. همین ویژگی، این ترکیب را به یکی از مطمئنترین راههای انتقال برای سایتهای فارسیزبان تبدیل میکند. اگر پیش از این با نمایش فیلدهای undefinedN گیج شدهاید، همین حالا مشکل را برطرف کنید. کافی است پیش از خروجی گرفتن، زبان کاربر ادمین را موقتاً به انگلیسی تغییر دهید یا فیلدها را دستی نگاشت کنید. انتقال بعدی خود را بدون سردرگمی انجام دهید.