diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php index ada187883..67c3bfd80 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php @@ -32,7 +32,6 @@
- {!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.variations.controls.before', ['product' => $product]) !!}
@@ -58,17 +56,21 @@ @push('scripts') @@ -106,8 +112,11 @@ {{ __('admin::app.catalog.products.images') }} @foreach ($product->super_attributes as $attribute) - {{ $attribute->admin_name }} + + {{ $attribute->admin_name }} + @endforeach {{ __('admin::app.catalog.products.qty') }} @@ -119,7 +128,10 @@ - @@ -132,9 +144,13 @@
- +
@@ -142,33 +158,65 @@
- - @{{ errors.first(variantInputName + '[sku]') }} + + +
-
- + - @{{ errors.first(variantInputName + '[name]') }} + + +
-
+
@@ -182,9 +230,15 @@
- -
@@ -192,6 +246,7 @@ @@ -201,14 +256,21 @@
  • - - + + - @{{ errors.first(variantInputName + '[inventories][' + inventorySource.id + ']') }} + v-validate="'numeric|min:0'" + :data-vv-as="'"' + inventorySource.name + '"'" + v-on:keyup="updateTotalQty()"/> + + +
  • @@ -217,42 +279,70 @@ -
    - + - @{{ errors.first(variantInputName + '[price]') }} + + +
    -
    - + - @{{ errors.first(variantInputName + '[weight]') }} + + +
    - + + + +
    - + + + + diff --git a/packages/Webkul/Product/src/Repositories/ProductMediaRepository.php b/packages/Webkul/Product/src/Repositories/ProductMediaRepository.php index 68b1c8863..189b799dd 100644 --- a/packages/Webkul/Product/src/Repositories/ProductMediaRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductMediaRepository.php @@ -38,28 +38,19 @@ class ProductMediaRepository extends Repository /** * Upload. * - * @param \Webkul\Product\Contracts\Product $product - * @param array + * @param array $data + * @param \Webkul\Product\Contracts\Product $product + * @param string $uploadFileType * @return void */ - public function upload($data, $product, $uploadFileType): void + public function upload($data, $product, string $uploadFileType): void { /** * Previous model ids for filtering. */ $previousIds = $this->resolveFileTypeQueryBuilder($product, $uploadFileType)->pluck('id'); - if ( - isset($data[$uploadFileType]['files']) && $data[$uploadFileType]['files'] - && isset($data[$uploadFileType]['positions']) && $data[$uploadFileType]['positions'] - ) { - /** - * Filter out existing models because new model positions are already setuped by index. - */ - $positions = collect($data[$uploadFileType]['positions'])->keys()->filter(function ($position) { - return is_numeric($position); - }); - + if (isset($data[$uploadFileType]['files']) && $data[$uploadFileType]['files']) { foreach ($data[$uploadFileType]['files'] as $indexOrModelId => $file) { if ($file instanceof UploadedFile) { $this->create([ @@ -69,9 +60,18 @@ class ProductMediaRepository extends Repository 'position' => $indexOrModelId, ]); } else { - $this->update([ - 'position' => $positions->search($indexOrModelId), - ], $indexOrModelId); + /** + * Filter out existing models because new model positions are already setuped by index. + */ + if (isset($data[$uploadFileType]['positions']) && $data[$uploadFileType]['positions']) { + $positions = collect($data[$uploadFileType]['positions'])->keys()->filter(function ($position) { + return is_numeric($position); + }); + + $this->update([ + 'position' => $positions->search($indexOrModelId), + ], $indexOrModelId); + } if (is_numeric($index = $previousIds->search($indexOrModelId))) { $previousIds->forget($index);