製品magento2のTier価格を取得するにはどうすればよいですか?


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価格が機能します

しかしgetTierPriceは機能していません。

例:VIPメンバーカード(customer_group)があります。ティア価格の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私の更新された答えを見てください。
Bojjaiah 16

すみません、tier_priceをエコーする完全なコードはありますか?ここに私のコードforeach($ tier_price as $ pirces){echo $ prirces ["price"]; //それぞれを取得します}
tttk

@tttkが私のコードを試してみます。
Bojjaiah

array_reverse($ tier)とは何ですか?変数$ tier?
tttk 16

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での私の仕事
Ankit Shah

ティア価格ですべての製品を入手する方法。すべての製品の
hv

@ Daniel_12、顧客グループIDを使用して製品価格を取得できますか?
jafar pinjar

0

Bojjaiahのコードは機能しますが、「2,252,132,001,88」のようなティア価格が表示されます。どのように私はそれらをこのように置くことができます:2,52で1を買う/ 2,13で2を買う/ 2,00で3を買う/ 1,88で4を買う?ありがとうございました!

これは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;
        }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.