2013年12月15日 星期日

ECSHOP 自訂配送方式模組 (轉載自 WE-SHOP)



ECSHOP 自訂配送方式模組
« 於: 十二月 02, 2013, 11:38:07 上午 »
ECSHOP 的配送方式模組都包含一個語言檔和PHP 程式檔,語言檔和程式檔的檔案名稱必須一樣,而且是唯一的,不可與其他的配送模組重複,大部份情況下,你只須修改配送方式模組的標題和描述,即可成為自己的配送方式模組,但有的人想要製作真正屬於自己的模組,可以這麼做...

假設我想建立一個XX快遞的配送方式模組,檔案名稱為 my_shipping.php
1,languages/zh_tw/shipping 目錄內新增語言檔案,名稱為 my_shipping.php
基本的內容如下
代碼: [選擇]
<?php
$_LANG
['my_shipping']          = 'XX快遞';//配送方式模組名稱,顯示在前後台的配送方式$_LANG['my_shipping_desc']     = 'XX快遞配送方式的詳細描述';$_LANG['base_fee']      = '基本費用:';?>

2,includes/modules/shipping 目錄內新增程式檔案,名稱和語言檔相同 my_shipping.php
內容如下
代碼: [選擇]
<?php//載入語言檔$shipping_lang ROOT_PATH.'languages/' .$GLOBALS['_CFG']['lang']. '/shipping/my_shipping.php';
if (
file_exists($shipping_lang))
{
    global 
$_LANG;
    include_once(
$shipping_lang);
}    
//模組的基本設定if(isset($set_modules) && $set_modules == TRUE)
{
    
$i = (isset($modules)) ? count($modules) : 0;//模組的代碼必須與檔案同名
    
$modules[$i]['code']    = "my_shipping";
  
//模組的版本 
    
$modules[$i]['version'] = '1.0.0';//模組的描述,來自語言檔
    
$modules[$i]['desc']    = 'my_shipping_desc';//是否使用貨到付款,是=TRUE、否=FALSE
    
$modules[$i]['cod']     = TRUE;//模組的作者
    
$modules[$i]['author']  = "andy";//模組作者的網站
    
$modules[$i]['website'] = "http://www.we-shop.net";//配送接口需要的參數
    
$modules[$i]['configure'] = array(
                                        array(
'name' => 'base_fee',     'value'=>100),
                                );
    return;
}
//模組的類與檔案同名class my_shipping{
    var 
$configure;//構造函數,與類同名
    
function my_shipping($cfg=array())
    {
        foreach (
$cfg AS $key=>$val)
        {
            
$this->configure[$val['name']] = $val['value'];
        }
    }
//計算運費
    
function calculate()
    {
        
$cart cart_weight_price();        // 取得商品總重量以及總金額
        
if ($this->configure['free_money'] > && $cart['amount'] >= $this->configure['free_money'])
        {
            return 
0;//免運費
        
}        else        {
            return 
$this->configure['base_fee'];//基本運費
        
}
    }
//查詢出貨狀態,顯示在前台的出貨查詢
    
function query($invoice_sn)
    {
        
$form_str '出貨查詢的表單或連結,$invoice_sn代表出貨單號';
        return 
$form_str;
    }
};
?>
這樣就能建立一個基本的配送方式模組,基本模組只能計算一般運費,也就是不管買多少運費都一樣,適合小型商品,若是大型商品可能需要以重量或是件數計算,方式會比較複雜些...

沒有留言:

張貼留言