Comment obtenir le prix Tier du produit magento2?

11

Comment obtenir le prix de niveau du produit dans Magento 2 avec un code personnalisé?

C'est mon code

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

et ma fonction d'appel en .phtml

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

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

echo getName, getPrice, getSpecial price fonctionne

mais getTierPrice ne fonctionne pas.

ex. J'ai une carte de membre VIP (client_groupe) Je veux montrer la carte de membre VIP au prix de niveau au public pas tout le groupe Je souhaite afficher la carte de membre VIP à prix échelonné

tttk
la source

Réponses:

6

Vous pouvez obtenir le TierPrice comme ci-dessous.

$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_objavoir des données sur un produit s'il vous plaît vérifier ou débuter, vous pouvez le savoir. Cela fonctionnera à 100%. voir ma photo de journal ci-dessous.

entrez la description de l'image ici

Créez un constructeur dans votre classe et lancez l'objet de classe. À partir de cet objet, vous pouvez faire des choses.

Bojjaiah
la source
il page blanche lorsque je lance votre code pas le prix écho
tttk
@tttk voir ma réponse mise à jour.
Bojjaiah
désolé monsieur, avez-vous le code complet pour faire écho à tier_price? ici mon code foreach ($ tier_price as $ pirces) {echo $ prirces ["price"]; // obtenir chacun}
tttk
@tttk essaie maintenant mon code.
Bojjaiah
qu'est-ce que array_reverse ($ tier)? Variables $ tier?
tttk du
7

Pour obtenir le prix du niveau pour les groupes de clients, utilisez getTierPrices () au lieu de getTierPrice () . Veuillez voir l'exemple de code ci-dessous:

<?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";
        }
    }
}
Jun Xie
la source
Fonctionne pour moi à Obsever
Ankit Shah
comment obtenir tous les produits avec un prix de niveau. Je veux afficher le prix de tous les produits HV dans différentes pages
Daniel_12
@ Daniel_12, pouvons-nous obtenir le prix du produit en utilisant l'ID du groupe de clients?
jafar pinjar
0

le code de Bojjaiah fonctionne mais il montre les prix des niveaux comme ceci: "2,252,132,001,88". Comment puis-je les mettre comme ceci: Achetez 1 pour 2,52 / Achetez 2 pour 2,13 / Achetez 3 pour 2,00 / Achetez 4 pour 1,88? Je vous remercie!

Voici le code original de 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;
        }
Anton Ulrich
la source