Две цены у товара. Virtuemart 2.

Потребовалось отобразить 2 цены у товара и не просто цену из пункта перезаписи окончательной цены(override). А цены для произвольной группы(пример оптовики) для группы по умолчанию или "для всех", но не обрабатывать заказ по ней.

Фактически цена одной группы покупателей показывается для другой группы покупателей.

Вот что получилось.

/***************************************/
/* Вывода цены для доп.группы : начало */
$product = $this->product;// зависит от шаблона надо или нет
$loadForShopperGroupId = 5; //айди группы для которой будем выводить цену
$productModel = VmModel::getModel('product');
$shoppergroupsprices = $productModel->loadProductPrices($product->virtuemart_product_id,
                         $quantity,array($loadForShopperGroupId),true);
foreach ($shoppergroupsprices as $sgPrice) {
  if ($sgPrice['virtuemart_shoppergroup_id'] == $loadForShopperGroupId) {
    $clubprice = $sgPrice['product_price'];
    if ($sgPrice['override']==1) {
      $clubprice = $sgPrice['product_override_price'];
    } elseif ($sgPrice['override']==-1) {
      //Получить скидку.
      $total_vat_tax = 0;
      foreach ($product->prices['VatTax'] as $vat_tax) {
        $total_vat_tax = $total_vat_tax + $vat_tax[1];
      }
      $total_vat_tax = 1 + ($total_vat_tax / 100);
      $clubprice = $sgPrice['product_override_price'] * $total_vat_tax;
    }
    echo '<div class="optprice">';
    echo 'Цена Опт: '. $this->currency->priceDisplay($clubprice,0,1,false,2,'Оптовая' );
    echo '</div>';
  }
}
/* Вывода цены для доп.группы : конец */
/**************************************/

Источник https://www.daycounts.com/how-to/74-how-to-display-a-product-price-from-another-shopper-group

Заметили ошибку, можете подсказать еще что-то? - Обращаемся сюда

Примеры работ

Информация