ایجاد یک روش ارسال سفارشی در اپن کارت : قسمت دوم

تاریخ : ۱۷ بهمن ۱۳۹۴ | دسته بندی : اپن کارت | برچسب ها : ,,

در این مجموعه آموزشی درباره اجرای یک ماژول روش ارسال سفارشی در اپن کارت بحث می کنیم . در قسمت اول ، روش ارسال سفارشی خود را با استفاده از فرم پیکربندی در back-end فعال و پیکربندی کردیم . امروز ،فایل هایی را که اپن کارت به آن ها نیاز دارد اجرا می کنیم ، طوری که می تواند روش ارسال سفارشی مان را شناسایی کرده و آن را به همراه سایر روش ارسال فعال شده در طول وارسی فهرست بندی کند .

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

نگاهی سریع بر نصب فایل در front-end

بیایید کارمان را با فهرستی از فایل های مورد نیاز در front-end شروع کنیم :

  • catalog/language/english/shipping/custom.php : این یک فایل زبانی است که برچسب ها را در آن تعریف می کنیم .
  • catalog/model/shipping/custom.php: این یک فایل مدل است ، که اهمیت زیادی دارد ، زیرا بیشتر منطق محاسبه ارسال به اینجا می رود .

بنابراین ، نصب front-end تا همین جا مربوط می شود .

نصب فایل

در اینجا از نصب فایل زبان شروع می کنیم .

ایجاد یک فایل زبان

یک فایل catalog/language/english/shipping/custom.php ایجاد کرده و محتوای زیر را در آن جایگذاری کنید :

فکر نمی کنم نیازی به توضیح دادن آن باشد ، پس ادامه می دهیم !

ایجاد یک فایل model

یک فایل catalog/model/shipping/custom.php ایجاد کرده و محتوای زیر را در آن جایگذاری کنید .

برطبق قراردادهای اپن کارت ، نام این کلاس باید ModelShippingCustom باشد و یک روش getQuote در آنجا وجود دارد که برای روش ارسال ضروری است تا اپن کارت بتواند آن را انتخاب کند .

باید به این نکته توجه کنید که آرگومان $address از روش getQuote عبور می کند ، که همان آدرس ارسال مشتری در طول وارسی است ، و با کمک آن می توانیم تصمیم بگیریم که آیا روش ارسال فعلی برای منطقه جغرافیایی مربوط به آن آدرس اجراشدنی است یا خیر . این تصمصم از طریق کد زیر گرفته می شود .

سپس ، اگر روش ارسال اجرا شدنی بود ، متغیرهای آرایه مورد نیاز را بر طبق قراردادها آماده می کنیم .

همان طور که می توانید ببینید ، ما از روش $this->config->get برای بارگذاری مقدارهای مربوط به متغیرهای پیکربندی مانند “custom_cost”،  “custom_tax_class_id” و “custom_sort_order” استفاده می کنیم . قسمت اول را که درآن این مقدارها را بااستفاده از فرم پیکربندی ، پیکربندی کردیم ، به یاد بیاورید .

نکته مهم دیگری که به آن هم باید توجه کنید ، کلید  text در آرایه  $quote_data است . آن مبلغ کلی که باید برای روش ارسال سفارشی مان پرداخت شود را محاسبه و فرمت بندی می کند . علاوه براین ، بررسی می کند که آیا مالیات اضافی باید به ” هزینه ” روش ارسال اضافه شود یا خیر . تنظیمات Tax Class را که در فرم پیکربندی خود آوردیم به یاد بیاورید که در آن Taxable Goods را انتخاب کردیم . بنابراین ، یک مالیات اضافی به مبلغ کلی روش ارسال اضافه می کند .

ما سعی کرده ایم قسمت model خود را ساده نگه داریم ، اما می توانید تمام محاسبه ها را در این فایل بر اساس APIهای روش ارسال خود (درصورت وجود) انجام دهید . بنابراین ، تا اینجا به قسمت model مربوط می شود .

پیش نمایش در front-end

در front-end چند محصول را به سبد خرید اضافه کنید و روند وارسی را شروع کنید . مرحله ۴ : روش ارسال ، در اینجا مانند آنچه در تصویر زیر نشان داده ایم ، باید بتوانید روش ارسال سفارشی مان را ببینید که فهرست بندی شده است .

 

Shipping Method Demo

 

روش ما با عنوان  “Custom Shipping Rate – $14.00” فهرست بندی شده است . شاید تعجب کنید که با اینکه پارامتر Cost را معادل ۱۰ تنظیم کرده ایم ، در فهرست ۱۴ را نمایش می دهد . همان طور که پیشتر گفتم ، ما Taxable Goods در فیلد Tax Class را در فرم پیکربندی در back-end پیکربندی کردیم .

به مسیر Localization > Taxes > Tax Classes بروید ، و Taxable Goods را ویرایش کنید و خواهید دید که برای این کلاس مالیاتی ۲۰% VAT و یک فلات ۲$ Eco Tax پیکربندی شده اند . بنابراین ، ۴$ بیشتر به هزینه روش ارسال اضافه می کند! البته ، اگر Tax Class را معادل None تنظیم کنید ، مالیاتی به آن افزوده نخواهد شد.

بسیار خوب ، برای امروز کافی است . اکنون یک ماژول روش ارسال سفارشی را به طور کامل در اپن کارت ایجاد کرده ایم !

حسن موحد

عاشق طراحی وب سایت هستم و 8 سال هست در این زمینه فعالیت می کنم و تمرکزم بر روی خرسند نگه داشتن مشتری است .

ارسال نظر