توسعه و سفارشی‌سازی ووکامرس چیست و چگونه انجام می‌شود؟ - وب‌کاستر
بدون دیدگاه
Blog

توسعه و سفارشی‌سازی ووکامرس چیست و چگونه انجام می‌شود؟

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

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

توسعه و سفارشی‌سازی ووکامرس یعنی چه؟

ووکامرس یک افزونه‌ی فروشگاه‌ساز برای وردپرس است که رفتار پیش‌فرضش (نمایش محصول، سبد خرید و پرداخت) برای اکثر فروشگاه‌های عمومی طراحی شده. سفارشی‌سازی یعنی تغییر این رفتار پیش‌فرض، از طریق تنظیمات و افزونه‌های مکمل یا سیستم Hook ووکامرس (که در ادامه دقیق توضیح می‌دهیم)، تا فروشگاه دقیقا مطابق مدل کسب‌وکار شما رفتار کند.

چهار سناریوی واقعی که نشان می‌دهند نیاز هر فروشگاه فرق دارد:

سناریو اول یک فروشگاه B2B با قیمت‌گذاری پلکانی

یک فروشگاه عمده‌فروشی می‌خواهد قیمت هر محصول بر اساس تعداد خرید تغییر کند؛ مثلا برای خرید بالای ۵۰ عدد، ۱۰٪ تخفیف به‌صورت خودکار اعمال شود. ووکامرس به‌صورت پیش‌فرض چنین منطقی ندارد. این نیاز معمولا با یک افزونه‌ی تخصصی قیمت‌گذاری پلکانی یا در پروژه‌های خاص، با کد اختصاصی روی Filter مربوط به محاسبه‌ی قیمت حل می‌شود.

سناریو دوم یک فروشگاه اشتراکی (Subscription)

یک سرویس می‌خواهد مشتری‌ها ماهانه به‌صورت خودکار مبلغ مشخصی پرداخت کنند و دسترسی‌شان تمدید شود. این نیاز به منطق زمان‌بندی، اتصال به درگاه پرداخت برای پرداخت‌های تکرارشونده و مدیریت وضعیت اشتراک دارد؛ ترکیبی از یک افزونه‌ی تخصصی اشتراک و گاهی کدنویسی برای بخش‌های خاص کسب‌وکار.

سناریو سوم یک فروشگاه چند فروشندگی (Marketplace)

یک پلتفرم می‌خواهد چند فروشنده‌ی مستقل، هرکدام محصولات خودشان را بفروشند و سفارش‌ها بین چند فروشنده تقسیم شوند (Split Order). این یکی از پیچیده‌ترین حالت‌های سفارشی‌سازی است، چون باید سیستم پرداخت، مدیریت موجودی و پنل هر فروشنده جداگانه مدیریت شود. معمولا ترکیبی از یک افزونه‌ی پایه‌ی چندفروشندگی و کدنویسی سنگین برای نیازهای اختصاصی موردنیاز است.

سناریو چهارم یک فروشگاه با محصولات قابل‌ تنظیم (Customizable Products)

مثلا یک فروشگاه چاپ روی لیوان یا فروش محصولات حکاکی‌ شده که مشتری باید قبل از خرید، متن یا تصویر دلخواهش را وارد کند. این نیاز به فیلدهای سفارشی در صفحه‌ی محصول و ذخیره‌ی این اطلاعات همراه با سفارش دارد و یکی از رایج‌ترین درخواست‌های کدنویسی اختصاصی در ووکامرس است.

Hook و Filter در ووکامرس؛ ابزار اصلی هر توسعه‌دهنده

برای این‌که بدانید سفارشی‌سازی کدی دقیقا چطور کار می‌کند (بدون این‌که لازم باشد خودتان کد بزنید)، دو مفهوم کلیدی را باید بشناسید:

Action Hook

نقطه‌ای در کد ووکامرس است که به شما اجازه می‌دهد یک کار جدید اضافه کنید، بدون این‌که رفتار اصلی را تغییر دهید. مثلا woocommerce_before_add_to_cart_button نقطه‌ای است که دقیقا قبل از دکمه‌ی افزودن به سبد خرید اجرا می‌شود و می‌توان در آن یک پیام یا فیلد سفارشی اضافه کرد.

Filter Hook

نقطه‌ای است که به شما اجازه می‌دهد یک مقدار یا داده‌ی موجود را قبل از نمایش یا استفاده، تغییر دهید. مثلا woocommerce_get_price_html می‌تواند نحوه‌ی نمایش قیمت را تغییر دهد؛ برای مثال، می‌توان برچسب شامل مالیات را کنار قیمت اضافه کرد.

تفاوتشان خیلی ساده است؛ Action یعنی یک کار انجام بده، Filter یعنی یک مقدار را عوض کن و برگردان.

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

مهم‌ترین بخش‌هایی که معمولا نیاز به سفارشی‌سازی دارند:

صفحه‌ی محصول

نمایش قیمت، ویژگی‌های محصول، تب‌های اضافی (مثل راهنمای سایز)، پیشنهادهای مرتبط هوشمندتر یا فیلدهای سفارشی، مثل سناریوی ۴.

فرآیند پرداخت و تسویه‌حساب (Checkout)

حذف فیلدهای غیرضروری (از طریق فیلتر woocommerce_checkout_fields)، افزودن روش‌های پرداخت خاص یا تغییر مراحل خرید برای کاهش نرخ رهاسازی سبد خرید.

حساب کاربری مشتری

شخصی‌سازی فرآیند ثبت‌نام، نمایش اطلاعات اضافه در پروفایل مشتری یا تغییر قوانین مربوط به سفارش‌های ناتمام و لغوشده.

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

افزودن وضعیت‌های سفارشی سفارش (مثلا در حال بسته‌بندی بین پرداخت‌شده و ارسال‌شده)، برچسب‌گذاری و گزارش‌گیری دقیق‌تر برای فروشگاه‌های پرحجم.

چرا زیاد شدن افزونه‌ها همیشه بهترین راه‌حل نیست؟

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

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

افزونه‌های مختلف می‌توانند روی یک Hook مشترک با هم تداخل داشته باشند؛ مثلا دو افزونه‌ی مختلف هم‌زمان بخواهند woocommerce_before_add_to_cart_button را تغییر دهند و نتیجه غیرقابل‌پیش‌بینی شود.

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

در مقابل، یک تکه کد سبک که دقیقا همان Hook موردنیاز را هدف می‌گیرد، معمولا سریع‌تر، پایدارتر و قابل‌نگهداری‌تر از ترکیب چند افزونه‌ی نیمه‌ مرتبط است.

نکات عملکردی که کمتر به آن‌ها توجه می‌شود

سفارشی‌سازی درست فقط به معنی کد نوشتن نیست؛ کد باید طوری نوشته شود که فروشگاه را کند نکند.

استفاده از Object Caching

وقتی یک محاسبه (مثل قیمت‌گذاری پلکانی در سناریوی ۱) پرهزینه است، نتیجه‌ی آن باید به‌صورت موقت Cache شود تا هر بار از صفر محاسبه نشود.

استفاده از Transient API وردپرس

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

پرهیز از Query سنگین داخل Hookهای پرتکرار

بعضی Hookها، مثل مواردی که در صفحه‌ی محصول یا لیست محصولات اجرا می‌شوند، تعداد دفعات زیادی فراخوانی می‌شوند. قرار دادن یک کوئری سنگین داخل این Hookها می‌تواند اثر قابل‌ توجهی روی سرعت کل صفحه داشته باشد.

مراحل کلی یک پروژه‌ی سفارشی‌سازی حرفه‌ای ووکامرس

  1. بررسی فروشگاه فعلی؛ شناخت افزونه‌ها، قالب و نحوه‌ی فعلی مدیریت فروش.
  2. مشخص کردن دقیق نیاز و تطبیق آن با یکی از سناریوهای بالا؛ برای درک سطح پیچیدگی واقعی پروژه.
  3. تصمیم‌گیری بین افزونه یا کدنویسی؛ بر اساس پیچیدگی نیاز و تعداد افزونه‌های فعلی.
  4. پیاده‌سازی از طریق Hook/Filter اختصاصی (در صورت نیاز به کد)؛ بدون دستکاری مستقیم فایل‌های اصلی افزونه.
  5. بررسی تأثیر روی عملکرد؛ با توجه به نکات بخش قبل، مثل Caching و جلوگیری از Queryهای سنگین.
  6. تست کامل فرآیند خرید؛ از انتخاب محصول تا تکمیل پرداخت، در سناریوهای مختلف.

اشتباهات رایجی که باید از آن‌ها دوری کنید

  • نصب چندین افزونه برای یک هدف مشترک، معمولا باعث تداخل و کندی می‌شود.
  • ویرایش مستقیم فایل‌های اصلی افزونه‌ی ووکامرس، با هر آپدیت از بین می‌رود؛ بهتر است تغییرات از طریق Hook/Filter و در فایل‌های اختصاصی انجام شوند.
  • نادیده گرفتن تست فرآیند پرداخت بعد از هر تغییر، چون پرداخت حساس‌ترین بخش فروشگاه است.
  • گذاشتن محاسبات سنگین بدون Cache در Hookهای پرتکرار، دقیقا همان چیزی که در بخش عملکرد توضیح داده شد.

جمع‌بندی

سفارشی‌سازی ووکامرس، بسته به مدل کسب‌وکار شما، می‌تواند از یک تغییر ساده در صفحه‌ی محصول تا پیاده‌سازی یک منطق کامل قیمت‌گذاری یا فروشگاه چندفروشندگی پیش برود. سیستم Hook و Filter ووکامرس، ابزار اصلی این سفارشی‌سازی‌هاست و اجازه می‌دهد بدون دستکاری فایل‌های اصلی، تغییرات را به‌شکل پایدار پیاده‌سازی کنید.

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

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

این مقاله چقدر برایتان مفید بود؟ با امتیاز دادن، نظرتان را با ما در میان بگذارید.

5/5 - (1 امتیاز)
Experience

تجربه در عمل

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

”

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

 

”

جناب سعادت عزیز، تعهدکاری، علم و تسلط در کارتون ، سرعت پاسخگویی و انجام سریع کلیه اموری که بهتون واگذاری میشه انقدر لذت بخش میکنه همکاری با شما رو که بنده اینجا ازتون بابت تمامی زحماتتون تشکر میکنم و امیدوارم این همکاری سالها ادامه دار باشه، ممنون از شما

”

Sajad is one of the most professional and knowledgeable person in his career. He did a great job designing and creating my website which exceeded my expectation. He’s extremely helpful and always available to answer your questions or concerns. I strongly recommend him to everyone and will do more business with him in the future.

سجاد یکی از حرفه ای ترین و داناترین افرادی در زمینه کاری خودش هست که من تا حالا ملاقات کردم. سجاد بسیار کارش عالی بود در زمینه طراحی و تولید وب سایت من چون از چیزی که من انتظار داشتم خیلی بیشتر بود. همچنین سجاد خیلی کمک به حال بود یعنی هر زمان که نیاز داشتم در دسترس و پاسخگو بود. من ۱۰۰ درصد بطور طبیعی سجاد رو به همه معرفی میکنم و در آینده بیشتر با هم کار خواهیم کرد.

”

جناب آقای سجاد سعادت, 

با سلام.

مدتی است که بجهت مشکلات بازار و بی ثباتی قیمت ارز, کار ما تقریبا متوقف است. اما این دو سایت امکان آنرا فراهم نموده که ارتباط با صنف, دست اندرکاران و علاقمندان این رشته را تا حدودی حفظ نمایم.

چنانچه میدانید تولید محتوی سایت ها را شخصا بعهده دارم. اما مسائل فنی و مشکلاتی در این زمینه وجود دارد که از حوزه تخصص من بکلی فاصله دارد. همکاری یک سال گذشته با جنابعالی در این زمینه نشان داد که حتی در این بازار بلبشو هم کسانی هستند که تنها به سود آنی خود نیندیشیده و ضمن احاطه کامل به حوزه کار خویش, برای حفظ و تعمیق ارتباط با مشتری ها اهمیت بمراتب بیشتر قائلند. 

بنظر من برای اعتماد به اشخاص و مجموعه هائی که در زمینه های دیگر مشغولند, آنچه بیشتر اهمیت دارد پرنسیپ های عمومی اقتصادی و . . . روابط عمومی در کسب و کار می باشد. والا چگونه میتوان نسبت به کار و تعهد همه آنانی اعتماد پیدا کرد که از جزئیات فنی کارشان تقریبا هیچ نمیدانیم. 

حتما بخاطر دارید که آشنائی ما از طریق پسر بزرگم فراهم شد که اتفاقا امروز 38 امین سالگرد تولدش می باشد. از این بابت بارها از او هم بجهت این حسن انتخاب تشکر کرده ام. 

برای شما و جمله همکارانتان سلامتی و برکت آرزومندم.

تهران- 23 دی

FAQ

سوالات متداول

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.

16 − 7 =

keyboard_arrow_up