@@ -199,14 +199,16 @@ public function initializeFromData(\Magento\Catalog\Model\Product $product, arra
199
199
$ customOptions = [];
200
200
foreach ($ options as $ customOptionData ) {
201
201
if (empty ($ customOptionData ['is_delete ' ])) {
202
+ if (empty ($ customOptionData ['option_id ' ])) {
203
+ $ customOptionData ['option_id ' ] = null ;
204
+ }
202
205
if (isset ($ customOptionData ['values ' ])) {
203
206
$ customOptionData ['values ' ] = array_filter ($ customOptionData ['values ' ], function ($ valueData ) {
204
207
return empty ($ valueData ['is_delete ' ]);
205
208
});
206
209
}
207
210
$ customOption = $ this ->getCustomOptionFactory ()->create (['data ' => $ customOptionData ]);
208
211
$ customOption ->setProductSku ($ product ->getSku ());
209
- $ customOption ->setOptionId (null );
210
212
$ customOptions [] = $ customOption ;
211
213
}
212
214
}
@@ -255,7 +257,7 @@ protected function setProductLinks(\Magento\Catalog\Model\Product $product)
255
257
256
258
foreach ($ linkTypes as $ linkType => $ readonly ) {
257
259
if (isset ($ links [$ linkType ]) && !$ readonly ) {
258
- foreach ((array ) $ links [$ linkType ] as $ linkData ) {
260
+ foreach ((array )$ links [$ linkType ] as $ linkData ) {
259
261
if (empty ($ linkData ['id ' ])) {
260
262
continue ;
261
263
}
@@ -321,9 +323,11 @@ public function mergeProductOptions($productOptions, $overwriteOptions)
321
323
322
324
if (isset ($ option ['values ' ]) && isset ($ overwriteOptions [$ optionId ]['values ' ])) {
323
325
foreach ($ option ['values ' ] as $ valueIndex => $ value ) {
324
- $ valueId = $ value ['option_type_id ' ];
325
- $ value = $ this ->overwriteValue ($ valueId , $ value , $ overwriteOptions [$ optionId ]['values ' ]);
326
- $ option ['values ' ][$ valueIndex ] = $ value ;
326
+ if (isset ($ value ['option_type_id ' ])) {
327
+ $ valueId = $ value ['option_type_id ' ];
328
+ $ value = $ this ->overwriteValue ($ valueId , $ value , $ overwriteOptions [$ optionId ]['values ' ]);
329
+ $ option ['values ' ][$ valueIndex ] = $ value ;
330
+ }
327
331
}
328
332
}
329
333
@@ -347,6 +351,9 @@ private function overwriteValue($optionId, $option, $overwriteOptions)
347
351
foreach ($ overwriteOptions [$ optionId ] as $ fieldName => $ overwrite ) {
348
352
if ($ overwrite && isset ($ option [$ fieldName ]) && isset ($ option ['default_ ' . $ fieldName ])) {
349
353
$ option [$ fieldName ] = $ option ['default_ ' . $ fieldName ];
354
+ if ('title ' == $ fieldName ) {
355
+ $ option ['is_delete_store_title ' ] = 1 ;
356
+ }
350
357
}
351
358
}
352
359
}
0 commit comments