Новости Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla

👩‍💻 Вышел компонент интернет-магазина HikaShop 6.1.0.Один из известных компонентов магазина для Joomla.v.6.1.0 Что нового?Модуль корзины. Отображение корзины в виде offcanvas-элемента.Кнопка выхода в панели управления пользователя. Что тут сказать, просто добавили. Отправка писем только для заказов, оплаченных определёнными способами. Это удобно для рассылки сообщений, привязанных к региону или провайдеру (например, инструкции по банковскому переводу только для заказов, оплаченных банковским переводом).Листинг выплат по партнерской системе. В разделе управления партнёрскими программами появилось новое подменю «Выплаты», в котором перечислены выплаты партнёрам (упрощённое отслеживание и сверка). Добавлены настройки, благодаря которым можно определить категории товаров, на которые начисляется партнёрская комиссия с продаж.Список комплектов товаров. Система комплектов позволяет отслеживать остатки товаров, продаваемых в комплекте.Подробнее в блоге Hikashop.Поскольку мы не сообщали ранее о Hikashop 6.0, то вкратце скажем, что он вышел в июне 2025г. В новой версии было:- 13 исправлений ошибок- 17 улучшений. В частности:- - Hikashop теперь проверяет UserAgent пользователя перед добавлением товара в корзину, чтобы отсечь ботов. Ведь компонент хранит корзины в базе данных.- - улучшен роутинг компонента, позволяющий использовать в названии товара даже слеши.- - улучшения фильтра товаров - ускорение загрузки категорий/брендов/характеристик.- 4 новых функции:- - добавлена поддержка Joomla 6.0.- - Улучшена возможность адаптации форм HikaShop на фронтенде к шаблонам, не использующим стандартные классы Joomla.- - Плагин внутреннего баланса: возможность исключить уцененные товары из начисленных баллов.- - Теперь можно выбирать склады для вариантов товаров.Подробнее в Changelog Hikashop.Также при работе с Hikashop стоит учитывать, что один и тот же код поддерживает версии Joomla от 3.х до 5.х, а в таблице сравнения версий заявлена и Joomla 2.5. Беглый просмотр кода показал, что компонент как был, так и остался старым и для совместимости с Joomla 4+ просто добавлен плагин.@joomlafeed#joomla #расширения #hikashop

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

graf

  • Захожу иногда
  • 195
  • 0 / 0
Доброго времени, подскажите, как сделать так: Если товара нет в наличии, то в карточке товара, текст кнопки "купить" менялась на "Заказать". Спасибо
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
Данный метод у меня реализован, вот только не убирается class="prod_buttons" ,  при условии что товара нет в наличии, Помогите найти решение Вот код  /components/com_jshopping/templates/ja_tiris/product/product_default.php и страница с карточкой

http://oklim.ru/katalog-produktsii/dlya-konditsionerov/vitamin-c-filtr.html

Заранее СПАСИБО!
Код
<?php $product = $this->product?>
<?php include(dirname(__FILE__)."/load.js.php");?>
<div class="jshop productfull">
<form name = "product" method = "post" action = "<?php print $this->action?>" enctype="multipart/form-data">
  <div class="product-detail-wrap clearfix">  
  

    <!-- Begin: Product image -->    
    
    <div class="product-detail">
<?php if ($this->product->_display_price){?>
    

    <?php }?>

    <?php print $this->product->_tmp_var_bottom_price;?>
    <?php if ($this->product->product_old_price > 0){?>
    <div class="old_price">

        <strong><?php print _JSHOP_OLD_PRICE?> </strong>
<<span class="old_price" id="old_price"><?php print formatprice($this->product->product_old_price)?></span>
    </div>

    <?php }?>
<?php print $this->_tmp_product_html_before_buttons;?>
    <?php if (!$this->hide_buy){?>  

        
    <?php }?>

   <?php print $this->_tmp_product_html_after_buttons;?>
<?php print $this->_tmp_product_html_start;?>
    <?php if ($this->config->display_button_print) print printContent();?>
    <div class="rating-hits">
    <?php include(dirname(__FILE__)."/ratingandhits.php");?>
    </div>
 <div class = "jshop">
     <div class="product-image">
            <?php print $this->_tmp_product_html_before_image;?>            
            <?php if ($product->label_id){?>
                <div class="product_label">
                    <?php if ($product->_label_image){?>
                        <img src="<?php print $product->_label_image?>" alt="<?php print htmlspecialchars($product->_label_name)?>" />
                    <?php }else{?>
                        <span class="label_name"><?php print $product->_label_name;?></span>
                    <?php }?>
                </div>
            <?php }?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>
                    <a style = "display:none" class = "video_full" id = "hide_video_<?php print $k;?>" href = ""></a>
                <?php } ?>
            <?php }?>
            
            <div id='list_product_image_middle' class="product-image">
            <?php if(!count($this->images)){?>
                <img id = "main_image" src = "<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
            <?php }?>
            <?php foreach($this->images as $k=>$image){?>
            <a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?>>
                <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
            </a>
            <?php }?>
            </div>
            <?php print $this->_tmp_product_html_after_image;?>
            
            <?php if ($this->config->product_show_manufacturer_logo && $this->product->manufacturer_info->manufacturer_logo!=""){?>
            <div class="manufacturer_logo">
                <a href="<?php print SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$this->product->product_manufacturer_id, 2);?>">
                    <img src="<?php print $this->config->image_manufs_live_path."/".$this->product->manufacturer_info->manufacturer_logo?>" alt="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" title="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" border="0" />
                </a>
            </div>
            <?php }?>
        </div>
        <div class = "jshop_img_description" style = "padding-left: 10px;">
            <?php print $this->_tmp_product_html_before_image_thumb;?>
           <div id='list_product_image_thumb' class="jshop_img_description">
            <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
                <?php foreach($this->images as $k=>$image){?>
                    <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
                <?php }?>
            <?php }?>
            </div>
            <?php print $this->_tmp_product_html_after_image_thumb;?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>                
                    <a href="<?php print $this->video_product_path?>/<?php print $video->video_name?>" id="video_<?php print $k?>" onclick = "showVideo(this.id, '<?php print $this->config->video_product_width;?>', '<?php print $this->config->video_product_height;?>'); return false;"><img class="jshop_video_thumb" src = "<?php print $this->video_image_preview_path."/"; if ($video->video_preview) print $video->video_preview; else print 'video.gif'?>" alt = "video" /></a>
                <?php } ?>
            <?php }?>
            <?php print $this->_tmp_product_html_after_video;?>
        </div>

    </div>  
    <div class = "jshop_prod_description">
<h1><?php print $this->product->name?></h1>


<div class="zakaz"><?php if ($this->product->product_quantity>0){?>
   <div><img src="images/Check-icon.png" />  Товар в наличии на складе в Екатеринбурге </div>
  <?php }else{?>
<div><img src="images/Check-icon1.png" /> Товар временно отсутствует на складе. За информацией<br/> о сроках поставки обращайтесь к менеджерам компании. </div>
<?php }?></div>
<div class="prod_price">
        <strong><?php print _JSHOP_PRICE?>:</strong><span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?></span>
   </div>
<?php if ($this->config->show_product_code){?>
<span class="jshop_code_prod"><?php print _JSHOP_EAN?>: <span id="product_code"><?php print $this->product->getEan();?></span></span><?php }?>
<?php print $this->_tmp_product_html_before_buttons;?>
    
<ul class="prod_buttons">
            <li class="prod_qty">
                <?php print _JSHOP_QUANTITY?>:&nbsp;
            </li>
            <li class="prod_qty_input">


<input type="button" onclick="
var qty_el = document.getElementById('quantity');
var qty = qty_el.value;
if( !isNaN( qty ) &amp;&amp; qty &gt; 1) qty_el.value--;return false;" class="product_minus">
                <input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" /><?php print $this->_tmp_qty_unit;?>
            </li>      
<input type="button" onclick="
var qty_el = document.getElementById('quantity');
var qty = qty_el.value;
if( !isNaN( qty )) qty_el.value++;return false;" class="product_plus">
            <li class = "buttons">            
                <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                <?php if ($this->enable_wishlist){?>
                    <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_WISHLIST?>" onclick="jQuery('#to').val('wishlist');" />
                <?php }?>
                                   
                <?php print $this->_tmp_product_html_buttons;?>
            </li>
            <li id = "jshop_image_loading" style = "display:none"></li>
        </ul>

<?php if (!$this->config->hide_text_product_not_available){ ?>
        <div class = "not_available" id="not_available"><?php print $this->available?></div>
    <?php }?>
        <?php print $this->product->description; ?>
   </div>
    <?php if ($this->product->product_url!=""){?>
    <div class="prod_url">
        <a target="_blank" href="<?php print $this->product->product_url;?>"><?php print _JSHOP_READ_MORE?></a>
    </div>
    <?php }?>    
    
    <?php if ($this->config->product_show_manufacturer_logo && $this->product->manufacturer_info->name!=""){?>
    <div class="manufacturer_name">
        <?php print _JSHOP_MANUFACTURER;?>: <?php print $this->product->manufacturer_info->name;?>
    </div>
    <?php }?>
    
    <?php if (count($this->attributes)){?>
    <div class = "jshop_prod_attributes">
        <table class = "jshop">
        <?php foreach($this->attributes as $attribut){?>
        <tr>
            <td width = "50">
                <?php print $attribut->attr_name?>:
            </td>
            <td>
                <span id='block_attr_sel_<?php print $attribut->attr_id?>'>
                <?php print $attribut->selects?>
                </span>
            </td>
        </tr>
        <?php }?>
        </table>
    </div>
    <?php }?>
    
    <?php if (count($this->product->freeattributes)){?>
    <div class="prod_free_attribs">
        <table class = "jshop">
        <?php foreach($this->product->freeattributes as $freeattribut){?>
        <tr>
            <td class="name" width="80"><?php print $freeattribut->name;?> <?php if ($freeattribut->required){?><span>*</span><?php }?></td>
            <td class="field"><?php print $freeattribut->input_field;?></td>
        </tr>
        <?php }?>
        </table>
        <?php if ($this->product->freeattribrequire) {?>
        <div class="requiredtext">* <?php print _JSHOP_REQUIRED?></div>
        <?php }?>
    </div>
    <?php }?>
    
    <?php if ($this->product->product_is_add_price){?>
    <div class="price_prod_qty_list_head"><?php print _JSHOP_PRICE_FOR_QTY?></div>
    <table class="price_prod_qty_list">
    <?php foreach($this->product->product_add_prices as $k=>$add_price){?>
        <tr>
            <td class="qty_from" <?php if ($add_price->product_quantity_finish==0){?>colspan="3"<?php } ?>>
                <?php if ($add_price->product_quantity_finish==0) print _JSHOP_FROM; ?>
                <?php print $add_price->product_quantity_start?> <?php print $this->product->product_add_price_unit?>
            </td>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_line"> - </td>
            <?php } ?>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_to">
                <?php print $add_price->product_quantity_finish?> <?php print $this->product->product_add_price_unit?>
            </td>
            <?php } ?>
            <td class="qty_price">            
                <span id="pricelist_from_<?php print $add_price->product_quantity_start?>"><?php print formatprice($add_price->price)?><?php print $add_price->ext_price?></span> <span class="per_piece">/ <?php print $this->product->product_add_price_unit?></span>
            </td>
        </tr>
    <?php }?>
    </table>
    <?php }?>
    
    <?php if ($this->product->product_price_default > 0 && $this->config->product_list_show_price_default){?>
        <div class="default_price"><?php print _JSHOP_DEFAULT_PRICE;?>: <span id="pricedefault"><?php print formatprice($this->product->product_price_default)?></span></div>
    <?php }?>        
    
    <?php if ($this->config->show_tax_in_product && $this->product->product_tax > 0){?>
        <span class="taxinfo"><?php print productTaxInfo($this->product->product_tax);?></span>
    <?php }?>
    <?php if ($this->config->show_plus_shipping_in_product){?>
        <span class="plusshippinginfo"><?php print sprintf(_JSHOP_PLUS_SHIPPING, $this->shippinginfo);?></span>
    <?php }?>
    <?php if ($this->product->delivery_time != ''){?>
        <div class="deliverytime"><?php print _JSHOP_DELIVERY_TIME?>: <?php print $this->product->delivery_time?></div>
    <?php }?>
    <?php if ($this->config->product_show_weight && $this->product->product_weight > 0){?>
        <div class="productweight"><?php print _JSHOP_WEIGHT?>: <span id="block_weight"><?php print formatweight($this->product->getWeight())?></span></div>
    <?php }?>
    
    <?php if ($this->product->product_basic_price_show){?>
        <div class="prod_base_price"><?php print _JSHOP_BASIC_PRICE?>: <span id="block_basic_price"><?php print formatprice($this->product->product_basic_price_calculate)?></span> / <?php print $this->product->product_basic_price_unit_name;?></div>
    <?php }?>
    <table>
<tr>
<td width="150">
<?php print $extra_field['name'];?>
</td>
<td width="150">
<?php print $extra_field['value'];?>
</td>
</tr>
</table>

    
    <?php if ($this->product->vendor_info){?>
        <div class="vendorinfo">
            <?php print _JSHOP_VENDOR?>: <?php print $this->product->vendor_info->shop_name?> (<?php print $this->product->vendor_info->l_name." ".$this->product->vendor_info->f_name;?>),
            (
            <?php if ($this->config->product_show_vendor_detail){?><a href="<?php print $this->product->vendor_info->urlinfo?>"><?php print _JSHOP_ABOUT_VENDOR?></a>,<?php }?>
            <a href="<?php print $this->product->vendor_info->urllistproducts?>"><?php print _JSHOP_VIEW_OTHER_VENDOR_PRODUCTS?></a> )
        </div>
    <?php }?>
    
    
    
    <?php if ($this->config->product_show_qty_stock){?>
        <div class="qty_in_stock"><?php print _JSHOP_QTY_IN_STOCK?>: <span id="product_qty"><?php print sprintQtyInStock($this->product->qty_in_stock);?></span></div>
    <?php }?>
    
  
  
<input type="hidden" name="to" id='to' value="cart" />
<input type = "hidden" name = "product_id" id = "product_id" value = "<?php print $this->product->product_id?>" />
<input type = "hidden" name = "category_id" id = "category_id" value = "<?php print $this->category_id?>" />
</div>
</div>
</form>
<?php

if (count ($this->demofiles)){?>
<div class="list_product_demo">
<table>
    <?php foreach($this->demofiles as $demo){?>
    <tr>
        <td class="descr"><?php print $demo->demo_descr?></td>            
        <?php if ($this->config->demo_type == 1) { ?>
            <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>" onClick="popupWin = window.open('<?php print SEFLink("index.php?option=com_jshopping&controller=product&task=showmedia&media_id=".$demo->id);?>', 'video', 'width=<?php print $this->config->video_product_width;?>,height=<?php print $this->config->video_product_height;?>,top=0,resizable=no,location=no'); popupWin.focus(); return false;"><img src = "<?php print $this->config->live_path.'images/play.gif'; ?>" alt = "play" title = "play"/></a></td>
        <?php } else { ?>
            <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>"><?php print _JSHOP_DOWNLOAD;?></a></td>
        <?php }?>
    </tr>
    <?php }?>
</table>
</div>
<?php } ?>

<?php if ($this->config->product_show_button_back){?>
<input type="button" class = "button" value="<?php print _JSHOP_BACK;?>" onclick="<?php print $this->product->button_back_js_click;?>" />
<?php }?>
<?php
    print $this->_tmp_product_html_before_related;
    include(dirname(__FILE__)."/related.php");
    print $this->_tmp_product_html_before_review;
    include(dirname(__FILE__)."/review.php");
?>
<?php print $this->_tmp_product_html_end;?>
<script type="text/javascript">
jQuery(function(){
jQuery('dl.tabs dt').click(function(){
jQuery(this)
.siblings().removeClass('selected').end()
.next('dd').andSelf().addClass('selected');
});
});</script>

</div>

*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Код
 <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
_JSHOP_ADD_TO_CART = Купить

знааачит:
Код
 <?php  if ($product->product_quantity >0){ ?>
<input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                    <?php } else { ?>
<input type = "submit" class = "button" value = "Заказать!" onclick="jQuery('#to').val('cart');" />
<?php } ?>

зачем убирать class="prod_buttons" ?
*

graf

  • Захожу иногда
  • 195
  • 0 / 0
про class="prod_buttons" не дописал, нужно чтобы при статусе нет в наличии убиралась строка <li class="prod_qty"> Количество: </li>

Спасибо огромное за помощь лови "+"
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
про class="prod_buttons" не дописал, нужно чтобы при статусе нет в наличии убиралась строка <li class="prod_qty"> Количество: </li>
выше понятно что было сделано? по аналогии сделаете и все.
просто подсветки нет - глаза можно сломать
*

graf

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

kombatboy

  • Новичок
  • 6
  • 0 / 0
Код
 <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
_JSHOP_ADD_TO_CART = Купить

знааачит:
Код
 <?php  if ($product->product_quantity >0){ ?>
<input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                    <?php } else { ?>
<input type = "submit" class = "button" value = "Заказать!" onclick="jQuery('#to').val('cart');" />
<?php } ?>

зачем убирать class="prod_buttons" ?

Пробовал так, но при вставке предложенного кода на странице вылетала ошибка сервера.
Посмотрев похожие запросы с if в данном файле решил править данную строчку
Код
<?php  if ($product->product_quantity >0){ ?>
на эту, добавив одно слово
Код
<?php  if ($this->product->product_quantity >0){ ?>

страница загрузилась, но кнопка не отображалась. Сначало было расстроился, но смекнул что "Заказать!" должно выводиться вместо "В корзину!", тоесть нужно чтобы покупалось всегда не зависимо от количества на складе. И в настройках заказа http://domen.com/administrator/index.php?option=com_jshopping&controller=config&task=catprod убрал галочку сдесь "Скрыть кнопку купить, если товара нет на складе".

Ура! Кнопка отобразилась но крокозябрами =/ Поменял кодировку - не помогло. И решил поступить как с кнопкой "В корзину!" - создал дополнительное поле
Код
define('_JSHOP_ZAKAZ', 'Заказать');
в языковом файле по адресу /components/com_jshopping/lang и вставил в product_default.php

В общем получилось вот таким образом:
 
Код
<?php  if ($this->product->product_quantity >0){ ?>
<input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                    <?php } else { ?>
<input type = "submit" class = "button" value = "<?php print _JSHOP_ZAKAZ?>" onclick="jQuery('#to').val('cart');" />
<?php } ?>


Может кому-то поможет.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
*

kombatboy

  • Новичок
  • 6
  • 0 / 0

Как раз для категории подошёл первоначально предложенный код, а с карточкой пришлось переделывать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вкладки (табы) в описании товара

Автор Sergio

Ответов: 254
Просмотров: 57018
Последний ответ 12.10.2023, 12:20:59
от dron
Где посмотреть варианты карточки товара

Автор itbc

Ответов: 6
Просмотров: 3027
Последний ответ 31.10.2022, 10:05:51
от nevigen
Основная картинка в карточке товара на весь экран

Автор Mister Shadow

Ответов: 1
Просмотров: 2601
Последний ответ 08.07.2022, 22:16:27
от nevigen
meta title на странице товара

Автор ecolora

Ответов: 5
Просмотров: 2749
Последний ответ 30.05.2022, 14:31:44
от kit2m2
Вывести артикул вместо кода товара в письмо клиента

Автор antony2606

Ответов: 2
Просмотров: 2720
Последний ответ 09.02.2021, 17:01:25
от antony2606