از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
دو ماه پیش منتشر شده
تعداد بازدید: 115
کد پروژه: 566639
شرح پروژه
شرح پروژه: افزونه وردپرسی برای اتصال به ترب
هدف پروژه:
نیازمند یک افزونه وردپرسی کاملاً بهینه و بدون باگ برای اتصال محصولات ووکامرسی به پلتفرم ترب هستیم. افزونه باید سبک، سریع، و منطبق با مستندات رسمی ترب باشد. سایت ما یک فروشگاه بزرگ ووکامرسی با 400 هزار محصول (دیتابیس 5 گیگ) است و افزونه باید برای این مقیاس بهینه شود، با حداقل مصرف منابع سرور (8 گیگ رم، 3 هسته، PHP 7.4). افزونههای فعلی به دلیل مصرف بالای CPU/RAM و عدم تطابق با مستندات ترب، باعث قطعی سایت میشوند.
مشکلات فعلی:
افزونههای موجود روی سایتهای بزرگ (400 هزار محصول) عملکرد ضعیفی دارند.
مصرف بالای RAM و CPU، بهویژه هنگام کرال ترب، که منجر به قطعی سایت میشود.
عدم کش مناسب API یا تازهسازی مداوم کش.
عدم تطابق کامل خروجی API با مستندات ترب.
نبود امکانات مدیریت کش، گزارشگیری، و مانیتورینگ.
امکانات مورد انتظار افزونه:
1. خروجی API:
o ارائه API در مسیر DOMAIN.com/wp-json/wcpe/v1/products با ساختار دقیق طبق مستندات ترب (فیلدهای product_id, title, price, old_price, availability, page_url, image_url و ...).
o پشتیبانی از pagination (هر صفحه 100 محصول) با مرتبسازی محصولات از جدید به قدیم.
o پشتیبانی از متدهای GET و POST با کش مناسب برای هر دو.
o پشتیبانی از محصولات متغیر (هر variation با product_id یکتا).
2. محدودیت دسترسی به API:
o API فقط برای IPهای مجاز (whitelist) قابل دسترسی باشد و بهصورت عمومی در دسترس نباشد.
o لیست IPهای مجاز:
o رنج IP ترب: 81.12.31.192 - 81.12.31.254 (یا 81.12.31.192/26).
§ IP خاص: 91.107.165.81.
o امکان افزودن/حذف IPهای تکی یا رنج IP توسط مدیر در تنظیمات افزونه.
o اگر IP درخواستکننده در لیست مجاز نباشد، خطای HTTP 403 برگردانده شود.
o بررسی IPها بهصورت بهینه (مثلاً با کش یا جدول دیتابیس).
o درخواستهای بلاکشده (IP، زمان، URL) در لاگ افزونه ثبت شوند.
3. مدیریت کش:
o خروجی API همیشه کششده و در دسترس باشد.
o قابلیت زمانبندی رفرش کش (مثلاً هر 10 روز، قابل تغییر).
o مدیریت کامل کش در پیشخوان وردپرس:
o حذف دستی کش (کلی یا تکمحصولی).
o بازسازی کش (کلی یا تکمحصولی).
o بررسی سلامت کش و نمایش زمان آخرین بازسازی.
o مدیریت کش بر اساس URL محصول (حذف، بازسازی، یا ویرایش).
o حذف خودکار کش محصولات حذفشده با فاصله زمانی بهینه (برای جلوگیری از حذف همزمان کش 99 محصول دیگر در یک صفحه).
o استفاده از Redis یا Memcached برای مدیریت کش تکمحصولی.
4. پیشکش شبانه:
o کشسازی هوشمند بین ساعات 2 تا 5 صبح (قابل تغییر) با صفبندی و اولویتبندی دستهبندیها.
o مصرف بسیار پایین منابع با استفاده از پردازش batch (مثلاً هر بار 1000 محصول).
5. حالت سبک (Low Resource Mode):
o توقف هوشمند فرآیندها هنگام مصرف بالای CPU (مثلاً بالای 80٪، قابل تغییر).
o قابلیت فعال/غیرفعال کردن و تنظیم آستانه CPU.
6. گزارشگیری ایمیلی:
o ارسال ایمیل روزانه به آدرس دلخواه با استفاده از تابع mail() سرور هاست
o محتوای ایمیل:
o وضعیت کش (تعداد محصولات کششده، زمان آخرین بازسازی).
o خطاهای API (مثلاً عدم تطابق فیلدها).
o میانگین مصرف CPU/RAM در 24 ساعت گذشته.
o تعداد درخواستهای بلاکشده و IPهای غیرمجاز.
o لاگ خطاهای ارسال ایمیل در پیشخوان نمایش داده شود.
7. صفحه تنظیمات:
o رابط کاربری تببندیشده در پیشخوان وردپرس با HTML و CSS ساده.
o بخشهای تنظیمات شامل:
o مدیریت IPهای مجاز.
o زمانبندی کش.
o آستانه CPU برای Low Resource Mode.
o تنظیمات SMTP یا ایمیل هاست.
o رابط کاربری ساده با دکمههای + و - برای مدیریت IPها.
8. تست و عیبیابی:
o دکمه تست خروجی API و بررسی صحت اتصال با ترب.
o تست افزونه روی سرور استیجینگ با 400 هزار محصول.
9. سازگاری:
o پشتیبانی از سرورهای LiteSpeed و افزونههای کش (WP Rocket، LiteSpeed Cache).
o سازگاری با وردپرس 6.0+، ووکامرس 8.0+، PHP 7.4 (آماده برای PHP 8.x).
10. امنیت:
o محدود کردن دسترسی به API فقط به IPهای مجاز.
o ثبت لاگ درخواستهای غیرمجاز.
11. مشاهده و دانلود لاگ ها
یک قسمت برای مشاهده و دانلود لاگ ها طراحی شود.
12. گزینه ENDPONT
در تنظیمات افزونه، گزینهای برای تعریف چندین endpoint با IPهای مجاز جداگانه اضافه بشه.
13. تنظیمات افزونه - تنظیمات افزونه به صورت پیش فرض انجام شود. ویدیو یا پی دی اف کوتاه درباره تنظیمات محصول ارائه شود.
14. افزونه بدون محدودیت قابل نصب روی چند سایت باشد.
15. در صورت وجود باگ در ماه های آتی پشتیبانی ارائه دهید. (امکانات جدید با هزینه باشد مشکلی نیست. اما باگ بدون هزینه رفع شود.)
اطلاعات تکمیلی:
مشخصات سرور: 8 گیگ رم، 3 هسته، PHP 7.4، دیتابیس 5 گیگ.
تعداد محصولات: 400 هزار
آدرس API: DOMAIN.com/wp-json/wcpe/v1/products.
IPهای مجاز اولیه:
رنج IP: 81.12.31.192 - 81.12.31.254 (یا 81.12.31.192/26).
IP تکی: 91.107.165.81.
مستندات ترب:
فیلدهای موردنیاز: product_id, page_url, price, availability, old_price, title, image_url.
Pagination با 100 محصول در هر صفحه.
مرتبسازی محصولات از جدید به قدیم.
پشتیبانی از متد GET و POST
مستندات فنی ترب به شرح زیر است:
بروزرسانی سریع قیمت و موجودی با استفاده از api¶
در صورت امکان برای بروزرسانی هر چه سریعتر قیمت و موجودی محصولات، میتوانید یک api یا صفحه حاوی محصولات را ارائه نمایید. هر صفحه از محصولات لازم است که حاوی حداقل ۱۰۰ محصول بوده و از قابلیت pagination نیز پشتیبانی کند. یعنی امکان تغییر صفحه (صفحه قبل یا صفحه بعد) وجود داشته باشد.
لطفا از متد GET برای دریافت محصولات استفاده شود.
پارامترهای مورد نیاز در api:¶
{
product_id: '...',
page_url: '...',
price: '...',
availability: '...',
old_price: '...',
}
ملاحظات:¶
در مورد product_id یا شناسه محصول، محصولات شما با این شناسه در موتور جستوجوی ترب شناخته میشوند. بنابراین انتظار میرود که این شناسه برای هر محصول منحصربهفرد و یکتا بوده، ثابت و بدون تغییر باقی بماند.
منظور از price قیمت اصلی محصول است که در سایت محصول به این قیمت فروخته میشود و برای محصولات تخفیف خورده، منظور قیمت پس از تخفیف است.
مقدار availability نشاندهندهي موجودبودن یا نبودن محصول در سایت است. برای بیان موجودبودن محصول باید از مقدار 'instock' استفاده شود.
منظور از old_price قیمت قدیم محصولات تخفیف خورده است.
توجه به این نکته بسیار ضروری و مهم است که اطلاعات موجود در صفحه محصول و اطلاعات موجود در این api نباید باهم تفاوت داشته باشند.
محصولات در صفحهی موردنظر، به ترتیب جدید به قدیم مرتب شوند. یعنی محصولات جدیدا اضافه شده و جدیدا ویرایش شده در اولویت قرار داشته باشند.
رنج آیپی ترب:
[ 81.12.31.192 - 81.12.31.254 ] و آیپی 91.107.165.81
ملاحظات:
افزونه باید روی سرور استیجینگ با 400 هزار محصول تست شود.
استفاده از Redis یا Memcached برای مدیریت کش توصیه میشود.
اولویت اصلی: مصرف بهینه منابع، تطابق کامل با مستندات ترب، و امنیت API.
بررسی IPها و کوئریهای دیتابیس باید بهصورت بهینه انجام شود.
کوئریهای دیتابیس باید با ابزارهایی مثل Query Monitor تست شوند تا از بهینه بودن اطمینان حاصل شود.
این پروژه شامل 1 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
7روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت هفت سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار