Unlimited Plugins, WordPress themes, 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 的知識。 到下列發表您的回饋給我們吧!

Envato qr branded
关注我们的公众号
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.