پلاگینها به منظور گسترش عملکرد و کارایی ناپکامرس مورد استفاده قرار میگیرند، قابلیت پلاگیننویسی یکی از نقاط قوت ناپکامرس محسوب میشود و توسط آن قادر خواهیم بود بسیاری از امکانات و قابلیتهای مورد نیازمان را، پیادهسازی کنیم.
برای ساخت پلاگین، حداقل به 2 فایل نیاز خواهیم داشت:
- کتابخانهکامپایل شده توسط داتنتکور(و یا داتنتفریمورک)
- فایل plugin.json
- فایل logo (اختیاری)
کتابخانهکامپایل شده توسط داتنتکور:
این کلاس لایبرری که نقطه اتصال پلاگین به هسته ناپ است، دارای حداقل یک کلاس public است که اینترفیس Iplugin را پیادهسازی کرده است.
- این اینترفیس شامل موارد زیر است:
GetConfigurationPageUrl
خروجی آن از نوع رشته بوده و آدرس صفحه تنظیمات پلاگین را در خود دارد، لزومی ندارد که این متد حتما دارای مقدار باشد، در صورتی که این متد مقداری را برنگرداند، ناپکامرس صفحه تنظیماتی را برای این پلاگین در نظر نمیگیرد.
Install
ممکن است در هنگام نصب پلاگین نیاز باشد تا جدولی به دیتابیس اضافه کنیم و یا رکوردهایی را داخل جداول وارد کنیم. در این صورت از این متد استفاده خواهیم کرد.
Uninstall
ریسورسها، رکوردها و جداولی را که هنگام نصب پلاگین به سیستم اضافه کردیم، در این متد حذف میکنیم تا هنگام لغو نصب پلاگین، اثری از آن در سیستم باقی نماند.
PluginDescriptor
وظیفه این پراپرتی توصیف پلاگین است.
Plugin.json
فایلی متنی که برای توصیف پلاگین از یک سری key و value استفاده میکند.
Group
گروه پلاگین را جهت فیلتر کردن پلاگینها، برای سهولت دسترسی به پلاگین مورد نظر، مشخص میکند.
FriendlyName
عنوانی که سیستم به کاربر نمایش میدهد.
SystemName
عنوانی که سیستم با آن کار میکند و باید در کل سیستم یکتا باشد.
SupportedVersions
آرایهای از نسخههای مختلفی که این پلاگین پشتیبانی میکند.
Author
فیلد متنی که نویسندگان پلاگین را مشخص میکند.
DisplayOrder
اولویت نمایش پلاگین را در لیست پلاگینها مشخص میکند.
FileName
عنوان فایل dllی است که اینترفیس Iplugin را پیادهسازی کرده است.
Description
فیلدی متنی به منظور معرفی کارکرد پلاگین به کاربران
انواع پلاگین
انواع مختلفی از پلاگینها در ناپکامرس قابل پیادهسازی است:
- IWidgetPlugin: این نوع، بسیار کاربردی است، به عنوان مثال اسلایدر موجود در صفحه اصلی توسط IWidgetPlugin پیادهسازی شده است.
- IPaymentMethod: تعریف انواع درگاههای پرداخت توسط IPaymentMethod صورت میگیرد.
- IAdminMenuPlugin: به منظور افزودن منو به منوهای پنل مدیریت مورد استفاده قرار میگیرد.
- ITaxProvider: به منظور محاسبه مالیات و پیادهسازی قوانین مالیاتی از ITaxProvider استفاده میشود.
- IShippingRateComputationMethod: به منظور محاسبه نرخ حمل و نقل مورد استفاده قرار میگیرد.
- IPickupPointProvider: در صورتی که نیاز داشته باشیم تا نقاطی را برای تحویل سفارشات داشته باشیم، IPickupPointProvider را پیادهسازی خواهیم کرد.
- IDiscountRequirementRule: به منظور ایجاد محدودیتها برای تخفیفات داخل سیستم، کارایی دارد.
- IExchangeRateProvider: ناپکامرس به صورت چند ارزی پیادهسازی شده است. IExchangeRateProvider در جهت تبدیل نرخ دو ارز به یکدیگر کاربرد دارد.
- IExternalAuthenticationMethod: به منظور ورود کاربران به سیستم از طریق حسابهای کاربری آنها مانند جیمیل، فیسبوک و ... مورداستفاده قرار میگیرد.
- IMiscPlugin: هر پلاگینی را که نتوانیم در دستههای بالا قرار دهیم، میتوانند از نوع IMiscPlugin باشند.