1. ecshop訂單列表怎麼顯示支付方式
當用戶在前台購物過程中點擊結算中心後,會進入購物流程中,如圖 1 所示:
圖1中紅色框的位置配送方式和支付方式顯示是空的。如果不選擇這些,那麼將無法購物。這里的顯示與否是與後台的設置有關的。
2. 如何開發ecshop支付插件
目標一:搞懂ecshop的支付流程
選完商品,進入購物車頁面,點擊「結算中心」,頁面跳轉到flow.php?step=checkout,這個是訂單確認操作。
在訂單確認頁面確定了支付方式,配送方式等可選擇的信息之後,點擊「提交訂單」按鈕,提交表單到flow.php?step=done生成訂單。
flow.php?step=done這個操作中,跟支付有關的操作是生成支付代碼。如下所示:
/* 取得支付信息,生成支付代碼,在線支付代碼*/
if ($order['order_amount'] > 0)
{
$payment = payment_info($order['pay_id']);
//print_r($payment);exit;
include_once('includes/moles/payment/' . $payment['pay_code'] . '.php');
$pay_obj = new $payment['pay_code'];
$pay_online=$pay_obj->get_code($order,unserialize_config($payment['pay_config']));
//print_r(unserialize_config($payment['pay_config']));exit;
$order['pay_desc'] = $payment['pay_desc'];
$smarty->assign('pay_online', $pay_online);
}
通過支付方式的id通過函數payment_info()獲取到支付方式的信息,在通過支付方式的pay_code包含對應的支付模塊。
Ecshop把每一種支付方式都封裝成一個類,比如支付寶支付方式,對應的文件是
includes\moles\payment\alipay.php,這個文件裡面封裝了類是alipay,這個類有兩個方法,一個是生成支付代碼的get_code(),根據不同支付介面所需的參數進行配置,然後生成一個字元串,這個字元串就是支付代碼;另外一個是響應操作respond()。其中,接收響應的頁面都是通過return_url(basename(__FILE__, '.php'))函數指定的,生成的鏈接是respond.php?code=,其中code後面的參數就是根據不同的支付方式而不同。Respond.php則根據不同的第三方支付返回的信息進行處理。
目標二:開發支付插件(為了便於講解,再次開發ecshop自帶的支付寶介面alipay,我們改名為alipay_test)
搞清楚支付的基本流程,嘗試開發支付插件。假如要開發一個alipay_test.php插件。
首先,在語言包裡面languages\zh_cn\payment新建一個alipay_test.php文件(這里復制alipay.php),然後修改裡面的$LANG的下標,都加上_test,$_LANG['pay_button']可以不修改;
然後,在支付模塊includes\moles\payment裡面新建一個alipay_test.php,修改模塊的基本信息跟語言包,封裝一個類alipay_test,並且實現兩個方法get_code()和respond();
最後登錄後台查看支付方式。
3. ecshop購物車結算問題
ecshop的購物車使用是相當的不方便.ecshop購物車一旦加入了商品,就必須點更新數量的按扭才能夠更新.這樣對ecshop使用者相當的不方便。我們將結合ecshop ajax的思路。來講講用ecshop的ajax無刷新更新購物車.
1:首先要包含js/shopping_flow.js 該文件主要是針對ecshop購買流程式控制制的js.我們將增加以下函數.
function submit_update_cart(rec_id){
var goods_number = document.getElementById("goods_number_"+rec_id).value;
Ajax.call('flow.php?step=ajax_update_cart', 'goods_number=' + goods_number+'&rec_id='+rec_id, submit_update_cartResponse_cart, 'GET', 'JSON');
}
2:在flow.dwt中。我們要修改input輸入框.<input type="text" name="goods_number[{$goods.rec_id}]" id="goods_number_{$goods.rec_id}"
3:在ecshop的購物車函數中。什麼json來結合ecshop ajax處理更新結果.部分程序如下
include_once('includes/cls_json.php');
$result = array('error' => '', 'content' => '', 'fanliy_number' => '0', 'rec_id' => '');
$json = new JSON();
/* AJAX修改購物車 */
$rec_id = $_REQUEST['rec_id']; //購物車ID
$goods_number = $_REQUEST['goods_number'];//
/* 判斷庫存 */
$num = $db -> getOne("select g.goods_number from ".$ecs->table('goods')." g ,".$ecs->table('cart')." c where c.rec_id = '$rec_id' and g.goods_id = c.goods_id ");
if($goods_number > $num){
$goods_number = $num;
$result['error'] = 1;
$result['fanliy_number']= $num;
$result['rec_id'] = $rec_id;
$result['content'] = '該商品庫存不足'.$goods_number." 件,只有".$num."件";
die($json->encode($result));
}
/* 修改商品購物車 */
$sql = "update ".$ecs->table('cart')." set goods_number = '".$goods_number."' where rec_id = '".$rec_id."' and session_id = '" . SESS_ID . "' ";
$db -> query($sql);
4:通過flow.php中的php.返回更新數量後的結果.
function submit_update_cartResponse_cart(result){
if(result.error == '1'){
document.getElementById("goods_number_"+result.rec_id).value = result.fanliy_number;
alert(result.content)
}else{
var layer = document.getElementById("xianshi_price");
layer.innerHTML = (typeof result == "object") ? result.content : result;
}
}
通過以上ecshop二次開發例子,我們完成了ecshop購物車無刷新更新。
詳情地址:http://www.shopex5.com/ecshop/1633.html
4. 如何變更ECSHOP系統紅包序列號規則
1、修改ecs_user_bonus表中bonus_sn欄位的數據類型
ECSHOP 2.7.2中該欄位類型為bigint,我們需要修改為varchar。
2、修改js/user.js文件中對紅包序列號驗證的部分
在文件的672行左右,找到
var reg = /^[0-9]{10}$/;
修改為:
var reg = /^[0-9a-zA-Z]{10}$/;
3、修改admin/bonus.php 文件中紅包序列號生成規則
在文件的569行左右,注釋掉如下兩行:
/* 生成紅包序列號 */
//$num = $db->getOne(「SELECT MAX(bonus_sn) FROM 「. $ecs->table(『user_bonus』));
//$num = $num ? floor($num / 10000) : 100000;
修改for循環中序列號的生成規則如下:
for ($i = 0, $j = 0; $i < $bonus_sum; $i++)
{
//$bonus_sn = ($num + $i) . str_pad(mt_rand(0, 9999), 4, 』0′, STR_PAD_LEFT);
$bonus_sn = get_unique_id(10);
$db->query(「INSERT INTO 「.$ecs->table(『user_bonus』).」 (bonus_type_id, bonus_sn) VALUES(
『$bonus_typeid』, 『$bonus_sn』)」);
$j++;
}
增加生成隨機字元加數字的函數:
function get_unique_id($length=32, $pool=」")
{
if($pool == 「」) $pool .= 「
」;
mt_srand ((double) microtime() * 1000000);
$unique_id = 「」;
for ($index = 0; $index < $length; $index++) {
$unique_id .= substr($pool, (mt_rand()%(strlen($pool))), 1);
}
return $unique_id;
}
4、修改user.php中添加紅包的驗證部分
在文件的768行 左右:
/* 添加一個紅包 */
elseif ($action == 『act_add_bonus』)
{
include_once(ROOT_PATH . 『includes/lib_transaction.php』);
//$bouns_sn = isset($_POST['bonus_sn']) ? intval($_POST['bonus_sn']) : 」;
$bouns_sn = isset($_POST['bonus_sn']) ? trim($_POST['bonus_sn']) : 」;
if (add_bonus($user_id, $bouns_sn))
{
show_message($_LANG['add_bonus_sucess'], $_LANG['back_up_page'], 『user.php?act=bonus』,
『info』);
}
else
{
$err->show($_LANG['back_up_page'], 『user.php?act=bonus』);
}
}
將原來的
$bouns_sn = isset($_POST['bonus_sn']) ? intval($_POST['bonus_sn']) : 」;
修改為:
$bouns_sn = isset($_POST['bonus_sn']) ? trim($_POST['bonus_sn']) : 」;
5、修改購物流程中結算部分的紅包序列號驗證
flow.php 文件 1914行 左右,找到
if (is_numeric($bonus_sn))
更改為
if (is_string($bonus_sn))
到這里修改就完成了,後台清除下緩存就可以為紅包生成字母加數字的序列號了,現在生成的序列號是由
a-z、A-Z以及0-9組成,安全性高的同時,也避免了大批量發放導致的序列號重復問題。
5. 剛裝好的ECSHOP提示這個出錯 Array ( [errno] => 1064
從錯誤報告看,問題是出在這句SQL語句:
SELECT * FROM `lanv`.`ecs_region` WHERE region_id =
造成資料庫查詢出錯是因為region_id為空,而ecs_region是ecshop的地區表,在結算環節報這個錯誤,最大的可能是出在配送地址那裡,沒有選擇省市區的,導致region_id為空,所以你應該去檢查一下配送地址的填寫那個環節出了什麼問題。
6. ECSHOP點結算中心按鈕怎麼跳過登錄
這個你在flow.php文件裡面有個判斷,你刪除掉就可以了。
具體可在:
elseif ($_REQUEST['step'] == 'checkout'){
代碼裡面查找。
* 檢查用戶是否已經登錄
* 如果用戶已經登錄了則檢查是否有默認的收貨地址
* 如果沒有登錄則跳轉到登錄和注冊頁面
7. 多用戶商城系統和單用戶商城系統有什麼區別
我們俗稱的商城系統或網上購物系統,一般包括多用戶商城系統與單用戶商城系統。利用這兩種不同的網上商城系統建立的網站的模板界面並沒有多大差別,但是我們仍然可以從兩個特徵來區別單用戶與多用戶網上商城,分別是:
1、商城網站中的商品、訂單以及商城會員是否在同一個後台管理;
2、用戶是否能夠在該電商平台上單獨開店經營。
利用單用戶網上商城系統搭建的代表網站有京東商城、安踏官方旗艦店等,網站中出售的商品、用戶訂單、會員版塊都會由網站工作人員在同一個後台管理系統進行處理。同時,由單用戶網上商城系統構建的網站經營者也是網站的所屬方,用戶或加盟商是不能夠在網站上申請加盟或單獨開店經營。基於這些特點,B2C網上商城和規模較小的網上零售商店一般都是採用單用戶網上商城系統而搭建的。
利用多用戶商城系統構建的網站中,銷售平台網站的工作人員主要在後台負責單獨店鋪的管理、商家會員、網站廣告、系統信息以及站點新聞等內容,而進駐商城網站的店鋪人員則管理相應的商品信息以及訂單操作等。這種經營模式類似於實體的「百腦匯」數碼商城,整個商城由投資方統一管理,而不同品牌的商家可以申請租賃店鋪,商家之間的經營也互不影響。簡而言之,在多用戶商城系統的支撐下,商家用戶可以申請進駐商城,獨立經營自己的品牌產品。因此,多用戶商城系統更多的用於搭建C2C和B2B電子商務平台。
B2C模式網站並非只能由單用戶商城系統構建,多用戶商城系統也不是只能用在C2C、B2B兩種模式。例如淘寶商城是一個B2C購物平台,但它實際上是一個多用戶商城系統。有的淘寶C買家也用單用戶商城系統搭建獨立網店。
個人或者企業開網上商城到底是多用戶商城系統好還是單用戶好,從成功概率來說,肯定是單用戶商城會更高,多用戶商城面對的是想賺錢的商家,他們入駐你的平台,憑什麼吸引人家,即使免費給人家用,但是沒有效果,人家就不會來打理,所以前期您的推廣費用會比較大,投入大,不一定成正比,成功率比較低,獨立商城就不一樣了,只要您經營的有特色,肯定吸引購買者。
8. 低端網站架設,只要個框架,內容我自己弄,域名空間 主機都有,就要個特別簡單的框架,傭金300 會的聯系我
可自行安裝PHPCMS、ECSHOP、SHOPEX、DISCUZ、動網論壇等流行的網站程序。
9. ecshop購物車結算不顯示收貨填寫收貨地址,地址欄flow.phpstep=consignee
檢查一下你所有的模板的 library文件夾里是否有consignee.lbi,如果沒有就是因為缺少consignee.lbi
10. 有誰知道大商創和小京東有什麼區別嗎
區別:
1、功能方面
①大商創的功能較為豐富。大商創適合的是中大型、有一定上下游資源的企業。
②小京東的功能相較而言輕便簡單,它適合初創型企業和個人創業者。
6、登錄方式
①大商創支持微信、QQ、支付寶的第三方登錄。
②小京東支持QQ、支付寶登錄。