Download the PHP package sobhansgh/torob-sync without Composer
On this page you can find all versions of the php package sobhansgh/torob-sync. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sobhansgh/torob-sync
More information about sobhansgh/torob-sync
Files in sobhansgh/torob-sync
Package torob-sync
Short Description اتصال فروشگاههای لاراولی به ترب (Torob) بر اساس Product API v3، احراز هویت JWT و وبهوک بهروزرسانی محصول
License MIT
Homepage https://github.com/sobhansgh/torob-sync
Informations about the package torob-sync
Torob Sync برای لاراول
اتصال هر فروشگاه لاراولی به ترب (Torob) بر اساس آخرین نسخهی API رسمی ترب:
- ✅ Product API v3 — endpoint دریافت محصولات توسط ترب (لیست صفحهبندیشده + جستجو با URL/شناسه یکتا)
- ✅ احراز هویت JWT (EdDSA/ed25519) — طبق راهنمای توکن ترب، بهصورت کامل و خودکار
- ✅ وبهوک بهروزرسانی محصول — اطلاعرسانی سریع افزودن/ویرایش محصول بدون نیاز به کراول دورهای
- ✅ پشتیبانی از محصولات ساده و متغیر (Variant) از طریق
product_group_id
شما فقط باید به پکیج بگویید محصولاتتان از کجا میآیند؛ باقی کارها (مسیر، احراز هویت، صفحهبندی، قالب پاسخ) توسط پکیج مدیریت میشود.
سازگار با Laravel 10, 11 و 12 و PHP 8.1+.
نصب
پکیج بهصورت خودکار توسط Laravel شناسایی میشود (Package Auto-Discovery). سپس افزونهی sodium باید در PHP شما فعال باشد (برای اعتبارسنجی امضای EdDSA):
اگر فعال نبود، در php.ini این خط را از حالت کامنت خارج کنید: extension=sodium
انتشار فایل کانفیگ
فایل config/torob-sync.php در پروژهی شما ساخته میشود.
راهاندازی سریع (۳ مرحله)
مرحله ۱: ساخت کلاس اتصال محصولات
این دستور فایل app/Torob/TorobProductProvider.php را میسازد. این تنها فایلی است که باید تکمیل کنید:
برای محصولات ساده، همین کافی است. برای محصولات متغیر (مثلاً چند رنگ)، در ادامه توضیح داده شده.
مرحله ۲: تنظیم .env
مرحله ۳: ثبت آدرس نزد ترب
آدرس endpoint شما بهصورت پیشفرض این خواهد بود (مطابق مثالهای مستندات ترب):
این آدرس را در پنل/فرم ثبتنام ترب وارد کنید تا ترب شروع به دریافت محصولات شما کند. کلید عمومی ترب و اعتبارسنجی JWT بهصورت کامل در پکیج پیادهسازی شده و نیازی به کار اضافه نیست.
پشتیبانی از محصولات متغیر (Variant)
طبق مستندات ترب، واریانتهای یک محصول (مثلاً رنگهای مختلف) باید یک product_group_id مشترک و page_unique جداگانه داشته باشند:
برای محصول ساده فقط کافی است groupId() را صدا نزنید.
ارسال وبهوک (اطلاعرسانی سریع تغییر محصول)
بهجای منتظر ماندن برای کراول دورهای ترب، هر بار که محصولی اضافه یا ویرایش شد میتوانید به ترب اطلاع دهید (نیازمند توکن که از پشتیبانی ترب دریافت میکنید):
بهترینجا برای صدا زدن این متد، Observer مدل محصول شماست (رویدادهای created و updated):
طبق مستندات ترب، محدودیت نرخ درخواست وبهوک ۲۰ درخواست در دقیقه به ازای هر فروشگاه است؛ در صورت نیاز به ارسال حجم بالا، صف (Queue) لاراول را برای این متد استفاده کنید.
متغیرهای محیطی (.env)
| متغیر | توضیح | پیشفرض |
|---|---|---|
TOROB_PROVIDER |
کلاس اتصال محصولات شما | App\Torob\TorobProductProvider |
TOROB_ROUTE_PREFIX |
پیشوند آدرس endpoint | torob_api/v3 |
TOROB_ROUTE_DOMAIN |
دامنهی اختصاصی روت (اختیاری) | — |
TOROB_PUBLIC_KEY |
کلید عمومی ترب برای JWT | مقدار رسمی ترب |
TOROB_AUD |
مقدار دستی aud (فقط پشت پروکسی خاص) | Host درخواست |
TOROB_WEBHOOK_URL |
آدرس وبهوک ترب | https://api.torob.com/update/webhook/v1/ |
TOROB_WEBHOOK_TOKEN |
توکن وبهوک (از پشتیبانی ترب) | — |
چگونه کار میکند؟
- ترب یک درخواست
POSTبا هدرX-Torob-Token(JWT با الگوریتم EdDSA) بهroute.prefix + /productsشما میزند. - میدلور داخلی پکیج (
VerifyTorobToken) امضا، تاریخ انقضا وaudتوکن را با کلید عمومی ترب اعتبارسنجی میکند. - بسته به بدنهی درخواست، یکی از متدهای
paginate/findByUrls/findByUniquesاز کلاس Provider شما صدا زده میشود. - پکیج خروجی را دقیقاً مطابق فرمت
torob_api_v3قالببندی و برمیگرداند.
تست دستی endpoint
منابع
توسعهدهنده
ساختهشده توسط Sobhan Ghasemi — GitHub
لایسنس
این پکیج تحت لایسنس MIT منتشر شده است.
All versions of torob-sync with dependencies
ext-sodium Version *
illuminate/support Version ^10.0|^11.0|^12.0
illuminate/http Version ^10.0|^11.0|^12.0
firebase/php-jwt Version ^6.9