diff --git a/app/code/Magento/Bundle/Model/Product/Price.php b/app/code/Magento/Bundle/Model/Product/Price.php index 7b6c0d389232c..0d3512a8c1950 100644 --- a/app/code/Magento/Bundle/Model/Product/Price.php +++ b/app/code/Magento/Bundle/Model/Product/Price.php @@ -629,6 +629,12 @@ public function calculateSpecialPrice( $store = null ) { if ($specialPrice !== null && $specialPrice != false) { + + if ($specialPriceTo && date('H:i:s', strtotime($specialPriceTo)) !== '00:00:00') { + $dateToTimestamp = strtotime($specialPriceTo); + $specialPriceTo = date('Y-m-d H:i:s', $dateToTimestamp - 86400); + } + if ($this->_localeDate->isScopeDateInInterval($store, $specialPriceFrom, $specialPriceTo)) { $specialPrice = $finalPrice * ($specialPrice / 100); $finalPrice = min($finalPrice, $specialPrice); diff --git a/app/code/Magento/Catalog/Model/Product/Type/Price.php b/app/code/Magento/Catalog/Model/Product/Type/Price.php index 091e623e7bc29..fa57793e772de 100644 --- a/app/code/Magento/Catalog/Model/Product/Type/Price.php +++ b/app/code/Magento/Catalog/Model/Product/Type/Price.php @@ -602,6 +602,11 @@ public function calculatePrice( $finalPrice = $basePrice; + if ($specialPriceTo && date('H:i:s', strtotime($specialPriceTo)) !== '00:00:00') { + $dateToTimestamp = strtotime($specialPriceTo); + $specialPriceTo = date('Y-m-d H:i:s', $dateToTimestamp - 86400); + } + $finalPrice = $this->calculateSpecialPrice( $finalPrice, $specialPrice, @@ -642,6 +647,12 @@ public function calculateSpecialPrice( $store = null ) { if ($specialPrice !== null && $specialPrice != false) { + + if ($specialPriceTo && date('H:i:s', strtotime($specialPriceTo)) !== '00:00:00') { + $dateToTimestamp = strtotime($specialPriceTo); + $specialPriceTo = date('Y-m-d H:i:s', $dateToTimestamp - 86400); + } + if ($this->_localeDate->isScopeDateInInterval($store, $specialPriceFrom, $specialPriceTo)) { $finalPrice = min($finalPrice, (float) $specialPrice); } diff --git a/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php b/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php index 77c48fdb1667e..6727ac23550ef 100644 --- a/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php +++ b/app/code/Magento/Catalog/Pricing/Price/SpecialPrice.php @@ -1,7 +1,7 @@ getSpecialToDate(); + if ($dateTo && date('H:i:s', strtotime($dateTo)) !== '00:00:00') { + $dateToTimestamp = strtotime($dateTo); + $dateTo = date('Y-m-d H:i:s', $dateToTimestamp - 86400); + } + return $this->localeDate->isScopeDateInInterval( WebsiteInterface::ADMIN_CODE, $this->getSpecialFromDate(), - $this->getSpecialToDate() + $dateTo ); } diff --git a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php index ccb363d9e8821..734dd10d61a52 100644 --- a/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php +++ b/lib/internal/Magento/Framework/Stdlib/DateTime/Timezone.php @@ -1,7 +1,7 @@