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、支付宝登录。