Magento 2: Как получить окончательную цену и первоначальную цену на все виды товаров


Как я могу получить Первоначальную цену и Окончательную цену для приведенных ниже типов продуктов?

  1. Простой продукт
  2. Настраиваемый продукт
  3. Пакетное изделие
  4. Групповой продукт

Для простого продукта Я могу легко получить цену, используя приведенный ниже код.

$finalPrice = $product->getFinalPrice();
$originalPrice = $product->getPrice();

Но я не могу получить Первоначальную цену и Окончательную цену для Настраиваемого продукта, Комплектный продукт, Группа продукт

Существует ли какой-либо простой способ получить обе цены на все другие виды товаров.


РЕДАКТИРОВАТЬ :

Я получаю цену Первоначальную цену и Окончательную цену настраиваемого продукта, используя приведенный ниже код. и возьмите ссылку из получить-диапазон цен-настраиваемый-продукт-magento-2

$basePrice = $product->getPriceInfo()->getPrice('regular_price');

$regularPrice = $basePrice->getMinRegularAmount()->getValue();
$specialPrice = $product->getFinalPrice();

Любая помощь будет признательна! Спасибо.

Author: Chirag Patel, 2019-01-12

1 answers

Вы можете получить Обычную цену и Окончательную цену всех видов товаров, используя приведенный ниже способ.

  1. Простой продукт
$regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getValue();
$specialPrice = $product->getPriceInfo()->getPrice('special_price')->getValue();
  1. Настраиваемый продукт
if ($product->getTypeId() == 'configurable') {
      $basePrice = $product->getPriceInfo()->getPrice('regular_price');

      $regularPrice = $basePrice->getMinRegularAmount()->getValue();
      $specialPrice = $product->getFinalPrice();
}
  1. Пакетное изделие
if ($product->getTypeId() == 'bundle') {
      $regularPrice = $product->getPriceInfo()->getPrice('regular_price')->getMinimalPrice()->getValue();
      $specialPrice = $product->getPriceInfo()->getPrice('final_price')->getMinimalPrice()->getValue();            
}
  1. Групповой продукт
if ($product->getTypeId() == 'grouped') {
      $usedProds = $product->getTypeInstance(true)->getAssociatedProducts($product);            
      foreach ($usedProds as $child) {
          if ($child->getId() != $product->getId()) {
                $regularPrice += $child->getPrice();
                $specialPrice += $child->getFinalPrice();
          }
      }
}

Примечание: В приведенном выше примере $product является текущим продуктом.

 23
Author: Chirag Patel, 2019-01-22 09:59:21