تغییرات در نسخه 4 ناپ کامرس

فروشگاه ساز ناپ کامرس نسخه 4.0 بالاخره منتشر شد. بسیاری از برنامه نویسان و همچنین صاحبان فروشگاه اینترنتی منتظر انتشار ناپ کامرس 4 بودند. این نسخه 4.0 در تاریخ 18 آبان 1396 منتشر شد.

 

تغییرات ناپ کامرس 4.0

این بار تلاش ها در ناپ کامرس نسخه 4.0  بر انتقال فروشگاه nopCommerce  به ASP.NET Core 2.0  ، بهبود عملکرد و معماری، افزایش کارایی و رفع اشکالات آن متمرکز بوده است. مطالبی که در ادامه می خوانید، شامل تمام تغییرات ناشی از انتقال به  ASP.NET Core نیست؛ زیرا تعداد تغییرات واقعا زیاد است !!!

راهنمای توسعه جداگانه ای برای توسعه دهندگان در مورد چگونگی مهاجرت (انتقال) پروژه ها و پلاگین های موجود به این نسخه وجود دارد که می توانید آن را اینجا بیابید.

نکات مهم:

مهاجرت بهASP.NET Core 2.0 :

 توجه داشته باشید که هدف فعلا مهاجرت به.NET Framework 4.6.1  است؛ نه.NET Core . زمانی از .NET Core استفاده خواهیم کرد که تیم EF Core پشتیبانی از تمامی قابلیت های ORM  ورژن کلاسیکEF   را آغاز کند. مانندبارگذاری با تاخیر (lazy loading)و غیره (این کار در 6 ماه اول 2018 انجام خواهد شد).

در این نسخه پیشرفت های قابل توجهی در عملکرد ناپ کامرس به وجود آمده است. چرا که علاوه بر مهاجرت به ASP.NET Core ، تغییرات زیاد دیگری نیز برای افزایش کارایی انجام شده است.

بهبودها

  • از این پس صاحبان فروشگاه ها به جای قرار دادن پلاگین ها در مسیر "\ Plugins" (با استفاده از FTP و بصورت دستی)، می توانند به راحتی آن ها را آپلود نموده و نصب کنند. همچنین می توان پلاگین های نصب شده را در قسمت admin حذف نمود.
  • UI و  UXبخش مدیریت بهبود یافته است.
  • "SSL" برای تمام صفحات سایت به صورت پیش فرض فعال شده است. بعد از اینکه قوانین سخت گیرانه کوکی ها به اجرا درآید، دیگر امکان استفاده از کوکی های "امن" را روی پروتکل های ناامن (مانند HTTP) در مرورگرهای فایرفاکس و کروم وجود ندارد.
  • (https://www.chromestatus.com/feature/4506322921848832)
  • کلیه بخش های "سبد خرید" هنگام با هر تغییری بصورت پویا بروز رسانی می شوند.
  • می توانید با پلاگین Google analytics علاوه بر سفارشات ثبت شده، سفارشات پرداخت شده را نیز پردازش کنید.
  • گزینه "شرایط استفاده را قبول کنید" برای فروشندگان افزوده شده است.
  • با استفاده از الگوریتم هش کردن (SHA1)، از رمز عبور امن تری استفاده کنید.
  • در تنظیمات بخش مشتریان "ذخیره آدرس IP" افزوده شده است. در صورت فعال بودن، آدرس IP  مشتریان ذخیره می شود. البته در برخی کشورها (به عنوان مثال، در حال حاضر، در آلمان) ذخیره آدرس های IP ممنوع است (زیرا از اطلاعات خصوصی مشتریان است).
  •  B2B. به صاحب فروشگاه اجازه می دهد تا بر اساس نقش مشتری، نوع نمایش مالیات (معاف از/ مشمول مالیات) را کنترل کند.
  • تنظیماتی برای تعیین اینکه لینک های "شرایط استفاده از سرویس" یا "دسترسی به سیاست حفظ حریم خصوصی" باید در پنجره popup باز شوند یا در یک صفحه جدید، اضافه شده است. اگر "شرایط و ضوابط سرویس" در یک صفحه بزرگ باز شود، می تواند مفید باشد.
  • تنظیماتی برای اینکه نقشه سایت شامل تگ های محصولات باشد، افزوده شده است.
  • می توان برای محصولات مرتبط تعیین کرد که آیا حمل و نقل مورد نیاز است یا خیر.
  • می توان برای محصولات مرتبط هزینه اضافی حمل و نقل را در نظر گرفت.
  • محصولات مشخص شده با عنوان "حمل و نقل رایگان" در پلاگین های حمل و نقل بصورت منظم بررسی می شوند.
  • هنگام نمایش برچسب "حمل و نقل رایگان" در صفحه جزئیات محصول، محصولات مرتبط در نظر گرفته می شوند.
  • پلاگین های زیر به فروشگاه منتقل شدند –  پست استرالیا (Australia Post)، پست کانادا (Canada Post)، USPS، سرویس خرید گوگل (Google Shopping)، PurchaseOrder، "مشتری یکی از این محصولات را در سبد خریدش دارد"
  • پلاگین های پرداخت Worldpay و Square اضافه شده اند.

بخش مدیریت:

  • هنگام تغییر مقادیر قابل تنظیم، می توانید زبان مورد نظر خود را انتخاب کنید.
  • گزینه ی جدیدی اضافه شده است که به مدیران اجازه می دهد (در حالت جعل هویت) محصولاتی که با عنوان "برای قیمت تماس بگیرید" مشخص شده اند را بخرند. این به صاحب فروشگاه اجازه می دهد که خرید را از طریق تلفن یا چت امن انجام دهد.
  • هنگام وارد/صادر کردن محصولات، نام هر دسته شامل نام همه دسته های والد خود می باشد.
  • می توان دسته ها را بر اساس نام وارد کرد.
  • تنظیمات reCAPTCHA در هر فروشگاه قابل لغو است.
  • از این پس می توان تاریخ انقضا کارت اعتباری را در پلاگین های پرداخت تأیید کرد.
  • تنظیمی افزوده شده است که تعیین می کند آیا از  URLهای استاندارد با پارامتر های رشته پرس و جو استفاده شود یا خیر.
  • ثبت گزارش اینکه "گزارش وقایع حذف شده است" اضافه شده است.
  • گزینه "نمایش سفارش" به محل تحویل افزوده شده است.
  • در حال حاضر تعیین کشور برای تخمین حمل و نقل مورد نیاز است.
  • تنظیمی برای اجازه دادن به مشتریان برای حذف اتصالات احراز هویت خارجی شان افزوده شده است.
  • صفحه جزئیات محصول: در حال حاضر ویژگی های محصول در یک صفحه جداگانه مدیریت می شوند (قبلا آنها را در همان صفحه محصول اضافه/ویرایش می کردیم).
  • صفحه جزئیات محصول: نمایش گزینه "قابل مشاهده به صورت جداگانه" در صورتی فعال است که نوع محصول "ساده" باشد.
  • از محلی سازی فیلد "متن سریع" در قسمت ویژگی های محصول پشتیبانی می شود.
  • ثبت وقایع، باید نشانی اینترنتی را "همانطور که هست" ذخیره کند (حروف انگلیسی را کوچک نکند).
  • تنظیم "adminareasettings.usericheditorinmessagetemplates" بهبخش کاربری منتقل شده است.
  • هنگام حذف یک تخفیف، تنظیمات مختص به آن را حذف می شود.
  • هنگام حذف پلاگین، تنظیمات مختص به آن را حذف می شود.
  • در پلاگین UPS پشتیبانی از نرخ قابل مذاکره اضافه شده است.
  • دکمه "پیکربندی" در صفحه ویجت ها بصورت اصولی طراحی شده است.
  • از حالا همه نامهای کوکی بصورت اصولی و با ".Nop" شروع می شوند.
  • تنظیم "ExternalAuthenticationSettings.AutoRegisterEnabled" حذف شده است.

عملکرد

  • فایل های جاوا اسکریپت و اسکریپت های درون خطی به فوتر منتقل شده اند.
  • وظایف برنامه ریزی برای اجرا با استفاده از درخواست  HTTP بازنویسی شده اند (نه در پس زمینه).
  • پاسخ ها فشرده سازی شده اند.
  • در حال حاضر بسته های تولید شده و فایل های minified در سیستم فایل ذخیره می شوند.
  • شاخص های SQL Server بیشتر شده اند.
  • فروش های متقابل سریعتر بارگیری می شوند.
  • ارزها و زبانهای بین درخواست ها در Cache ذخیره می شوند (نیازی نیست آنها را برای هر درخواست HTTP بارگیری کنید).
  • پشتیبانی سریع تر از BLOBAzure (caching) افزوده شده است.
  • روش های async بیشتری اضافه شده است.
  • مکانهای پیاده سازی شده به دو گروه تقسیم شده اند.

توسعه دهندگان:

  •  رویدادهای ModelReceived و ModelPrepared اضافه شده اند (برای قسمت های مدل).
  • قسمت های بیشتری برای ویجت در نظر گرفته شده است.
  • پیاده سازی جدیدی از روش RestartAppDomain انجام شده است.
  • URL ها نباید در MessageTokenProvider بصورت هارد کد نوشته شوند.
  • فایل Taxonomy.txt باید در پلاگین خرید گوگل جاسازی شود (که ناشی از تغییرات اخیر در فایل های پلاگین است).
  • فایل 'Description.txt' با 'plugin.json' برای پلاگین ها و فایل ''theme.config با 'theme.json'  برای تم ها جایگزین شده اند. پلاگین های نصب شده (InstalledPlugins) و تنظیمات هم اکنون در JSON قرار دارند.
  • بسیاری از کدهای منبع دیگر نیز مجدد اصلاح شده و بهبود یافته اند. 

رفع اشکالات

  • اگر SSL فعال باشد، پلاگین خرید Google هنگام تولید URL های محصول و عکس، باید از HTTPS استفاده کند.
  • خطاهای محلی سازی رفع شده اند.
  • در صورت فعال بودن امتیاز/پاداش، پرداخت در СompactSQL Server کار نمی کرد.
  • در تاریخچه استفاده از تخفیف، سفارشات حذف شده نادیده گرفته می شوند.
  • مشکل بروزرسانی مشخصات در سطح محصول، در صورتی که مقدار گزینه یک عدد یا int باشد، رفع شده است.
  • مشکل لینک فروشگاه در صفحات RSS زمانی که سایت فقط SSL است، برطرف شده است.
  • هنگام اضافه کردن یک محصول به سفارش در ناحیه مدیریت، وزن در نظر گرفته نمی شد.
  • اگر هر دو تنظیم 'غیرفعال کردن مرحله "آدرس صورت حساب"' و "ارسال به همان آدرس" فعال بودند، مشتری قادر به انتخاب یک آدرس در زمان فرآیند بررسی نبود.
  • ویژگی های پرداخت: امکان تنظیم ورودی "رنگ RGB"پس از تغییر نوع ویژگی به "مربع های رنگ" وجود ندارد.
  • صفحه جزئیات محصول در بخش مدیریت: بخش ورودی طبقه بندی دسته ها، کلیه دسته ها را جستجو نمی کرد (انتخاب کننده چندگانه kendoui).
  • مطالب محافظت شده با گذرواژه باید از ID منحصر به فرد برای یک ورودی مخفی شده استفاده کنند.
  • ویژگی های پرداختی انتخاب شده پس از ورود مشتری به سیستم (Login) از بین می رفتند و مجددا باید انتخاب می شدند.
  • اشکالات وارد کردن تصاویر دسته بندی/تولید کننده ها برطرف گردیده است.
  • مشکل گرد کردن رفع شده است.
  • اگر ReturnRequestsEnabled = true و ReturnRequestsAllowFiles = False باشد از آپلود فایل ها جلوگیری خواهد شد.
  • حل مشکلی در رابطه با حمل و نقل رایگان: اگر یک مورد که نیاز به حمل و نقل نداشت و همچنین یک محصول با حمل و نقل رایگان در سبد خرید خود داشتید، هزینه حمل و نقل همچنان برایتان منظور می شد.
  • مشکل کلید Cache نادرست در روش GetProductSpecificationAttributes رفع گردید.
  • مشکل نمایش تنها 10 نقطه اول تحویل بر روی نقشه حل شد.
  • ویژگی های محصول به همان شیوه اصلاح شد.
  • قالب بندی CSS برایوبلاگ پیشرفتهدر حالت کامل، اصلاح شد.
  • جلوگیری از استفاده از نام seo نیز مشابه کد زبان است.
  • یک نام کلاس HTML از قلم افتاده بود که اکنون به صفحه "بررسی محصولات مشتری" اضافه شده است.