ما یک فروشگاه ووکامرسی داریم که در اون گیفت کارت برندهای مختلف (مثل iTunes، Spotify، Netflix و غیره) فروخته میشه. هر محصول فقط یک کارت اصلیه، اما دو پارامتر متغیر داره:
Region (منطقه یا کشور)
Amount (مبلغ یا ارزش گیفت کارت)
هر Region مقدارهای خاص خودش رو داره. بهعبارت دیگه انتخاب گزینهها به هم وابستهست (Dependent Dropdowns).
در این صفحات، وقتی کاربر Region رو انتخاب میکنه (مثلاً USA، UK، Germany و …)، لیست Amountها (مثلاً 10$, 25$, 50$) بهصورت خودکار و وابسته به اون Region تغییر میکنه. بعد از انتخاب هر دو مقدار، دکمه “Add to Cart“ برای اون ترکیب خاص فعال میشه.
⚙️ جزئیات فنی مورد نیاز
سیستم باید با WooCommerce سازگار باشه.
دادهها برای هر محصول (Region و Amountها) باید از متادیتای اختصاصی یا یک فایل JSON خوانده بشن (نه از طریق ایجاد 100ها متغیر در ووکامرس).
انتخابها باید با AJAX انجام بشن (بدون رفرش صفحه).
هر محصول فقط یک محصول ساده (Simple Product) باشه، نه 100ها Variations.
بعد از انتخاب Region و Amount، اطلاعات انتخابشده باید بهصورت custom meta به سبد خرید منتقل بشه.
هیچکدام از محصولات فرعی نباید در صفحه فروشگاه یا جستجو نمایش داده بشن.
ساختار باید قابل استفاده برای همه محصولات گیفت کارت باشه (یعنی من فقط دادهها رو برای هر محصول وارد کنم، بدون نیاز به کدنویسی مجدد).
✅ ویژگیها :
طراحی UI مشابه coinsbee (ساده، واکنشگرا، تمیز)
نمایش پرچم کنار Regionها (اختیاری)
امکان وارد کردن دادهها در متاباکس سفارشی در صفحه ویرایش محصول
قابلیت Import / Export دادهها به فرمت JSON یا CSV
💡 خلاصه نیاز من
در واقع میخوام یه سیستم حرفهای بسازیم که بتونم:
برای هر محصولم لیست Regionها و Amountها رو تعریف کنم،
وابستگی بینشون رو مشخص کنم،
و همهچیز دقیقاً مثل coinsbee کار کنه، بدون اینکه نیاز به ساخت صدها variation در ووکامرس باشه.
🧠 نکته مهم
در حال حاضر نمونه کامل مورد نظرم در این لینک مشخصه: 👉 https://www.coinsbee.com/en/gift-cards/entertainment/itunes/
میخوام دقیقاً همین تجربه کاربری (UX) و عملکرد فنی برای فروشگاه خودم پیادهسازی بشه.
📦 خروجی نهایی مورد انتظار
پروژه بهصورت افزونه اختصاصی وردپرس / ووکامرس پیادهسازی بشه که قابلیت نصب و استفاده در چند سایت رو داشته باشه. کد باید تمیز، ساختارمند و ترجیحاً با نامگذاری انگلیسی و کامنت فارسی یا انگلیسی تحویل داده بشه.




