در حال بارگزاری ...

آموزش مقدماتی طراحی پلاگین ناپ کامرس (بر اساس ASP.NET MVC) – بخش 1

یکی از ویژگی های ناپ کامرس معماری ماژولار و چند لایه بودن آن است که اجازه می دهد قابلیت اضافی و عناصر نمایشی بصورت پویا در زمان اجرا به برنامه اضافه شود. معمماری ماژولار بودن ، ایجاد افزونه و مدیریت فروشگاه ساز ناپ کامرس را ساده می کند. حال ببیینم این کار چطور انجام می شود.

پلاگین در ناپ کامرس چیست ؟

افزونه ها برای توسعه قابلیت های ناپ کامرس استفاده می شوند.ناپ کامرس چندین نوع پلاگین (افزونه) دارد. برای مثال: روش های پرداخت (مانند بانک ملت ، سامان ، پاسرگاد ، پی پال) ، ارائه دهندگان مالیات ، روش های محاسبه هزینه ارسال (مانند ایران مارکت سنتر ، فروتل) ، ابزارک ها یا ویجیت ها (مانند جت آنلاین) و خیلی موارد دیگر. ناپ کامرس هم اکنون با انواع افزونه ها منتشر شده است. شما می توانید انواع افزونه ها را در سایت ناپ کامرس (nopShop.ir) جستجو کنید تا ببینید قبلا افزونه ای طراحی شده است که مورد نیاز شما باشد.

نام پیشنهادی برای پروژه پلاگین "Nop.Plugin.{Group}.{Name}" است. {Group} گروه پلاگین (برای مثال “Payment” ، "Shipping” ). است. {Name} نام پلاگین شماست (برای مثال "Mellat"). برای مثال درگاه پرداخت بانک ملت نامNop.Plugin.Payments.Mellat است. اما توجه داشته باشید که آن اجباری نیست و شما می توانید هر نامی برای پلاگین انتخاب کنید. برای مثال "MyBestPlugin".

 

ساختار پلاگین و فایلهای مورد نیاز

اولین کاری که شما باید انجام دهید این است که یک پروژه "Class Library" جدید در solution ایجاد کنید. بهترین کار این است که همه پلاگین ها را در پوشه \Plugins در فهرست ریشه قرار دهید. (با پوشه \Plugins در زیر پوشه in \Nop.Web که برای پلاگین های کامپایل شده استفاده می شود اشتباه نگیرید).

مراحل ایجاد پلاگین سفارشی جدید در ناپ کامرس

مرحله 1) پروژه ناپ کامرس را در ویژوال استادیو باز کنید (به یاد داشته باشید که به سورس کد کامل نیاز دارید)

nopcommerce Plugin Developement

مرحله 2) راست کلیک روی پوشه Plugins -->گزینه Add -->گزینه New Project

مرحله 3) در پنجره افزودن پروژه جدید گزینه .NET Framework 4.5.1 را انتخاب کنید.

  • انتخاب Visual C#
  • انتخاب Class Library

مرحله 4) نام پلاگین را وارد کنید و محل آنرا بصورت زیر تعیین کنید:

در این مورد نام پلاگین را بصورت رویرو وارد کنید: Nop.Plugin.Misc.MyCustomPlugin 

محل: روی دکمه “Browse” کلیک کنید و پوشه Plugins را انتخاب کنید. این پوشه حاوی سورس کد همه پلاگین ها است (پوشه داخل Nop.Web که حاوی فایل های dll کامپایل شده است اشتباه نگیرید.)

مرحله 5) شما باید پروژه پلاگین سفارشی خود را مانند شکل زیر در پنجره solution explorer ببینید:

مرحله 6) reference ها را وارد کنید. راست کلیک روی References -->Add Reference…

همه reference ها را وارد کنید (مانند شکل زیر). در صورتی که reference های مورد نیاز را پیدا نکردید ، به سایر پلاگین ها که آنها را دارند نگاه کنید و رفرنس ها را از آنجا بدست آورید.

مرحله 7) پلاگین سفارشی خود را در ساختار مناسب پیکربندی کنید.

توضیحات: مرحله بعدی ایجاد فایل Description.txt است که برای هر پلاگینی مورد نیاز است. این فایل شامل اطلاعات و شرح پلاگین شما است. این فایل را از سایر پلاگین ها کپی کنید و آنرا بر اساس نیاز خود تغییر دهید.

Group: Misc

FriendlyName: MyCustomPlugin

SystemName: MyCustomPlugin

Version: 1.00

SupportedVersions: 3.70

Author: Lavish Kumar

DisplayOrder: 1

FileName: Nop.Plugin.Misc.MyCustomPlugin.dll

Web.config : یک فایل web.config ایجاد کنید و مطمئن شوید که بصورت copied to output تنظیم شده است. این فایل را از سایر پلاگین های موجود کپی کنید.

مرحله 8) یک کلاس به نام MyCustomPlugin.cs ایجاد کنید و کدهای زیر را در آن وارد کنید:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Routing;
using Nop.Core.Plugins;
using Nop.Services.Common;
namespace Nop.Plugin.Misc.MyCustomPlugin
{
    public class MyCustomPlugin: BasePlugin, IMiscPlugin
    {
        /// <summary>
        /// Gets a route for provider configuration
        /// </summary>
        /// <param name="actionName">Action name</param>
        /// <param name="controllerName">Controller name</param>
        /// <param name="routeValues">Route values</param>
        public void GetConfigurationRoute(out string actionName, out string controllerName, out RouteValueDictionary routeValues)
        {
            actionName = "Configure";
            controllerName = "MyCustomPlugin";
            routeValues = new RouteValueDictionary { { "Namespaces", "Nop.Plugin.Misc.MyCustomPlugin.Controllers" }, { "area", null } };
        }
    }
}

مرحله 9) کلاس MyCustomPluginController.cs را در پوشه Controllers در داخل پلاگین ایجاد کنید و کدهای زیر را در آن وارد کنید:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
using Nop.Web.Framework.Controllers;
namespace Nop.Plugin.Misc.MyCustomPlugin.Controllers
{
    [AdminAuthorize]
    public class MyCustomPluginController : BasePluginController
    {
        public ActionResult Configure()
        {
            return View("/Plugins/Misc.MyCustomPlugin/Views/MyCustomPlugin/Configure.cshtml");
        }
    }
}

مرحله 10) Configure.cshtml (View) را داخل پوشه Views اضافه کنید. در این مورد یک view خالی ایجاد می کنیم.

نکته: مطمئن شوید خصوصیتoutput directory در فایلConfigure.cshtml مقدار “Copy if newer” تنظیم شده است.

مرحله 11) روی پروژه "Nop.Plugin.Misc.MyCustomPlugin" راست کلیک کنید و گزینه "Properties"  را انتخاب کنید.

مطمئن شوید نام اسمبلی و اسمبلی پیش فرض بصورت زیر باشد (همراه با .NET Framework) :

به زبانه "Build" در سمت چپ پنجره properties بروید:

به سمت پایین روی "Output" پیمایش کنید و مطمئن شوید که مسیر بصورت زیر است:

مانند:

..\..\Presentation\Nop.Web\Plugins\Misc.MyCustomPlugin\ 

مرحله 12) مطمئن شوید که همه چیز ذخیره شده و ساختار آن شبیه زیر است :

مرحله 13) روی پروژه پلاگین سفارشی خود راست کلیک کنید و گزینه “Build” را انتخاب کنید.

مرحله 14) بعد از re-building کردن پروژه ، کل solution را اجرا کنید و به بخش مدیریت بروید و روی "خالی کردن کش" کلیک کنید.

مرحله 15) به بخش افزونه ها بروید و روی دکمه "بارگزاری لیست افزونه ها" کلیک کنید:

مرحله 16) اگر به سمت پایین پیمایش کنید ، باید بتوانید پلاگین سفارشی جدید خود را در لیست افزونه ها ببینید. روی دکمه نصب در پلاگین سفارشی خود کلیک کنید.

مرحله 17) روی دکمه پیکربندی پلاگین سفارشی خود کلیک کنید:

اگر همه چیز به درستی و بدون مساله کار کند، شما باید بتوانید صفحه زیر را ببینید:

نظر خود را وارد نمایید.
نظرات
23/09/1395 07:59 ق.ظ
سلام مهندس،خیلی خوب بود
23/09/1395 08:02 ق.ظ
سلام وحدت عزیز،
برای شروع عالی بود.
ادامه بده و آموزش یه پلاگین ساده یا کاربردی رو بزار.
مثلا آمار ویزیتور های در طول هفته ماه فصل سال
موفق باشی
13/08/1396 07:20 ب.ظ
سلام و خدا قوت
بعد از ایجاد کلاس  MyCustomPlugin
این کلاس از اینترفیس IMiscPlugin ارث بری می کند این ربطی به اسم گروه پلاگین دارد؟؟؟؟ این اینترفیس کجا نوشته شده و چه کاریمی کند
آیا برای ایجاد هر پلاگینی باید از IMiscPlugin  ارث بری کرد؟؟؟
بیشتر
بیشتر
0 سبد
جستجو
دسته ها
تماس
دسته بندی ها