当前位置:文档之家› 农资电子商务平台建设php

农资电子商务平台建设php

1、农资电子商务平台开发背景及可行性分析

近几年,随着电子商务的销售模式、物流运输的发展,以及移动互联网、在线支付等技术的日趋完善成熟,电子商务在我国各个行业发展的如火如荼,彻底颠覆了很多传统行业的经营模式。虽然电子商务在很多行业发展的非常迅速,但在我国农资行业,农资产品的销售和购买方式仍然比较单一,电子商务在这方面的市场几乎处于空白,仍然处于起步阶段。

据中国互联网络信息中心的统计数据,2015年中国的农民数量高达8亿之多,中国的网民数量为6.49亿,我国又是农业大国,农资产品的市场需求巨大。加之随着我国城市化的迅速推进,土地流转的规模也逐渐扩大,一些大规模农业经营的农户和家庭农场在不断的增加。2013年初刚刚出台的中央一号文件特别提出要促进加快“家庭农场”农业模式的发展,我国目前针对相对分散的农业种植模式现状的农资销售、流通渠道越来越不适合现代农业经营模式的变化,所以开展农资电子商务符合我国国情和现实需求。

农资电子商务有很多优势,首先农资电子商务可以节约店铺租赁、店铺建设等费用,可以减少相应的管理费用。电商平台能够缩短农资销售链条,减少销售渠道成本。目前我国的农资销售的主要方式仍然是厂家→中间商→分销商→消费者的传统模式,销售链条较长增加了宣传和销售成本,而农资电子商务交易模式,会相对弥补传统经营模式的这些不足,能大幅缩短销售链条,可以实现厂家→消费者的对点销售,从而降低经营的渠道成本,让利于消费者。同时电子商务平台本身具有广面宣传的属性,能快速让消费者全面了解产品,从而降低传统渠道的宣传成本。其次,电子商务突破了时间和空间的限制,可以大大提高交易效率。电商所具有的开放性和全球性的特点,为农资产品的销售突破了时间和空间的限制,增加了交易的时间范围和地域范围,增加产品交易的机会。另外,电子商务的互动性强,通过互联网,商家和消费者之间可以直接交流,消费者可以把自己的反馈建议反映到农资电子商务平台上,商家可以根据用户反馈对产品进行改进和升级,可以提高用户的体验。农资电子商务有诸多优势,所以开展农资电子商务是时代趋势,非常可行和有必要。

2、网站环境简介及概要设计

2.1开发环境与技术简介:

操作系统:Windows7旗舰版64位操作系统

编程语言:PHP,中文名:“超文本预处理器”,是一种通用的开源服务器端脚本语言,

支持很多数据库,是目前最流行的 Web 开发语言。

数据库:MySQL,是一个开源的关系型数据库管理系统,对PHP有很好的支持。

服务器:Apache,是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

浏览器:Google Chrome浏览器,是一个由Google(谷歌)公司开发的网页浏览器。Google Chrome的特点是简洁、快速。Google Chrome支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,Google Chrome基于更强大的JavaScript V8引擎,这是当前Web浏览器所无法实现的。

HTML:超文本标记语言,网页的本质就是超级文本标记语言,通过结合使用其他的Web 技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。

jQuery前端框架:jQuery是一个兼容多浏览器的轻量级javascript库,核心理念是write less,do more(写得更少,做得更多)。并且方便地为网站提供AJAX交互。jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需要定义id即可。

PHP框架:ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache2开源协议发布,使用面向对象的开发结构和MVC模式,支持windows/Unix/Liunx等服务器环境,支持MySql等多种数据库,能够解决应用开发中的大多数需要,因为自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件。

2.2网站功能设计

2.2.1网站前台功能模块设计:

模型设计:

主要功能介绍:

导航条:主要用于各模块功能之间的页面跳转。

菜单导航:显示农资产品的分类,包括农机,种子,化肥,农业。

首页主体:主要用来展示商品及商品的信息,商品图片大小210px*200px,所有商品信息从数据库中提取。

购物车:显示用户添加到购物车的商品信息,数量,总价,填写收货人姓名,收货地址,电话,备注等信息。

登录、注册:用于用户注册和登录,会员管理模块。

农业资讯:为用户提高一些最新的农业资讯,具有一定的时效性,可以增加用户粘性,是文章模块之一。

农技知识:针对我们的用户群体,发布一些农技方面的知识,可以增加用户对网站的依赖性和喜好程度,属于文章模块之一。

网站后台功能模块设计:

模型设计:

主要功能介绍:

基本设置:用于设置网站的基本信息,网站首页标题,网站名称,网站的URL,网站logo,网站关键字,网站描述等信息,用于seo优化和搜索引擎收录。

商品管理:用于管理商品分类、商品维护,可以动态的增加、删除、修改商品分类和商品信息。

订单管理:主要用于查看顾客提交的订单及订单详细信息。

会员管理:查看、修改,删除注册的会员信息,设置、修改,删除网站后台管理员的帐号和密码。

信息管理:文章管理模块,用于对文章分类及文章的增加、删除、修改等操作。

3、网站详细设计及功能展示

3.1前台详细设计及页面展示

网站名称:乐购农资网

Logo: 代表活力与力量的成长中的植物种子,充满了希望。

网站前端入口文件: index.php

//单入口模式

define('THINK_PATH', './inc/');

define('APP_NAME', 'web');

define('APP_PATH', './web/');

define('RUNTIME_PATH', './data/');

define('TMPL_PATH', './templates/');

require(THINK_PATH."/ThinkPHP.php");

?>

会员注册:

关键代码:

会员注册

class="inputstyle2"/>

class="button_blue" value="同意协议并注册"/>

public function sign(){

$this->display();}

//用户注册控制器

public function dosign(){

$name=$this->_post('name',"trim");

$password=$this->_post('pswd','trim');

$model=M('Members');

$result=$model->where(array('username'=>$name))->find();

if($result!==false&&is_array($result)){

echo '1'; return; } $data['username']=$name;

$data['userpass']=md5($password);

$res=$model->add($data);

if($res!==false){ echo '0'; } }

会员登录:

关键代码:

会员登录

class="button_blue submit"/>

public function login() {

$this->display(); }

//用户登录控制器

public function doPost(){

$name=$this->_post('u','trim');

$password=$this->_post('p','trim');

$model=M('Members');

$res=$model->where(array('username'=>$name))->field('userpass')->find();

if($res==''||$res==false){ echo '1'; return; }

if($res['userpass']==md5($password)){

session('se_name',$name);

echo '0';

}else{ echo ‘登录失败’; } }

网站首页导航:

关键代码:

网站首页主体:

关键代码:

商品分类

  • {$sub.fcname}
  • {$vo.fname}

    ¥{$vo.fprice}

    加入购物车

  • 购物车:

    关键代码:

    商品数量 总计

    收货人:

    手机号:

    地址:

    查询订单:

    关键代码:

    请输入您的订单手机号:

    我的订单:

    关键代码:

    我的订单

    订单号 下单时间 订单金额

    订单状态 结束时间 操作

    {$vo.oid} {$vo.order_ctime|date="Y-m-d H:i",###}

    {$vo.orderprice}

    已完成 送货中

    提交成功{$vo.order_endtime|date="Y-m-d

    H:i",###}

    订单详情:

    关键代码:

    public function myorders(){

    $otel=I('id');

    session('otel',$otel);

    $pid=I('pid');

    session('pid',$pid);sd

    if ($otel){

    $Orders=M('Foodorder');// 实例化User对象

    import('ORG.Util.Page');// 导入分页类

    $data['otel']=$otel;

    $count = $Orders->where($data)->count();// 查询满足要求的总记录数

    $Page = new Page($count,10);// 实例化分页类传入总记录数和每页显示的记录数

    $show = $Page->show();// 分页显示输出

    // 进行分页数据查询注意limit方法的参数要使用Page类的属性

    $orderlist = $Orders->where($data)->limit($Page->firstRow.','.$Page->listRows)->order('o

    id desc')->select();

    $this->assign('orderlist',$orderlist);// 赋值数据集

    $this->assign('page',$show);// 赋值分页输出

    $this->display(); // 输出模板

    } else { if ($pid){

    $Orders=M('Foodorder');// 实例化User对象

    import('ORG.Util.Page');// 导入分页类

    $data['pid']=$pid;

    $count = $Orders->where($data)->count();// 查询满足要求的总记录数$Page = new Page($count,10);// 实例化分页类传入总记录数和每页显示的记录数

    $show = $Page->show();// 分页显示输出

    // 进行分页数据查询注意limit方法的参数要使用Page类的属性

    $orderlist = $Orders->where($data)->limit($Page->firstRow.','.$Page->listRows)->order('o

    id desc')->select();

    $this->assign('orderlist',$orderlist);// 赋值数据集

    $this->assign('page',$show);// 赋值分页输出

    $this->display(); // 输出模板

    }else {

    $this->redirect('Member/index');} } }

    农业资讯:

    农技知识:

    关键代码:

    {$vo.aname}

  • {$aitem.aname}
  • title="{$vo.atitle}">{$vo.atitle}

  • // 文章模块控制器

    public function l(){

    $rid = $this->_get('id');

    $Articlecat=M('Article_cat');

    $con['acid']=$rid;

    $aresult=$Articlecat->where($con)->find();

    $Article=M('Article');

    $map['acid']=$aresult["acid"];

    import('ORG.Util.Page');// 导入分页类

    $count = $Article->where($map)->count();// 查询满足要求的总记录数

    $Page = new Page($count,10);// 实例化分页类传入总记录数和每页显示的记录数$show = $Page->show();// 分页显示输出

    // 进行分页数据查询注意limit方法的参数要使用Page类的属性

    $list=$Article->where($map)->limit($Page->firstRow.','.$Page->listRows)->or der('aid desc')->select();

    //dump($plist);

    $this->assign('page',$show);// 赋值分页输出

    $this->assign('aitem',$aresult);

    if(session('?se_name')){

    $this->assign('se_name',session('se_name')); }

    $this->assign('list',$list);

    $this->display(); }

    3.2网站后端详细设计及页面展示

    后端入口文件:

    admin.php

    //单入口模式

    define('THINK_PATH', './inc/');

    define('APP_NAME', 'admin');

    define('APP_PATH', './admin/');

    define('APP_DEBUG', 'true');

    require(THINK_PATH."/ThinkPHP.php");

    ?>

    后台登录页面:

    关键代码:

    accept-charset="utf-8" id="login_form" class="loginForm"

    method="post">

    //登录控制器

    public function dologin() {

    $this->assign('webtitle',C('web_title')); $Member=M('Members'); $username = trim($_POST['username']);

    $password = trim($_POST['password']);

    $verify = trim($_POST['verify']);

    $maps['username']=$username;

    $maps['userlevel']=99;

    $uuid=$Member->where($maps)->field('uid,userpass,nickname,username,create_t ime,usergroup')->find();

    if(!$uuid){$emg="用户不存在";$this->assign('emg',$emg); $this->display();} else {

    If ($uuid["userpass"]!=md5($password)){$emg="密码错误";$this->assign('emg',$emg);$this->display();}else{

    //用户登录成功

    session('username',$uuid["username"]);

    cookie('nickname',$uuid["nickname"]);

    session('admin_key',$uuid["uid"]);

    $data = array('create_time' => time(),

    'last_login_time' =>$uuid["create_time"],

    'last_login_ip' => get_client_ip(), );

    M('Members')->where("uid=".$uuid["uid"])->save($data);

    $emg="验证成功";$this->assign('emg',$emg);

    $this->redirect(U('Config/index')); } } }

    网站基本设置:

    关键代码:

    public function index(){

    $cate=$_GET['id']; if(!$cate){$cate=0;} $Config=M('Config');

    $data=$Config->where('cate='.$cate)->select();

    if($data && is_array($data)){ foreach ($data as $k=>$value) {

    $datas[$k]['title']=$value['title']; $datas[$k]['name']=$value['name']; $datas[$k]['type']=$value['type'];

    $datas[$k]['remark']=$value['remark'];

    $datas[$k]['status']=$value['status'];

    if ($value['type']==3||$value['type']==4){

    $datas[$k]['extra']=$this->parse( $value['extra']); }

    if ($value['type']==6){

    $datas[$k]['value']=explode( ',',$value['value']); }

    else{ $datas[$k]['value']=$value['value'];} } }

    $this->assign('citem',$datas); $this->assign('cate',$cate);

    $this->assign('data',$data); $this->display('index'.$cate); }

    商品分类:

    主要代码:

    商品分类如:农具、肥料等

    ID 分类名 排序 操作

    {$vo.fcid} {$vo.fcname} {$vo.fcsort}

    修改

    删除

    public function index() {

    $Foodcat=M('Foodcat'); $foodcatlist=$Foodcat->select();

    $this->assign('foodcatlist',$foodcatlist); $this->display(); }

    分类增加:

    主要代码:

    输入分类名称

    public function addsave() {

    $Foodcat=M('Foodcat'); $map['fcname']=$_POST['fcname'];

    $map['fcsort']=$_POST['fcsort']; $map['ctime']=time();

    if($map['fcname']){ $result=$Foodcat->add($map);

    if ($result){

    //成功后返回客户端新增的用户ID,并返回提示信息和操作状态

    // $this->success('新增成功','__APP__?m=Food&a=index');

    $this->redirect('Foodcat/index'); }else{

    //错误后返回错误的操作状态和提示信息 $this->error('新增失败'); } } else { $this->error('分类名不可以为空'); } }

    分类修改:

    主要代码:

    public function editsave() {

    $Foodcat=M('Foodcat'); $map['fcid']=$_POST['fcid'];

    $data['fcname']=$_POST['fcname']; $data['fcsort']=$_POST['fcsort']; $foodedititem=$Foodcat->where($map)->save($data);

    if ($foodedititem){

    //成功后返回客户端新增的用户ID,并返回提示信息和操作状态

    // $this->success('修改成功','__APP__?m=Food&a=index');

    $this->redirect(U('Foodcat/index')); }else{

    //错误后返回错误的操作状态和提示信息

    $this->error('新增失败'); } }

    商品维护:

    主要代码:

    {$vo.fcid} {$vo.fcname} {$vo.fcsort}

    修改

    删除

    public function index() {

    $Foodcat=M('Foodcat'); $foodcatlist=$Foodcat->select();

    $this->assign('foodcatlist',$foodcatlist); $this->display(); }

    商品修改

    相关主题
    文本预览
    相关文档 最新文档