Update project documentation to reflect the transition from Phase 3 to a new critical refinement phase (Phase 3.5) and outline long-term strategic goals. Key documentation updates: - Added Phase 3.5 (Essential Refinements) to the roadmap and checklist, focusing on multi-package support, parcel invoice forms, and internationalization (i18n). - Defined Phase 5 (Commercialization) including tiered subscription models (Starter, Business, Enterprise) and premium features. - Created `IFNEX_Commercial_Model.md` to detail monetization strategies. - Created `IFNEX_I18N_Strategy.md` to outline the multi-language implementation approach using Polylang. - Updated `README.md` with the revised project lifecycle and new documentation references.
19 KiB
چکلیست فاز ۰ — IFNEX Phase 0 Checklist
مرجع: Phase0_Proposal.docx + EXCEL_ANALYSIS.md + STATUS.md
تاریخ: August 2026
وضعیت: فاز ۰ تکمیل شده + فاز ۱/۲ بخشی انجام شده
توسعهدهنده: VernaSoft Group — Kazem Alghasi
آخرین بروزرسانی: 2026-08-29
وضعیت کلی
| فاز | وضعیت | درصد |
|---|---|---|
| فاز ۰ (پایه) | ✅ تکمیل شده | 100% |
| فاز ۱ (پنل مشتری) | ✅ تکمیل شده | 100% |
| فاز ۲ (پرداخت و کیف پول) | ✅ تکمیل شده | 100% |
| فاز ۳ (یکپارچهسازی) | ✅ تکمیل شده | 100% |
| فاز ۳.۵ (اصلاحات اساسی) | 🔄 در دست اقدام | 0% |
| فاز ۴ (سیستم نمایندگی) | 📋 مطالعاتی | 0% |
| فاز ۵ (تجاریسازی) | 📋 مطالعاتی | 0% |
نکته: فاز ۳.۵ شامل اصلاحات اساسی است که پس از تست لوکال شناسایی شد. این فاز قبل از ارائه نهایی به کارفرما باید تکمیل شود.
بخش ۱: اصلاح اسکیمای دیتابیس
1.1 بازنویسی Migration countries
- حذف
export_zoneوimport_zone(۲ زون قدیمی) - اضافه کردن
export_zone_parcel(TINYINT 1-10) - اضافه کردن
export_zone_doc(TINYINT 1-10) - اضافه کردن
import_zone_parcel(TINYINT 1-10) - اضافه کردن
import_zone_doc(TINYINT 1-10) - اضافه کردن
iso_code(CHAR(2) UNIQUE) - اضافه کردن
is_active(BOOLEAN default true) - اضافه کردن
calling_code(VARCHAR 10 NULL) — فاز ۲ - اصلاح
name— بدون کد ISO در پرانتز
1.2 بازنویسی Migration shipments
- حذف
forwarder_track_id(جایگزین با جدول مجزا) - تغییر
typeاز STRING به ENUM:DOC_NORMAL,DOC_ECONOMY,PARCEL - تغییر
directionاز STRING به ENUM:import,export - تغییر
statusاز STRING به ENUM (وضعیتهای استاندارد) - اضافه کردن
from_country_id(FK → countries.id) - اضافه کردن
to_country_id(FK → countries.id) - اضافه کردن فیلدهای مالی:
domestic_pickup,domestic_delivery,warehousing_cost,vat_amount - تبدیل فیلدهای غیرضروری به
nullable - اضافه کردن
state_notes(فیلد وضعیت و یادداشت مشتری) — فاز ۲ - اضافه کردن
cod_amount(مبلغ COD) — فاز ۲ - رابطه
packages()وstatusHistories()— فاز ۲
1.3 ایجاد Migration shipment_carrier_mappings
- تمام فیلدها طبق طرح اولیه
- RelationManager در Filament با CRUD کامل
1.4 ایجاد Migration shipment_tracking_events
- تمام فیلدها طبق طرح اولیه
- اضافه کردن فیلد
source(manual/api/system) — فاز ۲ - RelationManager در Filament با CRUD کامل
1.5 بازنویسی Migration system_settings
- تغییر به ساختار key-value
1.6 بازنویسی Migration users
- اضافه کردن
phone,role,is_active
1.7 اصلاح Migration shipping_rates
- تغییر
typeوdirectionبه ENUM
1.8 جداول جدید فاز ۱/۲
currencies— جدول ارزها (code, name, symbol, rate_to_rial, rate_to_aed, is_active)shipment_packages— بستههای چندگانه هر مرسوله (package_no, weight, dimensions)shipment_status_histories— تاریخچه تغییرات وضعیت (from_status, to_status, reason, changed_by)wallets— کیف پول کاربرانwallet_transactions— تراکنشهای کیف پولnotifications— نوتیفیکیشنهای دیتابیس (Laravel default)
بخش ۲: Model ها
Country.php— با ۴ زون + iso_code + calling_code + is_activeShipment.php— با enum casts + روابط کامل + packages + statusHistoriesShipmentCarrierMapping.php— با relation + enum castsShipmentTrackingEvent.php— با relation + enum casts + sourceShipmentItem.php— با relationShipmentPackage.php— با belongsTo(Shipment) — فاز ۲ShipmentStatusHistory.php— با booted auto-fill changed_by — فاز ۲ShippingRate.php— با enum castsSystemSetting.php— با get/set متدهاUser.php— با role + is_active + wallet relationCurrency.php— با fillable + casts — فاز ۲Wallet.php— فاز ۲WalletTransaction.php— فاز ۲
بخش ۳: Seeders
CountriesTableSeeder.php— با ۴ زون مجزاSystemSettingSeeder.php— با ساختار key-valueDatabaseSeeder.php— با User اولیه super_admin
بخش ۴: API و Controller ها
۴.۱ API ترکینگ
GET /api/v1/track/{awb_no}— تایملاین کاملTrackController.php— با timeline + carrier mappings
۴.۲ API قیمتگذاری
POST /api/v1/calculate— با ۳ نوع سرویس + VAT + هزینههای جانبیPricingController.php— با API Key + Rate Limiting
۴.۳ API احراز هویت
POST /api/v1/auth/login— ورود با email + passwordPOST /api/v1/auth/logout— خروج ( Sanctum)POST /api/v1/bridge/login— Bridge Auth (WordPress → Laravel)
۴.۴ API پنل مشتری (فاز ۱/۲)
GET /api/v1/customer/profile— پروفایل و آمارGET /api/v1/customer/countries— لیست کشورهاGET /api/v1/customer/orders— لیست سفارشاتPOST /api/v1/customer/orders— ثبت سفارشGET /api/v1/customer/orders/{shipment}— جزئیات سفارشPOST /api/v1/customer/orders/{shipment}/cancel— لغو سفارشPOST /api/v1/customer/orders/{shipment}/pay-wallet— پرداخت از کیف پولPOST /api/v1/customer/orders/{shipment}/pay-gateway— پرداخت از درگاهGET /api/v1/customer/notifications— نوتیفیکیشنها — فاز ۲POST /api/v1/customer/notifications/{id}/read— خواندن نوتیفیکیشن — فاز ۲
۴.۵ API کیف پول (فاز ۲)
GET /api/v1/wallet/balance— موجودیGET /api/v1/wallet/transactions— تراکنشها
۴.۶ API پرداخت (فاز ۲)
POST /api/v1/payment/redirect— انتقال به درگاهGET /api/v1/payment/check/{transaction}— بررسی وضعیت- Mock Gateway (شبیهسازی درگاه پرداخت)
بخش ۵: Filament Admin Panel
۵.۱ منابع (Resources)
CountryResource— با ۴ زون + iso_code + calling_code + is_activeShipmentResource— با ستونهای جدید + CSV export +Packages Repeater + changeStatus bulkActionShippingRateResource— با ۳ نوع سرویسCurrencyResource— CRUD ارزها — فاز ۲
۵.۲ RelationManagers
TrackingEventsRelationManager— با فیلدsource— فاز ۲CarrierMappingsRelationManager— با CRUD کاملItemsRelationManager— اقلام مرسوله
۵.۳ صفحات سفارشی
SettingsPage— تنظیمات key-valuePriceTestPage— تست قیمتگذاریImportRatesPage— آپلود اکسل نرخها + دانلود template — فاز ۲
۵.۴ PDF
PdfService— با loadMissing (packages, fromCountry, toCountry, items)awb.blade.php— با asset() برای تصاویر + جدول بستههاlabel.blade.php— با asset() برای تصاویرinvoice.blade.php— فاکتور
۵.۵ نوتیفیکیشن ادمین
ShipmentUpdatedNotification— با لیست فیلدهای تغییر کردهafterSavehook در ShipmentResource — ارسال نوتیفیکیشن
بخش ۶: Services
PriceCalculatorService.php— با ۴ زون + ۳ نوع + VAT + هزینههای جانبیTrackingService.php— تایملاین + افزودن رویدادPdfService.php— تولید PDF (AWB, Label, Invoice)OrderPaymentService.php— پرداخت از کیف پول و درگاه — فاز ۲
بخش ۷: Import و مهاجرت داده
OldShipmentsImport.php— مهاجرت ۳۹۵۰ رکورد تاریخیShippingRatesImport.php— ایمپورت نرخها (بدون SystemSetting)ShippingRatesTemplateExport.php— دانلود template اکسل (FromArray)
بخش ۸: پلاگین وردپرس IFNEX Bridge
۸.۱ ساختار پلاگین
ifnex-bridge.php— فایل اصلی پلاگینincludes/api-client.php— ارتباط با API (قدیمی)includes/user-bridge.php— Bridge Auth + API احرازشدهincludes/shortcodes.php— تمام شورتکدهاincludes/tracking-form.php— فرم رهگیری (قدیمی)assets/css/ifnex-orders.css— استایل کامل (v1.6.0)assets/css/ifnex-bridge.css— استایل ترکینگassets/js/ifnex-order-form.js— فرم سفارش + هشدار آدرس انگلیسی
۸.۲ شورتکدها
[ifnex_tracking_form]— فرم رهگیری مرسوله[ifnex_tracking_status]— نمایش مستقیم وضعیت[ifnex_wallet_balance]— موجودی کیف پول[ifnex_transactions]— تاریخچه تراکنشها (با استایل جدید)[ifnex_user_profile]— پروفایل مشتری[ifnex_orders_list]— لیست سفارشات[ifnex_order_form]— فرم ثبت سفارش چند مرحلهای[ifnex_order_payment]— صفحه پرداخت[ifnex_order_detail]— جزئیات سفارش[ifnex_customer_dashboard]— پنل جامع مشتری (داشبورد + سفارشات + کیف پول + تراکنشها + اعلانها + رهگیری + پروفایل)
۸.۳ استایل تراکنشها — فاز ۲
- استایل کامل برای
.ifnex-transactions-*— مطابق دشبورد مدرن
۸.۴ هشدار آدرس انگلیسی — فاز ۲
- تشخیص متن انگلیسی در آدرس (sender + receiver)
- نمایش هشدار اسلایدی با انیمیشن
۸.۵ نوتیفیکیشن پنل کاربری — فاز ۲
- تب اعلانها در دشبورد
- بج تعداد خواندهنشده در سایدبار
- لیست نوتیفیکیشنها با استایل مدرن
- لینک به سفارش مرتبط
- API لاراول برای دریافت/خواندن نوتیفیکیشن
بخش ۹: وبسایت وردپرس
۹.۱ قالب IFNEX
- نصب و تنظیم قالب سفارشی
- front-page.php — لندینگ پیج
- header.php / footer.php
- template-parts (hero, services, how-it-works, stats, testimonials, cta)
- template-login.php — صفحه ورود
۹.۲ صفحات
- لندینگ پیج
- صفحه رهگیری
- صفحه استعلام قیمت (PricingPageController)
بخش ۱۰: موارد اخیر فاز ۳ (۱۷ مورد کارفرما)
- ۱. رفع
openUrlInNewTab()روی اکشنهای PDF در ViewShipment - ۲. رفع
ShippingRatesImport(حذف SystemSetting + تبدیل ارز) - ۳. رفع تصاویر PDF (asset() بجای public_path())
- ۴. رفع label.blade.php تصاویر
- ۵. ستونهای جدید ShipmentResource (fromCountry, toCountry, route, phones, cod_amount)
- ۶. حذف reason_for_export تکراری
- ۷. رفع CSV label ($status?->label())
- ۸. Packages Repeater (collapsible)
- ۹. changeStatus به عنوان bulkAction
- ۱۰. afterSave hook برای ShipmentUpdatedNotification
- ۱۱. Currency CRUD (Resource + Pages + Migration + Model)
- ۱۲. RelationManagers (Create/Edit/Delete) + فیلد source
- ۱۳. سیستم نوتیفیکیشن دیتابیس
- ۱۴. Multi-package (migration + model + PDF)
- ۱۵. ImportRatesPage (دکمهها + دانلود template + ایمپورت)
- ۱۶. استایل تراکنشهای وردپرس
- ۱۷. هشدار انگلیسی بودن آدرس
- ۱۸. نوتیفیکیشن پنل کاربری وردپرس (تب + API + CSS)
- [~] ۱۹. سیستم نمایندگی (طرح مطالعاتی آماده — به فاز ۴ منتقل شد)
بخش ۱۰.۱: تست لوکال و اصلاحات نهایی فاز ۳
- اضافه شدن متدهای
isPaid()وcanBeCancelledByCustomer()به Enum ShipmentStatus - اضافه شدن ستون
calling_codeبه جدول countries (migration جدید) - آپدیت ۱۹۲ کشور با پیششماره استاندارد ISO 3166-1
- اضافه شدن
IFNEX_BRIDGE_API_KEYبه.envوconfig/ifnex.php - اصلاح میدلور
auth:sanctumدرbootstrap/app.phpبرای بازگرداندن JSON 401 - اضافه شدن شورتکد
[ifnex_wallet_charge]برای شارژ کیف پول - اضافه شدن AJAX handler
ifnex_wallet_charge - رفع مشکل
use App\Models\WalletTransactionدر CustomerOrderController - هشدار هوشمند زبان فارسی/انگلیسی برای نام، شهر و آدرس
- پیششماره تلفن خودکار بر اساس کشور انتخابی
- اعتبارسنجی تلفن (فقط اعداد، +، فاصله)
- اصلاح ارور "[object Object]" در پاسخهای AJAX
- اصلاح
ifnex_enqueue_order_assetsبرای لود صحیح JS - اصلاح
.envوZARINPAL_FRONTEND_SUCCESS_URL/FAILURE_URL - تست موفق تمام جریانها: لاگین → سفارش → پرداخت → شارژ کیف پول → نوتیفیکیشن
بازطراحی PDFها:
- نصب
picqer/php-barcode-generator - بازطراحی AWB با بارکد، From/To کامل، Value، Service، Type
- بازطراحی Invoice با جدول ۹ ردیفه، اعلان قانونی، بارکد پایین
- بازطراحی Label با اندازه ۱۰۰×۱۵۰mm و بارکد بزرگ
- اضافهشدن شرط DOC/PARCEL برای Invoice (فقط PARCEL فاکتور داره)
بخش ۱۱: فاز ۳.۵ — اصلاحات اساسی 🔄
⚠️ این بخش قبل از ارائه نهایی به کارفرما باید تکمیل شود.
۱۱.۱ — Multi-Package در فرم سفارش مشتری 🔴 ضروری
مشکل: بکاند و پنل ادمین از چند بسته پشتیبانی میکنند، ولی فرم سفارش مشتری فقط یه بسته میگیره.
- اصلاح
ifnex-order-form.js— افزودن قابلیت "افزودن بسته دیگر" - اصلاح HTML فرم — نمایش لیست بستههای اضافهشده
- محاسبه مجموع وزنها و قیمت نهایی
- اصلاح
buildOrderData()— ارسال آرایهpackages[] - اصلاح API
POST /customer/orders— پذیرشpackages[] - ایجاد خودکار
ShipmentPackageهنگام ثبت سفارش - تست با چند بسته
۱۱.۲ — فرم Invoice برای محمولههای PARCEL 🔴 ضروری
مشکل: وقتی مشتری نوع PARCEL رو انتخاب میکنه، باید فرم اقلام گمرکی (Invoice) رو پر کنه.
- اضافهکردن مرحله جدید به فرم سفارش (مرحله ۲.۵)
- نمایش این مرحله فقط وقتی نوع = PARCEL
- فیلدهای هر آیتم: Description, HS Code, Quantity, Unit Price, Total
- امکان افزودن چندین آیتم (تا ۹ ردیف)
- محاسبه خودکار Total و نمایش مجموع
- ارسال
items[]به API - ایجاد خودکار
ShipmentItemهنگام ثبت سفارش - تست با چند آیتم
۱۱.۳ — پشتیبانی چندزبانه (i18n) 🟡 مهم
مشکل: سایت ۲ زبانه (فارسی + انگلیسی) هست با Polylang، ولی:
-
تمام شورتکدها و فرمها فقط فارسی هستن
-
پیامهای خطا و موفقیت فقط فارسی هستن
-
استخراج تمام رشتههای متنی به فایلهای ترجمه
-
استفاده از
__()و_e()در وردپرس -
استفاده از
wp_localize_scriptبرای ارسال ترجمهها به JS -
افزودن فایلهای
.po/.moبرای زبانهای فارسی و انگلیسی -
اصلاح تمام فایلهای
ifnex-bridge/includes/*.php -
اصلاح
ifnex-order-form.js(استفاده از متغیرهای ترجمه) -
اصلاح CSS برای پشتیبانی RTL/LTR
-
تست زبان انگلیسی
۱۱.۴ — تست و نهاییسازی 🟡 مهم
- تست تولید PDF با بارکد روی سرور
- تست Multi-Package
- تست Invoice Form برای PARCEL
- تست زبان انگلیسی
- دیپلوی نهایی روی سرور
- تست نهایی روی سرور
بخش ۱۲: فاز ۵ — تجاریسازی 📋
طرح مطالعاتی — مدل پولی چندلایهای
پلنهای پیشنهادی:
- IFNEX Starter — پلن پایه پرداختشده
- IFNEX Business — پلن متوسط
- IFNEX Enterprise — پلن کامل
فیچرهای Premium:
-
فرمساز Drag & Drop
-
White-label branding
-
API Gateway برای توسعهدهندگان
-
اکسپورت اکسل کامل (تمام فیلدها)
-
API ترکینگ زنده (TrackingMore/17track)
-
پلاگین SMS
-
گزارشهای مالی پیشرفته
-
IFNEX_Phase0_Checklist.md (همین فایل)
-
IFNEX_File_Map.md — نقشه فایلهای پروژه
-
IFNEX_Roadmap.md — نقشه راه جامع ۴ فازی
-
راهنمای اپراتور (Operator Manual) با اسکرینشات
-
مستندات API (OpenAPI/Swagger)
خط قرمزها — هرگز این کارها را نکن
- هرگز جدول countries را به ۲ زون برگردانی
- هرگز فقط ۲ نوع سرویس پیاده کن (۳ نوع الزامی است)
- هرگز ترکینگ را در وردپرس پیاده کن
- هرگز فیلدهای مالی (VAT, Packing, Warehousing) را حذف کن
- هرگز از رنگ/لوگو DHL کپی کن
- هرگز PDF را به فارسی بسازی
- هرگز تاریخ را شمسی در DB ذخیره کنی
- هرگز از CORS
*استفاده کنی - هرگز فایل .env را در Git کامیت کنی
2026 VernaSoft Group. Internal use only.