افزونه پیش‌پرداخت ووکامرس با درگاه ایرانی: مابقی مبلغ چطور گرفته می‌شود؟

تیتر «مابقی مبلغ پیش‌پرداخت را چه کسی می‌گیرد؟» روی زمینه سرمه‌ای، با نوار پرداختی که ۶ میلیون تومان پیش‌پرداخت را پرداخت‌شده و ۱۴ میلیون تومان مابقی را با کادر خط‌چین و علامت سؤال نشان می‌دهد
محصولات زیر برای شماست...
جدیدترین مقالات
دسترسی سریع
فهرست محتوا

در فروشگاه آزمایشی‌مان یک میز ناهارخوری سفارشی به قیمت ۲۰ میلیون تومان گذاشتیم و برایش ۳۰ درصد پیش‌پرداخت (بیعانه) تعیین کردیم. خریدار با درگاه آزمایشی زیبال ۶ میلیون تومان پرداخت کرد و افزونه WooCommerce Deposits وضعیت سفارش را «Partially Paid» گذاشت.

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

WooCommerce Deposits در پیش‌پرداخت ساده منتظر کلیک فروشنده می‌ماند، Webtomizer لینک مابقی را همان روز خرید به خریدار می‌دهد ولی در تسویه حساب بلوکی مبلغ تومانی را صد برابر نشان داد، و YITH تنها افزونه این سه است که مابقیِ پرداخت‌نشده را بعد از مهلت خودکار لغو می‌کند.

مابقی مبلغ همیشه پرداخت دومی است

کد افزونه ووکامرسی سه درگاه را خواندیم: زیبال (داخل ووکامرس فارسی 10.0.5)، پی‌پینگ 4.6.5 و زرین‌پال 5.1.1. هر سه برای هر پرداخت، خریدار را به صفحه درگاه می‌برند و در هیچ‌کدام کدی برای نگه داشتن کارت خریدار و برداشت بعدی از آن نبود؛ زرین‌پال پشتیبانی از این کار را در کدش اعلام کرده، ولی آن را پیاده نکرده است. پس با این سه افزونه درگاه، افزونه پیش‌پرداخت راهی ندارد که بدون حضور خریدار چیزی از حسابش کم کند.

در مستندات WooCommerce Deposits، افزونه رسمی ووکامرس، آمده که این افزونه هیچ پرداختی را خودکار دریافت نمی‌کند، و پاسخ همین مستندات به این پرسش که آیا می‌شود در سررسید مبلغ را خودکار از مشتری گرفت، منفی است. YITH در راهنمای تنظیمات Stripe خودش برداشت خودکار مابقی را فقط با افزونه YITH WooCommerce Stripe ممکن می‌داند، که به درگاه‌های ایرانی ربطی ندارد. در کد افزونه Webtomizer هم مسیری برای برداشت خودکار پیدا نکردیم.

ایمیل یادآوری افزونه رسمی همین را به خریدار هم می‌گوید: «This payment will not be processed automatically»، یعنی این پرداخت خودکار گرفته نمی‌شود.

سه افزونه را روی یک فروشگاه آزمایشی سنجیدیم

هر سه افزونه را جداگانه نصب کردیم و هر بار فروشگاه آزمایشی را به حالت اولش برگرداندیم:

  • وردپرس 7.1.2 فارسی، ووکامرس 11.1.2 و ووکامرس فارسی 10.0.5، با قیمت‌های تومانی و صفحه تسویه حساب بلوکی که ووکامرس به‌طور پیش‌فرض می‌سازد.
  • درگاه زیبال در حالت آزمایشی (با مرچنت zibal) که پرداخت را بدون پول واقعی شبیه‌سازی می‌کند.
  • یک صندوق ایمیل آزمایشی که همه ایمیل‌های فروشگاه را نگه می‌داشت.
  • نسخه‌هایی که ۷ مهر ۱۴۰۵ در فروشگاه ما فروخته می‌شد: WooCommerce Deposits 2.4.8، افزونه Webtomizer 4.6.10 و YITH Deposits 2.28.0.

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

WooCommerce Deposits در پیش‌پرداخت ساده منتظر کلیک فروشنده می‌ماند

WooCommerce Deposits دو حالت دارد: پیش‌پرداخت ساده و طرح پرداخت چندمرحله‌ای.

در پیش‌پرداخت ساده، بعد از پرداخت ۶ میلیون تومان، خریدار در حساب کاربری‌اش مبلغ «Future Payments» یعنی ۱۴ میلیون تومان را می‌دید، ولی دکمه‌ای برای پرداختش نبود. پرداخت دوم فقط وقتی ساخته شد که در صفحه سفارش روی «Invoice Remaining Balance» زدیم:

صفحه سفارش در پیشخوان ووکامرس با دو دکمه Invoice Remaining Balance و Mark Paid (Offline) زیر محصول پیش‌پرداخت ۶ میلیون تومانی

این دکمه سفارش تازه‌ای به مبلغ ۱۴ میلیون تومان با وضعیت «Pending Deposit Payment» ساخت و ایمیل جزئیات سفارش را با لینک «پرداخت برای این سفارش» برای خریدار فرستاد. بعد از پرداخت، سفارش اول «تکمیل شده» شد و سفارش دوم «در حال انجام» ماند؛ یعنی از این به بعد دو سفارش را باید پیگیری کنید.

اگر کسی دکمه را نزند، مابقی هیچ‌وقت درخواست نمی‌شود.

در طرح پرداخت، پرداخت‌های بعدی همان لحظه خرید به شکل سفارش‌هایی با وضعیت «Scheduled» ساخته شدند. تاریخ یکی از آن‌ها را به گذشته بردیم و کار زمان‌بندی‌شده افزونه را، که هر ساعت اجرا می‌شود، دستی اجرا کردیم: وضعیت سفارش عوض شد و لینک پرداخت برای خریدار فرستاده شد. یادآوری طبق فهرست تغییرات افزونه در نسخه 2.4.2 (۲۷ آبان ۱۴۰۴) اضافه شده و نسخه 2.4.8 به‌طور پیش‌فرض ۳ روز پیش از سررسید آن را می‌فرستد، ولی فقط وقتی نوع محیط وردپرس production باشد، که اگر تعریف نشده باشد هم همین است؛ نصبی که محیطش staging یا local تعریف شده، این یادآوری را نمی‌فرستد. روی نصب local خودمان این محدودیت را با فیلتری که خود افزونه برای همین گذاشته برداشتیم تا یادآوری را ببینیم.

دکمه «Mark Paid (offline)» برای مابقی‌ای است که کارت‌به‌کارت یا با چک گرفته‌اید. آن را زدیم و سفارش «تکمیل شده» شد، ولی جمع سفارش همان ۶ میلیون تومان ماند و جدول گزارش‌های ووکامرس هم برای این فروش ۶ میلیون تومان ثبت کرد. ۱۴ میلیون تومانی که بیرون از سایت گرفته‌اید در آمار فروش نمی‌آید.

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

Webtomizer لینک مابقی را از روز اول می‌دهد، ولی مبلغ تومانی را صد برابر نشان داد

Webtomizer همان لحظه خرید، پرداخت دوم را هم ساخت. رسید خرید که به ایمیل خریدار رسید، لینک پرداخت مابقی را داشت و در حساب کاربری‌اش دکمه «پرداخت» کنار جدولی از پیش‌پرداخت و مابقی دیده می‌شد. ما هیچ کاری نکردیم و خریدار بی‌آن‌که منتظر ما بماند مابقی را پرداخت. در فهرست سفارش‌ها فقط یک سفارش ۲۰ میلیون تومانی با وضعیت «Partially Paid» دیدیم که بعد از پرداخت کامل «در حال انجام» شد.

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

نام این افزونه در فهرست افزونه‌های وردپرس «WooCommerce Deposits» است؛ همان نام افزونه رسمی، هرچند در فروشگاه ما نام دیگری دارد. هر دو هم در یک پوشه نصب می‌شوند. وقتی فایل Webtomizer را روی سایتی بارگذاری کردیم که افزونه رسمی رویش بود، وردپرس نوشت «شما در حال به‌روزرسانی یک افزونه هستید» و نگارش 2.4.8 را با 4.6.10 مقایسه کرد:

صفحه نصب افزونه در وردپرس که دو افزونه Woocommerce Deposits با نگارش 2.4.8 و نویسنده Woocommerce و نگارش 4.6.10 و نویسنده Webtomizer را مقایسه می‌کند و پیشنهاد جایگزینی می‌دهد

با زدن «بارگذاری شده را جایگزین فعلی نمایید»، افزونه یک سازنده جای افزونه سازنده‌ای دیگر می‌نشیند. آن را لغو کردیم. فایلی که از فروشگاه دانلود می‌شود بسته‌ای است که فایل اصلی افزونه داخلش قرار دارد: وردپرس خود بسته را با پیام «هیچ افزونهٔ معتبری یافت نشد» رد کرد و باید فایل woocommerce-deposits-4.6.10.zip داخل آن را بارگذاری کرد.

در صفحه تسویه حساب بلوکی، کنار جمع سفارش، کادری بدون عنوان دو عدد ۶۰۰ میلیون تومان و ۱٬۴۰۰ میلیون تومان را نشان داد:

خلاصه سفارش در تسویه حساب بلوکی با جمع ۲۰ میلیون تومان و کادری بدون عنوان که ۶۰۰ میلیون تومان و ۱٬۴۰۰ میلیون تومان نشان می‌دهد

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

گزینه یادآوری X روز بعد از پیش‌پرداخت (Partial Payment Reminder after X days) را با ۱۴ روز روشن کردیم و کار زمان‌بندی‌شده روزانه افزونه را دستی اجرا کردیم. یادآوری همان روز پیش‌پرداخت فرستاده شد و افزونه آن را ارسال‌شده ثبت کرد، پس بعد از ۱۴ روز دیگر چیزی فرستاده نمی‌شود. کد این نسخه هم همین را نشان می‌دهد: وقتی از پیش‌پرداخت ۱۴ روز یا کمتر گذشته باشد، یادآوری را می‌فرستد.

نسخه‌ای که آزمودیم، 4.6.10، تاریخ ۹ فروردین ۱۴۰۴ دارد و سازگاری‌اش را تا ووکامرس 9.6.0 اعلام کرده، در حالی که ما آن را روی ووکامرس 11.1.2 نصب کردیم. سایت سازنده ۷ مهر ۱۴۰۵ پاسخ نداد و نسخه‌های تازه‌تر را بررسی نکردیم، پس نمی‌دانیم نسخه تازه‌تری ایراد نمایش مبلغ یا یادآوری را رفع کرده یا نه.

YITH مهلت دارد، ولی سفارش پیش‌پرداخت را «تکمیل شده» می‌کند

YITH هم مثل Webtomizer مابقی را همان لحظه خرید ساخت، ولی به شکل سفارشی جدا با وضعیت «در انتظار پرداخت»، و خریدار در حساب کاربری‌اش لینک پرداخت آن را داشت.

اما با تنظیمات پیش‌فرض، سفارش پیش‌پرداخت بعد از پرداخت ۶ میلیون تومان «تکمیل شده» شد و ووکامرس ایمیل «سفارش شما از فروشگاه آزمایشی در راه است» را برای خریدار فرستاد؛ برای میزی که هنوز ۱۴ میلیون تومانش مانده بود. در فهرست سفارش‌ها هم سفارش‌های پیش‌پرداخت «تکمیل شده» بودند و وضعیت مابقی را فقط ستون Balances نشان می‌داد. در تصویر، مابقیِ یکی از دو سفارش در آزمون مهلت، که پایین‌تر آمده، لغو شده است:

فهرست سفارش‌های ووکامرس با دو سفارش پیش‌پرداخت ۶ میلیون تومانی که وضعیتشان تکمیل شده است و ستون Balances که یکی را در انتظار پرداخت و دیگری را لغو شده نشان می‌دهد

در کد YITH، وقتی گزینه «Shipping costs (if any) will be» روی «Applied to the balance order» باشد، که پیش‌فرض است، سفارشی که فقط پیش‌پرداخت دارد «تکمیل شده» می‌شود. آن را روی «Applied to the deposit order» گذاشتیم و سفارش بعدی «در حال انجام» ماند و ایمیل «سفارش شما در فروشگاه آزمایشی دریافت شد» فرستاده شد.

قوی‌ترین بخش YITH مهلت پرداخت مابقی است. مهلت را ۷ روز گذاشتیم و صفحه تسویه حساب، ۱۴ مهر ۱۴۰۵ را تاریخ پرداخت مابقی اعلام کرد. تاریخ مهلت را به گذشته بردیم و کار روزانه افزونه را اجرا کردیم: سفارش مابقی خودکار «لغو شده» شد و سفارش پیش‌پرداخت با همان ۶ میلیون تومان «تکمیل شده» ماند؛ این آزمون را با تنظیم پیش‌فرض حمل و نقل انجام دادیم. YITH می‌تواند پیش‌پرداخت را هم خودکار برگرداند، ولی به گفته راهنمایش فقط با درگاهی که بازگشت وجه را پشتیبانی کند. افزونه‌های زیبال و پی‌پینگی که خواندیم چنین قابلیتی اعلام نمی‌کنند؛ زرین‌پال 5.1.1 بازگشت وجه را اعلام کرده و برایش توکن دسترسی زرین‌پال می‌خواهد.

ایمیل یادآوری مهلت روی نصب تازه ما خاموش بود، ولی یادداشت سفارش می‌گفت فرستاده شده. یادآوری را ۲ روز پیش از مهلت تنظیم کردیم، تاریخ یادآوری را به امروز آوردیم و کار روزانه افزونه را اجرا کردیم: در یادداشت سفارش نوشته شد «Expiring deposit notification sent»، ولی ایمیلی نرسید، چون این ایمیل تا در بخش ایمیل‌های تنظیمات YITH روشن و ذخیره نشود فرستاده نمی‌شود. بعد از روشن کردن ایمیل و پاک کردن علامت ارسال، ایمیل «Don’t forget to pay for your products» با دکمه پرداخت رسید.

نسخه آزموده‌شده، 2.28.0، ۱۵ آذر ۱۴۰۳ منتشر شده. در فهرست تغییرات YITH نسخه‌های بعدی تا 2.45.0 (۲ شهریور ۱۴۰۵) آمده؛ در 2.33.0 تبدیل نادرست گزینه مهلت به مدت زمان و در 2.35.0 روش حمل و نقل سفارش مابقی اصلاح شده و ما نسخه‌های تازه را نیازمودیم.

فرق اصلی این است که پرداخت دوم را چه کسی می‌سازد

WooCommerce Deposits 2.4.8Webtomizer 4.6.10YITH 2.28.0
پرداخت دوم چه زمانی ساخته می‌شودپیش‌پرداخت ساده: با کلیک فروشنده. طرح پرداخت: هنگام خریدهنگام خریدهنگام خرید
لینک پرداخت مابقیایمیل بعد از صدور یا در سررسیدرسید خرید و حساب کاربریحساب کاربری
وضعیت سفارش بعد از پیش‌پرداختPartially PaidPartially Paidتکمیل شده (با تنظیم پیش‌فرض حمل و نقل)
لغو خودکار مابقیِ پرداخت‌نشدهنداردندارددارد، بعد از مهلت
یادآوری۳ روز پیش از سررسید طرح پرداختیادآوری «بعد از X روز» همان روز اول رفتخاموش تا روشن شدن ایمیل
دامی که دیدیمپرداخت بیرون از سایت در جمع فروش نمی‌آیدمبلغ‌های صد برابر در تسویه حساب بلوکیایمیل «در راه است» بعد از پیش‌پرداخت

کدام افزونه به کار کدام فروشگاه می‌آید

برای فروشگاهی مثل مثال ما که کالای سفارشی می‌فروشد، پیشنهاد ما افزونه رسمی ووکامرس است، چون مابقی را وقتی درخواست می‌کنید که کالا آماده شده. نسخه 2.4.8 که آزمودیم، ۳۱ شهریور ۱۴۰۵ منتشر شده و تازه‌ترین نسخه‌ای است که ووکامرس ۷ مهر ۱۴۰۵ معرفی می‌کرد. طرح پرداخت چندمرحله‌ای با تاریخ مشخص و یادآوری خودکار را هم فقط در همین افزونه آزمودیم؛ Webtomizer هم طرح پرداخت دارد که آن را نیازمودیم و YITH طرح پرداخت ندارد.

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

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

برای امتحان بیش از یکی، عضویت ویژه دسترسی به همه افزونه‌های فروشگاه را می‌دهد؛ فقط WooCommerce Deposits و Webtomizer را هم‌زمان روی یک سایت نگذارید.

پیش از راه‌اندازی این پنج مورد را بسنجید

اگر ترجیح می‌دهید تیم ما این تنظیمات را روی فروشگاهتان پیاده کند، خدمات پشتیبانی فنی وردپرس را ببینید یا درخواست را در فرم پشتیبانی ووکامرس ثبت کنید. برای انجامش به دست خودتان:

  1. کل مسیر را با حالت آزمایشی درگاهتان بروید: پیش‌پرداخت، ایمیل‌ها، پرداخت مابقی و وضعیت سفارش‌ها.
  2. متن‌های انگلیسی افزونه را، از صفحه محصول تا ایمیل‌ها، ترجمه کنید.
  3. یادآوری را روشن کنید و ببینید ایمیلش واقعاً می‌رسد، نه فقط یادداشتش در سفارش. اگر ایمیل‌های فروشگاه اصلاً نمی‌رسند، حل مشکل ارسال نشدن ایمیل در وردپرس را ببینید.
  4. معلوم کنید مابقی کارت‌به‌کارت یا چکی چطور ثبت می‌شود تا گزارش فروشتان کامل بماند.
  5. اگر پرداخت در محل دارید، تصمیم بگیرید فقط برای مابقی باز باشد یا اصلاً در سفارش‌های پیش‌پرداخت نباشد.

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

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

با افزونه‌های ووکامرس درگاه‌های زیبال، زرین‌پال و پی‌پینگ نه. این افزونه‌ها هر پرداخت را به صفحه درگاه می‌برند و کارت خریدار را نگه نمی‌دارند، پس مابقی پرداخت دومی است که خریدار با لینک می‌پردازد. WooCommerce Deposits برداشت خودکار را در مستنداتش رد کرده و YITH آن را فقط با افزونه YITH WooCommerce Stripe ممکن می‌داند.

مشتری مابقی مبلغ پیش‌پرداخت را کجا پرداخت می‌کند؟

با لینک پرداختی که افزونه برای مابقی می‌سازد. در WooCommerce Deposits این لینک بعد از کلیک فروشنده روی Invoice Remaining Balance، یا در سررسید طرح پرداخت، با ایمیل می‌رسد. در افزونه Webtomizer از همان روز خرید در رسید و حساب کاربری هست و در YITH در حساب کاربری خریدار.

اگر مشتری مابقی را نپردازد چه می‌شود؟

از این سه افزونه فقط YITH سفارش مابقیِ پرداخت‌نشده را بعد از مهلت خودکار لغو می‌کند؛ در آزمون ما پیش‌پرداخت در سفارش اول ماند. برگرداندن خودکار پیش‌پرداخت به گفته YITH فقط با درگاهی ممکن است که بازگشت وجه را پشتیبانی کند: افزونه‌های زیبال و پی‌پینگی که خواندیم چنین قابلیتی اعلام نمی‌کنند و زرین‌پال 5.1.1 آن را اعلام کرده و برایش توکن دسترسی می‌خواهد.

می‌شود مابقی را کارت‌به‌کارت یا در محل گرفت؟

بله. در WooCommerce Deposits دکمه Mark Paid (offline) سفارش را تکمیل می‌کند، ولی جمع سفارش همان مبلغ پیش‌پرداخت می‌ماند و مابقی در آمار فروش نمی‌آید. در افزونه Webtomizer خریدار می‌تواند برای مابقی «پرداخت در محل» را انتخاب کند.

تصویر سمانه جعفری
سمانه جعفری
پیشنهاد میکنیم این مقالات را هم بخوانید

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