@@ -185,6 +185,7 @@ class AdvancedPricing extends \Magento\ImportExport\Model\Import\Entity\Abstract
185185 * @param AdvancedPricing\Validator\Website $websiteValidator
186186 * @param AdvancedPricing\Validator\TierPrice $tierPriceValidator
187187 * @SuppressWarnings(PHPMD.UnusedFormalParameter)
188+ * @throws \Exception
188189 */
189190 public function __construct (
190191 \Magento \Framework \Json \Helper \Data $ jsonHelper ,
@@ -255,6 +256,7 @@ public function getEntityTypeCode()
255256 * @param array $rowData
256257 * @param int $rowNum
257258 * @return bool
259+ * @throws \Zend_Validate_Exception
258260 */
259261 public function validateRow (array $ rowData , $ rowNum )
260262 {
@@ -308,6 +310,7 @@ protected function _importData()
308310 * Save advanced pricing
309311 *
310312 * @return $this
313+ * @throws \Exception
311314 */
312315 public function saveAdvancedPricing ()
313316 {
@@ -319,6 +322,7 @@ public function saveAdvancedPricing()
319322 * Deletes Advanced price data from raw data.
320323 *
321324 * @return $this
325+ * @throws \Exception
322326 */
323327 public function deleteAdvancedPricing ()
324328 {
@@ -347,6 +351,7 @@ public function deleteAdvancedPricing()
347351 * Replace advanced pricing
348352 *
349353 * @return $this
354+ * @throws \Exception
350355 */
351356 public function replaceAdvancedPricing ()
352357 {
@@ -360,6 +365,7 @@ public function replaceAdvancedPricing()
360365 * @return $this
361366 * @SuppressWarnings(PHPMD.CyclomaticComplexity)
362367 * @SuppressWarnings(PHPMD.NPathComplexity)
368+ * @throws \Exception
363369 */
364370 protected function saveAndReplaceAdvancedPrices ()
365371 {
@@ -368,8 +374,8 @@ protected function saveAndReplaceAdvancedPrices()
368374 $ this ->_cachedSkuToDelete = null ;
369375 }
370376 $ listSku = [];
377+ $ tierPrices = [];
371378 while ($ bunch = $ this ->_dataSourceModel ->getNextBunch ()) {
372- $ tierPrices = [];
373379 foreach ($ bunch as $ rowNum => $ rowData ) {
374380 if (!$ this ->validateRow ($ rowData , $ rowNum )) {
375381 $ this ->addRowError (ValidatorInterface::ERROR_SKU_IS_EMPTY , $ rowNum );
@@ -397,15 +403,8 @@ protected function saveAndReplaceAdvancedPrices()
397403 ];
398404 }
399405 }
400- if (\Magento \ImportExport \Model \Import::BEHAVIOR_REPLACE == $ behavior ) {
401- if ($ listSku ) {
402- $ this ->processCountNewPrices ($ tierPrices );
403- if ($ this ->deleteProductTierPrices (array_unique ($ listSku ), self ::TABLE_TIER_PRICE )) {
404- $ this ->saveProductPrices ($ tierPrices , self ::TABLE_TIER_PRICE );
405- $ this ->setUpdatedAt ($ listSku );
406- }
407- }
408- } elseif (\Magento \ImportExport \Model \Import::BEHAVIOR_APPEND == $ behavior ) {
406+
407+ if (\Magento \ImportExport \Model \Import::BEHAVIOR_APPEND == $ behavior ) {
409408 $ this ->processCountExistingPrices ($ tierPrices , self ::TABLE_TIER_PRICE )
410409 ->processCountNewPrices ($ tierPrices );
411410
@@ -415,6 +414,17 @@ protected function saveAndReplaceAdvancedPrices()
415414 }
416415 }
417416 }
417+
418+ if (\Magento \ImportExport \Model \Import::BEHAVIOR_REPLACE == $ behavior ) {
419+ if ($ listSku ) {
420+ $ this ->processCountNewPrices ($ tierPrices );
421+ if ($ this ->deleteProductTierPrices (array_unique ($ listSku ), self ::TABLE_TIER_PRICE )) {
422+ $ this ->saveProductPrices ($ tierPrices , self ::TABLE_TIER_PRICE );
423+ $ this ->setUpdatedAt ($ listSku );
424+ }
425+ }
426+ }
427+
418428 return $ this ;
419429 }
420430
@@ -424,6 +434,7 @@ protected function saveAndReplaceAdvancedPrices()
424434 * @param array $priceData
425435 * @param string $table
426436 * @return $this
437+ * @throws \Exception
427438 */
428439 protected function saveProductPrices (array $ priceData , $ table )
429440 {
@@ -455,6 +466,7 @@ protected function saveProductPrices(array $priceData, $table)
455466 * @param array $listSku
456467 * @param string $table
457468 * @return boolean
469+ * @throws \Exception
458470 */
459471 protected function deleteProductTierPrices (array $ listSku , $ table )
460472 {
@@ -532,6 +544,7 @@ protected function getCustomerGroupId($customerGroup)
532544 * Retrieve product skus
533545 *
534546 * @return array
547+ * @throws \Exception
535548 */
536549 protected function retrieveOldSkus ()
537550 {
@@ -552,6 +565,7 @@ protected function retrieveOldSkus()
552565 * @param array $prices
553566 * @param string $table
554567 * @return $this
568+ * @throws \Exception
555569 */
556570 protected function processCountExistingPrices ($ prices , $ table )
557571 {
0 commit comments