Come ottenere il livello di prezzo del prodotto magento2?


11

Come ottenere il prezzo di livello del prodotto in Magento 2 con codice personalizzato?

Questo è il mio codice

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

e la mia funzione di chiamata in .phtml

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

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

echo getName, getPrice, getSpecial price funziona

ma getTierPrice non funziona.

ex. Ho una tessera membro VIP (customer_group) Voglio mostrare la tessera membro VIP prezzo pubblico al livello non impostare tutto il gruppo Voglio mostrare la tessera VIP per il prezzo di livello

Risposte:


6

Puoi ottenere il TierPrice come di seguito.

$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_objavere un prodotto dati si prega di controllare o debuttarlo si può sapere. Funzionerà al 100%. vedi la mia foto di registro qui sotto.

inserisci qui la descrizione dell'immagine

Crea un costruttore nella tua classe e avvia l'oggetto class. Da quell'oggetto puoi fare cose.


è una pagina vuota quando
eseguo il

@tttk vedi la mia risposta aggiornata.
Bojjaiah,

scusate signore, avete il codice completo per echo tier_price? qui il mio codice foreach ($ tier_price come $ pirces) {echo $ prirces ["price"]; // prendi ognuno}
tttk

@tttk ora prova il mio codice.
Bojjaiah,

che cos'è array_reverse ($ tier)? Variabili $ tier?
tttk,

7

Per ottenere il prezzo di livello per i gruppi di clienti, utilizzare getTierPrices () anziché getTierPrice () . Si prega di consultare il seguente codice di esempio:

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

Funziona per me in Obsever
Ankit Shah,

come ottenere tutti i prodotti con un prezzo di livello. Voglio mostrare tutto il prezzo del livello hv del prodotto in un'altra pagina
Daniel_12

@ Daniel_12, possiamo ottenere il prezzo del prodotto utilizzando l'ID del gruppo di clienti?
jafar pinjar,

0

codice di Bojjaiah funziona ma mostra i prezzi di livello come questo: "2.252.132.001,88". Come posso metterli in questo modo: compri 1 per 2,52 / compri 2 per 2,13 / compri 3 per 2,00 / compri 4 per 1,88? Grazie!

Questo è il codice originale di 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;
        }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.