Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 9003 Просмотров
*

numen

  • Захожу иногда
  • 53
  • 3 / 0
Собрав с форума по частям инфу, удалось сделать из категории прайс-лист, правда не до конца работает функционал по добавлению в корзину (радио-боксы не добавляются и вылезают сообщения: "Предупреждение: Пожалуйста, введите допустимое значение для этой позиции.").

Альфа версия тут

Прайс-лист создан с помощью зависимых товаров. Если кто не знает как их добавлять, делается это так:
В карточке товара в админке:
1. Нажимаем кнопку "Добавить свойство" - добавляем свойство, например вес, цвет и тд. - сохраняемся
2. Снова заходим в карточку этого товара - появляется кнопка "Новая позиция", жмем ее и добавляем зависимый (дочерний) товар (точно также как и простой), пишем (если надо) дополнительное свойство, что задали в первом пункте... Сохраняемся
3. Так же нажимая кнопку "Новая позиция", создаем другие позиции...
4. Чек-боксы, радио-боксы, количество и кнопки, настраивается в закладке "Показать опции"


Что было сделано с кодом?

1. Вывод расширенных атрибутов корзины в категории

в файле: site\administrator\components\com_virtuemart\html\shop.browse.php - комментируем или удаляем эту строчку (отвечает за вывод корзины с атрибутами в категории)
// && !ps_product::product_has_attributes( $db_browse->f('product_id'), true )

в этом файле: site\components\com_virtuemart\themes\default\templates\browse\includes\addtocart_form.tpl.php,
меняем <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?>
на это: <?php list($html,$children) = $ps_product_attribute->list_attribute( ( $product_parent_id > 0 )  ? $product_parent_id : $product_id ); echo $html; ?>


2. Оформление

а) Создаем новый файл browse_price.php и в админке привязываем его к нужной категории
код файла совсем простой - оставляем только заголовок и корзину:
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); mm_showMyFileName(__FILE__); ?>
<h3><?php echo $product_name ?></h3>
   <?php echo $form_addtocart ?>

б) За вывод свойств зависимых товаров отвечает файл addtocart_list_single.tpl.php (если захотите поменять дизайн, убрать ненужные поля и тд...) При этом обратите внимание, что стандартный файл криво отображает свойства в браузере Firefox...


Что нужно доделать:
1. Нормальное добавление товаров в корзину из категории, без предупреждающих сообщений
2. "Список свойств" в карточке товара и в категории должен различается (с названием поля и без)
3. При удалении товара из корзины, при нажатии ссылки "Продолжить покупки" - открывается список всех (!) товаров, а должен открываться последний (прайс-лист)
4. Корзина с зависимыми товарами выводится во всех категориях (я просто удалил корзину в остальных категория и заказ происходит там только через карточку)...

Предлагаю всем вместе довести эту задумку "до ума" и пользоваться...

Если у меня самостоятельно что-то получится, буду добавлять решения...
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
напиши свои варианты в addtocart_list?
*

numen

  • Захожу иногда
  • 53
  • 3 / 0
addtocart_list_single.tpl.php - мой вариант:
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<?php
mm_showMyFileName(__FILE__);

// Start Ouputing the Child Detail
?>
<div class="vmCartDetails<?php echo $cls_suffix ?>">
    <!-- Output The heading -->
    <?php if($display_header == "Y") { ?>
        <div class="vmCartChildHeading<?php echo $cls_suffix ?>">
            <span style="float: left;width: <?php echo $desc_width ?>;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_DESC_TITLE')?></span >
            <?php //Ouput Each Attribute Heading
            foreach($headings as $key => $value) { ?>
                <span style="float: left;width: <?php echo $attrib_width ?>;" ><?php echo $headings[$key] ?></span>
            <?php } ?>
            <span style="float: right;width: 15%;"><?php echo $VM_LANG->_('PHPSHOP_CART_QUANTITY')?></span>
            <span style="float: right;width: 12%;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_INVENTORY_PRICE')?></span>
        </div>
        
    <?php }
// Loop through each row and build the table
foreach( $products as $product ) {
    foreach( $product 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 );
    }
    ?>
      
    
<!-- ОБЩИЙ КОНТЕЙНЕР (БЕЛЫЙ) -->  

    <div class="vmCartChild<?php echo $cls_suffix ?>">
    
    <!-- ОПЦИИ ЗАВИСИМЫХ ТОВАРОВ -->  
    
        <div class="vmCartChildElement<?php echo $cls_suffix ?>">
            <input type="hidden" name="prod_id[]" value="<?php echo $product['product_id'] ?>" />
            <input type="hidden" name="product_id" value="<?php echo $product['parent_id'] ?>" />
            <?php if( $child_link ) : ?>
            <label for="selItem<?php echo $product['product_id'] ?>">
            <?php endif; ?>
           <div class="vmChildDetail" style="float: left;width:50%;">  
                <?php echo $product['product_title'] ?></div>
          
          
          
            <?php // Ouput Each Attribute (Вывод каждого атрибута)
if( !empty( $product['attrib_value'] )) {
foreach($product['attrib_value'] as $attribute) { ?>
<span class="vmChildDetail<?php echo $cls_suffix ?>" style="width :<?php echo $attrib_width ?>;" />
<?php echo " ".$attribute ?></span>
<?php
}
}
?>
<?php if( $child_link ) : ?>
</label>
<?php endif; ?>

            
            

<?php
          
            if (USE_AS_CATALOGUE != '1' ) { ?>
            
                <!-- Вывод цены -->  
            
<div class="vmChildDetail" style="float: right;width:85px;text-align:right;"> <?php }
            // Output Price
            if( $_SESSION['auth']['show_prices'] && _SHOW_PRICES) {
                ?>
                
                <?php
                if( $product['price'] != $product['actual_price'] ) { ?>
                
                <?php
}
?>
                <?php echo $product['actual_price'] ?>
 
              </div>
              
               <!-- Вывод quantity_box -->    
                    <div style="float: right;width:40px;text-align:right;"> <?php echo $product['quantity_box'] ?></div>
              
              
              
            <?php } ?>


        
        
        
        
   <!-- НИСПАДАЮЩИЙ СПИСОК ДОПОЛНИТЕЛЬНЫХ ОПЦИЙ -->    
        
      <div style="float: right;width:150px;">    
<?php
        // Out Put Product Type
        if ($display_product_type == "Y" && $product['product_type'] != "") { ?>    
            <?php echo $cls_suffix ?>
            <?php echo $product['product_type'] ?>
            
        <?php }
        // Output Advanced & Custom Attributes
        if(USE_AS_CATALOGUE != '1' && ($product['advanced_attribute'] != "" || $product['custom_attribute'] != "")) { ?>
           <?php echo $cls_suffix ?>
                <?php if($product['advanced_attribute']) {
                    echo $product['advanced_attribute'];
                }
                if($product['custom_attribute']) {
                    echo $product['custom_attribute'];
                }
            ?>
            
        <?php } ?>
    </div>
    </div>
    </div>
    <!-- ОБЩИЙ КОНТЕЙНЕР (БЕЛЫЙ) КОНЕЦ-->  
    
<?php } ?>



<!-- Future Use -->
<input type="hidden" name="set_price[]" value="" />
<input type="hidden" name="adjust_price[]" value="" />
<input type="hidden" name="master_product[]" value="" />
</div >


Стили сами подбирайте
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
numen спасибо за идею!



в свойствах отметил чтобы напротив были корзины и подредактировал addtocart_list_multi.tpl (мне доп свойства не нужны) сразу вся инфа в титле, линии для вида стоят, стили думаю каждый сможет сделать под себя, ну и меня можно подредактировать, я ещё пока не гуру... :

Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<?php
mm_showMyFileName(__FILE__);

// Start Ouputing the Child Detail
?>

<!-- Output The heading -->
<?php if($display_header == "Y") { ?>
<div class="vmCartChildHeading" style="border: #E9ECEF solid 1px; padding-bottom:2px;">
        <span style="float: left ;width: 40%; margin-left:5px;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_DESC_TITLE')?></span>
        <span style="float: left;width: 14%;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_INVENTORY_PRICE')?></span>
        <span style="float: left;width: 19%;"><?php echo $VM_LANG->_('PHPSHOP_CART_QUANTITY')?></span>
   </div>
    <br/>

<div class="vmCartChildHeading" style="border: #E9ECEF solid 1px;">
<?php

// Loop through each row and build the table
foreach( $products as $product ) {

    foreach( $product 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( CHECK_STOCK == '1' && !$product['product_in_stock'] ) {
     $notify = true;
    } else {
     $notify = false;
    }
    
    ?>

    
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $product['product_id'] ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
            <span style="float: left ; width: 35%; border: #E9ECEF solid 1px; padding:5px;"><?php echo $product['product_title'] ?></span>
             <span style="float: left ; width: 15%; border: #E9ECEF solid 1px; padding:5px;">  
               <?php

                if (USE_AS_CATALOGUE != '1'  && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL'))) {

$button_lbl = $VM_LANG->_('PHPSHOP_CART_ADD_TO');
$button_cls = 'addtocart_button';
if( CHECK_STOCK == '1' && !$product['product_in_stock'] ) {
$button_lbl = $VM_LANG->_('VM_CART_NOTIFY');
$button_cls = 'notify_button';
}

                 ?>
               <?php }
                // Output Price
                if( $_SESSION['auth']['show_prices'] && _SHOW_PRICES) {  ?>          
                    
                    <?php
                    if( $product['price'] != $product['actual_price'] ) { ?>
                       <?php echo $product['price'] ?>&nbsp;
                    <?php }
                    echo $product['actual_price'] ?></span>
                
<span style="float: left ; width: 20%; border: #E9ECEF solid 1px;">  
<?php }
                // Output Quantity Box
                
if (USE_AS_CATALOGUE != '1' ) { ?>
                    <?php echo $product['quantity_box'] ?>
                    <?php } ?>
</span>
                
<span style="float: right ; border: #E9ECEF solid 1px;">
                <input type="submit" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" /></span>
                 </span><br style="clear: both;">
            <input type="hidden" name="flypage" value="shop.<?php echo $product['flypage'] ?>" />
            <input type="hidden" name="category_id" value="<?php echo $product['category_id'] ?>" />
            <input type="hidden" name="page" value="shop.cart" />
            <input type="hidden" name="func" value="cartAdd" />
            <input type="hidden" name="option" value="com_virtuemart" />
            <input type="hidden" name="Itemid" value="<?php echo $product['Itemid'] ?>" />
            <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
            <input type="hidden" name="master_product[]" value="" />    
    
                
    
</form>

    
    <?php } ?>
     <?php } ?>



мдя... чёт кнопка корзины перестала работать  :(
« Последнее редактирование: 11.03.2010, 22:30:45 от skyscraper »
*

numen

  • Захожу иногда
  • 53
  • 3 / 0
numen спасибо за идею!
в свойствах отметил чтобы напротив были корзины и подредактировал addtocart_list_multi.tpl (мне доп свойства не нужны) сразу вся инфа в титле, линии для вида стоят, стили думаю каждый сможет сделать под себя, ну и меня можно подредактировать, я ещё пока не гуру... :

Всегда пожалуйста! А кто гуру? Это мой первый магазин и третий сайт на Joomla...
Я больше специалист по рекламе и маркетингу, а программирование так - изучаю потихоньку...
Кто бы мне помог довести мою задумку до ума?...
*

numen

  • Захожу иногда
  • 53
  • 3 / 0
мдя... чёт кнопка корзины перестала работать  :(

Оставь одну кнопку корзины и убери стрелочки от поля количество, да и само поле сделай меньше (сейчас в него пятизначное число помещается) - так будет удобнее клиентам...
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
кнопки мне как раз нужны =)
поле ещё подредактирую, просто как идею выложил...
*

numen

  • Захожу иногда
  • 53
  • 3 / 0
*

exBill

  • Новичок
  • 8
  • 0 / 0
Привет. numen а как убрать предупреждение?
*

numen

  • Захожу иногда
  • 53
  • 3 / 0
exBill, к сожалению, не знаю... Я не стал сам дальше разбираться с этим - заплатил деньги, мне доделали прайс под мои нужды...
Если интересно, рабочий вариант тут: http://rivierashop.ru/rebus.html
*

Stasische

  • Новичок
  • 3
  • 0 / 0
exBill, к сожалению, не знаю... Я не стал сам дальше разбираться с этим - заплатил деньги, мне доделали прайс под мои нужды...
Если интересно, рабочий вариант тут: http://rivierashop.ru/rebus.html

numen, подскажи пожалуйста куда обращался чтоб доделали прайс?и скока по деньгам вышло(если не секрет=) )

заранее спасибо!!
*

alex0802

  • Осваиваюсь на форуме
  • 17
  • 9 / 0
2Stasische, это я дописывал прайс, стучись в аську, посмотрим что тебе надо доделать
*

Vadim_Bone

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
skyscraper, мне понравился твой пример, но вот мне нужно чтобы отображались и доп свойства, в php я пока не силен, ток разбираюсь. может даш мне наводку что именно мне надо подредактирвоать для корректного отображения таблицы со св-вами?!
*

4ert9ga

  • Новичок
  • 2
  • 0 / 0
необходимо доделать вывод категории на сайте zooptz.ru
1. убрать предпреждение выскакивающее при добавлении корзины.
2.подправить внешний вид поля добавления в корзину.
может еще чтото...
кто может заняться вэлком в лс или 231455134
*

artliffe

  • Захожу иногда
  • 128
  • 6 / 0
  • ...акки пчела
При добавлении в корзину 1 позиции, он закидывает сразу все позиции в корзине. В Мазиле выдает предупреждение "Предупреждение: Пожалуйста, введите допустимое значение для этой позиции." Я так понимаю именно это имел в виду автор:

б) За вывод свойств зависимых товаров отвечает файл addtocart_list_single.tpl.php (если захотите поменять дизайн, убрать ненужные поля и тд...) При этом обратите внимание, что стандартный файл криво отображает свойства в браузере Firefox...

Кто-то решал данную проблему? Есть решение? Кто-то может помочь?

« Последнее редактирование: 20.02.2011, 17:08:03 от artliffe »
*

alex-malkov

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
подскажите почему при добавлении одного товара он добавляется весь товар в корзину? 
*

xlite

  • Захожу иногда
  • 65
  • 5 / 0
подскажите почему при добавлении одного товара он добавляется весь товар в корзину? 


<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>

замени на
<?php if ( $product_parent_id = 0) {?>
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
<?php } else { }?>
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Вывод атрибутов в категории:

1. В файле administrator\components\com_virtuemart\html\shop.browse.php - комментируем или удаляем эту строчку:
 // && !ps_product::product_has_attributes( $db_browse->f('product_id'), true )

 2. В файле: components\com_virtuemart\themes\default\templates\browse\includes\addtocart_form.tpl.php добавляем:
<?php list($html,$children)=$ps_product_attribute->list_attribute(($product_parent_id > 0)?$product_parent_id:$product_id);echo $html; ?>

 3. В этом же файле комментируем :
<?php /*?> <input type="hidden" name="product_id" value="<?php echo $product_id ?>" />
    <input type="hidden" name="prod_id[]" value="<?php echo $product_id ?>" /><?php */?>

Взято: http://bigemot.ru/portfolio/6-coding/16-3
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

rushab

  • Новичок
  • 7
  • 0 / 0
Привет. numen а как убрать предупреждение?

Сообщение выводится потому, что он пытается положить в корзину и родительский товар, но так как его кол-во не задано, то и выходит ошибка.

Таблетка:
файл ps_cart.php
строка: ~153
Вот этот код:
         if( is_array($d["quantity"])) {
            $quantity = @$d['quantity'][$ikey];
         } else {
            $quantity = @$e['quantity'];
         }
Меняем на (т.е. добавили проверку на родительский товар):
         if( is_array($d["quantity"])) {
            if ($product_id == $d['product_id']) continue;
            $quantity = @$d['quantity'][$ikey];
         } else {
            $quantity = @$e['quantity'];
         }
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сортировка товаров по дате поступления

Автор coob

Ответов: 2
Просмотров: 2237
Последний ответ 21.06.2018, 08:40:05
от kungurskiy
Как реализовать: товары, которых нет в наличии в конец списка категории?

Автор Girevik

Ответов: 1
Просмотров: 1212
Последний ответ 02.11.2017, 10:52:04
от P_B
Сортировка товаров категории по алфавиту

Автор atlet

Ответов: 5
Просмотров: 1476
Последний ответ 20.11.2015, 18:33:50
от atlet
404 для товаров которые удалены

Автор holovla

Ответов: 1
Просмотров: 1847
Последний ответ 06.05.2015, 19:42:13
от holovla
Модуль VirtueMart для фильтра товаров по категориям!

Автор maxmur

Ответов: 104
Просмотров: 51047
Последний ответ 08.08.2014, 11:47:37
от Хусен