Làm thế nào để có được Cấp giá của sản phẩm magento2?


11

Làm cách nào để có được mức giá của sản phẩm trong Magento 2 với mã tùy chỉnh?

Đây là mã của tôi

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

và chức năng gọi của tôi trong .phtml

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

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

echo getName, getprice, get Giá đặc biệt hoạt động

nhưng getTierprice không hoạt động.

Ví dụ. Tôi có thẻ thành viên VIP (customer_group) Tôi muốn hiển thị thẻ thành viên VIP giá thành công khai không đặt tất cả nhóm Tôi muốn hiển thị thẻ thành viên VIP giá

Câu trả lời:


6

Bạn có thể nhận được Tierprice như dưới đây.

$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_objcó dữ liệu sản phẩm vui lòng kiểm tra hoặc ra mắt nó bạn có thể biết. Nó sẽ hoạt động 100%. xem pic đăng nhập của tôi dưới đây.

nhập mô tả hình ảnh ở đây

Tạo constructor trong lớp của bạn và khởi tạo đối tượng lớp. Từ đối tượng đó bạn có thể làm công cụ.


nó trống trang khi tôi chạy mã của bạn không lặp lại giá tầng
tttk

@tttk xem câu trả lời cập nhật của tôi.
Bojjaiah

xin lỗi ngài, bạn có mã đầy đủ để echo tier_price không? nó ở đây mã của tôi foreach ($ tier_price là $ pirces) {echo $ prirces ["price"]; // lấy từng cái}
tttk

@tttk bây giờ hãy thử mã của tôi.
Bojjaiah

mảng numverse ($ tier) là gì? Biến $ tier?
tttk

7

Để có được mức giá cho các nhóm khách hàng, hãy sử dụng getTierPrices () thay vì getTierprice () . Vui lòng xem mã ví dụ dưới đây:

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

Làm việc cho tôi trong Obsever
Ankit Shah

Làm thế nào để có được tất cả các sản phẩm với giá tier. Tôi muốn hiển thị tất cả giá của sản phẩm hv ở các trang khác nhau
Daniel_12

@ Daniel_12, chúng tôi có thể lấy giá sản phẩm bằng id nhóm khách hàng không?
jafar pinjar

0

mã từ Bojjaiah hoạt động nhưng nó hiển thị giá bậc như thế này: "2,252,132,001,88". Làm thế nào tôi có thể đặt chúng như thế này: Mua 1 với giá 2,52 / Mua 2 với giá 2,13 / Mua 3 với giá 2,00 / Mua 4 với giá 1,88? Cảm ơn bạn!

Đây là mã gốc từ 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;
        }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.