✅ Multi-Package Support (3.5.1) - Add shipment_packages migration and ShipmentPackage model - Add packages() relation to Shipment model - Update CustomerOrderController to accept packages[] array - Auto-calculate volumetric weight from dimensions (L*W*H/5000) - Repeater UI for adding/removing packages - Real-time summary of total weights ✅ Invoice Form for PARCEL (3.5.2) - New step in order form (only for PARCEL type) - Customs items: description, HS Code, quantity, unit price (USD) - Auto-calculate total per item and invoice total - Maximum 9 items - 5-step order form structure ✅ PDF Redesign (3.5.4) - Install picqer/php-barcode-generator - Redesign AWB with barcode, From/To, Value, Service, Type - Redesign Invoice with 9-row table, legal declaration - Redesign Label to A5 landscape with large barcode - DOC/PARCEL condition (only PARCEL has invoice) - Barcode as base64 embed ✅ Technical Fixes (3.5.5) - Add Enum casts to Shipment model (status, direction, type) - Fix deselectAfterCompletion -> deselectRecordsAfterCompletion - Migration for shipment_items (row_number, unit_price) - Migration to make name nullable - Fix Enum method names (DocNormal/DocEconomy) ✅ Tracking Test (3.5.6) - Update TrackController with status_label - Redesign tracking page with beautiful timeline - Status box with colored badge - Timeline with date, description, location, source - Carrier mappings section Documentation: - Update README, Laravel_README, Roadmap, Checklist - Add IFNEX_Meeting_Summary.md for client presentation - Update IFNEX_I18N_Strategy.md (moved to deploy phase) Phase 3.5 — 90% complete (i18n moved to deploy phase)"
22 KiB
نقشه راه پروژه IFNEX
آخرین بروزرسانی: 2026-08-29
توسعهدهنده: VernaSoft Group — Kazem Alghasi
وضعیت کلی: فاز ۰، ۱، ۲، ۳ و ۳.۵ تکمیل شد ✅
خلاصه وضعیت
| فاز | عنوان | وضعیت | درصد |
|---|---|---|---|
| فاز ۰ | پایه و زیرساخت | ✅ تکمیل شده | 100% |
| فاز ۱ | پنل مشتری وردپرس | ✅ تکمیل شده | 100% |
| فاز ۲ | پرداخت و کیف پول | ✅ تکمیل شده | 100% |
| فاز ۳ | یکپارچهسازی و بهبود | ✅ تکمیل شده | 100% |
| فاز ۳.۵ | اصلاحات اساسی | ✅ تکمیل شده (۹۰%) | 90% |
| فاز ۴ | سیستم نمایندگی | 📋 مطالعاتی | 0% |
| فاز ۵ | تجاریسازی و Premium | 📋 مطالعاتی | 0% |
نکته: فاز ۳.۵ شامل Multi-Package، فرم Invoice و تست ترکینگ است. تنها مورد باقیمانده (پشتیبانی چندزبانه i18n) به زمان دیپلوی منتقل شد.
فاز ۰ — پایه و زیرساخت ✅
هدف: ساخت زیرساخت API لاراول + پنل ادمین Filament + ترکینگ دستی
انجام شده:
- دیتابیس کامل با ۴ زون مجزا (Export/Import × Parcel/Doc) + ۳ نوع سرویس
- ۱۷ مدل Eloquent با Enum casts و روابط کامل
- Seeders کشورها (۲۳۳ کشور) و تنظیمات سیستم
- API ترکینگ (
GET /api/v1/track/{awb}) با API Key + Rate Limiting - API قیمتگذاری (
POST /api/v1/calculate) - پنل Filament: Country, Shipment, ShippingRate Resources
- RelationManagers: TrackingEvents, CarrierMappings, Items
- صفحات سفارشی: Settings, PriceTest, ImportRates
- مهاجرت ۳۹۵۰ رکورد تاریخی از اکسل
- ایمپورت/اکسپورت نرخها (Excel)
فاز ۱ — پنل مشتری وردپرس ✅
هدف: ثبت سفارش، لیست سفارشات، جزئیات و رهگیری در سایت وردپرس
انجام شده:
- Bridge Auth (وردپرس → لاراول بدون رمز عبور) با API Key مشترک
- شورتکدهای وردپرس: ۱۰+ شورتکد برای تمام صفحات
- دشبورد جامع مشتری شامل ۸ تب
- API مشتری: پروفایل، کشورها، سفارشات، لغو، نوتیفیکیشن
- قالب سفارشی IFNEX برای وردپرس
فاز ۲ — پرداخت و کیف پول ✅
هدف: سیستم پرداخت آنلاین و کیف پول دیجیتال
انجام شده:
- جدول کیف پول و تراکنشها با audit log کامل
- API کیف پول (موجودی، تراکنشها، فعالیتها)
- پرداخت از کیف پول و درگاه بانکی (Zarinpal)
- Mock Gateway (شبیهسازی درگاه برای تست لوکال)
- سیستم ارز (Currency CRUD + بروزرسانی خودکار نرخ از API)
- Multi-package (بستههای چندگانه مرسوله — در پنل ادمین)
- تاریخچه تغییرات وضعیت (ShipmentStatusHistory)
- نوتیفیکیشن دیتابیس (ادمین و مشتری)
- تولید PDF حرفهای (AWB, Invoice, Label) با بارکد
- کدهای تخفیف با اعتبارسنجی و محدودیت مصرف
فاز ۳ — یکپارچهسازی و بهبود ✅
هدف: اصلاحات کارفرما، بهبود UI/UX، استانداردسازی
انجام شده (۱۸ مورد کارفرما + تست لوکال):
اصلاحات کارفرما (۱۸ مورد):
- ✅ رفع اکشنهای PDF در ViewShipment
- ✅ رفع ShippingRatesImport
- ✅ رفع تصاویر PDF (asset بجای public_path)
- ✅ ستونهای جدید جدول Shipment
- ✅ Packages Repeater در فرم
- ✅ changeStatus به عنوان bulkAction
- ✅ afterSave hook نوتیفیکیشن
- ✅ Currency CRUD
- ✅ فیلد source در TrackingEvents
- ✅ ImportRatesPage (دکمهها + دانلود template)
- ✅ استایل تراکنشهای وردپرس
- ✅ هشدار آدرس انگلیسی
- ✅ نوتیفیکیشن پنل کاربری وردپرس (با badge unread)
- ✅ API نوتیفیکیشن (لیست + علامتگذاری خواندهشده)
- ✅ متدهای ifnex-bridge برای نوتیفیکیشن
- ✅ رفع مشکلات Filament Custom Page (wire:click بجای getFormActions)
- ✅ رفع دانلود template (روت مستقیم بجای AJAX)
- ✅ دیپلوی روی سرور تست (api.ifnex.vernahost.ir + ifnex.vernahost.ir)
اصلاحات تست لوکال (فاز ۳ نهایی):
- ✅ اضافه شدن متدهای
isPaid()وcanBeCancelledByCustomer()به Enum ShipmentStatus - ✅ اضافه شدن ستون
calling_codeبه جدول countries - ✅ آپدیت ۱۹۲ کشور با پیششماره استاندارد ISO 3166-1
- ✅ اضافه شدن
IFNEX_BRIDGE_API_KEYبه.envو کانفیگ - ✅ اصلاح میدلور
auth:sanctumبرای بازگرداندن JSON 401 به جای redirect - ✅ اضافه شدن شورتکد
[ifnex_wallet_charge]برای شارژ کیف پول - ✅ اضافه شدن AJAX handler
ifnex_wallet_charge - ✅ رفع مشکل
use App\Models\WalletTransactionدر CustomerOrderController - ✅ هشدار هوشمند زبان فارسی/انگلیسی برای نام، شهر و آدرس
- ✅ پیششماره تلفن خودکار بر اساس کشور انتخابی
- ✅ اعتبارسنجی تلفن (فقط اعداد، +، فاصله)
- ✅ اصلاح ارور "[object Object]" در پاسخهای AJAX
- ✅ اصلاح
ifnex_enqueue_order_assetsبرای لود صحیح JS
بازطراحی PDFها (فاز ۳ نهایی):
- ✅ نصب
picqer/php-barcode-generator - ✅ بازطراحی AWB با بارکد، From/To کامل، Value، Service، Type
- ✅ بازطراحی Invoice با جدول ۹ ردیفه، اعلان قانونی، بارکد پایین
- ✅ بازطراحی Label با اندازه ۱۰۰×۱۵۰mm و بارکد بزرگ
- ✅ اضافهشدن شرط DOC/PARCEL برای Invoice (فقط PARCEL فاکتور داره)
مورد ۱۹ (نمایندگی) به فاز ۴ منتقل شد:
- طرح مطالعاتی آماده است
- منتظر تأیید و تسویه کارفرما برای فاز ۳
فاز ۳.۵ — اصلاحات اساسی ✅
هدف: رفع نواقص شناساییشده پس از تست لوکال + افزودن قابلیتهای ضروری
✅ این فاز قبل از ارائه نهایی به کارفرما تکمیل شد.
۳.۵.۱ — Multi-Package در فرم سفارش مشتری ✅
مشکل: بکاند و پنل ادمین از چند بسته پشتیبانی میکردند، ولی فرم سفارش مشتری فقط یه بسته میگرفت.
انجام شده:
- ✅ ساخت migration
shipment_packages(جدول جدید) - ✅ ساخت مدل
ShipmentPackageبا متدcalculateVolumetricWeight() - ✅ اضافهشدن رابطه
packages()به مدلShipment - ✅ اصلاح API
POST /customer/ordersبرای پذیرشpackages[] - ✅ محاسبه خودکار وزن حجمی از ابعاد (فرمول:
L×W×H/5000) - ✅ بازطراحی فرم سفارش با Repeater UI (افزودن/حذف بسته)
- ✅ اعتبارسنجی اجباری وزن واقعی و ابعاد
- ✅ خلاصه وزنها (مجموع واقعی، حجمی، قابل محاسبه)
- ✅ نرمالسازی ابعاد به فرمت
*(مثلاً5*6*9)
۳.۵.۲ — فرم Invoice برای محمولههای PARCEL ✅
مشکل: وقتی مشتری نوع PARCEL رو انتخاب میکرد، باید فرم اقلام گمرکی (Invoice) رو پر میکرد.
انجام شده:
- ✅ اضافهشدن مرحله جدید به فرم سفارش (مرحله ۳ - اقلام گمرکی)
- ✅ نمایش این مرحله فقط وقتی نوع = PARCEL
- ✅ فیلدهای هر آیتم: شرح کالا، HS Code، تعداد، قیمت واحد (USD)
- ✅ محاسبه خودکار مجموع هر قلم
- ✅ خلاصه فاکتور (تعداد اقلام + مجموع USD)
- ✅ حداکثر ۹ قلم
- ✅ اعتبارسنجی کامل (همه فیلدها اجباری)
- ✅ نمایش اقلام در خلاصه قیمت نهایی
- ✅ ساختار ۵ مرحلهای فرم (۱: مسیر، ۲: تماس، ۳: اقلام، ۴: تخفیف، ۵: تأیید)
۳.۵.۳ — پشتیبانی چندزبانه (i18n) 📋
وضعیت: به زمان دیپلوی منتقل شد
این مورد به زمان دیپلوی منتقل شد تا همراه با تنظیمات Polylang روی سرور انجام بشه. سند کامل استراتژی در IFNEX_I18N_Strategy.md موجود است.
۳.۵.۴ — بازطراحی PDFها ✅
- ✅ نصب
picqer/php-barcode-generator - ✅ بازطراحی AWB با بارکد، From/To کامل، Value، Service، Type
- ✅ بازطراحی Invoice با جدول ۹ ردیفه، اعلان قانونی، بارکد پایین
- ✅ بازطراحی Label با اندازه A5 افقی و بارکد بزرگ
- ✅ اضافهشدن شرط DOC/PARCEL برای Invoice (فقط PARCEL فاکتور داره)
- ✅ بارکد بهصورت base64 embed (مطمئنترین روش)
۳.۵.۵ — اصلاحات فنی ✅
- ✅ اضافهشدن Enum casts به مدل Shipment (status, direction, type)
- ✅ اصلاح متد
deselectAfterCompletion→deselectRecordsAfterCompletion - ✅ Migration برای ستونهای
row_numberوunit_priceدر shipment_items - ✅ Migration برای nullable کردن
name - ✅ اصلاح متدهای Enum (DocNormal/DocEconomy بهجای DOC_NORMAL/DOC_ECONOMY)
۳.۵.۶ — تست ترکینگ ✅
- ✅ اصلاح API لاراول (TrackController) با
status_label - ✅ بازطراحی صفحه رهگیری وردپرس با timeline زیبا
- ✅ باکس وضعیت با badge رنگی بر اساس status
- ✅ grid اطلاعات کامل (۸ فیلد)
- ✅ timeline با تاریخ، توضیحات، لوکیشن و منبع
- ✅ بخش شرکتهای حمل
- ✅ تست موفق با محموله چندمرحلهای
۳.۵.۷ — تست و نهاییسازی ✅
- ✅ تست تولید PDF با بارکد
- ✅ تست Multi-Package
- ✅ تست Invoice Form برای PARCEL
- ✅ تست ترکینگ چندمرحلهای
- ⏳ دیپلوی نهایی روی سرور (بعد از جلسه)
فاز ۴ (آینده) — سیستم نمایندگی 📋
وضعیت: طرح مطالعاتی آماده — منتظر تصمیم کارفرما
مدلهای پیشنهادی:
| مدل | توضیح | پیچیدگی |
|---|---|---|
| A) کد معرف ساده | هر کاربر یه کد معرف داره، درصدی از سود به معرف میرسه | کم |
| B) نمایندگی کامل | پنل جداگانه، گزارش فروش، کمیسیون | متوسط |
| C) زیرعاملدهی | نماینده زیرمجموعه تعریف میکنه (چند سطحی) | زیاد |
پیشنهاد: شروع با مدل B و امکان ارتقا به C
جداول دیتابیس پیشنهادی:
agents— اطلاعات نماینده (agent_code, commission_rate, parent_agent_id)agent_customers— تخصیص مشتریان به نمایندهagent_commissions— محاسبه و پرداخت کمیسیونها
فازهای پیادهسازی:
- جداول + مدل + ثبتنام با کد معرف
- محاسبه خودکار کمیسیون هنگام ثبت سفارش
- پنل نماینده در Filament (گزارشها + تسویه)
- لینک معرف اختصاصی + صفحه لندینگ ثبتنام
فاز ۵ (آینده) — تجاریسازی و Premium 📋
وضعیت: طرح مطالعاتی آماده
🎯 مدل تجاری پیشنهادی
بهجای نسخه رایگان، یه مدل پولی چندلایهای پیشنهاد میشه (چون بازار هدف محدود هست):
┌─────────────────────────────────────────┐
│ IFNEX Starter (پرداخت یکبار/ماهانه) │
│ ├── پنل مشتری پایه │
│ ├── فرم سفارش ساده │
│ ├── PDF استاندارد (AWB/Invoice/Label) │
│ ├── اکسپورت اکسل پایه │
│ └── پشتیبانی ایمیل │
└─────────────────────────────────────────┘
↓ (ارتقا)
┌─────────────────────────────────────────┐
│ IFNEX Business │
│ ├── تمام امکانات Starter │
│ ├── Multi-Package │
│ ├── سیستم نمایندگی (فاز ۴) │
│ ├── گزارشهای مالی پیشرفته │
│ ├── اکسپورت اکسل کامل │
│ ├── API ترکینگ زنده (TrackingMore) │
│ └── پشتیبانی اولویتدار │
└─────────────────────────────────────────┘
↓ (ارتقا)
┌─────────────────────────────────────────┐
│ IFNEX Enterprise │
│ ├── تمام امکانات Business │
│ ├── فرمساز Drag & Drop │
│ ├── White-label branding │
│ ├── API Gateway برای توسعهدهندگان │
│ ├── پلاگین SMS │
│ ├── Multi-language │
│ ├── پشتیبانی اختصاصی ۲۴/۷ │
│ └── آموزش تیمی │
└─────────────────────────────────────────┘
قابلیتهای Premium برای فاز ۵:
| فیچر | Starter | Business | Enterprise |
|---|---|---|---|
| پنل مشتری | ✅ | ✅ | ✅ |
| فرم سفارش ساده | ✅ | ✅ | ✅ |
| PDF استاندارد | ✅ | ✅ | ✅ |
| اکسپورت اکسل پایه | ✅ | ✅ | ✅ |
| Multi-Package | ❌ | ✅ | ✅ |
| سیستم نمایندگی | ❌ | ✅ | ✅ |
| گزارشهای پیشرفته | ❌ | ✅ | ✅ |
| API ترکینگ زنده | ❌ | ✅ | ✅ |
| فرمساز Drag & Drop | ❌ | ❌ | ✅ |
| White-label | ❌ | ❌ | ✅ |
| API Gateway | ❌ | ❌ | ✅ |
| پشتیبانی ۲۴/۷ | ❌ | ❌ | ✅ |
سایر موارد فاز ۵:
- اتصال به APIهای ترکینگ زنده (TrackingMore/17track)
- پلاگین SMS برای اطلاعرسانی خودکار
- مستندات API (OpenAPI/Swagger)
- راهنمای اپراتور (Operator Manual)
- تستهای واحد و Integration
- اپلیکیشن موبایل (احتمالی)
- بهبود سئو وبسایت وردپرس
- ویرایش پروفایل مشتری
- استان/شهر بر اساس کشور
معماری پروژه
┌─────────────────────────────────────────────────┐
│ کاربر نهایی │
│ (مرورگر وب / موبایل) │
│ ─ زبان فارسی (پیشفرض) │
│ ─ زبان انگلیسی (Polylang) │
└──────────────────┬──────────────────────────────┘
│
┌──────────▼──────────┐
│ وبسایت وردپرس │
│ (ifnex.vernahost.ir) │
│ │
│ ─ قالب IFNEX │
│ ─ پلاگین IFNEX │
│ Bridge │
│ ─ Polylang (i18n) │
│ ─ دشبورد مشتری │
│ ─ فرم سفارش │
│ (Multi-Package) │
│ ─ صفحه پرداخت │
└──────────┬──────────┘
│ API (Sanctum/Bridge)
┌──────────▼──────────┐
│ API لاراول │
│ (api.ifnex.vernahost) │
│ │
│ ─ قیمتگذاری │
│ ─ سفارشات مشتری │
│ ─ کیف پول │
│ ─ پرداخت │
│ ─ نوتیفیکیشن │
│ ─ PDF با بارکد │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ پنل ادمین Filament │
│ (api.ifnex.vernahost) │
│ /panel │
│ │
│ ─ مرسولات │
│ ─ نرخها │
│ ─ کشورها │
│ ─ ارزها │
│ ─ ترکینگ │
│ ─ تنظیمات │
└─────────────────────┘
جریان احراز هویت Bridge
┌──────────┐ POST /bridge/login ┌─────────────┐ ┌──────────────┐
│ WordPress│ ─────────────────────> │ Bridge │─>│ Sanctum Token│
│ Plugin │ <──── token + user ─── │ Controller │<─│ (30 days) │
└──────────┘ └─────────────┘ └──────────────┘
│ │
│ ───── All API calls with Bearer Token ──────────────────────────>│
│ │
│ <──── JSON responses ────────────────────────────────────────────│
└────────────────────────────────────────────────────────────────────────┘
نکته: Bridge Auth نیازی به رمز عبور ندارد — از API Key مشترک بین لاراول و وردپرس استفاده میکند.
تکنولوژیها
| لایه | تکنولوژی |
|---|---|
| بکاند | Laravel 11 + PHP 8.2 |
| پنل ادمین | Filament 3.3.x |
| فرانتاند | WordPress 7.0.3 + قالب سفارشی |
| چندزبانه | Polylang (وردپرس) |
| پرداخت | Zarinpal + Mock Gateway (تست) |
| Dompdf + picqer/php-barcode | |
| Excel | maatwebsite/excel |
| تاریخ | morilog/jalali |
| احراز هویت | Laravel Sanctum + Bridge Auth |
| دیتابیس | MySQL 8 |
| سرور | HestiaCP + Nginx + PHP-FPM |
| SSL | Let's Encrypt |
| مخزن | Gitea (git.vernahost.ir) |
محیطها
| محیط | دامنه | وضعیت |
|---|---|---|
| تست/تولید | api.ifnex.vernahost.ir | ✅ فعال (Laravel) |
| تست/تولید | ifnex.vernahost.ir | ✅ فعال (WordPress) |
| لوکال | localhost:8000 | ✅ توسعه |
| لوکال | localhost/IFNEX-Logistics/03_WordPress | ✅ توسعه |
آمار کلی پروژه
| معیار | مقدار |
|---|---|
| تعداد مایگریشنها | ۲۸ |
| تعداد API endpoints | ۳۰+ |
| تعداد Filament Resources | ۱۰+ |
| تعداد مدلها | ۱۷ |
| تعداد شورتکدهای وردپرس | ۱۰+ |
| تعداد کشورها با پیششماره | ۱۹۲ |
| رکوردهای تاریخی مهاجرتشده | ۳۹۵۰ |
| تعداد موارد کارفرما (فاز ۳) | ۱۸ مورد ✅ |
| زبانهای پشتیبانیشده | ۲ (فارسی، انگلیسی) |
| خطوط کد (تخمینی) | ۱۵۰۰۰+ |
نکات کلیدی
✅ نقاط قوت
- معماری Headless مقیاسپذیر
- امنیت چندلایه (API Key + Sanctum + Bridge Key)
- پشتیبانی از ۱۹۲ کشور با پیششماره استاندارد
- تولید PDF حرفهای با بارکد (مطابق نمونه کارفرما)
- Mock Gateway برای تست بدون درگاه واقعی
- سیستم نوتیفیکیشن دیتابیس برای ادمین و مشتری
- رابط کاربری مدرن و واکنشگرا
⚠️ نواقص باقیمانده (فاز ۳.۵)
- Multi-Package در فرم سفارش مشتری
- فرم Invoice برای محمولههای PARCEL
- پشتیبانی کامل چندزبانه (i18n)
- تست نهایی روی سرور
📋 برای آینده
- تجاریسازی با مدل پولی چندلایهای
- سیستم نمایندگی کامل
- فرمساز پیشرفته
- API Gateway برای توسعهدهندگان
2026 VernaSoft Group. Internal use only.