Joomla! България
Joomla! - Общи теми => Компоненти => VirtueMart => Темата е започната от: Михаил Михов в 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']<0 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']<0 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;
}
И да си промените езиковия файл от 'базова цена' на 'стара цена' или както прецените и сте гтови.
Успех!
-
И аз много се ядосвах докато го правих на моя магазин. А какви ядове брах докато го направя и да изчислява отстъпката в процент от цената без отстъпка .... :-\
-
Мишо, а трябва да се изтрият всички стари продукти и категории който вече за добавени? :-[
Нещо не те разбрах.
Искам просто ново добавените продукти да имат опция за промо цена.
-
Мишо, а трябва да се изтрият всички стари продукти и категории който вече за добавени? :-[
Нещо не те разбрах.
Искам просто ново добавените продукти да имат опция за промо цена.
Нищо не се трие, просто се редактират тези 3 файла 'дефолт' в 2-те директории и цсс файла отговорен за магазина.
Имай предвид, че този код е от доста става версия на 2-ката и ще трябва да се потърси дали няма промяна в новите версии.
-
А дали има решение за VirtueMart 3.0.9 ?
-
А дали има решение за VirtueMart 3.0.9 ?
Колега,
ти отвори ли файловете да видиш?
-
ти отвори ли файловете да видиш?
В тази връзка, ако в папката на шаблона нямаш директория /html/com_virtuemart/ ще трябва или да я създадеш за да вади файловете от там /* но прочети документацията за тази възможност как става*/
или трябва да ги търсиш в компонента и там да редактираш.
Съответно:
/components/com_virtuemart/views/productdetails/tmpl/default.php - за продукта
/components/com_virtuemart/views/category/tmpl/default.php - за категорията
-
Би трябвало файловете да са същите.
Ще ги проверя тия дни и ще дам отзив дали е приложимо и за 3.х
Полезна информация
Благодаря
-
Колеги,
направих да се показва стара и нова цена на продукт в категория, но въпроса ми е как да забраня когато няма намаление да не се показват старата и новата цена! защо се получава една и съща цена, като едната е задраскана?
Благодаря предварително.
В момента кода изглежда така:
<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>
-
//Този софтуер стана много тегав, няма ли вече решение на въпроса? Питам, защото отдавна на го следя и нямам инсталация на него.
По темета:
Опитай да промениш кода от и дано стане:
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) :
-
Има решение... има си шаблони които решават всички визуални проблеми...
-
За съжаление не става! Само да уточня, че salesPrice ми е крайна, тя се показва винаги със или без Т.О., променливата е basePriceWithTax!
-
Сложи проверка и дискаунта ще ти го показва само когато го има
if ($product->prices['discountAmount'] != -0) {
echo $this->$currency->createPriceDiv ('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices);
}