Як отримати рівень ціни товару magento2?


11

Як отримати рівну ціну товару в Magento 2 за допомогою спеціального коду?

Це мій код

 public function getProductCollection()
    {
        $collection = $this->_productCollectionFactory->create();
        $collection->addAttributeToSelect('*');
         $collection->setOrder('created_at', 'DESC');
        // $collection->setPageSize(3); // fetching only 3 products
        return $collection;
    }

і моя функція виклику в .phtml

  $productCollection = $block->getProductCollection();
   $productCollection->setPageSize(2);
            foreach ($productCollection as $product) {

 echo $product->getName();
 print_r($product->getTierPrice());

echo getName, getPrice, getSpecial price працює

але getTierPrice не працює.

колишній У мене є VIP-картка для учасників (customer_group) Я хочу показати загальнодоступну карту VIP-статусу для публічної групи, яка не встановлена ​​для всієї групи Я хочу показати VIP-картку VIP-ціни

Відповіді:


6

Ви можете отримати TierPrice, як показано нижче.

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product_obj = $objectManager->create('Magento\Catalog\Model\Product')->load(1);                
$tier_price = $product_obj->getTierPrice();
if(count($tier_price) > 0){
    foreach($tier_price as $pirces){
        foreach ( array_reverse($pirces) as $k => $v ) {
            if($k == "price"){
                $tp = number_format($v, 2, '.', '');
                echo $tp;
            }
        }
    }
}

$product_objмайте дані про продукт, будь ласка, перевірте чи дебютуйте, ви можете знати. Це буде працювати 100%. дивіться мою картинку журналу нижче.

введіть тут опис зображення

Створіть конструктор у своєму класі та ініціюйте об’єкт класу. З цього об’єкта ви можете робити речі.


це порожня сторінка, коли я запускаю ваш код, не відповідаючи ціні рівня
tttk

@tttk дивіться мою оновлену відповідь.
Боджая

Вибачте, сер, у вас є повний код, щоб відповісти tier_price? це тут мій код foreach ($ tier_price як $ pirces) {echo $ prirces ["ціна"]; //
дістаньте

@tttk зараз спробуйте мій код.
Боджяя

що таке array_reverse ($ tier)? Змінні $ tier?
tttk

7

Щоб отримати рівень рівня для груп клієнтів, використовуйте getTierPrices () замість getTierPrice () . Дивіться приклад коду нижче:

<?php
use \Magento\Framework\App\Bootstrap;
include('/www/magento2.1/app/bootstrap.php');

$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();

$state = $objectManager->get('\Magento\Framework\App\State');
$state->setAreaCode('frontend');

$productId = 1;
$product_obj = $objectManager->create('\Magento\Catalog\Model\Product')->load($productId);

getAnyGroup($product_obj);

function getAnyGroup($product_obj) {
    $tier_price = $product_obj->getTierPrices();

    if(count($tier_price) > 0){
        echo "price_qty\tprice\tCustomerGroupId\n";

        foreach($tier_price as $price){
            echo $price->getQty();
            echo "\t";
            echo $price->getValue();
            echo "\t";
            echo $price->getCustomerGroupId();
            echo "\t";
            echo "\n";
            print_r($price->getData());
            echo "\t";
            echo "\n";
        }
    }
}

Працює для мене в Obsever
Шах

як отримати весь продукт із рівнем ціни. Я хочу показати всю ціну рівня hv на продукт на іншій сторінці
Daniel_12,

@ Daniel_12, чи можна отримати ціну товару за допомогою ідентифікатора групи клієнтів?
jafar pinjar

0

код від Bojjaiah працює, але він показує рівні рівня, як це: "2,252,132,001,88". Як я можу скласти їх так: Купи 1 за 2,52 / Купи 2 за 2,13 / Купи 3 за 2,00 / Купи 4 за 1,88? Дякую!

Це оригінальний код від Bojjaiah:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $product_obj = $objectManager->create('Magento\Catalog\Model\Product')->load(1); $tier_price = $product_obj->getTierPrice();if(count($tier_price) > 0){
foreach($tier_price as $pirces){
    foreach ( array_reverse($pirces) as $k => $v ) {
        if($k == "price"){
            $tp = number_format($v, 2, '.', '');
            echo $tp;
        }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.