diff --git a/app/admin/form/Useraddress.php b/app/admin/form/Useraddress.php
index 3c14b4527..9e769a69f 100644
--- a/app/admin/form/Useraddress.php
+++ b/app/admin/form/Useraddress.php
@@ -41,10 +41,11 @@ class UserAddress
return [
// 基础配置
'base' => [
- 'key_field' => 'id',
- 'is_search' => 1,
- 'is_delete' => 1,
- 'is_middle' => 0,
+ 'key_field' => 'id',
+ 'is_search' => 1,
+ 'is_delete' => 1,
+ 'is_middle' => 0,
+ 'is_data_export_excel' => 1,
],
// 表单配置
'form' => [
diff --git a/app/admin/view/default/goods/module/info.html b/app/admin/view/default/goods/module/info.html
index 9a2ed2a8d..70873102e 100644
--- a/app/admin/view/default/goods/module/info.html
+++ b/app/admin/view/default/goods/module/info.html
@@ -1,9 +1,11 @@
{{if !empty($module_data)}}
-
-
-
+ {{if !empty($module_data['images'])}}
+
+
+
+ {{/if}}
{{$module_data.title}}
{{if !empty($module_data['simple_desc'])}}
{{$module_data.simple_desc}}
diff --git a/app/admin/view/default/goodsbrowse/module/goods.html b/app/admin/view/default/goodsbrowse/module/goods.html
index 1410a4ec2..773c73739 100644
--- a/app/admin/view/default/goodsbrowse/module/goods.html
+++ b/app/admin/view/default/goodsbrowse/module/goods.html
@@ -1,9 +1,11 @@
{{if !empty($module_data)}}
-
-
-
+ {{if !empty($module_data['images'])}}
+
+
+
+ {{/if}}
{{$module_data.title}}
{{if !empty($module_data['simple_desc'])}}
{{$module_data.simple_desc}}
diff --git a/app/admin/view/default/goodscart/module/goods.html b/app/admin/view/default/goodscart/module/goods.html
index 119185eea..ba65c46b3 100644
--- a/app/admin/view/default/goodscart/module/goods.html
+++ b/app/admin/view/default/goodscart/module/goods.html
@@ -1,9 +1,11 @@
{{if !empty($module_data)}}
-
-
-
+ {{if !empty($module_data['images'])}}
+
+
+
+ {{/if}}
{{$module_data.title}}
{{if !empty($module_data['simple_desc'])}}
{{$module_data.simple_desc}}
diff --git a/app/admin/view/default/goodscomments/module/goods.html b/app/admin/view/default/goodscomments/module/goods.html
index c5de92dc2..fa37ca364 100644
--- a/app/admin/view/default/goodscomments/module/goods.html
+++ b/app/admin/view/default/goodscomments/module/goods.html
@@ -2,9 +2,11 @@
{{if !empty($module_data)}}
{{if !empty($module_data['goods'])}}
{{$currency_symbol}}{{$module_data.goods.price}}
diff --git a/app/admin/view/default/goodsfavor/module/goods.html b/app/admin/view/default/goodsfavor/module/goods.html
index 1410a4ec2..773c73739 100644
--- a/app/admin/view/default/goodsfavor/module/goods.html
+++ b/app/admin/view/default/goodsfavor/module/goods.html
@@ -1,9 +1,11 @@
{{if !empty($module_data)}}
-
-
-
+ {{if !empty($module_data['images'])}}
+
+
+
+ {{/if}}
{{$module_data.title}}
{{if !empty($module_data['simple_desc'])}}
{{$module_data.simple_desc}}
diff --git a/app/install/view/index/index.html b/app/install/view/index/index.html
index ad37ba006..615de06aa 100755
--- a/app/install/view/index/index.html
+++ b/app/install/view/index/index.html
@@ -14,7 +14,7 @@
1. 被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软体及软体的副本。
2. 被授权人可根据程式的需要修改授权条款为适当的内容。
3. 在软件和软件的所有副本中都必须包含版权声明和许可声明。
-
协议地址:https://ask.shopxo.net/article/15
+
协议地址:https://license.shopxo.net/
英文原文:https://opensource.org/licenses/mit-license.php
diff --git a/app/install/view/public/footer.html b/app/install/view/public/footer.html
index 846d2a93f..a36e5996a 100755
--- a/app/install/view/public/footer.html
+++ b/app/install/view/public/footer.html
@@ -13,5 +13,8 @@
-
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/app/install/view/public/header_nav.html b/app/install/view/public/header_nav.html
index c64257008..0f5b2c020 100755
--- a/app/install/view/public/header_nav.html
+++ b/app/install/view/public/header_nav.html
@@ -18,4 +18,9 @@
安装完成
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/app/service/BuyService.php b/app/service/BuyService.php
index 7b0ca77eb..ce4468271 100755
--- a/app/service/BuyService.php
+++ b/app/service/BuyService.php
@@ -556,31 +556,17 @@ class BuyService
}
// 先判断规格的起购数、则再判断商品的起购数
- if(isset($v['spec_buy_min_number']) && $v['spec_buy_min_number'] > 0)
+ $min = (isset($v['spec_buy_min_number']) && $v['spec_buy_min_number'] > 0) ? $v['spec_buy_min_number'] : (isset($v['buy_min_number']) ? $v['buy_min_number'] : 0);
+ if($min > 0 && $v['stock'] < $min)
{
- if($v['stock'] < $v['spec_buy_min_number'])
- {
- return DataReturn(MyLang('common_service.buy.goods_buy_min_error_tips').'['.$v['title'].']['.$v['stock'].'<'.$v['spec_buy_min_number'].']', -1);
- }
- } else {
- if(isset($v['buy_min_number']) && $v['buy_min_number'] > 1 && $v['stock'] < $v['buy_min_number'])
- {
- return DataReturn(MyLang('common_service.buy.goods_buy_min_error_tips').'['.$v['title'].']['.$v['stock'].'<'.$v['buy_min_number'].']', -1);
- }
+ return DataReturn(MyLang('common_service.buy.goods_buy_min_error_tips').'['.$v['title'].']['.$v['stock'].'<'.$min.']', -1);
}
// 先判断规格的限购数、则再判断商品的限购数
- if(isset($v['spec_buy_max_number']) && $v['spec_buy_max_number'] > 0)
+ $max = (isset($v['spec_buy_max_number']) && $v['spec_buy_max_number'] > 0) ? $v['spec_buy_max_number'] : (isset($v['buy_max_number']) ? $v['buy_max_number'] : 0);
+ if($max > 0 && $v['stock'] > $max)
{
- if($v['stock'] > $v['spec_buy_max_number'])
- {
- return DataReturn(MyLang('common_service.buy.goods_buy_max_error_tips').'['.$v['title'].']['.$v['stock'].'>'.$v['spec_buy_max_number'].']', -1);
- }
- } else {
- if(isset($v['buy_max_number']) && $v['buy_max_number'] > 0 && $v['stock'] > $v['buy_max_number'])
- {
- return DataReturn(MyLang('common_service.buy.goods_buy_max_error_tips').'['.$v['title'].']['.$v['stock'].'>'.$v['buy_max_number'].']', -1);
- }
+ return DataReturn(MyLang('common_service.buy.goods_buy_max_error_tips').'['.$v['title'].']['.$v['stock'].'>'.$max.']', -1);
}
// 是否支持购物车操作
diff --git a/app/service/SearchService.php b/app/service/SearchService.php
index f24e488ef..590f53fa2 100755
--- a/app/service/SearchService.php
+++ b/app/service/SearchService.php
@@ -783,7 +783,7 @@ class SearchService
if(!empty($bid))
{
$data_params = [
- 'field' => 'id,name,describe,logo,website_url',
+ 'field' => 'id,name,describe,logo,website_url,seo_title,seo_keywords,seo_desc',
'where' => [
['id', '=', $bid]
],
diff --git a/app/service/WarehouseGoodsService.php b/app/service/WarehouseGoodsService.php
index 7b7e44266..ec6dfccea 100644
--- a/app/service/WarehouseGoodsService.php
+++ b/app/service/WarehouseGoodsService.php
@@ -788,31 +788,34 @@ class WarehouseGoodsService
* @version 1.0.0
* @date 2020-07-16
* @desc description
- * @param [int] $goods_id [商品id]
+ * @param [int] $goods_id [商品id]
+ * @param [array] $params [输入参数]
*/
- public static function GoodsSpecInventorySync($goods_id)
+ public static function GoodsSpecInventorySync($goods_id, $params = [])
{
// 获取商品实际规格
- $res = GoodsService::GoodsSpecificationsActual($goods_id);
- if(empty($res['value']))
+ $spec = GoodsService::GoodsSpecificationsActual($goods_id);
+ if(empty($spec['value']))
{
// 没有规格则读取默认规格数据
- $res['value'][] = [
- 'base_id' => Db::name('GoodsSpecBase')->where(['goods_id'=>$goods_id])->value('id'),
- 'value' => 'default',
+ $spec['value'] = [
+ [
+ 'base_id' => Db::name('GoodsSpecBase')->where(['goods_id'=>$goods_id])->value('id'),
+ 'value' => 'default',
+ ]
];
}
// 商品规格库存
$inventory_total = 0;
- foreach($res['value'] as $v)
+ foreach($spec['value'] as &$v)
{
- $inventory = self::WarehouseGoodsSpecInventory($goods_id, str_replace(GoodsService::$goods_spec_to_string_separator, '', $v['value']));
- if(Db::name('GoodsSpecBase')->where(['id'=>$v['base_id'], 'goods_id'=>$goods_id])->update(['inventory'=>$inventory]) === false)
+ $v['inventory'] = self::WarehouseGoodsSpecInventory($goods_id, str_replace(GoodsService::$goods_spec_to_string_separator, '', $v['value']));
+ if(Db::name('GoodsSpecBase')->where(['id'=>$v['base_id'], 'goods_id'=>$goods_id])->update(['inventory'=>$v['inventory']]) === false)
{
return DataReturn(MyLang('common_service.warehousegoods.goods_spec_sync_inventory_fail_tips'), -20);
}
- $inventory_total += $inventory;
+ $inventory_total += $v['inventory'];
}
// 商品库存
@@ -828,9 +831,12 @@ class WarehouseGoodsService
// 商品仓库库存修改钩子
$hook_name = 'plugins_service_warehouse_goods_inventory_sync';
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
- 'hook_name' => $hook_name,
- 'is_backend' => true,
- 'goods_id' => $goods_id
+ 'hook_name' => $hook_name,
+ 'is_backend' => true,
+ 'goods_id' => $goods_id,
+ 'inventory_total' => $inventory_total,
+ 'spec' => $spec,
+ 'params' => $params,
]));
if(isset($ret['code']) && $ret['code'] != 0)
{
@@ -938,9 +944,11 @@ class WarehouseGoodsService
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
+ 'warehouse_id' => $warehouse_id,
'order_id' => $order_id,
'goods_id' => $goods_id,
'spec' => $spec,
+ 'md5_key' => $md5_key,
'buy_number' => $buy_number,
]));
if(isset($ret['code']) && $ret['code'] != 0)
@@ -1011,9 +1019,11 @@ class WarehouseGoodsService
$ret = EventReturnHandle(MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
+ 'warehouse_id' => $warehouse_id,
'order_id' => $order_id,
'goods_id' => $goods_id,
'spec' => $spec,
+ 'md5_key' => $md5_key,
'buy_number' => $buy_number,
]));
if(isset($ret['code']) && $ret['code'] != 0)