Крупнейшая биржа рекламы в Телеграм
0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 1500 Просмотров
*

DiffuSer

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Как сделать вывод количества различных наименований товаров в корзине вместо количества товаров в целом?

Пояснение: продаю развесную продукцию и штучные товары. На вес получаются числа вроде "500 грамм", плюс покупают какой-нибудь аксессуар и в итоге в мини-корзине пишется количество 501, а я хочу, чтобы выводилось "2" (т.е. количество разных товаров в корзине, а не сумма их количеств в корзине). Есть варианты?
*

bolonia

  • Захожу иногда
  • 222
  • 27 / 0
Нужно будет немного изменить 2 файла, выложу сразу готовый варианты, думаю разберетесь что к чему:
Файл: /components/com_virtuemart/themes/default/templates/common/minicart.tpl.php
Код: php
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );

if($empty_cart) { ?>
   
    <div>
    <?php if(!$vmMinicart) { ?>
    <?php }
    echo '<div>' . $VM_LANG->_('PHPSHOP_EMPTY_CART'). "</div>"
    //<a href="index.php?option=com_virtuemart&page=shop.cart&Itemid=1">
    ?>
    </div>
<?php }
else {
    // Loop through each row and build the table
    foreach( $minicart as $cart ) {

foreach( $cart as $attr => $val ) {
// Using this we make all the variables available in the template
// translated example: $this->set( 'product_name', $product_name );
$this->set( $attr, $val );
}
        if(!$vmMinicart) { // Build Minicart
            ?>
            <!--<div style="float: left;">
            <?php echo $cart['quantity'] ?>&nbsp;x&nbsp;<a href="<?php echo $cart['url'] ?>"><?php echo $cart['product_name'] ?></a>
            </div>
            <div style="float: right;">
            <?php echo $cart['price'] ?>
            </div>
            <br style="clear: both;" />-->
            <?php //echo $cart['attributes'];
        }
    }
}
if(!$vmMinicart && !$empty_cart) { ?>
<?php $k = (int)substr($c, -1);
if((int)substr($c, -2, -1)==1){
$k = 0;
}

                $m = array( 0=>'товаров',
                            1=>'товар',
                            2=>'товара',
                            3=>'товара',
                            4=>'товара',
                            5=>'товаров',
                            6=>'товаров',
                            7=>'товаров',
                            8=>'товаров',
                            9=>'товаров',
10=>'товаров',
);
?>
<div style="float: left;" >
В <a href="index.php?option=com_virtuemart&page=shop.cart&Itemid=9999">корзине</a>: <?php echo $c; ?> <?php echo $m[$k]; ?><br /> на сумму <?php echo $total_price ?></div>
<?php } ?>

<?php if (!$empty_cart && !$vmMinicart) { ?>
    <br/><br style="clear:both" /><div align="center">
    <?php //echo $show_cart ?>
    </div><br/>

<?php }
//echo $saved_cart;
?>

Файл /administrator/components/com_virtuemart/html/shop.basket_short.php:
Код: php
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
*
* @version $Id: shop.basket_short.php 1948 2009-09-30 14:32:48Z soeren_nb $
* @package VirtueMart
* @subpackage html
* @copyright Copyright (C) 2004-2009 soeren - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/
mm_showMyFileName( __FILE__ );

require_once(CLASSPATH. 'ps_product.php' );
$ps_product = new ps_product;
require_once(CLASSPATH. 'ps_shipping_method.php' );
require_once(CLASSPATH. 'ps_checkout.php' );
$ps_checkout = new ps_checkout;

global $CURRENCY_DISPLAY, $VM_LANG, $vars,$mosConfig_live_site, $sess, $mm_action_url;

$catid = vmGet($_REQUEST, "category_id", null);
$prodid = vmGet($_REQUEST, "product_id", null);
$page = vmGet($_REQUEST, "page", null);
$flypage = vmGet($_REQUEST, "flypage", null);
$Itemid = vmGet($_REQUEST, "Itemid", null);
$option = vmGet($_REQUEST, "option", null);
$page =vmGet( $_REQUEST, 'page', null );
$tpl = new $GLOBALS['VM_THEMECLASS']();
$cart = $_SESSION['cart'];
$saved_cart = @$_SESSION['savedcart'];
$auth = $_SESSION['auth'];
$empty_cart = false;
$minicart = array();
if ($cart["idx"] == 0) {
$empty_cart = true;
$checkout = false;
$total = 0;
}
else {
$empty_cart = false;
$checkout = True;
$total = $order_taxable = $order_tax = 0;
$amount = 0;
    $c = 0;
$weight_total = 0;
$html="";

// Determiine the cart direction and set vars
if (@$_SESSION['vmCartDirection']) {
$i=0;
$up_limit = $cart["idx"] ;
}
else {
$i=$cart["idx"]-1;
$up_limit = -1;
}
$ci = 0;

//Start loop through cart
do
{
//If we are not showing the minicart start the styling of the individual products

$price = $ps_product->get_adjusted_attribute_price($cart[$i]["product_id"],$cart[$i]["description"]);
$price["product_price"] = $GLOBALS['CURRENCY']->convert( $price["product_price"], $price["product_currency"] );

        $amount += $cart[$i]["quantity"];

        $c++;

$product_parent_id=$ps_product->get_field($cart[$i]["product_id"],"product_parent_id");
if (@$auth["show_price_including_tax"] == 1) {
$my_taxrate = $ps_product->get_product_taxrate($cart[$i]["product_id"] );
$price["product_price"] *= ($my_taxrate+1);
}
$subtotal = round( $price["product_price"], 2 ) * $cart[$i]["quantity"];
$total += $subtotal;
$flypage_id = $product_parent_id;
if($flypage_id == 0) {
$flypage_id = $cart[$i]["product_id"];
}
$flypage = $ps_product->get_flypage($flypage_id);
$category_id = vmGet( $cart[$i], 'category_id', 0 );
if ($product_parent_id) {
$url = $sess->url(URL . "index.php?page=shop.product_details&flypage=$flypage&product_id=$product_parent_id&category_id=$category_id");
}
else {
$url = $sess->url(URL . "index.php?page=shop.product_details&flypage=$flypage&category_id=$category_id&product_id=" . $_SESSION['cart'][$i]["product_id"]);
}
$html = str_replace("_"," ",$ps_product->getDescriptionWithTax( $_SESSION['cart'][$i]["description"], $_SESSION['cart'][$i]["product_id"] ))." ";
if ($product_parent_id) {
$db_detail=$ps_product->attribute_sql($cart[$i]["product_id"],$product_parent_id);
while ($db_detail->next_record()) {
$html .= $db_detail->f("attribute_value"). " ";
}
}
$minicart[$ci]['url'] = $url;
$minicart[$ci]['product_name'] = shopMakeHtmlSafe($ps_product->get_field($_SESSION['cart'][$i]["product_id"], "product_name"));
$minicart[$ci]['quantity'] = $cart[$i]["quantity"];
$minicart[$ci]['price'] = $CURRENCY_DISPLAY->getFullValue( $subtotal );
$minicart[$ci]['attributes'] = $html;
if(@$_SESSION['vmCartDirection']) {
$i++;
}
else {
$i--;
}

$ci++;
} while ($i != $up_limit);
//End loop through cart


}
if( !empty($_SESSION['coupon_discount']) ) {
$total -= $_SESSION['coupon_discount'];
}
if(!$empty_cart) {
if ($amount > 1) {
$total_products = $amount;
}
else {
$total_products = $amount;
}


$total_price = $CURRENCY_DISPLAY->getFullValue( $total );
}
// Display clear cart
$delete_cart = '';
if(@$_SESSION['vmEnableEmptyCart'] && !@$_SESSION['vmMiniCart']) {
// Output the empty cart button
//echo vmCommonHTML::scriptTag( $mosConfig_live_site.'/components/'.$option.'/js/wz_tooltip.js' );
$delete_cart = "<a href=\"".$_SERVER['SCRIPT_NAME'] . "?page=shop.cart_reset&amp;option=com_virtuemart&amp;option2=$option&amp;product_id=$prodid&amp;category_id=$catid&amp;return=$page&amp;flypage=$flypage&amp;Itemid=$Itemid\" title=\"". $VM_LANG->_('PHPSHOP_EMPTY_YOUR_CART')." \">
<img src=\"". $mosConfig_live_site ."/images/cancel_f2.png\" width=\"12\" border=\"0\" style=\"float: right;vertical-align: middle;\" alt=\"". $VM_LANG->_('PHPSHOP_EMPTY_YOUR_CART')." \" />
      </a>";
$html1 = vmToolTip($VM_LANG->_('VM_EMPTY_YOUR_CART_TIP'), $VM_LANG->_('PHPSHOP_EMPTY_YOUR_CART'),'','',$delete_cart,true);
$delete_cart = $html1;

}

$href = $sess->url($mm_action_url."index.php?page=shop.cart");
$href2 = $sess->url($mm_action_url."index2.php?page=shop.cart", true);
$text = $VM_LANG->_('PHPSHOP_CART_SHOW');
if( @$_SESSION['vmUseGreyBox'] ) {
$show_cart = vmCommonHTML::getGreyboxPopUpLink( $href2, $text, '', $text, '', 500, 600, $href );
}
else {
$show_cart = vmCommonHTML::hyperlink( $href, $text, '', $text, '' );
}

$tpl->set('minicart',$minicart);
$tpl->set('empty_cart', $empty_cart);
$tpl->set('delete_cart', $delete_cart);
$tpl->set('vmMinicart', @$_SESSION['vmMiniCart']);
$tpl->set('total_products', @$total_products);
$tpl->set('c', @$c);
$tpl->set('total_price', @$total_price);
$tpl->set('show_cart', @$show_cart);
$saved_cart_text = "";
if($saved_cart['idx'] != 0) {
$saved_cart_text = "<br style=\"clear:both;\"/><a href=\"".str_replace("Itemid=26","Itemid=34",$sess->url($mm_action_url."index.php?page=shop.savedcart"))."\" class=\"savedCart\">".$VM_LANG->_('VM_RECOVER_CART')."</a>";
}
$tpl->set('saved_cart',$saved_cart_text);
echo $tpl->fetch( 'common/minicart.tpl.php');
?>
Бесплатный модуль обратного звонка / обратной связи для J3: http://joomlaforum.ru/index.php?topic=309065.0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart 1.1.4 и https дополнительные фото товаров

Автор Sergey1984

Ответов: 0
Просмотров: 352
Последний ответ 23.10.2018, 19:58:44
от Sergey1984
JComments + VirtueMart (решение проблемы рейтинга товаров)

Автор Oleksii

Ответов: 9
Просмотров: 2542
Последний ответ 13.09.2018, 23:26:17
от bgg87
VMExport YML - Компонент для управления экспортом товаров из VirtueMart 1.1.x на Яндекс.Маркет

Автор jeka5555

Ответов: 5
Просмотров: 3004
Последний ответ 02.07.2017, 21:25:46
от vipiusss
VirtueMart каталог не показывает все категории товаров

Автор vasyun

Ответов: 1
Просмотров: 547
Последний ответ 14.06.2017, 20:30:51
от vasyun
Проблемы с поиском товаров в VirtueMart

Автор fashion_ff

Ответов: 10
Просмотров: 4691
Последний ответ 29.05.2017, 12:54:06
от OutLaw1