diff --git a/43.153.17.83.rar b/43.153.17.83.rar deleted file mode 100644 index 44ac5fd3..00000000 Binary files a/43.153.17.83.rar and /dev/null differ diff --git a/beike/Admin/Http/Controllers/LogisticsController.php b/beike/Admin/Http/Controllers/LogisticsController.php index dac7f921..3f52e3fa 100644 --- a/beike/Admin/Http/Controllers/LogisticsController.php +++ b/beike/Admin/Http/Controllers/LogisticsController.php @@ -40,7 +40,7 @@ class LogisticsController extends Controller 'logistics' => $logistics, 'type' => 'logistics', 'default_countries' => $countries, - 'default_countries_name' => is_array($countries) ? array_values($countries)[0]['name'] : '' + 'default_countries_name' => is_array($countries) && count($countries) > 0 ? array_values($countries)[0]['name'] : '' ]; $data = hook_filter('admin.logistics.index.data', $data); diff --git a/beike/Admin/Http/Requests/ProductRequest.php b/beike/Admin/Http/Requests/ProductRequest.php index eb036a6b..c473a627 100644 --- a/beike/Admin/Http/Requests/ProductRequest.php +++ b/beike/Admin/Http/Requests/ProductRequest.php @@ -32,14 +32,20 @@ class ProductRequest extends FormRequest */ public function rules(): array { - return [ + $rules = [ 'descriptions.*.name' => 'required|string|min:3|max:128', 'brand_id' => 'int', - 'skus.*.sku' => 'required|string', + // 'skus.*.sku' => 'required|string', 'skus.*.price' => 'required|numeric', 'skus.*.origin_price' => 'required|numeric', - 'skus.*.cost_price' => 'numeric', + // 'skus.*.cost_price' => 'numeric', ]; + // 判断:最小起订量是否必填 直接下单产品 - 必填 + if($this->active == 1){ + $rules['minimum_order'] = 'required|numeric|gt:0'; + } + + return $rules; } public function attributes() @@ -47,10 +53,11 @@ class ProductRequest extends FormRequest return [ 'descriptions.*.name' => trans('product.name'), 'brand_id' => trans('product.brand'), - 'skus.*.sku' => trans('product.sku'), + // 'skus.*.sku' => trans('product.sku'), 'skus.*.price' => trans('product.price'), 'skus.*.origin_price' => trans('product.origin_price'), - 'skus.*.cost_price' => trans('product.cost_price'), + // 'skus.*.cost_price' => trans('product.cost_price'), + 'minimum_order' => trans('product.minimum_order'), ]; } } diff --git a/beike/Admin/Http/Resources/ProductResource.php b/beike/Admin/Http/Resources/ProductResource.php index 7e03794a..d9541e43 100644 --- a/beike/Admin/Http/Resources/ProductResource.php +++ b/beike/Admin/Http/Resources/ProductResource.php @@ -24,9 +24,9 @@ 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), + 'model' => $masterSku->model ?? '', + 'quantity' => $masterSku->quantity ?? 0, + 'price_formatted' => currency_format($masterSku->price ?? 0), 'active' => $this->active, 'position' => $this->position, 'url' => $this->url, diff --git a/beike/Admin/Services/ProductService.php b/beike/Admin/Services/ProductService.php index 21cc8402..7f7a97cd 100644 --- a/beike/Admin/Services/ProductService.php +++ b/beike/Admin/Services/ProductService.php @@ -78,7 +78,7 @@ class ProductService foreach ($data['skus'] as $index => $sku) { $sku['position'] = $index; $sku['origin_price'] = (float) $sku['origin_price']; - $sku['cost_price'] = (float) $sku['cost_price']; + $sku['cost_price'] = (float) ($sku['cost_price'] ?? 0); $sku['quantity'] = (int) $sku['quantity']; $skus[] = $sku; } diff --git a/beike/Models/Product.php b/beike/Models/Product.php index 8b2ad9af..c55a7ad2 100644 --- a/beike/Models/Product.php +++ b/beike/Models/Product.php @@ -11,7 +11,7 @@ class Product extends Base use HasFactory; use SoftDeletes; - protected $fillable = ['images', 'video', 'position', 'brand_id', 'tax_class_id', 'weight', 'weight_class', 'active', 'variables', 'price_setting', 'length', 'width', 'height']; + protected $fillable = ['images', 'video', 'position', 'brand_id', 'tax_class_id', 'weight', 'weight_class', 'active', 'variables', 'price_setting', 'length', 'width', 'height', 'minimum_order']; protected $casts = [ 'active' => 'boolean', diff --git a/beike/Shop/Http/Resources/InquiryDetail.php b/beike/Shop/Http/Resources/InquiryDetail.php index 94724251..9027bae3 100644 --- a/beike/Shop/Http/Resources/InquiryDetail.php +++ b/beike/Shop/Http/Resources/InquiryDetail.php @@ -38,7 +38,7 @@ class InquiryDetail extends JsonResource{ ]; } $product = $productsku->product; - $description = $product->description; + $description = $product->description ?? ''; return [ 'id' => $this->id, 'product_sku_id' => $this->product_sku_id, diff --git a/beike/Shop/Http/Resources/ProductSimple.php b/beike/Shop/Http/Resources/ProductSimple.php index 58ff2d50..91fe4c18 100644 --- a/beike/Shop/Http/Resources/ProductSimple.php +++ b/beike/Shop/Http/Resources/ProductSimple.php @@ -47,7 +47,7 @@ class ProductSimple extends JsonResource 'in_wishlist' => $this->inCurrentWishlist->id ?? 0, 'price_setting' => $this->price_setting ?? '', 'numprices' => NumPricesDetail::collection($this->numprices)->jsonSerialize() ?? '', - + 'minimum_order' => $this->minimum_order, 'images' => array_map(function ($item) { return image_resize($item, 400, 400); }, $images), diff --git a/placeholder-100x100.png b/placeholder-100x100.png new file mode 100644 index 00000000..865907d9 Binary files /dev/null and b/placeholder-100x100.png differ diff --git a/public/.user.ini b/public/.user.ini deleted file mode 100644 index 34b4c3c5..00000000 --- a/public/.user.ini +++ /dev/null @@ -1 +0,0 @@ -open_basedir=/www/wwwroot/wyyl.dev.zoomtk.com/:/tmp/ \ No newline at end of file diff --git a/public/image/placeholder.png b/public/image/placeholder.png index 2234f3ce..c67fcaec 100644 Binary files a/public/image/placeholder.png and b/public/image/placeholder.png differ diff --git a/resources/beike/admin/views/pages/products/form/form.blade.php b/resources/beike/admin/views/pages/products/form/form.blade.php index 928eeb8a..f6f64b1d 100644 --- a/resources/beike/admin/views/pages/products/form/form.blade.php +++ b/resources/beike/admin/views/pages/products/form/form.blade.php @@ -136,7 +136,23 @@ - + {{----}} + +
+
+ + +
+
+ + +
+
+
+ + + + @hook('admin.product.edit.extra') @@ -161,7 +177,7 @@
-
最小起订量
+
{{__('admin/product.minimum_order')}}
产品价格
删除
@@ -301,10 +317,10 @@
- + {{----}} - + {{-- --}}
@@ -316,10 +332,10 @@ {{ __('common.image') }} {{ __('admin/product.model') }} - sku + {{--sku--}} {{ __('admin/product.price') }} {{ __('admin/product.origin_price') }} - {{ __('admin/product.cost_price') }} + {{--{{ __('admin/product.cost_price') }}--}} {{ __('admin/product.quantity') }} @@ -348,11 +364,11 @@ - + {{-- {{ __('common.error_required', ['name' => 'sku']) }} {{ __('admin/product.default_main_product') }} - + --}} @@ -365,10 +381,9 @@ - - - + {{-- + + --}} @@ -380,22 +395,42 @@
{{ __('admin/product.add_variable') }}
+ {{--最小起订量--}} + {{-- 未开启根据数量设置价格、直接下单产品 --}} + + {{-- 未开启根据数量设置价格、非直接下单商品 --}} + + {{--开启根据数量设置价格 - 数量固定为最小起订量--}} + + @hookwrapper('admin.product.edit.variable')
- + {{----}} - + {{----}}
@endhookwrapper @@ -636,8 +671,10 @@ status: @json($product->skus[0]['status'] ?? false), variables: @json($product->variables ?? []), skus: @json(old('skus', $product->skus) ?? []), + active: {{(int)$product->active}}, price_setting: @json(old('price_setting', $product->price_setting) ?? 'sku'), numPrices: @json(old('numPrices', $product->numprices) ?? []), + minimum_order: {{$product->minimum_order ?? 0}}, }, variablesBatch: { diff --git a/resources/lang/en/admin/product.php b/resources/lang/en/admin/product.php index f0182266..3016cf05 100644 --- a/resources/lang/en/admin/product.php +++ b/resources/lang/en/admin/product.php @@ -56,4 +56,5 @@ return [ 'confirm_batch_restore' => 'Confirm to restore the selected product? ', 'confirm_delete_restore' => 'Are you sure you want to empty the recycle bin? ', 'num_select' => 'Num select ', + 'minimum_order' => 'Min Order' ]; diff --git a/resources/lang/en/product.php b/resources/lang/en/product.php index 384b29a2..327bba35 100644 --- a/resources/lang/en/product.php +++ b/resources/lang/en/product.php @@ -28,4 +28,5 @@ return [ 'active' => 'Active', 'inactive' => 'Inactive', 'has_been_inactive' => 'The product has been inactive', + 'minimum_order' => 'Min Order' ]; diff --git a/resources/lang/zh_cn/admin/logistics.php b/resources/lang/zh_cn/admin/logistics.php index 012ba661..72ece676 100644 --- a/resources/lang/zh_cn/admin/logistics.php +++ b/resources/lang/zh_cn/admin/logistics.php @@ -28,9 +28,9 @@ return [ 'product_relations' => '相关物流', 'stocks' => '物流库存', 'model' => '型号', - 'price' => '价格', - 'origin_price' => '原价', - 'cost_price' => '成本价', + 'price' => '区间低价', + 'origin_price' => '区间高价', + 'cost_price' => '起订量', 'quantity' => '数量', 'enable_multi_spec' => '启用多规格', 'image_help' => '第一张图片将作为物流主图,支持同时上传多张图片,多张图片之间可随意调整位置', diff --git a/resources/lang/zh_cn/admin/product.php b/resources/lang/zh_cn/admin/product.php index c8013dd1..fb7c6f5c 100644 --- a/resources/lang/zh_cn/admin/product.php +++ b/resources/lang/zh_cn/admin/product.php @@ -32,9 +32,9 @@ return [ 'product_relations' => '相关商品', 'stocks' => '商品库存', 'model' => '型号', - 'price' => '价格', - 'origin_price' => '原价', - 'cost_price' => '成本价', + 'price' => '区间低价', + 'origin_price' => '区间高价', + 'cost_price' => '起订量', 'quantity' => '数量', 'enable_multi_spec' => '启用多规格', 'image_help' => '第一张图片将作为商品主图,支持同时上传多张图片,多张图片之间可随意调整位置', @@ -61,4 +61,5 @@ return [ 'num' => '根据数量设置价格', ], 'num_select' => '数量选择', + 'minimum_order' => '起订量' ]; diff --git a/resources/lang/zh_cn/product.php b/resources/lang/zh_cn/product.php index 60c8f58b..b2a31e65 100644 --- a/resources/lang/zh_cn/product.php +++ b/resources/lang/zh_cn/product.php @@ -12,9 +12,9 @@ return [ 'name' => '名称', 'sku' => 'SKU', - 'price' => '价格', - 'origin_price' => '原价', - 'cost_price' => '成本价', + 'price' => '区间低价', + 'origin_price' => '区间高价', + 'cost_price' => '起订量', 'brand' => '品牌', 'category' => '分类', 'model' => '型号', @@ -29,4 +29,5 @@ return [ 'active' => '上架', 'inactive' => '下架', 'has_been_inactive' => '该商品已下架', + 'minimum_order' => '起订量' ]; diff --git a/themes/default/product.blade.php b/themes/default/product.blade.php index 52bd9f55..8b828775 100644 --- a/themes/default/product.blade.php +++ b/themes/default/product.blade.php @@ -60,7 +60,8 @@ @endhookwrapper
@{{ product.price_format }}
-
+
-
+
@{{ product.origin_price_format }}
diff --git a/themes/default/product/product.blade.php b/themes/default/product/product.blade.php index 89b629cc..55138725 100644 --- a/themes/default/product/product.blade.php +++ b/themes/default/product/product.blade.php @@ -169,7 +169,8 @@ @hookwrapper('product.detail.price')
@{{ product.price_format }}
-
+
-
+
@{{ product.origin_price_format }}
diff --git a/themes/default/shared/product.blade.php b/themes/default/shared/product.blade.php index a766c77e..77ecaad5 100644 --- a/themes/default/shared/product.blade.php +++ b/themes/default/shared/product.blade.php @@ -73,9 +73,9 @@ @if ($product['price_setting'] === 'num') {{$product['numprices'] != [] ? $product['numprices'][0]['num'] : 1}} pieces @else - 1 pieces + {{$product['minimum_order'] ?? 0}} pieces @endif - (Min Order) + ({{__('admin/product.minimum_order')}})
@if (request('style_list') == 'list')