2014年1月9日 星期四

ECSHOP 購物清單 "郵政編號" 、" 支付方式 "及 "保價費用. 去除

要刪除Ecshop配送方式中的"保價費用" ,必需要到您的使用模版的目錄下修改flow.dwt
ecshop_send_money_01
1.如果要刪除圖中的紅色部分
ecshop_send_money_02
2.開啟flow.dwt尋找shippingTable將紅色的部分刪除
ecshop_send_money_03
3.再往下找到紅色框的部分刪除
ecshop_send_money_04
4.修改過的畫面

請問Andy站長 :

1.  "郵政編號" 文字如何改為 "郵遞區號" ?

2.購物清單中 配送方式" "保價費用" 及 " 支付方式 "中 手續費 ,如何隱藏不要出現在清單中?

   詳如圖

網址: http://u-mirror.com/ecs/index.php

ecshop商品屬性排序 (,轉載自WE-SHOP)



關於改ecshop商品屬性排序的問題,很多人認為是一個BUG,其實官方預設是以屬性ID由小到大排序的,如果你在新增商品時,按照你的排序方式來新增屬性當然不會有問題,但如果有新增就不會按照你的期望顯示了,因為他是按照屬性ID排序的,但大部份商品屬性都含有數字,排序起來會像圖一一樣,但正確的排序應該像圖二

由於每個人的需求不同,程式判斷結果不一定符合你的需求,網路上有許多修改方式,甚至是收費插件,姑且不論其效果如何,但只不過一個排序功能而已,有必要如此大動干戈?那整個購物車要改到滿意。豈不是面目全非,我要強調的是,每個程式都有其安全結構,當你在修改某些功能時,可能已經不知不覺破壞了程式的安全結構,因而產生安全漏洞,一個程式存在安全風險,縱使功能再好又如何?

言歸正傳,商品屬性的排序,多數情況是以數字大小排序(如:1、1.1、2、2.1.....),若是使用英文(如:)S、M、L、XL、XXL、XXXL....)就必須使用EC的預設排序方式,否則結果會不如預期,另外,如果屬性中有中文字,應該相同,以避免影響排序(如:5吋、1尺、2尺...應該寫成0.5尺、1尺、2尺...或是5吋、10吋、20吋...),這樣排序出來的結果會比較正確...

修改方法
編輯 includes/lib_goods.php        約 669 行將
代碼: [選擇]
'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id';改為
代碼: [選擇]
'ORDER BY a.sort_order, g.attr_price, CAST(g.attr_value AS UNSIGNED)';存檔!

ECSHOP 自訂支付方式(金流)模組) 轉載自 we-shop



ECSHOP 支付方式(金流)模組,其實並不複雜、反而是各家金流(銀行)的接口真是五花八門,想用的人還要請人撰寫模組,真是勞民傷財啊!所以我還是鼓勵用現成的模組,如綠界金流,他們負責整合多加刷卡銀行,並提供相對金流模組,而且模組的更新也很快,對於使用者可節省很多麻煩...

底下提供的作法只是一個參考,至少需要點PHP基礎,才能針對金流(銀行)的接口正確傳送資料,由於各家金流(銀行)都有一套自己的模式,沒有統一模式,因此應該多做測試...,支付方式(金流)模組一樣有個語言檔和PHP程式檔,語言檔和程式檔的檔案名稱必須一樣,而且是唯一的,不可與其他的支付模組重複...

假設我想建立一個XX銀行的支付方式模組,檔案名稱為 your_pay.php

1、在 languages/zh_tw/shipping 目錄內新增語言檔案,名稱為 your_pay.php
基本內容如下
代碼: [選擇]
<?phpglobal $_LANG;$_LANG['your_pay'] = 'XX 線上金流名稱';$_LANG['your_pay_desc'] = ' XX 線上金流描述';$_LANG['your_pay_account'] = '商店代號或帳號';$_LANG['your_pay_checkcode'] = 'XX 檢查碼或密碼';$_LANG['pay_button'] = '線上信用卡付款';/*
可以加上其他的語言,如:
$_LANG['your_pay_language'] = '付款界面語言';
$_LANG['your_pay_language_desc'] = '出現在付款界面的語言';
$_LANG['your_pay_language_range'][0] = '繁體中文';
$_LANG['your_pay_language_range'][1] = 'English';
*/
?>

2,在 includes/modules/shipping 目錄內新增程式檔案,名稱和語言檔相同 your_pay.php
參考內容如下
代碼: [選擇]
<?php//載入語言檔$payment_lang ROOT_PATH 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/your_pay.php';

if (
file_exists($payment_lang))
{
    global 
$_LANG;

    include_once(
$payment_lang);
}
//模組的基本設定if(isset($set_modules) && $set_modules == TRUE)
{
    
$i = (isset($modules)) ? count($modules) : 0;//模組的代碼必須與檔案同名
    
$modules[$i]['code']    = basename(__FILE__'.php');//模組的描述,來自語言檔
    
$modules[$i]['desc']    = 'your_pay_desc';
  
//模組的版本 
    
$modules[$i]['version'] = '1.0.0';//是否使用貨到付款,是=TRUE、否=FALSE
    
$modules[$i]['cod']     = TRUE;//模組的作者
    
$modules[$i]['author']  = "andy";//模組作者的網站
    
$modules[$i]['website'] = "http://www.we-shop.net";//配送接口需要的參數
    
$modules[$i]['configure'] = array(
        array(
'name' => 'your_pay_account',           'type' => 'text',   'value' => ''),//商店代號或帳號
        
array('name' => 'your_pay_checkcode',         'type' => 'text',   'value' => ''),//XX 檢查碼或密碼
/*外加選項
array('name' => 'your_pay_language',          'type' => 'select',    'value' => '0')// 付款界面語言
*/
    
);
    return;
}
//模組的類與檔案同名class your_pay{//傳送訂單資料
    
function get_code($order$payment)
    {
        
//導入轉碼檔案,如果需要
        //include_once(ROOT_PATH.'includes/iconv/cls_iconv.php');
        //$iconv = new Chinese(ROOT_PATH);
        
trim($payment['your_pay_account']); //商店代號或帳號
        
$order['order_sn'];//訂單編號
        
$order['log_id'];//訂單ID
        
trim($order['consignee']);        //收貨人
        
trim($order['address']);    //送貨地址
        
trim($order['tel']);    //電話
        
trim($order['mobile']);//手機
        
trim($order['zipcode']);//郵遞區號
        
trim($order['email']);//電子郵件
        
round($order['order_amount']);//訂單金額
        
date('Ymd',time());//目前日期
        
return_url(basename(__FILE__'.php'));//回傳頁面,本頁
        //$payment['your_pay_language'];// 付款界面語言

//通常會附帶傳送一組自訂的加密自串供回傳判斷
    
$mitycat_verify    md5('XXXXX');//按照接口要求,以表單傳送必要資料
        
$def_url  '<br /><form style="text-align:center;" method=get或post action="接口網址">';//使用隱藏欄位傳送資料
        
$def_url .= "<input type='hidden' name='XXX' value='".$XXX."'>";
        
$def_url .= "<input type='hidden' name='XXX' value='".$XXX."'>";
        
$def_url .= "<input type='hidden' name='XXX' value='".$XXX."'>";
        
$def_url .= "<input type='hidden' name='XXX' value='".$XXX."'>";
        
$def_url .= "<input type='hidden' name='XXX' value='".$XXX."'>";
        
$def_url .= "<input type='hidden' name='XXX' value='".$XXX."'>";//表單會顯示在結帳完成頁面
        
$def_url .= "<input type='submit' value='" $GLOBALS['_LANG']['pay_button'] . "'>";
        
$def_url .= "</form><br />";
        return 
$def_url;
    }
// 接收回傳資料
    
function respond()
    {
/*
在這裡可以對付款後回傳的資料進行處理,如接收
訂單編號
訂單金額
訂單產生日期
訂單號
交易成功
付款幣種
付款失敗原因       
加密後的字
......   
接收回參數之後,必須對其真實性進行驗証,然後變更收款狀態...

//PS_PAYING  代表已經付款
order_paid('訂單編號', PS_PAYED, '備註');
// PS_PAYED   代表還沒有付款
order_paid('訂單編號', PS_PAYING, '備註');
return true;
*/
    
}
   
}
?>

ECSHOP 最新台灣地區資料庫 (轉載自 WE-SHOP)

因為五都升格的關係,台灣地區資料也有些許變動,例如台北縣應改為新北市,其所屬鄉鎮應改為區...,這是一個安裝程式,包含最新台灣與中國地區資料庫,僅提供本站VIP會員使用,詳細的安裝方式如下:
 下載台灣、中國地區資料庫安裝程式檔案之後解壓縮,將 region 資料夾連同裡面檔案上傳至網站跟目錄
 在網址列輸入 http://你的首頁/region 即可進入安裝畫面
 ec-047.jpg
 程式包含五都改制後的地區料和中國地區的 資料,如果你的ecshop已經有銷售資料,建議使用「修改台灣地區資料庫」,才不至於影響原有紀錄。 
完成後請刪除 region 資料夾!

ECSHOP 自訂結帳頁面 (轉載自 we-shop)

當消費者結完帳之後, ecshop 會轉到一個完成頁面,列出訂單編號及付款資訊,這個時候你也許想要針對消費者的選擇,提供不同的資訊。
例如:你安裝了一個「ATM轉帳」的支付方式,你想提供一個按鈕,讓消費者在結完帳之後,可以利用此按扭轉到網路ATM頁面進行繳款,那麼可以這麼做:
登入PhpMyAdmin 進入 EC 資料庫找到 payment 資料表點擊瀏覽圖示:
ec-029.jpg
記下他的「pay_id」
ec-030.jpg
用文字編輯器打開模版目錄的 flow.dwt
代碼: [選擇]
<!-- =============================== -->
<!-- {if $order['pay_id']=='6'} 如果是ATM轉帳?示支付按?-->
<center><a href="http://tw.campaign.money.yahoo.com/atm/" target="_blank" title="ATM轉帳"><img src="images/atm.gif" border="0" alt="ATM轉帳"></a></center>
<!-- {/if} -->
<!-- =========================== -->
6 就是「pay_id」,結果如圖:
ec-031.jpg
最後將atm.gif放到模版目錄的 images 內。

例如:你安裝了一個「超商取貨」的配送方式,你想提供一個按鈕,讓消費者在結完帳之後,可以利用此按扭轉到門市代號頁面索取門市代號,那麼可以這麼做:
登入PhpMyAdmin 進入 EC 資料庫找到 shipping 資料表點擊瀏覽圖示:
ec-033.jpg
記下他的「shipping_id」
ec-032.jpg
用文字編輯器打開模版目錄的 flow.dwt 在適當的地方加上
代碼: [選擇]
<!-- =============================== -->
<!-- {if $order['shipping_id']=='42'} 如果超商取貨-->
<center><a href="http://map.ezship.com.tw/" target="_blank" title="超商取貨">獲取門市代號</a></center>
<!-- {/if} -->
<!-- =========================== -->
42 就是「shipping_id」,結果如圖:
ec-034.jpg

傳到這個頁面的smarty變數很多,以下列出所有關於訂單的變數:
代碼: [選擇]
$order[shipping_id] => 配送方式ID
$order[pay_id] => 支付方式ID
$order[pack_id] => 包裝方式ID
$order[card_id] => 賀卡ID
$order[card_message] => 賀卡訊息
$order[surplus] => 餘額
$order[integral] => 積分
$order[bonus_id] => 優惠券ID
$order[need_inv] => 需要發票
$order[inv_type] => 發票類型
$order[inv_payee] => 發票抬頭
$order[inv_content] => 發票內容
$order[postscript] => 訂單附言
$order[how_oos] => 缺貨處理
$order[need_insure] => 配送是否需要保價
$order[user_id] => 會員ID
$order[add_time] => 訂單時間
$order[order_status] => 訂單狀態
$order[shipping_status] => 配送狀態
$order[pay_status] => 付款狀態
$order[agency_id] => 辦事處ID
$order[extension_code] => 擴展選項碼
$order[extension_id] => 擴展選項ID
$order[address_id] => 收貨人的詳細地址ID
$order[consignee] => 收貨人姓名
$order[country] => 國家
$order[province] => 省份
$order[city] => 城市
$order[district] => 地區
$order[email] => 電子郵件地址
$order[address] => 詳細地址
$order[zipcode] => 郵政編碼
$order[tel] => 電話
$order[mobile] => 手機
$order[sign_building] => 標誌建築
$order[best_time] => 最佳送貨時間
$order[bonus] => 紅包
$order[goods_amount] => 訂單金額
$order[discount] => 折扣
$order[tax] => 發票稅額
$order[shipping_name] => 配送方式
$order[shipping_fee] => 費用
$order[insure_fee] => 免費額度
$order[pay_name] => 支付方式
$order[pay_fee] => 手續費
$order[cod_fee] => 配送費用
$order[pack_fee] => 包裝費用
$order[card_fee] => 賀卡費用
$order[order_amount] => 應付款金額
$order[integral_money] => 積分使用餘額
$order[from_ad] => 廣告來自網站
$order[referer] => 來源
$order[parent_id] => 相關商品ID
$order[order_sn] => 訂單號
$order[order_id] => 訂單ID
$order[log_id] => 充值ID
$order[pay_desc] => 支付描述
舉例來說,在模版頁面使用{$order}就會顯示訂貨人的電子郵件地址另外,關於金額方面的變數有
代碼: [選擇]
$total[real_goods_count] => 訂購商品數
$total[goods_price] => 購物金額小計
$total[market_price] => 市場價
$total[shipping_fee] => 運費
$total[saving] => 節省了
$total[save_rate] => 節省了 (%)
$total[amount] => 應付款金額
$total[will_get_integral] => 積分
以上是未格式化金額,也就是只有數字
$total[goods_price_formated] =>購物金額小計
$total[market_price_formated] =>市場價
$total[saving_formated] => 節省了
$total[shipping_fee_formated] => 運費
$total[amount_formated] =>應付款金額
$total[formated_goods_price] => 購物金額小計
$total[formated_market_price] => 原價購物金額小計
$total[formated_saving] => 節省
以上是已格式化金額,也就是包含貨幣單位,例如:NT3000.00元
$goods_list[x][goods_name] => 商品名稱
$goods_list[x][goods_sn] => 商品貨號
$goods_list[x][goods_number] => 商品數量
$goods_list[x][market_price] => 市場價
$goods_list[x][goods_price] => 本店售價
$goods_list[x][subtotal] => 積分
$goods_list[x][formated_market_price] => 格式化市場價
$goods_list[x][formated_goods_price] => 格式化本店售價
$goods_list[x][formated_subtotal] => 格式化小計
[x]是表示第幾個商品,第一個為0,第二個為1,依此類推...
可以用smarty的迴圈列出來
<!-- {foreach from=$goods_list item=goods} -->
{$goods.goods_id}
{$goods.goods_name}
{$goods.goods_thumb}
{$goods.goods_attr}<!-- 商品屬性 -->
{$goods.market_price}
{$goods.goods_price}
{$goods.goods_number}
{$goods.subtotal}
<!-- {/foreach} --> 

ECSHOP 自訂配送方式模組 (轉載自 we-shop)

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;
    }
};
?>
這樣就能建立一個基本的配送方式模組,基本模組只能計算一般運費,也就是不管買多少運費都一樣,適合小型商品,若是大型商品可能需要以重量或是件數計算,方式會比較複雜些...

2014年1月8日 星期三

Ecshop v2.7.3去除版權,ecshop最新去除版權方式

Ecshop v2.7.3去除版權

04十二月
Ecshop v2.7.3去除版權,ecshop最新去除版權方式資料來源:http://wenku.baidu.com/view/6eb5cd9fdd88d0d233d46a6f.html
Ecshop v2.7.3去除版權和2.7.2有些不一樣,下面方法適合v2.7.3
1、前臺標題去除“Powered by ECShop”:打開includes/lib_main.php,在156行$page_title = $GLOBALS['_CFG']['shop_title'] . ‘ – ‘ . ‘Powered by ECShop’;去除“. ‘ – ‘ . ‘Powered by ECShop’”即可。
2、去除友情連結:“ECSHOP 和 [免費申請網店]”,在後臺的友情連結管理裡修改即可。
3、去除“底部的Powered by Ecshop v 2.7.3”,打開 js/common.js,刪除第261行到353行:onload = function(),也是防止版權亂飛的去除方法。
onload = function()
{
var link_arr = document.getElementsByTagName(String.fromCharCode(65));
var link_str;
var link_text;
var regg, cc;
var rmd, rmd_s, rmd_e, link_eorr = 0;
var e = new Array(97, 98, 99,
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122
);
try
{
for(var i = 0; i < link_arr.length; i++)
{
link_str = link_arr[i].href;
if (link_str.indexOf(String.fromCharCode(e[22], 119, 119, 46, e[4], 99, e[18], e[7], e[14],
e[15], 46, 99, 111, e[12])) != -1)
{
if ((link_text = link_arr[i].innerText) == undefined)
{
throw “noIE";
}
regg = new RegExp(String.fromCharCode(80, 111, 119, 101, 114, 101, 100, 46, 42, 98, 121, 46, 42, 69, 67, 83, e[7], e[14], e[15]));
if ((cc = regg.exec(link_text)) != null)
{
if (link_arr[i].offsetHeight == 0)
{
break;
}
link_eorr = 1;
break;
}
}
else
{
link_eorr = link_eorr ? 0 : link_eorr;
continue;
}
}
} // IE
catch(exc)
{
for(var i = 0; i < link_arr.length; i++)
{
link_str = link_arr[i].href;
if (link_str.indexOf(String.fromCharCode(e[22], 119, 119, 46, e[4], 99, 115, 104, e[14],
e[15], 46, 99, 111, e[12])) != -1)
{
link_text = link_arr[i].textContent;
regg = new RegExp(String.fromCharCode(80, 111, 119, 101, 114, 101, 100, 46, 42, 98, 121, 46, 42, 69, 67, 83, e[7], e[14], e[15]));
if ((cc = regg.exec(link_text)) != null)
{
if (link_arr[i].offsetHeight == 0)
{
break;
}
link_eorr = 1;
break;
}
}
else
{
link_eorr = link_eorr ? 0 : link_eorr;
continue;
}
}
} // FF
try
{
rmd = Math.random();
rmd_s = Math.floor(rmd * 10);
if (link_eorr != 1)
{
rmd_e = i – rmd_s;
link_arr[rmd_e].href = String.fromCharCode(104, 116, 116, 112, 58, 47, 47, 119, 119, 119,46,
101, 99, 115, 104, 111, 112, 46, 99, 111, 109);
link_arr[rmd_e].innerHTML = String.fromCharCode(
80, 111, 119, 101, 114, 101, 100,38, 110, 98, 115, 112, 59, 98,
121,38, 110, 98, 115, 112, 59,60, 115, 116, 114, 111, 110, 103,
62, 60,115, 112, 97, 110, 32, 115, 116, 121,108,101, 61, 34, 99,
111, 108, 111, 114, 58, 32, 35, 51, 51, 54, 54, 70, 70, 34, 62,
69, 67, 83, 104, 111, 112, 60, 47, 115, 112, 97, 110, 62,60, 47,
115, 116, 114, 111, 110, 103, 62);
}
}
catch(ex)
{
}
}
最後打開範本資料夾的 library/page_footer.lbi
刪除 {foreach from=$lang.p_y item=pv}{$pv}{/foreach}{$licensed}即可。
後臺部分暫時不公佈,ecshop是一套比較好的商城源碼,注意尊重智慧財產權。