Compare commits

...

2383 Commits

Author SHA1 Message Date
liqianjin f344d2deab Merge branch 'github-master' into master-github-histories
# Conflicts:
#	beike/Admin/View/Components/Header.php
#	beike/Admin/View/Components/Sidebar.php
#	beike/Helpers.php
#	beike/Models/Product.php
#	beike/Repositories/OrderRepo.php
#	beike/Repositories/PageCategoryRepo.php
#	beike/Shop/Services/CartService.php
#	composer.lock
#	resources/beike/admin/views/components/header.blade.php
#	resources/beike/admin/views/pages/design/builder/index.blade.php
#	resources/beike/admin/views/pages/marketing/show.blade.php
#	resources/beike/admin/views/pages/products/form/form.blade.php
#	resources/lang/en/admin/marketing.php
#	resources/lang/zh_cn/admin/common.php
#	resources/lang/zh_cn/admin/marketing.php
#	resources/lang/zh_cn/admin/product.php
#	themes/default/cart/mini.blade.php
#	themes/default/layout/footer.blade.php
#	themes/default/layout/master.blade.php
#	themes/default/product/product.blade.php
2023-08-10 13:45:22 +08:00
liqianjin 8674f1125c v1.1.2 合并至github项目 2023-08-10 11:34:43 +08:00
pushuo bb7a6aad0d !161 Fix page summary input error prompt
* Fix installation error and no information display problem
* Fix page summary input error prompt
2023-07-20 06:22:35 +00:00
pushuo 2b12969d3a !160 Fix the front-end error reporting problem when the page is deleted
* wip
* Fix the front-end error reporting problem when the page is deleted
2023-07-20 10:16:36 +08:00
Edward Yang a3d35f6f09 code format 2023-07-20 10:13:07 +08:00
pushuo 47a6ea5297 !158 The admin tab is activated according to the parameters
* Background tab is automatically activated
2023-07-19 18:47:01 +08:00
Edward Yang d8b9be889c upgrade to v1.3.8(20230719) 2023-07-19 18:38:18 +08:00
Edward Yang 7ec745c52c !159 Stripe 升级优化
* wip
* fixed stripe charge
* wip
* wip
* code format
* wip
* wip
* 优化 stripe
* Background tab is automatically activated
2023-07-19 18:34:53 +08:00
Edward Yang 746b0382d9 fixed stripe 2023-07-19 15:24:58 +08:00
Edward Yang 99f87cc9e6 修复多个模板重复加载相同hook导致的问题 2023-07-19 11:36:53 +08:00
pushuo 7e3f2be082 !157 Fix tab_product module
* Fix tab_product module
2023-07-19 01:46:46 +00:00
Edward Yang b23a926dd5 修复切换不同模板产生模板缓存导致DIY问题 2023-07-19 09:45:32 +08:00
Edward Yang c07bdda87f fixed product variables 2023-07-19 09:29:50 +08:00
Edward Yang a1ba2917f8 Fixed category seo url on category - product list page. 2023-07-18 19:35:48 +08:00
pushuo a78d61e96e !156 Fix multiple tab_product module switching errors
* Fix multiple tab_product module switching errors
2023-07-18 10:54:00 +00:00
Edward Yang def439de4d release v1.3.8 - 20230718 2023-07-18 16:53:50 +08:00
pushuo 8750c828f7 !155 Add hooks for cart and checkout page submit buttons
* fixed license
* add setting license_code
* Add hooks for cart and checkout page submit buttons
2023-07-18 16:52:46 +08:00
Edward Yang 41ba00a3b3 code format 2023-07-18 16:52:46 +08:00
pushuo e4e6601f21 !154 Fix the error that the background product list image exceeds the display error
* Fix the error that the background product list image exceeds the display error
2023-07-18 16:52:46 +08:00
mengwb 3063e764f9 !153 所有model统一继承BASE
* model统一继承BASE
2023-07-18 16:52:46 +08:00
pushuo b3e70910ff !152 Fix ThemeSeeder data error
* wip
* Fix ThemeSeeder data error
2023-07-18 16:52:46 +08:00
宋良辰 df96ffafa5 !151 后台商品添加model和quantity 列表直接修改上下架状态
* cursor-pointer
* admin products-list add switch to edit status
* ProductResource add model and quantity
2023-07-18 16:52:46 +08:00
Edward Yang 1a3b7d134f Code format 2023-07-18 16:52:46 +08:00
Edward Yang 2d28ca8e68 add product repo builder 2023-07-18 16:52:46 +08:00
mengwb d0c4bc77e7 !150 安装环境检测
* installer detect the php extension
2023-07-18 16:52:46 +08:00
pushuo 69e9a051c1 !149 Fix configuration link status disabled and display problems
* wip
* wip
* Fix configuration link status disabled and display problems -> https:/…
2023-07-18 16:52:46 +08:00
Edward Yang f72b61a4a3 Fixed checkout for null sku https://gitee.com/beikeshop/beikeshop/issues/I7D59N?from=project-issue 2023-07-18 16:52:46 +08:00
pushuo 2e7d2b7cb2 !148 Fix the problem of switching preview when editing tab-product module
* wip
* Fix the problem of switching preview when editing tab-product module
2023-07-18 16:52:46 +08:00
Edward Yang 2430791a25 update order payment schema 2023-07-18 16:52:46 +08:00
Edward Yang 33784ebbdb 支持 blade hook 循环体传值 2023-07-18 16:52:46 +08:00
Edward Yang e1a4d1b3cc 修复 blade hook 优先级被覆盖导致插件失效 2023-07-18 16:52:46 +08:00
Edward Yang 9529d68d38 Publish JD product. 2023-07-18 16:52:46 +08:00
what_村长 ef14e65e31 !146 增加 hoot admin.product.sku.edit.item.after
* 增加hook admin.product.sku.edit.item.after ,方便在上面加上翻译插件按钮
* 增加hook admin.product.sku.edit.item ,方便在上面加上翻译插件按钮
* Merge branch 'dev' of https://gitee.com/what520/beikeshop into dev
* 测试
2023-07-18 16:52:46 +08:00
Edward Yang 2ad26852f0 Optimize plugin API 2023-07-18 16:52:46 +08:00
Edward Yang 5649d40560 Code format 2023-07-18 16:52:46 +08:00
Edward Yang 7e3ee84096 Export csv 2023-07-18 16:52:46 +08:00
pushuo a531cc0173 !144 Fix single multi-specification delete problem
* Fix single multi-specification delete problem
2023-07-18 16:52:46 +08:00
Edward Yang 754ddb58a4 fixed validate database 2023-07-18 16:52:46 +08:00
pushuo a418db518b !143 add product-page hook
* add product hook
2023-07-18 16:52:46 +08:00
huangyk 13285c6cbc 更新README 2023-07-18 09:51:19 +08:00
BeikeShop开源好用的跨境电商系统 86fa909e44
update README.md.
更新描述信息-3

Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-07-14 08:27:41 +00:00
BeikeShop开源好用的跨境电商系统 cac2adc614
update README.md.
更新描述信息-2

Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-07-14 08:26:33 +00:00
BeikeShop开源好用的跨境电商系统 65a6808c00
update README.md.
更新了描述文案

Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-07-14 07:56:33 +00:00
Edward Yang 7f585d6b51 Show product detail on panel. 2023-07-07 17:35:39 +08:00
Edward Yang 2704c42f71 Update build to 20230621 2023-06-21 14:13:40 +08:00
pushuo 35543ed409 !142 Fix the problem of duplicate data when designing the home page
* wip
* wip
* Fix the problem of duplicate data when designing the home page
2023-06-21 14:12:57 +08:00
Edward Yang 5b262df391 Fixed openai and added plugin version. 2023-06-19 19:07:43 +08:00
Edward Yang f0058fa6b4 Fixed chatgpt plugin 2023-06-19 18:56:25 +08:00
pushuo 6d274a74d9 !140 Fix Stripe image intersection
* Fix Stripe image intersection
2023-06-19 08:25:43 +00:00
Edward Yang fe0c328c76 update build 2023-06-19 16:25:08 +08:00
pushuo b8ee27e84f !139 Fix Stripe js plugin path error
* Fix Stripe js plugin path error
2023-06-19 08:14:59 +00:00
pushuo 530e5f22fe !138 Fix pagination button h5 responsive
* Fix pagination button h5 responsive ++
* Fix pagination button h5 responsive
* Optimize table UI, etc
2023-06-19 02:27:08 +00:00
Edward Yang 20131129fe fixed about 2023-06-14 19:21:00 +08:00
pushuo 9eb9a43fce !137 Fix the problem of saving multi-standard products
* wip
* Fix the problem of saving multi-standard products
2023-06-14 11:06:14 +00:00
Edward Yang 0b11ada7a2 fixed page and page category demo. 2023-06-14 19:04:05 +08:00
pushuo 4cffc1a159 !136 navigation add news
* navigation add news
2023-06-14 10:14:44 +00:00
pushuo d61c0a5e12 !135 Repair tax rate setting error
* Repair tax rate setting error
2023-06-14 08:55:10 +00:00
pushuo e9aa555609 !134 Fix backend product saving error
* Fix backend product saving error
2023-06-14 07:59:38 +00:00
pushuo 5af461e617 !133 Optimize background ui
* Optimize background ui
2023-06-14 07:03:47 +00:00
pushuo 391f28ede7 !132 Delete the background vip button and change it to License & Services
* Delete the background vip button and change it to License & Services
2023-06-14 06:46:23 +00:00
pushuo b4ddf33810 !130 Fix front-end form validation
* Fix front-end form validation + 1
2023-06-14 06:23:09 +00:00
pushuo cb3a9951b3 !131 Fix card background color
* Fix card background color
2023-06-14 06:22:37 +00:00
pushuo d89dd1b7c6 !129 Fix the problem of sku data confusion caused by deleting commodity specifications in the background
* Fix the problem of sku data confusion caused by deleting commodity spe…
* fix product variant
2023-06-14 05:57:35 +00:00
Edward Yang e33431f59a
!127 增加hook 用于实现插件控制商品详情的一些功能
Merge pull request !127 from what_村长/dev
2023-06-14 04:06:21 +00:00
pushuo b2811aafce !128 Fix front-end form validation
* fix product variant
2023-06-14 03:57:45 +00:00
tanxiaoyong 0e9395b98e 增加hook
product.detail.quantity.input
product.detail.add_to_cart
product.detail.wishlist
2023-06-14 11:37:07 +08:00
tanxiaoyong e71a98e915 增加hook
product.detail.quantity.input
product.detail.add_to_cart
product.detail.wishlist
2023-06-14 11:33:17 +08:00
tanxiaoyong b86cee3b3e Merge branch 'dev' of https://gitee.com/what520/beikeshop into dev
 Conflicts:
	themes/default/checkout/success.blade.php
	themes/default/product/product.blade.php
2023-06-14 11:20:17 +08:00
tanxiaoyong b28712e2d5 增加hook
product.detail.quantity
product.detail.add_to_cart
product.detail.wishlist
2023-06-14 11:12:15 +08:00
Edward Yang 473ed35cd9 update build 2023-06-14 09:07:32 +08:00
pushuo 975cfa1d69 !126 Optimize background rma ui and form submission validation logic
* Optimize background rma ui and form submission validation logic
2023-06-13 10:06:09 +00:00
pushuo b074e2a6c1 !125 Optimize element path
* Optimize order status modification
* Optimize element path
2023-06-13 09:02:47 +00:00
Edward Yang 2c460d696e update version to 1.3.7 2023-06-13 15:43:47 +08:00
Edward Yang 9287e0fc47 fixed summary rule 2023-06-13 15:33:34 +08:00
Edward Yang 1cbf9af4a4 optimize fail status 2023-06-13 15:26:07 +08:00
Edward Yang 2ea6cdd49b Optimize checkout confirm. 2023-06-13 15:20:38 +08:00
pushuo 56ef2dece8 !124 Add a view details link to the order email
* Add a view details link to the order email
2023-06-09 06:36:40 +00:00
Edward Yang 1ec759c7e4 update packages 2023-06-09 14:32:16 +08:00
pushuo e7019a9722 !123 Add video function
* Optimize shopping cart entries
* File manager selection type judgment
* video function
* Support video for file manager
* Optimize file manager
2023-06-09 05:58:33 +00:00
pushuo 523b8a3e7c !122 When entering the product details for the first time, only the SPU image will be displayed
* When entering the product details for the first time, only the SPU ima…
2023-06-08 07:48:00 +00:00
mengwb 05da652822 !121 优化
* 代码优化
2023-06-08 03:23:35 +00:00
Edward Yang 130a4544cc Show SPU image for product list 2023-06-07 19:23:37 +08:00
pushuo 9ecf31aecd !120 Add sorting settings
* Fixed category sort order and filter by active.
* Add sorting settings
2023-06-07 07:55:43 +00:00
pushuo 2b7b0a9011 !119 add ms hook
* wip
* 优化
* wip
* 文件管理器
* add ms hook
2023-06-07 02:57:07 +00:00
pushuo fb1c2e4c1c !118 order detail for guest
* order ui
* fixed guest order
* add number filter
* Add order detail for guest
2023-06-07 02:03:07 +00:00
pushuo 8d165eadf8 !117 Optimize the header drop-down menu ui
* Optimize the header drop-down menu ui
2023-06-06 00:43:52 +00:00
mengwb 0a5518d801 !116 结账hook
* Optimize cart list.
* 结账优化
2023-06-06 00:43:20 +00:00
Edward Yang d935eb4ff3 Optimize cart list. 2023-06-05 16:21:39 +08:00
tanxiaoyong 6d85aac561 增加物流信息展示块。当游客购买时,可以通过记录当前页面地址后,显示自己的订单信息及物流信息 2023-06-05 15:09:14 +08:00
tanxiaoyong 271732fa2b 调整订单状态显示字段,统一使用status_format 2023-06-05 15:05:58 +08:00
pushuo 43f6fdbb40 !114 Checkout request returns error message display
* Optimize checkout page error request prompt
2023-06-05 03:49:34 +00:00
mengwb fdbe7120c0 !113 hook优化
* hook优化
2023-06-05 03:19:49 +00:00
mengwb 25fd03c3c7 !112 service.checkout.update.after hook
* service.checkout.update.after
2023-06-02 10:08:18 +00:00
Edward Yang 0c18aedbb1 revert code to redirect to cart. 2023-06-02 17:33:22 +08:00
Edward Yang 65f8023891 Thrown cart exception. 2023-06-02 17:10:41 +08:00
Edward Yang 6a16540d1b Fixed flexshipping for 1.3.6 and 1.3.7 2023-06-02 16:18:42 +08:00
Edward Yang a29245b5d4 Fixed flex service. 2023-06-02 14:38:45 +08:00
pushuo fb8ac8dea4 !111 facebook pixel
* remove account order success.
* wip
* fb-pixel
2023-06-02 01:18:43 +00:00
Edward Yang 8f167ac2b0 Add view content. 2023-06-01 16:07:36 +08:00
Edward Yang 3aec43abb7 Code format 2023-06-01 14:12:33 +08:00
licy@guangda.work a55b1f5a63 提交说明 2023-06-01 14:05:12 +08:00
Edward Yang 168f65ed8e Upgrade packages. 2023-06-01 14:04:17 +08:00
Edward Yang f98c93f099 Modify upload max size to 10240 for admin panel. 2023-06-01 11:06:47 +08:00
pushuo b320aab6b6 !110 Fix background vip request error and cause other problems
* Fix background vip request error and cause other problems
2023-06-01 02:14:06 +00:00
Edward Yang 39d8d85425 Add meta pixel hook 2023-05-31 18:14:37 +08:00
Edward Yang 607751abc6 Support description multi languages. 2023-05-31 18:06:43 +08:00
Edward Yang fc609a9b67 Code format 2023-05-31 18:06:14 +08:00
mengwb 8b711fa653 !108 【WIP】代码优化和添加hook(适配多商户)
* wip
* 文件管理器优化
* 文件管理器优化
* 后台订单管理和商品管理代码优化,提供更好的扩展性,便于多商家实现
* totalService
* 添加hook
* TotalService优化
* hook
* hook
* 购物车列表hook
2023-05-30 01:56:26 +00:00
mengwb 64cedc39d4 !105 hook
* 订单详情页增加Hook
* 添加日期选择插件
* 状态机完善
* wip
* hook for checkout
2023-05-30 00:34:21 +00:00
pushuo 68f91b589f !109 Add front hook
* Add front hook
2023-05-27 01:03:24 +00:00
Edward Yang 78ed309eec add openssl to package 2023-05-26 13:51:32 +08:00
Edward Yang d6f518dff6 !107 Order Payment
* wip
* add exceptions
* order->orderPayments ui
* add order payments
* paypal 和 stripe 保存支付数据
* add order payment.
2023-05-25 09:53:49 +00:00
pushuo 5b83f02098 !106 Fix the h5 navigation without links and click to jump to the home page
* Fix the h5 navigation without links and click to jump to the home page
2023-05-23 03:10:13 +00:00
Edward Yang 619523c472 update tax rate rule 2023-05-23 10:43:21 +08:00
pushuo b5cc1ba786 !104 Product Added Quick Preview
* Added quick preview
2023-05-20 10:20:53 +00:00
Edward Yang 1574805a5a change order total service and code format. 2023-05-18 15:31:11 +08:00
pushuo 0bd592b648 !103 Fix that the slideshow module swiper plugin cannot be loaded for the first time
* Fix that the slideshow module swiper plugin cannot be loaded for the first time
2023-05-17 06:22:46 +00:00
pushuo 2fd52c1761 !102 Add article single file
* wip
2023-05-17 06:20:58 +00:00
pushuo 204d91e5d0 !100 Fix the error reported when there is no data in advanced filtering
* Fix the error reported when there is no data in advanced filtering
2023-05-17 03:28:33 +00:00
pushuo 8ea52fb8ff !101 Fix article TDK and modify article
* Fix article-related product issues
* Fix the problem that the article TDK does not display
2023-05-17 03:27:35 +00:00
Edward Yang f4657a9bed Fixed breadcrumb for page detail 2023-05-17 11:19:33 +08:00
pushuo fcb6c888dc !99 Fix the tab_product module reporting an error when there is no data
* Fix the tab_product module reporting an error when there is no data
2023-05-17 03:11:48 +00:00
pushuo 812b7655af !98 Optimize the personal center button, etc.
* wip
* Optimize the personal center button, etc.
* wip
* wip
* wip
* Modify an entry, name -> full name
2023-05-15 10:15:27 +00:00
pushuo b88d889861 !97 Modify an entry, name -> full name
* Modify an entry, name -> full name
2023-05-15 06:18:25 +00:00
what_村长 a1626dc21b !95 调整订单状态显示字段
* 调整订单状态显示字段,统一使用status_format
2023-05-15 11:38:06 +08:00
Teemo 9d020adaee !96 韩语支持
* 删除文件 resources/lang/ko/.keep
* 韩语4
* 韩语3
* 新建 admin
* 韩语2
* 韩语
* 新建 ko
2023-05-14 12:32:44 +00:00
Edward Yang 56c6c7f055 update build number 2023-05-12 11:03:54 +08:00
pushuo d2a68741d4 !94 Fix advanced filter save error
* Fix advanced filter save error
2023-05-12 02:33:05 +00:00
Edward Yang f26e239668 fixed position 2023-05-11 15:11:02 +08:00
Edward Yang ffaef2312b git revert .env.example 2023-05-10 18:45:23 +08:00
pushuo b595085b7e !92 Optimize the checkout process
* wip
* wip
* wip
* wip
* wip
* wip
* Optimize the checkout process
2023-05-10 10:37:27 +00:00
mengwb 0b6609b419 !93 【WIP】增加hook
* hook about multiseller
2023-05-10 10:35:48 +00:00
Edward Yang f60aa84886 remove unnecessary 2023-05-10 17:20:24 +08:00
Edward Yang 8de7f7e08c modified plugin sort 2023-05-10 15:03:27 +08:00
Edward Yang 89adc4d8d1 Code format 2023-05-10 11:52:19 +08:00
Edward Yang ab549d1cd8 update themes git ignore 2023-05-10 11:45:36 +08:00
licy@guangda.work 8c5178fa77 客户组折扣校验 2023-05-10 10:53:55 +08:00
licy@guangda.work d434eafec9 admin alter 2023-05-10 10:53:55 +08:00
licy@guangda.work 6636986904 admin test 2023-05-10 10:53:55 +08:00
licy@guangda.work c4e0d4a52e admin 2023-05-10 10:53:55 +08:00
licy@guangda.work 5e869252c9 代码优化调整 2023-05-10 10:53:55 +08:00
licy@guangda.work 07276ed14c admin test 2023-05-10 10:53:55 +08:00
licy@guangda.work e33521f60e admin test 2023-05-10 10:53:55 +08:00
licy@guangda.work 52fbd72915 admin测试 2023-05-10 10:53:55 +08:00
licy@guangda.work fe170590db admin测试 2023-05-10 10:53:55 +08:00
@MAOCHENG 203c937230 删除文件 phpinfo.php 2023-05-10 10:53:55 +08:00
licy@guangda.work edcc4afca8 admin测试 2023-05-10 10:53:55 +08:00
licy@guangda.work 7ba52a3bf3 个人中心 2023-05-10 10:53:54 +08:00
licy@guangda.work 7955534530 添加地址、商品购买 2023-05-10 10:53:54 +08:00
licy@guangda.work 0085f2dd2d 注册多场景 2023-05-10 10:53:54 +08:00
licy@guangda.work 1f7e2e9942 登录多场景 2023-05-10 10:53:54 +08:00
Edward Yang 6ed7d11368 Fixed browser test 2023-05-10 10:53:54 +08:00
Edward Yang a431e3785d Add laravel dusk to auto test. 2023-05-10 10:53:54 +08:00
pushuo 3da30a2ff7 !91 Fix delete currency judgment return status
* Fix delete currency judgment return status
2023-05-10 02:16:46 +00:00
Edward Yang a961ab8277 update version and build 2023-05-10 10:02:25 +08:00
Edward Yang 8fcd26dcd7 Fixed for https://gitee.com/beikeshop/beikeshop/issues/I70XJW?from=project-issue 2023-05-10 09:59:22 +08:00
pushuo 4ef9eeac5b !90 add checkout success
* add checkout success
2023-05-10 01:39:22 +00:00
pushuo 77bf0bca1a Change plugin purchase process
wip

wip

wip

wip

admin ui optimization

Optimize file manager
2023-05-09 17:53:11 +08:00
pushuo 4869e4252e Optimize the plug-in purchase process 2023-05-09 17:53:11 +08:00
Edward Yang 775171b14a update readme 2023-05-09 10:05:42 +08:00
Edward Yang c6d07b1834 fixed currency as right symbol 2023-05-06 08:55:53 +08:00
pushuo 773d1469bd Add product image lazy loading 2023-05-04 18:26:07 +08:00
Edward Yang 10eb858ef1 update header and sidebar menus for admin panel.
fixed menus

wip

wip

get sub menus

wip

add current link

wip

fixed rma

fixed routes

fixed sub routes

wip

wip

fixed order and rmas

重构后台菜单

wip

fixed active

update languages.

wip

wip

add history links

code format

wip

fixed menus

fixed menus

fixed url

fixed sub routes

wip

update menus

wip

修复角色页面没有选中上一级目录

remove unnecessary code

wip

wip

fixed header common links

code format

add design

fixed plugin

wip

添加插件二次子菜单

修复获取更多

修复最近浏览记录 插件相关语言包

wip

调整文章菜单顺序

fixed common links

fixed common links

wip

wip

wip

default link icon.

修复插件编辑二级菜单选中

wip

wip

wip

wip

wip

wip
2023-05-04 17:48:52 +08:00
pushuo 1cc2bf53a5 Optimize background navigation 2023-05-04 17:48:52 +08:00
蒲硕 3e2a27d2b8 !87 Front desk mobile terminal navigation optimization
* Front desk mobile terminal navigation optimization
2023-05-04 02:12:17 +00:00
Edward Yang c1d6c48f5b Add jwt and admin token to build API.
Add jwt to build API.

返回当前客户

后台添加,通过token获取后台用户信息

fixed token api

fixed order list and order detail

fixed product api

fixed categoryies API

add brands

fixed brands

add products

添加订单接口
2023-04-27 18:16:07 +08:00
pushuo 67d1b85952 admin adds a token
wip

fixed update

fixed account update

wip

wip

wip

wip

fixed tokens

wip

admin token
2023-04-27 18:16:07 +08:00
Edward Yang 920689fbee 首页统计改为产品总数 2023-04-26 18:57:49 +08:00
蒲硕 76b37ed867 !86 Optimization Advanced filters, taxes, currencies, etc.
* Fix region configuration province selection problem
* Optimization Advanced filters, taxes, currencies, etc.
2023-04-26 08:38:24 +00:00
Edward Yang 2956a536ff fixed Indonesia 2023-04-26 14:31:53 +08:00
pushuo 4e5fe381b4 add lang id 2023-04-26 14:19:24 +08:00
Edward Yang 2a2067204a Add hook for total service. 2023-04-26 11:12:36 +08:00
what_村长 d1fed8b618 !85 增加2处hook
* 增加hookwrapper
* Merge branch 'dev' of https://gitee.com/beikeshop/beikeshop into dev
* Merge branch 'dev' of https://gitee.com/what520/beikeshop into dev
* 增加hook,实现插件中要求的其他订单状态显示
* 调整状态字段的显示字段,与后端的一致
* !83 提交两个hook
* 增加
2023-04-20 11:32:48 +00:00
Edward Yang a3470b27c0 sort order for file manager
wip

wip

sort order by name
2023-04-17 21:00:05 +08:00
what_村长 f744dc6b02 !84 调整代码
* Merge branch 'dev' of https://gitee.com/what520/beikeshop into dev
* 增加hook,实现插件中要求的其他订单状态显示
* 调整状态字段的显示字段,与后端的一致
* 增加
2023-04-17 16:32:47 +08:00
mengwb e7734f2551 !82 商品搜索支持以空格间隔的多个词组
* The product search supports multiple strings separated by spaces.
2023-04-17 16:32:47 +08:00
what_村长 6e1b2a4347 !83 提交两个hook
* 增加
2023-04-17 16:32:47 +08:00
Edward Yang 5c99565d69 update readme 2023-04-14 13:51:56 +08:00
Edward Yang 399eeb0547 fixed readme upgrade 2023-04-13 11:57:34 +08:00
Edward Yang 318d2d9cfa Fixed customer group discount. 2023-04-12 11:40:56 +08:00
Edward Yang c4858b5875 update build number 2023-04-12 09:25:57 +08:00
TL 5f9eeb74d8 安装优化 2023-04-11 18:58:12 +08:00
蒲硕 98e962a6fd !79 Fix the background brand page turning back problem, optimize the form submission interaction, etc.
* Fix the background brand page turning back problem, optimize the form …
2023-04-11 07:40:23 +00:00
what_村长 d4b8c148a1 !78 增加几处hook,用于实现其他登录方式及登录后的数据展示控制
* Merge branch 'dev' of https://gitee.com/what520/beikeshop into dev
* 增加 @hookwrapper('account.sidebar.email')
* 增加 hook_filter('account.edit.index', $data);拦截展示数据
* @hookwrapper('account.edit.email')
* 增加@stack('login.vue.data'),@stack('login.vue.method')
* 图片翻译插件增加hook
* 增加2个hook  admin.product.name.after   admin.product.content.after 用于实现翻译插件按钮
* 1.增加 @hook('file_manager.content.head.btns.after')
* 1.增加 @hook('file_manager.content.head.btns.after')
* 在文件管理器上加入@hook('file_manager.content.head.btns.after')
2023-04-11 06:23:12 +00:00
蒲硕 d8027054bc !77 Optimize setting background page properties
* Optimize setting background page properties
2023-04-10 06:06:35 +00:00
Edward Yang 237b777c0a Remove unnecessary code. 2023-04-07 18:06:02 +08:00
mengwb 4b4f0ea2e9 !76 安装程序完善
* https://gitee.com/beikeshop/beikeshop/issues/I6T41C
2023-04-07 10:03:11 +00:00
Edward Yang 19f15b54a8 Fixed page category pagenation 2023-04-07 17:22:34 +08:00
Edward Yang 5c4ae14dbc Code format 2023-04-07 16:53:18 +08:00
mengwb e1e3ee9568 !75 编辑商品时重量为空保存报错
* 代码规范化
* Fix the issue of saving error when editing product weight is empty.
* 高级筛选哪些属性显示在筛选栏可在后台系统设置里设置
2023-04-07 08:42:56 +00:00
蒲硕 11626a73af !74 optimization admin.service.design.module.content code
* optimization admin.service.design.module.content  code
2023-04-07 06:45:44 +00:00
Edward Yang 6213226a99 prepare to publish 1.3.5 2023-04-07 14:43:35 +08:00
蒲硕 b5be111f41 !73 Optimize the breadcrumbs of the latest product plugin
* Optimize the breadcrumbs of the latest product plugin
2023-04-07 02:03:23 +00:00
Edward Yang fb6ef5d512 fixed social priority 2023-04-03 16:16:32 +08:00
what_村长 0362952282 !71 加入hook
* 图片翻译插件增加hook
* 增加2个hook  admin.product.name.after   admin.product.content.after 用于实现翻译插件按钮
* 1.增加 @hook('file_manager.content.head.btns.after')
* 1.增加 @hook('file_manager.content.head.btns.after')
* 在文件管理器上加入@hook('file_manager.content.head.btns.after')
2023-04-03 02:47:07 +00:00
mengwb d074c123d9 !68 商品重量和多个bug修复
* Optimizing Blog ui
* Optimize breadcrumb position, optimize webpack.mix.js
* Modify request vip status update logic
* 后台商品列表默认按修改时间倒序,商品编辑保存无修改时更新商品修改时间
* wip
* wip
* 高级筛选属性多选问题处理
* 修复游客结账问题
* Add payment success page
* After repairing the data loss problem after dragging the order of specifications
* wip
* Fix the problem that the image of the deleted product in the backgroun…
* wip
* wip
* 占位图
* 更改地址重新加载运费,和重新计算order total运费功能
* wip
* wip
* wip
2023-03-31 02:56:57 +00:00
Edward Yang 634a4a2bd2 Fixed social controller. 2023-03-27 17:43:45 +08:00
mengwb 86b3d33d6d !66 默认属性组不可删除
* 默认数据增加id为1的默认属性组,并且默认属性组后台不能删除
* migrations/2023_03_20_091423_product_weight.php
* 商品重量
* add weight blade
* bugfix
* 商品重量,用于计算flex shipping运费;地址变化后配送方式变化,需要重新显示新的配送方式
* Placeholder Image Backend Settings
* 商品重量,用于计算flex shipping运费;地址变化后配送方式变化,需要重新显示新的配送方式
* 增加hook
2023-03-24 10:23:55 +00:00
宋良辰 d233cd2fca !67 新增hook
* add hook
2023-03-24 10:23:26 +00:00
Edward Yang 76edc24c77 Add hook from mundosanjose 2023-03-24 17:01:02 +08:00
what_村长 3266cb4924 !65 在文件管理器上加入@hook('file_manager.content.head.btns.after')
* 1.增加 @hook('file_manager.content.head.btns.after')
* 1.增加 @hook('file_manager.content.head.btns.after')
* 在文件管理器上加入@hook('file_manager.content.head.btns.after')
* 增加hook
2023-03-24 08:26:18 +00:00
Edward Yang 9ee28acf64 fixed country list 2023-03-24 12:59:35 +08:00
Edward Yang a9b39b1632 VIP order relation version 2023-03-24 11:40:22 +08:00
Edward Yang 12600ee14e code format 2023-03-24 11:39:40 +08:00
pushuo b8889cb9c5 Add plugin uninstall reminder
wip

Fix navigation responsiveness issues

brand ui

Fix delete attribute call error api

Optimize plugin when uninstall and check plugin is available for current version.

wip

Fix the loading error of the element language file in the homepage editor

Fix menu page category name getting error

Fix menu page category name getting error ++
2023-03-24 11:38:12 +08:00
tanxiaoyong b7195e2d01 增加hook 2023-03-24 11:32:42 +08:00
Edward Yang 835a7b3098 add nginx and apache rewrite for BT panel 2023-03-22 15:59:24 +08:00
Edward Yang 73c0b9ebf3 buid number 20230318 2023-03-21 09:54:35 +08:00
Edward Yang 3de48b35de Fixed zip open function 2023-03-18 22:20:17 +08:00
TL e61c9a6def 错误处理
wip
2023-03-17 17:02:13 +08:00
Edward Yang ed10fe3df8 add demo of change order state machine process 2023-03-17 12:08:23 +08:00
TL cfc922ae46 Fix the issue of creating an order failure caused by the guest checkout address ID being an empty string (should be an integer).
wip
2023-03-17 11:42:25 +08:00
Edward Yang 5831ea962d Fixed trashed products. 2023-03-17 11:30:16 +08:00
Edward Yang 439be0068e fixed git ignore 2023-03-17 10:39:41 +08:00
pushuo 8e49870218 ElementUI, load the current language pack 2023-03-17 02:12:43 +00:00
Edward Yang 423ed6a145 update version and build 2023-03-17 09:55:15 +08:00
蒲硕 37cb7d30a8 !58 Open the vip pop-up window and add token
* Open the vip pop-up window and add token
2023-03-16 10:17:35 +00:00
TL aacda723b2 修复游客结账时有缘shippingAddress和Paymentaddress为空导致税没计算出来的问题。 2023-03-16 16:37:44 +08:00
Edward Yang ee06e1dbf5 Update theme typo 2023-03-16 15:52:16 +08:00
Edward Yang ebc96147c5 Import demo data 2023-03-16 15:49:40 +08:00
Edward Yang a30c12d86d Update default theme 2023-03-16 15:47:13 +08:00
pushuo 9fe36070c1 add new theme fashion
wip

wip

wip

wip

admin form add hook

Code format

优化插件市场返回上一页

Update openai migration

optimize brands

Optimize page and category hook

模版优化

delete black

wip

Plublish theme files.

Ignore themes except default

删除demo-2

wip

Get enabled themes.

Theme seeder.

Run theme seeder.

update theme

wip

wip

Switch theme and run db seeder

code format

wip

wip
2023-03-16 15:25:45 +08:00
Edward Yang d1cc1bea61 add generator 2023-03-16 10:09:28 +08:00
Edward Yang 1ca5545459 optimize footer 2023-03-16 10:03:27 +08:00
Edward Yang f2f50efb79 use type_route replace shop_route 2023-03-16 09:54:36 +08:00
Edward Yang 7e934151f0 Optimize brand. 2023-03-16 09:38:19 +08:00
pushuo 024a2190f2 admin form add hook
optimize brands

Optimize page and category hook
2023-03-16 09:01:29 +08:00
Edward Yang a75d795098 Refactor url link and label for brand、page and page category. 2023-03-15 15:19:25 +08:00
Edward Yang 68231b0538 Refactor url link and label. 2023-03-15 14:55:00 +08:00
Edward Yang dff24e9675 Get origin image from plugin 2023-03-15 09:52:52 +08:00
Edward Yang 88255f6e7b Use Product::getUrlAttribute to get product url. 2023-03-14 21:13:03 +08:00
Edward Yang 8ab99143b9 Support own OpenAI API Key
Support own OpenAI API Key

fixed openai

check public cache permision when install

check public cache permision when install

Fixed user id

Fixed user id

Fixed api

wip

wip

API Key

wip

fixed openai
2023-03-13 18:59:07 +08:00
Edward Yang 7bf19e2c92 Fixed price in product list. 2023-03-13 15:41:46 +08:00
宋良辰 688f6a2511 !56 修复连续创建客户组失败的问题
* 数字1
* 修复连续创建客户组失败问题
2023-03-13 03:20:03 +00:00
Edward Yang d84393b237 fixed plugin pagination and sidebar 2023-03-10 14:27:54 +08:00
Edward Yang e907a1adae fixed pagination for plugin list 2023-03-10 09:59:58 +08:00
Edward Yang 3e727a6cf9 add attribute language after install new language 2023-03-10 09:43:05 +08:00
pushuo 4d5f217a1e Add a checkbox component to the plug-in edit page
wip

wip

wip

wip

wip
2023-03-10 09:04:47 +08:00
pushuo 265eb68f22 Fix the error in the function of deleting products in the tab-product module
Plug-in optimization

wip

wip

wip
2023-03-09 09:52:27 +00:00
Edward Yang bf5ef979c0 Code format for plugin service provider. 2023-03-09 17:06:19 +08:00
Edward Yang 7eb8fe3477 Code format 2023-03-09 16:58:51 +08:00
pushuo 56f17772ca optimization getListByProductIds 2023-03-09 16:23:56 +08:00
pushuo af6f079b43 components input / InputLocale 2023-03-09 16:23:56 +08:00
Edward Yang 3a456ceb58 Support multiple language for column text. 2023-03-09 16:23:56 +08:00
pushuo 92b005d25c plugin input-locale 2023-03-09 16:23:56 +08:00
pushuo 736388eb7b wip 2023-03-09 16:23:56 +08:00
pushuo ad56dc561f feature plugin form 2023-03-09 16:23:56 +08:00
Edward Yang 5192ebc897 fixed plugin name and description 2023-03-09 16:23:11 +08:00
pushuo fc9b71e052 optimize feature plugin form
wip
2023-03-09 04:12:58 +00:00
Edward Yang 1527721142 Fixed getOrderByIdOrNumber if customer is null or guest customer. 2023-03-09 11:44:01 +08:00
pushuo a329f280d9 rich-text multilingual 2023-03-08 18:12:02 +08:00
Edward Yang c3ce7bdcc1 Fixed plugin description 2023-03-08 17:27:53 +08:00
Edward Yang 873954614a Optimize plugin manager 2023-03-08 15:50:52 +08:00
Edward Yang b023ee7a1c Fixed disabled plugin for home module. 2023-03-08 15:42:11 +08:00
pushuo c66ef7738a wip 2023-03-08 15:01:54 +08:00
Edward Yang 87a37d6252 Optimize plugin types.
wip

wip

wip

Code format
2023-03-08 14:54:44 +08:00
pushuo 8933cbbdd4 Bestseller module plugin for home page designer
支持首页模块插件化

bestseller

wip

wip

Optimize module view path.

wip

Fixed module content

Optimize module view path.

wip

wip

Optimize module view path.
2023-03-08 12:20:53 +08:00
Edward Yang d038ad3f56 update readme 2023-03-08 12:19:13 +08:00
Edward Yang 88187b8b91 update copyright information 2023-03-08 12:17:50 +08:00
pushuo f4e5705175 Modify the installation picture 2023-03-08 12:17:50 +08:00
Edward Yang c24b22dc9d 升级第三方包 2023-03-08 12:17:50 +08:00
pushuo 43a3b6b10a wip 2023-03-08 12:17:50 +08:00
Edward Yang 726c6e2528 fixed plugin permission 2023-03-08 12:17:50 +08:00
pushuo ca02f9c2cf wip 2023-03-08 12:17:50 +08:00
pushuo ac217f36ed 修改词条 2023-03-08 12:17:50 +08:00
pushuo 571eba695d 权限管理 添加插件权限 2023-03-08 12:17:50 +08:00
pushuo e54d9bbc45 403 ui 2023-03-08 12:17:50 +08:00
Edward Yang 5190f39577 OpenAI 权限设置 2023-03-08 12:17:50 +08:00
Edward Yang 75e7fe01ea Fixed order status on account 2023-03-08 12:17:50 +08:00
Edward Yang a1b1f6ba15 修复库存问题: 当购物车中商品加上详情页购买商品大于库存时,可下单成功 2023-03-08 12:17:50 +08:00
Edward Yang 3971ad5977 新增插件读取静态文件helper: plugin_asset() 2023-03-08 12:17:50 +08:00
Edward Yang c7338ba877 添加订单详情页hook 2023-03-08 12:17:49 +08:00
pushuo 9f68330ad5 处理 openai 页面侧边栏样式问题 2023-03-08 12:17:49 +08:00
Edward Yang a11607c6c3 完善插件权限 2023-03-08 12:17:49 +08:00
Edward Yang 72e003e166 修改ChatGPT 描述 2023-03-08 12:17:49 +08:00
pushuo 0dd46eba0b wip 2023-03-08 12:17:49 +08:00
pushuo 40cad5c50f wip 2023-03-08 12:17:49 +08:00
pushuo 077cf6c099 优化openai 样式 2023-03-08 12:17:49 +08:00
pushuo 26188255ad 优化 openai 代码样式 2023-03-08 12:17:49 +08:00
pushuo 4ab15cc605 子分类显示优化 2023-03-08 12:17:49 +08:00
BeikeShop开源好用的跨境电商系统 44f288e817
update README.md.
Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-03-06 03:35:25 +00:00
BeikeShop开源好用的跨境电商系统 ea15f19fcb
update README.md.
Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-03-06 02:58:38 +00:00
BeikeShop开源好用的跨境电商系统 0f871a483c
update README.md.
Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-03-03 03:27:23 +00:00
sunboy 5401b1559c
update README.md.
Signed-off-by: sunboy <liang@guangda.work>
2023-03-03 03:22:42 +00:00
Edward Yang d8ccb852e3 修复数据库密码包含# 2023-03-02 09:06:16 +08:00
BeikeShop开源好用的跨境电商系统 f844a9bd70
update README.md.
Signed-off-by: BeikeShop开源好用的跨境电商系统 <huangyk@guangda.work>
2023-03-01 10:50:01 +00:00
Edward Yang 2dc6a1242f 汇率地址 2023-03-01 17:09:14 +08:00
Edward Yang c1670c6442 fixed debugbar not installed 2023-03-01 15:22:51 +08:00
Edward Yang 2053e6add7 update to 1.3.2 - 20230301 2023-03-01 14:42:57 +08:00
Edward Yang ff094d8cfd phpoffice/phpspreadsheet 2023-03-01 14:33:48 +08:00
Edward Yang 68aacec7d4 update order shipment
优化发货信息修改

wip

wip

发货信息可以编辑
2023-03-01 11:50:17 +08:00
Edward Yang ff6c2211a0 Add OpenAI
Add OpenAI blade

fixed openai route

优化 openai

wip

wip

wip

wip

fixed description

logo

fixed name and description

wip

wip

wip

wip

wip

code format

fixed name and description
2023-03-01 09:51:15 +08:00
Edward Yang 575469ca3d 修复游客结账地址丢失国家 2023-03-01 09:48:22 +08:00
songliang 532057689b 词条优化 2023-02-27 10:35:15 +00:00
songliang c85a5b7575 词条优化 2023-02-27 10:35:15 +00:00
songliang 06735bc0e4 修复客户列表状态显示问题 2023-02-27 10:35:15 +00:00
songliang 0be2a71a8e https://guangdagit.com/projects/bk_mundosanjose/issues/4
解决筛选中文乱码问题
2023-02-27 10:35:15 +00:00
蒲硕 32b35e32c1 !45 前台子分类显示等
* 优化前台子分类显示、优化规格批量修改、商品详情页保存开启前台验证
* 分类页显示子分类
2023-02-27 10:32:41 +00:00
Edward Yang 46b9ebfa41 Show HOOK in debug bar. 2023-02-27 14:53:14 +08:00
Edward Yang 43c7a5461e 修复禁用分类问题 https://guangdagit.com/projects/bk_mundosanjose/issues/8 2023-02-27 09:53:00 +08:00
Edward Yang e1430873a1 完善注册登录模板hook 2023-02-25 12:01:40 +08:00
songliang 313ebe2be5 后台订单列表tr存入id 2023-02-24 03:46:53 +00:00
songliang 4a2ebec30f add hook after customer.form.vue 2023-02-24 03:46:53 +00:00
Edward Yang 9ddf91578b 不能使用config 因为beike service provider 比app service provider 加载更晚 2023-02-22 21:29:41 +08:00
nilsir 107a7371b3 调整代码引用顺序 2023-02-22 03:51:54 +00:00
nilsir c988b851a8 调整配置到数据库存放 2023-02-22 03:51:54 +00:00
nilsir b4586bd452 自动更新汇率, 并显示在后台汇率列表 2023-02-22 03:51:54 +00:00
songliang bb85406c62 客户列表tr中存入数据 2023-02-21 19:08:08 +08:00
Edward Yang 1b1fbf3a4c 添加后台客户管理 hook 2023-02-21 17:32:15 +08:00
Edward Yang 0b118df670 fixed plugin types 2023-02-21 15:47:49 +08:00
pushuo 49fd22944b 优化 第三方登录 后台回调地址不必填 2023-02-21 15:04:14 +08:00
Edward Yang 8ffd3b77c2 add xml to composer 2023-02-21 13:57:55 +08:00
Edward Yang 688d4f42d3 code format 2023-02-21 12:44:12 +08:00
Edward Yang 3ff13b3c70 优化setting 保存json 2023-02-21 10:26:37 +08:00
Edward Yang 59bcdb0fda add filter hook service.payment.pay.data 2023-02-20 18:15:58 +08:00
pushuo fdac7066ed 修复博客内容图片宽度超限问题 2023-02-20 14:09:09 +08:00
pushuo e0c2acc630 优化后台 vip 到期时间显示
wip

wip
2023-02-19 10:11:59 +08:00
Edward Yang 33cb20d436 callback/* 去除CSRF token 2023-02-18 18:13:13 +08:00
Edward Yang f0d3762b66 Code format 2023-02-18 14:32:05 +08:00
Edward Yang 01650b8f11 update readme 2023-02-17 14:58:32 +08:00
pushuo 41aa11bbf2 wip 2023-02-17 14:10:46 +08:00
pushuo 0aa7c345a1 wip 2023-02-17 14:07:57 +08:00
pushuo 0a501c26f0 优化 readme demo 2023-02-17 11:46:36 +08:00
nilsir e5b6a38057 注释错误修复 2023-02-16 14:41:54 +08:00
nilsir 80c6135711 代码错误修复 2023-02-16 14:17:17 +08:00
蒲硕 6803b0e05d !34 处理 issues
* 优化自动完成删除搜索文字后对应id 也删除、优化 php 变量写法 、优化报错信息显示等
* 处理后台商品设置选择税类后无法撤回 -> https://guangdagit.com/beike/beikeshop/issues/281
* 404页面返回上一步链接优化 -> https://gitee.com/beikeshop/beikeshop/issues/I6EG7Z?…
2023-02-15 06:36:17 +00:00
Edward Yang 13e46886a8 完善多語言
多语言优化

词条优化
2023-02-15 14:22:49 +08:00
Edward Yang 31f42458fe 修复flexshipping 兼容性 2023-02-15 11:51:11 +08:00
Edward Yang d0c7b43cce plugin code format 2023-02-15 09:44:47 +08:00
Edward Yang d381396062 添加支付流程 hook 2023-02-15 00:35:41 +08:00
Edward Yang 30f7e5d2a2 修复后台插件显示多语言问题 2023-02-15 00:05:49 +08:00
Edward Yang 0307831081 完善多语言, 修复后台文章列表页标题截取问题 2023-02-14 17:23:38 +08:00
songliang cd0136c892 商品管理词条 客户列表优化
修复非中文input框单独一行

补全词条

文章分类词条

后台用户编辑页样式优化

修復文章分類多語言

词条-内容管理

内容管理

去掉content

属性组词条
非中文input样式优化
2023-02-14 17:01:25 +08:00
Edward Yang d0cee69fc6 属性多语言 2023-02-14 11:24:32 +08:00
TL d8039cead5 属性和属性组权限添加 2023-02-14 11:24:32 +08:00
TL f94fb84a80 安装默认为中文 2023-02-14 11:24:32 +08:00
Edward Yang 07a9417343 完善文章分类权限 2023-02-14 10:23:29 +08:00
Edward Yang 46172e4fa8 添加我要发布插件按钮 2023-02-13 23:17:02 +08:00
Edward Yang cd7a764b01 code format 2023-02-13 21:13:33 +08:00
Edward Yang d25ac50551 通过 php artisan root:password 重置管理员密码 2023-02-13 21:08:02 +08:00
Edward Yang 90c1f0ed15 laravel 默认 web routes 2023-02-13 20:50:17 +08:00
Edward Yang 5566633370 修复状态机库存减扣 2023-02-13 19:14:03 +08:00
Edward Yang d35aeeb86d 完善后台hook 2023-02-13 17:50:59 +08:00
Edward Yang e939088104 发布1.3.0(20230213) 2023-02-13 16:18:38 +08:00
pushuo 7e342e54ef 优化 vip 弹窗 2023-02-13 06:55:18 +00:00
pushuo 417da1899e 修复第三方登录弹窗失效 2023-02-13 06:55:18 +00:00
songliang d7276d2f4a fix img方法 2023-02-13 13:58:29 +08:00
Edward Yang 1675a07c9b 修复后台单引号 html encode 问题 2023-02-12 20:23:10 +08:00
Edward Yang 26d8f562ee 修复文章作者 2023-02-12 01:02:47 +08:00
Edward Yang 23f46124cd 添加首页和底部 blade hook 2023-02-11 21:08:07 +08:00
Edward Yang f2d7f76ab9 修复文章查看数为空保存报错 2023-02-11 20:37:07 +08:00
Edward Yang 63638f9588 修复插件多语言读取 2023-02-11 10:06:47 +08:00
Edward Yang a5191440c6 修复游客结账客户组折扣问题 2023-02-11 09:29:05 +08:00
Edward Yang 34c45dcde9 fixed installation 2023-02-10 23:47:58 +08:00
Edward Yang 6957eefae6 升级到 v1.3.0 2023-02-10 23:09:44 +08:00
Edward Yang 407c03bea3 添加后台数据hook 和流程 hook 2023-02-10 23:08:05 +08:00
Edward Yang 85edc96d41 code format 2023-02-10 21:56:20 +08:00
Edward Yang 7e972a8723 添加文章分类相关功能
优化链接配置词条

文章分类状态默认修改

wip

wip
2023-02-10 21:50:38 +08:00
TL 1276d0a98b 会员组折扣功能
客户组编辑释放出折扣率

会员组折扣

客户组折扣

wip

会员组折扣

会员组折扣
2023-02-10 02:39:54 +00:00
Edward Yang 27bfe41623 支持插件修改订单状态机流程 2023-02-08 19:02:12 +08:00
Edward Yang 0f0ba924ce 获取购物车商品总额 2023-02-08 18:00:05 +08:00
Edward Yang a55d234e94 优化插件类型 2023-02-08 17:23:21 +08:00
Edward Yang c0482e5f1c 完善 blade hook 2023-02-08 16:18:46 +08:00
Edward Yang b744abfadf 修复第三方登录插件 2023-02-08 16:08:26 +08:00
pushuo 3ad6129740 wip 2023-02-08 16:06:45 +08:00
pushuo 0a0a9ab25f 处理 第三方登录后台配置使用 admin_route 报错问题 2023-02-08 16:06:45 +08:00
pushuo 9191f51176 优化后台 vip ui 等
同上

后台 form 组件value 添加 html_entity_decode

修改结账设置词条

优化获取版本更新、vip 状态逻辑

wip
2023-02-08 15:51:42 +08:00
Edward Yang 1a653be8fa 修复前台支付和配送多语言 2023-02-08 10:06:19 +08:00
Edward Yang 74f8cdafe9 支持插件名称和描述多语言 2023-02-08 09:13:23 +08:00
Edward Yang 6b125a0aa9 添加前台分类页筛选 2023-02-07 18:34:40 +08:00
Edward Yang f0239b8f62 fixed order list resource 2023-02-07 17:53:30 +08:00
Edward Yang 572e23b2bb 添加后台产品编辑 hook
添加后台产品编辑 hook
2023-02-07 15:50:50 +08:00
Edward Yang c95d9be140 OC 导入产品分类 2023-02-07 15:42:31 +08:00
Edward Yang 9fe2b28655 添加 Order::subTotal 和 Order::getNextStatuses 方法 2023-02-07 15:26:49 +08:00
Edward Yang c60e32b401 增加 setting hook 2023-02-07 15:07:28 +08:00
Edward Yang 72a385efbb 修复stripe密钥长度限制 2023-02-07 13:57:37 +08:00
Edward Yang ed5a43b692 完善 hook demo 2023-02-07 11:49:22 +08:00
Edward Yang 6095b5de23 hook_action 统一命名 2023-02-07 11:19:17 +08:00
Edward Yang 393b25f34e 添加前台controller hooks 2023-02-07 10:19:30 +08:00
Edward Yang 65c65a11fb 添加订单和产品hook 2023-02-07 09:51:01 +08:00
Edward Yang 6eeeea11cc 自动读取主题 2023-02-06 17:15:38 +08:00
pushuo c17e1fb651 优化黑色模版 2023-02-06 09:01:00 +00:00
TL 6d4c9ba9a7 安装程序默认语言改为中文,且后台根用户默认语言根客户安装语言一致 2023-02-06 09:00:13 +00:00
Edward Yang 3a65ad5233 remove offline pay 2023-02-06 16:12:30 +08:00
Edward Yang c455e5a949 update checkout order confirm 2023-02-06 16:09:51 +08:00
Edward Yang 33644b40c9 统一hook命名
add_filter => add_hook_filter
add_action => add_hook_action
blade_hook => add_hook_blade
wrapperhook => hookwrapper
endwrapperhook => endhookwrapper
2023-02-06 14:47:09 +08:00
Edward Yang 4d6c89cf6c 只有已启用插件才能执行 route 和 middleware 2023-02-06 11:44:38 +08:00
Edward Yang 76e45fd16e 修复修改后台目录后第三方登录插件问题 2023-02-06 10:24:17 +08:00
Edward Yang b36ebb3cb0 change english version of copyright 2023-02-06 10:14:01 +08:00
Edward Yang e19a5b42d5 修改copyright 2023-02-06 09:53:34 +08:00
pushuo c022e1f75b 修复购物车页面ui 2023-02-03 18:42:18 +08:00
pushuo 72f7004cf2 后台版本更新提示 2023-02-03 10:22:43 +00:00
pushuo 7a142b7c6c 首页模块添加 富文本模块 -> https://gitee.com/beikeshop/beikeshop/issues/I61OI4?from=project-issue 2023-02-03 10:22:43 +00:00
pushuo f0526c1177 后台部分页面添加 hook 埋点 2023-02-03 10:22:43 +00:00
pushuo ee833b9eaa 优化后台 订单管理、商品管理、客户管理 列表筛选等 2023-02-03 10:22:43 +00:00
Edward Yang db6614e7a3 去除paypal构造函数访问远程, 提升route:list 性能 2023-02-03 17:10:51 +08:00
Edward Yang 02855c5fb3 修改插件前台路由格式 2023-02-03 17:08:46 +08:00
Edward Yang e69f9f819a 修改插件忽略配置 2023-02-03 12:00:35 +08:00
Edward Yang 0aaccebccf 离线支付插件 2023-02-03 12:00:35 +08:00
songliang 3fb202cebc 新增hook 2023-02-03 12:00:35 +08:00
songliang 8be5c71871 后台订单列表页和详情页新增hook 2023-02-03 12:00:35 +08:00
Edward Yang 7100d83d61 修复RichText 大小写问题 2023-02-03 12:00:35 +08:00
Edward Yang 59da252a18 添加块级修改hook: wrapperhook 2023-02-03 12:00:35 +08:00
pushuo 59f47ec84c 首页模块添加 商品模块 和 图标链接模块 2023-02-03 12:00:35 +08:00
Edward Yang 2743057667 删除多余的category_id 2023-02-03 12:00:35 +08:00
Edward Yang 843bdb73fe 支持插件middleware 2023-02-03 12:00:35 +08:00
Edward Yang bf632700a0 添加面包屑library 2023-02-03 12:00:35 +08:00
Edward Yang 1220abb705 Code format 2023-02-03 12:00:35 +08:00
Edward Yang 588d3b0e90 添加插件开发demo 2023-02-03 12:00:35 +08:00
Edward Yang 0c47803a90 添加注释 2023-02-03 12:00:35 +08:00
Edward Yang 632b18006a 添加注释 2023-02-03 12:00:35 +08:00
Edward Yang ed1badd404 添加模板hook功能
代码优化 添加优先级

添加 header demo

add demo

修改产品详情页

修改产品详情页
2023-02-03 12:00:35 +08:00
pushuo bd14ecf41b https://gitee.com/beikeshop/beikeshop/issues/I6BXVS?from=project-issue 2023-02-03 12:00:35 +08:00
pushuo 8451c0b819 后台商品详情多规格批量设置等 2023-02-03 12:00:35 +08:00
Edward Yang ed31084759 fixed rich text conponent 2023-02-03 12:00:35 +08:00
Edward Yang 9b484e03f2 RichText 命名优化 2023-02-03 12:00:35 +08:00
Edward Yang e00ad4f241 去除筛选页分类限制 2023-02-03 12:00:35 +08:00
pushuo 5d4f0c99df 后台添加 richtext 组件,删除原 textarea 组件富文本判断
删除测试 FlatShipping 代码

删除多余参数
2023-02-03 12:00:35 +08:00
pushuo d35952fe5c 优化品牌列表 ui 2023-02-03 12:00:35 +08:00
pushuo fcee9191ad 优化页尾编辑 版权信息,被删除图片后不应该显示默认图 2023-02-03 12:00:35 +08:00
pushuo f643c76632 修复 一行四图pro 模块建议尺寸错误等 2023-02-03 12:00:35 +08:00
Edward Yang 9579ae8c08 修复前台选择每页数量后翻页问题 2023-02-03 12:00:35 +08:00
tim b61c8cf9b6 product autocomplate搜索关键字使用包含条件 2023-02-03 12:00:35 +08:00
TL 1b4c5bf027 增加数据库表的comment 2023-02-03 12:00:35 +08:00
Edward Yang 30b7f7e33f
修改PHP版本要求
Signed-off-by: Edward Yang <yangjin@guangda.work>
2023-02-03 02:09:23 +00:00
Edward Yang 35e3655ae6 添加二级菜单路由前缀以便让插件修改 2023-01-16 11:34:46 +08:00
Edward Yang 1a53a7fbeb 完善产品属性迁移脚本 2023-01-13 17:23:04 +08:00
TL f3de1b098a 个人中心售后申请详情页状态显示问题 2023-01-13 16:26:34 +08:00
pushuo e41d366f60 修复 分类页价格筛选 2023-01-13 16:26:34 +08:00
Edward Yang 7e569330d7 代码格式优化 2023-01-13 15:51:49 +08:00
Edward Yang 0eda9b8cec 订单支付页面如果订单已支付则跳转订单详情页 2023-01-13 14:53:23 +08:00
Edward Yang 459bb3db51 完善mailgun, sendmail 邮件发送 2023-01-13 14:28:24 +08:00
pushuo 50ca3e4aff 修复 stripe 插件前端 vue 引入链接错误 2023-01-13 12:21:06 +08:00
Edward Yang 8634a9a861 V1.2.8 2023-01-13 11:52:13 +08:00
Edward Yang 6a600d1f16 优化英文语言包 2023-01-13 11:51:39 +08:00
pushuo 470d5cf21c 优化分类筛选 ui等 2023-01-13 11:31:57 +08:00
TL d0aeeb522b 删除属性时检查是否有商品使用
删除商品时删除商品分、商品相关、商品sku、商品属性、商品描述
2023-01-13 03:27:08 +00:00
TL 216bf84a2c 删除属性组时同时删除描述
删除属性组时检查是否有属性在使用
删除属性时同时删除描述
2023-01-13 03:27:08 +00:00
Edward Yang 7443f9d74c 属性demo 2023-01-13 11:22:25 +08:00
Edward Yang 1e2583b421 add attribute seeder
创建属性组

产品属性和分类demo

多规格商品

子商品demo数据
2023-01-13 11:17:14 +08:00
pushuo d3624990e8 优化后台使用 element ui 翻页,显示总条数 2023-01-12 18:22:19 +08:00
pushuo 853b2b03b9 修复编辑属性 表单验证问题 2023-01-12 17:30:14 +08:00
pushuo 2012d2b0f5 修复 seeder 数据 2023-01-12 16:28:53 +08:00
pushuo ef6185b13d 修复 seeder 数据 2023-01-12 16:25:16 +08:00
pushuo 0c74f77fcc 优化商品属性显示等 2023-01-12 16:19:00 +08:00
TL 13936b36c2 商品属性 2023-01-12 16:11:16 +08:00
TL 1a23c49f90 售后申请自动取订单的电话号码
https://guangdagit.com/beike/beikeshop/issues/268#issuecomment-19073
2023-01-12 15:48:26 +08:00
Edward Yang 100333d56f 优化 masterSku 命名 2023-01-12 15:46:53 +08:00
pushuo 181faeb4a1 优化商品筛选和相关商品等ui 2023-01-12 10:22:36 +08:00
pushuo 2f66a6b945 优化分类筛选等 2023-01-12 09:24:27 +08:00
Edward Yang 71ab7a5da8 优化后台图片管理器性能 2023-01-11 19:40:26 +08:00
pushuo 5919f0d971 优化筛选 ui 2023-01-11 19:30:32 +08:00
pushuo fe66b21e9c 分类筛选前端 2023-01-11 17:46:45 +08:00
Edward Yang 79f6f77e2d 获取分页数列表 2023-01-11 17:30:23 +08:00
TL 421c73fe7e 分类详情页的分类列表 2023-01-11 16:46:46 +08:00
TL b071433bef 商品筛选排序 2023-01-11 16:06:58 +08:00
Edward Yang 0927019297 使用config()替换env()获取配置 2023-01-11 15:38:49 +08:00
TL 1eb219cc0e 商品筛选排序 2023-01-11 15:24:55 +08:00
TL a3d2236df8 商品筛选 2023-01-11 14:15:12 +08:00
Edward Yang 671a7f18d0 config 优化 2023-01-11 14:06:54 +08:00
TL 8cf154bbab 商品筛选 2023-01-11 11:59:24 +08:00
TL 9052087431 商品筛选 2023-01-11 11:49:37 +08:00
pushuo af58eb52f1 优化词条、前台 ui、修复后台详情页商品ID显示错误等 2023-01-10 19:38:07 +08:00
TL b177e7d7fd 商品筛选 2023-01-10 18:36:36 +08:00
TL 4a157a8e8f 分类页商品筛选 2023-01-10 17:34:14 +08:00
Edward Yang 71d1d39a47 code format 2023-01-10 17:20:18 +08:00
Edward Yang 9f3946253a 从OC导入产品数据脚本 2023-01-10 16:51:27 +08:00
Edward Yang 1f15bbda6f Code format 2023-01-10 14:54:05 +08:00
Edward Yang 434d94c01d 使用laravel/pint格式化代码 2023-01-10 14:38:26 +08:00
Edward Yang 0911ba6102 remove unnecessary files 2023-01-10 14:06:31 +08:00
pushuo 5d58662e82 修改邮件引擎配置 2023-01-10 10:05:57 +08:00
pushuo 4a423b7500 优化后台编辑商品属性为空验证 2023-01-09 15:52:53 +08:00
pushuo 17e2af1e2a 优化邮件 logo 显示问题 2023-01-09 09:54:15 +08:00
Edward Yang 581afaf330 后台客户倒序排列 2023-01-07 21:46:21 +08:00
Edward Yang 0b1bb96039 如果第三方登录未返回email, 则随机生成
如果第三方登录未返回email, 则随机生成

如果第三方登录未返回email, 则随机生成
2023-01-07 21:44:39 +08:00
nilsir 4d2e11057f 调整pint配置 2023-01-07 14:01:06 +08:00
pushuo 89725cb383 完善 商品、分类 TDK等 2023-01-06 19:02:43 +08:00
Edward Yang 53689a70c2 修改 meta_keyword 为 meta_keywords 2023-01-06 18:48:55 +08:00
Edward Yang 81013aaeb0 修改 meta_keyword 为 meta_keywords 2023-01-06 18:43:36 +08:00
TL 5300993c7b 关联商品 2023-01-06 18:17:02 +08:00
Edward Yang 799e689d9f 商品详情页返回 TDK 2023-01-06 18:15:37 +08:00
nilsir 1948aeb866 修复错误文件(语言包) 2023-01-06 10:03:38 +00:00
nilsir cee6fbe296 安装pint 2023-01-06 10:03:38 +00:00
pushuo c1db80eaaa 相关后台商品配置和 前台ui 2023-01-06 17:22:24 +08:00
TL 6e8d7f295f 相关商品功能 2023-01-06 15:51:30 +08:00
pushuo c5da315a30 商品详情页添加 TDK,后台配置 2023-01-06 15:42:46 +08:00
pushuo 2852732891 优化后台属性创建交互 2023-01-06 15:14:55 +08:00
pushuo c05b21efc7 属性配置前端 2023-01-06 14:46:34 +08:00
TL de7df33788 编辑属性组 2023-01-06 14:42:33 +08:00
TL 1613adc3fa 商品属性功能后端代码 2023-01-06 11:41:38 +08:00
pushuo a91477bf25 修复未登录时点击收藏按钮,走登录逻辑 2023-01-06 11:39:44 +08:00
Edward Yang b7e402a732 升级 nette/schema, 兼容PHP8.2 2023-01-06 10:44:19 +08:00
pushuo fe0f922de0 前台商品详情页添加品牌显示 2023-01-05 18:41:12 +08:00
Edward Yang 4f5b2821e6 产品详情页添加品牌信息 2023-01-05 18:37:29 +08:00
pushuo 8384db4911 优化后台系统设置快递公司必填判断等 2023-01-05 17:47:10 +08:00
Edward Yang 9dbc004044 添加更新插件action hook 2023-01-05 17:38:29 +08:00
Edward Yang 726b607a88 添加更新插件action hook 2023-01-05 17:37:54 +08:00
TL 102ffb4fa4 use 2023-01-05 16:32:55 +08:00
pushuo 969399525c 优化 checkout 结构等 2023-01-05 16:24:49 +08:00
pushuo f46ca53bf3 优化游客结账 结账页 2023-01-05 15:31:47 +08:00
Edward Yang 81a99fa32e 修复品牌排序问题 2023-01-05 15:24:43 +08:00
pushuo 3e28593746 修复前台游客结账地址管理问题 2023-01-05 15:23:07 +08:00
pushuo 98f02dd7b4 未登录 地址管理不显示默认按钮 2023-01-05 15:12:47 +08:00
TL 15302b3c28 游客结账 2023-01-05 15:12:47 +08:00
pushuo 7d48a7e140 游客结账登录 2023-01-05 15:12:47 +08:00
TL 4cb3bfda91 游客结账登录中间件,游客登录购物车合并 2023-01-05 15:12:47 +08:00
pushuo 99c32242cb 游客结账添加后台配置、优化词条等 2023-01-05 15:12:47 +08:00
pushuo 79a88bfb63 游客结账前端 2023-01-05 15:12:46 +08:00
TL a0382782d0 游客结账后端部分 2023-01-05 15:12:46 +08:00
TL 2b8cbdf1ac 游客结账后端部分 2023-01-05 15:12:46 +08:00
Edward Yang 94c3094c18 修复图片太大缩略导致内存不足 2023-01-05 14:27:47 +08:00
TL b91d0184a2 hook for 到店自提 2023-01-03 19:04:53 +08:00
pushuo 9e8f4e3ea7 修复服务图标 启用按钮失效问题 2023-01-03 18:15:13 +08:00
Edward Yang cfd2c9911a 后台安装时 执行 migrate 2023-01-03 14:30:00 +08:00
pushuo f07e511256 修复后台商品 update 方法抛异常,返回 route 错误 2022-12-30 16:17:58 +08:00
pushuo 70b2d83682 添加 前后台订单详情页和结账页插件 html 代码插入点、优化地址管理弹窗 2022-12-30 15:20:20 +08:00
TL f26cbaf0dd 适配到店自提功能添加一些hook 2022-12-30 10:41:07 +08:00
pushuo 3c6442d698 优化导航菜单项没配置文字不应显示、优化404页面、优化商品详情 分类 品牌 title 显示对应名称、优化后台头部 添加 admin_locale 等 2022-12-29 17:44:29 +08:00
Edward Yang c2b82b4bee 修复默认运费 2022-12-29 12:00:36 +08:00
pushuo fb02010079 修复插件市场 列表页插件 url 问题 2022-12-28 16:21:38 +08:00
Edward Yang 03d0ba9b42 添加checkout action_hook 2022-12-28 16:21:38 +08:00
Edward Yang 08d951fe90 add action hook 2022-12-28 16:21:38 +08:00
Edward Yang 282987f1ff 加载前台主题模板路径,用于装修预览 2022-12-28 16:21:38 +08:00
pushuo dbae784622 客户管理回收站 2022-12-28 16:21:38 +08:00
TL d7b7c173e4 客户回收站 2022-12-28 16:21:38 +08:00
TL 6109d7c5c4 customer回收站功能 2022-12-28 16:21:38 +08:00
Edward Yang 4a98a53b99 修复后台选择语言已卸载 2022-12-27 17:21:49 +08:00
Edward Yang e338aa07aa change customer_socials:access_token to text 2022-12-27 11:25:26 +08:00
pushuo 1867349057 修复订单邮件词条错误 2022-12-27 11:13:19 +08:00
pushuo 7dbf37bcfa 修复页尾装修 logo介绍,在只有一种语言情况下无法修改内容 2022-12-27 11:13:19 +08:00
Edward Yang a3787d4cab hook action return void 2022-12-27 11:13:00 +08:00
Edward Yang 63b41e54a6 修复邮件注册 2022-12-27 10:40:17 +08:00
Edward Yang d90d55fc82 更新到1.2.5 2022-12-26 16:49:46 +08:00
Edward Yang a65caab2f9 添加mail后台配置
邮件

邮件设置

no message

set smtp setting

fixed mail template

wip

fixed mail

fixed mail

fixed mail config

wip

wip

add others email template

fixed mail

添加  horizon 面板,采用队列发送邮件

重构邮件发送

是否使用队列后台配置

使用队列发送邮件

customer new order

重构邮件发送

update code

code optimize

wip

wip

wip

是否提醒多语言

优化邮件

wip

wip

订单是否提醒状态更新修改

wkip

wip

fixed email locale

wip

找回密码邮件

wip

修改类名

后台找回密码和验证码邮件

wip

前后台找回密码验证email

后台找回密码
2022-12-26 16:40:34 +08:00
Edward Yang 3ac1152c65 文件夹倒序 2022-12-26 10:42:40 +08:00
Edward Yang 7c3670dd22 按照输入产品ID排序 2022-12-23 14:55:41 +08:00
pushuo 06604a3d19 修复手机端,sku 图片切换问题 -> https://gitee.com/beikeshop/beikeshop/issues/I66R0Z?from=project-issue 2022-12-23 11:06:38 +08:00
TL 548405a983 订单增加payment_country_id, payment_zone_id, shipping_country_id, shipping_zone_id 2022-12-22 14:39:59 +08:00
pushuo 970419a175 修复后台文件管理器创建新文件夹后,右侧文件内容区域没有清空的问题 2022-12-22 11:31:22 +08:00
Edward Yang 83b468907b 使用 Laravel\Socialite 优化第三方登录
优化callback

优化 Social ui 交互

优化第三方登录

优化第三方登录

 优化第三方登录
2022-12-21 14:23:33 +08:00
pushuo 85cfe3ecf5 优化订单详情页 快递公司 选择判断 2022-12-21 14:23:33 +08:00
pushuo 88160552c4 后台订单状态管理 发货快递单号添加
添加订单邮编

添加订单邮编

前后台订单详情页添加地址邮编

添加发货单号

优化订单详情页 添加快递公司配置

fixed shipment

发货功能

fixed order shippment

添加前后台订单详情发货信息

优化后台快递公司配置

fixed order shipment

修改 express_company 为 express_code

add code

发货设置
2022-12-21 14:23:33 +08:00
蒲硕 b91373a093 !8 添加统计代码,前端网页插入代码
* wip
* 统计代码 头部插件代码
2022-12-21 14:23:33 +08:00
pushuo 4696b75bf3 修复导航菜单防止小屏幕下(非手机端),配置列数过多 显示错误 -> https://gitee.com/beikeshop/beikeshop/issues/I66KP9?from=project-issue 2022-12-21 14:23:33 +08:00
Edward Yang f97496d6de 修复单词拼错 meta_tiele => meta_title 2022-12-21 14:23:33 +08:00
Edward Yang fe16241f26 后台配置每页显示数量 2022-12-21 14:23:33 +08:00
pushuo 40f8cf8c9c 每页显示商品个数 个数后台配置 2022-12-21 14:23:33 +08:00
Edward Yang 6aa4c4b24e 优化后台登录,记住邮箱密码 2022-12-21 14:23:21 +08:00
Lucky dbf6963475 add beike/Admin/Http/Requests/LoginRequest.
为后台Login登录 建立LoginRequest验证器 

Signed-off-by: Lucky <838210386@qq.com>
2022-12-21 06:17:55 +00:00
Edward Yang 67adb1b79f
!9 update beike/Admin/Http/Controllers/LoginController.php.
Merge pull request !9 from Lucky/N/A
2022-12-21 06:14:34 +00:00
Edward Yang 2243b63e76 upgrade readme document 2022-12-21 09:29:55 +08:00
Edward Yang 2288afd01f 升级方法 2022-12-21 09:28:38 +08:00
Lucky ce2626e8e8
update beike/Admin/Http/Controllers/LoginController.php.
Signed-off-by: Lucky <838210386@qq.com>
2022-12-20 09:35:34 +00:00
Edward Yang 051e1d9790 fixed category path index 2022-12-14 12:29:34 +08:00
Edward Yang f5e20ce2da revert code 2022-12-14 12:09:12 +08:00
Edward Yang 3f81dec2eb 添加索引 2022-12-14 12:03:31 +08:00
pushuo cadc91d2da 去除后台插件列表上传插件程序 2022-12-14 11:09:52 +08:00
Edward Yang f55255ba8b 优化获取单个商品名称性能 2022-12-14 11:08:55 +08:00
Edward Yang 5a94945dee 优化SKU数据量大(5万+)的时候性能问题 2022-12-14 10:51:40 +08:00
Edward Yang 28c9e44ef9 修复下单时配送插件编码报错 2022-12-13 18:31:58 +08:00
songliang 96577ab1d6 https://gitee.com/beikeshop/beikeshop/issues/I63IOI?from=project-issue 调整移动端商品详情页图片样式 2022-12-07 18:10:07 +08:00
Edward Yang 2bbff19a86 update to version 1.2.0 2022-12-07 17:27:44 +08:00
pushuo 9a09a42f81 优化 插件详情h5 2022-12-07 17:21:13 +08:00
songliang fa7a31ec9c 后台h5响应式 2022-12-07 17:21:13 +08:00
Edward Yang bb346ab584 如果配送插件关闭或卸载,则重新计算运费 2022-12-07 17:21:13 +08:00
Edward Yang 9f67ec43f0 后台下单购买插件
购买插件

wip

wip

购买插件微信支付

wip

优化插件购买

wip

修复插件购买

添加插件接口

返回json

wip

优化插件详情页购买ui交互

添加弹出层插件

wip

wip

wip

插件市场设置 token 优化
2022-12-07 17:21:13 +08:00
pushuo ec30668fa4 删除商品组件 hover 显示第二张图 2022-12-07 17:21:13 +08:00
Edward Yang 6a21576f06 列表页显示主商品图片 2022-12-07 17:21:13 +08:00
Edward Yang 9bec24b2cb 获取当前货币ID 2022-12-07 17:21:13 +08:00
Edward Yang 4441ad5fec 修复固定运费计算 2022-12-07 17:21:13 +08:00
Edward Yang 9451ab57a6 修改固定运费计算 2022-12-07 17:21:13 +08:00
Edward Yang fc496aa4dd 重构结账页total计算 2022-12-07 17:21:13 +08:00
Edward Yang 55423be548 计算购物车商品总额 2022-12-07 17:21:13 +08:00
pushuo cc6f47a99d 优化 .editorconfig 文件 2022-12-07 17:21:13 +08:00
pushuo b48342403a 修复 后台favicon 不显示问题 2022-12-07 17:21:13 +08:00
pushuo 0b372e0325 隐藏已完成的订单的修改状态和更新 -> https://gitee.com/beikeshop/beikeshop/issues/I644CN?from=project-issue 2022-12-07 17:21:13 +08:00
Edward Yang 9413de29c7 增加 checkoutService 属性 totalService 2022-12-07 17:21:13 +08:00
Edward Yang a6322880d0 重构配送方式 2022-12-07 17:21:13 +08:00
pushuo 126755cf89 优化 chekcout 数据更新 2022-12-07 17:21:13 +08:00
Edward Yang 42b86f3cec code format for shipping service 2022-12-07 17:21:12 +08:00
Edward Yang 088d3103fe 修改 flat shipping 结构
结账页配送插件循环结构优化

fixed shipping service

wip
2022-12-07 17:21:12 +08:00
Edward Yang 58223f5ea8 重构配送方式,一个运费插件支持多个配送方式 2022-12-07 17:21:12 +08:00
pushuo 04c3385ef1 修复 后台/首页编辑器 配置链接 :无链接的情况 还是会点击到首页的问题 -> https://gitee.com/beikeshop/beikeshop/issues/I63FQQ?from=project-issue 2022-12-07 17:21:12 +08:00
pushuo 6f5147edb8 删除一些插件的映射 sourcemap 代码 https://gitee.com/beikeshop/beikeshop/issues/I61OJM?from=project-issue 2022-12-07 17:21:12 +08:00
Edward Yang b5db580ee5 优化zone列表读取 2022-11-25 09:36:25 +08:00
pushuo 52d55d18e8 修复安卓手机端商品详情兼容问题 2022-11-24 09:47:18 +08:00
Edward Yang a22b63198c 修复在 Android 系统无法下单 2022-11-24 09:20:50 +08:00
Edward Yang a3000ab36f 修复宝塔 Windows 环境PayPal报错,去除SSL验证 2022-11-23 14:47:14 +08:00
pushuo 5eadd65981 修复支付插件 logo 2022-11-22 18:07:56 +08:00
pushuo 9fe3b46dc1 优化后台登录 title 标签词条 2022-11-22 15:41:10 +08:00
pushuo b4fc5948f0 优化 paypal ui 2022-11-22 15:41:10 +08:00
Edward Yang 7710b0a0b7 upgrade to version 1.1.2 2022-11-22 15:36:53 +08:00
Edward Yang 3bf40cdc96 修复 paypal, stripe 图标 2022-11-22 14:21:44 +08:00
pushuo fc663f6c14 优化 paypal 支付 ui 2022-11-22 14:20:33 +08:00
Edward Yang 940b82cdeb 显示paypal错误 2022-11-22 13:59:31 +08:00
Edward Yang eb16ddf105 完善stripe 2022-11-22 11:07:34 +08:00
Edward Yang 3ecff0b803 修复结账页金额 2022-11-22 09:27:04 +08:00
pushuo d3089a6d50 结账页面 ui 优化 2022-11-22 09:24:50 +08:00
Edward Yang daf5de8973 修复语言包 2022-11-21 17:37:10 +08:00
Edward Yang 55da96c94f 优化语言包 2022-11-21 14:21:15 +08:00
pushuo 50d414f5e7 wip 2022-11-21 14:18:55 +08:00
Edward Yang 8e67faf4fb fixed order variant 2022-11-21 14:14:26 +08:00
pushuo f893a77545 修复装修自定义链接无效问题 -> https://gitee.com/beikeshop/beikeshop/issues/I61AU8?from=project-issue 2022-11-16 09:56:22 +08:00
pushuo bfa77f6cbd 修复轮播图在只有一张的时候,也轮播且无连接也跳转问题 -> https://gitee.com/beikeshop/beikeshop/issues/I61CZ4?from=project-issue 2022-11-16 09:18:28 +08:00
pushuo 3b5917d27f 优化横幅模块在大分辨率屏幕下的居中问题 -> https://gitee.com/beikeshop/beikeshop/issues/I61CZO?from=project-issue 2022-11-16 09:11:24 +08:00
pushuo 8f01392c74 优化用户头像上传,第二次无法上传同一张图的问题 2022-11-15 14:53:27 +08:00
pushuo 49c1fd49a7 隐藏忘记密码 2022-11-15 11:33:37 +08:00
Edward Yang 257b9c620d 修复文件创建目录权限问题 2022-11-15 11:23:28 +08:00
pushuo f8d70ca46b 优化响应式 -> https://gitee.com/beikeshop/beikeshop/issues/I6151F?from=project-issue 2022-11-15 10:47:31 +08:00
Edward Yang 3877b1f0d9 update readme 2022-11-14 21:46:08 +08:00
pushuo 71237ca31d 添加 多规格编辑辅助说明文字 -> https://gitee.com/beikeshop/beikeshop/issues/I60WOC?from=project-issue 2022-11-14 16:04:49 +08:00
pushuo e086c2f570 https://gitee.com/beikeshop/beikeshop/issues/I60WLL?from=project-issue 2022-11-14 15:51:28 +08:00
pushuo 34d91c1bf6 修复了后台文章编辑报错的时候 丢失已写内容 -> https://gitee.com/beikeshop/beikeshop/issues/I60WKN?from=project-issue 2022-11-14 14:58:28 +08:00
pushuo 7cd4fba72f 商品详情页型号没有不显示 -> https://gitee.com/beikeshop/beikeshop/issues/I60WOC?from=project-issue. 2022-11-14 14:36:56 +08:00
pushuo cd8bed7d30 手机响应式 详情页隐藏面包屑 -> https://gitee.com/beikeshop/beikeshop/issues/I60WOQ?from=project-issue 2022-11-14 14:11:40 +08:00
Edward Yang b61d560f49 order totals 改为小数 2022-11-11 18:07:17 +08:00
pushuo 8573766ccd wip 2022-11-11 18:03:35 +08:00
pushuo 03cf8159b2 修复后台编辑客户地址身份错误问题 2022-11-11 18:02:11 +08:00
pushuo 50c33fd9d2 修改 readme 2022-11-11 14:50:04 +08:00
Edward Yang 02cdd6b040 生成数据字典 2022-11-11 14:50:04 +08:00
Edward Yang b0c0c8b9fa add comment for failed jobs 2022-11-11 14:50:04 +08:00
Edward Yang eb1a29d69f 更改 migration 表以及字段备注 2022-11-11 14:50:04 +08:00
Edward Yang 43edd08b64 修复版权说明 无法关闭 2022-11-11 14:50:03 +08:00
pushuo 24063e9d7d 安装版权说明优化 2022-11-11 14:50:03 +08:00
pushuo d658d16edb 修复后台部分配置多语言把未开启的也加进来 2022-11-11 14:50:03 +08:00
Edward Yang 1677664285 修改插件联系人邮箱 2022-11-11 14:50:03 +08:00
Edward Yang 97f3db810a 清理后台分类数据 2022-11-11 14:50:03 +08:00
pushuo aa76941cf7 修复后台商品列表 创建商品按钮判断错误问题 2022-11-11 14:50:03 +08:00
pushuo 7bb7939f76 安装引导添加版权说明 2022-11-11 14:50:03 +08:00
pushuo 874cf8f84b 后台插件市场列表设置 token 添加 获取 Token 按钮 2022-11-11 14:50:03 +08:00
pushuo 3e6d1db82a 优化右侧弹出购物车 Ui 等交互 2022-11-11 14:50:03 +08:00
So d766dfbe36 购物车商品模型增加独立字段attr作为规格
修正安装完成时写入配置文件的域名

修正安装完成时写入配置文件的域名

购物车商品模型增加独立字段attr作为规格
2022-11-11 14:50:03 +08:00
Edward Yang b1ac15af0e 修复默认货币以及汇率 2022-11-11 14:49:36 +08:00
Edward Yang fc3dd67fae
update README.md.
Signed-off-by: Edward Yang <yangjin@guangda.work>
2022-11-11 01:03:57 +00:00
Edward Yang 27ca333817 优化底部联系我们邮箱显示 2022-11-07 09:21:45 +08:00
Edward Yang 8cddc5fa5a 修复品牌页翻页问题 2022-11-07 09:08:43 +08:00
Edward Yang 683145f45a 删除多余文件 2022-11-04 17:14:54 +08:00
Edward Yang cbf56ba55d release v1.1.1 2022-11-04 17:11:46 +08:00
pushuo 5916ea0b31 修复插件市场列表筛选 name 2022-11-04 16:49:53 +08:00
pushuo 73ee668c8b wip 2022-11-04 16:48:36 +08:00
pushuo de1c40121b 插件市场详情添加 获取 token 链接 2022-11-04 16:48:12 +08:00
pushuo eb0b08bd6c 完善右侧购物车弹窗层功能 2022-11-04 16:02:57 +08:00
pushuo f1a8d55eec 增强左侧购物车弹出层功能 2022-11-04 14:38:31 +08:00
Edward Yang 4ce6a39d38 前台产品搜索支持通过sku model筛选 2022-11-04 14:29:04 +08:00
pushuo 354d43028d wip 2022-11-04 14:07:16 +08:00
Edward Yang 103826fdb4 优化第三方登录按钮 2022-11-04 14:07:16 +08:00
pushuo 97cbbba590 wip 2022-11-04 14:07:16 +08:00
pushuo 8a9eef81e7 修复商品详情页描述图片缺失问题 2022-11-04 14:07:16 +08:00
Edward Yang 458041e66d 删除多余的 login 模板 2022-11-04 14:07:16 +08:00
pushuo a45ff32259 优化第三方登录 2022-11-04 14:07:16 +08:00
pushuo 315c31b5bd 后台订单筛选,前台购物车显示SKU 规格名称 2022-11-04 14:07:16 +08:00
pushuo e38a6a8ab4 后台订单状态筛选,前台购物车 ALL 修改为 购物车中所有商品 2022-11-04 14:07:16 +08:00
pushuo 971158a11c 修复购物车页面商品数量修改, 右上角图标数据未更新问题 2022-11-04 14:07:16 +08:00
Edward Yang 1127186f7f filter by order status 2022-11-04 14:07:16 +08:00
TL 3942ffe36b 修复词条显示问题
https://guangdagit.com/beike/beikeshop/issues/253
2022-11-04 14:07:16 +08:00
pushuo ad0376c077 处理360极速浏览器不支持前端 ?. 判断写法 2022-11-04 14:07:16 +08:00
Edward Yang 1768a7fb77 修复产品分类分页 2022-11-04 14:06:54 +08:00
Edward Yang d8abb038b0 修复 第三方登录 图片加载 2022-11-02 18:13:09 +08:00
Edward Yang 77b3167d36 修复 placeholder 被删除报错 2022-10-31 17:51:43 +08:00
Edward Yang 14be551526 修复产品图片不存在 系统报错 2022-10-31 14:32:21 +08:00
Edward Yang 171b1a4b05 upgrade version and build 2022-10-14 18:24:14 +08:00
Edward Yang 8ca284f762 add token for marketing 2022-10-14 18:11:55 +08:00
pushuo dbc403550c wip 2022-10-14 17:38:52 +08:00
pushuo aeb6312f4c wip 2022-10-14 17:38:52 +08:00
TL b818cb8037 developer token, SettingRepo::createOrUpdate()方法重构 2022-10-14 17:38:52 +08:00
TL 8cfe7f2660 developer token 2022-10-14 17:38:52 +08:00
pushuo 3993a229f7 wip 2022-10-14 17:38:52 +08:00
pushuo cc322ca23b wip 2022-10-14 17:38:52 +08:00
pushuo 61fc6ab82a wip 2022-10-14 17:38:52 +08:00
TL 581a8eb9d7 developer token 2022-10-14 17:38:52 +08:00
pushuo 5bd60354a3 设置 token 2022-10-14 17:38:52 +08:00
Edward Yang 604d55127d update facebook 2022-10-14 17:21:44 +08:00
Edward Yang 687c3a99c5 兼容第三方包错误 https://github.com/overtrue/socialite/issues/248 2022-10-14 17:21:44 +08:00
Edward Yang 8d0d349fec fixed facebook login. 2022-10-14 17:21:44 +08:00
Edward Yang 3249bbe0ba disable facebook 2022-10-14 17:21:44 +08:00
Edward Yang 1d6267b172 加载后台command 2022-10-14 17:21:44 +08:00
Edward Yang d6a8a23c26 成本价不必填 2022-10-14 17:21:44 +08:00
TL e77f861efb sitemap 2022-10-14 17:21:44 +08:00
pushuo ab79c6751b https://guangdagit.com/beike/beikeshop/issues/255 取消成本价必填前端验证以去除 2022-10-14 17:21:44 +08:00
Edward Yang a07d38a6b0 修复关闭插件无法打开编辑 2022-10-14 17:21:44 +08:00
Edward Yang 7947596b8b update composer 2022-10-14 17:21:44 +08:00
pushuo 77951b54ee social 后台编辑
wip

wip

wip

修改插件图标

add social controller.

add social controller.

add shop base url

wip

wip

save social setting

优化购物车加载

后台第三方登录插件

完善第三方登录按钮

fixed social setting

wip

wip

wip

wip

完善第三方登录

fixed social redirect

优化后台

修复google 登录

fixed window opener

Add 第三方登录类型

wip

wip

完善多语言

修复第三方登录前台多语言
2022-10-14 17:21:44 +08:00
Edward Yang 370364002b 完善插件静态图片
解决插件自定义设置模板

fixed plugin
2022-10-14 17:21:43 +08:00
Edward Yang 526827ff64 add others languages
fixed langauges

增加意大利语言

修复意大利语言订单列表词条问题

增加俄语

后台语言管理

安装卸载语言

后台语言管理

wip

后台语言管理

后台语言管理

后台语言管理

增加俄语

wip

后台语言管理

wip

wip

繁体中文

wip

后台语言管理,默认语言不能删除

wip

后台语言管理

wip

后台语言管理

优化添加语言后首页报错问题

add繁体中文

es ja fr fr

修改俄语name=ru,意大利语言为it

修改 tinymce 多语言

优化后台多语言ui

关闭语言图标显示

修复多语言问题

后台语言列表增加提示
2022-10-14 17:21:43 +08:00
Edward Yang 977fe8cd2f add zh_hk 2022-10-14 17:21:43 +08:00
TL 99eb8c2cbd 网站sitemap 2022-10-14 17:21:43 +08:00
pushuo cdf7c6724d 修复 page 安装数据 反斜杠问题 2022-10-14 17:21:43 +08:00
Edward Yang 8e038cdac4 set verify false 2022-10-14 17:21:43 +08:00
pushuo 75aca94d09 优化插件市场ui 2022-10-14 17:21:43 +08:00
Edward Yang bfa4088b7b 修复插件不可用 2022-10-14 17:21:43 +08:00
Edward Yang 13a6969511 忽略默认插件之外的其他插件 2022-10-14 17:21:43 +08:00
Edward Yang 34c959b222 fixed download 2022-10-14 17:21:43 +08:00
Edward Yang f46c8925d1 第三方登录 2022-10-14 17:21:43 +08:00
Edward Yang 13fcbfbe20 插件市场 2022-10-14 17:21:43 +08:00
pushuo acc85159bd 后台插件市场无数据 2022-10-14 17:21:43 +08:00
Edward Yang f4ac449ffc fixed download 2022-10-14 17:21:43 +08:00
pushuo 458357dba5 wip 2022-10-14 17:21:43 +08:00
pushuo cac7d30e0a wip 2022-10-14 17:21:43 +08:00
Edward Yang 0e17f523e2 fixed keyword and type filter 2022-10-14 17:21:43 +08:00
pushuo 7029befc57 wip 2022-10-14 17:21:43 +08:00
pushuo 6074f08c6f no message 2022-10-14 17:21:43 +08:00
Edward Yang ad49e97200 fixed download route 2022-10-14 17:21:43 +08:00
Edward Yang 1085238859 plugin marketing 2022-10-14 17:21:43 +08:00
Edward Yang e89272aeec add plugin show page 2022-10-14 17:21:43 +08:00
Edward Yang 5671f2d2bf add plugin show page 2022-10-14 17:21:43 +08:00
pushuo 77f28a598e 优化后台插件中心 2022-10-14 17:21:43 +08:00
Edward Yang d6263e6db6 远程下载安装插件 2022-10-14 17:21:43 +08:00
Edward Yang 48837d4e04 下载远程链接 2022-10-14 17:21:43 +08:00
Edward Yang f3a664f8ca add marketing list 2022-10-14 17:21:43 +08:00
Edward Yang fc21a56188 add beike api url 2022-10-14 17:21:43 +08:00
pushuo c91cf02915 修复导航菜单多语言配置问题 2022-10-14 17:21:43 +08:00
pushuo 36610480e9 修复地址编辑切换国家之后 省份id没有清空 2022-10-14 17:21:43 +08:00
pushuo 35e1de6b5d 完善 admin_users 编辑弹窗多语言 2022-10-14 17:21:43 +08:00
pushuo 2a38c6c228 修复幻灯片模块、图片模块添加无默认图问题 2022-10-14 17:21:43 +08:00
sunboy d687f0636d
update README.md.
增加安装指引

Signed-off-by: sunboy <liang@guangda.work>
2022-09-25 03:24:52 +00:00
pushuo 65ef508256 删除 installed-bak 2022-09-21 10:05:12 +08:00
pushuo 605371ca63 优化 ui 2022-09-21 10:05:12 +08:00
Edward Yang 9acda217c8 优化安装流程多语言 2022-09-21 10:05:12 +08:00
Edward Yang cccdf77800 fixed scheme 2022-09-21 10:05:12 +08:00
pushuo ae5c8f13ff 优化安装界面 https://guangdagit.com/beike/beikeshop/issues/254 2022-09-21 10:05:12 +08:00
pushuo c860ac3576 优化头部导航ui 2022-09-21 10:05:11 +08:00
pushuo 7bf59dfc86 添加 element-ui 多语言文件,删除多余的文件 2022-09-21 10:05:11 +08:00
Edward Yang 22cce28b3b update copyright for panel footer 2022-09-21 10:05:01 +08:00
Edward Yang f4992691aa release verion 1.0.3 2022-09-20 14:24:36 +08:00
TL cd36f8153d windows下安装是不检测权限,直接全部通过 2022-09-20 09:18:37 +08:00
pushuo 3e76716d36 优化安装引导ui 2022-09-19 17:58:37 +08:00
Edward Yang 786dfccbfd fixed email validation 2022-09-19 14:41:46 +08:00
pushuo bd2b81c9df 优化地址编辑页面城市名称获取问题 https://guangdagit.com/beike/beikeshop/issues/252 2022-09-19 14:41:46 +08:00
pushuo fae1588d18 优化安装页面 ui 2022-09-19 14:41:46 +08:00
pushuo b435b0b807 js scss 添加头部注释 2022-09-19 14:41:46 +08:00
pushuo b585cc5d7a 后台底部优化 2022-09-19 14:41:46 +08:00
pushuo d84aee1cd5 修复后台售后详情多语言 -> https://guangdagit.com/beike/beikeshop/issues/251 2022-09-19 14:41:46 +08:00
pushuo a4525802c4 优化安装页面 Ui 2022-09-19 14:41:46 +08:00
pushuo 760e74f81a 后台底部添加公司信息 -> https://guangdagit.com/beike/beikeshop/issues/249 2022-09-19 14:41:46 +08:00
Edward Yang e92fc3eb31
添加QQ群
Signed-off-by: Edward Yang <yangjin@opencart.cn>
2022-09-19 02:21:16 +00:00
TL 46913d88f6 安装引导增加.env权限检测 2022-09-15 22:35:16 +08:00
TL b7b24ece6b 售后服务优化 2022-09-15 22:35:16 +08:00
pushuo 1edce65c79 优化个人中心订单列表 ui 2022-09-15 22:35:16 +08:00
pushuo 1b1459d06c 前台售后详情添加状态显示 -> https://guangdagit.com/beike/beikeshop/issues/246 2022-09-15 22:35:16 +08:00
pushuo cf223caeab 后台售后详情添加操作历史 -> https://guangdagit.com/beike/beikeshop/issues/247 2022-09-15 22:35:16 +08:00
Edward Yang 2d86529eb8 fixed beikeshop 2022-09-14 14:08:06 +08:00
Edward Yang 71d743d34a 修复nginx安装跳转问题 2022-09-13 23:12:02 +08:00
Edward Yang 8f22790abd 修改注释版权 2022-09-13 23:07:51 +08:00
Edward Yang b54f9cb89e 修复nginx安装跳转 2022-09-13 22:01:09 +08:00
pushuo 2ab8ba876b 优化售后订单更新刷新页面 -> https://guangdagit.com/beike/beikeshop/issues/242 2022-09-13 21:56:10 +08:00
pushuo 9ec42fb6f7 修复前台修改个人信息 报错错误 -> https://guangdagit.com/beike/beikeshop/issues/245 2022-09-13 21:56:10 +08:00
pushuo f399bd04cb 修复删除税类提示框中的语言未翻译 -> https://guangdagit.com/beike/beikeshop/issues/248 2022-09-13 21:56:10 +08:00
pushuo b1fc78e6cb 修复 幻灯片 和 banner 模块切换全屏/非全屏失败 -> https://guangdagit.com/beike/beikeshop/issues/231 2022-09-13 21:56:10 +08:00
Edward Yang 65d678c225 解决nginx兼容性问题 2022-09-13 21:54:09 +08:00
Edward Yang 3ab2808b14 release version 1.0.2 2022-09-09 19:38:07 +08:00
pushuo 7e3860fcd5 处理手机端快捷登录弹框 ui 响应式问题 2022-09-09 19:17:17 +08:00
Edward Yang 7d562b04f7 优化 Forbidden 提示信息
https://guangdagit.com/beike/beikeshop/issues/220
2022-09-09 19:13:02 +08:00
TL a761e03f5b 售后服务 2022-09-09 19:05:44 +08:00
TL e863b1c97b 售后服务
https://guangdagit.com/beike/beikeshop/issues/241
2022-09-09 18:53:07 +08:00
Edward Yang 0d8fd327b5 setting 表设置 2022-09-09 18:47:43 +08:00
TL 8de027e9bc 售后服务问题修改
https://guangdagit.com/beike/beikeshop/issues/242
2022-09-09 18:46:09 +08:00
Edward Yang 4f7d0aea94 修复用户组相关
https://guangdagit.com/beike/beikeshop/issues/243
2022-09-09 17:10:59 +08:00
Edward Yang 1729264e67 修复 setting demo 数据 2022-09-09 16:53:19 +08:00
pushuo 8680901d83 默认前台省份 2022-09-09 16:49:18 +08:00
Edward Yang a0bf115f56 修复订单SKU https://guangdagit.com/beike/beikeshop/issues/240 2022-09-09 16:41:36 +08:00
Edward Yang 21727e2b7a code format for rma creation 2022-09-09 16:29:37 +08:00
TL 0e1b102146 默认客户组禁止删除 2022-09-09 16:29:37 +08:00
TL ea032fe4a7 代码优化
https://guangdagit.com/beike/beikeshop/issues/224
2022-09-09 16:29:37 +08:00
Edward Yang 9cd6934a02 删除用户组判断 2022-09-09 16:29:37 +08:00
Edward Yang e1ca1e35d0 设置默认客户组 2022-09-09 16:29:37 +08:00
pushuo 611ddd5e3a https://guangdagit.com/beike/beikeshop/issues/239 2022-09-09 16:29:37 +08:00
TL 8dff40add6 修复rma问题 2022-09-09 16:29:37 +08:00
Edward Yang 7a2b89fb29 修复删除用户报错 https://guangdagit.com/beike/beikeshop/issues/236 2022-09-09 16:29:37 +08:00
TL 4e39972676 https://guangdagit.com/beike/beikeshop/issues/225 2022-09-09 16:29:37 +08:00
pushuo e005981fb7 优化后台商品多规格 2022-09-09 16:29:37 +08:00
pushuo a1f8238152 处理文件管理器多语言 2022-09-09 16:29:37 +08:00
pushuo 49e8df844b 还原上一步 2022-09-09 16:29:37 +08:00
pushuo 5b89353afe 后台导航 测试使用原生 ajax 2022-09-09 16:29:37 +08:00
pushuo 9d65337fbd 请求超时时间修改为 10s 2022-09-09 16:29:37 +08:00
Edward Yang 7111fdfa2b 修复分类数据 2022-09-09 16:29:28 +08:00
Edward Yang e296d11b19 remove build shell 2022-09-08 21:42:12 +08:00
Edward Yang 397c2faf04 release v1.0.1 2022-09-08 18:53:28 +08:00
TL fe26f3fc3d 修改前台退出导致后台也退出的问题 2022-09-08 18:49:40 +08:00
pushuo 26e0e90c9b 前台商品详情页 多规格图片,后台文件管理器多语言优化 2022-09-08 18:21:17 +08:00
pushuo 050e152e1c 后台税率词条优化 2022-09-08 16:17:55 +08:00
pushuo 219b1e0ecf 修复后台 page 页面多语言 2022-09-08 16:12:00 +08:00
pushuo 38f050bb54 优化 demo 数据 -> 导航菜单 2022-09-08 16:08:55 +08:00
pushuo 0ea1809b24 优化导航菜单 2022-09-08 15:26:49 +08:00
Edward Yang f1c5db8a20 修复页尾数据 2022-09-08 15:24:58 +08:00
Edward Yang 6368877934 修复分类和设置 2022-09-08 15:14:25 +08:00
pushuo afd3e9904f wip 2022-09-08 15:14:25 +08:00
pushuo ec9ebe09eb 修改demo 数据 2022-09-08 15:14:25 +08:00
Edward Yang 4e67dcdff4 repaire categories 2022-09-08 15:14:25 +08:00
pushuo 83a626812e 后台登录页面优化 2022-09-08 15:14:25 +08:00
Edward Yang 94ccacfafa 优化country seeder 2022-09-08 15:14:25 +08:00
Edward Yang a7266f78a0 修复 .htaccess https://guangdagit.com/beike/beikeshop/issues/226 2022-09-08 15:14:25 +08:00
Edward Yang 563bb29704 代码优化 2022-09-08 15:14:25 +08:00
Edward Yang 3fe4fc8e46 处理 .env 自动生成 https://guangdagit.com/beike/beikeshop/issues/226 2022-09-08 15:14:25 +08:00
pushuo a580ece7b3 wip 2022-09-08 15:14:25 +08:00
TL 1ab37520b0 登录自动填写账号密码 2022-09-08 15:14:25 +08:00
Edward Yang d17777a055 处理脏数据 https://guangdagit.com/beike/beikeshop/issues/230 2022-09-08 15:14:25 +08:00
pushuo 2e6bf802d4 wip 2022-09-08 15:14:25 +08:00
TL 760be5eda8 安装引导完善 2022-09-08 15:14:25 +08:00
Edward Yang 15fc690c1a 修复多规格商品数据 2022-09-08 15:14:25 +08:00
TL 43a31f478b 删除脏数据
https://guangdagit.com/beike/beikeshop/issues/230
2022-09-08 15:14:25 +08:00
pushuo 24145203f9 https://guangdagit.com/beike/beikeshop/issues/229 2022-09-08 15:14:25 +08:00
pushuo e9af38bda6 优化安装页面 2022-09-08 15:14:25 +08:00
pushuo 9d0e71d6c8 wip 2022-09-08 15:14:25 +08:00
pushuo 1e091fdc8c wip 2022-09-08 15:14:25 +08:00
Edward Yang f8bbd05156 修改.env.example 2022-09-08 15:14:25 +08:00
Edward Yang a5aab1fcd6 修改安装流程
修改安装流程
2022-09-08 15:14:25 +08:00
Edward Yang 64088f4c3e 版本问题 2022-09-08 15:14:25 +08:00
pushuo 7a64fffcfc wip 2022-09-08 15:14:25 +08:00
TL 2a1c04c4ec 安装引导 2022-09-08 15:14:25 +08:00
pushuo f8be721fec 优化后台分类也 2022-09-08 13:48:11 +08:00
pushuo 5982417078 优化后台商品详情页 优化分类 2022-09-08 12:43:53 +08:00
pushuo 5fdbc4b538 优化后台用户列表 2022-09-08 11:15:29 +08:00
Edward Yang 66220b3dfd fixed search page https://guangdagit.com/beike/beikeshop/issues/227 2022-09-08 09:48:28 +08:00
pushuo 42caca4405 优化安装页面 交互 2022-09-06 22:36:37 +08:00
Edward Yang c934723260 跳转回 database 2022-09-06 22:29:57 +08:00
Edward Yang f8eac18cc5 fixed dberror 2022-09-06 22:14:42 +08:00
pushuo 51651ff787 wip 2022-09-06 22:07:18 +08:00
Edward Yang 089ef22cd6 mysql version check 2022-09-06 21:53:40 +08:00
Edward Yang a7f55ba1cb mysql 版本检测 2022-09-06 21:50:59 +08:00
pushuo f8db5ebf18 优化安装数据、优化安装页面 ui 交互 2022-09-06 20:44:36 +08:00
Edward Yang a00b9748e0 disable debug 2022-09-06 20:43:41 +08:00
Edward Yang 87abf47087 fixed db connection 2022-09-06 19:30:47 +08:00
pushuo 19a740f3be wip 2022-09-06 19:26:11 +08:00
pushuo 3b633951a0 优化安装引导的 提交数据的时候,后端报错 admin_email 的话,要把 设置后台账号密码 这块显示出来 2022-09-06 19:22:24 +08:00
pushuo bb86dd1bd1 wip 2022-09-06 18:58:34 +08:00
Edward Yang 9cd7ea8ac7 build 20220906 2022-09-06 18:46:03 +08:00
pushuo e5cb71adbc wip 2022-09-06 18:46:03 +08:00
pushuo 68bbdfe59d wip 2022-09-06 18:46:03 +08:00
pushuo 5a808133ef 优化 安装 environment 前端交互 2022-09-06 18:46:03 +08:00
TL 85048e4cfb 安装引导 2022-09-06 18:46:03 +08:00
TL a3ce0b63d0 安装引导表单提交增加ajax验证数据库连接 2022-09-06 18:46:03 +08:00
Edward Yang 542f777fb0 timeout seconds 2022-09-06 18:46:03 +08:00
Edward Yang 70c172136c 网站根目录提示 2022-09-06 18:46:03 +08:00
Edward Yang 99ed272346 修复网站根目录提示 2022-09-06 18:46:03 +08:00
pushuo 055e16fd9b 修复安装最后一步词条 2022-09-06 18:46:03 +08:00
TL 04320a707e 添加词条 2022-09-06 18:46:03 +08:00
TL 2aef836a9b 安装引导 2022-09-06 18:46:03 +08:00
TL a03396ba12 安装引导 2022-09-06 18:46:03 +08:00
Edward Yang 88b12065b8 upgrade to 1.0.1 2022-09-05 22:33:15 +08:00
Edward Yang 62eb321079 brand seeder
语言包完善

create categories

countries seeder

currencies seeder

customer group seeder

add language and seeder

PagesSeeder

product seeder

PluginsSeeder

seeder

setting seeder

修复产品图片和多规格

fixed setting
2022-09-05 22:31:50 +08:00
TL 822ab3d6d3 安装引导语言包完善 2022-09-05 19:53:16 +08:00
TL 0bffa6c77a 语言切换 2022-09-05 19:36:09 +08:00
Edward Yang 64fdcfa712 fixed installed with debug 2022-09-05 19:29:32 +08:00
pushuo 0305c28373 优化安装页面 2022-09-05 19:06:52 +08:00
TL f94e780462 安装引导 2022-09-05 18:27:45 +08:00
pushuo ffa2c7d370 完善页面内容无数据ui 2022-09-05 08:56:13 +08:00
pushuo 81b38ade1d 处理手机端没有搜索按钮问题等 -> https://guangdagit.com/beike/beikeshop/issues/221 2022-09-03 22:25:46 +08:00
Edward Yang a592dc4cf7 fixed beike config 2022-09-02 21:32:56 +08:00
TL 9c9abd5ea9 installer 2022-09-02 20:23:46 +08:00
TL cd370fb6c3 installer 2022-09-02 20:06:20 +08:00
Edward Yang 00f67ea7da revert database sql 2022-09-02 11:22:35 +08:00
pushuo 5708660d67 wip 2022-09-02 10:59:23 +08:00
pushuo 716d617e78 安装时数据统计图片版本号添加 2022-09-02 10:59:23 +08:00
pushuo cfebf09a74 优化搜索无数据显示 2022-09-02 10:59:23 +08:00
Edward Yang 3b4f3b1e8c 修改readme 2022-09-02 10:59:10 +08:00
Edward Yang 58c3b518c0 update database sql 2022-09-01 18:42:21 +08:00
Edward Yang 804fb97ac7 code format 2022-09-01 18:30:01 +08:00
Edward Yang 19dd2f75d8 合并migrations 2022-09-01 18:16:43 +08:00
pushuo 848b091720 wip 2022-09-01 17:31:45 +08:00
pushuo 1c2bb06b0d wip 2022-09-01 16:29:19 +08:00
pushuo 2c999f65eb 优化登录注册报错提示 2022-09-01 16:27:43 +08:00
pushuo 52f40302fd 优化 2022-09-01 16:24:03 +08:00
Edward Yang b23746c125 update composer packages. 2022-09-01 16:15:26 +08:00
Edward Yang 35677a7dd2 fixed custmer login 2022-09-01 16:06:01 +08:00
pushuo adf9f84684 品牌删除多语言词条 2022-09-01 15:59:51 +08:00
pushuo 62092ac70d wip 2022-09-01 15:38:42 +08:00
pushuo ae7da23394 售后原因多语言修复 2022-09-01 15:12:03 +08:00
pushuo f400e77d97 安装引导词条修复 https://guangdagit.com/beike/beikeshop/issues/209 2022-09-01 14:58:59 +08:00
Edward Yang 70531b87f9 fixed shipping fee 2022-09-01 14:49:01 +08:00
pushuo 96288ddc23 wip 2022-09-01 14:44:25 +08:00
pushuo 12863c0f6e 订单详情页优化多语言 2022-09-01 14:38:15 +08:00
pushuo 211711dfee 区域群组多语言 2022-09-01 14:35:28 +08:00
Edward Yang 46a23e8be3 open status 2022-09-01 14:20:52 +08:00
pushuo ebfa9471d2 wip 2022-09-01 14:20:26 +08:00
pushuo 9d35dee8de 插件多语言 2022-09-01 14:04:31 +08:00
pushuo c7fc8937b1 后台多语言优化 2022-09-01 12:01:23 +08:00
pushuo 7c39bfdb03 国家国语言 2022-09-01 11:57:21 +08:00
pushuo 491c82be52 固定运费插件多语言 2022-09-01 11:18:17 +08:00
pushuo 6319408298 提交忽略文件 2022-09-01 10:59:11 +08:00
pushuo d69571b07c 删除编译的 css/js 2022-09-01 10:57:25 +08:00
Edward Yang efa48abb53 linux编译问题 2022-09-01 10:30:16 +08:00
pushuo 79bc196e15 修改编译文件 2022-09-01 10:29:47 +08:00
pushuo 2ad3d6047b is_mobile 方法名修改引用 2022-09-01 10:27:35 +08:00
pushuo b78eeae8b2 添加忽略文件 2022-09-01 10:17:03 +08:00
pushuo b087d4efe7 删除 编译 js 2022-09-01 10:16:02 +08:00
Edward Yang fe1eadc550 fixed helper 2022-09-01 09:54:42 +08:00
pushuo ff87b819fc 导航菜单 -> 手机端响应式 2022-09-01 09:48:00 +08:00
Edward Yang 3ddaec6960 remove envoy 2022-09-01 09:44:54 +08:00
Edward Yang d7527a9d06 修复打包脚本 2022-08-31 20:11:28 +08:00
Edward Yang 5e1f89aa81 Merge branch 'dev' 2022-08-31 20:05:59 +08:00
Edward Yang 9426a42120 add build shell 2022-08-31 20:05:04 +08:00
Edward Yang e694408e87 update version and build 2022-08-31 20:05:04 +08:00
Edward Yang c6c9c5252f add build shell 2022-08-31 20:04:38 +08:00
pushuo 7378f1997b 售后前台详情 2022-08-31 18:41:25 +08:00
pushuo 49a80db477 https://guangdagit.com/beike/beikeshop/issues/161 2022-08-31 18:21:46 +08:00
pushuo b2b985daf9 https://guangdagit.com/beike/beikeshop/issues/161 2022-08-31 18:15:03 +08:00
TL c3c94acaff 售后服务 2022-08-31 18:08:47 +08:00
pushuo a3e19e0c06 no message 2022-08-31 17:57:01 +08:00
pushuo bb83fce199 售后原因管理 2022-08-31 17:55:59 +08:00
Edward Yang 19afee7ff6 update version and build 2022-08-31 17:37:21 +08:00
TL eabfd69e9f 售后服务 2022-08-31 17:26:03 +08:00
TL 88f00f21c4 售后服务 2022-08-31 17:17:04 +08:00
pushuo d9523418a1 file_manager 多语言 2022-08-31 16:18:37 +08:00
sunboy 8627c755f0
add LICENSE.
Signed-off-by: sunboy <liang@guangda.work>
2022-08-31 07:44:48 +00:00
Edward Yang 81b7ae932a 修改环境要求 2022-08-31 15:43:49 +08:00
Edward Yang 038ceeaa1a fixed readme 2022-08-31 15:27:38 +08:00
pushuo 4396b1f133 售后原因多语言 2022-08-31 14:54:39 +08:00
pushuo a74e52eb4f wip 2022-08-31 14:48:44 +08:00
pushuo 9eac695df4 wip 2022-08-31 14:47:57 +08:00
TL ddd9fad9a4 售后服务 2022-08-31 14:36:31 +08:00
TL 459cf6ee00 售后服务申请原因 2022-08-31 14:31:02 +08:00
pushuo 9e5b6a840d 删除后台登录页面 多余词条 2022-08-31 12:16:37 +08:00
Edward Yang e248d596f4 fixed admin login 2022-08-31 12:01:57 +08:00
TL 9c05241727 售后服务 2022-08-31 12:01:36 +08:00
TL 858b386d6a 售后服务 2022-08-31 11:53:29 +08:00
TL 39794da2ea 售后服务(退换货) 2022-08-31 11:50:47 +08:00
TL 44f72291e2 安装引导 2022-08-31 11:48:33 +08:00
pushuo 618a356406 多语言优化 2022-08-31 11:47:45 +08:00
Edward Yang f58bb18fe7 禁用的国家不显示 2022-08-31 11:29:42 +08:00
Edward Yang 167ee5c1df app force https 2022-08-31 11:06:25 +08:00
pushuo 5fa4492c8e rma 多语言 2022-08-31 10:53:11 +08:00
pushuo 7fa995ab87 wip 2022-08-31 09:18:53 +08:00
pushuo 3c1eb1f6f9 后台信息管理 2022-08-31 09:10:32 +08:00
pushuo 26983bcf8c 优化后台分类 品牌 商品 多语言 2022-08-31 09:02:26 +08:00
pushuo f636ffc08d 后台国家省份多语言 2022-08-31 08:42:48 +08:00
pushuo b01903b8c6 https://guangdagit.com/beike/beikeshop/issues/210 2022-08-31 08:23:08 +08:00
pushuo 4a0e0c6b61 后台 语言/货币 管理 多语言 2022-08-30 18:51:47 +08:00
TL 66136547c5 安装引导
https://guangdagit.com/beike/beikeshop/issues/209
2022-08-30 18:06:32 +08:00
Edward Yang 9677a902ea fixed email 2022-08-30 17:52:53 +08:00
pushuo 4227a98f7b 安装数据获取 2022-08-30 17:45:21 +08:00
pushuo 9938e66658 后台角色管理多语言 2022-08-30 17:38:39 +08:00
pushuo 6c9e2d8124 优化前台添加地址弹窗 2022-08-30 17:25:19 +08:00
pushuo 62cde1dbf2 点击收藏未登录弹出登录框 2022-08-30 17:21:02 +08:00
pushuo 7559b57bc8 后台客户组多语言 2022-08-30 17:17:02 +08:00
pushuo 3c1ffdc0f8 优化后台多语言 2022-08-30 17:01:48 +08:00
TL 5c233f1bc5 后台国家省份管理 2022-08-30 16:26:32 +08:00
pushuo dcc1640b1c 省份管理 国家选 2022-08-30 16:24:53 +08:00
Edward Yang e5f6a4d319 add created at 2022-08-30 16:23:18 +08:00
pushuo b88afed286 优化商品详情页验证 2022-08-30 16:19:14 +08:00
Edward Yang ed6eea3382 原价和成本价必须是数字 2022-08-30 16:14:32 +08:00
pushuo 0ba62d4ada admin_users 多语言 2022-08-30 16:09:41 +08:00
pushuo 766fa9c2e0 页尾编辑多语言 2022-08-30 16:00:11 +08:00
Edward Yang c9f26d2935 fixed envoy 2022-08-30 15:47:23 +08:00
pushuo 460a1b846c 菜单编辑多语言 2022-08-30 15:38:13 +08:00
Edward Yang d9cbfe79fa 调整首页菜单 2022-08-30 15:29:45 +08:00
Edward Yang a93da78132 selected menu 2022-08-30 15:25:07 +08:00
TL 7fcca73b1d 前台后端语言包 2022-08-30 15:15:20 +08:00
pushuo 4b773c6b18 优化菜单编辑 2022-08-30 15:08:42 +08:00
pushuo 84940bd41b 首页编辑器等多语言 2022-08-30 14:29:56 +08:00
pushuo cbac2513d7 后台多语言 2022-08-30 11:49:00 +08:00
TL c5f6c22f33 后台后端语言包 2022-08-30 11:20:27 +08:00
pushuo 9212617242 优化结账账单地址判断 2022-08-30 11:05:38 +08:00
TL 752200ea93 国家管理 2022-08-30 10:12:31 +08:00
pushuo f802f48299 wip 2022-08-30 10:11:56 +08:00
pushuo ffd688cfc6 插件logo 2022-08-30 10:08:03 +08:00
pushuo 6f731804c6 商品详情页多语言词条灯 2022-08-29 21:21:33 +08:00
TL 229831408d 后台表单验证字段语言包 2022-08-29 21:03:56 +08:00
pushuo 06b812d5e2 https://guangdagit.com/beike/beikeshop/issues/170 2022-08-29 20:37:18 +08:00
pushuo e2a1621fe6 wip 2022-08-29 20:24:16 +08:00
pushuo 234ac1032a 清空回收站 2022-08-29 20:20:16 +08:00
pushuo d2034636ef wip 2022-08-29 19:38:32 +08:00
pushuo 740e1661de https://guangdagit.com/beike/beikeshop/issues/80 2022-08-29 19:36:34 +08:00
pushuo cdc0ea4304 省份 2022-08-29 19:31:09 +08:00
pushuo 17cac83ada wip 2022-08-29 19:10:19 +08:00
pushuo 4564cc7358 国家 2022-08-29 18:57:27 +08:00
pushuo dcd7ba47c3 wip 2022-08-29 18:34:03 +08:00
pushuo 949bd99946 优化账单地址 2022-08-29 18:24:58 +08:00
Edward Yang 1596c985b8 fixed tax 2022-08-29 18:23:03 +08:00
pushuo 46b9f9b967 优化后台 page 多语言 2022-08-29 18:17:39 +08:00
TL c33480aac3 后台国家和省份管理 2022-08-29 18:04:26 +08:00
Edward Yang 3beeeffd02 fixed cart https://guangdagit.com/beike/beikeshop/issues/207 2022-08-29 18:00:40 +08:00
pushuo 1e3a799bdb 优化结账账单地址 2022-08-29 17:59:37 +08:00
pushuo 60122b82bc 订单相关 2022-08-29 17:54:28 +08:00
pushuo 4643926768 购物车优化 2022-08-29 17:33:10 +08:00
Edward Yang 4b0f31ad52 修复订单汇率问题 2022-08-29 17:30:10 +08:00
Edward Yang 8f72766115 fixed mini cart https://guangdagit.com/beike/beikeshop/issues/203 2022-08-29 17:00:05 +08:00
pushuo 731faf5367 https://guangdagit.com/beike/beikeshop/issues/206 2022-08-29 16:50:14 +08:00
Edward Yang c29cf811fc fixed active 2022-08-29 16:43:02 +08:00
Edward Yang 9b6d341ba2 order information languages 2022-08-29 16:41:18 +08:00
pushuo 3c765bd641 https://guangdagit.com/beike/beikeshop/issues/206 2022-08-29 16:24:08 +08:00
pushuo 8340fc781e 未登录情况下,加购物车会弹窗登录框 2022-08-29 16:16:02 +08:00
pushuo 623fed1af3 wip 2022-08-29 15:48:39 +08:00
Edward Yang 28f8655a92 修复订单货币 2022-08-29 14:57:13 +08:00
pushuo f98df0ff36 wip 2022-08-29 14:55:13 +08:00
Edward Yang 80a0c6b5a7 fixed order status 2022-08-29 14:53:28 +08:00
Edward Yang 361e352c5e 下架商品处理 2022-08-29 14:40:52 +08:00
Edward Yang 0fecf2a4b6 fixed checkout 2022-08-29 14:13:29 +08:00
pushuo 38f12d70e0 结账页账单地址优化 2022-08-29 14:00:19 +08:00
Edward Yang a975b764f1 fixed order export https://guangdagit.com/beike/beikeshop/issues/205 2022-08-29 13:58:24 +08:00
Edward Yang 1f44791384 fixed checkout confirm 2022-08-29 13:50:53 +08:00
Edward Yang 9c5154ceb0 修复账单地址 2022-08-29 12:07:12 +08:00
pushuo 2e8d9b4083 账单地址 2022-08-29 11:53:02 +08:00
pushuo fcc95039f9 wip 2022-08-29 11:09:57 +08:00
Edward Yang 1edae323ab 修复导出无数据 2022-08-29 11:09:45 +08:00
pushuo 236b8cb8b1 优化 信息编辑也米娜 2022-08-29 10:39:02 +08:00
pushuo b964a7ea73 https://guangdagit.com/beike/beikeshop/issues/202 2022-08-29 09:40:00 +08:00
Edward Yang 38d26b7b67 客户列表多语言 2022-08-26 18:52:48 +08:00
pushuo 13a2097621 wip 2022-08-26 18:44:47 +08:00
TL e7335b9582 删除多余代码 2022-08-26 18:38:49 +08:00
Edward Yang 51034d5308 订单列表多语言 2022-08-26 18:37:30 +08:00
pushuo 6b860fb2be wip 2022-08-26 18:37:08 +08:00
pushuo d3f88d4a72 后台用户筛选 2022-08-26 18:36:46 +08:00
pushuo 051564d32c 优化 富文本编辑器图片路径问题 2022-08-26 18:18:55 +08:00
Edward Yang 081b0d81a0 branch 多语言 2022-08-26 18:16:52 +08:00
Edward Yang 748bc43df9 Brand 多语言 2022-08-26 18:11:44 +08:00
pushuo 1fbb409602 https://guangdagit.com/beike/beikeshop/issues/167 2022-08-26 17:34:51 +08:00
Edward Yang 101b07cabd 订单列表页多语言 2022-08-26 17:28:55 +08:00
Edward Yang 711c62d9b7 产品列表页英文 2022-08-26 17:25:35 +08:00
pushuo d591a6ce38 https://guangdagit.com/beike/beikeshop/issues/165 2022-08-26 17:25:30 +08:00
pushuo ab8c3f20dd 优化前台订单 2022-08-26 17:24:20 +08:00
pushuo e72d64a4cb 购物车错误信息显示优化 2022-08-26 17:17:30 +08:00
Edward Yang 6063e26661 商品列表多语言 2022-08-26 17:13:00 +08:00
pushuo f1c3707302 https://guangdagit.com/beike/beikeshop/issues/189 2022-08-26 16:57:16 +08:00
TL f24b298307 安装引导 2022-08-26 16:44:51 +08:00
TL 379c052e94 安装 2022-08-26 16:44:51 +08:00
Edward Yang b9b2ef7525 创建成功后订单变为未支付 支付成功后减扣库存 2022-08-26 16:35:05 +08:00
TL df8b7db1cd 安装引导 2022-08-26 15:56:18 +08:00
pushuo b048499795 https://guangdagit.com/beike/beikeshop/issues/191 2022-08-26 15:49:50 +08:00
pushuo bc547194fa https://guangdagit.com/beike/beikeshop/issues/197 2022-08-26 15:47:35 +08:00
pushuo 40a8891c07 购物车 数量更改加 sku_id 2022-08-26 15:38:35 +08:00
Edward Yang 2e6fa3479f fixed cart 2022-08-26 15:35:33 +08:00
pushuo b8dd4f3fb3 https://guangdagit.com/beike/beikeshop/issues/198 2022-08-26 15:35:19 +08:00
Edward Yang 3503560202 库存不足 2022-08-26 15:29:27 +08:00
pushuo 87e8b16a38 立即购买和后台商品加访问前台链接 2022-08-26 15:24:13 +08:00
TL 65b5efb904 安装引导 2022-08-26 15:18:47 +08:00
pushuo c57b96ba8d wip 2022-08-26 15:05:11 +08:00
TL dc16ece325 安装引导程序增加后台账号密码设置 2022-08-26 15:04:14 +08:00
pushuo 0ff6615cad wip 2022-08-26 14:49:24 +08:00
pushuo 0e7f144f63 安装引导 2022-08-26 14:45:17 +08:00
Edward Yang 054359af34 反选其他 2022-08-26 14:13:02 +08:00
TL 54bfb88e12 清空商品回收站 2022-08-26 14:06:47 +08:00
pushuo 725c888a6b 添加富文本编辑器语言文件 2022-08-26 14:02:39 +08:00
pushuo 45c1366ec5 删除富文本编辑器语言文件 2022-08-26 14:02:14 +08:00
Edward Yang cbed7f0c34 dashboard language 2022-08-26 13:46:25 +08:00
Edward Yang e2dd6c6086 添加产品地址 2022-08-26 12:01:32 +08:00
TL 729fdf2f9a 安装引导语言切换 2022-08-26 12:00:09 +08:00
TL 06533e15e6 安装引导程序语言切换 2022-08-26 11:57:36 +08:00
Edward Yang 4d2e9b3efd 不能删除root 账号 2022-08-26 11:55:21 +08:00
Edward Yang d7deeb62df 后台使用默认货币 2022-08-26 11:48:37 +08:00
TL 52fd9ce208 安装引导程序语言切换 2022-08-26 11:37:14 +08:00
TL 7d40d7e6e0 安装引导程序切换语言 2022-08-26 11:15:25 +08:00
Edward Yang 122af22e6f 修复删除描述 2022-08-26 11:02:49 +08:00
Edward Yang 92178afd19 修复后台多语言 2022-08-26 10:45:09 +08:00
Edward Yang b65c2590b7 fixed product edit 2022-08-26 10:38:06 +08:00
Edward Yang 2503012cd8 优化税类 2022-08-26 10:26:27 +08:00
Edward Yang 0d28e4765e 优化客户姓名 2022-08-26 10:15:01 +08:00
Edward Yang d0fea5ec2d 优化订单状态 2022-08-26 10:11:28 +08:00
pushuo 4cb0078572 wip 2022-08-26 09:43:28 +08:00
pushuo 04e2b39f1c 单图模块居中 2022-08-26 09:33:19 +08:00
pushuo e04d25d8af 图片模块优化 2022-08-26 09:13:10 +08:00
pushuo 2da64d98b7 wip 2022-08-26 09:02:58 +08:00
pushuo 1252708660 添加品牌图片,优化后台品牌 编辑和前台商品详情页Ui 2022-08-25 23:59:59 +08:00
pushuo 68deac8aa1 修复导航图片链接 2022-08-25 19:08:12 +08:00
pushuo 3256469e1c 修改图片 2022-08-25 18:15:20 +08:00
pushuo 3b469512aa 添加图片 2022-08-25 17:59:16 +08:00
pushuo 7c3b5f27a5 添加图片 2022-08-25 17:22:06 +08:00
Edward Yang 106471ea2e fixed customer guard https://guangdagit.com/beike/beikeshop/issues/195 2022-08-25 16:51:21 +08:00
TL fbb35e59be 安装引导语言包 2022-08-25 16:42:01 +08:00
Edward Yang 739aceb8bd cancel order 2022-08-25 16:38:03 +08:00
Edward Yang bb640e53de cancel order 2022-08-25 16:35:27 +08:00
TL c82284154f 安装引导语言包 2022-08-25 16:28:15 +08:00
TL fff09b9684 安装引导程序seeder 2022-08-25 16:14:37 +08:00
Edward Yang e1063eb3f2 change to innodb engine and cancel order 2022-08-25 16:06:07 +08:00
pushuo 69090d84ca 优化图片管理器 -> https://guangdagit.com/beike/beikeshop/issues/175 2022-08-25 14:28:46 +08:00
pushuo 6bbb4d1cbd https://guangdagit.com/beike/beikeshop/issues/179
https://guangdagit.com/beike/beikeshop/issues/188
2022-08-25 11:01:54 +08:00
pushuo 088234a922 优化字体与前台地址等 2022-08-25 10:52:04 +08:00
pushuo c1465b321c https://guangdagit.com/beike/beikeshop/issues/182 2022-08-25 10:32:23 +08:00
pushuo c151453167 https://guangdagit.com/beike/beikeshop/issues/185 2022-08-25 10:27:35 +08:00
pushuo 2a556c8684 https://guangdagit.com/beike/beikeshop/issues/186 2022-08-25 10:25:13 +08:00
Edward Yang 614757ecaf fixed product create 2022-08-24 18:50:26 +08:00
Edward Yang b194c7670f fixed total format 2022-08-24 18:30:26 +08:00
pushuo c97c715bd8 wip 2022-08-24 17:54:50 +08:00
pushuo 6a072f886e no message 2022-08-24 17:24:46 +08:00
Edward Yang 5f9fae29b4 fixed tax 2022-08-24 17:19:23 +08:00
pushuo aecc9a547a 订单筛选删除电话 2022-08-24 16:48:26 +08:00
pushuo 636650ad45 安装引导 2022-08-24 16:47:04 +08:00
TL d8149e8b1e 安装引导程序 2022-08-24 14:32:26 +08:00
Edward Yang 6af43a0547 code format 2022-08-24 12:04:49 +08:00
Edward Yang 9c6c38aef4 fixed export order 2022-08-24 12:04:30 +08:00
pushuo c85159de1b 优化安装引导 2022-08-24 11:57:04 +08:00
Edward Yang 1daca70b3a 订单多语言 2022-08-24 11:50:49 +08:00
pushuo a53898ed78 wip 2022-08-24 11:45:55 +08:00
Edward Yang 9c1597eb6d 产品名称字符限制 https://guangdagit.com/beike/beikeshop/issues/181 2022-08-24 11:40:50 +08:00
pushuo d3968c3a02 优化安装引导 2022-08-24 11:38:10 +08:00
Edward Yang 2ed93cd88a export order 2022-08-24 11:37:20 +08:00
pushuo ea69096b34 安装引导 2022-08-24 11:15:32 +08:00
pushuo f140e541e1 wip 2022-08-24 11:04:03 +08:00
pushuo 68e10f001b 后台设置页面多语言 2022-08-24 10:56:19 +08:00
pushuo f4930768ee 订单列表筛选不加page、订单详情页显示地址信息 2022-08-24 10:43:30 +08:00
Edward Yang e548fa845a export orders 2022-08-24 10:09:34 +08:00
pushuo 6d9081e4e2 后台区域、税率、税类等多语言 2022-08-24 10:02:17 +08:00
Edward Yang 43fb0ceb76 翻页带上搜索条件 2022-08-24 09:57:04 +08:00
Edward Yang cbd1338aff filter orders 2022-08-24 09:29:06 +08:00
pushuo e7017fa8b9 后台订单列表筛选 2022-08-24 08:51:45 +08:00
TL ca0320253d 后台商品编辑 2022-08-23 16:46:34 +08:00
Edward Yang ba32addfdb 添加model筛选 https://guangdagit.com/beike/beikeshop/issues/173 2022-08-23 16:33:08 +08:00
Edward Yang 05410da29e product attribute 2022-08-23 16:24:42 +08:00
Edward Yang fc9c826b0c product 翻译从产品改为商品 2022-08-23 16:17:44 +08:00
pushuo 367f334c4d 优化后台商品列表和详情 2022-08-23 15:52:21 +08:00
TL 54345c0b18 商品批量上下架 2022-08-23 15:36:53 +08:00
TL d66566fe04 后台商品创建 2022-08-23 15:20:09 +08:00
pushuo 7b87e42f53 https://guangdagit.com/beike/beikeshop/issues/166 2022-08-23 15:17:43 +08:00
TL 5bfc4b84a2 后台商品创建 2022-08-23 15:17:29 +08:00
pushuo 9c7080b379 https://guangdagit.com/beike/beikeshop/issues/165 2022-08-23 15:14:03 +08:00
TL c3616e5b33 商品创建验证 2022-08-23 15:09:14 +08:00
pushuo 6d01a6515d 优化后台商品列表页 功能 2022-08-23 15:04:10 +08:00
TL 802ae9dbd9 wip 2022-08-23 14:41:35 +08:00
TL 60e49ee22a wip 2022-08-23 14:40:38 +08:00
TL 419f29debe 后台批量上下架和批量删除 2022-08-23 14:37:26 +08:00
TL a1ee7cda6e 后台不能删除默认客户组 2022-08-23 10:14:32 +08:00
TL 9d8c40a81b 系统设置增加默认客户组 2022-08-23 10:04:04 +08:00
sl 2686a8f40f https://guangdagit.com/beike/beikeshop/issues/163 2022-08-23 10:00:58 +08:00
sl 5b7cc2bcbc wip 2022-08-23 09:44:50 +08:00
TL a13a310efb 注册 2022-08-23 08:57:16 +08:00
pushuo 6090c3fe14 安装引导表单优化 2022-08-23 00:06:52 +08:00
pushuo 1f34cf67fa wip 2022-08-22 23:35:34 +08:00
pushuo 497d33a08d 找回必填报错词条 2022-08-22 23:19:36 +08:00
pushuo 8af086162f https://guangdagit.com/beike/beikeshop/issues/159 2022-08-22 23:12:36 +08:00
Edward Yang 700390790f 修复购物车和结账页多语言 2022-08-22 20:51:49 +08:00
Edward Yang 8659720060 获取成功多语言 2022-08-22 20:37:39 +08:00
Edward Yang 0717ecccba fixed address 2022-08-22 20:35:38 +08:00
Edward Yang 8bc503482f fixed remove from wishlist 2022-08-22 20:31:07 +08:00
Edward Yang 529640cbf6 收藏多语言 2022-08-22 20:24:05 +08:00
sl 6fd0fb353b wip 2022-08-22 20:11:54 +08:00
sl fac2319826 wip 2022-08-22 20:08:45 +08:00
Edward Yang 7866d0adc0 fixed rma languages 2022-08-22 19:29:19 +08:00
sl 3a2a7cf49f Wip 2022-08-22 19:18:03 +08:00
Edward Yang 8f5261d660 fixed edit account 2022-08-22 19:14:09 +08:00
sl 7d16765883 wip 2022-08-22 19:04:49 +08:00
sl a82b7462e6 编辑地址 英文词条 2022-08-22 18:56:52 +08:00
pushuo 5198f647b0 https://guangdagit.com/beike/beikeshop/issues/69 2022-08-22 18:32:01 +08:00
Edward Yang c6512f3189 修复多语言问题 2022-08-22 18:31:10 +08:00
pushuo e39fad0f2e https://guangdagit.com/beike/beikeshop/issues/160 2022-08-22 18:28:38 +08:00
pushuo 8b89df5be3 https://guangdagit.com/beike/beikeshop/issues/78 2022-08-22 18:23:34 +08:00
Edward Yang f861261b3c fixed address error 2022-08-22 18:23:17 +08:00
pushuo 28e1bbfe9a https://guangdagit.com/beike/beikeshop/issues/154 2022-08-22 18:11:46 +08:00
pushuo ff831f0741 https://guangdagit.com/beike/beikeshop/issues/155 2022-08-22 18:05:49 +08:00
Edward Yang dffc6e6799 fixed password 2022-08-22 18:05:13 +08:00
pushuo f394b20d31 https://guangdagit.com/beike/beikeshop/issues/157 2022-08-22 18:00:34 +08:00
pushuo c504ab90d8 https://guangdagit.com/beike/beikeshop/issues/136 2022-08-22 17:56:53 +08:00
sl b77f500fac wip 2022-08-22 17:53:50 +08:00
pushuo 0265def552 https://guangdagit.com/beike/beikeshop/issues/44 2022-08-22 17:51:37 +08:00
pushuo f1304f51bf 后台货币列表状态 2022-08-22 17:50:05 +08:00
pushuo 5c4b9d6f2d https://guangdagit.com/beike/beikeshop/issues/141 2022-08-22 17:39:35 +08:00
pushuo 12cd640353 https://guangdagit.com/beike/beikeshop/issues/142 2022-08-22 17:37:29 +08:00
pushuo f98ab08b5e https://guangdagit.com/beike/beikeshop/issues/144 2022-08-22 17:34:46 +08:00
pushuo 180f6f0b2c 处理导航菜单新窗口打开问题 2022-08-22 17:31:26 +08:00
Edward Yang 785f08fa01 fixed order checkout success 2022-08-22 17:30:19 +08:00
Edward Yang bf76f1758a fixed order info 2022-08-22 17:28:34 +08:00
Edward Yang b1393a2720 修复订单状态多语言 2022-08-22 17:26:21 +08:00
pushuo 8d192b9a90 https://guangdagit.com/beike/beikeshop/issues/147 2022-08-22 17:16:50 +08:00
Edward Yang 9fdc1491b4 登录页面相关多语言 2022-08-22 17:16:09 +08:00
pushuo 52fa511d52 no message 2022-08-22 17:12:18 +08:00
pushuo ee185aedf3 https://guangdagit.com/beike/beikeshop/issues/149 2022-08-22 17:00:07 +08:00
pushuo 53810c492a https://guangdagit.com/beike/beikeshop/issues/151 2022-08-22 16:57:58 +08:00
pushuo e389c3b184 优化税类描述标题描述显示过长问题 2022-08-22 16:20:40 +08:00
Edward Yang 8394ab5c6b fixed tax class detail 2022-08-22 16:19:32 +08:00
pushuo b4c5874ddf 安装引导优化 2022-08-22 16:06:27 +08:00
sl 27cc1e9529 wip 2022-08-22 10:32:44 +08:00
Edward Yang 47d00e5308 remove installed-bak 2022-08-22 10:05:25 +08:00
Edward Yang 226e5a7e99 修复下单商品名称被截取 2022-08-22 10:03:30 +08:00
pushuo 17d0e28aec 安装引导 -- 2022-08-19 22:01:38 +08:00
Edward Yang d42cd187dc 优化产品数据验证 2022-08-19 21:55:46 +08:00
Edward Yang a01c57c025 税率大于0小于100 2022-08-19 21:21:38 +08:00
Edward Yang d670a46c32 fixed validation 2022-08-19 21:14:12 +08:00
Edward Yang f0dd991d1e 翻译中文错误信息 2022-08-19 20:57:43 +08:00
Edward Yang 728c5a7671 前台只显示启用商品 2022-08-19 20:36:04 +08:00
pushuo 3002721a48 隐藏后台模版主题选择 2022-08-19 19:30:10 +08:00
pushuo efc2bc6227 税率设置表单优化 2022-08-19 19:29:29 +08:00
Edward Yang 2eda2bc745 优化单页错误信息 2022-08-19 19:16:51 +08:00
sl d7d6028974 wip 2022-08-19 19:01:33 +08:00
pushuo 26eb9989d2 no message 2022-08-19 18:55:22 +08:00
pushuo d6eee750ec 优化错误显示 2022-08-19 18:53:24 +08:00
sl 2e989a3382 英文词条 2022-08-19 18:41:49 +08:00
pushuo 3aa20d084a 列表错误显示 2022-08-19 18:30:39 +08:00
pushuo 67be2fd9fa wip 2022-08-19 18:21:43 +08:00
sl 6053e67915 多语言词条 2022-08-19 18:03:54 +08:00
Edward Yang e1d01356b0 修复禁用客户 2022-08-19 17:45:19 +08:00
Edward Yang 25dc11c69f fixed description 2022-08-19 17:10:31 +08:00
Edward Yang 44cc4f6c72 限制长度 2022-08-19 17:03:18 +08:00
Edward Yang ac0f1ac48e fixed page error 2022-08-19 16:56:05 +08:00
Edward Yang 2d104a0f2c add error message to checkout 2022-08-19 16:35:39 +08:00
Edward Yang a610c9231f 修复税费计算逻辑 2022-08-19 16:19:26 +08:00
pushuo 6efe768138 修复导航菜单问题 2022-08-19 16:17:05 +08:00
sl 62c9921750 多语言词条 2022-08-19 16:02:34 +08:00
pushuo 9c977e00bf 优化页尾编辑 2022-08-19 16:02:26 +08:00
pushuo 72801d1b75 修复主菜单删除问题 2022-08-19 15:55:21 +08:00
sl 1f81608fed 多语言词条 2022-08-19 15:50:44 +08:00
sl 393d0416d2 多语言词条 2022-08-19 15:31:14 +08:00
sl edcb1fe46b wip 2022-08-19 15:23:05 +08:00
sl b292c3e174 多语言词条 2022-08-19 15:12:37 +08:00
Edward Yang bb7ba05f82 运费按百分比 https://guangdagit.com/beike/beikeshop/issues/139 2022-08-19 15:08:22 +08:00
Edward Yang 2ba15ab156 保留位数根据后台货币设置 https://guangdagit.com/beike/beikeshop/issues/138 2022-08-19 15:01:17 +08:00
Edward Yang f9246bd436 update cart languages for https://guangdagit.com/beike/beikeshop/issues/31 2022-08-19 14:56:55 +08:00
pushuo 61417c4e58 关闭找回密码和通知客户 2022-08-19 14:31:02 +08:00
Edward Yang bf2346d2c1 修复编辑语言 https://guangdagit.com/beike/beikeshop/issues/117 2022-08-19 14:26:55 +08:00
Edward Yang b310755a55 https://guangdagit.com/beike/beikeshop/issues/133 2022-08-19 14:15:07 +08:00
Edward Yang da28dcdcc8 fixed order report for https://guangdagit.com/beike/beikeshop/issues/135 2022-08-19 14:02:16 +08:00
sl 714c720bcf 多语言词条 2022-08-19 10:57:00 +08:00
sl 7838e20337 多语言 2022-08-19 10:26:29 +08:00
sl 9e17fbb956 wip 2022-08-19 10:11:51 +08:00
pushuo ece7f64ba9 wip 2022-08-19 10:08:23 +08:00
pushuo e9d3ba13cd 后台客户组 只剩一个时不能删除 2022-08-19 09:28:10 +08:00
Edward Yang f62863876f fixed order list 2022-08-18 20:49:58 +08:00
Edward Yang 62a6c89696 最新商品 breadcrumb 2022-08-18 20:42:28 +08:00
Edward Yang 45d9d629cf fixed order paid 2022-08-18 20:35:38 +08:00
Edward Yang 28c188d5ce 修复RMA详情页面包屑 2022-08-18 20:32:19 +08:00
Edward Yang 6ffb987275 fixed route 2022-08-18 20:24:11 +08:00
Edward Yang b512f6260d 修复订单详情页面包屑 2022-08-18 20:20:55 +08:00
sl a350b867cd wip 2022-08-18 19:22:45 +08:00
sl 173af2594f Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev
# Conflicts:
#	resources/lang/zh_cn/shop/account.php
2022-08-18 19:17:42 +08:00
sl ffe91e5bdc 多语言 2022-08-18 19:09:21 +08:00
Edward Yang d23d07cdf0 跳转登录页 https://guangdagit.com/beike/beikeshop/issues/129 2022-08-18 18:25:02 +08:00
Edward Yang 31f163d56d 产品禁用跳转首页 2022-08-18 18:21:50 +08:00
pushuo 8f07c8448a 后台品牌列表 2022-08-18 18:13:35 +08:00
Edward Yang e38626d2f4 fixed composer 2022-08-18 18:13:05 +08:00
TL 5bc7e004fb 安装引导 2022-08-18 18:05:49 +08:00
pushuo 162771bdfe 后台信息页面优化 2022-08-18 18:05:35 +08:00
Edward Yang 73de2614c1 修复订单状态多语言 2022-08-18 17:43:51 +08:00
Edward Yang bef8d6fe76 确认收货 2022-08-18 17:40:19 +08:00
Edward Yang 334a321bfc 修复禁用用户登录成功 https://guangdagit.com/beike/beikeshop/issues/126 2022-08-18 17:37:01 +08:00
Edward Yang 36208c0c35 fixed brand for https://guangdagit.com/beike/beikeshop/issues/107 2022-08-18 17:24:04 +08:00
pushuo 35c464f47e 修复后台用户需求地址创建问题 2022-08-18 17:20:39 +08:00
pushuo d60e00d993 删除后台客户组多余数据 2022-08-18 17:18:28 +08:00
sl a0b60ffad5 Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-18 17:13:47 +08:00
sl 22944781c3 wip 2022-08-18 17:13:38 +08:00
TL d6d82dc2ef 后天会员组管理 2022-08-18 17:09:02 +08:00
Edward Yang a86136ba15 use PRC as default timezone https://guangdagit.com/beike/beikeshop/issues/99 2022-08-18 17:08:34 +08:00
sl c07de5c130 Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-18 17:08:03 +08:00
sl d02f8e354b 多语言 2022-08-18 17:07:51 +08:00
pushuo 13582f2559 https://guangdagit.com/beike/beikeshop/issues/97 2022-08-18 17:05:23 +08:00
pushuo 519193fef9 https://guangdagit.com/beike/beikeshop/issues/113 2022-08-18 17:03:25 +08:00
Edward Yang 6d2c7de17e use PRC as default timezone https://guangdagit.com/beike/beikeshop/issues/99 2022-08-18 17:01:55 +08:00
Edward Yang f475313e27 ajax delete page 2022-08-18 16:57:22 +08:00
pushuo 20ddc21147 pages 删除 2022-08-18 16:53:57 +08:00
Edward Yang e7734e02d1 fixed account orders filter by status 2022-08-18 16:51:10 +08:00
pushuo 0c6bc6c220 pages 删除 2022-08-18 16:49:21 +08:00
pushuo 827272dbb2 https://guangdagit.com/beike/beikeshop/issues/115 2022-08-18 16:42:48 +08:00
pushuo 1eba785fac https://guangdagit.com/beike/beikeshop/issues/116 2022-08-18 16:34:24 +08:00
pushuo 17f862be2a https://guangdagit.com/beike/beikeshop/issues/78 2022-08-18 16:31:27 +08:00
sl 829ecfb759 Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-18 16:27:48 +08:00
sl 0bd3580af5 多语言 2022-08-18 16:27:39 +08:00
pushuo b95cffb9ff https://guangdagit.com/beike/beikeshop/issues/82 2022-08-18 16:27:20 +08:00
pushuo 7b4c1ab407 https://guangdagit.com/beike/beikeshop/issues/118 2022-08-18 16:24:34 +08:00
Edward Yang 8259973dc4 fixed order complete https://guangdagit.com/beike/beikeshop/issues/118 2022-08-18 16:22:59 +08:00
pushuo 83bda1760b https://guangdagit.com/beike/beikeshop/issues/123 2022-08-18 16:21:15 +08:00
Edward Yang 76475832e0 插件更新状态语言包 2022-08-18 16:18:39 +08:00
pushuo c9ae8a56ec https://guangdagit.com/beike/beikeshop/issues/75 2022-08-18 16:14:19 +08:00
pushuo 773c01c4c5 https://guangdagit.com/beike/beikeshop/issues/59 2022-08-18 16:11:13 +08:00
Edward Yang 2aeba25590 购物车数据验证 2022-08-18 16:10:12 +08:00
pushuo 4835250392 https://guangdagit.com/beike/beikeshop/issues/103 2022-08-18 16:09:38 +08:00
pushuo 822df95290 https://guangdagit.com/beike/beikeshop/issues/104 2022-08-18 16:08:20 +08:00
pushuo 6cbecf90e6 https://guangdagit.com/beike/beikeshop/issues/112 2022-08-18 15:59:02 +08:00
pushuo 0f27656ec0 https://guangdagit.com/beike/beikeshop/issues/114 2022-08-18 15:56:09 +08:00
pushuo 0bcdc4e222 优化结账页面 提交订单 按钮状态判断 2022-08-18 15:45:44 +08:00
sl 02dd913ec1 Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-18 15:39:12 +08:00
sl cd096c6cf2 多语言 2022-08-18 15:39:00 +08:00
Edward Yang 2e201dd789 优化购物车商品为空 https://guangdagit.com/beike/beikeshop/issues/119 2022-08-18 15:22:00 +08:00
pushuo 59ead57e17 https://guangdagit.com/beike/beikeshop/issues/120 2022-08-18 15:21:28 +08:00
pushuo 9959a0a128 https://guangdagit.com/beike/beikeshop/issues/119 2022-08-18 15:13:04 +08:00
pushuo fdd434aa64 修复后他导航菜单配置问题 2022-08-18 15:08:35 +08:00
Edward Yang 495b0047cb fixed language for https://guangdagit.com/beike/beikeshop/issues/122 2022-08-18 14:59:49 +08:00
Edward Yang 473868fd09 格式化时间 https://guangdagit.com/beike/beikeshop/issues/121 2022-08-18 14:57:42 +08:00
Edward Yang f5a7004ea3 未登录不允许添加购物车 https://guangdagit.com/beike/beikeshop/issues/96 2022-08-18 14:26:50 +08:00
sl 945d3cb7e3 多语言 2022-08-18 12:01:39 +08:00
sl 7f08b8c97c wip 2022-08-18 11:49:33 +08:00
sl d76933dcca wip 2022-08-18 09:47:47 +08:00
sl 23b1b2dd15 Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-18 09:43:16 +08:00
sl baa790e60d wip 2022-08-18 09:43:06 +08:00
pushuo 6ea370ad61 登录页面面包屑 2022-08-18 09:39:40 +08:00
sl 06193e9a1c Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-18 09:09:01 +08:00
sl 979db45a89 多语言 2022-08-18 09:08:50 +08:00
Edward Yang c5ae46389d page breadcrumb 2022-08-18 08:46:17 +08:00
Edward Yang 0ddfde5e0c 删除 diglactic/laravel-breadcrumbs 2022-08-18 08:32:13 +08:00
Edward Yang b5a8e46b2b 修复我的地址面包屑 2022-08-18 00:13:59 +08:00
Edward Yang a6a0b4cfbc fixed account breadcrumb 2022-08-17 23:58:03 +08:00
Edward Yang ac9ecb3f9d fixed account index and account order page 2022-08-17 23:45:42 +08:00
Edward Yang 58b32aa523 重构面包屑 2022-08-17 23:40:48 +08:00
Edward Yang 9984dfd3d0 code format 2022-08-17 22:45:15 +08:00
Edward Yang 2cc9159f94 优化品牌页面产品列表读取性能 2022-08-17 22:15:42 +08:00
sl d387d49da9 多语言 2022-08-17 19:48:31 +08:00
sl 6046959f84 Merge branch 'dev' of https://guangdagit.com/beike/beikeshop into dev 2022-08-17 19:30:25 +08:00
sl c15be1e737 多语言 2022-08-17 19:30:12 +08:00
pushuo e916e943c2 优化后台 ui 2022-08-17 19:27:06 +08:00
Edward Yang 97780cb2f9 fixed wish list https://guangdagit.com/beike/beikeshop/issues/102 2022-08-17 18:56:19 +08:00
Edward Yang db4c22cf31 fixed delete category 2022-08-17 18:45:15 +08:00
Edward Yang 1ea67b0a35 购物车相关需要先登录, 修复购物车产品名称太长问题 https://guangdagit.com/beike/beikeshop/issues/108 2022-08-17 17:59:17 +08:00
pushuo 2655bb8895 优化表单前端验证 2022-08-17 17:48:06 +08:00
pushuo 5b503d9038 优化售后等 2022-08-17 11:11:36 +08:00
pushuo 86b9bf4c60 wip 2022-08-17 10:59:06 +08:00
pushuo 9df4565d7c wip 2022-08-17 10:57:51 +08:00
TL dca5bdd4a3 退换货 2022-08-17 10:55:09 +08:00
TL d2a9056802 售后服务(退换货) 2022-08-17 10:40:21 +08:00
pushuo bc713a5976 wip 2022-08-17 10:39:17 +08:00
pushuo 315c3e8a2e rma 2022-08-17 10:11:38 +08:00
songliang dd1828a94a 词条 2022-08-17 09:29:34 +08:00
pushuo 026f5008e5 wip 2022-08-16 19:38:16 +08:00
TL 550d95679f 退换货 2022-08-16 19:27:40 +08:00
TL 8831abec50 退换货 2022-08-16 19:26:23 +08:00
TL fbd4f61128 退换货 2022-08-16 19:22:08 +08:00
pushuo ba67262e9e wip 2022-08-16 19:15:48 +08:00
TL f6e02c9990 退换货 2022-08-16 19:11:31 +08:00
TL e49a778f2b 退换货原因 2022-08-16 19:06:21 +08:00
TL 728871ef14 后台控制器中语言提取到语言包 2022-08-16 19:06:21 +08:00
pushuo 00790c1d6c wip 2022-08-16 19:03:45 +08:00
pushuo b0f1472d2b wip 2022-08-16 18:57:37 +08:00
TL 0405a9a855 后台控制器中语言提取到语言包 2022-08-16 18:37:10 +08:00
Edward Yang 2790fe648f fixed cart image 2022-08-16 18:21:54 +08:00
Edward Yang 789c2f4fa6 complete order 2022-08-16 18:05:14 +08:00
Edward Yang 0d6dcf1d98 fixed common. 2022-08-16 18:03:55 +08:00
pushuo 152f8379b9 page 2022-08-16 17:52:19 +08:00
Edward Yang de8b8525ea fixed admin permission 2022-08-16 17:47:03 +08:00
TL a3cfcf9df5 客户管理 2022-08-16 17:45:53 +08:00
songliang a45dbc1f22 wip 2022-08-16 17:42:35 +08:00
Edward Yang 2f40420032 fixed edit product 2022-08-16 17:38:13 +08:00
TL 92125c6542 权限语言包 2022-08-16 17:35:20 +08:00
Edward Yang af6d9ceabf fixed error message 2022-08-16 17:32:51 +08:00
TL 7354b0c6e5 权限语言包 2022-08-16 17:27:56 +08:00
pushuo d011cf2803 优化 2022-08-16 17:20:07 +08:00
songliang 3eb3b3a37b 个人中心订单列表缩略图 2022-08-16 17:10:09 +08:00
Edward Yang 064291a05e fixed order completed 2022-08-16 16:44:36 +08:00
TL e19735f5a7 添加后台权限 2022-08-16 16:18:02 +08:00
Edward Yang 2bee77437c page title 2022-08-16 15:52:09 +08:00
songliang 638686f9ff wip 2022-08-16 15:13:33 +08:00
pushuo 49a2a25489 添加 rma 2022-08-16 14:51:03 +08:00
Edward Yang 9170cf49cb fixed currencies for setting https://guangdagit.com/beike/beikeshop/issues/39 2022-08-16 14:46:51 +08:00
songliang 481c06a15a wip 2022-08-16 14:45:24 +08:00
pushuo 036b6a466e 优化后台用户列表和回收站 2022-08-16 14:03:03 +08:00
Edward Yang f911ddbd68 fixed admin users 2022-08-16 14:00:38 +08:00
Edward Yang 5d6a84a473 fixed trashed 2022-08-16 13:58:02 +08:00
TL 630c4e193e 添加权限 2022-08-16 13:57:36 +08:00
pushuo 4648eb4064 后台商品列表 2022-08-16 13:54:26 +08:00
pushuo 2ccc43163c wip 2022-08-16 11:47:16 +08:00
Edward Yang 63181c5acd fixed product resource 2022-08-16 10:35:21 +08:00
pushuo 66eeca3b7f 优化后台商品列表 2022-08-16 10:26:01 +08:00
TL 93a27cc2ad 安装引导 2022-08-16 10:00:53 +08:00
songliang 649af7a262 https://guangdagit.com/beike/beikeshop/issues/73 2022-08-16 09:57:42 +08:00
TL e819b2f731 语言包 2022-08-16 09:54:12 +08:00
TL 090d238d11 安装引导 2022-08-16 09:38:51 +08:00
Edward Yang 5f154deec3 trashed 2022-08-16 09:20:43 +08:00
Edward Yang fe9f91e970 fixed product list 2022-08-16 09:18:38 +08:00
songliang 746376c9f4 响应式 2022-08-15 19:23:31 +08:00
pushuo 910186a284 wip 2022-08-15 19:22:56 +08:00
pushuo ef64b06977 https://guangdagit.com/beike/beikeshop/issues/62 2022-08-15 19:20:29 +08:00
Edward Yang 06b6967285 修复创建用户报错 https://guangdagit.com/beike/beikeshop/issues/45 2022-08-15 19:10:08 +08:00
pushuo cd021027ed https://guangdagit.com/beike/beikeshop/issues/84 2022-08-15 19:00:35 +08:00
Edward Yang ceb0aa0686 修复后台商品列表商品价格 https://guangdagit.com/beike/beikeshop/issues/76 2022-08-15 18:42:45 +08:00
Edward Yang 51a7638b47 修复收藏缩略图和价格 2022-08-15 18:36:07 +08:00
songliang b5186bdb9d https://guangdagit.com/beike/beikeshop/issues/93 2022-08-15 18:29:29 +08:00
songliang 0094116ef9 响应式 2022-08-15 18:27:54 +08:00
TL c0acb4fb4d 安装引导程序 2022-08-15 17:55:06 +08:00
Edward Yang 8ca50a622d fixed wishlist https://guangdagit.com/beike/beikeshop/issues/87 2022-08-15 17:53:26 +08:00
Edward Yang a91e403350 fixed product description https://guangdagit.com/beike/beikeshop/issues/89 2022-08-15 17:36:38 +08:00
songliang a9e2d920f1 wip 2022-08-15 17:35:10 +08:00
songliang d1f0a7c403 wip 2022-08-15 17:29:16 +08:00
Edward Yang e629a794d1 update installed 2022-08-15 17:08:54 +08:00
TL 87e5ef5800 安装引导 2022-08-15 17:05:51 +08:00
Edward Yang c369003a28 修复收货地址错误提示 https://guangdagit.com/beike/beikeshop/issues/90 2022-08-15 17:04:15 +08:00
TL 8014a361da 安装引导程序 2022-08-15 16:40:31 +08:00
TL 5a06a7511e 安装引导程序 2022-08-15 16:40:31 +08:00
TL 69ef6e9355 安装引导程序 2022-08-15 16:40:31 +08:00
Edward Yang 3326be05cd last day 2022-08-15 16:17:19 +08:00
pushuo f3cef76a4f 购物车 空状态 2022-08-15 16:16:50 +08:00
Edward Yang a45406aec2 优化 currency 读取 2022-08-15 16:08:44 +08:00
songliang edb860774d https://guangdagit.com/beike/beikeshop/issues/71 2022-08-15 16:05:32 +08:00
Edward Yang 7753e11f8b 兼容插件 2022-08-15 15:44:51 +08:00
pushuo 14e6055bf9 优化购物车 优化menu 2022-08-15 15:43:28 +08:00
songliang 3ecea9db53 响应式 2022-08-15 14:58:39 +08:00
Edward Yang 8a391f7f53 rename to children_group 2022-08-15 14:57:15 +08:00
Edward Yang 1da21fc8bb rename to children_group 2022-08-15 14:57:10 +08:00
Edward Yang 4737893f59 优化代码 2022-08-15 14:45:30 +08:00
TL aac3ad7c90 安装引导程序 2022-08-15 14:34:17 +08:00
Edward Yang 20fbf8109d fixed brand name 2022-08-15 13:52:46 +08:00
Edward Yang 4027bb3631 优化产品名称读取 2022-08-15 13:00:14 +08:00
Edward Yang 1b8e643880 code format 2022-08-15 12:55:13 +08:00
Edward Yang acec51efdd code format 2022-08-15 12:48:31 +08:00
Edward Yang ad90a9f5ca 优化页头数据读取 2022-08-15 12:47:20 +08:00
pushuo 0dbf34348c 优化个人中心 订单 2022-08-15 12:42:51 +08:00
Edward Yang 3b633d2801 优化分类读取 一次性读取所有分类 2022-08-15 12:15:52 +08:00
Edward Yang 41c84432ef fixed https://guangdagit.com/beike/beikeshop/issues/77 2022-08-15 10:46:34 +08:00
pushuo 0935d95e97 wip 2022-08-15 10:25:39 +08:00
Edward Yang 838eec4bcc add upload folder 2022-08-15 10:25:25 +08:00
pushuo 0a22238629 导航菜单配置等有害 2022-08-15 10:15:49 +08:00
pushuo d269352143 列表页优化 2022-08-12 19:30:03 +08:00
TL 0303420679 安装引导程序 2022-08-12 19:16:05 +08:00
Edward Yang f95af926c1 show orders for account home page 2022-08-12 19:03:43 +08:00
songliang 9fb56b1e4b 响应式 2022-08-12 18:39:13 +08:00
songliang b33ebd65bb wip 2022-08-12 18:39:12 +08:00
Edward Yang 1f98b34339 change alert.php to Alert.php 2022-08-12 18:33:07 +08:00
pushuo 10a70d5e28 优化收藏等 2022-08-12 18:32:01 +08:00
Edward Yang 7aa0a2047e fixed pages 2022-08-12 18:14:54 +08:00
TL 77197021cd 安装引导程序 2022-08-12 18:13:53 +08:00
pushuo 7b53d76a43 wip 2022-08-12 18:05:27 +08:00
Edward Yang ebc81a3363 修复角色权限相关 https://guangdagit.com/beike/beikeshop/issues/81 2022-08-12 17:57:30 +08:00
pushuo c733c82681 修复货币列表 2022-08-12 17:57:04 +08:00
pushuo 0e2ef8a96e 处理后台角色编辑列表不刷新问题 2022-08-12 17:43:00 +08:00
Edward Yang 9d7ff6e116 fixed search product 2022-08-12 17:32:37 +08:00
TL a6801ef182 收藏 2022-08-12 17:02:47 +08:00
Edward Yang 8eb65c3f9d fixed admin 2022-08-12 16:57:47 +08:00
Edward Yang 38d8496aef 跳转到新的admin setting 2022-08-12 16:57:10 +08:00
pushuo 8cc4e416cc https://guangdagit.com/beike/beikeshop/issues/29 2022-08-12 16:46:38 +08:00
pushuo f7e9ec5070 https://guangdagit.com/beike/beikeshop/issues/74 2022-08-12 16:45:28 +08:00
pushuo c2a9ae1771 https://guangdagit.com/beike/beikeshop/issues/43 2022-08-12 16:42:57 +08:00
TL a8a42195ca 收藏 2022-08-12 16:39:19 +08:00
TL d881e4e795 收藏 2022-08-12 16:33:12 +08:00
pushuo de4f48065b https://guangdagit.com/beike/beikeshop/issues/30 2022-08-12 16:14:31 +08:00
Edward Yang ab39f23dff fixed sku id 2022-08-12 16:13:42 +08:00
pushuo f327089f0c https://guangdagit.com/beike/beikeshop/issues/41 2022-08-12 16:08:20 +08:00
pushuo 427d754b0d https://guangdagit.com/beike/beikeshop/issues/34 2022-08-12 16:04:30 +08:00
Edward Yang 6e6321a1a0 优化后台用户 2022-08-12 16:04:18 +08:00
pushuo 2bb83153a9 https://guangdagit.com/beike/beikeshop/issues/25 2022-08-12 16:00:57 +08:00
pushuo 59eb050d11 https://guangdagit.com/beike/beikeshop/issues/64 2022-08-12 15:53:50 +08:00
Edward Yang 9fba918f72 fixed for https://guangdagit.com/beike/beikeshop/issues/49 2022-08-12 15:52:20 +08:00
pushuo 364cb4ed84 https://guangdagit.com/beike/beikeshop/issues/48 2022-08-12 15:46:05 +08:00
pushuo 959e10d194 https://guangdagit.com/beike/beikeshop/issues/55 2022-08-12 15:40:17 +08:00
pushuo 9999d99fd6 https://guangdagit.com/beike/beikeshop/issues/73 2022-08-12 15:39:13 +08:00
pushuo 77bc06ad01 https://guangdagit.com/beike/beikeshop/issues/52 2022-08-12 15:36:59 +08:00
pushuo ad26df2af7 https://guangdagit.com/beike/beikeshop/issues/53 2022-08-12 15:35:36 +08:00
pushuo f63ebe7241 https://guangdagit.com/beike/beikeshop/issues/65 2022-08-12 15:30:10 +08:00
pushuo 76cde0a92a https://guangdagit.com/beike/beikeshop/issues/63 2022-08-12 15:29:39 +08:00
pushuo 652c703523 https://guangdagit.com/beike/beikeshop/issues/61 2022-08-12 15:27:15 +08:00
Edward Yang 7e499faaca 品牌按照添加时间倒序 2022-08-12 15:25:44 +08:00
pushuo 26d9454aa0 https://guangdagit.com/beike/beikeshop/issues/66 2022-08-12 15:23:41 +08:00
Edward Yang 2a3fbe2a1c 显示启用分类最多6个 2022-08-12 15:19:35 +08:00
Edward Yang a818c0c9f7 删除分类 2022-08-12 15:12:22 +08:00
Edward Yang 0ce474df27 category complete 2022-08-12 15:01:07 +08:00
Edward Yang c4a82b6e9d fixed 404 page 2022-08-12 14:57:07 +08:00
pushuo 06b8b9f12d 添加 logo 2022-08-12 14:54:29 +08:00
Edward Yang 95ad14093a fixed checkout service 2022-08-12 14:51:01 +08:00
pushuo 622901eaf5 订单 2022-08-12 14:50:05 +08:00
Edward Yang 224d8d6693 fixed capture 2022-08-12 14:29:01 +08:00
Edward Yang 72536a702b load products, totals and histories 2022-08-12 14:25:51 +08:00
Edward Yang 846b2ce7a1 code format 2022-08-12 14:20:11 +08:00
Edward Yang 98f4a25520 fixed paypal capture 2022-08-12 14:15:10 +08:00
Edward Yang 8731be2ab1 集成paypal支付 2022-08-12 12:25:21 +08:00
pushuo 262031236f wip 2022-08-12 12:03:15 +08:00
Edward Yang 607e48b8dc 集成paypal支付 2022-08-12 12:01:52 +08:00
pushuo ede0cd9fe2 优化表单配置 2022-08-12 12:00:30 +08:00
pushuo 78a932ea7a 修复商品常见品牌没有报错 2022-08-12 11:53:44 +08:00
pushuo 75d6b3ed34 增加配置 2022-08-12 11:50:59 +08:00
pushuo 060f10e5ac 添加一些图片配置等 2022-08-12 11:37:45 +08:00
pushuo c76a81cdda 优化客户管理客户组等 2022-08-11 19:57:47 +08:00
pushuo abd7a3afc9 优化 page 2022-08-11 19:40:32 +08:00
pushuo 80d68c811a wip 2022-08-11 19:30:32 +08:00
TL 116c7c5c45 后台顾客管理 2022-08-11 19:27:32 +08:00
TL 0bf5b06163 后台客户管理 2022-08-11 19:12:45 +08:00
Edward Yang e247632af2 change cart and category resource 2022-08-11 19:07:57 +08:00
Edward Yang c51e580dac fixed menu 2022-08-11 18:57:53 +08:00
Edward Yang 71c675fb84 fixed page detail 2022-08-11 18:53:46 +08:00
pushuo d910da229b 优化页尾 2022-08-11 18:28:31 +08:00
Edward Yang 1c68777112 fixed custom link 2022-08-11 18:25:37 +08:00
Edward Yang 770d24f656 底部链接处理 2022-08-11 18:20:24 +08:00
Edward Yang c898aa3e94 fixed product 2022-08-11 17:30:42 +08:00
TL 7ad626da07 货币管理 2022-08-11 17:30:25 +08:00
pushuo 47137d6a64 wip 2022-08-11 17:12:18 +08:00
Edward Yang 4d0e0b2b86 duplicate product 2022-08-11 17:11:03 +08:00
pushuo 80140aa9d6 wip 2022-08-11 17:08:58 +08:00
TL 8e114d16c4 后台货币管理 2022-08-11 16:56:26 +08:00
TL 9743af143f 货币管理 2022-08-11 16:56:26 +08:00
pushuo e67c0b555c 优化产品图片 2022-08-11 15:56:09 +08:00
pushuo 32cd2765d7 删除图片 2022-08-11 15:43:39 +08:00
Edward Yang d253c64613 支持插件选项多语言 2022-08-11 15:37:02 +08:00
TL 8b8fe1730d 收藏 2022-08-11 15:27:46 +08:00
Edward Yang 32dfe47037 fixed plugin column languages 2022-08-11 15:20:12 +08:00
Edward Yang 4f88ce7570 fixed stripe 2022-08-11 14:39:34 +08:00
Edward Yang 0c3185691a key and secret must be 81 2022-08-11 14:37:31 +08:00
pushuo 64e5921a25 wip 2022-08-11 14:22:26 +08:00
pushuo 45818e5e85 wip 2022-08-11 14:03:33 +08:00
Edward Yang a08bc47403 just use paypal setting 2022-08-11 13:58:55 +08:00
Edward Yang 4deb48b09a fixed paypal custom template 2022-08-11 12:07:43 +08:00
pushuo 877f9205d0 收藏 2022-08-11 12:02:56 +08:00
pushuo da8854a62f 插件 2022-08-11 12:00:11 +08:00
pushuo 3920639f34 wip 2022-08-11 11:55:26 +08:00
Edward Yang aa4d8f2903 fixed errors 2022-08-11 11:38:13 +08:00
pushuo 083c0f653d wip 2022-08-11 11:35:57 +08:00
pushuo 61800bb7e4 页尾编辑 + 2022-08-11 11:24:31 +08:00
pushuo 03b9d18071 插件 2022-08-11 11:10:52 +08:00
Edward Yang 678969331b fixed page auto complete and get name by id 2022-08-11 11:10:15 +08:00
pushuo fc6cb5c8dc 优化插件编辑页面等 2022-08-11 10:49:42 +08:00
TL 55ea7eb031 编辑个人信息 2022-08-11 09:38:53 +08:00
Edward Yang d50b1eb907 show plugin 2022-08-11 09:21:09 +08:00
pushuo 68b596bbbe 优化后台表单 2022-08-11 09:20:10 +08:00
Edward Yang 5bb0fb7e61 代码优化 2022-08-10 21:43:25 +08:00
pushuo 944b50969b 优化修改个人信息和页尾配置 2022-08-10 20:30:06 +08:00
Edward Yang c93b3cf643 add paypal 2022-08-10 19:49:25 +08:00
TL fb398b2663 编辑个人信息 2022-08-10 19:42:28 +08:00
TL c5c73005e9 文件上传 2022-08-10 19:36:24 +08:00
TL 2d7f5e9ddd image_resize 2022-08-10 19:33:56 +08:00
TL dc9d9c43a4 文件上传 2022-08-10 19:27:09 +08:00
pushuo 16b7519258 优化页尾编辑器 2022-08-10 19:08:55 +08:00
Edward Yang 5898c5abd0 fixed home page 2022-08-10 16:50:33 +08:00
pushuo e9a90c08aa wip 2022-08-10 16:49:10 +08:00
Edward Yang f621f41039 fixed footer content 2022-08-10 16:44:35 +08:00
Edward Yang b8d2ae6cfb remove charge feee 2022-08-10 16:37:02 +08:00
Edward Yang cb484688d2 fixed latest products 2022-08-10 16:36:28 +08:00
Edward Yang 7cc8056af9 fixed layout footer 2022-08-10 16:30:27 +08:00
Edward Yang af70118116 footer builder 2022-08-10 16:26:46 +08:00
pushuo b1aa079c31 wip 2022-08-10 16:21:27 +08:00
TL bc8fb4f929 文件上传 2022-08-10 16:20:59 +08:00
pushuo 36afc88779 wip 2022-08-10 16:03:06 +08:00
TL 32896c07c0 文件上传功能 2022-08-10 15:58:22 +08:00
Edward Yang 9c33863e07 plugin languages 2022-08-10 15:21:05 +08:00
pushuo 8aa0982fb4 wip 2022-08-10 15:18:28 +08:00
TL 850e306f2b 编辑个人信息 2022-08-10 15:00:56 +08:00
Edward Yang b3e97082fd fixed tax rates 2022-08-10 14:14:31 +08:00
Edward Yang 352badce6b fixed tax rate 2022-08-10 14:08:54 +08:00
pushuo 7310e822c5 头部显示用户名称错误 2022-08-10 14:06:21 +08:00
pushuo 476a7c89dc 修复税率 2022-08-10 14:03:33 +08:00
Edward Yang 5de6d87f9d 修复税类 https://guangdagit.com/beike/beikeshop/issues/28 2022-08-10 14:01:08 +08:00
pushuo 4fe4dfdef6 wip 2022-08-10 13:37:14 +08:00
pushuo 47e71a7b21 wip 2022-08-10 11:54:11 +08:00
Edward Yang de2a6161c5 handle footer data 2022-08-10 11:41:06 +08:00
pushuo 09db47f1e3 pages 2022-08-10 11:15:02 +08:00
Edward Yang e3db4613b4 fixed descriptions 2022-08-10 10:55:24 +08:00
pushuo 5bf30c4649 wip 2022-08-10 10:49:30 +08:00
Edward Yang d064095e92 fixed categories 2022-08-10 10:41:31 +08:00
Edward Yang 1031b2e89f fixed breadcrumbs 2022-08-10 10:15:14 +08:00
pushuo 07111c8396 修复首页编辑器模块问题 2022-08-09 17:42:17 +08:00
Edward Yang 657f4d67bb fixed descriptions 2022-08-09 17:26:52 +08:00
Edward Yang 147d680c4a fixed title 2022-08-09 17:20:03 +08:00
Edward Yang 69346f9f86 fixed sub stock 2022-08-09 16:06:01 +08:00
pushuo 055f897106 添加词条 2022-08-09 16:00:38 +08:00
pushuo 34a8f9bb2b wip 2022-08-09 15:59:33 +08:00
Edward Yang c5ea49428d fixed statemachine 2022-08-09 15:54:47 +08:00
Edward Yang e221f3804f 订单状态机 2022-08-09 15:50:31 +08:00
pushuo 4b23f93884 wip 2022-08-09 15:38:39 +08:00
Edward Yang 078d93ee24 fixed pages 2022-08-09 15:11:20 +08:00
pushuo 702d13d560 wip 2022-08-09 14:59:12 +08:00
pushuo 8ebe6a0979 wip 2022-08-09 14:55:14 +08:00
pushuo 5f212c3740 优化page等 2022-08-09 14:30:23 +08:00
pushuo d451113e6e 商品图片路径优化 2022-08-09 14:16:54 +08:00
pushuo 50aff2df9e 优化商品详情编辑和前台商品详情 2022-08-09 14:12:56 +08:00
Edward Yang 093ef7c4a5 rma languages 2022-08-09 14:00:20 +08:00
pushuo ce9d2e9399 添加商品图片(临时从OC复制过来) 2022-08-09 12:07:26 +08:00
pushuo ec7dbb1da2 优化文件管理器出发条件、优化前台商品详情、优化pages 2022-08-09 11:56:33 +08:00
pushuo 2e4115dbe6 页尾编辑 2022-08-09 10:53:32 +08:00
Edward Yang c273d52f54 设置超级用户 2022-08-09 00:08:38 +08:00
Edward Yang c84ff9fa86 安装 doctrine/dbal 兼容 sqlite 2022-08-09 00:07:53 +08:00
pushuo ff092ce042 wip 2022-08-08 18:38:00 +08:00
Edward Yang e840541280 update histories 2022-08-08 18:35:11 +08:00
Edward Yang 4a78e0cf67 fixed order histories 2022-08-08 18:32:00 +08:00
Edward Yang 6aa541d761 update order statues 2022-08-08 18:30:03 +08:00
pushuo 9e7ddd2ac0 wip 2022-08-08 18:09:19 +08:00
Edward Yang 7320c2e7d7 update page route 2022-08-08 17:23:23 +08:00
pushuo 965d6ff0f5 wip 2022-08-08 17:20:48 +08:00
pushuo fce7f41f5d page 页面 2022-08-08 17:13:14 +08:00
pushuo 640f8d139a wip 2022-08-08 17:01:15 +08:00
Edward Yang a3d2ce92f7 languages 2022-08-08 16:45:59 +08:00
Edward Yang 9df01b2900 fixed permissions 2022-08-08 16:28:44 +08:00
Edward Yang 96b7481123 fixed payment 2022-08-08 16:14:16 +08:00
pushuo 5c4f167915 插件多语言 2022-08-08 15:49:21 +08:00
pushuo 07aeabd87c wip 2022-08-08 15:32:45 +08:00
Edward Yang a6e2f430e4 add pages 2022-08-08 15:28:34 +08:00
pushuo e7b2124bad wip 2022-08-08 15:27:54 +08:00
pushuo d7691c3970 wip 2022-08-08 14:56:25 +08:00
Edward Yang c194e78903 调整支付插件 2022-08-08 14:23:10 +08:00
Edward Yang 5ec9e2365b 修改插件权限 2022-08-08 14:07:20 +08:00
pushuo e7254d5ef6 优化 js等 2022-08-08 11:53:35 +08:00
Edward Yang 2c42140329 change to stripe 2022-08-08 11:50:46 +08:00
pushuo b4d25ce7c6 wip 2022-08-05 19:18:43 +08:00
pushuo 3dc300e6be wip 2022-08-05 19:13:03 +08:00
Edward Yang 8a2d39d6c9 fixed languages 2022-08-05 19:11:03 +08:00
Edward Yang ba53d3f844 fixed languages 2022-08-05 19:09:14 +08:00
pushuo fd88d859aa wip 2022-08-05 19:05:14 +08:00
pushuo 7f438877b3 wip 2022-08-05 18:45:50 +08:00
Edward Yang 4c7ddfc30b fixed dashboard 2022-08-05 18:38:06 +08:00
pushuo 7f8c248d14 wip 2022-08-05 18:15:10 +08:00
Edward Yang 34a6faf3d7 order reports 2022-08-05 18:08:09 +08:00
pushuo 9fe3037f6d wip 2022-08-05 17:19:26 +08:00
pushuo 0c74fc87eb wip 2022-08-05 16:49:41 +08:00
Edward Yang ff10ec9370 fixed latest month 2022-08-05 16:27:04 +08:00
pushuo e66d5f115b settings 表单 2022-08-05 16:06:24 +08:00
songliang 53f7530cee wip 2022-08-05 15:01:09 +08:00
Edward Yang b64d3b223f update dashboard 2022-08-05 14:30:55 +08:00
pushuo 4e16cf4e16 wip 2022-08-05 14:14:00 +08:00
pushuo 2cd58f48c2 wip 2022-08-05 14:08:42 +08:00
TL f2b7d18704 货币切换 2022-08-05 13:51:52 +08:00
pushuo ab4b827b75 wip 2022-08-05 11:57:47 +08:00
TL 1e79d950ba helper currencies() 2022-08-05 11:55:11 +08:00
pushuo 075e0dac7a wip 2022-08-05 11:54:15 +08:00
pushuo 72b0ca6640 语言管理 2022-08-05 11:53:41 +08:00
TL 9f4ebf7ffe 货币切换功能 2022-08-05 11:45:17 +08:00
pushuo 3332927af8 字体文件 2022-08-05 11:36:17 +08:00
Edward Yang 35cb596557 处理错误页面无法共享全局模板数据 2022-08-05 11:10:54 +08:00
pushuo 971db18c19 wip 2022-08-05 10:59:21 +08:00
Edward Yang 028e5c3ae3 增加前后台error blade 2022-08-05 10:51:54 +08:00
TL c20e3a556a 收藏 2022-08-05 10:43:28 +08:00
Edward Yang b67f53cd5a 修改税费相关权限 2022-08-05 10:14:05 +08:00
pushuo 14d13e0ce1 wip 2022-08-05 09:25:59 +08:00
pushuo a7377c7e9f dashboard 优化 2022-08-05 09:09:19 +08:00
songliang 93cdb22fb9 wip 2022-08-04 19:07:23 +08:00
Edward Yang b7bd77ba76 插件修改后台子菜单 2022-08-04 18:23:49 +08:00
songliang 6773546efd wip 2022-08-04 18:17:18 +08:00
TL 1e204a5223 后台切换语言 2022-08-04 18:04:27 +08:00
pushuo 72c2ea0bb0 wip 2022-08-04 18:02:03 +08:00
TL 8574301902 后台切换语言 2022-08-04 17:59:15 +08:00
songliang f63efa5f5e wip 2022-08-04 17:58:14 +08:00
TL ac9fffd532 后台语言切换 2022-08-04 17:57:55 +08:00
pushuo c3f38d9a84 wip 2022-08-04 17:52:30 +08:00
songliang e6b42fd2a2 首页品牌图片 2022-08-04 17:38:38 +08:00
Edward Yang fe778a4273 fixed route list 2022-08-04 17:09:28 +08:00
pushuo 1635178f80 wip 2022-08-04 16:37:22 +08:00
Edward Yang 045fb2fcf5 支持插件自定义后台路由 2022-08-04 16:36:23 +08:00
TL 1f4c3914dd wip 2022-08-04 16:22:02 +08:00
TL b3bff6f829 后台修改个人信息和修改语言 2022-08-04 16:21:24 +08:00
songliang 641dce77e8 商品列表hover 2022-08-04 16:19:14 +08:00
Edward Yang bdb36da1f7 fixed admin language 2022-08-04 16:10:33 +08:00
Edward Yang e36f3b6b7a update languages 2022-08-04 16:07:33 +08:00
pushuo 30a76e22a9 wip 2022-08-04 15:56:47 +08:00
Edward Yang 006750c9bc fixed admin language 2022-08-04 15:52:29 +08:00
Edward Yang 4942180b5f update user language 2022-08-04 15:45:59 +08:00
pushuo 9ebe2f604e wip 2022-08-04 15:44:01 +08:00
Edward Yang dda399f1db admin current language 2022-08-04 15:38:57 +08:00
Edward Yang 3b1eaca6fb fixed admin languages 2022-08-04 15:34:11 +08:00
pushuo f14ef5a029 wip 2022-08-04 15:14:45 +08:00
pushuo bcbd5db00f wip 2022-08-04 15:14:28 +08:00
Edward Yang c431ffbb83 show brands 2022-08-04 15:12:48 +08:00
pushuo 9e77667360 wip 2022-08-04 14:52:07 +08:00
Edward Yang be240bb21a fixed catalog 2022-08-04 14:51:34 +08:00
TL a294e2cf04 语言包 2022-08-04 14:49:34 +08:00
TL 8caac6ab9f 语言包 2022-08-04 14:46:58 +08:00
TL 474bac5955 添加权限和菜单 2022-08-04 14:42:00 +08:00
Edward Yang 71489cc733 fixed currency format 2022-08-04 14:41:27 +08:00
Edward Yang 12e86c7bcc fixed frontend 2022-08-04 14:16:14 +08:00
Edward Yang cc3bdfc7b5 fixed side bars 2022-08-04 12:18:49 +08:00
Edward Yang 5372de0b6a fixed languages 2022-08-04 12:16:21 +08:00
Edward Yang 3b86cb97d5 permission languages 2022-08-04 12:03:51 +08:00
Edward Yang 677fa5c25d languages 2022-08-04 12:00:34 +08:00
Edward Yang 231988fdd7 fixed header 2022-08-04 11:54:50 +08:00
Edward Yang 8f5dc98f7e 权限多语言 2022-08-04 11:23:22 +08:00
Edward Yang c63af2b89b fixed languages 2022-08-04 11:06:26 +08:00
TL 5890db5e08 后台用户语言设置 2022-08-04 10:53:19 +08:00
Edward Yang be9a795a0f language fixed 2022-08-04 10:36:06 +08:00
Edward Yang 43979bfc4c 获取后台语言包列表 2022-08-04 10:32:36 +08:00
Edward Yang c40f743d69 use helper to access user and customer 2022-08-04 10:20:27 +08:00
TL 8b86d42793 后台语言切换 2022-08-04 10:15:36 +08:00
Edward Yang 230749b98b update composer package. 2022-08-04 10:10:51 +08:00
TL bd531e3514 后台语言切换 2022-08-04 09:53:55 +08:00
TL 455de33cbb 售后服务(退换货) 2022-08-04 09:39:42 +08:00
Edward Yang de8e574a29 upgrade to laravel 9 2022-08-04 09:35:32 +08:00
Edward Yang d16b6f2c4a fixed order totals 2022-08-03 19:23:31 +08:00
Edward Yang f8d5f15c16 添加后台dashboard数据 2022-08-03 19:18:24 +08:00
TL 7d67dd0d5c 收藏 2022-08-03 18:31:03 +08:00
pushuo 75a20bbf1a wip 2022-08-03 18:28:57 +08:00
pushuo f9fbb8bbde wip 2022-08-03 18:24:57 +08:00
TL 8a6c66fb83 收藏 2022-08-03 18:24:24 +08:00
pushuo 70283cade3 优化商品详情等 2022-08-03 18:16:54 +08:00
Edward Yang 918d3b385d price and name 2022-08-03 18:15:03 +08:00
songliang 7cabf52ec7 wip 2022-08-03 17:55:00 +08:00
songliang 92b1655f9d wip 2022-08-03 17:52:45 +08:00
Edward Yang 7e99c1821c change current_language_code to locale 2022-08-03 17:23:39 +08:00
TL 01f1822c27 售后服务申请(退换货)功能 2022-08-03 16:49:01 +08:00
songliang 78f3a181d7 商品详情放大镜优化 2022-08-03 16:48:01 +08:00
pushuo 10e6fd87bd 多语言词条 2022-08-03 16:43:25 +08:00
Edward Yang b55c42a151 update language 2022-08-03 16:34:02 +08:00
pushuo af2302ccf5 订单状态 2022-08-03 16:31:36 +08:00
Edward Yang d434f50abc 调整权限 2022-08-03 16:18:53 +08:00
pushuo 217bdbadc3 后台售后用户角色等 2022-08-03 16:18:45 +08:00
Edward Yang 79846ed46f share view data with session. 2022-08-03 15:52:39 +08:00
TL 2a4b3e2e5e 后台退换货管理 2022-08-03 15:37:48 +08:00
pushuo 4e6bcceba3 用户修改个人信息 2022-08-03 15:10:41 +08:00
TL c9e0822075 后台退换货管理 2022-08-03 14:55:22 +08:00
songliang f355a7c22c 商品详情放大镜 2022-08-03 14:48:47 +08:00
songliang d10e46b466 商品详情swiper 2022-08-03 14:48:47 +08:00
TL 8e0330b01c 后台退换货和退换货原因管理 2022-08-03 14:37:15 +08:00
Edward Yang e118705324 优化语言切换代码 2022-08-03 12:17:24 +08:00
pushuo 6f73e1aa95 首页编辑器优化 2022-08-03 11:13:22 +08:00
TL 98bcb8c939 语言切换 2022-08-02 19:39:38 +08:00
Edward Yang 6b81f266ee 后台首页头部菜单添加hook, 实现多语言 2022-08-02 19:16:53 +08:00
pushuo e9bb58ebd5 wip 2022-08-02 19:13:11 +08:00
TL 7524e69868 语言切换 2022-08-02 19:00:55 +08:00
Edward Yang 3ee8b90e78 add filter 2022-08-02 18:57:50 +08:00
pushuo 4950e361c6 多语言切换 2022-08-02 18:57:09 +08:00
TL 92507b04cb 语言切换 2022-08-02 18:49:20 +08:00
TL 63efb506f7 品牌根据id获取名字接口 2022-08-02 18:45:01 +08:00
Edward Yang 25ec233e16 multiple language 2022-08-02 16:16:02 +08:00
Edward Yang 53356d0f24 fixed permissions 2022-08-02 15:10:31 +08:00
pushuo 3ea38a9d76 添加放大镜插件 2022-08-02 14:53:08 +08:00
Edward Yang 41cdd02729 update permissions 2022-08-02 12:12:51 +08:00
pushuo 1fae241ccb wip 2022-08-02 11:48:41 +08:00
Edward Yang 0d846b65b5 update middleware 2022-08-02 11:24:59 +08:00
Edward Yang 2657855d0b fixed settings 2022-08-02 11:15:51 +08:00
Edward Yang 19e5ecc29a update roles 2022-08-02 10:55:06 +08:00
songliang 26f0c2caa4 品牌列表 2022-08-02 09:48:38 +08:00
Edward Yang fddda16a07 update roles 2022-08-01 22:03:32 +08:00
Edward Yang 2f16280609 fixed role 2022-08-01 21:55:28 +08:00
Edward Yang c4ca33ec32 fixed roles 2022-08-01 21:52:32 +08:00
pushuo c06e0c5725 wip 2022-08-01 21:40:52 +08:00
Edward Yang 31759e8448 update roles 2022-08-01 21:39:59 +08:00
Edward Yang d8c698f32e fixed selected 2022-08-01 21:30:53 +08:00
pushuo 35d5d08796 wip 2022-08-01 21:22:40 +08:00
pushuo 2ae5c54cb0 wip 2022-08-01 21:20:43 +08:00
Edward Yang 07074142d8 update permissions 2022-08-01 21:19:14 +08:00
Edward Yang 53763ad8eb roles 2022-08-01 21:17:05 +08:00
songliang 75e8dcd6e4 前台品牌列表样式 2022-08-01 21:14:56 +08:00
songliang 4c9f47bca1 前台品牌列表 2022-08-01 21:11:01 +08:00
Edward Yang a3327dda5e fixed role 2022-08-01 21:09:37 +08:00
Edward Yang fd315a1348 update create 2022-08-01 21:07:48 +08:00
Edward Yang 4662761255 update create 2022-08-01 21:07:43 +08:00
Edward Yang 9007cc8a41 fixed roles 2022-08-01 21:04:12 +08:00
pushuo da37c49705 wip 2022-08-01 20:52:10 +08:00
Edward Yang 98e8501f53 update roles 2022-08-01 20:46:57 +08:00
pushuo af5dceb6c0 wip 2022-08-01 20:46:50 +08:00
pushuo d95889813e wip 2022-08-01 20:41:57 +08:00
Edward Yang 05f41a39a2 create user admin 2022-08-01 20:34:57 +08:00
pushuo 1dad0a3e6d wip 2022-08-01 20:29:24 +08:00
pushuo 09bf086724 wip 2022-08-01 20:25:57 +08:00
pushuo 15c9d9e8d0 wip 2022-08-01 17:41:58 +08:00
pushuo c54969d587 wip 2022-08-01 17:40:06 +08:00
TL cb0f626790 后台品牌删除 2022-08-01 16:38:56 +08:00
pushuo fe523d6628 wip 2022-08-01 16:37:30 +08:00
pushuo 9d4c117c44 wip 2022-08-01 16:29:42 +08:00
pushuo 7280c7e3c2 wip 2022-08-01 16:00:45 +08:00
Edward Yang 95ac80ee36 update roles 2022-08-01 15:56:32 +08:00
Edward Yang 13f952d25d fixed admin roles 2022-08-01 14:35:03 +08:00
Edward Yang 4d7aaa0c8a admin user 2022-08-01 11:58:38 +08:00
Edward Yang 61d931785a roles 2022-08-01 11:57:10 +08:00
Edward Yang ad31828c5f add spatie permission 2022-08-01 11:51:18 +08:00
pushuo c6779e7bc3 wip 2022-08-01 08:47:30 +08:00
pushuo a24b5d5c4c wip 2022-07-29 19:00:03 +08:00
Edward Yang 0be99e30fb fixed payment address id 2022-07-29 18:40:41 +08:00
Edward Yang 8a36d5ea3d 修复新用户结账地址为空 2022-07-29 18:13:11 +08:00
Edward Yang e4d384dd2c order totals 2022-07-29 17:58:26 +08:00
Edward Yang 37b4feff6c 后台订单倒序 2022-07-29 17:55:40 +08:00
pushuo 7976bb7d3a 购物车交互 2022-07-29 17:35:21 +08:00
Edward Yang 5b66c075a6 fixed latest product 2022-07-29 17:22:44 +08:00
pushuo d36e991ab0 后台首页图表 2022-07-29 17:19:22 +08:00
pushuo 55a57244f9 后台 ui 优化 2022-07-29 15:14:37 +08:00
Edward Yang bf3a1bedfa 完善税费 2022-07-29 15:12:20 +08:00
pushuo c279cede8b 搜索 2022-07-29 14:08:49 +08:00
Edward Yang 2120581011 fixed currency 2022-07-29 12:03:02 +08:00
pushuo e3abd5e7fb wip 2022-07-29 11:58:58 +08:00
pushuo 2cc07af5e8 wip 2022-07-29 11:58:11 +08:00
pushuo e002acbf71 wip 2022-07-29 11:48:51 +08:00
pushuo e3df76729f 优化首页编辑器 2022-07-29 11:37:57 +08:00
pushuo bd63951402 品牌模块 2022-07-29 11:21:43 +08:00
pushuo cb970ce18d wip 2022-07-28 21:17:59 +08:00
pushuo bceae1a6b3 wip 2022-07-28 21:16:47 +08:00
Edward Yang e3a5043b95 test 2022-07-28 21:03:47 +08:00
TL 0705c31ab0 品牌自动完成 2022-07-28 20:59:58 +08:00
pushuo 7b22326c98 wip 2022-07-28 20:59:29 +08:00
pushuo a57181d386 wip 2022-07-28 20:50:24 +08:00
TL 2f35268205 代码清理 2022-07-28 20:46:03 +08:00
pushuo abe56e99b2 wip 2022-07-28 20:29:26 +08:00
TL 782cc0d571 前台商品列表 2022-07-28 20:18:55 +08:00
Edward Yang 18798aab5b fixed plugins 2022-07-28 17:49:17 +08:00
TL 22f5683b63 货币转换和货币格式化 2022-07-28 17:46:28 +08:00
TL 5b5630cd95 语言切换 2022-07-28 17:46:28 +08:00
pushuo 28d92d8b40 wip 2022-07-28 17:24:33 +08:00
pushuo 316085e4e2 wip 2022-07-28 16:48:33 +08:00
Edward Yang 94b7ec588a 插件多语言 2022-07-28 16:47:38 +08:00
Edward Yang 8cf90c601c 支持插件多语言 2022-07-28 16:26:41 +08:00
TL 4721cb49b3 货币切换 2022-07-28 16:18:12 +08:00
TL 08fc2f8525 语言切换 2022-07-28 16:17:57 +08:00
TL cdbd42c464 前台品牌列表和品牌商品列表 2022-07-28 15:35:20 +08:00
TL 3cddcd8ce8 品牌由manufacturer改为brand 2022-07-28 15:01:54 +08:00
Edward Yang db43cfa8a3 fixed order total 2022-07-28 13:59:54 +08:00
TL 9f6ad09ef8 品牌管理 2022-07-28 13:44:37 +08:00
TL ef0d22ca93 后台品牌管理 2022-07-28 11:56:42 +08:00
Edward Yang badabe39cb 保存totals 2022-07-28 11:39:12 +08:00
pushuo 9da2cd8234 wip 2022-07-27 20:04:19 +08:00
Edward Yang 6fa5818e82 完善运费插件 2022-07-27 18:42:31 +08:00
Edward Yang acfad8a621 add totals 2022-07-27 17:54:15 +08:00
pushuo 21fb3e07ed wip 2022-07-27 17:06:41 +08:00
Edward Yang e7480df0c5 fixed wishlist 2022-07-27 17:02:47 +08:00
Edward Yang 3539d32cbc fixed wish list 2022-07-27 16:59:21 +08:00
Edward Yang ef3e5dc70d fixed totals 2022-07-27 16:53:28 +08:00
pushuo 2d8ff03822 wip 2022-07-27 15:45:11 +08:00
pushuo b125165f2b wip 2022-07-27 15:44:14 +08:00
pushuo bdb156662d wip 2022-07-27 15:05:47 +08:00
Edward Yang 15af10665d update regions 2022-07-27 15:02:36 +08:00
pushuo 58298575cb wip 2022-07-27 14:58:13 +08:00
Edward Yang 72ff8f34bb update total service 2022-07-27 14:57:14 +08:00
Edward Yang a7a8c5c844 fixed tax 2022-07-27 14:15:55 +08:00
Edward Yang 917197533e fixed login 2022-07-27 14:07:42 +08:00
pushuo fa61a18e92 wip 2022-07-27 11:27:42 +08:00
Edward Yang 565c1d78d1 fixed tax rate 2022-07-27 11:24:19 +08:00
pushuo a17ed15393 wip 2022-07-27 11:22:14 +08:00
pushuo 43f3771b17 wip 2022-07-27 11:20:54 +08:00
Edward Yang f62926bc81 update tax 2022-07-27 11:11:27 +08:00
Edward Yang 7254ab4b06 fixed name 2022-07-27 11:07:30 +08:00
Edward Yang fad0422534 update region 2022-07-27 11:06:19 +08:00
pushuo 8a56d7cbdd wip 2022-07-27 10:57:55 +08:00
Edward Yang de3fb017f2 fixed tax 2022-07-27 10:43:37 +08:00
Edward Yang 0fd6b1afc0 fixed tax 2022-07-27 10:41:14 +08:00
pushuo 85e9958503 wip 2022-07-27 10:35:59 +08:00
Edward Yang 70fb76b4df update tax 2022-07-27 10:29:32 +08:00
pushuo b062726646 wip 2022-07-27 10:19:40 +08:00
pushuo b6638db628 wip 2022-07-27 10:17:14 +08:00
Edward Yang 41a699c43c update region and tax 2022-07-27 09:52:15 +08:00
pushuo 4fe74bff27 wip 2022-07-27 09:51:08 +08:00
pushuo 2fcfeaf8c0 wip 2022-07-26 21:23:24 +08:00
Edward Yang 3046dff6a0 tax clas 2022-07-26 21:22:35 +08:00
pushuo aba64f5d14 wip 2022-07-26 21:21:49 +08:00
Edward Yang 1c9f981891 tax rules 2022-07-26 21:18:42 +08:00
pushuo 8677bae4f4 wip 2022-07-26 21:14:34 +08:00
Edward Yang c8167099ef update store 2022-07-26 21:13:05 +08:00
Edward Yang a92bbf50ac update tax base 2022-07-26 20:48:14 +08:00
Edward Yang 9986f62fa4 税费相关 2022-07-26 20:47:17 +08:00
Edward Yang 8aa7ec697f add tax and regions 2022-07-26 20:13:42 +08:00
TL 3abfb798c5 商品收藏 2022-07-26 18:51:46 +08:00
pushuo e531c1ade0 wip 2022-07-26 18:30:10 +08:00
Edward Yang 46afdc8f09 fixed sku variants 2022-07-26 18:29:42 +08:00
Edward Yang 8025bb9160 update bread crumb 2022-07-26 18:18:57 +08:00
Edward Yang 891e1db59d update bread crumb 2022-07-26 18:16:47 +08:00
Edward Yang 70b0cfdd44 update bread crumb 2022-07-26 18:15:17 +08:00
Edward Yang 9561514271 add bread creumb for product 2022-07-26 18:12:35 +08:00
pushuo d8f893e5ed wip 2022-07-26 18:09:17 +08:00
TL 6fc85bf127 商品图片 2022-07-26 17:35:28 +08:00
TL 7470ca3a82 商品图片 2022-07-26 17:24:50 +08:00
TL 6fcd8141b3 商品图片 2022-07-26 17:23:09 +08:00
TL 18945b8843 商品图片 2022-07-26 17:16:56 +08:00
pushuo e31d582754 wip 2022-07-26 17:14:42 +08:00
TL cfc6af6536 商品图片功能 2022-07-26 16:16:51 +08:00
TL 78302f4591 商品图片(只是spu图片和sku图片) 2022-07-26 16:08:58 +08:00
Edward Yang e1949b330f fixed images 2022-07-26 16:01:28 +08:00
Edward Yang 6ce395f544 fixed product image 2022-07-26 15:50:00 +08:00
Edward Yang b8c21f66e5 add origin price. 2022-07-26 15:28:00 +08:00
pushuo 4b9c77a630 wip 2022-07-26 15:04:57 +08:00
pushuo ea0e4296cd 处理创建商品报错问题 2022-07-26 10:59:39 +08:00
pushuo b313636592 wip 2022-07-26 10:27:51 +08:00
Edward Yang 3bcece155e update home template 2022-07-26 09:18:43 +08:00
pushuo 789fef8f1f wip 2022-07-25 21:25:15 +08:00
Edward Yang ed8a5fa1f1 整理后台菜单 2022-07-25 21:23:25 +08:00
pushuo 210325cf05 wip 2022-07-25 21:08:36 +08:00
TL e240b8363a 商品收藏 2022-07-25 21:01:10 +08:00
Edward Yang 2d0de819ea fixed setting 2022-07-25 20:54:50 +08:00
pushuo e9b66f64e4 wip 2022-07-25 20:50:19 +08:00
Edward Yang a45a119db8 system settings 2022-07-25 20:30:58 +08:00
pushuo 3f71eef985 wip 2022-07-25 20:22:01 +08:00
TL 383c0c8fcf 收藏功能 2022-07-25 20:19:31 +08:00
pushuo ccc883ece7 wip 2022-07-25 20:14:35 +08:00
Edward Yang d91b54c06a not check inconsistent 2022-07-25 20:13:43 +08:00
TL eba9c802c1 收藏功能 2022-07-25 20:03:19 +08:00
TL 408f0b3e84 收藏功能 2022-07-25 19:24:58 +08:00
Edward Yang 6e9c8064c0 解压插件 2022-07-25 19:08:06 +08:00
pushuo 5ffcfaeb00 wip 2022-07-25 17:47:46 +08:00
pushuo b2a8699edf wip 2022-07-25 17:31:20 +08:00
pushuo 91aaa2296a wip 2022-07-25 15:00:22 +08:00
Edward Yang 18b9752ce1 update plugin manger as singleton. 2022-07-25 14:55:14 +08:00
Edward Yang 4ed20f7acb fixed variables 2022-07-25 10:07:14 +08:00
Edward Yang 2591357bf8 add total services. 2022-07-22 18:25:12 +08:00
pushuo 5296e55671 wip 2022-07-22 18:04:54 +08:00
pushuo 43bba3fbe0 wip 2022-07-22 17:51:53 +08:00
pushuo 07a9e7e41f 后台找回密码 2022-07-22 17:47:21 +08:00
pushuo aebe92ac71 wip 2022-07-22 17:28:37 +08:00
Edward Yang 08d028eeda update zones 2022-07-22 17:08:03 +08:00
Edward Yang 19d4cfff0d fixed delete files 2022-07-22 16:31:59 +08:00
Edward Yang 24b56d00c2 update dashboard 2022-07-22 16:28:02 +08:00
pushuo dcd8281ae8 wip 2022-07-22 16:27:44 +08:00
Edward Yang 4683d0f404 批量删除文件 2022-07-22 16:07:43 +08:00
pushuo f65f4129ee wip 2022-07-22 15:52:29 +08:00
Edward Yang eb0044618d fixed 根目录图片 2022-07-22 15:47:03 +08:00
Edward Yang 9801e2612f 修复上传图片 2022-07-22 15:12:33 +08:00
pushuo b44745d484 wip 2022-07-22 15:07:02 +08:00
pushuo e7c4f56968 wip 2022-07-22 14:41:43 +08:00
pushuo 1a622c5bbc wip 2022-07-22 14:38:06 +08:00
Edward Yang bac2113a2d 去除多余的/ 2022-07-22 14:21:21 +08:00
Edward Yang ed975a94fe 去除多余的/ 2022-07-22 14:20:52 +08:00
Edward Yang 4f80078a15 文件重命名 2022-07-22 14:12:36 +08:00
pushuo afdf24eecf wip 2022-07-22 12:01:37 +08:00
Edward Yang a11291ff18 add directories 2022-07-22 11:49:41 +08:00
Edward Yang 182539abcb 递归获取图库文件夹 2022-07-22 11:39:52 +08:00
pushuo 1d634be011 wip 2022-07-22 11:35:11 +08:00
pushuo f6f9f9add9 wip 2022-07-22 11:08:06 +08:00
Edward Yang 86c842556a fixed detail image 2022-07-22 10:43:39 +08:00
pushuo c4c8fca9ac wip 2022-07-22 10:08:58 +08:00
pushuo 02300099f5 wip 2022-07-22 10:00:21 +08:00
Edward Yang 1210597305 add order totals 2022-07-22 09:56:44 +08:00
TL e8996fb98e 个人中心编辑信息 2022-07-22 09:50:04 +08:00
Edward Yang bd2eddb196 update setting 2022-07-22 09:00:18 +08:00
Edward Yang 39c05d051d fixed setting 2022-07-21 20:56:10 +08:00
pushuo 21dfea692f wip 2022-07-21 20:53:11 +08:00
Edward Yang 2b58f96081 Fixed tax 2022-07-21 20:17:01 +08:00
Edward Yang 8d134c96c8 fixed tax service 2022-07-21 20:06:38 +08:00
Edward Yang 71705ae9d6 tax 2022-07-21 19:03:43 +08:00
pushuo db2ebdb8da wip 2022-07-21 18:42:02 +08:00
Edward Yang faf3d09084 继承 base model 2022-07-21 18:36:52 +08:00
TL b5f6249f87 前台商品详情variables多语言处理 2022-07-21 18:32:49 +08:00
Edward Yang 31724b3660 添加税费相关表 2022-07-21 16:17:13 +08:00
Edward Yang 4444c4cc61 update routes 2022-07-21 11:59:51 +08:00
Edward Yang 8ba8e89256 fixed import plugin 2022-07-21 11:30:42 +08:00
Edward Yang 607f9ee280 按最后修改排序 2022-07-21 10:59:19 +08:00
Edward Yang 7a52380fa3 添加前台翻页 2022-07-21 10:58:24 +08:00
pushuo 55df50520a wip 2022-07-21 10:40:12 +08:00
Edward Yang 925f372fb4 add shop base 2022-07-21 10:22:03 +08:00
Edward Yang e8d1fd1942 插件demo 添加最新产品列表 2022-07-21 10:07:35 +08:00
pushuo 66a6360105 wip 2022-07-20 19:40:59 +08:00
Edward Yang efb31b2797 优化插件 2022-07-20 19:35:22 +08:00
pushuo cf575cea8d wip 2022-07-20 18:46:38 +08:00
Edward Yang 947548c160 fixed header menu 2022-07-20 17:33:04 +08:00
pushuo 2b737aa63e wip 2022-07-20 16:56:20 +08:00
pushuo 9f4e408340 wip 2022-07-20 16:46:44 +08:00
Edward Yang c1a8d50822 add header menu plugin demo 2022-07-20 16:46:24 +08:00
Edward Yang 0a7277b673 add header menu plugin demo 2022-07-20 16:46:24 +08:00
pushuo 421e51a092 wip 2022-07-20 16:27:38 +08:00
Edward Yang f62a2bf503 update 2022-07-20 16:21:16 +08:00
pushuo 1b9039b630 wip 2022-07-20 16:19:38 +08:00
Edward Yang 59854c52b1 测试entity filter 2022-07-20 16:06:46 +08:00
pushuo 350765e160 wip 2022-07-20 15:05:17 +08:00
TL 70b820e011 商品管理 2022-07-20 15:04:29 +08:00
pushuo 545fff234b wip 2022-07-20 15:01:50 +08:00
pushuo 24b29207ca wip 2022-07-20 14:19:36 +08:00
Edward Yang b88035c68c use tormjens/eventy 2022-07-20 13:55:19 +08:00
TL 46d38c0cce 商品详情 2022-07-20 11:13:16 +08:00
TL 5fc7893764 商品详情页 2022-07-20 10:57:51 +08:00
TL 0a70373fc1 商品详情页功能
商品收藏功能
2022-07-20 10:51:43 +08:00
pushuo 6bcec9cf37 模块优化 2022-07-19 20:48:39 +08:00
pushuo 32f0e836d1 模块优化 2022-07-19 20:22:58 +08:00
pushuo 689c3c62f6 wip 2022-07-19 11:34:12 +08:00
pushuo 70df115c6e wip 2022-07-19 11:23:10 +08:00
pushuo fc6174f940 wip 2022-07-18 21:32:44 +08:00
pushuo 986d2ba157 wip 2022-07-18 21:16:42 +08:00
Edward Yang f28bbbdb92 fixed tab product 2022-07-18 21:13:51 +08:00
pushuo 192e020fc0 wip 2022-07-18 20:50:20 +08:00
pushuo f3811cb0f3 wip 2022-07-18 20:38:30 +08:00
pushuo 1892272191 wip 2022-07-18 20:37:20 +08:00
pushuo 1b7aa7026d wip 2022-07-18 20:36:11 +08:00
pushuo f78d8f6214 wip 2022-07-18 20:28:06 +08:00
pushuo 6a36c68e50 wip 2022-07-18 20:14:12 +08:00
pushuo e004cffc05 wip 2022-07-18 20:06:09 +08:00
Edward Yang e0685c9069 一行四图 2022-07-18 20:02:00 +08:00
pushuo 89e4a0c98a wip 2022-07-18 19:50:34 +08:00
pushuo b04b7bb6fc wip 2022-07-18 19:46:07 +08:00
pushuo ae12fcffd1 wip 2022-07-18 18:49:22 +08:00
pushuo 856e51ee65 wip 2022-07-18 18:42:32 +08:00
pushuo 3f18ce69ca wip 2022-07-18 18:38:46 +08:00
Edward Yang 9eac191b3a 获取产品名称 2022-07-18 17:05:44 +08:00
Edward Yang 532b286b8c get product names 2022-07-18 16:56:19 +08:00
Edward Yang 75c85b7832 fixed design 2022-07-18 16:09:19 +08:00
Edward Yang ce79996249 fixed black 2022-07-18 12:03:01 +08:00
Edward Yang 9f3768cc07 fixed theme 2022-07-18 12:02:04 +08:00
Edward Yang d158d6c370 模板代码优化 2022-07-18 11:59:56 +08:00
Edward Yang 44854c301d 代码优化 2022-07-18 11:57:04 +08:00
Edward Yang e53f331381 fixed iamge 401 2022-07-18 11:52:25 +08:00
pushuo 6124ab3780 添加 demo 2022-07-18 11:51:41 +08:00
pushuo 9468fbd0de wip 2022-07-18 11:47:32 +08:00
Edward Yang 960ec9de66 修复首页模块图片 2022-07-18 11:33:48 +08:00
Edward Yang 0a3f26c7c7 处理模块链接 2022-07-18 11:24:42 +08:00
pushuo 2770fe5de2 wip 2022-07-18 10:50:48 +08:00
Edward Yang e2499a9153 preview 2022-07-18 10:40:29 +08:00
pushuo 3c366c7c6d 模块数据优化 2022-07-18 10:34:36 +08:00
Edward Yang f3f593ee9e fixed slide show 2022-07-18 10:28:48 +08:00
pushuo 2d15a8baa7 wip 2022-07-18 10:20:03 +08:00
Edward Yang caa4e16c9c fixed page builder 2022-07-18 10:16:51 +08:00
Edward Yang 79304cb18b fixed module 2022-07-18 09:51:43 +08:00
Edward Yang 408a785844 code optimize 2022-07-18 09:38:55 +08:00
pushuo b01c12479b 图片模块 2022-07-18 09:35:05 +08:00
pushuo cf035f824e 优化文件管理器 2022-07-18 09:08:10 +08:00
pushuo c45bc8ca29 wip 2022-07-15 18:56:11 +08:00
Edward Yang 9d195a573a fixed 2022-07-15 18:17:45 +08:00
Edward Yang bd63d6ce15 add module id 2022-07-15 18:13:59 +08:00
pushuo f2020be44e wip 2022-07-15 17:15:56 +08:00
pushuo 831b5e53b2 wip 2022-07-15 16:37:34 +08:00
Edward Yang cfce41dac3 wip 2022-07-15 16:34:04 +08:00
Edward Yang 91ece063b4 wip 2022-07-15 15:28:52 +08:00
Edward Yang 946988b65c fixed language 2022-07-15 15:18:57 +08:00
pushuo 06b9675a1f wip 2022-07-15 14:40:04 +08:00
pushuo 14afb9cdd7 wip 2022-07-15 14:02:32 +08:00
pushuo 9d89bdbef0 wip 2022-07-15 11:48:11 +08:00
pushuo d5b48e667b wip 2022-07-15 11:10:37 +08:00
pushuo 3ed2b19c78 wip 2022-07-14 21:17:45 +08:00
Edward Yang d32ec82d70 fixed modules 2022-07-14 21:04:42 +08:00
Edward Yang 83f5d95864 fixed preview 2022-07-14 21:03:26 +08:00
pushuo 095ca44038 wip 2022-07-14 20:57:56 +08:00
Edward Yang 58d8dae892 fixed preview 2022-07-14 20:56:13 +08:00
Edward Yang d1c9f34093 preview 2022-07-14 20:55:44 +08:00
Edward Yang ad59f37bb3 fixed modules 2022-07-14 20:54:30 +08:00
pushuo d219388aca wip 2022-07-14 20:48:28 +08:00
TL ded3518819 后台找回密码功能 2022-07-14 16:00:06 +08:00
TL b9ad5d7c10 获取商品名称;获取分类名称 2022-07-14 15:25:11 +08:00
TL 41f163edf1 后台找回密码功能 2022-07-14 15:06:12 +08:00
pushuo 3500482767 wip 2022-07-14 14:37:33 +08:00
Edward Yang 3905a7fcfc wip 2022-07-14 14:19:56 +08:00
Edward Yang b55b2ecfa5 fixed builder 2022-07-14 14:11:52 +08:00
Edward Yang 952e184b87 fixed setting 2022-07-14 14:05:31 +08:00
pushuo 685be77dbf wip 2022-07-14 13:56:55 +08:00
Edward Yang a9a1f21e12 update file manager 2022-07-14 12:07:26 +08:00
pushuo 1df633dc64 wip 2022-07-13 21:09:01 +08:00
pushuo 120c8fc977 wip 2022-07-13 18:03:14 +08:00
pushuo 414fb90ec0 wip 2022-07-13 17:54:41 +08:00
Edward Yang 0eb8f7aefb remove folders 2022-07-13 17:53:35 +08:00
pushuo dc081084ff wip 2022-07-13 17:47:43 +08:00
pushuo a28ce5a15f wip 2022-07-13 17:06:04 +08:00
Edward Yang 174b8f3438 修改名字 2022-07-13 16:58:45 +08:00
pushuo ef1b14fe54 wip 2022-07-13 16:54:14 +08:00
pushuo e333b42f4d wip 2022-07-13 16:44:08 +08:00
pushuo 4009649e45 wip 2022-07-13 16:06:06 +08:00
pushuo e8a5f6c466 wip 2022-07-13 15:27:45 +08:00
Edward Yang b5fd4718ae update git ignore 2022-07-13 14:41:49 +08:00
Edward Yang 3aa42e8055 fixed for -- Unsupported image type image/vnd.microsoft.icon. GD driver is only able to decode JPG, PNG, GIF, BMP or WebP files. 2022-07-13 14:31:15 +08:00
Edward Yang 8e16e3a484 add origin url 2022-07-13 14:14:02 +08:00
Edward Yang c428ccf8e2 update helper name 2022-07-13 11:51:52 +08:00
Edward Yang 99bd9727ca wip 2022-07-13 11:49:29 +08:00
Edward Yang cc3932a9f5 wip 2022-07-13 11:43:25 +08:00
Edward Yang cf20f93917 去除目录选中 2022-07-13 11:21:53 +08:00
Edward Yang adda79ad0e fixed direcotry 2022-07-13 11:19:37 +08:00
Edward Yang ef21b0fd11 delete directories 2022-07-13 11:15:42 +08:00
pushuo 95c9e48c0f wip 2022-07-13 11:12:12 +08:00
Edward Yang f759f7b1b4 fixed file manager 2022-07-13 11:05:22 +08:00
Edward Yang 629e9bad66 fixed file manager 2022-07-13 11:02:57 +08:00
Edward Yang 07d4cb8b34 code format 2022-07-13 10:34:15 +08:00
Edward Yang 64dac39d6b add shop base url 2022-07-13 10:31:09 +08:00
TL 6beb14b25d 分类自动完成 2022-07-13 10:30:41 +08:00
Edward Yang cfe1e6d987 fixed filemanager 2022-07-13 10:21:57 +08:00
pushuo be69a68a08 wip 2022-07-12 21:23:48 +08:00
TL aa9871f1d9 商品分类自动完成 2022-07-12 21:09:54 +08:00
Edward Yang 290f85b4a3 update plugin setting 2022-07-12 20:59:56 +08:00
Edward Yang 4c012d62d5 update system setting. 2022-07-12 20:58:58 +08:00
Edward Yang 860f718459 modified setting 2022-07-12 20:32:58 +08:00
pushuo ecb09c87cb wip 2022-07-12 20:15:24 +08:00
Edward Yang c30810ae49 fixed system 2022-07-12 20:11:51 +08:00
TL c4d73d4185 后台商品管理 2022-07-12 20:09:47 +08:00
Edward Yang 16be2c27eb fixed language repo 2022-07-12 20:07:09 +08:00
Edward Yang f5c980714a fixed placeholder 2022-07-12 20:04:10 +08:00
Edward Yang 43c7832832 add base admin url 2022-07-12 19:26:31 +08:00
Edward Yang 35d6795c2b add to_sql 2022-07-12 19:16:08 +08:00
pushuo 5f3cb2fbea wip 2022-07-12 19:07:19 +08:00
Edward Yang 6d738ce34b 保持高宽比 2022-07-12 18:35:25 +08:00
pushuo 8e0665926a wip 2022-07-12 18:22:14 +08:00
Edward Yang 0cf96d257d remove cache 2022-07-12 18:12:52 +08:00
Edward Yang db9b659385 fixed image 2022-07-12 18:11:04 +08:00
Edward Yang fc3dbd4ddb fixed image 2022-07-12 18:10:35 +08:00
Edward Yang 32a840a4a2 add image package. 2022-07-12 17:31:27 +08:00
Edward Yang 4ae9035673 图片翻页 2022-07-12 16:39:54 +08:00
pushuo 996b2491de wip 2022-07-12 16:19:58 +08:00
Edward Yang 31dc8888b0 fixed file manager 2022-07-12 16:19:06 +08:00
Edward Yang 35242c3d4c folders 2022-07-12 14:54:07 +08:00
Edward Yang 385427562d files 2022-07-12 14:44:59 +08:00
Edward Yang fbdb541b48 后台地址自定义前缀 2022-07-12 12:42:48 +08:00
Edward Yang 9869a4b89c 后台设置admin 2022-07-12 11:41:10 +08:00
Edward Yang 46eb687519 后台自定义 2022-07-12 11:09:52 +08:00
pushuo d86266922e 优化文件管理器 2022-07-12 10:52:43 +08:00
pushuo a417999def wip 2022-07-11 21:10:40 +08:00
pushuo a210d9c26b 文件管理器 2022-07-11 20:56:09 +08:00
Edward Yang b83d8aabfc add design builder 2022-07-11 20:53:34 +08:00
Edward Yang 9929324034 fixed designer 2022-07-11 20:08:52 +08:00
pushuo ff26e62d06 文件管理器 ui 2022-07-11 17:25:10 +08:00
Edward Yang e0cb232909 add design settings 2022-07-11 14:50:12 +08:00
Edward Yang 6fcfd1c4b2 slideshow 2022-07-11 14:45:06 +08:00
Edward Yang 2c1264fe93 fixed builder 2022-07-11 14:43:06 +08:00
pushuo 39bc33d453 首页编辑器优化 2022-07-11 13:57:38 +08:00
pushuo 4489f28506 wip 2022-07-08 18:02:49 +08:00
Edward Yang 0996412787 fixed design components 2022-07-08 17:41:33 +08:00
Edward Yang d87063e6e5 检测 2022-07-08 17:24:00 +08:00
Edward Yang a9b5010045 fixed editor 2022-07-08 17:19:39 +08:00
Edward Yang 3909475219 fixed 2022-07-08 16:47:28 +08:00
Edward Yang c2d3d099c5 renders 2022-07-08 16:45:53 +08:00
Edward Yang 81595a5b18 render editors 2022-07-08 15:57:41 +08:00
pushuo 1cec3c3fc3 wip 2022-07-08 15:24:06 +08:00
Edward Yang bff987c68f remove static files 2022-07-08 14:54:27 +08:00
pushuo c908243e79 wip 2022-07-08 14:36:44 +08:00
Edward Yang 053c2927dd fixed css and js 2022-07-08 14:15:00 +08:00
Edward Yang ff715581ad static files 2022-07-08 14:12:59 +08:00
pushuo bbadce27ea wip 2022-07-08 14:08:29 +08:00
Edward Yang 0d051210b0 fixed stripe 2022-07-08 14:02:37 +08:00
Edward Yang bfb6db0be9 fixed order status 2022-07-08 11:38:57 +08:00
pushuo 4db5fe57ec page builder 2022-07-08 11:30:51 +08:00
pushuo 5b30a4b4ab 支付插件优化 2022-07-07 21:14:32 +08:00
Edward Yang 63ae7aa74c stripe demo 2022-07-07 21:11:19 +08:00
Edward Yang 080cceba88 fixed bkstripe view 2022-07-07 20:53:22 +08:00
TL 4b8e4f839e 个人中心修改密码接口 2022-07-07 20:35:14 +08:00
pushuo 3e2a1e463d wip 2022-07-07 19:02:31 +08:00
pushuo cf847a253f wip 2022-07-07 19:01:51 +08:00
Edward Yang a64bff4f6f update variant 2022-07-07 18:43:20 +08:00
pushuo dfbd3cc04d 优化后台插件编辑 2022-07-07 18:23:45 +08:00
Edward Yang 52c4222736 update order currency 2022-07-07 18:05:51 +08:00
pushuo ec6d90439b 优化找回密码和注册登录 2022-07-07 17:42:27 +08:00
Edward Yang bbc6302359 stripe 2022-07-07 17:39:15 +08:00
TL c67a46362e 顾客找回密码 2022-07-07 17:32:24 +08:00
TL 57a20d363b 顾客找回密码 2022-07-07 17:12:27 +08:00
TL 9e408dd017 顾客找回密码 2022-07-07 16:53:12 +08:00
pushuo a5bab93134 我的地址页面 2022-07-07 16:12:12 +08:00
TL 5d8bd758d5 默认地址功能 2022-07-07 16:07:54 +08:00
TL 6ee3aacc0f 顾客找回密码功能 2022-07-07 15:54:45 +08:00
pushuo 2e577bbd8c wip 2022-07-07 11:33:58 +08:00
Edward Yang 6a5aebce69 bk stripe 2022-07-07 09:46:17 +08:00
pushuo 8b072bbb3c wip 2022-07-06 21:42:15 +08:00
pushuo f69f295fd8 右上角购物车 2022-07-06 21:32:43 +08:00
pushuo 8c80026876 wip 2022-07-06 18:59:47 +08:00
pushuo 32af642169 订单详情 2022-07-06 17:34:24 +08:00
Edward Yang 1c3349eb46 fixed stripe 2022-07-06 17:10:22 +08:00
pushuo d2a135f275 wip 2022-07-06 16:36:25 +08:00
pushuo 70d01b7fa2 后台订单详情 2022-07-06 16:29:50 +08:00
TL 5ebfc8a447 后台会员管理 2022-07-06 15:27:33 +08:00
pushuo c1c9f1ec5b 后台订单列表 2022-07-06 15:04:32 +08:00
pushuo cff07400da 订单列表 2022-07-05 21:26:11 +08:00
Edward Yang b05b3b68b2 add account sidebar 2022-07-05 21:03:21 +08:00
pushuo 6f27f76f80 wip 2022-07-05 20:43:29 +08:00
pushuo 76a4713960 用户组 2022-07-05 20:24:10 +08:00
TL 3a3fb4ea08 会员组 2022-07-05 19:31:29 +08:00
TL c4c6dfcaa9 会员组管理 2022-07-05 19:29:29 +08:00
TL 898750c916 后台会员组管理 2022-07-05 18:27:40 +08:00
TL fb7378ed52 后台会员组管理 2022-07-05 18:12:05 +08:00
TL ea9924b13f 语言管理 2022-07-05 17:05:11 +08:00
TL 700b1070a5 语言管理 2022-07-05 16:48:54 +08:00
TL 03190064ad 会员组页面返回语言 2022-07-05 16:36:11 +08:00
TL fda45c9c8c 会员组 2022-07-05 16:08:01 +08:00
TL a02e95b2dc 后台会员组管理 2022-07-05 15:59:13 +08:00
pushuo 95c7326bbc wip 2022-07-05 11:53:06 +08:00
Edward Yang ea7fc90c3a fixed order show 2022-07-05 11:06:05 +08:00
Edward Yang 566080cb9f order success 2022-07-05 11:04:05 +08:00
pushuo 004cbf3d76 wip 2022-07-05 11:00:05 +08:00
TL f06f71033e 前台地址 2022-07-05 10:57:31 +08:00
Edward Yang c22c66e6d7 fixed order 2022-07-05 10:49:12 +08:00
pushuo eebaabe7d9 wip 2022-07-05 10:48:37 +08:00
TL 2842005daa 地址 2022-07-05 10:44:50 +08:00
pushuo 33887a3cdf wip 2022-07-05 10:43:17 +08:00
TL f91310de78 地址 2022-07-05 10:42:58 +08:00
Edward Yang 71395b5e40 order list 2022-07-05 10:42:33 +08:00
TL e3335cfb26 地址 2022-07-05 10:40:49 +08:00
pushuo 7a56083e3e wip 2022-07-05 10:36:15 +08:00
TL 97588de88d 地址 2022-07-05 10:35:58 +08:00
pushuo ea53ca1810 wip 2022-07-05 10:29:09 +08:00
Edward Yang b68c1e91c5 生成订单后删除购物车数据 2022-07-05 10:22:15 +08:00
Edward Yang e6143629ff 删除购物车不可用产品 2022-07-05 10:07:49 +08:00
Edward Yang 09f5acef41 route 2022-07-05 09:35:50 +08:00
Edward Yang 493b7f0f1e fixed middleware 2022-07-05 09:12:13 +08:00
pushuo 04e8bb594a wip 2022-07-04 21:41:48 +08:00
pushuo c2430e6f0d wip 2022-07-04 21:41:23 +08:00
pushuo 1c1dbca6b7 wip 2022-07-04 21:35:50 +08:00
Edward Yang 383c5723fb create order 2022-07-04 21:26:50 +08:00
TL 0123b004eb 省份 2022-07-04 21:21:51 +08:00
TL 1523b81ea5 前台获取国家的省份列表 2022-07-04 21:17:52 +08:00
Edward Yang 859768f42b create order 2022-07-04 21:13:17 +08:00
TL a1ee85ac5c 代码清理 2022-07-04 21:10:25 +08:00
TL 9701002c05 地址 2022-07-04 20:23:08 +08:00
TL 81dce619a5 地址管理 2022-07-04 20:18:00 +08:00
TL 0f8ae94e22 地址管理 2022-07-04 19:54:25 +08:00
TL 6640ec2728 个人中心 2022-07-04 19:54:25 +08:00
pushuo 35e0335c36 wip 2022-07-04 19:53:22 +08:00
pushuo 3d06f305db wip 2022-07-04 18:20:01 +08:00
Edward Yang 3f0546a6e2 fixed setting 2022-07-04 18:14:45 +08:00
Edward Yang 339560cf9d fixed checkout 2022-07-04 18:06:52 +08:00
Edward Yang e0e841071b fixed checkout 2022-07-04 18:05:19 +08:00
Edward Yang c4c2f81478 fixed address 2022-07-04 18:02:53 +08:00
Edward Yang 6cbd4d80de fixed checkout 2022-07-04 17:58:07 +08:00
pushuo 03e285239c wip 2022-07-04 17:54:18 +08:00
Edward Yang 3b62b00b95 fixed checkout 2022-07-04 17:52:17 +08:00
Edward Yang d92793e24e fixed order 2022-07-04 17:49:42 +08:00
Edward Yang 34c7a84123 fixed plugin status 2022-07-04 17:32:38 +08:00
Edward Yang dae4ed6ce4 fixed order 2022-07-04 17:28:33 +08:00
pushuo a3b8d1f016 优化请求 2022-07-04 17:23:44 +08:00
Edward Yang e086401619 fixed checkout 2022-07-04 17:20:40 +08:00
TL 00ede7adcd 如果已登录打开登录页时自动跳个人中心 2022-07-04 17:14:09 +08:00
Edward Yang fd3afc5595 fixed checkout 2022-07-04 17:09:11 +08:00
TL 99adfbc56d 注册后自动登录 2022-07-04 17:03:03 +08:00
pushuo 25cbf7f8ef wip 2022-07-04 16:58:38 +08:00
Edward Yang b648967524 fixed cart service 2022-07-04 16:45:13 +08:00
Edward Yang dfc22f4702 fixed checkout 2022-07-04 16:43:56 +08:00
Edward Yang c3ba1cc895 fixed cart 2022-07-04 16:39:04 +08:00
TL 3421dec217 后台会员管理 2022-07-04 16:07:08 +08:00
TL 6f5244d561 后台会员管理 2022-07-04 16:07:08 +08:00
Edward Yang 34e95dd136 fixed shop service 2022-07-04 14:50:47 +08:00
TL 4117d2ad98 后台地址管理优化 2022-07-04 14:23:52 +08:00
TL 9417f09675 注册登录改为json返回 2022-07-04 14:23:52 +08:00
pushuo 19c4e9291c wip 2022-07-04 14:10:13 +08:00
Edward Yang 9ce0f333c2 更改文件夹名称首字母大写 2022-07-04 14:07:26 +08:00
pushuo f64255d4bc 优化后台登录 2022-07-04 10:36:56 +08:00
pushuo fc40c586ab 优化购物车结账页面滚动动画 2022-07-04 09:49:56 +08:00
pushuo b01ae254e2 wip 2022-07-01 18:50:26 +08:00
Edward Yang ce6a6d31d8 update checkout 2022-07-01 18:31:46 +08:00
Edward Yang 87157d859f code optimize 2022-07-01 18:20:17 +08:00
Edward Yang 19a141a9c9 fixed plugin status 2022-07-01 18:18:45 +08:00
Edward Yang 0a8d86fce8 add pagination 2022-07-01 18:12:53 +08:00
pushuo 5358f7f183 wip 2022-07-01 17:54:52 +08:00
pushuo 329bdb0a9c wip 2022-07-01 17:49:40 +08:00
Edward Yang 467699dc15 update debug bar 2022-07-01 17:34:16 +08:00
Edward Yang 9a1ec90338 add debugbar 2022-07-01 17:30:24 +08:00
TL 59b675203e 后台会员地址 2022-07-01 16:56:54 +08:00
Edward Yang b982adf47b fixed checkout data 2022-07-01 16:52:47 +08:00
Edward Yang 7e9a99c85a default route 2022-07-01 16:43:47 +08:00
pushuo 21c2338f2b wip 2022-07-01 16:32:51 +08:00
Edward Yang 31697c0093 fixed checkout 2022-07-01 16:13:06 +08:00
TL 3dd229f919 后台会员管理 2022-07-01 16:01:24 +08:00
TL d0b2ccfa20 后台会员管理 2022-07-01 15:49:05 +08:00
TL 77057227d3 会员管理 2022-07-01 15:32:53 +08:00
Edward Yang 90d72f2851 fixed methods 2022-07-01 15:26:59 +08:00
Edward Yang f66a2eb0d9 fixed country id 2022-07-01 15:20:42 +08:00
Edward Yang 2c9c2fc361 fixed cart 2022-07-01 15:18:39 +08:00
Edward Yang 81da48f7b2 fixed plugin 2022-07-01 15:17:24 +08:00
TL 3c4a2bdeba 会员管理 2022-07-01 14:53:20 +08:00
TL 4ee7e7f08f 会员管理 2022-07-01 14:48:08 +08:00
pushuo bf6650fdc2 wip 2022-07-01 14:44:58 +08:00
Edward Yang f88d659198 fixed plugin 2022-07-01 14:42:03 +08:00
pushuo f2d6187236 wip 2022-07-01 14:41:10 +08:00
Edward Yang f75848afcf install plugin 2022-07-01 14:40:28 +08:00
pushuo 6b1663f54b wip 2022-07-01 14:36:55 +08:00
TL c661e30eca 后台会员组(会员等级)管理 2022-07-01 14:34:13 +08:00
TL dbf3a3ebe6 后台会员管理 2022-07-01 14:34:13 +08:00
Edward Yang 02a2db2ff5 wip 2022-07-01 14:30:08 +08:00
pushuo 65c9f3d185 wip 2022-07-01 14:28:56 +08:00
pushuo bc3cc334c0 wip 2022-07-01 14:24:19 +08:00
Edward Yang 64422cec3f installed 2022-07-01 14:16:59 +08:00
Edward Yang f5576daa93 fixed 2022-07-01 14:09:19 +08:00
pushuo 42ba3a0236 wip 2022-07-01 14:08:04 +08:00
TL dd650e4fdc 后台会员管理 2022-07-01 11:17:31 +08:00
pushuo e397ca7899 wip 2022-07-01 11:16:22 +08:00
Edward Yang f5a48b3539 fixed plugins 2022-07-01 11:10:32 +08:00
TL 4f264f3205 后台会员创建 2022-07-01 11:08:30 +08:00
pushuo 26e79c0e92 wip 2022-07-01 10:46:38 +08:00
TL 33f843cc1f 注册 2022-07-01 10:45:43 +08:00
Edward Yang 4135dcb8a8 install and uninstall 2022-07-01 10:41:03 +08:00
TL fa1b2ba7e1 注册 2022-07-01 10:38:40 +08:00
pushuo 2b18477df1 wip 2022-07-01 10:36:38 +08:00
Edward Yang 297eb25225 add install and uninstall 2022-07-01 10:22:43 +08:00
TL 160b0bd3fe 后台顾客管理 2022-07-01 10:10:30 +08:00
TL fdde2c56d7 后台会员管理 2022-07-01 10:04:42 +08:00
pushuo f42b378d78 wip 2022-06-30 21:35:38 +08:00
Edward Yang 4519a93599 fixed status 2022-06-30 21:09:47 +08:00
TL a365fe9a23 地址管理 2022-06-30 21:00:24 +08:00
pushuo b968596fc5 wip 2022-06-30 20:53:35 +08:00
Edward Yang da9a007bac fixed edit 2022-06-30 20:38:43 +08:00
TL 2556a2227f 后台顾客管理 2022-06-30 20:36:21 +08:00
TL 2e02752652 后台顾客管理 2022-06-30 20:35:17 +08:00
Edward Yang a9e68fe8d1 fixed enabled 2022-06-30 20:26:43 +08:00
Edward Yang e85a3f58e3 fixed menu 2022-06-30 20:22:54 +08:00
Edward Yang b549299d17 fixed header menu 2022-06-30 20:21:43 +08:00
TL 39dd8c9f82 删除无用代码 2022-06-30 20:20:30 +08:00
pushuo 1bad99dd0e wip 2022-06-30 20:10:00 +08:00
TL a29bdd09ae migrations/2022_06_30_085304_currency.php 2022-06-30 20:01:27 +08:00
TL 66dd20ab83 后台地址管理 2022-06-30 20:01:27 +08:00
Edward Yang 0fd592760e fixed checkout service 2022-06-30 19:57:37 +08:00
TL 4445cd1f65 后台货币管理 2022-06-30 19:55:26 +08:00
TL c291b65583 migrations 2022-06-30 19:55:26 +08:00
Edward Yang f80fc4d310 fixed settings 2022-06-30 19:03:46 +08:00
Edward Yang 1ee55af5a0 wip 2022-06-30 18:39:19 +08:00
pushuo 394a74ee1b wip 2022-06-30 18:35:59 +08:00
pushuo 850fe1cec4 wip 2022-06-30 18:31:17 +08:00
pushuo 3ecf6c22a8 ui 修改 2022-06-30 18:30:40 +08:00
pushuo 3f3e2affa6 优化 ui 2022-06-30 18:30:16 +08:00
Edward Yang 160840a214 fixed 2022-06-30 18:26:33 +08:00
Edward Yang 878555c3af fixed status 2022-06-30 18:15:48 +08:00
Edward Yang e171233df5 fixed 2022-06-30 18:13:13 +08:00
Edward Yang d32d72ec64 update status 2022-06-30 18:00:34 +08:00
Edward Yang c731d50d2d add options 2022-06-30 17:56:25 +08:00
Edward Yang cbc97dfcd6 update 2022-06-30 17:49:58 +08:00
pushuo 18bc9478df wip 2022-06-30 17:46:45 +08:00
Edward Yang 69bfe9468b update plugin 2022-06-30 17:46:23 +08:00
pushuo 21a466666a wip 2022-06-30 17:45:35 +08:00
pushuo fd409dc1c6 优化 ui 2022-06-30 17:03:50 +08:00
TL ee7472c10a 后台顾客管理 2022-06-30 16:50:04 +08:00
TL ae318f0dd7 国家、省份功能 2022-06-30 16:50:04 +08:00
Edward Yang d179130fd4 wip 2022-06-30 16:44:22 +08:00
Edward Yang b82df7984c fixed active 2022-06-30 16:42:55 +08:00
Edward Yang f5efcc1b8d fixed 2022-06-30 15:58:54 +08:00
Edward Yang 1822a71840 fixed columns 2022-06-30 15:27:18 +08:00
TL 057f05281a 注册 2022-06-30 14:17:07 +08:00
pushuo 7ce3602a71 wip 2022-06-30 14:11:32 +08:00
TL 0cf02ec117 注册 2022-06-30 14:11:02 +08:00
pushuo 2873019c71 个人中心 2022-06-30 14:10:05 +08:00
Edward Yang 8a3e3fdc6b fixed update 2022-06-30 11:53:03 +08:00
Edward Yang 69ad73e873 update setting 2022-06-30 11:50:16 +08:00
Edward Yang 516e38d49c update config 2022-06-30 11:24:18 +08:00
Edward Yang 1838ffa1b0 flat shipping 2022-06-30 10:26:57 +08:00
TL 2bf68bd195 后台顾客管理 2022-06-30 10:15:10 +08:00
TL eca27b0966 后台顾客管理 2022-06-30 10:08:34 +08:00
TL 524e316d1e 顾客组管理 2022-06-30 10:08:34 +08:00
Edward Yang 21daa9cd9a fixed columns 2022-06-30 10:07:08 +08:00
Edward Yang 2eaf2f1e69 stripe demo 2022-06-30 09:59:31 +08:00
TL b72fe9f31e 后台顾客组管理 2022-06-30 09:44:12 +08:00
pushuo 30821b5a2c wip 2022-06-30 09:22:12 +08:00
Edward Yang 6bd52e1a8a columns 2022-06-29 21:22:52 +08:00
pushuo 5d30cbbad9 wip 2022-06-29 20:59:36 +08:00
TL 911dbac5ca 顾客管理 2022-06-29 20:52:22 +08:00
Edward Yang 6299ca7754 fixed items 2022-06-29 20:46:57 +08:00
TL c80be51a0d 后台客户组管理 2022-06-29 20:46:44 +08:00
Edward Yang 09bded4a32 plugins 2022-06-29 20:44:09 +08:00
TL 3aeacf0bf6 后台顾客管理 2022-06-29 20:29:36 +08:00
pushuo fdc8053259 插件列表 2022-06-29 19:39:23 +08:00
TL fa48875dde 前台顾客个人中心地址管理 2022-06-29 18:07:26 +08:00
TL 15f69a283f 模板移动到account目录 2022-06-29 18:07:26 +08:00
Edward Yang 3027d85965 plugins 2022-06-29 16:12:01 +08:00
Edward Yang 1cdb67f6dc wi 2022-06-29 16:00:16 +08:00
Edward Yang bce05bc40c fixed cart 2022-06-29 15:56:52 +08:00
Edward Yang 477009c020 fixed data 2022-06-29 15:39:31 +08:00
TL e8d46d7278 后台顾客管理 2022-06-29 14:27:19 +08:00
TL d64b9bad82 顾客列表 2022-06-29 14:19:54 +08:00
TL dd82f73dfe 后台顾客管理 2022-06-29 14:19:54 +08:00
Edward Yang c0603b0bb1 fixed quantity 0 2022-06-29 14:15:12 +08:00
pushuo 33a887c5f2 优化购物车和结账 2022-06-29 13:53:26 +08:00
Edward Yang 2d6cc23da8 wip 2022-06-29 11:58:13 +08:00
Edward Yang a3d2e6f0e6 cart desc 2022-06-29 11:10:37 +08:00
TL 74f470d5ef 顾客注册 2022-06-29 10:09:32 +08:00
TL b168036034 后台地址管理 2022-06-29 10:00:03 +08:00
TL b055c91c3f 后台顾客地址管理 2022-06-29 09:58:19 +08:00
TL 01a032d69e 后台顾客地址管理 2022-06-29 09:30:58 +08:00
Edward Yang 2f4aed3922 wip 2022-06-29 08:56:40 +08:00
Edward Yang 8ed66a2e58 wip 2022-06-28 21:13:26 +08:00
Edward Yang 9eea717441 fixed cart 2022-06-28 21:10:58 +08:00
pushuo cf4dd8fb81 wip 2022-06-28 21:10:42 +08:00
pushuo 28710ed50a wip 2022-06-28 21:07:01 +08:00
Edward Yang 876cb45215 fixed cart 2022-06-28 21:06:38 +08:00
pushuo a6e1218315 wip 2022-06-28 21:03:23 +08:00
Edward Yang c0c9c7716c update cart 2022-06-28 21:02:50 +08:00
Edward Yang 423f8e7ede fixed cart 2022-06-28 21:00:49 +08:00
Edward Yang 34200fe032 remove cart 2022-06-28 20:56:46 +08:00
Edward Yang 6c8ec6d645 cart 2022-06-28 20:53:47 +08:00
pushuo 7c734754b5 wip 2022-06-28 20:45:21 +08:00
Edward Yang 79b44a5bc6 fixed carts 2022-06-28 20:33:43 +08:00
Edward Yang 17e49723d6 fixed routes 2022-06-28 20:18:19 +08:00
Edward Yang 67932745e7 fixed checkout 2022-06-28 20:15:02 +08:00
Edward Yang e522a263fe 修复分类数据 2022-06-28 19:49:47 +08:00
TL 9d5dda3522 customer增加软删除 2022-06-28 19:10:51 +08:00
Edward Yang bacdd5278c fixed cart 2022-06-28 19:06:17 +08:00
TL ed4d678c80 后台顾客管理 2022-06-28 18:57:54 +08:00
pushuo c3fff65925 wip 2022-06-28 18:40:10 +08:00
Edward Yang ed40c22072 fixed cart 2022-06-28 18:39:27 +08:00
pushuo f9d86bdaf5 购物车页面 2022-06-28 18:28:38 +08:00
Edward Yang 714f8b5f80 totals 2022-06-28 17:31:55 +08:00
pushuo 82a60b71df wip 2022-06-28 17:29:05 +08:00
Edward Yang dc4a11f43c fixed carts 2022-06-28 17:05:11 +08:00
Edward Yang 86c33778a6 fixed cart 2022-06-28 16:51:51 +08:00
Edward Yang a67b754b8f guest checkout 2022-06-28 16:39:38 +08:00
pushuo 223aeaa46f wip 2022-06-28 16:34:45 +08:00
pushuo e45e72b4a2 解决冲突 2022-06-28 16:30:17 +08:00
Edward Yang 5ccc4f89fe fixed cart 2022-06-28 15:55:22 +08:00
Edward Yang ec60ccfba6 Merge remote-tracking branch 'origin/dev' into dev 2022-06-28 15:37:55 +08:00
Edward Yang c3178517ae add address 2022-06-28 15:37:50 +08:00
pushuo ffd31babcb 优化ui 2022-06-28 15:34:50 +08:00
Edward Yang fb1a2a16f1 add addresses 2022-06-28 15:21:32 +08:00
Edward Yang a5b7cb2bb8 fixed cart list 2022-06-28 14:23:12 +08:00
TL d234d82792 Repositories由SHOP里面移到外面,以达到前后台共用 2022-06-28 14:11:14 +08:00
Edward Yang 4872dc48f9 fixed cart 2022-06-28 11:51:27 +08:00
Edward Yang d421521dbf fixed post carts 2022-06-28 11:22:49 +08:00
Edward Yang c17dca5450 fixed cart 2022-06-28 11:21:53 +08:00
TL 44757d45a0 注册登录功能 2022-06-28 10:51:31 +08:00
TL 4681723d80 代码规范化 2022-06-28 10:51:31 +08:00
pushuo 5a8baa5b26 优化购物车 2022-06-28 10:26:01 +08:00
Edward Yang 474c0bfdf6 code format 2022-06-28 10:22:09 +08:00
pushuo 7c9b2da180 wip 2022-06-28 09:59:33 +08:00
pushuo dea657e341 添加插件 ,优化登录判断链接 2022-06-28 09:53:38 +08:00
Edward Yang 6aa4469565 fixed sku 2022-06-27 21:07:32 +08:00
TL 7498bcdb11 注册登录 2022-06-27 20:49:55 +08:00
pushuo 9146add594 wip 2022-06-27 20:47:32 +08:00
Edward Yang 447eb80968 fixed urk 2022-06-27 20:46:51 +08:00
pushuo 797065e505 wip 2022-06-27 20:35:53 +08:00
Edward Yang 7604c0c215 image 2022-06-27 20:34:23 +08:00
pushuo a54d521ba5 wip 2022-06-27 20:29:35 +08:00
pushuo eb6d07ea0f 适配页面数据 2022-06-27 20:25:42 +08:00
Edward Yang 464b2e5d77 fixed product sku 2022-06-27 20:19:04 +08:00
TL 336e4ae2d6 登录注册 2022-06-27 20:09:20 +08:00
Edward Yang af91641ae4 fixed category and product route 2022-06-27 20:01:13 +08:00
pushuo fea082bb0b wip 2022-06-27 19:31:35 +08:00
pushuo d098b4cd1b wip 2022-06-27 14:36:04 +08:00
pushuo e4fee9c047 优化前台ui 2022-06-27 09:30:00 +08:00
TL bb56840db7 注册 2022-06-24 16:28:07 +08:00
Edward Yang 4ad4dc3080 add setting helper 2022-06-24 14:29:12 +08:00
TL 7510aca48f 修改 2022-06-24 10:00:54 +08:00
TL dd15a65acd 注册登录退出 2022-06-24 09:57:51 +08:00
TL af1637641b 顾客登录 2022-06-23 18:11:29 +08:00
Edward Yang a7f97e7bd2 fixed helper 2022-06-23 17:12:55 +08:00
Edward Yang 8e06c89c92 update helper 2022-06-23 17:08:18 +08:00
Edward Yang b0b4917b7d fixed category 2022-06-23 16:56:47 +08:00
Edward Yang 438ddb21ec share header 2022-06-23 16:50:21 +08:00
Edward Yang 1b07e010f8 fixed url for category and product 2022-06-23 16:28:51 +08:00
Edward Yang b394063f0f 判断是否加载children 2022-06-23 16:06:31 +08:00
Edward Yang e2cb93b6dc fixed home page 2022-06-23 15:25:14 +08:00
pushuo d3c0b617cb 优化首页ui 2022-06-23 15:07:43 +08:00
Edward Yang 4d408c2d50 fixed product list 2022-06-23 14:53:13 +08:00
pushuo ca1ab01624 首页优化 2022-06-22 22:21:15 +08:00
Edward Yang e8d63718c9 fixed home page 2022-06-22 22:19:09 +08:00
Edward Yang aa9219a23b fixed home page 2022-06-22 22:05:06 +08:00
Edward Yang 85cbdc7b97 fixed home page 2022-06-22 22:04:14 +08:00
pushuo 5aa46f026b 优化首页 ui 2022-06-22 21:19:13 +08:00
pushuo 790cff21a4 前端模版和样式路径优化 2022-06-20 16:43:26 +08:00
Edward Yang 67e1098402 category demo 2022-06-17 09:05:09 +08:00
Sam Chen 56c5aea7e6
admin ui (#4)
* admin product list

* chore

* 优化 后台商品列表 ui

* test file upload

* admin/resources -> resources

* element-ui

* 恢复 bootstrap input

* 样式

* product category relation

* chore

Co-authored-by: pushuo <229102104@qq.com>
2022-05-23 15:43:11 +08:00
Sam Chen 37ebd4d065 Product seeder 2022-05-17 15:38:31 +08:00
Sam Chen 22b7783312
分拆 beike namespace (#2)
* 分拆 beike namespace

Co-authored-by: Sam Chen <samchen945@gmail.com>
2022-05-17 15:37:27 +08:00
Sam Chen bc91c4a323
UI (#1)
* admin ui

Co-authored-by: pushuo <pushuo@opencart.cn>
2022-05-07 18:20:39 +08:00
Edward Yang 71be6d9bfd read config from database 2022-04-20 10:43:19 +08:00
Sam Chen 2e6dc556b0 admin 筛选 component 2022-03-18 18:35:28 +08:00
Sam Chen 834334efdb carts 2022-01-05 10:35:41 +08:00
Sam Chen de462ce77f product_descriptions 2022-01-03 18:21:21 +08:00
Sam Chen 274918cb8f 商品多规格表单 2022-01-02 22:50:29 +08:00
Sam Chen 42830e4938 admin products 2022-01-01 23:20:29 +08:00
Sam Chen c688f18ac8 product sku model 2021-12-31 17:28:56 +08:00
Sam Chen f0cd3e8fd4 route 2021-12-31 17:28:56 +08:00
Sam Chen bc3e5a89ed themes folder 2021-12-31 17:28:56 +08:00
Sam Chen d6c0377ee5 plugins 目录 2021-12-31 17:28:52 +08:00
Edward Yang fb211a6441 upgrade packages to latest version 2021-12-29 11:00:36 +08:00
Edward Yang 849e0138d8 init code 2021-12-02 15:17:08 +08:00
761 changed files with 20651 additions and 6531 deletions

61
.env.example Normal file
View File

@ -0,0 +1,61 @@
APP_NAME=BeikeShop
APP_ENV=local
APP_KEY=base64:3RBtk9D81bfkLAjZ8UK7TSsIsHU+UBukSXx754Rkw1I=
APP_DEBUG=true
APP_URL=
APP_TIMEZONE=PRC
APP_FORCE_HTTPS=false
ASSET_URL=
BEIKE_API_URL=https://beikeshop.com
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=beike
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
# Dusk Browser Test
DUSK_START_MAXIMIZED=true
DUSK_HEADLESS_DISABLED=false

5
.gitattributes vendored Normal file
View File

@ -0,0 +1,5 @@
* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore

26
.gitignore vendored
View File

@ -1,6 +1,26 @@
/node_modules/
/vendor/
.idea
/node_modules
/public/.htaccess
/public/cache
/public/hot
/public/storage
/public/upload/avatar
/public/build/beike/*
/public/install/css/*
/public/sitemap.xml
/storage/*.key
/storage/installed
/vendor
Envoy.blade.php
.env
.env.backup
.phpunit.result.cache
docker-compose.override.yml
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
/.idea
/.vscode
mix-manifest.json
package-lock.json
dist

View File

@ -5,8 +5,8 @@
## BeikeShop介绍
BeikeShop 是基于 Laravel 开发的一款开源商城系统,主要面向外贸,跨境行业提供的商品管理、订单管理、会员管理、支付、物流、系统管理等功能。
<br>
BeikeShop 是基于 Laravel 开发的一款开源商城系统
主要面向外贸,跨境行业提供的商品管理、订单管理、会员管理、支付、物流、系统管理等功能
<br>
@ -14,17 +14,22 @@ BeikeShop 是基于 Laravel 开发的一款开源商城系统,主要面向外
<img src="https://beikeshop.com/readme/README-1.png">
</a>
请保留我公司版权信息,如要移除,需要我公司授权
注意:请保留我公司版权信息,如要移除,需要我公司授权
## BeikeShop系统亮点
- **全新支持ChatGPTBeikeShop1.3.2 集成ChatGPT打造高效智能化跨境电商系统**
- 开源免费BeikeShop以开源方式发布OSL-3.0协议允许用户自由使用、修改。
- 轻量级框架BeikeShop基于Laravel框架开发具有高效、灵活、易用等特点。
- 灵活的插件机制BeikeShop提供灵活的Hook插件机制可以方便地扩展和定制系统功能。
- 多语言多货币支持:支持多种语言/货币切换,可灵活扩展其他语言/货币。
- 多种支付方式:支持 PayPal、Stripe、Alipay、WeChat Pay 等多种支付方式,覆盖全球主要外贸国家
- 快速搭建向VIP提供一键安装脚本帮助用户快速搭建起一个稳定、高效、易用的跨境电商独立站。
- 0元起步BeikeShop 是真正的独立站代码100%开源数据信息100%自主可控
- 基于 Laravel 9 框架BeikeShop 使用 Laravel 9 框架进行开发,拥有成熟的框架支持
- 无佣金和手续费BeikeShop 没有佣金、年费或手续费,降低了建站成本
- 微内核和插件化:采用微内核架构和插件化设计,使系统易维护 & 扩展
- 清晰的代码分层和格式规范:系统代码采用分层清晰、格式规范的结构,提高代码的可读性和可维护性
- Event 机制实现 Hook 功能:通过 Event 机制实现了灵活的 Hook 功能,方便扩展和定制化开发
- 丰富的插件市场:官方提供了丰富的插件市场,可以方便地购买需要的功能
- 多语言和多货币支持:系统支持多语言和多货币,方便面向不同地区和国家的用户
- 界面美观和可视化装修:系统界面设计美观,支持可视化装修,提供良好的用户体验
- 严格遵循 MVC 架构:系统严格遵循 MVC 架构,提高了代码的可维护性和可扩展性
- 操作简单易上手BeikeShop 操作简单,易于上手,可以快速上线使用
![ ](https://beikeshop.com/readme/README-2.png)
<br>
@ -38,27 +43,32 @@ BeikeShop 是基于 Laravel 开发的一款开源商城系统,主要面向外
</p>
<a href="https://demo.beikeshop.com/" target="_blank">点击立刻体验BeikeShop演示站</a>
<br>
<br>
## 页面展示
![ ](https://beikeshop.com/readme/README-7.png)
![ ](https://beikeshop.com/readme/README-5.png)
![ ](https://beikeshop.com/readme/README-6.png)
![ ](https://beikeshop.com/readme/README-8.png)
![ ](https://beikeshop.com/readme/README-9.png)
## 技术服务展示
![ ](https://beikeshop.com/readme/README-4.png)
## 软件架构
PHP语言开发基于 Laravel 框架,前端 Blade 模板 + Vue
使用语言 PHP 8.0
基于 Laravel 9 框架
前端 Blade 模板 + Vue
## 环境要求
- 独立服务器(不能使用虚拟空间)
- CentOS 7.0+ 或 Ubuntu 20.04+
- PHP 8.0.2+
- MySQL 5.7+
- Apache httpd 2.4+ 或者 Nginx 1.10+
@ -89,13 +99,13 @@ PHP语言开发基于 Laravel 框架,前端 Blade 模板 + Vue
1. 将解压文件夹下的 public 设置为网站根目录
1. 通过浏览器访问网站根据提示完成安装
1. <a href="https://docs.beikeshop.com/install/bt.html" target="_blank">BeikeShop详细安装指引</a>
1. 如需升级请下载最新版覆盖到服务器后网站根目录运行`composer install && php artisan migrate`
1. 如需升级, 请下载最新版覆盖到服务器(必须保留原有.env文件), 然网站根目录运行`php artisan migrate`
## 安装教程(面向开发者)
1. 打开命令行克隆代码 `git clone https://gitee.com/beikeshop/beikeshop.git`
1. 命令行进入 `beikeshop` 目录, 执行 `composer install` 安装第三方包
1. 接着执行 `cp .env.example .env` 创建配置文件
1. 接着执行 `npm install`node 版本需16+ 以及 `npm run dev` 编译前端 js 和 css 文件
1. 接着执行 `npm install`node 版本需16+ 以及 `npm run prod` 编译前端 js 和 css 文件
1. 将项目文件夹下的 `public` 设置为网站根目录
1. 通过浏览器访问网站, 根据提示完成安装
1. 如需升级请在服务器端网站根目录运行`git pull && composer install && php artisan migrate`
@ -106,5 +116,10 @@ PHP语言开发基于 Laravel 框架,前端 Blade 模板 + Vue
1. 提交代码
1. 新建 Merge Request
## 特别鸣谢
插件开发者撸串青年、Aegis
PR贡献者nilsir、what_村长、tanxiaoyong、Lucky、So、licy、老北、Teemo
感谢你们参与到BeikeShop的开发中共同为BeikeShop添砖加瓦
## QQ交流群
群1: 639108380

View File

@ -64,11 +64,18 @@ class Kernel extends HttpKernel
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'admin_api' => [
\App\Http\Middleware\AdminApiAuthenticate::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**

View File

@ -0,0 +1,99 @@
<?php
/**
* AdminAuthenticate.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 14:44:54
* @modified 2023-04-20 14:44:54
*/
namespace App\Http\Middleware;
use Beike\Repositories\AdminUserTokenRepo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Validation\UnauthorizedException;
class AdminApiAuthenticate
{
public const ADMIN_API_PREFIX = 'admin_api.';
/**
* Handle an incoming request.
*
* @param Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, \Closure $next)
{
$token = $request->header('token');
if (empty($token)) {
$token = $request->get('token');
}
$token = AdminUserTokenRepo::getAdminUserTokenByToken($token);
if (empty($token)) {
throw new UnauthorizedException(trans('customer.unauthorized_without_token'));
}
$adminUser = $token->adminUser;
if (! $this->hasPermission($adminUser)) {
throw new UnauthorizedException(trans('customer.unauthorized_without_permission'));
}
register('admin_user', $adminUser);
return $next($request);
}
private function hasPermission($adminUser)
{
// $routeUri = Route::current()->uri();
$routeName = Route::currentRouteName();
$routePath = str_replace(self::ADMIN_API_PREFIX, '', $routeName);
if ($routePath == 'me') {
return true;
}
$permissionName = $this->mapPermissionByRoute($routePath);
if (empty($permissionName)) {
return false;
}
return $adminUser->can($permissionName);
}
private function mapPermissionByRoute($routePath)
{
$maps = [
'categories.index' => 'categories_index',
'categories.show' => 'categories_show',
'categories.create' => 'categories_create',
'categories.update' => 'categories_update',
'categories.delete' => 'categories_delete',
'brands.index' => 'brands_index',
'brands.show' => 'brands_show',
'brands.create' => 'brands_create',
'brands.update' => 'brands_update',
'brands.delete' => 'brands_delete',
'orders.index' => 'orders_index',
'orders.show' => 'orders_show',
'orders.update_status' => 'orders_update_status',
'orders.update_shipment' => 'orders_update_status',
'products.index' => 'products_index',
'products.show' => 'products_show',
'products.create' => 'products_create',
'products.update' => 'products_update',
'products.delete' => 'products_delete',
];
return $maps[$routePath] ?? '';
}
}

View File

@ -13,5 +13,6 @@ class VerifyCsrfToken extends Middleware
*/
protected $except = [
'callback/*',
'api/*',
];
}

0
artisan Normal file → Executable file
View File

16
auto_install.json Normal file
View File

@ -0,0 +1,16 @@
{
"php_ext":"opcache,ioncube",
"chmod":[
{"mode":755,"path":"/storage"},
{"mode":755,"path":"/bootstrap/cache"},
{"mode":755,"path":"/public/cache"}
],
"success_url":"/index.php",
"php_versions":"80,81,82",
"db_config":"",
"admin_username":"",
"admin_password":"",
"run_path":"/public",
"remove_file":["/.user.ini"],
"enable_functions":["putenv"]
}

View File

@ -0,0 +1,100 @@
<?php
/**
* BrandController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 17:19:51
* @modified 2023-04-20 17:19:51
*/
namespace Beike\API\Controllers\Admin;
use Beike\Models\Brand;
use Beike\Repositories\BrandRepo;
use Illuminate\Http\Request;
class BrandController
{
/**
* 显示品牌列表
* @param Request $request
* @return mixed
*/
public function index(Request $request)
{
$brands = BrandRepo::list($request->only('name', 'first', 'status'));
$data = [
'brands' => $brands,
];
return hook_filter('admin_api.brand.index.data', $data);
}
/**
* 创建品牌
*
* @param Request $request
* @param Brand $brand
* @return Brand
*/
public function show(Request $request, Brand $brand): Brand
{
return hook_filter('admin_api.brand.show.data', $brand);
}
/**
* 创建品牌
*
* @param Request $request
* @return array
*/
public function store(Request $request): array
{
$requestData = $request->all();
$data = [
'request_data' => $requestData,
];
hook_action('admin_api.brand.store.before', $data);
$brand = BrandRepo::create($requestData);
hook_action('admin_api.brand.store.after', ['brand' => $brand, 'request_data' => $requestData]);
return json_success(trans('common.created_success'), $brand);
}
/**
* @param Request $request
* @param Brand $brand
* @return array
* @throws \Exception
*/
public function update(Request $request, Brand $brand): array
{
$requestData = $request->all();
$data = [
'brand_id' => $brand,
'request_data' => $requestData,
];
hook_action('admin_api.brand.update.before', $data);
$brand = BrandRepo::update($brand, $requestData);
hook_action('admin_api.brand.update.after', $data);
return json_success(trans('common.updated_success'), $brand);
}
/**
* @param Request $request
* @param Brand $brand
* @return array
*/
public function destroy(Request $request, Brand $brand): array
{
hook_action('admin_api.brand.destroy.before', $brand);
BrandRepo::delete($brand);
hook_action('admin_api.brand.destroy.after', $brand);
return json_success(trans('common.deleted_success'));
}
}

View File

@ -0,0 +1,112 @@
<?php
/**
* CategoryController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 17:00:40
* @modified 2023-04-20 17:00:40
*/
namespace Beike\API\Controllers\Admin;
use Beike\Admin\Http\Requests\CategoryRequest;
use Beike\Admin\Http\Resources\CategoryResource;
use Beike\Admin\Services\CategoryService;
use Beike\Models\Category;
use Beike\Repositories\CategoryRepo;
use Illuminate\Http\Request;
class CategoryController
{
/**
* 商品分类列表
*
* @return mixed
*/
public function index()
{
$categories = CategoryRepo::getAdminList();
$data = [
'categories' => CategoryResource::collection($categories),
];
return hook_filter('admin_api.category.index.data', $data);
}
/**
* 单个商品分类
*
* @param Request $request
* @param Category $category
* @return mixed
*/
public function show(Request $request, Category $category)
{
if (! $category->active) {
return [];
}
$category->load('description');
return hook_filter('admin_api.category.show.data', $category);
}
/**
* 保存商品分类
*
* @param CategoryRequest $request
* @return array
* @throws \Exception
*/
public function store(CategoryRequest $request)
{
$requestData = $request->all();
$category = (new CategoryService())->createOrUpdate($requestData, null);
$data = [
'category' => $category,
'request_data' => $requestData,
];
hook_action('admin_api.category.save.after', $data);
return $data;
}
/**
* 更新产品分类
*
* @param CategoryRequest $request
* @param Category $category
* @return array
* @throws \Exception
*/
public function update(CategoryRequest $request, Category $category)
{
$requestData = $request->all();
$category = (new CategoryService())->createOrUpdate($requestData, $category);
$data = [
'category' => $category,
'request_data' => $requestData,
];
hook_action('admin_api.category.save.after', $data);
return $data;
}
/**
* 删除分类
* @param Request $request
* @param Category $category
* @return array
* @throws \Exception
*/
public function destroy(Request $request, Category $category): array
{
CategoryRepo::delete($category);
hook_action('admin.category.destroy.after', $category);
return json_success(trans('common.deleted_success'));
}
}

View File

@ -0,0 +1,95 @@
<?php
/**
* OrderController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 16:40:35
* @modified 2023-04-20 16:40:35
*/
namespace Beike\API\Controllers\Admin;
use Beike\Models\Order;
use Beike\Models\OrderShipment;
use Beike\Repositories\OrderRepo;
use Beike\Services\ShipmentService;
use Beike\Services\StateMachineService;
use Illuminate\Http\Request;
class OrderController
{
/**
* 获取订单列表
*
* @param Request $request
* @return mixed
* @throws \Exception
*/
public function index(Request $request)
{
$orders = OrderRepo::filterOrders($request->all());
return hook_filter('admin_api.order.index.data', $orders);
}
/**
* 查看单个订单
*
* @param Request $request
* @param Order $order
* @return mixed
* @throws \Exception
*/
public function show(Request $request, Order $order)
{
$order->load(['orderTotals', 'orderHistories', 'orderShipments']);
$data = hook_filter('admin.order.show.data', ['order' => $order, 'html_items' => []]);
$data['statuses'] = StateMachineService::getInstance($order)->nextBackendStatuses();
return hook_filter('admin_api.order.show.data', $data);
}
/**
* 更新订单状态,添加订单更新日志
*
* @param Request $request
* @param Order $order
* @return array
* @throws \Throwable
*/
public function updateStatus(Request $request, Order $order)
{
$status = $request->get('status');
$comment = $request->get('comment');
$notify = $request->get('notify');
$shipment = ShipmentService::handleShipment(\request('express_code'), \request('express_number'));
$stateMachine = new StateMachineService($order);
$stateMachine->setShipment($shipment)->changeStatus($status, $comment, $notify);
$orderStatusData = $request->all();
hook_action('admin.order.update_status.after', $orderStatusData);
return json_success(trans('common.updated_success'));
}
/**
* 更新发货信息
*/
public function updateShipment(Request $request, Order $order, int $orderShipmentId): array
{
$data = $request->all();
$orderShipment = OrderShipment::query()->where('order_id', $order->id)->findOrFail($orderShipmentId);
ShipmentService::updateShipment($orderShipment, $data);
hook_action('admin.order.update_shipment.after', [
'request_data' => $data,
'shipment' => $orderShipment,
]);
return json_success(trans('common.updated_success'));
}
}

View File

@ -0,0 +1,125 @@
<?php
/**
* ProductController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 16:48:47
* @modified 2023-04-20 16:48:47
*/
namespace Beike\API\Controllers\Admin;
use Beike\Admin\Http\Requests\ProductRequest;
use Beike\Admin\Http\Resources\ProductResource;
use Beike\Admin\Services\ProductService;
use Beike\Models\Product;
use Beike\Repositories\ProductRepo;
use Beike\Shop\Http\Resources\ProductDetail;
use Illuminate\Http\Request;
class ProductController
{
/**
* 产品列表
*
* @param Request $request
* @return mixed
*/
public function index(Request $request)
{
$requestData = $request->all();
if (! isset($requestData['sort'])) {
$requestData['sort'] = 'products.updated_at';
}
$productList = ProductRepo::list($requestData);
$products = ProductResource::collection($productList);
return hook_filter('admin_api.product.index.data', $products);
}
/**
* 产品列表
*
* @param Request $request
* @param Product $product
* @return mixed
*/
public function show(Request $request, Product $product)
{
$relationIds = $product->relations->pluck('id')->toArray();
$product = ProductRepo::getProductDetail($product);
$data = [
'product' => (new ProductDetail($product))->jsonSerialize(),
'relations' => ProductRepo::getProductsByIds($relationIds)->jsonSerialize(),
];
return hook_filter('admin_api.product.show.data', $data);
}
/**
* 创建商品
*
* @param ProductRequest $request
* @return mixed
*/
public function store(ProductRequest $request)
{
try {
$requestData = $request->all();
$product = (new ProductService)->create($requestData);
$data = [
'request_data' => $requestData,
'product' => $product,
];
hook_action('admin_api.product.store.after', $data);
return json_success(trans('common.created_success'));
} catch (\Exception $e) {
return json_fail($e->getMessage());
}
}
/**
* 编辑商品
*
* @param ProductRequest $request
* @param Product $product
* @return mixed
*/
public function update(ProductRequest $request, Product $product)
{
try {
$requestData = $request->all();
$product = (new ProductService)->update($product, $requestData);
$data = [
'request_data' => $requestData,
'product' => $product,
];
hook_action('admin_api.product.update.after', $data);
return json_success(trans('common.updated_success'));
} catch (\Exception $e) {
return json_fail($e->getMessage());
}
}
/**
* 删除商品
*
* @param Request $request
* @param Product $product
* @return array
*/
public function destroy(Request $request, Product $product)
{
$product->delete();
hook_action('admin_api.product.destroy.after', $product);
return json_success(trans('common.deleted_success'));
}
}

View File

@ -0,0 +1,20 @@
<?php
/**
* UserController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 14:51:26
* @modified 2023-04-20 14:51:26
*/
namespace Beike\API\Controllers\Admin;
class UserController
{
public function me()
{
return registry('admin_user');
}
}

View File

@ -0,0 +1,94 @@
<?php
/**
* AuthController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-11 17:44:26
* @modified 2023-04-11 17:44:26
*/
namespace Beike\API\Controllers;
use App\Http\Controllers\Controller;
use Beike\Shop\Http\Resources\CustomerResource;
class AuthController extends Controller
{
/**
* Create a new AuthController instance.
*
* @return void
*/
public function __construct()
{
// $this->middleware('auth:api', ['except' => ['login']]);
}
/**
* Get a JWT via given credentials.
*
* @return \Illuminate\Http\JsonResponse
*/
public function login()
{
$credentials = request(['email', 'password']);
if (! $token = auth('api_customer')->attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $this->respondWithToken($token);
}
/**
* Get the authenticated User.
*
* @return \Illuminate\Http\JsonResponse
*/
public function me()
{
$customer = auth('api_customer')->user();
return response()->json(new CustomerResource($customer));
}
/**
* Log the user out (Invalidate the token).
*
* @return \Illuminate\Http\JsonResponse
*/
public function logout()
{
auth('api_customer')->logout();
return response()->json(['message' => 'Successfully logged out']);
}
/**
* Refresh a token.
*
* @return \Illuminate\Http\JsonResponse
*/
public function refresh()
{
return $this->respondWithToken(auth('api_customer')->refresh());
}
/**
* Get the token array structure.
*
* @param string $token
*
* @return \Illuminate\Http\JsonResponse
*/
protected function respondWithToken($token)
{
return response()->json([
'access_token' => $token,
'token_type' => 'bearer',
'expires_in' => auth('api_customer')->factory()->getTTL() * 60,
]);
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* APIServiceProvider.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-11 16:08:04
* @modified 2023-04-11 16:08:04
*/
namespace Beike\API\Providers;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\ServiceProvider;
class APIServiceProvider extends ServiceProvider
{
public function boot()
{
if (is_installer()) {
return;
}
$this->loadRoutesFrom(__DIR__ . '/../Routes/api.php');
$this->registerGuard();
}
/**
* 注册后台用户 guard
*/
protected function registerGuard()
{
Config::set('auth.guards.api_customer', [
'driver' => 'jwt',
'provider' => 'shop_customer',
]);
}
}

52
beike/API/Routes/api.php Normal file
View File

@ -0,0 +1,52 @@
<?php
/**
* api.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-11 17:36:05
* @modified 2023-04-11 17:36:05
*/
use Illuminate\Support\Facades\Route;
Route::prefix('api')
->middleware(['api'])
->name('api.')
->group(function () {
Route::post('login', [\Beike\API\Controllers\AuthController::class, 'login']);
Route::post('logout', [\Beike\API\Controllers\AuthController::class, 'logout']);
Route::post('refresh', [\Beike\API\Controllers\AuthController::class, 'refresh']);
Route::get('me', [\Beike\API\Controllers\AuthController::class, 'me']);
});
Route::prefix('admin_api')
->middleware(['admin_api'])
->name('admin_api.')
->group(function () {
Route::get('brands', [\Beike\API\Controllers\Admin\BrandController::class, 'index'])->name('brands.index');
Route::get('brands/{brand}', [\Beike\API\Controllers\Admin\BrandController::class, 'show'])->name('brands.show');
Route::post('brands', [\Beike\API\Controllers\Admin\BrandController::class, 'store'])->name('brands.create');
Route::put('brands/{brand}', [\Beike\API\Controllers\Admin\BrandController::class, 'update'])->name('brands.update');
Route::delete('brands/{brand}', [\Beike\API\Controllers\Admin\BrandController::class, 'destroy'])->name('brands.delete');
Route::get('categories', [\Beike\API\Controllers\Admin\CategoryController::class, 'index'])->name('categories.index');
Route::get('categories/{category}', [\Beike\API\Controllers\Admin\CategoryController::class, 'show'])->name('categories.show');
Route::post('categories', [\Beike\API\Controllers\Admin\CategoryController::class, 'store'])->name('categories.create');
Route::put('categories/{category}', [\Beike\API\Controllers\Admin\CategoryController::class, 'update'])->name('categories.update');
Route::delete('categories/{category}', [\Beike\API\Controllers\Admin\CategoryController::class, 'destroy'])->name('categories.delete');
Route::get('me', [\Beike\API\Controllers\Admin\UserController::class, 'me'])->name('me');
Route::get('orders', [\Beike\API\Controllers\Admin\OrderController::class, 'index'])->name('orders.index');
Route::get('orders/{order}', [\Beike\API\Controllers\Admin\OrderController::class, 'show'])->name('orders.show');
Route::put('orders/{order}/status', [\Beike\API\Controllers\Admin\OrderController::class, 'updateStatus'])->name('orders.update_status');
Route::put('orders/{order}/shipments/{shipment}', [\Beike\API\Controllers\Admin\OrderController::class, 'updateShipment'])->name('orders.update_shipment');
Route::get('products', [\Beike\API\Controllers\Admin\ProductController::class, 'index'])->name('products.index');
Route::get('products/{product}', [\Beike\API\Controllers\Admin\ProductController::class, 'show'])->name('products.show');
Route::post('products', [\Beike\API\Controllers\Admin\ProductController::class, 'store'])->name('products.create');
Route::put('products/{product}', [\Beike\API\Controllers\Admin\ProductController::class, 'update'])->name('products.update');
Route::delete('products/{product}', [\Beike\API\Controllers\Admin\ProductController::class, 'destroy'])->name('products.delete');
});

View File

@ -0,0 +1,40 @@
<?php
/**
* BrandController.php
*
* @copyright 2022 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author TL <mengwb@guangda.work>
* @created 2022-07-27 21:17:04
* @modified 2022-07-27 21:17:04
*/
namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Repositories\AdminUserRepo;
use Beike\Repositories\AdminUserTokenRepo;
use Illuminate\Http\Request;
class AccountController extends Controller
{
public function index()
{
$user = current_user();
$data = [
'current_user' => $user,
'tokens' => AdminUserTokenRepo::getTokenByAdminUser($user)->pluck('token')->toArray(),
];
return view('admin::pages.account.index', $data);
}
public function update(Request $request)
{
$user = current_user();
$adminUserData = $request->all();
AdminUserRepo::updateAdminUser($user->id, $adminUserData);
return response()->redirectTo('admin/account')->with('success', trans('common.updated_success'));
}
}

View File

@ -26,10 +26,10 @@ class AttributeController extends Controller
{
try {
$attributes = AttributeRepo::getList();
$data = [
'attribute_list' => $attributes,
$data = [
'attribute_list' => $attributes,
'attribute_list_format' => AttributeResource::collection($attributes),
'attribute_group' => AttributeGroupRepo::getList(),
'attribute_group' => AttributeGroupRepo::getList(),
];
$data = hook_filter('admin.attribute.index.data', $data);
if ($request->expectsJson()) {

View File

@ -35,7 +35,7 @@ class AttributeGroupController extends Controller
{
try {
$requestData = json_decode($request->getContent(), true);
$item = AttributeGroupRepo::create($requestData);
$item = AttributeGroupRepo::create($requestData);
} catch (Exception $e) {
return json_fail($e->getMessage(), []);
}

View File

@ -12,6 +12,7 @@
namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Requests\CurrencyRequest;
use Beike\Models\Order;
use Beike\Repositories\CurrencyRepo;
use Illuminate\Http\Request;
@ -66,9 +67,19 @@ class CurrencyController extends Controller
public function destroy(Request $request, int $currencyId)
{
CurrencyRepo::delete($currencyId);
hook_action('admin.currency.destroy.after', $currencyId);
try {
$currency = CurrencyRepo::find($currencyId);
$orderExist = Order::query()->where('currency_code', $currency->code)->exists();
if ($orderExist) {
throw new \Exception(trans('admin/currency.order_exist'));
}
return json_success(trans('common.deleted_success'));
CurrencyRepo::delete($currencyId);
hook_action('admin.currency.destroy.after', $currencyId);
return json_success(trans('common.deleted_success'));
} catch (\Exception $e) {
return json_fail($e->getMessage());
}
}
}

View File

@ -31,10 +31,12 @@ class FileManagerController extends Controller
public function getFiles(Request $request): array
{
$baseFolder = $request->get('base_folder');
$sort = $request->get('sort', 'created');
$order = $request->get('order', 'desc');
$page = (int) $request->get('page');
$perPage = (int) $request->get('per_page');
$data = (new FileManagerService)->getFiles($baseFolder, $page, $perPage);
$data = (new FileManagerService)->getFiles($baseFolder, $sort, $order, $page, $perPage);
return hook_filter('admin.file_manager.files.data', $data);
}
@ -124,7 +126,7 @@ class FileManagerController extends Controller
$savePath = $request->get('path');
$originName = $file->getClientOriginalName();
$filePath = $file->storeAs($savePath, $originName, 'catalog');
$filePath = (new FileManagerService)->uploadFile($file, $savePath, $originName);
return [
'name' => $originName,

View File

@ -5,13 +5,16 @@ namespace Beike\Admin\Http\Controllers;
use App\Http\Controllers\Controller;
use Beike\Admin\Repositories\DashboardRepo;
use Beike\Admin\Repositories\Report\OrderReportRepo;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
class HomeController extends Controller
{
public function index()
{
$data = [
'views' => DashboardRepo::getCustomerViewData(),
'products' => DashboardRepo::getProductData(),
// 'views' => DashboardRepo::getCustomerViewData(),
'orders' => DashboardRepo::getOrderData(),
'customers' => DashboardRepo::getCustomerData(),
'order_totals' => DashboardRepo::getTotalData(),
@ -24,4 +27,54 @@ class HomeController extends Controller
return view('admin::pages.home', $data);
}
/**
* 通过关键字搜索菜单
*
* @return array
*/
public function menus()
{
$keyword = trim(request('keyword'));
$menus = [];
$routes = Route::getRoutes();
foreach ($routes as $route) {
$routeName = $route->getName();
if (! Str::startsWith($routeName, 'admin')) {
continue;
}
$method = $route->methods()[0];
if ($method != 'GET') {
continue;
}
$routeName = str_replace('admin.', '', $routeName);
$permissionRoute = str_replace('.', '_', $routeName);
try {
$url = admin_route($routeName);
} catch (\Exception $e) {
$url = '';
}
if (empty($url)) {
continue;
}
$title = trans("admin/common.{$permissionRoute}");
if (stripos($title, 'admin/common.') !== false) {
continue;
}
if ($keyword && stripos($title, $keyword) !== false) {
$menus[] = [
'route' => $routeName,
'url' => admin_route($routeName),
'title' => $title,
];
}
}
return $menus;
}
}

View File

@ -0,0 +1,45 @@
<?php
/**
* AttributeController.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author TL <mengwb@guangda.work>
* @created 2023-01-04 19:45:41
* @modified 2023-01-04 19:45:41
*/
namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Repositories\AttributeRepo;
use Beike\Repositories\SettingRepo;
use Illuminate\Http\Request;
class MultiFilterController extends Controller
{
public function index()
{
$multiFilter = system_setting('base.multi_filter') ?: [];
$multiFilter['attribute'] = $multiFilter['attribute'] ?? [];
if ($attributeIds = $multiFilter['attribute'] ?? []) {
$multiFilter['attribute'] = AttributeRepo::getByIds($attributeIds);
}
$data = [
'multi_filter' => $multiFilter,
];
return view('admin::pages.multi_filter.index', $data);
}
public function store(Request $request)
{
$settings = $request->all();
foreach ($settings as $key => $value) {
SettingRepo::storeValue($key, $value);
}
return redirect(admin_route('multi_filter.index'))->with('success', trans('common.updated_success'));
}
}

View File

@ -71,7 +71,7 @@ class OrderController extends Controller
*/
public function show(Request $request, Order $order)
{
$order->load(['orderTotals', 'orderHistories', 'orderShipments']);
$order->load(['orderTotals', 'orderHistories', 'orderShipments', 'orderPayments']);
$data = hook_filter('admin.order.show.data', ['order' => $order, 'html_items' => []]);
$data['statuses'] = StateMachineService::getInstance($order)->nextBackendStatuses();
$data = hook_filter('admin.order.show.data', $data);

View File

@ -32,6 +32,111 @@ class PluginController extends Controller
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function shipping()
{
$type = 'shipping';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function payment()
{
$type = 'payment';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function total()
{
$type = 'total';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function social()
{
$type = 'social';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function feature()
{
$type = 'feature';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function language()
{
$type = 'language';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* @return mixed
*/
public function theme()
{
$type = 'theme';
$plugins = app('plugin')->getPlugins();
$plugins = $plugins->where('type', $type);
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
$data['type'] = $type;
$data = hook_filter('admin.plugin.index.data', $data);
return view('admin::pages.plugins.index', $data);
}
/**
* 上传插件
*/

View File

@ -7,6 +7,7 @@ use Beike\Admin\Http\Resources\ProductAttributeResource;
use Beike\Admin\Http\Resources\ProductResource;
use Beike\Admin\Repositories\TaxClassRepo;
use Beike\Admin\Services\ProductService;
use Beike\Libraries\Weight;
use Beike\Models\Product;
use Beike\Repositories\CategoryRepo;
use Beike\Repositories\LanguageRepo;
@ -20,6 +21,9 @@ class ProductController extends Controller
public function index(Request $request)
{
$requestData = $request->all();
if (! isset($requestData['sort'])) {
$requestData['sort'] = 'products.updated_at';
}
$productList = ProductRepo::list($requestData);
$products = ProductResource::collection($productList);
$productsFormat = $products->jsonSerialize();
@ -145,15 +149,16 @@ class ProductController extends Controller
array_unshift($taxClasses, ['title' => trans('admin/builder.text_no'), 'id' => 0]);
$data = [
'product' => $product,
'descriptions' => $descriptions ?? [],
'category_ids' => $categoryIds ?? [],
'product_attributes' => ProductAttributeResource::collection($product->attributes),
'relations' => ProductResource::collection($product->relations)->resource,
'languages' => LanguageRepo::all(),
'tax_classes' => $taxClasses,
'source' => [
'categories' => CategoryRepo::flatten(locale()),
'product' => $product,
'descriptions' => $descriptions ?? [],
'category_ids' => $categoryIds ?? [],
'product_attributes' => ProductAttributeResource::collection($product->attributes),
'relations' => ProductResource::collection($product->relations)->resource,
'languages' => LanguageRepo::all(),
'tax_classes' => $taxClasses,
'weight_classes' => Weight::getWeightUnits(),
'source' => [
'categories' => CategoryRepo::flatten(locale(), false),
],
'_redirect' => $this->getRedirect(),
];

View File

@ -30,7 +30,7 @@ class SettingController extends Controller
{
$themes = ThemeRepo::getAllThemes();
$tax_address = [
$taxAddress = [
['value' => 'shipping', 'label' => trans('admin/setting.shipping_address')],
['value' => 'payment', 'label' => trans('admin/setting.payment_address')],
];
@ -38,7 +38,7 @@ class SettingController extends Controller
$data = [
'countries' => CountryRepo::listEnabled(),
'currencies' => CurrencyRepo::listEnabled(),
'tax_address' => $tax_address,
'tax_address' => $taxAddress,
'customer_groups' => CustomerGroupDetail::collection(CustomerGroupRepo::list())->jsonSerialize(),
'themes' => $themes,
];

View File

@ -34,6 +34,7 @@ class PageRequest extends FormRequest
{
$rules = [
'descriptions.*.title' => 'required|string|min:3|max:128',
'descriptions.*.summary' => 'string|max:180',
'descriptions.*.content' => 'required|string',
'descriptions.*.locale' => 'required|string',
];

View File

@ -33,7 +33,7 @@ class TaxRateRequest extends FormRequest
public function rules(): array
{
$rule = [
'name' => 'required|string|max:10',
'name' => 'required|string|max:32',
'rate' => 'required|numeric',
'type' => 'required|in:percent,flat',
'region_id' => 'required|int',

View File

@ -33,7 +33,7 @@ class UploadRequest extends FormRequest
public function rules()
{
return [
'file' => 'required|image|mimes:jpg,png,jpeg,gif,svg|max:2048',
'file' => 'required|mimes:jpg,png,jpeg,gif,svg,mp4|max:20480',
];
}
}

View File

@ -22,13 +22,13 @@ class PageCategoryResource extends JsonResource
return [
'id' => $this->id,
'active' => $this->active,
'title' => $description->title,
'title_format' => sub_string($description->title, 64),
'summary' => $description->summary,
'summary_format' => sub_string($description->summary, 128),
'meta_title' => $description->meta_title,
'meta_description' => $description->meta_description,
'meta_keywords' => $description->meta_keywords,
'title' => $description->title ?? '',
'title_format' => sub_string($description->title ?? '', 64),
'summary' => $description->summary ?? '',
'summary_format' => sub_string($description->summary ?? '', 128),
'meta_title' => $description->meta_title ?? '',
'meta_description' => $description->meta_description ?? '',
'meta_keywords' => $description->meta_keywords ?? '',
'created_at' => time_format($this->created_at),
'updated_at' => time_format($this->updated_at),
];

View File

@ -24,6 +24,8 @@ class ProductResource extends JsonResource
return image_resize($image);
}, $this->images ?? []),
'name' => $this->description->name ?? '',
'model' => $masterSku->model,
'quantity' => $masterSku->quantity,
'price_formatted' => currency_format($masterSku->price),
'active' => $this->active,
'position' => $this->position,

View File

@ -53,6 +53,7 @@ class AdminServiceProvider extends ServiceProvider
load_settings();
$this->loadRoutesFrom(__DIR__ . '/../Routes/admin.php');
$this->registerGuard();
$adminName = admin_name();
if (! Str::startsWith($uri, "/{$adminName}")) {
@ -69,8 +70,6 @@ class AdminServiceProvider extends ServiceProvider
$this->loadAdminViewComponents();
$this->registerGuard();
Config::set('filesystems.disks.catalog', [
'driver' => 'local',
'root' => public_path('catalog'),

View File

@ -13,6 +13,7 @@ namespace Beike\Admin\Repositories;
use Beike\Admin\Http\Resources\AdminUserDetail;
use Beike\Models\AdminUser;
use Beike\Repositories\AdminUserTokenRepo;
use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException;
class AdminUserRepo
@ -73,7 +74,14 @@ class AdminUserRepo
$userData['password'] = bcrypt($password);
}
$adminUser->update($userData);
$adminUser->syncRoles($data['roles']);
$roles = $data['roles'] ?? [];
if ($roles) {
$adminUser->syncRoles($roles);
}
$tokens = $data['tokens'] ?? [];
AdminUserTokenRepo::updateTokensByUser($adminUser, $tokens);
return $adminUser;
}

View File

@ -68,6 +68,9 @@ class AttributeGroupRepo
public static function delete($id)
{
if ($id == 1) {
throw new \Exception(trans('admin/attribute_group.error_cannot_delete_default_group'));
}
$group = AttributeGroup::query()->findOrFail($id);
if ($group->attributes->count()) {
throw new \Exception(trans('admin/attribute_group.error_cannot_delete_attribute_used', ['attributes' => implode(', ', $group->attributes->pluck('id')->toArray())]));

View File

@ -12,6 +12,7 @@
namespace Beike\Admin\Repositories;
use Beike\Models\Attribute;
use Beike\Models\AttributeDescription;
use Beike\Models\AttributeValue;
use Beike\Models\ProductAttribute;
@ -138,4 +139,14 @@ class AttributeRepo
return $builder->limit(10)->get();
}
public static function getByIds($ids)
{
return AttributeDescription::query()
->where('locale', locale())
->whereIn('attribute_id', $ids)
->select(['attribute_id as id', 'name'])
->get()
->toArray();
}
}

View File

@ -11,9 +11,9 @@
namespace Beike\Admin\Repositories;
use Beike\Models\Product;
use Beike\Repositories\CustomerRepo;
use Beike\Repositories\OrderRepo;
use Beike\Repositories\ProductRepo;
class DashboardRepo
{
@ -21,12 +21,22 @@ class DashboardRepo
* 获取商品总数
*
* @return array
* @throws \Exception
*/
public static function getProductData(): array
{
$today = ProductRepo::getBuilder(['created_start' => today()->subDay(), 'created_end' => today()])->count();
$yesterday = ProductRepo::getBuilder(['created_start' => today()->subDays(2), 'created_end' => today()->subDay()])->count();
$difference = $today - $yesterday;
if ($difference && $yesterday) {
$percentage = round(($difference / $yesterday) * 100);
} else {
$percentage = 0;
}
return [
'total' => quantity_format(Product::query()->count()),
'percentage' => 0,
'total' => $today,
'percentage' => $percentage,
];
}

View File

@ -83,6 +83,8 @@ class PageRepo
$page->descriptions()->createMany($data['descriptions']);
$products = $data['products'] ?? [];
$page->pageProducts()->delete();
if ($products) {
$items = [];
foreach ($products as $item) {
@ -90,7 +92,6 @@ class PageRepo
'product_id' => $item,
];
}
$page->pageProducts()->delete();
$page->pageProducts()->createMany($items);
}

View File

@ -138,7 +138,7 @@ class PermissionRepo
*/
private function getProductPermissions(): array
{
$routes = ['products_index', 'products_create', 'products_show', 'products_update', 'products_delete', 'products_trashed', 'products_restore'];
$routes = ['products_index', 'products_create', 'products_show', 'products_update', 'products_delete', 'products_trashed', 'products_restore', 'products_filter_index', 'products_filter_update'];
$items = $this->getPermissionList('product', $routes);
return hook_filter('role.product_permissions', $items);

View File

@ -19,6 +19,11 @@ Route::prefix($adminName)
Route::middleware('admin_auth:' . \Beike\Models\AdminUser::AUTH_GUARD)
->group(function () {
Route::get('/', [Controllers\HomeController::class, 'index'])->name('home.index');
Route::get('/menus', [Controllers\HomeController::class, 'menus'])->name('home.menus');
//个人中心
Route::middleware('can:account_index')->get('account', [Controllers\AccountController::class, 'index'])->name('account.index');
Route::middleware('can:account_update')->put('account', [Controllers\AccountController::class, 'update'])->name('account.update');
// 属性
Route::middleware('can:attributes_update')->post('attributes/{id}/values', [Controllers\AttributeController::class, 'storeValue'])->name('attributes.values.store');
@ -32,6 +37,10 @@ Route::prefix($adminName)
Route::middleware('can:attributes_update')->put('attributes/{id}', [Controllers\AttributeController::class, 'update'])->name('attributes.update');
Route::middleware('can:attributes_delete')->delete('attributes/{id}', [Controllers\AttributeController::class, 'destroy'])->name('attributes.destroy');
// 高级筛选
Route::middleware('can:products_filter_index')->get('multi_filter', [Controllers\MultiFilterController::class, 'index'])->name('multi_filter.index');
Route::middleware('can:products_filter_update')->post('multi_filter', [Controllers\MultiFilterController::class, 'store'])->name('multi_filter.store');
// 属性组
Route::middleware('can:attribute_groups_index')->get('attribute_groups', [Controllers\AttributeGroupController::class, 'index'])->name('attribute_groups.index');
Route::middleware('can:attribute_groups_create')->post('attribute_groups', [Controllers\AttributeGroupController::class, 'store'])->name('attribute_groups.store');
@ -153,6 +162,15 @@ Route::prefix($adminName)
Route::middleware('can:plugins_install')->post('plugins/{code}/install', [Controllers\PluginController::class, 'install'])->name('plugins.install');
Route::middleware('can:plugins_uninstall')->post('plugins/{code}/uninstall', [Controllers\PluginController::class, 'uninstall'])->name('plugins.uninstall');
// 插件分组
Route::middleware('can:plugins_index')->get('plugins/shipping', [Controllers\PluginController::class, 'shipping'])->name('plugins.shipping');
Route::middleware('can:plugins_index')->get('plugins/payment', [Controllers\PluginController::class, 'payment'])->name('plugins.payment');
Route::middleware('can:plugins_index')->get('plugins/total', [Controllers\PluginController::class, 'total'])->name('plugins.total');
Route::middleware('can:plugins_index')->get('plugins/social', [Controllers\PluginController::class, 'social'])->name('plugins.social');
Route::middleware('can:plugins_index')->get('plugins/feature', [Controllers\PluginController::class, 'feature'])->name('plugins.feature');
Route::middleware('can:plugins_index')->get('plugins/language', [Controllers\PluginController::class, 'language'])->name('plugins.language');
Route::middleware('can:plugins_index')->get('plugins/theme', [Controllers\PluginController::class, 'theme'])->name('plugins.theme');
// 插件市场
Route::middleware('can:marketing_index')->get('marketing', [Controllers\MarketingController::class, 'index'])->name('marketing.index');
Route::middleware('can:marketing_show')->get('marketing/{code}', [Controllers\MarketingController::class, 'show'])->name('marketing.show');
@ -196,7 +214,7 @@ Route::prefix($adminName)
Route::middleware('can:products_index')->get('products', [Controllers\ProductController::class, 'index'])->name('products.index');
Route::middleware('can:products_create')->get('products/create', [Controllers\ProductController::class, 'create'])->name('products.create');
Route::middleware('can:products_create')->post('products', [Controllers\ProductController::class, 'store'])->name('products.store');
Route::middleware('can:products_update')->get('products/{product}/edit', [Controllers\ProductController::class, 'edit'])->name('products.edit');
Route::middleware('can:products_show')->get('products/{product}/edit', [Controllers\ProductController::class, 'edit'])->name('products.edit');
Route::middleware('can:products_update')->put('products/{product}', [Controllers\ProductController::class, 'update'])->name('products.update');
Route::middleware('can:products_delete')->delete('products/{product}', [Controllers\ProductController::class, 'destroy'])->name('products.destroy');

View File

@ -13,11 +13,13 @@ namespace Beike\Admin\Services;
class FileManagerService
{
private $fileBasePath = '';
protected $fileBasePath = '';
protected $basePath = '';
public function __construct()
{
$this->fileBasePath = public_path('catalog');
$this->fileBasePath = public_path('catalog') . $this->basePath;
}
/**
@ -26,6 +28,7 @@ class FileManagerService
public function getDirectories($baseFolder = '/'): array
{
$currentBasePath = rtrim($this->fileBasePath . $baseFolder, '/');
$directories = glob("{$currentBasePath}/*", GLOB_ONLYDIR);
$result = [];
@ -49,18 +52,34 @@ class FileManagerService
* 获取某个目录下的文件和文件夹
*
* @param $baseFolder
* @param $sort
* @param $order
* @param int $page
* @param int $perPage
* @return array
* @throws \Exception
*/
public function getFiles($baseFolder, int $page = 1, int $perPage = 20): array
public function getFiles($baseFolder, $sort, $order, int $page = 1, int $perPage = 20): array
{
$currentBasePath = rtrim($this->fileBasePath . $baseFolder, '/');
$files = glob($currentBasePath . '/*');
usort($files, function ($a, $b) {
return filemtime($a) - filemtime($b) < 0;
});
if ($sort == 'created') {
if ($order == 'desc') {
usort($files, function ($a, $b) {
return filemtime($a) - filemtime($b) < 0;
});
} else {
usort($files, function ($a, $b) {
return filemtime($a) - filemtime($b) >= 0;
});
}
} else {
natcasesort($files);
if ($order == 'desc') {
$files = array_reverse($files);
}
}
$images = [];
foreach ($files as $file) {
@ -68,7 +87,7 @@ class FileManagerService
if ($baseName == 'index.html') {
continue;
}
$fileName = str_replace($this->fileBasePath, '', $file);
$fileName = str_replace(public_path('catalog'), '', $file);
if (is_file($file)) {
$images[] = $this->handleImage($fileName, $baseName);
}
@ -98,7 +117,7 @@ class FileManagerService
*/
public function createDirectory($folderName)
{
$catalogFolderPath = "catalog/{$folderName}";
$catalogFolderPath = "catalog{$this->basePath}/{$folderName}";
$folderPath = public_path($catalogFolderPath);
if (is_dir($folderPath)) {
throw new \Exception(trans('admin/file_manager.directory_already_exist'));
@ -114,7 +133,7 @@ class FileManagerService
*/
public function deleteDirectoryOrFile($filePath)
{
$filePath = public_path("catalog/{$filePath}");
$filePath = public_path("catalog{$this->basePath}/{$filePath}");
if (is_dir($filePath)) {
$files = glob($filePath . '/*');
if ($files) {
@ -138,7 +157,7 @@ class FileManagerService
return;
}
foreach ($files as $file) {
$filePath = public_path("catalog/{$basePath}/$file");
$filePath = public_path("catalog{$this->basePath}/{$basePath}/$file");
if (file_exists($filePath)) {
@unlink($filePath);
}
@ -154,7 +173,7 @@ class FileManagerService
*/
public function updateName($originPath, $newPath)
{
$originPath = public_path("catalog/{$originPath}");
$originPath = public_path("catalog{$this->basePath}/{$originPath}");
if (! is_dir($originPath) && ! file_exists($originPath)) {
throw new \Exception(trans('admin/file_manager.target_not_exist'));
}
@ -166,6 +185,13 @@ class FileManagerService
@rename($originPath, $newPath);
}
public function uploadFile($file, $savePath, $originName)
{
$savePath = $this->basePath . $savePath;
return $file->storeAs($savePath, $originName, 'catalog');
}
/**
* 处理文件夹
*
@ -189,7 +215,7 @@ class FileManagerService
*/
private function hasSubFolders($folderPath): bool
{
$path = public_path("catalog/{$folderPath}");
$path = public_path("catalog{$this->basePath}/{$folderPath}");
$subFiles = glob($path . '/*');
foreach ($subFiles as $subFile) {
if (is_dir($subFile)) {
@ -210,12 +236,19 @@ class FileManagerService
*/
private function handleImage($filePath, $baseName): array
{
$path = "catalog{$filePath}";
$path = "catalog{$filePath}";
$realPath = $this->fileBasePath . $filePath;
$mime = '';
if(file_exists($realPath)) {
$mime = mime_content_type($realPath);
}
return [
'path' => $path,
'name' => $baseName,
'origin_url' => image_origin($path),
'mime' => $mime,
'selected' => false,
];
}

View File

@ -59,7 +59,7 @@ class MarketingService
*/
public function getPlugin($pluginCode): mixed
{
$url = config('beike.api_url') . "/api/plugins/{$pluginCode}";
$url = config('beike.api_url') . "/api/plugins/{$pluginCode}?version=" . config('beike.version');
$plugin = $this->httpClient->get($url)->json();
if (empty($plugin)) {
throw new NotFoundHttpException('该插件不存在或已下架');

View File

@ -26,9 +26,12 @@ class ProductService
try {
DB::beginTransaction();
$data['brand_id'] = (int) $data['brand_id'];
$data['variables'] = json_decode($data['variables']);
$data['brand_id'] = (int) ($data['brand_id'] ?? 0);
$data['position'] = (int) ($data['position'] ?? 0);
$data['weight'] = (float) ($data['weight'] ?? 0);
$data['variables'] = json_decode($data['variables'] ?? '[]');
$product->fill($data);
$product->updated_at = now();
$product->save();
if ($isUpdating) {

View File

@ -14,16 +14,19 @@ class Select extends Component
public array $options;
public string $width;
public string $key;
public string $label;
public function __construct(string $name, string $value, string $title, array $options, ?string $key = 'value', ?string $label = 'label')
public function __construct(string $name, string $value, string $title, array $options, string $width = '400', ?string $key = 'value', ?string $label = 'label')
{
$this->name = $name;
$this->title = $title;
$this->value = $value;
$this->options = $options;
$this->width = $width;
$this->key = $key;
$this->label = $label;
}

View File

@ -3,6 +3,7 @@
namespace Beike\Admin\View\Components;
use Beike\Models\AdminUser;
use Illuminate\Support\Facades\View;
use Illuminate\View\Component;
class Header extends Component
@ -11,6 +12,10 @@ class Header extends Component
private ?AdminUser $adminUser;
public array $commonLinks;
public array $historyLinks;
/**
* Create a new component instance.
*
@ -28,82 +33,102 @@ class Header extends Component
*/
public function render()
{
$sidebar = new Sidebar();
$preparedMenus = $this->prepareMenus();
foreach ($preparedMenus as $menu) {
$menuCode = $menu['code'] ?? '';
if ($menuCode) {
$routes = [];
$subRoutesMethod = "get{$menu['code']}SubRoutes";
if (method_exists($sidebar, $subRoutesMethod)) {
$sideMenuRoutes = $sidebar->{"get{$menu['code']}SubRoutes"}();
foreach ($sideMenuRoutes as $route) {
$routeFirst = explode('.', $route['route'])[0] ?? '';
$routes[] = 'admin.' . $route['route'];
$routes[] = 'admin.' . $routeFirst . '.edit';
$routes[] = 'admin.' . $routeFirst . '.show';
}
}
$data = [
'menu_code' => $menuCode,
'routes' => $routes,
];
$filterRoutes = hook_filter('admin.components.header.routes', $data);
$routes = $filterRoutes['routes'] ?? [];
if (empty($routes)) {
$is_route = equal_route('admin.' . $menu['route']);
} else {
$is_route = equal_route($routes);
}
} else {
$is_route = equal_route('admin.' . $menu['route']);
}
$this->addLink($menu['name'], $menu['route'], $is_route);
}
$this->commonLinks = $this->getCommonLinks();
$this->historyLinks = $this->handleHistoryLinks();
return view('admin::components.header');
}
/**
* 默认菜单
* 常用功能链接
*/
private function prepareMenus()
private function getCommonLinks()
{
$menus = [
['name' => trans('admin/common.home'), 'route' => 'home.index', 'code' => ''],
['name' => trans('admin/common.order'), 'route' => 'orders.index', 'code' => 'Order'],
['name' => trans('admin/common.product'), 'route' => 'products.index', 'code' => 'Product'],
['name' => trans('admin/common.customer'), 'route' => 'customers.index', 'code' => 'Customer'],
['name' => trans('admin/common.page'), 'route' => 'pages.index', 'code' => 'Page'],
['name' => trans('admin/common.setting'), 'route' => 'settings.index', 'code' => 'Setting'],
['name' => trans('admin/common.inquiry'), 'route' => 'inquiry.index', 'code' => 'Inquiry'],
$commonLinks = [
['route' => 'design.index', 'icon' => 'bi bi-palette', 'blank' => true],
['route' => 'design_footer.index', 'icon' => 'bi bi-palette', 'blank' => true],
['route' => 'design_menu.index', 'icon' => 'bi bi-list', 'blank' => false],
['route' => 'languages.index', 'icon' => 'bi bi-globe2', 'blank' => false],
['route' => 'currencies.index', 'icon' => 'bi bi-currency-dollar', 'blank' => false],
['route' => 'plugins.index', 'icon' => 'bi bi-plug', 'blank' => false],
];
return hook_filter('admin.header_menus', $menus);
foreach ($commonLinks as $index => $commonLink) {
$route = $commonLink['route'];
$permissionRoute = str_replace('.', '_', $route);
$commonLinks[$index]['url'] = admin_route($route);
$commonLinks[$index]['title'] = trans("admin/common.{$permissionRoute}");
}
return hook_filter('admin.components.header.common_links', $commonLinks);
}
/**
* 添加后台顶部菜单链接
*
* @param $title
* @param $route
* @param false $active
* 处理最近访问链接
*/
private function addLink($title, $route, bool $active = false)
private function handleHistoryLinks(): array
{
$permissionRoute = str_replace('.', '_', $route);
if ($this->adminUser->cannot($permissionRoute) && $route != 'home.index') {
return;
$links = [];
$histories = $this->getHistoryRoutesFromSession();
foreach ($histories as $history) {
$routeName = str_replace('admin.', '', $history);
$permissionRoute = str_replace('.', '_', $routeName);
if (stripos($routeName, 'plugins.') !== false) {
$type = str_replace('plugins.', '', $routeName);
if ($type == 'index') {
$title = trans("admin/common.{$permissionRoute}");
} else {
$title = trans("admin/plugin.{$type}");
}
} else {
$title = trans("admin/common.{$permissionRoute}");
}
if (stripos($title, 'admin/common.') !== false) {
$tempRouteName = str_replace('s.index', '', $routeName);
$title = trans("admin/common.{$tempRouteName}");
}
try {
$url = admin_route($routeName);
} catch (\Exception $e) {
$url = '';
}
if (empty($url)) {
continue;
}
$links[] = [
'route' => $routeName,
'url' => $url,
'title' => $title,
];
}
$url = admin_route($route);
$this->links[] = [
'title' => $title,
'url' => $url,
'active' => $active,
];
return $links;
}
/**
* session 获取最近访问的链接
*
* @return array
*/
private function getHistoryRoutesFromSession(): array
{
$histories = session('histories', []);
$currentRoute = request()->route()->getName();
$routeName = str_replace('admin.', '', $currentRoute);
if (in_array($routeName, ['edit.locale', 'home.menus'])) {
return $histories;
}
array_unshift($histories, $currentRoute);
$histories = array_slice(array_unique($histories), 0, 6);
session(['histories' => $histories]);
return $histories;
}
}

View File

@ -3,17 +3,23 @@
namespace Beike\Admin\View\Components;
use Beike\Models\AdminUser;
use Illuminate\Support\Str;
use Beike\Plugin\Plugin;
use Illuminate\View\Component;
class Sidebar extends Component
{
public array $links = [];
public ?array $currentLink;
private string $adminName;
private ?string $routeNameWithPrefix;
private ?string $currentRouteName;
private ?string $currentPrefix;
private ?AdminUser $adminUser;
/**
@ -23,9 +29,14 @@ class Sidebar extends Component
*/
public function __construct()
{
$this->adminName = admin_name();
$this->adminName = admin_name();
$this->adminUser = current_user();
$this->routeNameWithPrefix = request()->route()->getName();
$this->adminUser = current_user();
$this->currentRouteName = str_replace($this->adminName . '.', '', $this->routeNameWithPrefix);
$routeData = explode('.', $this->currentRouteName);
$this->currentPrefix = $routeData[0] ?? '';
}
/**
@ -35,81 +46,168 @@ class Sidebar extends Component
*/
public function render()
{
$adminName = $this->adminName;
$routeNameWithPrefix = request()->route()->getName();
$routeName = str_replace($adminName . '.', '', $routeNameWithPrefix);
if (Str::startsWith($routeName, $this->getHomeSubPrefix())) {
$routes = $this->getHomeSubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
} elseif (Str::startsWith($routeName, $this->getProductSubPrefix())) {
$routes = $this->getProductSubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
} elseif (Str::startsWith($routeName, $this->getCustomerSubPrefix())) {
$routes = $this->getCustomerSubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
} elseif (Str::startsWith($routeName, $this->getOrderSubPrefix())) {
$routes = $this->getOrderSubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
} elseif (Str::startsWith($routeName, $this->getPageSubPrefix())) {
$routes = $this->getPageSubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
} elseif (Str::startsWith($routeName, $this->getSettingSubPrefix())) {
$routes = $this->getSettingSubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
} elseif (Str::startsWith($routeName, $this->getInquirySubPrefix())) {
$routes = $this->getInquirySubRoutes();
foreach ($routes as $route) {
$this->addLink($route, $this->equalRoute($route['route']), (bool) ($route['blank'] ?? false), $route['hide_mobile'] ?? 0);
}
}
$this->links = $this->getMenus();
$this->handleMenus();
$this->currentLink = $this->getCurrentLink();
return view('admin::components.sidebar');
}
/**
* 添加左侧菜单链接
* 返回所有菜单
* 小图标地址 https://icons.getbootstrap.com/
*
* @param $routeData
* @param $active
* @param false $newWindow
* @param int $hide_mobile
* @return mixed
*/
private function addLink($routeData, $active, bool $newWindow = false, int $hide_mobile = 0)
private function getMenus(): mixed
{
$route = $routeData['route'];
$icon = $routeData['icon'] ?? '';
$title = $routeData['title'] ?? '';
$permissionRoute = str_replace('.', '_', $route);
if ($this->adminUser->cannot($permissionRoute)) {
return;
}
if (empty($title)) {
$title = trans("admin/common.{$permissionRoute}");
}
$url = admin_route($route);
$this->links[] = [
'title' => $title,
'url' => $url,
'icon' => $icon,
'active' => $active,
'hide_mobile' => $hide_mobile,
'new_window' => $newWindow,
$menus = [
[
'route' => 'home.index',
'title' => trans('admin/common.home'),
'icon' => 'bi bi-house',
'prefixes' => $this->getHomeSubPrefix(),
],
[
'route' => 'orders.index',
'title' => trans('admin/common.order'),
'icon' => 'bi bi-clipboard-check',
'prefixes' => $this->getOrderSubPrefix(),
'children' => $this->getOrderSubRoutes(),
],
[
'route' => 'products.index',
'title' => trans('admin/common.product'),
'icon' => 'bi bi-box-seam',
'prefixes' => $this->getProductSubPrefix(),
'children' => $this->getProductSubRoutes(),
],
[
'route' => 'customers.index',
'title' => trans('admin/common.customer'),
'icon' => 'bi bi-person-circle',
'prefixes' => $this->getCustomerSubPrefix(),
'children' => $this->getCustomerSubRoutes(),
],
[
'route' => 'pages.index',
'title' => trans('admin/common.page'),
'icon' => 'bi bi-file-earmark-text',
'prefixes' => $this->getPageSubPrefix(),
'children' => $this->getPageSubRoutes(),
],
[
'route' => 'theme.index',
'title' => trans('admin/common.design'),
'icon' => 'bi bi-palette',
'prefixes' => $this->getDesignSubPrefix(),
'children' => $this->getDesignSubRoutes(),
],
[
'route' => 'plugins.index',
'title' => trans('admin/common.plugin'),
'icon' => 'bi bi-shop',
'prefixes' => $this->getPluginSubPrefix(),
'children' => $this->getPluginSubRoutes(),
],
[
'route' => 'settings.index',
'title' => trans('admin/common.setting'),
'icon' => 'bi bi-gear',
'prefixes' => $this->getSettingSubPrefix(),
'children' => $this->getSettingSubRoutes(),
],
[
'route' => 'inquiry.index',
'title' => trans('admin/common.inquiry'),
'icon' => 'bi bi-gear',
'prefixes' => $this->getInquirySubPrefix(),
'children' => $this->getInquirySubRoutes(),
],
];
return hook_filter('admin.components.sidebar.menus', $menus);
}
/**
* 获取二级菜单
*
* @return array|null
*/
private function getCurrentLink(): array|null
{
foreach ($this->links as $link) {
$prefixes = $link['prefixes'] ?? [];
if ($prefixes && in_array($this->currentPrefix, $prefixes)) {
return $link;
}
}
return null;
}
/**
* 处理是否选中等数据
*/
private function handleMenus()
{
foreach ($this->links as $index => $link) {
$prefixes = $link['prefixes'] ?? [];
if ($prefixes && in_array($this->currentPrefix, $prefixes)) {
$this->links[$index]['active'] = true;
} else {
$this->links[$index]['active'] = false;
}
$url = $link['url'] ?? '';
if (empty($url)) {
$this->links[$index]['url'] = admin_route($link['route']);
}
$title = $link['title'] ?? '';
if (empty($title)) {
$permissionRoute = str_replace('.', '_', $this->currentRouteName);
$this->links[$index]['title'] = trans("admin/common.{$permissionRoute}");
}
if (! isset($link['blank'])) {
$this->links[$index]['blank'] = false;
}
$icon = $link['icon'] ?? '';
if (empty($icon)) {
$this->links[$index]['icon'] = 'bi bi-link-45deg';
}
$children = $link['children'] ?? [];
if ($children) {
foreach ($children as $key => $item) {
$childPrefixes = $item['prefixes'] ?? [];
$excludes = $item['excludes'] ?? [];
if ($prefixes && in_array($this->currentPrefix, $childPrefixes)
&& (! $excludes || ! in_array($this->currentRouteName, $excludes))) {
$this->links[$index]['children'][$key]['active'] = true;
} else {
$this->links[$index]['children'][$key]['active'] = false;
}
$url = $item['url'] ?? '';
if (empty($url)) {
$this->links[$index]['children'][$key]['url'] = admin_route($item['route']);
}
$title = $item['title'] ?? '';
if (empty($title)) {
$permissionRoute = str_replace('.', '_', $item['route']);
$this->links[$index]['children'][$key]['title'] = trans("admin/common.{$permissionRoute}");
}
if (! isset($item['blank'])) {
$this->links[$index]['children'][$key]['blank'] = false;
}
}
}
}
}
/**
@ -117,7 +215,7 @@ class Sidebar extends Component
*/
private function getHomeSubPrefix()
{
$prefix = ['home.'];
$prefix = ['home'];
return hook_filter('admin.sidebar.home.prefix', $prefix);
}
@ -127,7 +225,7 @@ class Sidebar extends Component
*/
private function getProductSubPrefix()
{
$prefix = ['products.', 'categories.', 'brands.', 'attribute_groups.', 'attributes.'];
$prefix = ['products', 'multi_filter', 'categories', 'brands', 'attribute_groups', 'attributes'];
return hook_filter('admin.sidebar.product.prefix', $prefix);
}
@ -137,7 +235,7 @@ class Sidebar extends Component
*/
private function getCustomerSubPrefix()
{
$prefix = ['customers.', 'customer_groups.'];
$prefix = ['customers', 'customer_groups'];
return hook_filter('admin.sidebar.customer.prefix', $prefix);
}
@ -147,7 +245,7 @@ class Sidebar extends Component
*/
private function getOrderSubPrefix()
{
$prefix = ['orders.', 'rmas.', 'rma_reasons.'];
$prefix = ['orders', 'rmas', 'rma_reasons'];
return hook_filter('admin.sidebar.order.prefix', $prefix);
}
@ -157,7 +255,7 @@ class Sidebar extends Component
*/
private function getPageSubPrefix()
{
$prefix = ['pages.', 'page_categories.'];
$prefix = ['pages', 'page_categories'];
return hook_filter('admin.sidebar.page.prefix', $prefix);
}
@ -172,12 +270,35 @@ class Sidebar extends Component
return hook_filter('admin.sidebar.page.prefix', $prefix);
}
/**
* 获取后台设计子页面路由前缀列表
*/
private function getDesignSubPrefix()
{
$prefix = ['theme', 'design_menu'];
return hook_filter('admin.sidebar.design.prefix', $prefix);
}
/**
* 获取后台设计子页面路由前缀列表
*/
private function getPluginSubPrefix()
{
$prefix = ['plugins', 'marketing'];
return hook_filter('admin.sidebar.plugin.prefix', $prefix);
}
/**
* 获取后台系统设置子页面路由前缀列表
*/
private function getSettingSubPrefix()
{
$prefix = ['settings.', 'admin_users.', 'admin_roles.', 'plugins.', 'theme.', 'marketing.', 'tax_classes', 'tax_rates', 'regions', 'currencies', 'languages', 'design_menu', 'countries', 'zones'];
$prefix = [
'settings', 'admin_users', 'admin_roles', 'tax_classes', 'tax_rates',
'regions', 'currencies', 'languages', 'countries', 'zones', 'account',
];
return hook_filter('admin.sidebar.setting.prefix', $prefix);
}
@ -187,14 +308,7 @@ class Sidebar extends Component
*/
public function getHomeSubRoutes()
{
$routes = [
['route' => 'design.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => 1, 'hide_mobile' => 1],
['route' => 'design_footer.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => 1, 'hide_mobile' => 1],
['route' => 'design_menu.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'languages.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'currencies.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'plugins.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
];
$routes = [];
return hook_filter('admin.sidebar.home_routes', $routes);
}
@ -205,12 +319,13 @@ class Sidebar extends Component
public function getProductSubRoutes()
{
$routes = [
['route' => 'categories.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'products.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'brands.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'attribute_groups.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'attributes.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'products.trashed', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'products.index', 'prefixes' => ['products'], 'excludes' => ['products.trashed']],
['route' => 'categories.index', 'prefixes' => ['categories']],
['route' => 'brands.index', 'prefixes' => ['brands']],
['route' => 'attribute_groups.index', 'prefixes' => ['attribute_groups']],
['route' => 'attributes.index', 'prefixes' => ['attributes']],
['route' => 'multi_filter.index', 'prefixes' => ['multi_filter']],
['route' => 'products.trashed', 'prefixes' => ['products'], 'excludes' => ['products.index', 'products.edit']],
];
return hook_filter('admin.sidebar.product_routes', $routes);
@ -222,9 +337,9 @@ class Sidebar extends Component
public function getCustomerSubRoutes()
{
$routes = [
['route' => 'customers.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'customer_groups.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'customers.trashed', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'customers.index', 'prefixes' => ['customers'], 'excludes' => ['customers.trashed']],
['route' => 'customer_groups.index', 'prefixes' => ['customer_groups']],
['route' => 'customers.trashed', 'prefixes' => ['customers'], 'excludes' => ['customers.index', 'customers.edit']],
];
return hook_filter('admin.sidebar.customer_routes', $routes);
@ -236,9 +351,9 @@ class Sidebar extends Component
public function getOrderSubRoutes()
{
$routes = [
['route' => 'orders.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'rmas.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'rma_reasons.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'orders.index', 'prefixes' => ['orders']],
['route' => 'rmas.index', 'prefixes' => ['rmas']],
['route' => 'rma_reasons.index', 'prefixes' => ['rma_reasons']],
];
return hook_filter('admin.sidebar.order_routes', $routes);
@ -251,8 +366,8 @@ class Sidebar extends Component
public function getPageSubRoutes()
{
$routes = [
['route' => 'page_categories.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'pages.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'pages.index', 'prefixes' => ['pages']],
['route' => 'page_categories.index', 'prefixes' => ['page_categories']],
];
return hook_filter('admin.sidebar.pages_routes', $routes);
@ -271,6 +386,46 @@ class Sidebar extends Component
return hook_filter('admin.sidebar.pages_routes', $routes);
}
/**
* 获取设计子页面路由
* @return mixed
*/
public function getDesignSubRoutes()
{
$routes = [
['route' => 'theme.index', 'prefixes' => ['theme'], 'hide_mobile' => true],
['route' => 'design_menu.index', 'prefixes' => ['design_menu'], 'hide_mobile' => 1],
['route' => 'design.index', 'prefixes' => ['design'], 'blank' => true, 'hide_mobile' => true],
['route' => 'design_footer.index', 'prefixes' => ['design_footer'], 'blank' => true, 'hide_mobile' => true],
];
return hook_filter('admin.sidebar.design_routes', $routes);
}
/**
* 获取插件子页面路由
* @return mixed
*/
public function getPluginSubRoutes()
{
$types = collect(Plugin::TYPES);
$types = $types->map(function ($item) {
return 'plugins.' . $item;
});
$routes[] = ['route' => 'plugins.index', 'prefixes' => ['plugins'], 'excludes' => $types->toArray()];
$originTypes = $types->push('plugins.index', 'plugins.edit')->push();
foreach (Plugin::TYPES as $type) {
$types = $originTypes->reject("plugins.{$type}");
$routes[] = ['route' => "plugins.{$type}", 'prefixes' => ['plugins'], 'title' => trans("admin/plugin.{$type}"), 'excludes' => $types->toArray()];
}
$routes[] = ['route' => 'marketing.index', 'prefixes' => ['marketing']];
return hook_filter('admin.sidebar.plugins_routes', $routes);
}
/**
* 获取系统设置子页面路由
* @return mixed
@ -278,36 +433,18 @@ class Sidebar extends Component
public function getSettingSubRoutes()
{
$routes = [
['route' => 'settings.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'admin_users.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'plugins.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'theme.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'marketing.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'regions.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'tax_rates.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'tax_classes.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'currencies.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'languages.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'countries.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'zones.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'design.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => true, 'hide_mobile' => 1],
['route' => 'design_footer.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => true, 'hide_mobile' => 1],
['route' => 'design_menu.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'settings.index', 'prefixes' => ['settings']],
['route' => 'account.index', 'prefixes' => ['account']],
['route' => 'admin_users.index', 'prefixes' => ['admin_users', 'admin_roles']],
['route' => 'regions.index', 'prefixes' => ['regions']],
['route' => 'tax_rates.index', 'prefixes' => ['tax_rates']],
['route' => 'tax_classes.index', 'prefixes' => ['tax_classes']],
['route' => 'currencies.index', 'prefixes' => ['currencies']],
['route' => 'languages.index', 'prefixes' => ['languages']],
['route' => 'countries.index', 'prefixes' => ['countries']],
['route' => 'zones.index', 'prefixes' => ['zones']],
];
return hook_filter('admin.sidebar.setting_routes', $routes);
}
/**
* 是否为当前访问路由
*
* @param $routeName
* @return bool
*/
private function equalRoute($routeName): bool
{
$currentRouteName = str_replace($this->adminName . '.', '', $this->routeNameWithPrefix);
return $routeName == $currentRouteName;
}
}

View File

@ -11,8 +11,8 @@
return [
'api_url' => env('BEIKE_API_URL', 'https://beikeshop.com'),
'version' => '1.3.4',
'build' => '20230318',
'version' => '1.3.8',
'build' => '20230719',
'admin_name' => env('ADMIN_NAME'),
'force_url_https' => env('APP_FORCE_HTTPS', false),

View File

@ -0,0 +1,16 @@
<?php
/**
* CartException.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-06-02 17:08:18
* @modified 2023-06-02 17:08:18
*/
namespace Beike\Exceptions;
class CartException extends \Exception
{
}

View File

@ -0,0 +1,16 @@
<?php
/**
* InvalidException.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-05-25 14:48:12
* @modified 2023-05-25 14:48:12
*/
namespace Beike\Exceptions;
class InvalidException extends \Exception
{
}

View File

@ -11,6 +11,7 @@ use Beike\Repositories\CurrencyRepo;
use Beike\Repositories\LanguageRepo;
use Beike\Services\CurrencyService;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session;
@ -209,7 +210,12 @@ function equal_route($routeName): bool
*/
function current_user(): ?AdminUser
{
return auth()->guard(AdminUser::AUTH_GUARD)->user();
$user = auth()->guard(AdminUser::AUTH_GUARD)->user();
if (empty($user)) {
$user = registry('admin_user');
}
return $user;
}
/**
@ -515,25 +521,28 @@ function quantity_format($quantity)
/**
* 返回json序列化结果
*/
function json_success($message, $data = []): array
function json_success($message, $data = [])
{
return [
'status' => 'success',
'message' => $message,
'data' => $data,
];
}
/**
* 返回json序列化结果
*/
function json_fail($message, $data = []): array
function json_fail($message, $data = [], $status = 422): JsonResponse
{
return [
$data = [
'status' => 'fail',
'message' => $message,
'data' => $data,
];
return response()->json($data, $status);
}
if (! function_exists('sub_string')) {
@ -768,3 +777,42 @@ function list_sort_by($list, $field, $sortby='asc') {
return false;
}
/**
* @param $key
* @param $value
* @param bool $force
*/
function register($key, $value, bool $force = false)
{
\Beike\Libraries\Registry::set($key, $value, $force);
}
/**
* @param $key
* @param null $default
* @return mixed
*/
function registry($key, $default = null): mixed
{
return \Beike\Libraries\Registry::get($key, $default);
}
/**
* Check domain ha license.
* 删除版权信息, 请先购买授权 https://beikeshop.com/vip/subscription
*
* @return bool
*/
function check_license(): bool
{
$configLicenceCode = system_setting('base.license_code');
$appDomain = config('app.url');
$domain = new \Utopia\Domains\Domain($appDomain);
$registerDomain = $domain->getRegisterable();
if (empty($registerDomain)) {
return true;
}
return $configLicenceCode == md5(mb_substr(md5($registerDomain), 2, 8));
}

View File

@ -49,10 +49,10 @@ class Hook
}
/**
* @param string $hook
* @param array $params
* @param string $hook
* @param array $params
* @param callable|null $callback
* @param string $htmlContent
* @param string $htmlContent
* @return string|void|null
*/
public function getHook(string $hook, array $params = [], callable $callback = null, string $htmlContent = '')
@ -64,12 +64,11 @@ class Hook
return $this->get($hook, $params, $callback, $htmlContent);
}
/**
* @param string $hook
* @param array $params
* @param string $hook
* @param array $params
* @param callable|null $callback
* @param string $htmlContent
* @param string $htmlContent
* @return string|void|null
*/
public function getWrapper(string $hook, array $params = [], callable $callback = null, string $htmlContent = '')
@ -114,11 +113,15 @@ class Hook
$priority = null;
}
if (isset($this->watch[$hook][$priority])) {
$priority++;
}
$this->watch[$hook][$priority] = [
'function' => $function,
'caller' => [
//'file' => $caller['file'],
//'line' => $caller['line'],
'file' => $caller['file'],
'line' => $caller['line'],
'class' => Arr::get($caller, 'class'),
],
];
@ -192,7 +195,7 @@ class Hook
* Return a new callback object.
*
* @param callable $callback function
* @param array $params parameters
* @param array $params parameters
*
* @return Callback
*/

View File

@ -5,6 +5,7 @@ namespace Beike\Hook;
use Beike\Hook\Console\HookListeners;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
class HookServiceProvider extends ServiceProvider
{
@ -19,7 +20,6 @@ class HookServiceProvider extends ServiceProvider
});
}
public function boot()
{
$this->bootHookDirectives();
@ -33,10 +33,11 @@ class HookServiceProvider extends ServiceProvider
protected function bootHookDirectives()
{
Blade::directive('hook', function ($parameter) {
$parameter = trim($parameter, '()');
$parameter = trim($parameter, '()');
$parameters = explode(',', $parameter);
$name = trim($parameters[0], "'");
$definedVars = $this->parseParameters($parameters);
return ' <?php
$__definedVars = (get_defined_vars()["__data"]);
@ -44,6 +45,7 @@ class HookServiceProvider extends ServiceProvider
{
$__definedVars = [];
}
'. $definedVars .'
$output = \Hook::getHook("' . $name . '",["data"=>$__definedVars],function($data) { return null; });
if ($output)
echo $output;
@ -51,7 +53,6 @@ class HookServiceProvider extends ServiceProvider
});
}
/**
* 添加 blade wrapper hook 标签
*
@ -60,9 +61,9 @@ class HookServiceProvider extends ServiceProvider
protected function bootWrapperHookDirectives()
{
Blade::directive('hookwrapper', function ($parameter) {
$parameter = trim($parameter, '()');
$parameter = trim($parameter, '()');
$parameters = explode(',', $parameter);
$name = trim($parameters[0], "'");
$name = trim($parameters[0], "'");
return ' <?php
$__hook_name="' . $name . '";
@ -86,4 +87,23 @@ class HookServiceProvider extends ServiceProvider
?>';
});
}
/**
* Parse parameters from Blade
*
* @param $parameters
* @return string
*/
protected function parseParameters($parameters):string
{
$definedVars = '';
foreach ($parameters as $paraItem) {
$paraItem = trim($paraItem);
if (Str::startsWith($paraItem,'$')) {
$paraKey = trim($paraItem, '$');
$definedVars .= '$__definedVars["'.$paraKey.'"] = $'.$paraKey.';';
}
}
return $definedVars;
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace Beike\Installer\Controllers;
use Illuminate\Routing\Controller;
class BaseController extends Controller
{
protected function checkInstalled()
{
if (installed()) {
exit('Already installed');
}
}
}

View File

@ -5,11 +5,10 @@ namespace Beike\Installer\Controllers;
use Beike\Admin\Repositories\AdminUserRepo;
use Beike\Installer\Helpers\DatabaseManager;
use Illuminate\Http\RedirectResponse;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class DatabaseController extends Controller
class DatabaseController extends BaseController
{
/**
* @var DatabaseManager
@ -31,6 +30,7 @@ class DatabaseController extends Controller
*/
public function index()
{
$this->checkInstalled();
DB::statement('SET FOREIGN_KEY_CHECKS = 0');
$rows = DB::select('SHOW TABLES');
$database = config('database.connections.mysql.database');

View File

@ -3,14 +3,14 @@
namespace Beike\Installer\Controllers;
use Beike\Installer\Helpers\EnvironmentManager;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
class EnvironmentController extends Controller
class EnvironmentController extends BaseController
{
/**
* @var EnvironmentManager
@ -32,6 +32,7 @@ class EnvironmentController extends Controller
*/
public function index()
{
$this->checkInstalled();
$steps = 4;
return view('installer::environment-wizard', compact('steps'));
@ -46,6 +47,7 @@ class EnvironmentController extends Controller
*/
public function saveWizard(Request $request, Redirector $redirect): RedirectResponse
{
$this->checkInstalled();
$rules = config('installer.environment.form.rules');
$messages = [
'environment_custom.required_if' => trans('installer::installer_messages.environment.name_required'),
@ -74,10 +76,11 @@ class EnvironmentController extends Controller
* 数据库信息检测
*
* @param Request $request
* @return array
* @return JsonResponse|array
*/
public function validateDatabase(Request $request): array
public function validateDatabase(Request $request): JsonResponse|array
{
$this->checkInstalled();
$rules = config('installer.environment.form.rules');
$messages = [
'environment_custom.required_if' => trans('installer::installer_messages.environment.name_required'),
@ -108,6 +111,7 @@ class EnvironmentController extends Controller
*/
private function checkDatabaseConnection(Request $request): bool|array
{
$this->checkInstalled();
$connection = $request->input('database_connection');
$settings = config("database.connections.$connection");

View File

@ -5,9 +5,8 @@ namespace Beike\Installer\Controllers;
use Beike\Installer\Helpers\EnvironmentManager;
use Beike\Installer\Helpers\FinalInstallManager;
use Beike\Installer\Helpers\InstalledFileManager;
use Illuminate\Routing\Controller;
class FinalController extends Controller
class FinalController extends BaseController
{
/**
* Update installed file and display finished view.
@ -19,6 +18,8 @@ class FinalController extends Controller
*/
public function index(InstalledFileManager $fileManager, FinalInstallManager $finalInstall, EnvironmentManager $environment)
{
$this->checkInstalled();
$finalMessages = $finalInstall->runFinal();
$finalStatusMessage = $fileManager->update();
$finalEnvFile = $environment->getEnvContent();

View File

@ -3,9 +3,8 @@
namespace Beike\Installer\Controllers;
use Beike\Installer\Helpers\PermissionsChecker;
use Illuminate\Routing\Controller;
class PermissionsController extends Controller
class PermissionsController extends BaseController
{
/**
* @var PermissionsChecker
@ -27,6 +26,7 @@ class PermissionsController extends Controller
*/
public function index()
{
$this->checkInstalled();
$permissions = $this->permissions->check(
config('installer.permissions')
);

View File

@ -3,9 +3,8 @@
namespace Beike\Installer\Controllers;
use Beike\Installer\Helpers\RequirementsChecker;
use Illuminate\Routing\Controller;
class RequirementsController extends Controller
class RequirementsController extends BaseController
{
/**
* @var RequirementsChecker
@ -27,6 +26,7 @@ class RequirementsController extends Controller
*/
public function index()
{
$this->checkInstalled();
$phpSupportInfo = $this->requirements->checkPHPversion(
config('installer.core.minPhpVersion')
);

View File

@ -11,10 +11,9 @@
namespace Beike\Installer\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Redirect;
class WelcomeController extends Controller
class WelcomeController extends BaseController
{
private $languages = [
'zh_cn' => '简体中文',
@ -23,10 +22,7 @@ class WelcomeController extends Controller
public function index()
{
if (installed()) {
exit('Already installed');
}
$this->checkInstalled();
$data['languages'] = $this->languages;
$data['locale'] = $_COOKIE['locale'] ?? 'zh_cn';
$data['steps'] = 1;

View File

@ -230,29 +230,27 @@
$('.database-loading').addClass('d-none');
},
success: function(json) {
if (json.status == 'fail') {
var data = Object.keys(json.data);
$('.database-link-wrap input').addClass('is-valid')
$('.title-status .text-success').removeClass('d-none')
$('.admin-data-wrap').removeClass('d-none')
},
error: function(json) {
json = json.responseJSON;
var data = Object.keys(json.data);
data.forEach((e)=> {
$('.database-link-wrap input[name="' + e + '"]').addClass('is-invalid').next('.invalid-feedback').text(json.data[e])
})
data.forEach((e)=> {
$('.database-link-wrap input[name="' + e + '"]').addClass('is-invalid').next('.invalid-feedback').text(json.data[e])
})
if (json.data.database_version) {
$('.title-status .text-danger').removeClass('d-none').find('span').text(json.data.database_version);
}
if (json.data.database_other) {
$('.title-status .text-danger').removeClass('d-none').find('span').text(json.data.database_other);
}
$('.admin-data-wrap').addClass('d-none')
if (json.data.database_version) {
$('.title-status .text-danger').removeClass('d-none').find('span').text(json.data.database_version);
}
if (json.status == 'success') {
$('.database-link-wrap input').addClass('is-valid')
$('.title-status .text-success').removeClass('d-none')
$('.admin-data-wrap').removeClass('d-none')
if (json.data.database_other) {
$('.title-status .text-danger').removeClass('d-none').find('span').text(json.data.database_other);
}
$('.admin-data-wrap').addClass('d-none')
}
});
}

View File

@ -15,8 +15,7 @@
<script src="{{ asset('vendor/jquery/jquery-3.6.0.min.js') }}"></script>
<script src="{{ asset('vendor/layer/3.5.1/layer.js') }}"></script>
<link rel="shortcut icon" href="{{ asset('/image/favicon.png') }}">
{{-- <script src="{{ asset('vendor/bootstrap/5.1.3/js/bootstrap.min.js') }}"></script> --}}
<script src="{{ asset('vendor/bootstrap/5.1.3/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('/install/css/app.css') }}">
@yield('style')
</head>

View File

@ -11,6 +11,8 @@
$primary: #fd560f;
body {
background-color: #f3f6f8;
.install-box {
background-color: #f3f6f8;
display: flex;
@ -45,6 +47,10 @@ body {
}
}
}
.table {
--bs-table-bg: transparent;
}
}
@import "steps";

View File

@ -34,6 +34,9 @@ return [
'PDO',
'Tokenizer',
'XML',
'ZIP',
'GD',
'PDO_MYSQL',
],
'apache' => [
'mod_rewrite',

View File

@ -0,0 +1,84 @@
<?php
/**
* Registry.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 16:29:54
* @modified 2023-04-20 16:29:54
*/
namespace Beike\Libraries;
class Registry
{
private array $data = [];
private static $registry;
public static function getSingleton(): self
{
if (self::$registry instanceof self) {
return self::$registry;
}
return self::$registry = new self();
}
/**
* @param $key
* @param null $default
* @return mixed
*/
public static function get($key, $default = null): mixed
{
return self::getSingleton()->getValue($key, $default);
}
/**
* @param $key
* @param $value
* @param bool $force
*/
public static function set($key, $value, bool $force = false)
{
if (self::getSingleton()->has($key) && ! $force) {
return;
}
self::getSingleton()->setValue($key, $value);
}
public function destroy()
{
self::$registry = null;
}
/**
* @param $key
* @param null $default
* @return mixed
*/
public function getValue($key, $default = null): mixed
{
return $this->data[$key] ?? $default;
}
/**
* @param $key
* @param $value
*/
public function setValue($key, $value)
{
$this->data[$key] = $value;
}
/**
* @param $key
* @return bool
*/
public function has($key): bool
{
return isset($this->data[$key]);
}
}

View File

@ -65,7 +65,7 @@ class Url
return $value->url ?? '';
} elseif ($type == 'page') {
if (! $value instanceof \Beike\Models\Page) {
$value = \Beike\Models\Page::query()->find($value);
$value = \Beike\Models\Page::query()->where('active', 1)->find($value);
}
return $value->url ?? '';

View File

@ -0,0 +1,45 @@
<?php
/**
* Weight.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author TL <mengwb@guangda.work>
* @created 2023-03-21 16:29:54
* @modified 2023-03-21 16:29:54
*/
namespace Beike\Libraries;
class Weight
{
public const WEIGHT_CLASS = [
'kg' => 0.001,
'g' => 1,
'oz' => 0.035,
'lb' => 0.0022046,
];
public const DEFAULT_CLASS = 'g';
public function __construct()
{
}
public static function getWeightUnits(): array
{
return array_keys(self::WEIGHT_CLASS);
}
public static function convert($weight, $from, $to = '')
{
if (! $to) {
$to = self::DEFAULT_CLASS;
}
if (empty($weight)) {
return 0;
}
return $weight * self::WEIGHT_CLASS[$to] / self::WEIGHT_CLASS[$from];
}
}

View File

@ -4,11 +4,13 @@ namespace Beike\Models;
use Beike\Notifications\AdminForgottenNotification;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Foundation\Auth\User as AuthUser;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;
use Tymon\JWTAuth\Contracts\JWTSubject;
class AdminUser extends AuthUser
class AdminUser extends AuthUser implements JWTSubject
{
use HasFactory, HasRoles;
use Notifiable;
@ -17,6 +19,11 @@ class AdminUser extends AuthUser
protected $fillable = ['name', 'email', 'locale', 'password', 'active'];
public function tokens(): HasMany
{
return $this->hasMany(AdminUserToken::class);
}
public function notifyVerifyCodeForForgotten($code)
{
$useQueue = system_setting('base.use_queue', true);
@ -26,4 +33,24 @@ class AdminUser extends AuthUser
$this->notifyNow(new AdminForgottenNotification($this, $code));
}
}
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
}

View File

@ -0,0 +1,24 @@
<?php
/**
* AdminUserToken.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 10:18:56
* @modified 2023-04-20 10:18:56
*/
namespace Beike\Models;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class AdminUserToken extends Base
{
protected $fillable = ['admin_user_id', 'token'];
public function adminUser(): BelongsTo
{
return $this->belongsTo(AdminUser::class);
}
}

View File

@ -11,8 +11,9 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Tymon\JWTAuth\Contracts\JWTSubject;
class Customer extends Authenticatable
class Customer extends Authenticatable implements JWTSubject
{
use HasFactory;
use SoftDeletes;
@ -66,4 +67,24 @@ class Customer extends Authenticatable
$this->notifyNow(new ForgottenNotification($this, $code));
}
}
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
}

View File

@ -59,6 +59,11 @@ class Order extends Base
return $this->hasMany(OrderShipment::class);
}
public function orderPayments(): HasMany
{
return $this->hasMany(OrderPayment::class);
}
public function subTotal()
{
$totals = $this->orderTotals;
@ -68,7 +73,9 @@ class Order extends Base
public function getStatusFormatAttribute()
{
return trans('order.' . $this->status);
$statusMap = array_column(StateMachineService::getAllStatuses(), 'name', 'status');
return $statusMap[$this->status];
}
public function getTotalFormatAttribute()

View File

@ -11,6 +11,8 @@
namespace Beike\Models;
use Beike\Services\StateMachineService;
class OrderHistory extends Base
{
protected $fillable = [
@ -21,6 +23,8 @@ class OrderHistory extends Base
public function getStatusFormatAttribute()
{
return trans("order.{$this->status}");
$statusMap = array_column(StateMachineService::getAllStatuses(), 'name', 'status');
return $statusMap[$this->status];
}
}

View File

@ -0,0 +1,21 @@
<?php
/**
* OrderPayment.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-05-25 10:02:52
* @modified 2023-05-25 10:02:52
*/
namespace Beike\Models;
class OrderPayment extends Base
{
protected $table = 'order_payments';
protected $fillable = [
'order_id', 'transaction_id', 'request', 'response', 'callback', 'receipt',
];
}

View File

@ -11,12 +11,11 @@
namespace Beike\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
class PageCategory extends Model
class PageCategory extends Base
{
protected $table = 'page_categories';

View File

@ -11,9 +11,7 @@
namespace Beike\Models;
use Illuminate\Database\Eloquent\Model;
class PageCategoryDescription extends Model
class PageCategoryDescription extends Base
{
protected $table = 'page_category_descriptions';

View File

@ -11,10 +11,9 @@
namespace Beike\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class PageProduct extends Model
class PageProduct extends Base
{
protected $table = 'page_products';

View File

@ -11,7 +11,7 @@ class Product extends Base
use HasFactory;
use SoftDeletes;
protected $fillable = ['images', 'video', 'position', 'brand_id', 'tax_class_id', 'active', 'variables', 'price_setting'];
protected $fillable = ['images', 'video', 'position', 'brand_id', 'tax_class_id', 'weight', 'weight_class', 'active', 'variables', 'price_setting'];
protected $casts = [
'active' => 'boolean',

View File

@ -36,6 +36,11 @@ class ProductSku extends Base
$product = $this->product;
$localeCode = locale();
$variantLabel = '';
if(empty($product->variables)) {
return '';
}
foreach ($product->variables as $index => $variable) {
$valueIndex = $this->variants[$index];
$variantName = $variable['name'][$localeCode] ?? '';

View File

@ -21,13 +21,13 @@ use Illuminate\Support\Str;
class Plugin implements Arrayable, \ArrayAccess
{
public const TYPES = [
'shipping', // 配送方式
'payment', // 支付方式
'shipping', // 配送方式
'theme', // 主题模板
'feature', // 功能模块
'total', // 订单金额
'social', // 社交网络
'feature', // 功能模块
'language', // 语言翻译
'theme', // 主题模板
];
protected $type;
@ -171,6 +171,13 @@ class Plugin implements Arrayable, \ArrayAccess
$item['label'] = trans($languageKey);
}
$descriptionKey = $item['description_key'] ?? '';
$description = $item['description'] ?? '';
if (empty($description) && $descriptionKey) {
$languageKey = "{$this->dirName}::{$descriptionKey}";
$item['description'] = trans($languageKey);
}
return $item;
}

View File

@ -0,0 +1,82 @@
<?php
/**
* AdminUserTokenRepo.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-04-20 10:21:25
* @modified 2023-04-20 10:21:25
*/
namespace Beike\Repositories;
use Beike\Models\AdminUser;
use Beike\Models\AdminUserToken;
class AdminUserTokenRepo
{
/**
* @param $adminUser
* @return mixed
*/
public static function getTokenByAdminUser($adminUser)
{
$adminUserId = self::getAdminUserId($adminUser);
if (empty($adminUserId)) {
return null;
}
return AdminUserToken::query()->where('admin_user_id', $adminUserId)->get();
}
/**
* @param $token
* @return mixed
*/
public static function getAdminUserTokenByToken($token)
{
return AdminUserToken::query()->where('token', $token)->first();
}
/**
* @param $adminUser
* @param $tokens
* @return void
*/
public static function updateTokensByUser($adminUser, $tokens)
{
$adminUserId = self::getAdminUserId($adminUser);
if (empty($adminUserId)) {
return;
}
AdminUserToken::query()->where('admin_user_id', $adminUserId)->delete();
if (empty($tokens)) {
return;
}
foreach ($tokens as $token) {
AdminUserToken::query()->create([
'admin_user_id' => $adminUserId,
'token' => $token,
]);
}
}
/**
* @param $adminUser
* @return int|mixed
*/
private static function getAdminUserId($adminUser)
{
$adminUserId = 0;
if ($adminUser instanceof AdminUser) {
$adminUserId = $adminUser->id;
} elseif (is_int($adminUser)) {
$adminUserId = $adminUser;
}
return $adminUserId;
}
}

View File

@ -55,14 +55,18 @@ class CategoryRepo
}
}
public static function flatten(string $locale, $separator = ' > '): array
public static function flatten(string $locale, $includeInactive = true, $separator = ' > '): array
{
$sql = "SELECT cp.category_id AS id, TRIM(LOWER(GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR '{$separator}'))) AS name, c1.parent_id, c1.position";
$sql .= ' FROM category_paths cp';
$sql .= ' LEFT JOIN categories c1 ON (cp.category_id = c1.id)';
$sql .= ' LEFT JOIN categories c2 ON (cp.path_id = c2.id)';
$sql .= ' LEFT JOIN category_descriptions cd1 ON (cp.path_id = cd1.category_id)';
$sql .= " WHERE cd1.locale = '" . $locale . "' GROUP BY cp.category_id ORDER BY name ASC";
$sql .= " WHERE cd1.locale = '" . $locale . "' ";
if (! $includeInactive) {
$sql .= ' AND c1.active = 1 ';
}
$sql .= ' GROUP BY cp.category_id ORDER BY c1.position ASC';
return DB::select($sql);
}

View File

@ -98,6 +98,6 @@ class LanguageRepo
*/
public static function enabled()
{
return Language::query()->where('status', true)->get();
return Language::query()->where('status', true)->orderBy('sort_order', 'asc')->get();
}
}

View File

@ -0,0 +1,61 @@
<?php
/**
* OrderPaymentRepo.php
*
* @copyright 2023 beikeshop.com - All Rights Reserved
* @link https://beikeshop.com
* @author Edward Yang <yangjin@guangda.work>
* @created 2023-05-25 10:02:39
* @modified 2023-05-25 10:02:39
*/
namespace Beike\Repositories;
use Beike\Models\OrderPayment;
class OrderPaymentRepo
{
/**
* @param $orderId
* @param $data
* @return mixed
* @throws \Throwable
*/
public static function createOrUpdatePayment($orderId, $data): mixed
{
$orderId = (int) $orderId;
if (empty($orderId) || empty($data)) {
return null;
}
$orderPayment = OrderPayment::query()->where('order_id', $orderId)->first();
if (empty($orderPayment)) {
$orderPayment = new OrderPayment();
}
$paymentData = [
'order_id' => $orderId,
];
if (isset($data['transaction_id'])) {
$paymentData['transaction_id'] = $data['transaction_id'];
}
if (isset($data['request'])) {
$paymentData['request'] = json_encode($data['request'] ?? []);
}
if (isset($data['response'])) {
$paymentData['response'] = json_encode($data['response'] ?? []);
}
if (isset($data['callback'])) {
$paymentData['callback'] = json_encode($data['callback'] ?? []);
}
if (isset($data['receipt'])) {
$paymentData['receipt'] = $data['receipt'];
}
$orderPayment->fill($paymentData);
$orderPayment->saveOrFail();
return $orderPayment;
}
}

View File

@ -31,7 +31,7 @@ class OrderRepo
*/
public static function filterAll(array $filters = [])
{
$builder = self::getListBuilder($filters)->orderByDesc('created_at');
$builder = static::getListBuilder($filters)->orderByDesc('created_at');
return $builder->get();
}
@ -44,7 +44,7 @@ class OrderRepo
*/
public static function getListByCustomer($customer): LengthAwarePaginator
{
$builder = self::getListBuilder(['customer' => $customer])->orderByDesc('created_at');
$builder = static::getListBuilder(['customer' => $customer])->orderByDesc('created_at');
return $builder->paginate(perPage());
}
@ -56,7 +56,7 @@ class OrderRepo
*/
public static function getLatestOrders($customer, $limit)
{
return self::getListBuilder(['customer' => $customer])
return static::getListBuilder(['customer' => $customer])
->orderByDesc('created_at')
->take($limit)
->get();
@ -68,7 +68,7 @@ class OrderRepo
*/
public static function filterOrders(array $filters = []): LengthAwarePaginator
{
$builder = self::getListBuilder($filters)->orderByDesc('created_at');
$builder = static::getListBuilder($filters)->orderByDesc('created_at');
return $builder->paginate(perPage());
}
@ -79,7 +79,7 @@ class OrderRepo
*/
public static function getListBuilder(array $filters = []): Builder
{
$builder = Order::query()->with(['orderProducts']);
$builder = Order::query()->with(['orderProducts'])->where('status', '<>', StateMachineService::CREATED);
$number = $filters['number'] ?? 0;
if ($number) {
@ -199,14 +199,12 @@ class OrderRepo
$shippingAddress = Address::query()->findOrFail($shippingAddressId);
$paymentAddress = Address::query()->findOrFail($paymentAddressId);
$email = $customer->email;
$email = $customer->email;
} else {
$shippingAddress = new Address($current['guest_shipping_address'] ?? []);
$paymentAddress = new Address($current['guest_payment_address'] ?? []);
$email = $current['guest_shipping_address']['email'];
$email = $current['guest_shipping_address']['email'];
}
$shippingAddress->country = $shippingAddress->country->name ?? '';
$shippingAddress->country_id = $shippingAddress->country->id ?? 0;
$paymentAddress->country = $paymentAddress->country->name ?? '';
@ -268,6 +266,8 @@ class OrderRepo
OrderProductRepo::createOrderProducts($order, $carts['carts']);
OrderTotalRepo::createTotals($order, $totals);
hook_filter('repository.order.create.after', ['order' => $order, 'data' => $data]);
return $order;
}

View File

@ -31,12 +31,16 @@ class PageCategoryRepo
/**
* @param array $filters
* @return LengthAwarePaginator
* @return mixed
*/
public static function getActiveList(array $filters = []): LengthAwarePaginator
public static function getActiveList(array $filters = []): mixed
{
$filters['is_active'] = 1;
$limit = (int) ($filters['limit'] ?? 0);
$builder = self::getBuilder($filters);
if ($limit > 0) {
return $builder->limit($limit)->get();
}
return $builder->paginate(perPage());
}
@ -150,11 +154,20 @@ class PageCategoryRepo
}
/**
* @param $page
* @param $pageCategory
* @return string
*/
public static function getName($page)
public static function getName($pageCategory): string
{
return $page->description->title ?? '';
if ($pageCategory instanceof PageCategory) {
return $pageCategory->description->title ?? '';
}
$pageCategoryId = (int) $pageCategory;
$pageCategory = PageCategory::query()->whereHas('description', function ($query) use ($pageCategoryId) {
$query->where('page_category_id', $pageCategoryId);
})->first();
return $pageCategory->description->title ?? '';
}
}

View File

@ -189,20 +189,6 @@ class PluginRepo
}
}
/**
* Get plugin by code
*
* @param $code
* @return mixed
*/
public static function getPlugin($code): mixed
{
$code = Str::camel($code);
$plugins = self::getPluginsByCode();
return $plugins->get($code);
}
/**
* 判断插件是否安装
*

View File

@ -55,7 +55,7 @@ class ProductRepo
*/
public static function getProductsByCategory($categoryId, $filterData)
{
$builder = self::getBuilder(array_merge(['category_id' => $categoryId, 'active' => 1], $filterData));
$builder = static::getBuilder(array_merge(['category_id' => $categoryId, 'active' => 1], $filterData));
return $builder->with('inCurrentWishlist')
->paginate($filterData['per_page'] ?? perPage())
@ -72,7 +72,7 @@ class ProductRepo
if (! $productIds) {
return ProductSimple::collection(new Collection());
}
$builder = self::getBuilder(['product_ids' => $productIds])->whereHas('masterSku');
$builder = static::getBuilder(['product_ids' => $productIds])->whereHas('masterSku');
$products = $builder->with('inCurrentWishlist')->get();
return ProductSimple::collection($products);
@ -81,10 +81,11 @@ class ProductRepo
/**
* 获取商品筛选对象
*
* @param array $data
* @param array $filters
* @return Builder
* @throws \Exception
*/
public static function getBuilder(array $data = []): Builder
public static function getBuilder(array $filters = []): Builder
{
$builder = Product::query()->with('description', 'skus', 'masterSku', 'attributes');
@ -99,26 +100,26 @@ class ProductRepo
});
$builder->select(['products.*', 'pd.name', 'pd.content', 'pd.meta_title', 'pd.meta_description', 'pd.meta_keywords', 'pd.name', 'product_skus.price']);
if (isset($data['category_id'])) {
$builder->whereHas('categories', function ($query) use ($data) {
if (is_array($data['category_id'])) {
$query->whereIn('category_id', $data['category_id']);
if (isset($filters['category_id'])) {
$builder->whereHas('categories', function ($query) use ($filters) {
if (is_array($filters['category_id'])) {
$query->whereIn('category_id', $filters['category_id']);
} else {
$query->where('category_id', $data['category_id']);
$query->where('category_id', $filters['category_id']);
}
});
}
$productIds = $data['product_ids'] ?? [];
$productIds = $filters['product_ids'] ?? [];
if ($productIds) {
$builder->whereIn('products.id', $productIds);
$productIds = implode(',', $productIds);
$builder->orderByRaw("FIELD(products.id, {$productIds})");
}
// attr 格式:attr=10:10/13|11:34/23|3:4
if (isset($data['attr']) && $data['attr']) {
$attributes = self::parseFilterParamsAttr($data['attr']);
// attr 格式:attr=10:10,13|11:34,23|3:4
if (isset($filters['attr']) && $filters['attr']) {
$attributes = self::parseFilterParamsAttr($filters['attr']);
foreach ($attributes as $attribute) {
$builder->whereHas('attributes', function ($query) use ($attribute) {
$query->where('attribute_id', $attribute['attr'])
@ -127,21 +128,21 @@ class ProductRepo
}
}
if (isset($data['sku']) || isset($data['model'])) {
$builder->whereHas('skus', function ($query) use ($data) {
if (isset($data['sku'])) {
$query->where('sku', 'like', "%{$data['sku']}%");
if (isset($filters['sku']) || isset($filters['model'])) {
$builder->whereHas('skus', function ($query) use ($filters) {
if (isset($filters['sku'])) {
$query->where('sku', 'like', "%{$filters['sku']}%");
}
if (isset($data['model'])) {
$query->where('model', 'like', "%{$data['model']}%");
if (isset($filters['model'])) {
$query->where('model', 'like', "%{$filters['model']}%");
}
});
}
if (isset($data['price']) && $data['price']) {
$builder->whereHas('skus', function ($query) use ($data) {
if (isset($filters['price']) && $filters['price']) {
$builder->whereHas('skus', function ($query) use ($filters) {
// price 格式:price=30-100
$prices = explode('-', $data['price']);
$prices = explode('-', $filters['price']);
if (! $prices[1]) {
$query->where('price', '>', $prices[0] ?: 0)->where('is_default', 1);
} else {
@ -150,34 +151,54 @@ class ProductRepo
});
}
if (isset($data['name'])) {
$builder->where('pd.name', 'like', "%{$data['name']}%");
if (isset($filters['name'])) {
$builder->where('pd.name', 'like', "%{$filters['name']}%");
}
$keyword = $data['keyword'] ?? '';
$keyword = trim($filters['keyword'] ?? '');
if ($keyword) {
$builder->where(function (Builder $query) use ($keyword) {
$query->whereHas('skus', function (Builder $query) use ($keyword) {
$query->where('sku', 'like', "%{$keyword}%")
->orWhere('model', 'like', "%{$keyword}%");
})->orWhere('pd.name', 'like', "%{$keyword}%");
$keywords = explode(' ', $keyword);
$keywords = array_unique($keywords);
$keywords = array_diff($keywords, ['']);
$builder->where(function (Builder $query) use ($keywords) {
$query->whereHas('skus', function (Builder $query) use ($keywords) {
$keywordFirst = array_shift($keywords);
$query->where('sku', 'like', "%{$keywordFirst}%")
->orWhere('model', 'like', "%{$keywordFirst}%");
foreach ($keywords as $keyword) {
$query->orWhere('sku', 'like', "%{$keyword}%")
->orWhere('model', 'like', "%{$keyword}%");
}
});
foreach ($keywords as $keyword) {
$query->orWhere('pd.name', 'like', "%{$keyword}%");
}
});
}
if (isset($data['active'])) {
$builder->where('active', (int) $data['active']);
if (isset($filters['created_start'])) {
$builder->where('products.created_at', '>', $filters['created_start']);
}
if (isset($filters['created_end'])) {
$builder->where('products.created_at', '>', $filters['created_end']);
}
if (isset($filters['active'])) {
$builder->where('active', (int) $filters['active']);
}
// 回收站
if (isset($data['trashed']) && $data['trashed']) {
if (isset($filters['trashed']) && $filters['trashed']) {
$builder->onlyTrashed();
}
$sort = $data['sort'] ?? 'products.position';
$order = $data['order'] ?? 'desc';
$sort = $filters['sort'] ?? 'products.position';
$order = $filters['order'] ?? 'desc';
$builder->orderBy($sort, $order);
return $builder;
return hook_filter('repo.product.builder', $builder);
}
public static function parseFilterParamsAttr($attr)
@ -191,7 +212,7 @@ class ProductRepo
return [
'attr' => $itemArr[0],
'value' => explode('/', $itemArr[1]),
'value' => explode(',', $itemArr[1]),
];
}, $attributes);
@ -200,13 +221,18 @@ class ProductRepo
public static function getFilterAttribute($data): array
{
$builder = self::getBuilder($data)
$builder = static::getBuilder(array_diff_key($data, ['attr' => '', 'price' => '']))
->select(['pa.attribute_id', 'pa.attribute_value_id'])
->with(['attributes.attribute.description', 'attributes.attribute_value.description'])
->leftJoin('product_attributes as pa', 'pa.product_id', 'products.id')
->whereNotNull('pa.attribute_id')
->distinct()
->reorder('pa.attribute_id');
if ($attributesIds = system_setting('base.multi_filter', [])['attribute'] ?? []) {
$builder->whereIn('pa.attribute_id', $attributesIds);
}
$productAttributes = $builder->get()->toArray();
$attributeMap = array_column(Attribute::query()->with('description')->orderBy('sort_order')->get()->toArray(), null, 'id');
@ -249,7 +275,7 @@ class ProductRepo
{
$selectPrice = $data['price'] ?? '-';
// unset($data['price']);
$builder = self::getBuilder(['category_id' => $data['category_id']])->leftJoin('product_skus as ps', 'products.id', 'ps.product_id')
$builder = static::getBuilder(['category_id' => $data['category_id']])->leftJoin('product_skus as ps', 'products.id', 'ps.product_id')
->where('ps.is_default', 1);
$min = $builder->min('ps.price');
$max = $builder->max('ps.price');
@ -268,7 +294,7 @@ class ProductRepo
public static function list($data = [])
{
return self::getBuilder($data)->paginate($data['per_page'] ?? 20);
return static::getBuilder($data)->paginate($data['per_page'] ?? 20);
}
public static function autocomplete($name)
@ -328,7 +354,7 @@ class ProductRepo
}
$items = [];
$products = self::getBuilder()->select('id')->get();
$products = static::getBuilder()->select('id')->get();
foreach ($products as $product) {
$items[$product->id] = [
'id' => $product->id,

View File

@ -95,9 +95,9 @@ class RmaRepo
/**
* @param $data
* @return LengthAwarePaginator
* @return Builder
*/
public static function list($data): LengthAwarePaginator
public static function getBuilder($data): Builder
{
$builder = Rma::query();
@ -124,7 +124,16 @@ class RmaRepo
}
$builder->orderBy('id', 'DESC');
return $builder->paginate(perPage())->withQueryString();
return $builder;
}
/**
* @param $data
* @return LengthAwarePaginator
*/
public static function list($data): LengthAwarePaginator
{
return self::getBuilder($data)->paginate(perPage())->withQueryString();
}
/**

View File

@ -13,6 +13,7 @@ namespace Beike\Repositories;
use Beike\Models\Setting;
use Carbon\Carbon;
use Illuminate\Support\Facades\Artisan;
class SettingRepo
{
@ -117,6 +118,7 @@ class SettingRepo
];
}
Setting::query()->insert($rows);
self::clearCache();
}
/**
@ -154,5 +156,17 @@ class SettingRepo
} else {
$setting->update($settingData);
}
self::clearCache();
}
/**
* Clear all cache.
*/
public static function clearCache()
{
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('view:clear');
Artisan::call('optimize:clear');
}
}

View File

@ -42,12 +42,17 @@ class CurrencyService
return $amount;
}
$symbol_left = $this->currencies[$currency]->symbol_left;
$symbol_right = $this->currencies[$currency]->symbol_right;
$decimal_place = $this->currencies[$currency]->decimal_place;
$currencyRow = $this->currencies[$currency] ?? null;
if (empty($currencyRow)) {
return $amount;
}
$symbol_left = $currencyRow->symbol_left;
$symbol_right = $currencyRow->symbol_right;
$decimal_place = $currencyRow->decimal_place;
if (! $value) {
$value = $this->currencies[$currency]->value;
$value = $currencyRow->value;
}
$amount = $value ? (float) $amount * $value : (float) $amount;
@ -70,7 +75,7 @@ class CurrencyService
$string .= number_format(abs($amount), (int) $decimal_place, __('currency.decimal_point'), __('currency.thousand_point'));
if ($symbol_right) {
$string .= $symbol_right;
$string .= ' ' . $symbol_right;
}
return $string;

View File

@ -64,7 +64,7 @@ class DesignService
return self::handleRichText($content);
}
return hook_filter('admin.service.design.module.content', $content);
return hook_filter('service.design.module.content', $content);
}
/**

View File

@ -20,7 +20,7 @@ class ImageService
private $imagePath;
public const PLACEHOLDER_IMAGE = 'catalog/placeholder.png';
private $placeholderImage = 'catalog/placeholder.png';
/**
* @param $image
@ -28,8 +28,9 @@ class ImageService
*/
public function __construct($image)
{
$this->image = $image ?: self::PLACEHOLDER_IMAGE;
$this->imagePath = public_path($this->image);
$this->placeholderImage = system_setting('base.placeholder');
$this->image = $image ?: $this->placeholderImage;
$this->imagePath = public_path($this->image);
}
/**
@ -40,7 +41,7 @@ class ImageService
public function setPluginDirName($dirName): static
{
$originImage = $this->image;
if ($this->image == self::PLACEHOLDER_IMAGE) {
if ($this->image == $this->placeholderImage) {
return $this;
}
@ -48,7 +49,7 @@ class ImageService
if (file_exists($this->imagePath)) {
$this->image = strtolower('plugin/' . $dirName . $originImage);
} else {
$this->image = self::PLACEHOLDER_IMAGE;
$this->image = $this->placeholderImage;
$this->imagePath = public_path($this->image);
}
@ -65,7 +66,7 @@ class ImageService
{
try {
if (! file_exists($this->imagePath)) {
$this->image = self::PLACEHOLDER_IMAGE;
$this->image = $this->placeholderImage;
$this->imagePath = public_path($this->image);
}
if (! file_exists($this->imagePath)) {

View File

@ -15,6 +15,7 @@ use Beike\Models\Order;
use Beike\Models\OrderHistory;
use Beike\Models\OrderShipment;
use Beike\Models\Product;
use Beike\Repositories\OrderPaymentRepo;
use Throwable;
class StateMachineService
@ -29,6 +30,8 @@ class StateMachineService
private array $shipment;
private array $payment;
public const CREATED = 'created'; // 已创建
public const UNPAID = 'unpaid'; // 待支付
@ -116,6 +119,19 @@ class StateMachineService
return $this;
}
/**
* 设置支付信息
*
* @param array $payment
* @return $this
*/
public function setPayment(array $payment = []): self
{
$this->payment = $payment;
return $this;
}
/**
* 获取所有订单状态列表
*
@ -136,7 +152,25 @@ class StateMachineService
];
}
return $result;
return hook_filter('service.state_machine.all_statuses', $result);
}
/**
* 获取所有有效订单状态
* @return string[]
*/
public static function getValidStatuses(): array
{
$statuses = [
self::CREATED,
self::UNPAID,
self::PAID,
self::SHIPPED,
self::COMPLETED,
self::CANCELLED,
];
return $statuses;
}
/**
@ -198,6 +232,8 @@ class StateMachineService
}
$this->{$function}($oldStatusCode, $status);
}
hook_filter('service.state_machine.change_status.after', ['order' => $order, 'status' => $status, 'comment' => $comment, 'notify' => $notify]);
}
/**
@ -208,11 +244,6 @@ class StateMachineService
*/
private function validStatusCode($statusCode)
{
if (! in_array($statusCode, self::ORDER_STATUS)) {
$statusCodeString = implode(', ', self::ORDER_STATUS);
throw new \Exception("Invalid order status, must be one of the '{$statusCodeString}'");
}
$orderId = $this->orderId;
$orderNumber = $this->order->number;
$currentStatusCode = $this->order->status;
@ -340,6 +371,18 @@ class StateMachineService
}
}
/**
* 添加发货单号
* @throws Throwable
*/
private function addPayment($oldCode, $newCode)
{
if (empty($this->payment)) {
return;
}
OrderPaymentRepo::createOrUpdatePayment($this->orderId, $this->payment);
}
/**
* 发送新订单通知
*/

View File

@ -25,7 +25,7 @@ class AddressController extends Controller
{
$addresses = AddressRepo::listByCustomer(current_customer());
$data = [
'countries' => CountryRepo::all(),
'countries' => CountryRepo::listEnabled(),
'addresses' => AddressResource::collection($addresses),
];

View File

@ -22,6 +22,7 @@ class EditController extends Controller
{
$customer = current_customer();
$data['customer'] = $customer;
$data = hook_filter('account.edit.index', $data);
return view('account/edit', $data);
}

View File

@ -35,20 +35,30 @@ class LoginController extends Controller
public function store(LoginRequest $request)
{
$guestCartProduct = CartRepo::allCartProducts(0);
if (! auth(Customer::AUTH_GUARD)->attempt($request->only('email', 'password'))) {
throw new NotAcceptableHttpException(trans('shop/login.email_or_password_error'));
$data = [
'request_data' => $request->all(),
];
try {
hook_action('shop.account.login.before', $data);
$guestCartProduct = CartRepo::allCartProducts(0);
if (! auth(Customer::AUTH_GUARD)->attempt($request->only('email', 'password'))) {
throw new NotAcceptableHttpException(trans('shop/login.email_or_password_error'));
}
$customer = current_customer();
if ($customer && $customer->status != 1) {
Auth::guard(Customer::AUTH_GUARD)->logout();
throw new NotFoundHttpException(trans('shop/login.customer_inactive'));
}
CartRepo::mergeGuestCart($customer, $guestCartProduct);
return json_success(trans('shop/login.login_successfully'));
} catch (\Exception $e) {
return json_fail($e->getMessage());
}
$customer = current_customer();
if ($customer && $customer->status != 1) {
Auth::guard(Customer::AUTH_GUARD)->logout();
throw new NotFoundHttpException(trans('shop/login.customer_inactive'));
}
CartRepo::mergeGuestCart($customer, $guestCartProduct);
return json_success(trans('shop/login.login_successfully'));
}
}

View File

@ -57,21 +57,6 @@ class OrderController extends Controller
return view('account/order_info', $data);
}
/**
* 订单提交成功页
*
* @param Request $request
* @param $number
* @return View
*/
public function success(Request $request, $number): View
{
$customer = current_customer();
$order = OrderRepo::getOrderByNumber($number, $customer);
return view('account/order_success', ['order' => $order]);
}
/**
* 订单支付页面
*

View File

@ -86,15 +86,15 @@ class CartController extends Controller
public function update(CartRequest $request, $cartId): array
{
try {
$customer = current_customer();
$quantity = (int) $request->get('quantity');
CartService::updateQuantity($customer, $cartId, $quantity);
$customer = current_customer();
$quantity = (int) $request->get('quantity');
CartService::updateQuantity($customer, $cartId, $quantity);
$data = CartService::reloadData();
$data = CartService::reloadData();
$data = hook_filter('cart.update.data', $data);
$data = hook_filter('cart.update.data', $data);
return json_success(trans('common.updated_success'), $data);
return json_success(trans('common.updated_success'), $data);
} catch (\Exception $e) {
return json_fail($e->getMessage());

View File

@ -11,6 +11,7 @@
namespace Beike\Shop\Http\Controllers;
use Beike\Repositories\OrderRepo;
use Beike\Shop\Services\CheckoutService;
use Illuminate\Http\Request;
@ -32,9 +33,9 @@ class CheckoutController extends Controller
* 更改结算信息
*
* @param Request $request
* @return array
* @return mixed
*/
public function update(Request $request): array
public function update(Request $request): mixed
{
try {
$requestData = $request->all();
@ -55,8 +56,23 @@ class CheckoutController extends Controller
*/
public function confirm()
{
$data = (new CheckoutService)->confirm();
try {
$data = (new CheckoutService)->confirm();
return hook_filter('checkout.confirm.data', $data);
return hook_filter('checkout.confirm.data', $data);
} catch (\Exception $e) {
return json_fail($e->getMessage());
}
}
public function success()
{
$order_number = request('order_number');
$customer = current_customer();
$order = OrderRepo::getOrderByNumber($order_number, $customer);
$data = hook_filter('account.order.show.data', ['order' => $order, 'html_items' => []]);
return view('checkout/success', $data);
}
}

View File

@ -5,8 +5,35 @@ namespace Beike\Shop\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use League\Csv\CannotInsertRecord;
class Controller extends \App\Http\Controllers\Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
/**
* @param $filename
* @param $header
* @param $records
* @return mixed
* @throws CannotInsertRecord
*/
public function downloadCsv($filename, $header, $records): mixed
{
if (! str_contains($filename, '.csv')) {
$filename = $filename . '-' . date('YmdHis') . '.csv';
}
$headers = [
'Content-Type' => 'application/octet-stream',
'Content-Transfer-Encoding' => 'binary',
'Content-Disposition' => 'attachment; filename=' . $filename,
];
$csv = \League\Csv\Writer::createFromString('');
$csv->insertOne($header);
$csv->insertAll($records);
return response($csv, 200, $headers);
}
}

Some files were not shown because too many files have changed in this diff Show More