Joomla! България

Joomla! - Общи теми => Компоненти => VirtueMart => Темата е започната от: Михаил Михов в 16 Април, 2014, 19:13:16

Титла: Код за задраскаване на старата цена при отстъпка
Публикувано от: Михаил Михов в 16 Април, 2014, 19:13:16
Днес ми се наложи пак да пиша нещо елементарно и много съм ядосан. За пореден път се убеждавам, че, 2-ката на марта е много ненакърнен магазин...
За нещо елементарно като задраскване са старата цена и показване само при налично намаление на продукта се налага да преработвам файловете.

Та по темата:
В магазина има 3 цени. Продажна сена, Стара цена /*базова цена*/ и сума на отстъпката.

Изчистете всички цени във вашите файлове за категория и продукт:
за категория:
папка на вашия шаблон/html/com_virtuemart/categories
за продукт:
папка на вашия шаблон/html/com_virtuemart/productdetails
и добавете на мястото:
за категория
<?php
if ($this->show_prices == '1') {
if (
$product->prices['discountAmount']<and VmConfig::get ('askprice'1) and  !$product->images[0]->file_is_downloadable) {
echo 
$this->currency->createPriceDiv('basePrice','COM_VIRTUEMART_PRODUCT_BASEPRICE',$product->prices);
}
echo 
$this->currency->createPriceDiv('discountAmount','COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT',$product->prices);
echo 
$this->currency->createPriceDiv('salesPrice','COM_VIRTUEMART_PRODUCT_SALESPRICE',$product->prices);
?>



за продукта:
<?php
if ($this->product->prices['discountAmount']<and VmConfig::get ('askprice'1) and  !$product->images[0]->file_is_downloadable) {
echo 
$this->currency->createPriceDiv ('basePrice''COM_VIRTUEMART_PRODUCT_BASEPRICE'$this->product->prices);
}
echo 
$this->currency->createPriceDiv 'salesPrice''COM_VIRTUEMART_PRODUCT_SALESPRICE'$this->product->prices ); 
echo 
$this->currency->createPriceDiv 'discountAmount''COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT'$this->product->prices );
?>


Остава само да промените цсс-а отговорен за магзина:
div.PricebasePrice .PricebasePrice {
    text-decoration: line-through;
}

И да си промените езиковия файл от 'базова цена' на 'стара цена' или както прецените и сте гтови.
Успех!
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: MOn dsoffn в 16 Април, 2014, 20:39:51
И аз много се ядосвах докато го правих на моя магазин. А какви ядове брах докато го направя и да изчислява отстъпката в процент от цената без отстъпка ....  :-\
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: mac в 19 Октомври, 2015, 21:32:25
Мишо, а трябва да се изтрият всички стари продукти и категории който вече за добавени?  :-[

Нещо не те разбрах.

Искам просто ново добавените продукти да имат опция за промо цена.
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: Михаил Михов в 20 Октомври, 2015, 08:44:27
Мишо, а трябва да се изтрият всички стари продукти и категории който вече за добавени?  :-[

Нещо не те разбрах.

Искам просто ново добавените продукти да имат опция за промо цена.

Нищо не се трие, просто се редактират тези 3 файла 'дефолт' в 2-те директории и цсс файла отговорен за магазина.
Имай предвид, че този код е от доста става версия на 2-ката и ще трябва да се потърси дали няма промяна в новите версии.
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: mac в 20 Октомври, 2015, 15:59:44
А дали има решение за VirtueMart 3.0.9  ?
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: Бого в 20 Октомври, 2015, 21:50:02
А дали има решение за VirtueMart 3.0.9  ?

Колега,

ти отвори ли файловете да видиш?
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: Михаил Михов в 20 Октомври, 2015, 23:10:02
ти отвори ли файловете да видиш?

В тази връзка, ако в папката на шаблона нямаш директория /html/com_virtuemart/ ще трябва или да я създадеш за да вади файловете от там /* но прочети документацията за тази възможност как става*/
или трябва да ги търсиш в компонента и там да редактираш.
Съответно:
/components/com_virtuemart/views/productdetails/tmpl/default.php - за продукта
/components/com_virtuemart/views/category/tmpl/default.php - за категорията
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: sashomasho в 09 Януари, 2017, 12:12:02
Би трябвало файловете да са същите.
Ще ги проверя тия дни и ще дам отзив дали е приложимо и за 3.х
Полезна информация
Благодаря
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: AngelinStoev в 04 Април, 2018, 22:10:40
Колеги,

направих да се показва стара и нова цена на продукт в категория, но въпроса ми е как да забраня когато няма намаление да не се показват старата и новата цена! защо се получава една и съща цена, като едната е задраскана?

Благодаря предварително.

В момента кода изглежда така:
<div class="catProductPrice" id="productPrice<?php echo $product->virtuemart_product_id ?>">
                        <?php
                        if ($this->show_prices == '1') :
                           if ($product->prices['salesPrice']<=0 and VmConfig::get ('askprice', 1) and  !$product->images[0]->file_is_downloadable) :
                              echo JText::_ ('COM_VIRTUEMART_PRODUCT_ASKPRICE');
                           endif;
                           echo $this->currency->createPriceDiv('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices);
                           echo $this->currency->createPriceDiv('salesPrice', '', $product->prices);
                        endif; ?>
                     </div>
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: Михаил Михов в 04 Април, 2018, 23:37:25
//Този софтуер стана много тегав, няма ли вече решение на въпроса? Питам, защото отдавна на го следя и нямам инсталация на него.
По темета:
Опитай да промениш кода от и дано стане:
if ($product->prices['salesPrice']<=0 and VmConfig::get ('askprice', 1) and  !$product->images[0]->file_is_downloadable) :на:
if ($product->prices['salesPrice']<0 and VmConfig::get ('askprice', 1) and  !$product->images[0]->file_is_downloadable) :
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: sashomasho в 05 Април, 2018, 08:04:59
Има решение... има си шаблони които решават всички визуални проблеми...
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: AngelinStoev в 05 Април, 2018, 08:19:14
За съжаление не става! Само да уточня, че salesPrice ми е крайна, тя се показва винаги със или без Т.О., променливата е basePriceWithTax!
Титла: Re: Код за задраскаване на старата цена при отстъпка
Публикувано от: Любо в 12 Април, 2018, 19:22:36
Сложи проверка и дискаунта ще ти го показва само когато го има

if ($product->prices['discountAmount'] != -0) {
        echo $this->$currency->createPriceDiv ('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices);
     }