उत्पाद 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());

गूंज getName, getPrice, getSpecial मूल्य कार्य

लेकिन getTierPrice काम नहीं कर रहा है।

पूर्व। मेरे पास वीआईपी सदस्य कार्ड है (customer_group) मैं सार्वजनिक रूप से सभी समूह को सेट नहीं करने के लिए स्तरीय मूल्य वीआईपी सदस्य कार्ड दिखाना चाहता हूं मैं टीयर मूल्य वीआईपी सदस्य कार्ड दिखाना चाहता हूं

जवाबों:


6

आप नीचे दिए गए अनुसार टीयरप्राइस प्राप्त कर सकते हैं।

$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

सॉरी सर, क्या आपके पास tier_price को इको करने के लिए पूरा कोड है? यहाँ मेरा कोड foreach ($ तीरों के रूप में $ tier_price) {गूंज $ prirces ["मूल्य"]; // हर एक को प्राप्त करें
tttk

@tttk अब मेरा कोड आज़माएं।
बोझाजा

array_reverse ($ tier) क्या है? चर $ टियर?
tttk

7

ग्राहक समूहों के लिए स्तरीय मूल्य प्राप्त करने के लिए, getTierPrice () के बजाय getTierPrices () का उपयोग करें । कृपया नीचे उदाहरण कोड देखें:

<?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";
        }
    }
}

मेरे लिए ऑब्जर्वर में काम करता है
अंकित शाह

कैसे tier कीमत के साथ सभी उत्पाद प्राप्त करने के लिए। मैं सभी उत्पाद hv tier की कीमत अलग-अलग पृष्ठ
Daniel_12

@ डैनियल_12, क्या हम ग्राहक समूह आईडी का उपयोग करके उत्पाद मूल्य प्राप्त कर सकते हैं?
जफ़र पिंजर

0

Bojjaiah से कोड काम करता है लेकिन यह इस तरह की कीमतों को दिखाता है: "2,252,132,001,88"। मैं उन्हें इस तरह कैसे डाल सकता हूं: 2,52 के लिए 1 खरीदें / 2,13 के लिए 2 खरीदें / 2,00 के लिए 3 खरीदें / 1,88 के लिए 4 खरीदें? धन्यवाद!

यह बोझाजिया का मूल कोड है:

$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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.