Skip to content

Commit dda9546

Browse files
author
Stanislav Idolov
authored
ENGCOM-2670: Save configurable product options after validation error #16597
2 parents e89ce61 + 7be9173 commit dda9546

File tree

2 files changed

+12
-10
lines changed
  • app/code/Magento
    • Catalog/Controller/Adminhtml/Product
    • ConfigurableProduct/view/adminhtml/web/js/variations

2 files changed

+12
-10
lines changed

app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,13 @@ public function execute()
148148
} catch (\Magento\Framework\Exception\LocalizedException $e) {
149149
$this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
150150
$this->messageManager->addExceptionMessage($e);
151-
$data = $this->persistMediaData($product, $data);
151+
$data = isset($product) ? $this->persistMediaData($product, $data) : $data;
152152
$this->getDataPersistor()->set('catalog_product', $data);
153153
$redirectBack = $productId ? true : 'new';
154154
} catch (\Exception $e) {
155155
$this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
156156
$this->messageManager->addErrorMessage($e->getMessage());
157-
$data = $this->persistMediaData($product, $data);
157+
$data = isset($product) ? $this->persistMediaData($product, $data) : $data;
158158
$this->getDataPersistor()->set('catalog_product', $data);
159159
$redirectBack = $productId ? true : 'new';
160160
}

app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -407,15 +407,17 @@ define([
407407
* - associated_product_ids_serialized.
408408
*/
409409
serializeData: function () {
410-
this.source.data['configurable-matrix-serialized'] =
411-
JSON.stringify(this.source.data['configurable-matrix']);
412-
413-
delete this.source.data['configurable-matrix'];
414-
415-
this.source.data['associated_product_ids_serialized'] =
416-
JSON.stringify(this.source.data['associated_product_ids']);
410+
if (this.source.data['configurable-matrix']) {
411+
this.source.data['configurable-matrix-serialized'] =
412+
JSON.stringify(this.source.data['configurable-matrix']);
413+
delete this.source.data['configurable-matrix'];
414+
}
417415

418-
delete this.source.data['associated_product_ids'];
416+
if (this.source.data['associated_product_ids']) {
417+
this.source.data['associated_product_ids_serialized'] =
418+
JSON.stringify(this.source.data['associated_product_ids']);
419+
delete this.source.data['associated_product_ids'];
420+
}
419421
},
420422

421423
/**

0 commit comments

Comments
 (0)