Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Magento
Code

創建自訂Magento的運送方式

by
Difficulty:IntermediateLength:ShortLanguages:

Chinese (Traditional) (中文(繁體)) translation by Clare Beo (you can also view the original English article)

引言

雖然 Magento 為所有主流的運送運營商提供運送庫,您可能需要將您首選的運送運營商附加到付款處。 有時您可能需要執行您自己的自訂邏輯,在這種情況下,您需要按照您的要求創建一個完整的自訂運送方式。

無論是什麼情況下,在 Magento 中創建一個自訂的運送方式組件是很容易的。 您只需要創建相應的配置文件和模型檔來實現您自訂的運送邏輯。 在這篇文章裡,我們會把這付諸實施通過創建一個名為"Customshippingmethod"的簡單的自訂模組。

我假設您已熟悉 Magento 裡的基本模組創建過程。 否則,您可以閱讀這篇文章關於基本自訂模組創建的解釋。

安裝程式過程

我們將創建一個名為"Customshippingmethod"的簡單自訂模組。 這清單裡是所需的安裝程式所要求的檔。

  • app/etc/modules/Envato_All.xml: 它是一個用來讓我們自訂模組的檔。
  • app/code/local/Envato/Customshippingmethod/etc/config.xml: 它是模組設定檔,在其中我們會宣示我們自訂的送貨方式使用按照 Magento 公約的某些標記。
  • app/code/local/Envato/Customshippingmethod/etc/system.xml: 它是一個用於後端配置為我們自訂送貨方式的檔。
  • app/code/local/Envato/Customshippingmethod/Model/Demo.php: 它是用於計算比率的模型檔。
  • app/code/local/Envato/Customshippingmethod/Helper/Data.php: 它是用於 Magento 翻譯系統的説明檔。

創建檔和資料夾: 自訂模組

首先,我們需要創建一個模組啟用檔。 創建一個"app/etc/modules/Envato_All.xml"檔並在該檔中粘貼以下內容。 我們已經使用"Envato"作為模組的命名空間和"Customshippingmethod"作為模組的名稱。 它會默認啟用我們的“Customshippingmethod”組件。

接下來,我們需要創建一個模組設定檔。 創建"app/code/local/Envato/Customshippingmethod/etc/config.xml",並將以下內容粘貼在該檔中。

在"config.xml"擋 裡,首先我們已經宣示的通常模式和助手在於 <global>條裡。 重要標記是 <carriers>,在<default>標記下宣佈。 它告訴 Magento 我們想要附加以下 <envato_customshippingmethod> 標記聲明的配置是一種新的運送方式。 <envato_customshippingmethod> 標記應該是唯一的所以它與其他運送的方式並不會有衝突。

其他重要的標記是 <sallowspecific><model>。 <sallowspecific>標記代表"運送到相關的國家"。 它允許您選擇我們自訂的運送方式具體相關的國家。 而<model>標記定義為我們自訂的運送方式的"模型"檔的位置。

接下來,我們將創建"system.xml" 檔提供我們自訂的運送方式的後端配置。 創建包含以下內容的"app/code/local/Envato/Customshippingmethod/etc/system.xml"。

它將與下中後端的 <fields>標記中定義的欄位創建配置表單。 我們之後才回來這。

讓我們創建一個模型檔"app/code/local/Envato/Customshippingmethod/Model/Demo.php"包含以下內容。

讓我們理解這更多一點的細節。 我們已經設置了 $_code 屬性為"envato_customshippingmethod"並早在"config.xml"檔裡 宣示。 "GetAllowedMethods"方法只是返回陣列中您想要在前端結帳時顯示的運送方式。 在本安例中,我們只宣佈單一運送方式為我們的載體,所以我們會返回該方式。

此外,"collectRates"調用的 Magento 收集率為不同的運輸方式。 所以我們已經按照公約 的 Magento 實現這。 我們的重要方式是"_getDefaultRate",在其中我們已經定義的邏輯來計算的收益率為我們的運送方式。 雖然我們只用在"config.xml"中聲明的靜態價格為簡單起見,您可以根據您的要求繼續計算價格。

最後,讓我們定義 helper 檔在"app/code/local/Envato/Customshippingmethod/Helper/Data.php"將使用的 Magento 翻譯系統。

我們已經完成了所有繁重的工作,讓我們來看看怎麼樣! 回到Magento 的後端,啟用我們自訂的模組,並清除所有緩存。 轉到System > Configuration > Sales > Shipping Methods。 您應該看到我們自訂的運送方式列出標題 Envato Demo 運送方式,如下面的螢幕擷取畫面中所示。

Back-End Configuration

現在,讓我們看看在前端的結帳過程。

Front-End Preview

正如您所看到的我們的運送方式被列出到其他運送的方式了! 雖然它是一個非常簡單的示例模組,以演示如何實現自訂的運送方式,您可以根據您的要求設置更複雜的東西。

結論

今天,我們學習了如何在 Magento 使自訂的運送方式模組。 我敢肯定您已經豐富您在某種程度上 Magento 的知識。 到下列發表您的回饋給我們吧!

关注我们的公众号
Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.