Jump to content

Recommended Posts

Здравствуйте, нужна помощь в настройке Яндекс Метрики для модуля Быстрый заказ товара - JV_QuickOrder ver 2.75.

 

Для стандартной корзины, метрику настроил с помощью модуля - Отслеживание продаж в Яндекс Метрика , все прекрасно работает, в метрику улетают параметры заказа, а именно номер заказа, наименование товара и самое главное общая сумма заказа.

 

Пробовал через события, но не совсем понимаю куда ставить код, те места куда подставлял не всегда корректно срабатывают.

 

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

Share this post


Link to post
Share on other sites

а автор корзины что говорит?

 

встраивайте код reachGoal(target)

 

Предварительно создав цель в метрике

Share this post


Link to post
Share on other sites

а автор корзины что говорит?

 

встраивайте код reachGoal(target)

 

Предварительно создав цель в метрике

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

Этот код и пробывал, нонесовсем понимаю на какое событие его лепить, там валидация еще присутствует. Мне проще заплатить, чем сидеть разбиратся в том чего я не понимаю толком.

Share this post


Link to post
Share on other sites

Ни на какое событие, а создать руками цель

Share this post


Link to post
Share on other sites

Ни на какое событие, а создать руками цель

Цель в метрике создал, как событие. Теперь эту цель надо инициировать, когда форма прошедшая валидацию закрывается.

Share this post


Link to post
Share on other sites

Методом научного тыка, решил вопрос, опишу рецепт, вдруг кому поможет:

Повторюсь, это настройка Яндекс Метрики для модуля Быстрый заказ товара, с передачей параметров заказа. Эти данные очень пригодятся, если подключить Яндекс Директ.

В файле находящемся по адресу: catalog/view/theme/default/template/module/jvquickorder.tpl

В начале файла в блоке <script type="text/javascript"> помещаем код

var yaParams = {
                order_id: "<?php echo $this->session->data['order_id']+1; ?>",
                order_price: "<?php echo $product['price']; ?>", 
                currency: "RUR",
                exchange_rate: 1,
                goods: []
        };
		yaParams.goods [0] = {
					id: "1",
					name: "<?php echo $product['name']; ?>",
					price: "<?php echo $product['price']; ?>",
					quantity: 1
					}

И далее в этом же файле находим следующий код:

function successmessage_in_full_body(heading_text, body_text){
	$('.bt_modal-body').empty();
	$('.bt_modal-footer').remove();
	$('.alert').alert();
	$('.bt_modal-body').html('<div class="alert alert-success alert-block fade in" ' + 
									'<a class="close" data-dismiss="alert" href="#" >×</a>' +
									'<div class="alert-heading bt_h3">' + heading_text + '<br /><br />' + 
									'<strong>' + body_text + '</strong><div>');	

Под ним размещаем это:

yaCounterXXXXXX.reachGoal('ИМЯ_СОБЫТИЯ_В_МЕТРИКЕ', yaParams);

Я php не знаю, все делал интуитивно с помощью поиска, не знаю на счет как это корректно написано с точки зрения PHP, но главное работает. Если кто знает как правильней написать отпишите.

Share this post


Link to post
Share on other sites

все верно!!!

Бвл бы плюсомет - плюсанул

Share this post


Link to post
Share on other sites

Подскажите как в этом модуле проделать тоже самое. 

<div id="popup-quickorder">
    <div class="popup-heading"><?php echo isset($config_title_popup_quickorder[$lang_id]) ? $config_title_popup_quickorder[$lang_id]['config_title_popup_quickorder'] : ''; ?></div>
    <div class="popup-center">
    <form id="fastorder_data" enctype="multipart/form-data" method="post">
        <?php if($config_general_image_product_popup !='1') { ?>
        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
            <div class="product-image">
                <div class="product_image_fastorder text-center">
                    <img class="img" src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>">
                </div>
                <div class="additional owl-carousel">
                <?php if($images){ ?>
                <div class="image-additional"><img class="hover" rel="<?php echo $thumb;?>" src="<?php echo $small; ?>"></div>
                    <?php foreach ($images as $img) { ?>
                    <div class="item">
                        <img class="hover" rel="<?php echo $img['popup'];?>" src="<?php echo $img['thumb'];?>">
                    </div>
                    <?php } ?>
                <?php } ?>
                </div>
            </div>
<script>
$('.additional').owlCarousel({        
    itemsCustom : [
        [0, 1],
        [75, 1],
        [150, 2],
        [300, 3],
        [500, 4],
        [767, 4],
        [768, 3],
        [982, 3],
        [1600, 3]
      ],
        navigation: true,
        pagination:false,
        navigationText: ['<div class="btn btn-carousel-quickorder next-prod"><i class="fa fa-angle-left arrow"></i></div>', '<div class="btn btn-carousel-quickorder prev-prod"><i class="fa fa-angle-right arrow"></i></div>'],        
    });


 $(function(){
 $(".product-image").each(function (indx, el){
  var image = $(".img", el),
  next = $(el).parent();
  var oldsrc;
  $(".hover", next).hover(function (){
   var newsrc = $(this).attr("rel");
   image.attr({src: newsrc});
  });
  $(".product-image").hover(function (){oldsrc = image.attr('src');},
  function(){
   image.attr({src: oldsrc}); 
  })
 });
});
</script>    
<style>

</style>            
        </div>    
        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
        <div class="well well-sm products" style="margin-top:10px;">
            <div class="product">
                <div class="row">
                    <div class="col-xs-12 text-center">
                        <div class="product-name">
                            <?php echo $heading_title; ?>
                        </div>
                    </div>
                    <div class="col-xs-6 text-center">
                        <div class="quantity_quickorder quick-cell-one">
                            <div class="quick-cell-content-one pquantity">
                                <div class="input-group popup-quantity">
                                    <span class="input-group-btn">
                                        <input class="btn btn-update-popup" type="button" id="decrease_quickorder" value="-" onclick="btnminus_quickorder('1');recalculateprice_quickorder();" />                                    
                                    </span>
                                    <input type="text" class="form-control input-sm qty_quickorder" name="quantity" id="htop_quickorder" size="2" value="1" />
                                    <span class="input-group-btn">
                                        <input class="btn btn-update-popup" type="button" id="increase_quickorder" value="+" onclick="btnplus_quickorder();recalculateprice_quickorder();" />
                                    </span>
                                </div>
                            </div>
                        </div>
                        <?php if (!$special) { ?>
                            <script type="text/javascript">
                            var yaParams = {
                order_id: "<?php echo $this->session->data['order_id']+1; ?>",
                order_price: "<?php echo $product['price']; ?>", 
                currency: "RUR",
                exchange_rate: 1,
                goods: []
        };
        yaParams.goods [0] = {
                    id: "1",
                    name: "<?php echo $product['name']; ?>",
                    price: "<?php echo $product['price']; ?>",
                    quantity: 1
                    }
                                function btnminus_quickorder(a){
                                    document.getElementById("htop_quickorder").value>a?document.getElementById("htop_quickorder").value--:document.getElementById("htop_quickorder").value=a;                        
                                }
                                function btnplus_quickorder(){
                                    document.getElementById("htop_quickorder").value++;    
                                };
                            </script>
                        <?php } else { ?>
                            <script type="text/javascript">
                                function btnminus_quickorder(a){                                    
                                    document.getElementById("htop_quickorder").value>a?document.getElementById("htop_quickorder").value--:document.getElementById("htop_quickorder").value=a;                                                            
                                }                                    
                                function btnplus_quickorder(){
                                    document.getElementById("htop_quickorder").value++;                                    
                                };
                            </script>
                        <?php } ?>
                    </div>
                    <div class="col-xs-6 text-center quick-cell-one">
                        <div class="quick-cell-content-one">
                            <?php if (!$special) { ?>
                                <div class="price_fast"><span id="formated_price_quickorder" data-price="<?php echo $price_value; ?>"><?php echo $price; ?></span></div>
                                <input type="hidden" id="price_tax_plus_options" name="price_tax" value="<?php echo $price; ?>"/>
                                <input type="hidden" id="price_no_tax_plus_options" name="price_no_tax" value="<?php echo $price_value; ?>"/>    
                                <input id="total_form" type="hidden" value="<?php echo $price;?>" name="total_fast"/>                                            
                            <?php } else { ?>
                                <div class="special_fast">
                                    <div class="price-old"><span id="formated_price_quickorder" class="price-old" data-price="<?php echo $price_value; ?>"><?php echo $price;?></span></div>
                                    <div class="price-new"><span id="formated_special_quickorder" data-price="<?php echo $special_value; ?>"><?php echo $special;?></span></div>
                                    <input type="hidden" id="price_tax_plus_options" name="price_tax" value="<?php echo $special; ?>"/>
                                    <input type="hidden" id="price_no_tax_plus_options" name="price_no_tax" value="<?php echo $special_value; ?>"/>
                                    <input id="total_form" type="hidden" value="<?php echo $special;?>" name="total_fast"/>
                                </div>
                            <?php } ?>                                
                        </div>
                    </div>
                </div>
            </div>    
        </div>
<?php if ($options) { ?>
<div class="col-sm-12">
<div class="option-fastorder">                
    <div class="options">      
        <?php foreach ($options as $option) { ?>
            <?php if ($option['type'] == 'select') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
            <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <select name="option-fast[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control option">
                <option value=""><?php echo $text_select; ?></option>
                <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <option value="<?php echo $option_value['product_option_value_id']; ?>"  points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?>
                <?php if ($option_value['price']) { ?>
                (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                <?php } ?>
                </option>
                <?php } ?>
              </select>
            </div>
            <?php } ?>
            
            <?php if ($option['type'] == 'radio') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
               <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
               <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="radio-checbox-options">
                  <input <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?> type="radio" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>" />
                    <label for="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>">
                    <span class="option-name"><?php echo $option_value['name']; ?></span>
                    <?php if ($option_value['price']) { ?>
                    <span class="option-price"><?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?></span>
                    <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
            </div>
            <?php } ?>
            <?php if ($option['type'] == 'checkbox') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
             <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
              <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="radio-checbox-options">
                  <input type="checkbox" name="option-fast[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>" />
                    <label for="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>">
                    <span class="option-name"><?php echo $option_value['name']; ?></span>
                    <?php if ($option_value['price']) { ?>
                    <span class="option-price"><?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?></span>
                    <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
            </div>
            <?php } ?>
            <?php if ($option['type'] == 'image') { ?>
            <?php if ($option['status_color_type'] =='1') { ?>
                <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
                  <label class="control-label"><?php echo $option['name']; ?></label>
                  <div id="input-option<?php echo $option['product_option_id']; ?>">
                  <?php $opt_checked="checked"; ?>
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <div class="image-radio">
                        <label>
                             <input <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?> type="radio" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>"/>                            
                            <span class="color-option" data-toggle="tooltip" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" style="background-color:<?php echo $option_value['color']?>"></span>
                        </label>
                    </div>
                    <?php } ?>
                  </div>
                </div>
            <?php } else { ?>
                <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
              <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="image-radio">
                    <label>
                         <input <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?> type="radio" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>"/>
                        <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" data-toggle="tooltip" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /> 
                    </label>
                </div>
                <?php } ?>
              </div>
            </div>
            <?php } ?>         
            <?php } ?>
            <?php if ($option['type'] == 'text') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" placeholder="<?php echo $option['name']; ?>" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
            </div>
            <?php } ?>
             <?php if ($option['type'] == 'file') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <label class="control-label"><?php echo $option['name']; ?></label>
              <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" class="btn btn-default btn-block"><i class="fa fa-upload"></i> <?php echo $button_upload; ?></button>
              <input type="hidden" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="" id="input-option<?php echo $option['product_option_id']; ?>" />
            </div>
            <?php } ?>
            <?php if ($option['type'] == 'date') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <div class="input-group date">
                <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                <span class="input-group-btn">
                <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
                </span></div>
            </div>
            <?php } ?>
            
            <?php if ($option['type'] == 'datetime') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <div class="input-group datetime">
                <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                <span class="input-group-btn">
                <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
                </span></div>
            </div>
            <?php } ?>
            
            <?php if ($option['type'] == 'time') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <div class="input-group time">
                <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                <span class="input-group-btn">
                <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
                </span></div>
            </div>
            <?php } ?>
        <?php } ?>
      </div>    
    </div>
</div>
<?php } ?>                        

        <?php if($on_off_fields_firstname == '1') { ?>
        <div class="form-group <?php echo $config_fields_firstname_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
            <div class="input-group margin-bottom-sm">            
                 <input id="contact-name" class="form-control contact-name" type="text" placeholder="<?php echo $config_placeholder_fields_firstname[$lang_id]['config_placeholder_fields_firstname']; ?>" value="" name="name_fastorder">        
                <span class="input-group-addon"><i class="icon-append-1 fa fa-user fa-fw"></i></span>
            </div>            
        </div>
         <?php } ?>
         
          <?php if($on_off_fields_phone == '1') { ?>
        <div class="form-group <?php echo $config_fields_phone_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
            <div class="input-group margin-bottom-sm">            
                 <input id="contact-phone" class="form-control contact-phone" type="text" placeholder="<?php echo $config_placeholder_fields_phone[$lang_id]['config_placeholder_fields_phone']; ?>" value="" name="phone">        
                <span class="input-group-addon"><i class="icon-append-1 fa fa-phone-square fa-fw"></i></span>
            </div>            
        </div>
         <?php } ?>         
         <?php if($on_off_fields_email) { ?>
        <div class="form-group <?php echo $config_fields_email_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
        <div class="input-group margin-bottom-sm">                         
            <input id="contact-email" class="form-control contact-email" id="contact-email" type="text" placeholder="<?php echo $config_placeholder_fields_email[$lang_id]['config_placeholder_fields_email'];?>" value=""  name="email_buyer">
            <span class="input-group-addon"><i class="icon-append-1 fa fa-envelope fa-fw"></i></span>
        </div>
      </div>
      <?php } ?>
      
      <?php if($on_off_fields_comment) { ?>
        <div class="form-group <?php echo $config_fields_comment_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
        <div class="input-group margin-bottom-sm">                          
            <input id="contact-comment" class="form-control contact-comment-buyer" name="comment_buyer" id="contact_comment_buyer"  placeholder="<?php echo $config_placeholder_fields_comment[$lang_id]['config_placeholder_fields_comment'];?>"/>
            <span class="input-group-addon"><i class="icon-append-1 fa fa-comment fa-fw"></i></span>    
        </div>
        </div>
        <?php } ?>
        <input type="hidden" id="callback_url" value="" name="url_site"  />
        <input type="hidden" id="this_prod_id" value="<?php echo $product_id;?>" name="this_prod_id"  />            
        </div>
        <?php } else { ?>
            <div class="col-sm-12">    
            <div class="well well-sm products" style="margin-top:10px;">
                <div class="product">
                    <div class="row">
                        <div class="col-xs-12 col-sm-5">
                            <div class="image">
                                <?php if ($thumb_small) { ?><img src="<?php echo $thumb_small; ?>" alt="<?php echo $heading_title; ?>" /><?php } ?>
                            </div>
                            <div class="pr-name quick-cell">
                                <div class="quick-cell-content">
                                    <?php echo $heading_title; ?>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-7">
                            <div class="col-xs-6 quantity_quickorder quick-cell">
                                <div class="quick-cell-content pquantity">
                                    <div class="input-group popup-quantity">
                                        <span class="input-group-btn">
                                            <input class="btn btn-update-popup" type="button" id="decrease_quickorder" value="-" onclick="btnminus_quickorder('1');recalculateprice_quickorder();" />                                    
                                        </span>
                                        <input type="text" class="form-control input-sm qty_quickorder" name="quantity" id="htop_quickorder" size="2" value="1" />
                                        <span class="input-group-btn">
                                            <input class="btn btn-update-popup" type="button" id="increase_quickorder" value="+" onclick="btnplus_quickorder();recalculateprice_quickorder();" />
                                        </span>
                                    </div>
                                </div>
                            </div>
                            <?php if (!$special) { ?>
                                <script type="text/javascript">
                                    function btnminus_quickorder(a){
                                        document.getElementById("htop_quickorder").value>a?document.getElementById("htop_quickorder").value--:document.getElementById("htop_quickorder").value=a;                        
                                    }
                                    function btnplus_quickorder(){
                                        document.getElementById("htop_quickorder").value++;    
                                    };
                                </script>
                            <?php } else { ?>
                                <script type="text/javascript">
                                    function btnminus_quickorder(a){                                    
                                        document.getElementById("htop_quickorder").value>a?document.getElementById("htop_quickorder").value--:document.getElementById("htop_quickorder").value=a;                                                            
                                    }                                    
                                    function btnplus_quickorder(){
                                        document.getElementById("htop_quickorder").value++;                                    
                                    };
                                </script>
                            <?php } ?>
                            <div class="col-xs-6 text-center quick-cell">
                                <div class="quick-cell-content">
                                    <?php if (!$special) { ?>
                                        <div class="price_fast"><span id="formated_price_quickorder" data-price="<?php echo $price_value; ?>"><?php echo $price; ?></span></div>
                                        <input type="hidden" id="price_tax_plus_options" name="price_tax" value="<?php echo $price; ?>"/>
                                        <input type="hidden" id="price_no_tax_plus_options" name="price_no_tax" value="<?php echo $price_value; ?>"/>    
                                        <input id="total_form" type="hidden" value="<?php echo $price;?>" name="total_fast"/>                                            
                                    <?php } else { ?>
                                        <div class="special_fast">
                                            <div class="price-old"><span id="formated_price_quickorder" class="price-old" data-price="<?php echo $price_value; ?>"><?php echo $price;?></span></div>
                                            <div class="price-new"><span id="formated_special_quickorder" data-price="<?php echo $special_value; ?>"><?php echo $special;?></span></div>
                                            <input type="hidden" id="price_tax_plus_options" name="price_tax" value="<?php echo $special; ?>"/>
                                            <input type="hidden" id="price_no_tax_plus_options" name="price_no_tax" value="<?php echo $special_value; ?>"/>
                                            <input id="total_form" type="hidden" value="<?php echo $special;?>" name="total_fast"/>
                                        </div>
                                    <?php } ?>                                
                                </div>
                            </div>
                        </div>                        
                    </div>
                </div>    
            </div>
        </div>
        <?php if ($options) { ?>
<div class="col-sm-12">
<div class="option-fastorder">                
    <div class="options">      
        <?php foreach ($options as $option) { ?>
            <?php if ($option['type'] == 'select') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
            <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <select name="option-fast[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control option">
                <option value=""><?php echo $text_select; ?></option>
                <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <option value="<?php echo $option_value['product_option_value_id']; ?>"  points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>"><?php echo $option_value['name']; ?>
                <?php if ($option_value['price']) { ?>
                (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                <?php } ?>
                </option>
                <?php } ?>
              </select>
            </div>
            <?php } ?>
            
            <?php if ($option['type'] == 'radio') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
               <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
               <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="radio-checbox-options">
                  <input <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?> type="radio" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>" />
                    <label for="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>">
                    <span class="option-name"><?php echo $option_value['name']; ?></span>
                    <?php if ($option_value['price']) { ?>
                    <span class="option-price"><?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?></span>
                    <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
            </div>
            <?php } ?>
            <?php if ($option['type'] == 'checkbox') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
             <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
              <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="radio-checbox-options">
                  <input type="checkbox" name="option-fast[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>" />
                    <label for="option-value-<?php echo $option['product_option_id']; ?>-<?php echo $option_value['product_option_value_id']; ?>">
                    <span class="option-name"><?php echo $option_value['name']; ?></span>
                    <?php if ($option_value['price']) { ?>
                    <span class="option-price"><?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?></span>
                    <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
            </div>
            <?php } ?>
            <?php if ($option['type'] == 'image') { ?>
            <?php if ($option['status_color_type'] =='1') { ?>
                <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
                  <label class="control-label"><?php echo $option['name']; ?></label>
                  <div id="input-option<?php echo $option['product_option_id']; ?>">
                  <?php $opt_checked="checked"; ?>
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <div class="image-radio">
                        <label>
                             <input <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?> type="radio" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>"/>                            
                            <span class="color-option" data-toggle="tooltip" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" style="background-color:<?php echo $option_value['color']?>"></span>
                        </label>
                    </div>
                    <?php } ?>
                  </div>
                </div>
            <?php } else { ?>
                <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label"><?php echo $option['name']; ?></label>
              <div id="input-option<?php echo $option['product_option_id']; ?>">
              <?php $opt_checked="checked"; ?>
                <?php foreach ($option['product_option_value'] as $option_value) { ?>
                <div class="image-radio">
                    <label>
                         <input <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?> type="radio" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" price_prefix="<?php echo $option_value['price_prefix']; ?>" price="<?php echo $option_value['price_value']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>"/>
                        <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" data-toggle="tooltip" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /> 
                    </label>
                </div>
                <?php } ?>
              </div>
            </div>
            <?php } ?>         
            <?php } ?>
            <?php if ($option['type'] == 'text') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" placeholder="<?php echo $option['name']; ?>" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
            </div>
            <?php } ?>
             <?php if ($option['type'] == 'file') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <label class="control-label"><?php echo $option['name']; ?></label>
              <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" class="btn btn-default btn-block"><i class="fa fa-upload"></i> <?php echo $button_upload; ?></button>
              <input type="hidden" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="" id="input-option<?php echo $option['product_option_id']; ?>" />
            </div>
            <?php } ?>
            <?php if ($option['type'] == 'date') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <div class="input-group date">
                <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                <span class="input-group-btn">
                <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button>
                </span></div>
            </div>
            <?php } ?>
            
            <?php if ($option['type'] == 'datetime') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <div class="input-group datetime">
                <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                <span class="input-group-btn">
                <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
                </span></div>
            </div>
            <?php } ?>
            
            <?php if ($option['type'] == 'time') { ?>
            <div id="option-fast-<?php echo $option['product_option_id']; ?>" class="col-sm-6 col-xs-12 option form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
              <div class="text-danger option-error-<?php echo $option['product_option_id']; ?>"></div>
              <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
              <div class="input-group time">
                <input type="text" name="option-fast[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" />
                <span class="input-group-btn">
                <button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button>
                </span></div>
            </div>
            <?php } ?>
        <?php } ?>
      </div>    
    </div>
</div>
<?php } ?>
        <?php if($on_off_fields_firstname == '1') { ?>
        <div class="col-sm-6 col-sm-12 form-group <?php echo $config_fields_firstname_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
            <div class="input-group margin-bottom-sm">            
                 <input id="contact-name" class="form-control contact-name" type="text" placeholder="<?php echo $config_placeholder_fields_firstname[$lang_id]['config_placeholder_fields_firstname']; ?>" value="" name="name_fastorder">        
                <span class="input-group-addon"><i class="icon-append-1 fa fa-user fa-fw"></i></span>
            </div>
            
        </div>
         <?php } ?>
         
          <?php if($on_off_fields_phone == '1') { ?>
        <div class="col-sm-6 col-sm-12 form-group <?php echo $config_fields_phone_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
            <div class="input-group margin-bottom-sm">            
                 <input id="contact-phone" class="form-control contact-phone" type="text" placeholder="<?php echo $config_placeholder_fields_phone[$lang_id]['config_placeholder_fields_phone']; ?>" value="" name="phone">        
                <span class="input-group-addon"><i class="icon-append-1 fa fa-phone-square fa-fw"></i></span>
            </div>
        </div>
         <?php } ?>
         
         <?php if($on_off_fields_email) { ?>
        <div class="col-sm-6 col-sm-12 form-group <?php echo $config_fields_email_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
        <div class="input-group margin-bottom-sm">                         
            <input id="contact-email" class="form-control contact-email" id="contact-email" type="text" placeholder="<?php echo $config_placeholder_fields_email[$lang_id]['config_placeholder_fields_email'];?>" value=""  name="email_buyer">
            <span class="input-group-addon"><i class="icon-append-1 fa fa-envelope fa-fw"></i></span>
        </div>
      </div>
      <?php } ?>
      
      <?php if($on_off_fields_comment) { ?>
        <div class="col-sm-6 col-om-12 form-group <?php echo $config_fields_comment_requared == '1' ? 'sections_block_rquaired' : 'sections_block' ; ?>">
        <div class="input-group margin-bottom-sm">                          
            <input id="contact-comment" class="form-control contact-comment-buyer" name="comment_buyer" id="contact_comment_buyer"  placeholder="<?php echo $config_placeholder_fields_comment[$lang_id]['config_placeholder_fields_comment'];?>"/>
            <span class="input-group-addon"><i class="icon-append-1 fa fa-comment fa-fw"></i></span>    
        </div>
        </div>
        <?php } ?>
        <div class="col-sm-12 form-group text-center"><?php echo isset($config_text_before_button_send[$lang_id]) ? $config_text_before_button_send[$lang_id]['config_text_before_button_send'] : ''; ?></div>
        <input type="hidden" id="callback_url" value="" name="url_site"  />
        <input type="hidden" id="this_prod_id" value="<?php echo $product_id;?>" name="this_prod_id"  />                    
        
        
        
        
        <?php } ?>
        <?php if ($text_agree) { ?>
        <div class="col-xs-12 text-center">
          <?php echo $text_agree; ?>          
            <input type="checkbox" name="agree" value="1" />
            <div class="error_agree"></div>
        </div>
        <?php } ?>
    </form>
    <div class="col-sm-12 form-group text-center"><?php echo isset($config_text_before_button_send[$lang_id]) ? $config_text_before_button_send[$lang_id]['config_text_before_button_send'] : ''; ?></div>
    </div>    
    <div class="popup-footer">
        <style>
            #quickorder_btn .btn-quickorder{
                  background-color: #<?php echo $background_button_send_fastorder;?> !important;
                  border-color: #<?php echo $background_button_send_fastorder;?> !important;
            }
            #quickorder_btn .btn-quickorder:hover, #quickorder_btn .btn-quickorder:focus{
                background-color:#<?php echo $background_button_send_fastorder_hover;?> !important;
            }
        </style>        
        <div id="quickorder_btn">
            <button type="button" onclick="quickorder_confirm();" class="btn btn-quickorder-one"><i class="<?php echo $icon_send_fastorder;?> fa-fw"></i> <?php echo $button_send; ?></button>
        </div>
        <?php if($config_any_text_at_the_bottom[$lang_id]['config_any_text_at_the_bottom'] !='') { ?>
            <div class="col-sm-12 form-group text-center" style="margin-top:10px;"><span style="color:#<?php echo $any_text_at_the_bottom_color;?>"><?php echo isset($config_any_text_at_the_bottom[$lang_id]) ? $config_any_text_at_the_bottom[$lang_id]['config_any_text_at_the_bottom'] : ''; ?></span></div>
        <?php } ?>
    </div>

<script type="text/javascript">
    $(document).ready(function() {
        <?php if ($mask_phone_number != '') { ?>
            $("#contact-phone").mask("<?php echo $mask_phone_number;?>");
        <?php } ?>
    });
</script>
<script type="text/javascript"><!--

function price_format(n)

    c = <?php echo (empty($currency['decimals']) ? "0" : $currency['decimals'] ); ?>;
    d = '<?php echo $currency['decimal_point']; ?>'; // decimal separator
    t = '<?php echo $currency['thousand_point']; ?>'; // thousands separator
    s_left = '<?php echo $currency['symbol_left']; ?>';
    s_right = '<?php echo $currency['symbol_right']; ?>';
      
    n = n * <?php echo $currency['value']; ?>;

    //sign = (n < 0) ? '-' : '';

    //extracting the absolute value of the integer part of the number and converting to string
    i = parseInt(n = Math.abs(n).toFixed(c)) + ''; 

    j = ((j = i.length) > 3) ? j % 3 : 0; 
    return s_left + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '') + s_right; 
}

function calculate_tax(price)
{
    <?php // Process Tax Rates
      if (isset($tax_rates) && $tax) {
         foreach ($tax_rates as $tax_rate) {
           if ($tax_rate['type'] == 'F') {
             echo 'price += '.$tax_rate['rate'].';';
           } elseif ($tax_rate['type'] == 'P') {
             echo 'price += (price * '.$tax_rate['rate'].') / 100.0;';
           }
         }
      }
    ?>
    return price;
}

function process_discounts(price, quantity)
{
    <?php
      foreach ($dicounts_unf as $discount) {
        echo 'if ((quantity >= '.$discount['quantity'].') && ('.$discount['price'].' < price)) price = '.$discount['price'].';'."\n";
      }
    ?>
    return price;
}


animate_delay = 20;

main_price_final = calculate_tax(Number($('#formated_price_quickorder').attr('data-price')));
main_price_start = calculate_tax(Number($('#formated_price_quickorder').attr('data-price')));
main_step = 0;
main_timeout_id = 0;

function animateMainPrice_callback_quickorder() {
    main_price_start += main_step;
    
    if ((main_step > 0) && (main_price_start > main_price_final)){
        main_price_start = main_price_final;
    } else if ((main_step < 0) && (main_price_start < main_price_final)) {
        main_price_start = main_price_final;
    } else if (main_step == 0) {
        main_price_start = main_price_final;
    }
    
    $('#formated_price_quickorder').html( price_format(main_price_start) );
    $('#total').html( price_format(main_price_start) );
    $('#total_form').val(main_price_start);
    
    if (main_price_start != main_price_final) {
        main_timeout_id = setTimeout(animateMainPrice_callback_quickorder, animate_delay);
    }
}

function animateMainPrice_quickorder(price) {
    main_price_start = main_price_final;
    main_price_final = price;
    main_step = (main_price_final - main_price_start) / 10;
    
    clearTimeout(main_timeout_id);
    main_timeout_id = setTimeout(animateMainPrice_callback_quickorder, animate_delay);
}


<?php if ($special) { ?>
special_price_final = calculate_tax(Number($('#formated_special_quickorder').attr('data-price')));
special_price_start = calculate_tax(Number($('#formated_special_quickorder').attr('data-price')));
special_step = 0;
special_timeout_id = 0;

function animateSpecialPrice_callback_quickorder() {
    special_price_start += special_step;
    
    if ((special_step > 0) && (special_price_start > special_price_final)){
        special_price_start = special_price_final;
    } else if ((special_step < 0) && (special_price_start < special_price_final)) {
        special_price_start = special_price_final;
    } else if (special_step == 0) {
        special_price_start = special_price_final;
    }
    
    $('#formated_special_quickorder').html( price_format(special_price_start) );
    $('#total').html( price_format(special_price_start) );
    $('#total_form').val(special_price_start);
   
    
    if (special_price_start != special_price_final) {
        special_timeout_id = setTimeout(animateSpecialPrice_callback_quickorder, animate_delay);
    }
}

function animateSpecialPrice_quickorder(price) {
    special_price_start = special_price_final;
    special_price_final = price;
    special_step = (special_price_final - special_price_start) / 10;
    
    clearTimeout(special_timeout_id);
    special_timeout_id = setTimeout(animateSpecialPrice_callback_quickorder, animate_delay);
}
<?php } ?>


function recalculateprice_quickorder()
{
    var main_price = Number($('#formated_price_quickorder').attr('data-price'));
    var input_quantity = $('input.qty_quickorder[name="quantity"]').val();
    var special = Number($('#formated_special_quickorder').attr('data-price'));
    
    
    var tax = 0;
    
    if (isNaN(input_quantity)) input_quantity = 0;
    
    // Process Discounts.
    <?php if ($special) { ?>
        special = process_discounts(special, input_quantity);
    <?php } else { ?>
        main_price = process_discounts(main_price, input_quantity);
    <?php } ?>
    tax = process_discounts(tax, input_quantity);
    
    
   <?php if ($points) { ?>
     var points = Number($('#formated_points').attr('points'));
     $('.option input:checked').each(function() {
       points += Number($(this).attr('points'));
     });
     $('.option option:selected').each(function() {
       points += Number($(this).attr('points'));
     });
     $('#formated_points').html(points);
   <?php } ?>
    
    var option_price = 0;
    
    $('.option input:checked,option:selected').each(function() {
      if ($(this).attr('price_prefix') == '=') {
        option_price += Number($(this).attr('price'));
        main_price = 0;
        special = 0;
      }
    });
    
    $('.option input:checked,option:selected').each(function() {
      if ($(this).attr('price_prefix') == '+') {
        option_price += Number($(this).attr('price'));
      }
      if ($(this).attr('price_prefix') == '-') {
        option_price -= Number($(this).attr('price'));
      }
      if ($(this).attr('price_prefix') == 'u') {
        pcnt = 1.0 + (Number($(this).attr('price')) / 100.0);
        option_price *= pcnt;
        main_price *= pcnt;
        special *= pcnt;
      }
      if ($(this).attr('price_prefix') == '*') {
        option_price *= Number($(this).attr('price'));
        main_price *= Number($(this).attr('price'));
        special *= Number($(this).attr('price'));
      }
    });
    
    special += option_price;
    main_price += option_price;
     
    <?php if ($special) { ?>        
        $('#price_no_tax_plus_options').val(special);
    <?php } else { ?>        
        $('#price_no_tax_plus_options').val(main_price);
    <?php } ?>
    
    <?php if ($special) { ?>
      tax = special;
    <?php } else { ?>
      tax = main_price;
    <?php } ?>
    
   
    main_price = calculate_tax(main_price);
    special = calculate_tax(special);
    <?php if ($special) { ?>
        $('#price_tax_plus_options').val(special);
    <?php } else { ?>
        $('#price_tax_plus_options').val(main_price);
    <?php } ?>
    
    
    main_price *= input_quantity;    
    special *= input_quantity;
    animateMainPrice_quickorder(main_price);
      
    <?php if ($special) { ?>
     
      animateSpecialPrice_quickorder(special);
    <?php } ?>

    <?php if ($tax) { ?>
      $('#formated_tax').html( price_format(tax) );
    <?php } ?>
}

$(document).ready(function() {
    $('.option input[type="checkbox"]').bind('change', function() { recalculateprice_quickorder(); });
    $('.option input[type="radio"]').bind('change', function() { recalculateprice_quickorder(); });
    $('.option select').bind('change', function() { recalculateprice_quickorder(); });
    
    $quantity = $('input.qty_quickorder[name="quantity"]');
    $quantity.data('val', $quantity.val());
    (function() {
        if ($quantity.val() != $quantity.data('val')){
            $quantity.data('val',$quantity.val());
            recalculateprice_quickorder();
        }
        setTimeout(arguments.callee, 250);
    })();    
    
    recalculateprice_quickorder();
});

//--></script>
<script type="text/javascript"><!--
$('.date').datetimepicker({
    pickTime: false
});

$('.datetime').datetimepicker({
    pickDate: true,
    pickTime: true
});

$('.time').datetimepicker({
    pickDate: false
});

$('button[id^=\'button-upload\']').on('click', function() {
    var node = this;

    $('#form-upload').remove();

    $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>');

    $('#form-upload input[name=\'file\']').trigger('click');

    if (typeof timer != 'undefined') {
        clearInterval(timer);
    }

    timer = setInterval(function() {
        if ($('#form-upload input[name=\'file\']').val() != '') {
            clearInterval(timer);

            $.ajax({
                url: 'index.php?route=tool/upload',
                type: 'post',
                dataType: 'json',
                data: new FormData($('#form-upload')[0]),
                cache: false,
                contentType: false,
                processData: false,
                beforeSend: function() {
                    $(node).button('loading');
                },
                complete: function() {
                    $(node).button('reset');
                },
                success: function(json) {
                    $('.text-danger').remove();

                    if (json['error']) {
                        $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>');
                    }

                    if (json['success']) {
                        alert(json['success']);

                        $(node).parent().find('input').attr('value', json['code']);
                    }
                },
                error: function(xhr, ajaxOptions, thrownError) {
                    alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                }
            });
        }
    }, 500);
});
//--></script>     
</div>
 

newfastorder2.tpl

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By sitecreator
      УСЛУГА (работа):
      Оптимизация сайта на опенкарт 1.5, 2.1, 2.3 и 3.0
      Стоимость работ для старого движка версии 1.5 будет дороже на 1500 руб по сравнению с указанной.  Ввиду особенностей устройства данной площадки я не могу в разделе "услуги" использовать доп. опции для дифференцирования цен.
       
      В состав работ входит установка и настройка необходимого софта, включая разработки для оптимизации (модули) от
      @sitecreator
      Никакой код вашего сайта не правится без возможности отката изменений. Это гарантия того, что в случае любых сомнений (или просто ради теста) вы можете отключить оптимизированную версию сайта и вернуться к первоначальной.
       
      Разработчик может предложить вам оптимизацию до ее оплаты с пробным периодом в 7 дней. Предложение может быть ограничено ввиду временного отсутствия свободного времени.
      Пожалуйста, консультируйтесь с разработчиком о возможности оптимизации вашего сайта до покупки, т.к. не всегда возможно добиться наилучшего результата.
       
      ВНИМАНИЕ!   Требования к версии php и версии движка указаны на странице дополнения Hi-Optimizer.  PHP должен быть 5.6...7.4 версии, Ioncube Loader версии не ниже 10+. Версия Опенкарт: 1.5, 2.1, 2.3, 3.0  (для других версий 2.*  возможно нужно делать адаптацию).
       
      тестовый сайт:
      https://hi-optimizer.sitecreator.pro/
      схема дефолтная, но с виджетами, счетчиками, картой, видео-вставкой.
      проверка показателей pagespeed для данного сайта:
      https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fhi-optimizer.sitecreator.pro%2F
       
      При отсутствии оптимизации данный сайт оценивается гуглом в 28 баллов. После оптимизации - 98...99 баллов для мобильных.
      Это не означает, что любой сайт можно вывести в зону 90+ баллов при малом бюджете (как в данной услуге). Но существенно поднять оценку можно.
      Вы можете заметить, что в списке моих работ  не все сайты достигли уровня в 90+ баллов.
       
       
      Работа производится с применением профессионального инструмента оптимизатора (Hi-Optimizer by SiteCreator):
       

       
       
      На сайте оптимизируются (список не является исчерпывающим):
       
      стили (CSS) скрипты (JavaScript) объединение, минификация CSS и т.п. откладывание выполнения JavaScript с малым приоритетом задание приоритета выполнения автоматически или в ручном режиме возможность асинхронной загрузки как определенных CSS, так и JavaScript оптимизация всевозможных метрик (Яндекс и др.), аналитик (Гугл, Фейсбук и др.)  (по желанию и при необходимости) оптимизация всевозможных виджетов (Яндекс, Фейсбук, В Контакте и др. ) виджеты могут загружаться при попадении их в зону просмотра (lazy load для виджетов) оптимизация всевозможных чатов (Jivosite, Яндекс и т.д) оптимизация карт Гугла и Яндекса (загружаются при попадении в зону видимости - lazy load для карт), и др. карт оптимизация загрузки фреймов (iframe) оптимизация видео-вставок Ютюб, youtube.com оптимизация загрузки и отображения шрифтов, причем, как из внешних источников, так и из CSS, загружаемых с вашего сайта отслеживание дублей CSS, JS и, соответственно, предотвращение их повторной загрузки оптимизация загрузки всевозможных Lightbox (magnific-popup, colorbox, fancybox) другое по необходимости (определяется на основе анализа сайта)  
      Поскольку сперва производится анализ сайта, то невозможно до завершения анализа сайта перечислить все необходимые действия по оптимизации конкретного сайта. Работы по оптимизации производятся с учетом конкретных особенностей сайта. К каждому сайту  - индивидуальный подход!
       
      Работа проводится без изменения кода сайта с применением технологии ocmod.  Вы в любой момент можете откатить любые изменения. Даже после обновления шаблона на новую версию результат оптимизации сохраняется почти всегда, но может потребоваться иногда небольшая настройка. Т.е. обычно в таких случаях не нужно заново с нуля проводить оптимизацию. В этом большое преимущество данного подхода к оптимизации - он максимально гибкий и с хорошей переносимостью кода.  Включить или выключить оптимизацию кода на сайте вы можете одной кнопкой.
       

       
      На дефолтном движке и дефолтной теме для мобильных такой результат можете получить как на скриншоте ниже. На других сайтах общий результат также будет зависеть от оптимизации скорости отдачи самой страницы и оптимизации изображений.
       
       
      Результат гарантируется!
       
      Оптимизация отклика сервера и скорости генерации сервером страниц (отдаваемый HTML) не входит в данную услугу. По оптимизации серверной части пользуйтесь другими услугами.
      Как правило, отклик страницы в 1 сек или быстрее не сильно влияет на возможность достижения высоких баллов по оценке Гугла. Т.е. в настоящее время гугл придает наибольшее значение в своей оценке именно оптимизации скриптов JavaScript, CSS, и меньше придает значение скорости отклика сервера, но все в разумных пределах, разумеется.
       
      Для разработчиков, оптимизаторов и др. девелоперов возможна индивидуальная скидка до 50%  от начальной стоимости. Да и просто тем, кто заказывает 2-й раз данную услугу также могу предложить скидку.
      За купоном на скидку, пожалуйста, обращайтесь в личку или на почту [email protected]
       

       
       
      Для работы используется профессиональный инструмент:
       
      ВНИМАНИЕ!   Требования к версии php и версии движка указаны на странице дополнения Hi-Optimizer.  PHP должен быть 5.6...7.4 версии, Ioncube Loader версии не ниже 10+. Версия Опенкарт: 1.5, 2.1, 2.3, 3.0  (для других версий 2.*  возможно нужно делать адаптацию).
       
       
       
      Модуль Hi-Optimizer не является панацеей для всех случаев.  Бывают крайне неудачно сделанные сайты (соответственно с оценкой гугла близкой к нулю),  которые без серьезной переделки невозможно оптимизировать, а это только ручная работа с версткой, кодом и т.д. Предлагаю сперва (до заказа услуги или покупки модуля) консультироваться с исполнителем и делать предварительный анализ и прогноз на предмет возможной успешной оптимизации конкретного сайта.
       
      На результат могут отрицательно влиять ошибки в коде HTML, имеются ввиду грубые ошибки (непарность парных тегов, незакрытые кавычки и т.п.). Изначально предполагается, что HTML на странице не содержит грубых ошибок, в противном случае возможна некорректная работа hi-optimizer на таких страницах, тестирование hi-optimizer не проводилось на страницах, содержащих грубые ошибки HTML (синтаксические и иные), соответственно автор не несет никакой ответственности за корректную работу таких страниц.
       
      Автор данного программного решения не может брать на себя обязательств, что на вашем конкретном сайте в любом  случае можно непременно достичь оценки гугла в 90+ баллов только лишь за счет применения программного решения "Hi-Optimizer". Оптимизатор Hi-Optimizer в первую очередь позволяет выполнять многие рекомендации гугла в плане оптимизации, например, позволяет снимать блокировку основного потока   (сторонними скриптами)  полностью (или, как миниум, существенно уменьшать ее).
       
      Выполненные (частично или все) рекомендации гугла по оптимизации и/или увеличение оценки на (минимально) 10 баллов (при первоначальном нахождении в красной зоне, т.е. если стартовая оценка была ниже 50) могут считаться критерием для успешной работы Hi-Optimizer. Конечный результат сильно зависит от индивидуальных особенностей сайта, в первую очередь - от примененного шаблона.
       
      Под спойлером подробнее о том какими средствами объективного контроля (от гугла) можно оценить как Hi-Optimizer выполняет оптимизацию по конкретным рекомендациям гугла.
       
       
       
       Какие шаблоны из известных являются сложными для оптимизации?
       
         

       
       
       
      Реальные сайты, на которых производилась оптимизация:
       

       

       

       

       

       
    • By sitecreator
      4 700.00 руб
      Скачать/Купить дополнение


      Оптимизация и ускорение сайта для максимального повышения оценки pagespeed Гугла
      УСЛУГА (работа):
      Оптимизация сайта на опенкарт 1.5, 2.1, 2.3 и 3.0
      Стоимость работ для старого движка версии 1.5 будет дороже на 1500 руб по сравнению с указанной.  Ввиду особенностей устройства данной площадки я не могу в разделе "услуги" использовать доп. опции для дифференцирования цен.
       
      В состав работ входит установка и настройка необходимого софта, включая разработки для оптимизации (модули) от
      @sitecreator
      Никакой код вашего сайта не правится без возможности отката изменений. Это гарантия того, что в случае любых сомнений (или просто ради теста) вы можете отключить оптимизированную версию сайта и вернуться к первоначальной.
       
      Разработчик может предложить вам оптимизацию до ее оплаты с пробным периодом в 7 дней. Предложение может быть ограничено ввиду временного отсутствия свободного времени.
      Пожалуйста, консультируйтесь с разработчиком о возможности оптимизации вашего сайта до покупки, т.к. не всегда возможно добиться наилучшего результата.
       
      ВНИМАНИЕ!   Требования к версии php и версии движка указаны на странице дополнения Hi-Optimizer.  PHP должен быть 5.6...7.4 версии, Ioncube Loader версии не ниже 10+. Версия Опенкарт: 1.5, 2.1, 2.3, 3.0  (для других версий 2.*  возможно нужно делать адаптацию).
       
      тестовый сайт:
      https://hi-optimizer.sitecreator.pro/
      схема дефолтная, но с виджетами, счетчиками, картой, видео-вставкой.
      проверка показателей pagespeed для данного сайта:
      https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fhi-optimizer.sitecreator.pro%2F
       
      При отсутствии оптимизации данный сайт оценивается гуглом в 28 баллов. После оптимизации - 98...99 баллов для мобильных.
      Это не означает, что любой сайт можно вывести в зону 90+ баллов при малом бюджете (как в данной услуге). Но существенно поднять оценку можно.
      Вы можете заметить, что в списке моих работ  не все сайты достигли уровня в 90+ баллов.
       
       
      Работа производится с применением профессионального инструмента оптимизатора (Hi-Optimizer by SiteCreator):
       

       
       
      На сайте оптимизируются (список не является исчерпывающим):
       
      стили (CSS) скрипты (JavaScript) объединение, минификация CSS и т.п. откладывание выполнения JavaScript с малым приоритетом задание приоритета выполнения автоматически или в ручном режиме возможность асинхронной загрузки как определенных CSS, так и JavaScript оптимизация всевозможных метрик (Яндекс и др.), аналитик (Гугл, Фейсбук и др.)  (по желанию и при необходимости) оптимизация всевозможных виджетов (Яндекс, Фейсбук, В Контакте и др. ) виджеты могут загружаться при попадении их в зону просмотра (lazy load для виджетов) оптимизация всевозможных чатов (Jivosite, Яндекс и т.д) оптимизация карт Гугла и Яндекса (загружаются при попадении в зону видимости - lazy load для карт), и др. карт оптимизация загрузки фреймов (iframe) оптимизация видео-вставок Ютюб, youtube.com оптимизация загрузки и отображения шрифтов, причем, как из внешних источников, так и из CSS, загружаемых с вашего сайта отслеживание дублей CSS, JS и, соответственно, предотвращение их повторной загрузки оптимизация загрузки всевозможных Lightbox (magnific-popup, colorbox, fancybox) другое по необходимости (определяется на основе анализа сайта)  
      Поскольку сперва производится анализ сайта, то невозможно до завершения анализа сайта перечислить все необходимые действия по оптимизации конкретного сайта. Работы по оптимизации производятся с учетом конкретных особенностей сайта. К каждому сайту  - индивидуальный подход!
       
      Работа проводится без изменения кода сайта с применением технологии ocmod.  Вы в любой момент можете откатить любые изменения. Даже после обновления шаблона на новую версию результат оптимизации сохраняется почти всегда, но может потребоваться иногда небольшая настройка. Т.е. обычно в таких случаях не нужно заново с нуля проводить оптимизацию. В этом большое преимущество данного подхода к оптимизации - он максимально гибкий и с хорошей переносимостью кода.  Включить или выключить оптимизацию кода на сайте вы можете одной кнопкой.
       

       
      На дефолтном движке и дефолтной теме для мобильных такой результат можете получить как на скриншоте ниже. На других сайтах общий результат также будет зависеть от оптимизации скорости отдачи самой страницы и оптимизации изображений.
       
       
      Результат гарантируется!
       
      Оптимизация отклика сервера и скорости генерации сервером страниц (отдаваемый HTML) не входит в данную услугу. По оптимизации серверной части пользуйтесь другими услугами.
      Как правило, отклик страницы в 1 сек или быстрее не сильно влияет на возможность достижения высоких баллов по оценке Гугла. Т.е. в настоящее время гугл придает наибольшее значение в своей оценке именно оптимизации скриптов JavaScript, CSS, и меньше придает значение скорости отклика сервера, но все в разумных пределах, разумеется.
       
      Для разработчиков, оптимизаторов и др. девелоперов возможна индивидуальная скидка до 50%  от начальной стоимости. Да и просто тем, кто заказывает 2-й раз данную услугу также могу предложить скидку.
      За купоном на скидку, пожалуйста, обращайтесь в личку или на почту [email protected]
       

       
       
      Для работы используется профессиональный инструмент:
       
      ВНИМАНИЕ!   Требования к версии php и версии движка указаны на странице дополнения Hi-Optimizer.  PHP должен быть 5.6...7.4 версии, Ioncube Loader версии не ниже 10+. Версия Опенкарт: 1.5, 2.1, 2.3, 3.0  (для других версий 2.*  возможно нужно делать адаптацию).
       
       
       
      Модуль Hi-Optimizer не является панацеей для всех случаев.  Бывают крайне неудачно сделанные сайты (соответственно с оценкой гугла близкой к нулю),  которые без серьезной переделки невозможно оптимизировать, а это только ручная работа с версткой, кодом и т.д. Предлагаю сперва (до заказа услуги или покупки модуля) консультироваться с исполнителем и делать предварительный анализ и прогноз на предмет возможной успешной оптимизации конкретного сайта.
       
      На результат могут отрицательно влиять ошибки в коде HTML, имеются ввиду грубые ошибки (непарность парных тегов, незакрытые кавычки и т.п.). Изначально предполагается, что HTML на странице не содержит грубых ошибок, в противном случае возможна некорректная работа hi-optimizer на таких страницах, тестирование hi-optimizer не проводилось на страницах, содержащих грубые ошибки HTML (синтаксические и иные), соответственно автор не несет никакой ответственности за корректную работу таких страниц.
       
      Автор данного программного решения не может брать на себя обязательств, что на вашем конкретном сайте в любом  случае можно непременно достичь оценки гугла в 90+ баллов только лишь за счет применения программного решения "Hi-Optimizer". Оптимизатор Hi-Optimizer в первую очередь позволяет выполнять многие рекомендации гугла в плане оптимизации, например, позволяет снимать блокировку основного потока   (сторонними скриптами)  полностью (или, как миниум, существенно уменьшать ее).
       
      Выполненные (частично или все) рекомендации гугла по оптимизации и/или увеличение оценки на (минимально) 10 баллов (при первоначальном нахождении в красной зоне, т.е. если стартовая оценка была ниже 50) могут считаться критерием для успешной работы Hi-Optimizer. Конечный результат сильно зависит от индивидуальных особенностей сайта, в первую очередь - от примененного шаблона.
       
      Под спойлером подробнее о том какими средствами объективного контроля (от гугла) можно оценить как Hi-Optimizer выполняет оптимизацию по конкретным рекомендациям гугла.
       
       
       
       Какие шаблоны из известных являются сложными для оптимизации?
       
         

       
       
       
      Реальные сайты, на которых производилась оптимизация:
       

       

       

       

       

       
      Добавил sitecreator Добавлено 17.04.2020 Категория Услуги  
    • By TramplinStudio
      Поддержка осуществляется в Пн-Пт с 18:00 до 20:00 по МСК!
       
      Вы уверены в эффективности элементов дизайна на вашем сайте?
      Предположения и гипотезы о качестве активных и пассивных элементов сайта строятся на основе личного опыта и взглядов разработчиков и дизайнеров, которые совсем не обязательно совпадут со взглядами посетителей вашего интернет-магазина OpenCart. Другими словами, нет гарантии что элементы на страницах интернет-магазина приведут к желаемому эффекту. Пакет модулей "AB-Test 3 в 1" будет очень полезен для проверки таких гипотез.

      AB-Test 3 в 1 v1.1 by Tramplin Studio - это набор простых, но мощных маркетинговых инструментов для повышения эффективности ваших баннеров, слайдеров, HTML текстов и любых других элементов дизайна в OpenCart, с помощью аналитического метода "АБ-тестирование". Благодаря этому пакету модулей, вы сможете лучше донести до посетителя нужную информацию, и тем самым значительно повысите конверсию вашего интернет-магазина.

      Что такое АБ-тестирование (Split test)?
      Это современный метод маркетингового исследования. Его суть заключается в том, что контрольная группа элементов сравнивается с набором тестовых групп, в которых один или несколько показателей были изменены, для того, чтобы выяснить, какие из изменений улучшают целевой показатель. Разновидностью АБ-тестирования является многовариантное тестирование, доступное в пакете модулей "AB-Test 3 в 1".


      Какие модули входят в пакет "AB-Test 3 в 1"?
      "TS AB-Test Elements" - тестирование активных и пассивных элементов дизайна на страницах вашего интернет-магазина; "TS AB-Test Banners" - тестирование баннеров, слайдеров и каруселей с неограниченным числом изображений; "TS AB-Test HTML" - тестирование HTML текстов на страницах вашего сайта.
      Какими возможностями обладают модули?

          Высокая гибкость:
      возможностью мультивариантного тестирования (до 5 тестовых групп, вместо стандартных 2-х); доступна возможность самому устанавливать вероятность показа для каждой отдельной тестовой группы с помощью ползунков на шкале вероятности; отслеживание показателей с помощью сервисов Google Analytics и Яндекс.Метрика, что позволяет проводить более глубокий анализ результатов тестирования по полу, возрасту, типам устройств, браузерам, операционным системам и другим показателям. Более подробно о каждом счетчике: счетчик Google Analytics, модуль поддерживает оба типа счетчика, как gtag, так и analytics; счетчик Яндекс.Метрики, как старой версии API v1.0, так и новой - API v2.0 (Версия 2.0 была доступна в тестовом режиме с 2016 года, но официально встала на вооружение с 06.12.2018. Если вы не знаете наверняка, то не будет лишним провести обновление счетчика или установить наш модуль аналитики "TS Yandex Metrika", который применяет последнюю версию счетчика).     Доступны 2 типа событий с тестовыми образцами, при которых цель может считаться достигнутой:
      простой клик мышью - click event; наведение курсора мыши на элемент - mouseover event.       Событие "mouseover" лишь косвенно указывает на интерес посетителя вашего интернет-магазина к элементу, так как будет содержать долю "холостых" событий, однако может быть очень полезным в некоторых случаях (например для элементов без ссылки или для форсирования АБ-тестирования). Для того чтобы снизить число холостых срабатываний, для "mouseover" доступна настройка задержки события в миллисекундах. Например, если вы хотите чтобы цель считалась достигнутой через 2 секунды после наведения на элемент курсора мыши, то укажите задержку 2000 миллисекунд. Однако, следует учитывать, что если посетитель отведет курсор от элемента раньше, то событие будет сброшено.


      Полезные советы:
      Если вы серьезно относитесь к конверсии вашего интернет-магазина и вам важно знать все о действиях посетителей, тогда другие наши модули "TS Yandex Metrika" и "TS Google Analytics" могут быть вам очень полезны! С этими модулями вы сможете передавать сервисам Яндекса и Гугла не только такие простые данные как переходы по ссылкам и клики, но и подробную информацию о посетителях сайта, данные электронной коммерции, а также настраивать цели для отслеживание конверсий, не прибегая к вмешательству в код сайта и не обладая глубокими познаниями в веб-разработке. Другой наш продукт - "TS Banner MultiPosition", может стать полезным дополнением к модулю "TS AB-Test Banners" и обычным баннерам. С ним вы сможете показывать баннеры там, где они действительно нужны. Отображение одного и того же изображения может быть настроено опционально для любых страниц из списков: товаров, категорий, производителей, статей и страниц внутреннего поиска в магазине. Создавайте сложные маркетинговые переплетения всего за несколько минут!
      -----------------------------------------------------------------------------------------------

      Смотреть DEMO
      Смотреть DEMO админки (логин: demo, пароль: demo)

      -----------------------------------------------------------------------------------------------

      Инструкция по установке:
      Перейдите в Панель администратора -> Модули -> Установка расширений; Загрузите архив с модулем для вашей версии OpenCart или ocStore;  
      Файлы не перезаписываются!

      -----------------------------------------------------------------------------------------------

      Инструкция по обновлению:
      Перейдите в Панель администратора -> Модули -> Установка расширений; Загрузите архив с обновленным модулем для вашей версии OpenCart или ocStore; Проверьте настройки модуля и пересохраните.  
      -----------------------------------------------------------------------------------------------

      Данный модуль является завершенным продуктом. Дальнейшее обновление модуля маловероятно.
       
    • By TramplinStudio
      Скачать/Купить дополнение


      TS AB-Test 3 в 1
      Поддержка осуществляется в Пн-Пт с 18:00 до 20:00 по МСК!
       
      Вы уверены в эффективности элементов дизайна на вашем сайте?
      Предположения и гипотезы о качестве активных и пассивных элементов сайта строятся на основе личного опыта и взглядов разработчиков и дизайнеров, которые совсем не обязательно совпадут со взглядами посетителей вашего интернет-магазина OpenCart. Другими словами, нет гарантии что элементы на страницах интернет-магазина приведут к желаемому эффекту. Пакет модулей "AB-Test 3 в 1" будет очень полезен для проверки таких гипотез.

      AB-Test 3 в 1 v1.1 by Tramplin Studio - это набор простых, но мощных маркетинговых инструментов для повышения эффективности ваших баннеров, слайдеров, HTML текстов и любых других элементов дизайна в OpenCart, с помощью аналитического метода "АБ-тестирование". Благодаря этому пакету модулей, вы сможете лучше донести до посетителя нужную информацию, и тем самым значительно повысите конверсию вашего интернет-магазина.

      Что такое АБ-тестирование (Split test)?
      Это современный метод маркетингового исследования. Его суть заключается в том, что контрольная группа элементов сравнивается с набором тестовых групп, в которых один или несколько показателей были изменены, для того, чтобы выяснить, какие из изменений улучшают целевой показатель. Разновидностью АБ-тестирования является многовариантное тестирование, доступное в пакете модулей "AB-Test 3 в 1".


      Какие модули входят в пакет "AB-Test 3 в 1"?
      "TS AB-Test Elements" - тестирование активных и пассивных элементов дизайна на страницах вашего интернет-магазина; "TS AB-Test Banners" - тестирование баннеров, слайдеров и каруселей с неограниченным числом изображений; "TS AB-Test HTML" - тестирование HTML текстов на страницах вашего сайта.
      Какими возможностями обладают модули?

          Высокая гибкость:
      возможностью мультивариантного тестирования (до 5 тестовых групп, вместо стандартных 2-х); доступна возможность самому устанавливать вероятность показа для каждой отдельной тестовой группы с помощью ползунков на шкале вероятности; отслеживание показателей с помощью сервисов Google Analytics и Яндекс.Метрика, что позволяет проводить более глубокий анализ результатов тестирования по полу, возрасту, типам устройств, браузерам, операционным системам и другим показателям. Более подробно о каждом счетчике: счетчик Google Analytics, модуль поддерживает оба типа счетчика, как gtag, так и analytics; счетчик Яндекс.Метрики, как старой версии API v1.0, так и новой - API v2.0 (Версия 2.0 была доступна в тестовом режиме с 2016 года, но официально встала на вооружение с 06.12.2018. Если вы не знаете наверняка, то не будет лишним провести обновление счетчика или установить наш модуль аналитики "TS Yandex Metrika", который применяет последнюю версию счетчика).     Доступны 2 типа событий с тестовыми образцами, при которых цель может считаться достигнутой:
      простой клик мышью - click event; наведение курсора мыши на элемент - mouseover event.       Событие "mouseover" лишь косвенно указывает на интерес посетителя вашего интернет-магазина к элементу, так как будет содержать долю "холостых" событий, однако может быть очень полезным в некоторых случаях (например для элементов без ссылки или для форсирования АБ-тестирования). Для того чтобы снизить число холостых срабатываний, для "mouseover" доступна настройка задержки события в миллисекундах. Например, если вы хотите чтобы цель считалась достигнутой через 2 секунды после наведения на элемент курсора мыши, то укажите задержку 2000 миллисекунд. Однако, следует учитывать, что если посетитель отведет курсор от элемента раньше, то событие будет сброшено.


      Полезные советы:
      Если вы серьезно относитесь к конверсии вашего интернет-магазина и вам важно знать все о действиях посетителей, тогда другие наши модули "TS Yandex Metrika" и "TS Google Analytics" могут быть вам очень полезны! С этими модулями вы сможете передавать сервисам Яндекса и Гугла не только такие простые данные как переходы по ссылкам и клики, но и подробную информацию о посетителях сайта, данные электронной коммерции, а также настраивать цели для отслеживание конверсий, не прибегая к вмешательству в код сайта и не обладая глубокими познаниями в веб-разработке. Другой наш продукт - "TS Banner MultiPosition", может стать полезным дополнением к модулю "TS AB-Test Banners" и обычным баннерам. С ним вы сможете показывать баннеры там, где они действительно нужны. Отображение одного и того же изображения может быть настроено опционально для любых страниц из списков: товаров, категорий, производителей, статей и страниц внутреннего поиска в магазине. Создавайте сложные маркетинговые переплетения всего за несколько минут!
      -----------------------------------------------------------------------------------------------

      Смотреть DEMO
      Смотреть DEMO админки (логин: demo, пароль: demo)

      -----------------------------------------------------------------------------------------------

      Инструкция по установке:
      Перейдите в Панель администратора -> Модули -> Установка расширений; Загрузите архив с модулем для вашей версии OpenCart или ocStore;  
      Файлы не перезаписываются!

      -----------------------------------------------------------------------------------------------

      Инструкция по обновлению:
      Перейдите в Панель администратора -> Модули -> Установка расширений; Загрузите архив с обновленным модулем для вашей версии OpenCart или ocStore; Проверьте настройки модуля и пересохраните.  
      -----------------------------------------------------------------------------------------------

      Данный модуль является завершенным продуктом. Дальнейшее обновление модуля маловероятно.
       
      Добавил TramplinStudio Добавлено 11.07.2019 Категория Меню, дизайн, внешний вид Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 0  
    • By TramplinStudio
      Поддержка осуществляется в Пн-Пт с 18:00 до 20:00 по МСК!
       
      Вы уверены в эффективности баннеров на вашем сайте?
      Предположения и гипотезы о качестве баннера строятся на основе личного опыта и взглядов дизайнера, которые совсем не обязательно совпадут со взглядами посетителей вашего интернет-магазина. Другими словами, нет гарантии что после создания и размещения баннера вы получите желаемый эффект. Модуль "AB-Test Banners" будет очень полезен для проверки таких гипотез.

      AB-Test Banners v1.1 by Tramplin Studio - это простой, но мощный маркетинговый инструмент для повышения эффективности ваших баннеров, слайдеров и каруселей в OpenCart, с помощью аналитического метода "АБ-тестирование". Благодаря этому модулю, вы сможете лучше донести до посетителя нужную информацию, и тем самым значительно повысите конверсию вашего интернет-магазина.

      Что такое АБ-тестирование (Split test)?
      Это современный метод маркетингового исследования. Его суть заключается в том, что контрольная группа элементов сравнивается с набором тестовых групп, в которых один или несколько показателей были изменены, для того, чтобы выяснить, какие из изменений улучшают целевой показатель. Разновидностью АБ-тестирования является многовариантное тестирование, доступное в модуле "AB-Test Banners".


      Какими возможностями обладает модуль "AB-Test Banners"?

          Высокая гибкость:
      возможностью мультивариантного тестирования (до 5 тестовых групп, вместо стандартных 2-х); доступна возможность самому устанавливать вероятность показа для каждой отдельной тестовой группы с помощью ползунков на шкале вероятности; экспериментируйте с внешним видом баннеров (их графическим и текстовым содержанием, с размерами изображений и типами отображения); отслеживание показателей с помощью сервисов Google Analytics и Яндекс.Метрика, что позволяет проводить более глубокий анализ результатов тестирования по полу, возрасту, типам устройств, браузерам, операционным системам и другим показателям.     Модуль включает в себя сразу 3 стандартных в OpenCart типа отображения баннеров:
      простой баннер; слайдшоу; карусель.     Настройка модуля всем привычна и не отличается от настройки стандартных модулей:
      сначала создаются группы баннеров в разделе OpenCart "Дизайн -> Баннеры"; затем группы баннеров выбираются в качестве тестовых образцов в модуле "AB-Test Banners"; для отображения на страницах интернет-магазина, настроенный модуль добавляется в разделе "Дизайн -> Макеты" (Схемы).     После настройки тестовых групп, отобразится сводная таблица со списком всех групп баннеров и каждого баннера в отдельности (вкладка "Шаг 2: Цели"):
      каждому баннеру присваивается уникальный идентификатор цели, которая достигается при определенном действии посетителя интернет-магазина с тестируемым образцом; галочками можно отметить ряд баннеров по всем тестовым группам, события по которым вы желаете отслеживать; также доступны общие цели, которые достигаются при событии с любым из баннеров тестовой группы.     Отслеживание показателей в процессе АБ-тестирования производится через счетчики всем известных сервисов:
      счетчик Google Analytics, модуль поддерживает оба типа счетчика, как gtag, так и analytics; счетчик Яндекс.Метрики, как старой версии API v1.0, так и новой - API v2.0 (Версия 2.0 была доступна в тестовом режиме с 2016 года, но официально встала на вооружение с 06.12.2018. Если вы не знаете наверняка, то не будет лишним провести обновление счетчика или установить наш модуль аналитики "TS Yandex Metrika", который применяет последнюю версию счетчика).     Доступны 2 типа событий с баннерами, при которых цель может считаться достигнутой:
      простой клик мышью - click event; наведение курсора мыши на баннер - mouseover event.       Событие "mouseover" лишь косвенно указывает на интерес посетителя вашего интернет-магазина к баннеру, так как будет содержать долю "холостых" событий, однако может быть очень полезным в некоторых случаях (например для баннеров без ссылки или для форсирования АБ-тестирования). Для того чтобы снизить число холостых срабатываний, для "mouseover" доступна настройка задержки события в миллисекундах. Например, если вы хотите чтобы цель считалась достигнутой через 2 секунды после наведения на баннер курсора мыши, то укажите задержку 2000 миллисекунд. Однако, следует учитывать, что если посетитель отведет курсор от баннера раньше, то событие будет сброшено.


      Заметки и полезные советы:
       
      Вы можете использовать "AB-Test Banners" в обычном режиме, отключив отслеживание целей через счетчики Google и Яндекс. Вы можете использовать счетчики обоих сервисов одновременно, для повышения качества анализа в процессе АБ-тестирования баннеров. Для корректной работы целей, лучше когда коды счетчиков Google Analytics и/или Яндекс.Метрика размещены в <HEAD> страницы, или в самом начале <BODY>. Вам не следует заботиться об этом, как и о многом другом, если вы используете наши модули "TS Yandex Metrika" и "TS Google Analytics"! Если вы используете сервис Google Analytics, то можете указать идентификатор другого ресурса (этого же сайта), к примеру если за сайт отвечают разные люди, чтобы распределить информацию между ними. Внимание! "AB-Test Banners" не размещает коды счетчиков Google Analytics и Яндекс.Метрика самостоятельно, счетчик уже должен быть размещен в HTML коде сайта. Внимание! Создавая группу баннеров в разделе OpenCart "Дизайн -> Баннеры" не забудьте указать порядок сортировки, чтобы избежать возможного перемешивания баннеров при повторном редактировании, так как это может повлечь за собой изменение идентификаторов целей для отдельных тестируемых баннеров. Внимание! Редактирование некоторых настроек тестовых групп может повлечь за собой изменение идентификаторов целей. Не забывайте переназначить идентификаторы целей в Google Analytics и Яндекс.Метрика! Внимание! У таких типов баннеров как "слайдер" и "карусель", скорость прокручивания не превышает 3000 миллисекунд для OpenCart 2.0+ и 2500 миллисекунд для OpenCart 3.0+. Об этом следует помнить при указании времени задержки. Другой наш продукт - "TS Banner MultiPosition", может стать полезным дополнением к "AB-Test Banners" и обычным баннерам. С ним вы сможете показывать баннеры там, где они действительно нужны. Отображение одного и того же изображения может быть настроено опционально для любых страниц из списков: товаров, категорий, производителей, статей и страниц внутреннего поиска в магазине. Создавайте сложные маркетинговые переплетения всего за несколько минут! Важно чтобы сайт обладал не только качественными баннерами, но и не менее качественными продающими текстами и элементами дизайна, которые применяются в OpenCart для внутреннего маркетинга и СЕО. Для определения их эффективности так же применяется метод АБ-тестирования доступный в других наших модулях: "TS AB-Test HTML" и "TS AB-Test Elements"!
      -----------------------------------------------------------------------------------------------

      Смотреть DEMO
      Смотреть DEMO админки (логин: demo, пароль: demo)

      -----------------------------------------------------------------------------------------------

      Инструкция по установке:
      Перейдите в Панель администратора -> Модули -> Установка расширений; Загрузите архив с модулем для вашей версии OpenCart или ocStore;  
      Файлы не перезаписываются!

      -----------------------------------------------------------------------------------------------

      Инструкция по обновлению:
      Перейдите в Панель администратора -> Модули -> Установка расширений; Загрузите архив с обновленным модулем для вашей версии OpenCart или ocStore; Проверьте настройки модуля и пересохраните.
      -----------------------------------------------------------------------------------------------

      Данный модуль является завершенным продуктом. Дальнейшее обновление модуля маловероятно.
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.