จะได้รับ Tier ราคาของผลิตภัณฑ์ 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 ราคา

คำตอบ:


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% ดูรูปบันทึกของฉันด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

สร้างตัวสร้างในชั้นเรียนของคุณและเริ่มวัตถุชั้นเรียน จาก Object นั้นคุณสามารถทำสิ่งต่างๆได้


มันหน้าว่างเมื่อฉันเรียกใช้รหัสของคุณไม่ได้สะท้อนราคาระดับ
tttk

@tttk ดูคำตอบที่อัปเดตของฉัน
Bojjaiah

ขออภัยคุณมีรหัสเต็มเพื่อ echo tier_price? ที่นี่รหัสของฉัน foreach ($ tier_price เป็น $ pirces) {echo $ prirces ["price"]; // รับแต่ละอัน}
tttk

@tttk ลองใช้รหัสของฉัน
Bojjaiah

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
Ankit Shah

วิธีรับผลิตภัณฑ์ทั้งหมดในราคาระดับเดียวกัน ฉันต้องการแสดงราคาระดับ 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;
        }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.