使用 Laravel 快速构建网站系列 —— 开源电子商务网站:Antvel

基于Laravel开发的开源电子商务网站Antvel

1、简介

Antvel是一个基于 Laravel 5.* 开发的开源电子商务项目,我们创建这个项目是为了帮助创业者或大公司快速构建友好的电子商务网站。这是一个功能齐全的平台,你只需要添加你的产品,然后将它们卖给客户获取订单就可以了。Antvel的宗旨是以另外一种方式让你和你的客户用户获取最佳的电子商务体验!

注:Antvel当前是alpha版本,请关注我们的版本更新,感谢您的测试!

2、GitHub

https://github.com/ant-vel/App

3、官方网站

http://antvel.com/

4、安装&配置

首先,从GitHub克隆仓库到本地目录:

git clone https://github.com/ant-vel/antVel.git

然后需要在antVal项目目录下运行Composer命令:

composer install

运行完成之后将数据库配置信息配置到.env文件中,然后使用如下迁移命令创建对应数据表:

php artisan migrate:refresh

你可以选择使用Antvel提供的填充器将演示数据插入数据库:

php artisan migrate:refresh --seed

如果在执行该命令时报错:

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near 'json null, `remember_token` varchar(1
00) null, `created_at` timestamp null, `upd' at line 1 (SQL: create table `users` (`id` int unsigned not null auto_
increment primary key, `nickname` varchar(255) not null, `email` varchar(255) not null, `password` varchar(60) not
null, `pic_url` varchar(255) null, `language` varchar(255) not null default 'en', `mobile_phone` varchar(255) null,
`work_phone` varchar(255) null, `website` varchar(255) null, `twitter` varchar(255) null, `facebook` varchar(255)
null, `description` varchar(255) null, `time_zone` varchar(255) null, `rate_val` int null, `rate_count` int null, `
role` enum('admin', 'business', 'person') not null default 'person', `type` enum('normal', 'trusted') not null defa
ult 'normal', `verified` enum('yes', 'no') not null default 'no', `preferences` json null, `remember_token` varchar
(100) null, `created_at` timestamp null, `updated_at` timestamp null, `disabled_at` timestamp null, `deleted_at` ti
mestamp null) default character set utf8 collate utf8_unicode_ci)

这是因为迁移文件中设置了json字段,而MySQL需要5.7以上版本才支持该字段类型,所以需要升级MySQL到5.7或者将json字段改为text字段。

完成这一步之后,我们还要运行bower install,以便安装前端依赖:

bower install

至此,已经可以在浏览器中正常访问Antvel了(原谅学院君在这里打了个大大的水印):

antvel

5、使用Laravel Elixir

如果要使用Laravel Elixir,需要安装Gulp包:

npm install --global gulp

然后,需要进入antVel目录输入以下命令安装npm依赖:

npm install

如果你在Windows上开发,需要尝试这样运行上述命令:

npm install --no-bin-links

最后运行gulp命令即可:

gulp

6、验证码设置

现在一切准备就绪,要让用户登录时提供验证码功能,还需要设置Antvel验证码变量,这里使用的是Google reCaptcha,如果你对这个不熟悉,可以参考学院之前的一篇教程:Laravel 5 表单中如何集成使用 Google reCAPTCHA 验证码。这里我们只需从Google获取到对应公钥和秘钥,并将它们设置到.env文件对应的RECAPTCHA_PUBLIC_KEYRECAPTCHA_PRIVATE_KEY选项,代码Antvel已经帮我们实现了,无需编写任何业务逻辑。

注:如果APP_DEBUG==true,则验证码不会出现。

7、功能特性

  • 响应式
  • 开源
  • 集成社交媒体组件
  • 无限分类
  • 无限商品
  • 无限厂家
  • 自定义样式
  • 多语言支持
  • 多货币支持
  • 评论商品
  • 商品评分
  • 下载商品
  • 自动调整图片大小
  • 多税率支持
  • 相关商品推荐
  • SEO(搜索引擎优化)
  • 销售报表
  • 心愿单
  • 商品建议
  • 商品分组(http://antvel.com/products/42
  • 地址簿
  • 用户属性(卖家&买家)
  • 商品条形码
  • 后台管理面板(http://antvel.com/wpanel
  • 用户订单列表(标记订单状态)
  • 商品价格
  • 虚拟商品
  • 免费商品模块
  • 用户积分
  • 虚拟商品交付
  • 动态商品规格
  • 公司简介
  • 购物车
  • 用户喜好控制
  • 用户通知
  • 公司信息CMS
  • 动态面包屑

8、演示账号

注:这些账号是本地安装的antVel测试账号,非线上演示站点账号

后台账号: dev@antvel.com / 123456
买家账号: buyer@antvel.com / 123456
卖家账号: seller@antvel.com / 123456

后台用户页面:

antvel后台页面

卖家页面:

antvel买家页面

买家页面:

antvel买家页面

学院君 has written 982 articles

Laravel学院院长,终身学习者

积分:113047 等级:P12 职业:手艺人 城市:杭州

144 条回复

  1. jasonLaw1015 jasonLaw1015 says:
    @ 朱俊

    我也遇到这个问题了。切换成这个源composer config -g repos.packagist composer https://php.cnpkg.org 退出翻墙软件,重试就好了。

    有人说composer self-update也可以,但我没试

  2. jasonLaw1015 jasonLaw1015 says:

    你们的migrations 是不是也只有migrations/2014_10_12_100000_create_password_resets_table.php; 其他的在哪,我想改字段类型; 报了json错误

  3. wqjohnston wqjohnston says:

    (3/3) QueryException SQLSTATE[HY000]: General error: 2036 (SQL: select id, name, description, features, price, type, stock from products where type <> freeproduct order by rate_count desc, rate_val desc limit 4) 啥项目啊 各种sql问题

  4. heheda heheda says:

    php artisan migrate:refresh --seed 报错 php是7.1版本 MySQL5.7

    Seeding: AdminTableSeeder PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 4096 bytes) in D:\Wamp\WWW\laravel\yuanma\antVel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Mod el.php on line 0 PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 32768 bytes) in D:\Wamp\WWW\laravel\yuanma\antVel\vendor\symfony\debug\Exception\FatalErrorException.php on li ne 1

  5. zjy zjy says:
    根据上面的教程还会报一下报错:arse error: syntax error, unexpected '?' in D:\AppServ\www\app\App-master\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php on line 242
  6. cp cp says:
    D:\PHP\wamp64\www\App>php artisan migrate:refresh --seed Rolling back: 2017_08_15_203903_create_products_grouping_table Rolled back: 2017_08_15_203903_create_products_grouping_table Rolling back: 2017_07_02_174248_create_product_pictures_table Rolled back: 2017_07_02_174248_create_product_pictures_table Rolling back: 2017_05_26_212608_create_features_table Rolled back: 2017_05_26_212608_create_features_table Rolling back: 2017_03_07_012822_create_email_change_petitions_table Rolled back: 2017_03_07_012822_create_email_change_petitions_table Rolling back: 2015_08_24_164817_create_companies_table Rolled back: 2015_08_24_164817_create_companies_table Rolling back: 2015_03_13_144622_create_order_details_table Rolled back: 2015_03_13_144622_create_order_details_table Rolling back: 2015_03_13_144541_create_orders_table Rolled back: 2015_03_13_144541_create_orders_table Rolling back: 2015_03_12_210941_create_products_table Rolled back: 2015_03_12_210941_create_products_table Rolling back: 2015_03_12_210054_create_categories_table Rolled back: 2015_03_12_210054_create_categories_table Rolling back: 2015_03_12_204126_create_addresses_table Rolled back: 2015_03_12_204126_create_addresses_table Rolling back: 2014_10_12_100000_create_password_resets_table Rolled back: 2014_10_12_100000_create_password_resets_table Rolling back: 2014_10_12_000000_create_users_table Rolled back: 2014_10_12_000000_create_users_table Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'notifications' already exists (SQL: create table `notifications` (`id` char(36) not null, `type` varchar(255) not null, `notifiable_type` varchar(255) not null, `notifiable_id` bigint unsigned not null, `data` text not null, `read_at` timestamp null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci') at D:\PHP\wamp64\www\App\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // If an exception occurs when attempting to run a query, we'll format the error 661| // message to include the bindings with SQL, which will make this exception a 662| // lot more helpful to the developer instead of just the database's errors. 663| catch (Exception $e) { > 664| throw new QueryException( 665| $query, $this->prepareBindings($bindings), $e 666| ); 667| } 668| Exception trace: 1 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'notifications' already exists") D:\PHP\wamp64\www\App\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458 2 PDOStatement::execute() D:\PHP\wamp64\www\App\vendor\laravel\framework\src\Illuminate\Database\Connection.php:458 Please use the argument -v to see more details.
  7. 逍遥 逍遥 says:
    解决一个错误,还有另一个错误等着..这根本没法用 (1/1) ErrorException count(): Parameter must be an array or an object that implements Countable in ProductsController.php line 965 at HandleExceptions->handleError(2, 'count(): Parameter must be an array or an object that implements Countable', '/home/vagrant/Code/antvel/app/Http/Controllers/ProductsController.php', 965, array('data' => array('preferences_key' => 'product_viewed', 'limit' => 8), 'suggest_listed' => null))
  8. puppet puppet says:
    bower : 无法将“bower”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。 所在位置 行:1 字符: 1 + bower install + ~~~~~ + CategoryInfo : ObjectNotFound: (bower:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

登录后才能进行评论,立即登录?