Skip to content

Commit 3fee15b

Browse files
author
Oleksandr Dubovyk
committed
MAGETWO-93698: [2.3] Wrong date for Special Price in different locale
- Fixed - Modified test
1 parent cbdc4b3 commit 3fee15b

File tree

2 files changed

+20
-1
lines changed
  • app/code/Magento/Catalog
    • Controller/Adminhtml/Product/Initialization
    • Test/Unit/Controller/Adminhtml/Product/Initialization

2 files changed

+20
-1
lines changed

app/code/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ public function initializeFromData(\Magento\Catalog\Model\Product $product, arra
159159
}
160160

161161
$productData = $this->normalize($productData);
162+
$productData = $this->convertSpecialFromDateStringToObject($productData);
162163

163164
if (!empty($productData['is_downloadable'])) {
164165
$productData['product_has_weight'] = 0;
@@ -452,4 +453,19 @@ private function fillProductOptions(Product $product, array $productOptions)
452453

453454
return $product->setOptions($customOptions);
454455
}
456+
457+
/**
458+
* Convert string date presentation into object
459+
*
460+
* @param array $productData
461+
* @return array
462+
*/
463+
private function convertSpecialFromDateStringToObject($productData)
464+
{
465+
if (isset($productData['special_from_date']) && $productData['special_from_date'] != '') {
466+
$productData['special_from_date'] = new \DateTime($productData['special_from_date']);
467+
}
468+
469+
return $productData;
470+
}
455471
}

app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,12 @@ public function testInitialize(
198198
'option2' => ['is_delete' => false, 'name' => 'name1', 'price' => 'price1', 'option_id' => '13'],
199199
'option3' => ['is_delete' => false, 'name' => 'name1', 'price' => 'price1', 'option_id' => '14']
200200
];
201+
$specialFromDate = '2018-03-03 19:30:00';
201202
$productData = [
202203
'stock_data' => ['stock_data'],
203204
'options' => $optionsData,
204-
'website_ids' => $websiteIds
205+
'website_ids' => $websiteIds,
206+
'special_from_date' => $specialFromDate,
205207
];
206208
if (!empty($tierPrice)) {
207209
$productData = array_merge($productData, ['tier_price' => $tierPrice]);
@@ -306,6 +308,7 @@ public function testInitialize(
306308
}
307309

308310
$this->assertEquals($expectedLinks, $resultLinks);
311+
$this->assertEquals($specialFromDate, $productData['special_from_date']);
309312
}
310313

311314
/**

0 commit comments

Comments
 (0)