Массив из tier prices можно получить в Magento 2 несколькими способами.
Например, как то так:
$allTiers = $_product->getTierPrice();
$checktiers = array_filter($allTiers);
или в шаблоне tier_prices.phtml можно собрать его внутри цикла foreach - как вариант
$tierPriceArray[] = array('qty'=> $price['price_qty'], 'price'=> $price['website_price]?>
В общем в любом случае я могу легко передать на фронтенд json предстваление массива с этими ценами,
и выглядит это примерно так.
[{"price_id":"30","website_id":"0","all_groups":"1","cust_group":32000,"price":"45.490000","price_qty":"5.0000","percentage_value":null,"website_price":"45.490000"},{"price_id":"31","website_id":"0","all_groups":"1","cust_group":32000,"price":"39.990000","price_qty":"15.0000","percentage_value":null,"website_price":"39.990000"},{"price_id":"32","website_id":"0","all_groups":"1","cust_group":32000,"price":"35.000000","price_qty":"30.0000","percentage_value":null,"website_price":"35.000000"},{"price_id":"33","website_id":"0","all_groups":"1","cust_group":32000,"price":"33.120000","price_qty":"33.0000","percentage_value":null,"website_price":"33.120000"}]
В моем случае важно количество и цена, видно что кол-во это price_qty а цена это price или website_price
Но! в любом случае я получаю на выходе цены без налога. У меня 2 сторвью, один для фирм, другой для частников, и цены в одном с ндс, в другом -без. И надо получать в обоих случаях корректные цены.
Тут закавыка для меня, что в ядре магенто все реализовано корректно, и если у продукта есть такие цены, то выводятся они как надо, т.е. если налог есть, то с налогом.
Вот
дефолтный файл шаблона tier_prices.phtml, в котором выводится таблица с этими ценами.
как видно, цены в этой таблице выводятся переменной $priceAmountBlock, причем выводятся корректно. Эта переменная содержит кроме цен еще и html теги. В принципе я их могу несложно очистить и получить нужный мне массив с корректными ценами. Но получить его я могу только внутри цикла, если я захочу получить его еще раз после цикла, то элемент массива price - равный $priceAmountBlock будет всегда иметь последнее значение.
Если же я в качестве элемента массива price беру $price['price'] или $price['website_price'], то цены получаю разные, но без налога.
Как я понимаю, именно где то в формировании переменной $priceAmountBlock и скрыто то что мне надо - как привести цену к цене с налогом, но где и как это точно - не понимаю в связи со слабыми знаниями php.