Динамическое изменение цен Virtuemart в Joomla при изменении количества товара

Virtuemart — самый популярный компонент Joomla для электронной коммерции. Многие любят его именно из-за его «бесплатности». Потому что в плане удобства — этот компонент нужно долго и нудно оптимизировать. Например, сегодня в Virtuemart нету автоматического обновления стоимости товара при изменении его количества. Да-да, вы не ослышались, в 21 веке данная функции не реализована в этом компоненте даже в самых последних версиях. На сегодня это 3-я версия.

Итак

Как заставить virtuemart менять стоимость товара, когда меняется его цена?

Для этого нам нужно провести совсем небольшой хак с использование технологии ajax, которая необходима как раз для обновления данных без перезагрузки страницы

Данный способ сработает для версий virtuemart 2 и virtuemart 3

  1. Открываем файл productdetails.php, который расположен в\components\com_virtuemart\controllers\productdetails.php
  2. Вызываем строку поиска (CTRL+F), и находим там function recalculate(){в)
  3. Находим строку — $prices = $product_model->getPrice($virtuemart_product_id,$customPrices,$quantity);
  4. Вставляем с новой строки это: $prices[‘salesPrice’]*=$quantity;

30af92b7e1

Ну вот и все 🙂

Если есть вопросы — пишите.
Тут вы можете еще почитать о том, как можно улучшить качество миниатюр в virtuemart

автор: Роман Довгаль

С 2010 года я занимаюсь интернет маркетингом. Сюда входит и SEO, и SMM, и SMO, и, собственно маркетинговое продвижение не только сайтов, а проектов в комплексе :)
Для меня каждый проект – это отдельная жизнь. Своя целевая аудитория, свои методы продвижения, свои показатели результативности :)

3 комментария

  1. Единственное, человек может использовать не salesPrice, тогда можно кипу закинуть))
    $prices[‘basePrice’]* = $quantity;
    $prices[‘basePriceWithTax’] *= $quantity;
    $prices[‘discountedPriceWithoutTax’]*= $quantity;
    $prices[‘salesPrice’]* = $quantity;
    $prices[‘salesPriceWithDiscount’]* = $quantity;
    $prices[‘taxAmount’]* = $quantity;
    $prices[‘discountAmount’]* = $quantity;
    $prices[‘basePriceWithTax’]* = $quantity;

  2. не работает на vm3.0.18, более того после добавления этой строки перестает работать пересчет цены в товаре через наценку в доп полях! Печалька(

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *