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);
|