Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] Обновление цены при выборе опции, без AJAX - HYPER Dynamic price of options OC 2


Recommended Posts

Использую модуль Batch Editor - пакетное редактирование товаров. Есть ли возможность, управлять опциями на странице Batch Editor? Там открываю опции и там стандартный набор опций. Приходится идти в стандартное управление товарами, чтобы управлять опциями. Может можно как-то научить Batch Editor видеть модуль управления опциями?

Надіслати
Поділитися на інших сайтах


Подскажите в чем проблема? Опенкарт 1.5.4.1

Да ... и во вкладке Локализация у меня нет от этого модуля настроек.

 

MOD DETAILS:
   modFile   : /var/www/www-root/data/www/elesmoker.ru/vqmod/xml/autocalc_price_option_v2.0.22.xml
   id        : Обновление цены при выборе опций (без AJAX)
   version   : 2.0.22
   vqmver    : 2.2.1
   author    : mpn2005

File Name    : catalog/view/theme/*/template/product/product.tpl(2)
VQModObject::applyMod - SEARCH NOT FOUND (ABORTING MOD): <?php echo $price; ?>

Змінено користувачем bombucho
Надіслати
Поділитися на інших сайтах


1 час назад, bombucho сказал:

Подскажите в чем проблема? Опенкарт 1.5.4.1

Да ... и во вкладке Локализация у меня нет от этого модуля настроек.

 

MOD DETAILS:
   modFile   : /var/www/www-root/data/www/elesmoker.ru/vqmod/xml/autocalc_price_option_v2.0.22.xml
   id        : Обновление цены при выборе опций (без AJAX)
   version   : 2.0.22
   vqmver    : 2.2.1
   author    : mpn2005

File Name    : catalog/view/theme/*/template/product/product.tpl(2)
VQModObject::applyMod - SEARCH NOT FOUND (ABORTING MOD): <?php echo $price; ?>

Для версий 1.5 настроек и не должно быть. Они есть, начиная с Опенкарт 2.

Для версий 1.5 в файле "autocalc_price_option_v2.0.22.xml" путей, начинающихся с "admin", нет.

SEARCH NOT FOUND (ABORTING MOD): <?php echo $price; ?> - не находит в файле "catalog/view/theme/*/template/product/product.tpl" <?php echo $price; ?> для замены.

Спойлер

444.jpg.f784d1c1d3ad61e77fc53f9401bd6ad5.jpg

 

555.jpg.3d032b4341113f03f68970f31aea29fa.jpg

 

Змінено користувачем Zapuzin
  • +1 1
Надіслати
Поділитися на інших сайтах


7 минут назад, Zapuzin сказал:

Для версий 1.5 настроек и не должно быть. Они есть, начиная с Опенкарт 2.

Для версий 1.5 в файле "autocalc_price_option_v2.0.22.xml" путей, начинающихся с "admin", нет.

SEARCH NOT FOUND (ABORTING MOD): <?php echo $price; ?> - не находит в файле "catalog/view/theme/*/template/product/product.tpl" <?php echo $price; ?> для замены.

  Скрыть контент

444.jpg.f784d1c1d3ad61e77fc53f9401bd6ad5.jpg

 

555.jpg.3d032b4341113f03f68970f31aea29fa.jpg

 

 

Спасибо, а что делать чтоб нашел или может не надо ему находить?

Надіслати
Поділитися на інших сайтах


2 минуты назад, bombucho сказал:

Спасибо, а что делать чтоб нашел или может не надо ему находить?

Всё верно ответили выше.

Надо смотреть шаблон темы и как там выводится цена товара. И менять привязку в vqmod модуле.

Надіслати
Поділитися на інших сайтах

Проверил, в не находит в файле "catalog/view/theme/*/template/product/product.tpl"  нет таких строк. И вообще файл выглядит иначе:

 

Спойлер

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1><?php echo $heading_title; ?></h1>
  <div class="product-info">
    <?php if ($thumb || $images) { ?>
    <div class="left">
      <?php if ($thumb) { ?>
      <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div>
      <?php } ?>
      <!--<?php if ($images) { ?>
      <div class="image-additional">
        <?php foreach ($images as $image) { ?>
        <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a>
        <?php } ?>
      </div>
      <?php } ?>-->
    </div>
    <?php } ?>
    <div class="right">
      <div class="description">
        <?php if ($manufacturer) { ?>
        <span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a><br />
        <?php } ?>
        <span><?php echo $text_model; ?></span> <?php echo $model; ?><br />
        <?php if ($reward) { ?>
        <?php } ?>
        <span><?php echo $text_stock; ?></span> <span style="color: #FF0000;"><b><?php echo $stock; ?></b></span></div>
      <?php if ($price) { ?>
      <div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
         <span class="price-old"><?php echo $price; ?></span>
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
        <?php } ?>
        <br />
        <?php if ($tax) { ?>
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $tax; ?></span><br />
        <?php } ?>
        <?php if ($points) { ?>
        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
        <?php } ?>
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
      </div>
      <?php } ?>
      <?php if ($options) { ?>
      <div class="options">
        <h2><?php echo $text_option; ?></h2>
        <br />
        <?php foreach ($options as $option) { ?>
        <?php if ($option['type'] == 'select') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <select name="option[<?php echo $option['product_option_id']; ?>]">
            <option value=""><?php echo $text_select; ?></option>
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <option value="<?php echo $option_value['product_option_value_id']; ?>"><?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>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'radio') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?php foreach ($option['option_value'] as $option_value) { ?>
          <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" data-price_prefix="<?php echo $option_value['price_prefix']; ?>" data-price="<?php echo trim($option_value['price'], ' р.'); ?>" />
          <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php } ?>
          </label>
          <br />
          <?php } ?>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'checkbox') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?php foreach ($option['option_value'] as $option_value) { ?>
          <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
          <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php } ?>
          </label>
          <br />
          <?php } ?>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'image') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <table class="option-image">
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <tr>
              <td style="width: 1px;"><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
              <td><label for="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'] : ''); ?>" /></label></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                  <?php if ($option_value['price']) { ?>
                  (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                  <?php } ?>
                </label></td>
            </tr>
            <?php } ?>
          </table>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'text') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'textarea') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'file') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="button" value="<?php echo $button_upload; ?>" id="button-option-<?php echo $option['product_option_id']; ?>" class="button">
          <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'date') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'datetime') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />
        </div>
        <br />
        <?php } ?>
        <?php if ($option['type'] == 'time') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />
        </div>
        <br />
        <?php } ?>
        <?php } ?>
      </div>
      <?php } ?>
      <div class="cart">
        <div><?php echo $text_qty; ?>
          <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
          <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
          &nbsp;
          <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />
        </div>
        
       
        <?php if ($minimum > 1) { ?>
        <div class="minimum"><?php echo $text_minimum; ?></div>
        <?php } ?>
      </div>
      <?php if ($review_status) { ?>
      <div class="review">
        <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png?v=1" alt="<?php echo $reviews; ?>" />&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $reviews; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $text_write; ?></a></div>
        <div class="share"><!-- AddThis Button BEGIN -->
          <div class="addthis_default_style"> <a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_print"></a> <a class="addthis_button_twitter"></a> <a class="addthis_button_odnoklassniki_ru"></a> <a class="addthis_button_vk"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_livejournal"></a>  </div>
          <script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js"></script> 
          <!-- ИЗМЕНЕНО МНОЮ 16 МАЯ 2019 ДОБАВИЛ HTTPS -->
          <!-- AddThis Button END --> 
        </div>
      </div>
      <?php } ?>
    </div>
  </div>
  
  <div class="product-info">
    <!--<?php if ($thumb || $images) { ?>
    <div class="left">
      <?php if ($thumb) { ?>
      <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div>-->
      <?php } ?>
      <?php if ($images) { ?>
      <div class="image-additional">
        <?php foreach ($images as $image) { ?>
        <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a>
        <?php } ?>
      </div>
      <?php } ?>
    </div>
    <?php } ?>
  <div id="tabs" class="htabs"><a href="#tab-description"><?php echo $tab_description; ?></a>
    <?php if ($attribute_groups) { ?>
    <a href="#tab-attribute"><?php echo $tab_attribute; ?></a>
    <?php } ?>
    <?php if ($review_status) { ?>
    <a href="#tab-review"><?php echo $tab_review; ?></a>
    <?php } ?>
    <?php if ($products) { ?>
    <a href="#tab-related"><?php echo $tab_related; ?> (<?php echo count($products); ?>)</a>
    <?php } ?>
  </div>
  <div id="tab-description" class="tab-content"><?php echo $description; ?></div>
  <?php if ($attribute_groups) { ?>
  <div id="tab-attribute" class="tab-content">
    <table class="attribute">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
      <thead>
        <tr>
          <td colspan="2"><?php echo $attribute_group['name']; ?></td>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
        <?php } ?>
      </tbody>
      <?php } ?>
    </table>
  </div>
  <?php } ?>
  <?php if ($review_status) { ?>
  <div id="tab-review" class="tab-content">
   

<?php
$reviews = $this->model_catalog_review->getReviewsByProductId($product_id);
if ($reviews) {
foreach ($reviews as $review) {
echo '<div class="content"><p><strong>'.$review['author'].'</strong> - ';
  $date = strtotime($review['date_added']);
  echo date('d M Y',$date); ?><br />
<img src="catalog/view/theme/default/image/stars-<?php echo $review['rating'] ?>.png?v=1" alt="<?php echo $review['rating'] ?> из 5 звезд!" /><br />
  <?php echo $review['text'].'</p></div>';
  }
} else { ?>
    <div class="content"><?php echo "Напишите Отзыв об электронной сигарете, вейпе, жидкости для электронной сигареты, атомайзере, <br>клиромайзере, никотине, основе, ароматизаторе, пропиленгликоле, глицерине, аккумуляторе, зарядном устройстве"; ?></div>
      <?php } ?>


    <h2 id="review-title"><?php echo $text_write; ?></h2>
    <b><?php echo $entry_name; ?></b><br />
    <input type="text" name="name" value="Аноним" />
    <br />
    <br />
    <b><?php echo $entry_review; ?></b>
    <textarea name="text" cols="40" rows="8" style="width: 98%;"></textarea>
    <span style="font-size: 13px;"><?php echo $text_note; ?></span><br />
    <br />
    <b><?php echo $entry_rating; ?></b> <span><?php echo $entry_bad; ?></span>&nbsp;
    <input type="radio" name="rating" value="1" />
    &nbsp;
    <input type="radio" name="rating" value="2" />
    &nbsp;
    <input type="radio" name="rating" value="3" />
    &nbsp;
    <input type="radio" name="rating" value="4" />
    &nbsp;
    <input type="radio" name="rating" value="5" />
    &nbsp;<span><?php echo $entry_good; ?></span><br />
    <br />
    <b><?php echo $entry_captcha; ?></b><br />
    <input type="text" name="captcha" value="" />
    <br />
    <img src="index.php?route=product/product/captcha" alt="" id="captcha" /><br />
    <br />
    <div class="buttons">
      <div class="right"><a id="button-review" class="button"><?php echo $button_continue; ?></a></div>
    </div>
  </div>
  <?php } ?>
  <?php if ($products) { ?>
  <div id="tab-related" class="tab-content">
    <div class="box-product">
      <?php foreach ($products as $product) { ?>
      <div>
        <?php if ($product['thumb']) { ?>
        <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>?v=1" alt="<?php echo $product['name']; ?>" /></a></div>
        <?php } ?>
        <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
        <?php if ($product['price']) { ?>
        <div class="price">
          <?php if (!$product['special']) { ?>
          <?php echo $product['price']; ?>
          <?php } else { ?>
          <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
          <?php } ?>
        </div>
        <?php } ?>
        <?php if ($product['rating']) { ?>
        <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png?v=1" alt="<?php echo $product['reviews']; ?>" /></div>
        <?php } ?>
        <a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><?php echo $button_cart; ?></a></div>
      <?php } ?>
    </div>
  </div>
  <?php } ?>
  <?php if ($tags) { ?>
  <div class="tags"><b><?php echo $text_tags; ?></b>
    <?php for ($i = 0; $i < count($tags); $i++) { ?>
    <?php if ($i < (count($tags) - 1)) { ?>
    <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>,
    <?php } else { ?>
    <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>
    <?php } ?>
    <?php } ?>
  </div>
  <?php } ?>
  <?php echo $content_bottom; ?></div>
<?php if(!APP_ENGINE) { ?>
<script type="text/javascript"><!--
$('.colorbox').colorbox({
    overlayClose: true,
    opacity: 0.5
});
//--></script> 
<?php } ?>
<?php if(APP_ENGINE == false) { ?>
<script type="text/javascript"><!--
$('#button-cart').bind('click', function() {
    console.log('add product');
    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
        dataType: 'json',
        success: function(json) {
            $('.success, .warning, .attention, information, .error').remove();
            
            if (json['error']) {
                if (json['error']['option']) {
                    for (i in json['error']['option']) {
                        $('#option-' + i).after('<span class="error">' + json['error']['option'] + '</span>');
                    }
                }
            } 
            
            if (json['success']) {
                $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png?v=1" alt="" class="close" /></div>');
                    
                $('.success').fadeIn('slow');
                    
                $('#cart-total').html(json['total']);
                
                $('html, body').animate({ scrollTop: 0 }, 'slow'); 
            }    
        }
    });
});
//--></script>
<?php } ?>
<?php if ($options) { ?>
<script type="text/javascript" src="catalog/view/javascript/jquery/ajaxupload.js"></script>
<?php foreach ($options as $option) { ?>
<?php if ($option['type'] == 'file') { ?>
<script type="text/javascript"><!--
new AjaxUpload('#button-option-<?php echo $option['product_option_id']; ?>', {
    action: 'index.php?route=product/product/upload',
    name: 'file',
    autoSubmit: true,
    responseType: 'json',
    onSubmit: function(file, extension) {
        $('#button-option-<?php echo $option['product_option_id']; ?>').after('<img src="catalog/view/theme/default/image/loading.gif" class="loading" style="padding-left: 5px;" />');
        $('#button-option-<?php echo $option['product_option_id']; ?>').attr('disabled', true);
    },
    onComplete: function(file, json) {
        $('#button-option-<?php echo $option['product_option_id']; ?>').attr('disabled', false);
        
        $('.error').remove();
        
        if (json['success']) {
            alert(json['success']);
            
            $('input[name=\'option[<?php echo $option['product_option_id']; ?>]\']').attr('value', json['file']);
        }
        
        if (json['error']) {
            $('#option-<?php echo $option['product_option_id']; ?>').after('<span class="error">' + json['error'] + '</span>');
        }
        
        $('.loading').remove();    
    }
});
//--></script>
<?php } ?>
<?php } ?>
<?php } ?>
<script type="text/javascript"><!--
$('#review .pagination a').live('click', function() {
    $('#review').fadeOut('slow');
        
    $('#review').load(this.href);
    
    $('#review').fadeIn('slow');
    
    return false;
});            

$('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');

$('#button-review').bind('click', function() {
    $.ajax({
        url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>',
        type: 'post',
        dataType: 'json',
        data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()),
        beforeSend: function() {
            $('.success, .warning').remove();
            $('#button-review').attr('disabled', true);
            $('#review-title').after('<div class="attention"><img src="catalog/view/theme/default/image/loading.gif" alt="" /> <?php echo $text_wait; ?></div>');
        },
        complete: function() {
            $('#button-review').attr('disabled', false);
            $('.attention').remove();
        },
        success: function(data) {
            if (data['error']) {
                $('#review-title').after('<div class="warning">' + data['error'] + '</div>');
            }
            
            if (data['success']) {
                $('#review-title').after('<div class="success">' + data['success'] + '</div>');
                                
                $('input[name=\'name\']').val('');
                $('textarea[name=\'text\']').val('');
                $('input[name=\'rating\']:checked').attr('checked', '');
                $('input[name=\'captcha\']').val('');
            }
        }
    });
});
//--></script> 
<script type="text/javascript">
$('#tabs a').tabs();
</script> 
<script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-timepicker-addon.js"></script> 
<script type="text/javascript"><!--
if ($.browser.msie && $.browser.version == 6) {
    $('.date, .datetime, .time').bgIframe();
}

$('.date').datepicker({dateFormat: 'yy-mm-dd'});
$('.datetime').datetimepicker({
    dateFormat: 'yy-mm-dd',
    timeFormat: 'h:m'
});
$('.time').timepicker({timeFormat: 'h:m'});
//--></script> 

<div style="display:none">
--|||<?php if(isset($product['product_id'])){ echo json_encode( array('product_id' => $product['product_id']) ); }elseif($options){ echo json_encode( array('options' => $options, 'product_id' => $product_id) ); } ?>|||--
</div>
<?php echo $footer; ?>
 

 

Надіслати
Поділитися на інших сайтах


и этот файл у меня выглядит чуть иначе autocalc_price_option_v2.0.22.xml

 

Спойлер

<?xml version="1.0" encoding="UTF-8"?>
<modification>
  <id>Обновление цены при выборе опций (без AJAX)</id>
  <version>2.0.22</version>
  <vqmver>2.2.1</vqmver>
  <author>mpn2005</author>
  
  <file name="catalog/view/theme/*/template/product/product.tpl">
    <operation error="skip">                           
      <search position="replace"><![CDATA[<span class="price-old"><?php echo $price; ?></span>]]></search>
      <add><![CDATA[<span id="formated_price" class="price-old"><?php echo $price; /**/ ?></span>]]></add>
    </operation>        
    <operation error="skip">                           
      <search position="replace"><![CDATA[<?php echo $special; ?>]]></search>
      <add><![CDATA[<span id="formated_special"><?php echo $special; /**/ ?></span>]]></add>
    </operation>        
    <operation>
      <search position="replace"><![CDATA[<?php echo $price; ?>]]></search>
      <add><![CDATA[<span id="formated_price"><?php echo $price; ?></span>]]></add>
    </operation>
    
    <!-- Вывод цены без налога -->
    <operation error="skip">      
      <search position="replace"><![CDATA[<?php echo $tax; ?>]]></search>
      <add><![CDATA[<span id="formated_tax"><?php echo $tax; ?></span>]]></add>
    </operation>        
    
    <operation>
      <search position="replace"><![CDATA[value="<?php echo $option_value['product_option_value_id']; ?>"]]></search>
      <add><![CDATA[value="<?php echo $option_value['product_option_value_id']; ?>"  data-points="<?php echo (isset($option_value['points_value']) ? $option_value['points_value'] : 0); ?>" data-price_prefix="<?php echo $option_value['price_prefix']; ?>" data-price="<?php echo $option_value['price_value']; ?>"]]></add>
    </operation>
    <operation error="skip">
      <search position="before"><![CDATA[<?php foreach ($option['option_value'] as $option_value) { ?>]]></search>
      <add><![CDATA[<?php $opt_checked="checked"; ?>]]></add>
    </operation>
    <operation error="skip">
      <search position="replace"><![CDATA[<input type="radio"]]></search>
      <add><![CDATA[<input type="radio" <?php echo (isset($opt_checked) ? $opt_checked : ''); $opt_checked=""; ?>]]></add>
    </operation>
    <operation error="skip">
      <search position="replace"><![CDATA[<option value=""><?php echo $text_select; ?></option>]]></search>
      <add><![CDATA[  ]]></add>
    </operation>
    
    <!-- points -->
    <operation error="skip">
      <search position="replace"><![CDATA[<?php echo $points; ?>]]></search>
      <add><![CDATA[<span id="formated_points" data-points="<?php echo $points; /**/ ?>"><?php echo $points; /**/ ?></span>]]></add>
    </operation>
    
    <!-- 2012-12-15 21:51: Для опции умножить свой вывод -->    
    <operation error="skip">
      <search position="replace"><![CDATA[<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>]]></search>
      <add><![CDATA[<?php echo ($option_value['price_prefix'] == '+' || $option_value['price_prefix'] == '-' ? $option_value['price_prefix'] : '') . $option_value['price']; ?>]]></add>
    </operation>
    <operation>
      <search position="before"><![CDATA[<?php echo $footer; ?>]]></search>
      <add><![CDATA[
<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(<?php echo $price_value; ?>);
main_price_start = calculate_tax(<?php echo $price_value; ?>);
main_step = 0;
main_timeout_id = 0;

function animateMainPrice_callback() {
    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').html( price_format(main_price_start) );
    
    if (main_price_start != main_price_final) {
        main_timeout_id = setTimeout(animateMainPrice_callback, animate_delay);
    }
}

function animateMainPrice(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, animate_delay);
}


<?php if ($special) { ?>
special_price_final = calculate_tax(<?php echo $special_value; ?>);
special_price_start = calculate_tax(<?php echo $special_value; ?>);
special_step = 0;
special_timeout_id = 0;

function animateSpecialPrice_callback() {
    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').html( price_format(special_price_start) );
    
    if (special_price_start != special_price_final) {
        special_timeout_id = setTimeout(animateSpecialPrice_callback, animate_delay);
    }
}

function animateSpecialPrice(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, animate_delay);
}
<?php } ?>


function recalculateprice()
{
    var main_price = <?php echo (float)$price_value; ?>;
    var input_quantity = Number($('input[name="quantity"]').val());
    var special = <?php echo (float)$special_value; ?>;
    var tax = 0;
    
    if (isNaN(input_quantity)) input_quantity = 0;
    
    <?php if ($special) { ?>
        special_coefficient = <?php echo ((float)$price_value/(float)$special_value); ?>;
    <?php } ?>
    main_price = process_discounts(main_price, input_quantity);
    tax = process_discounts(tax, input_quantity);
    
    
    <?php if ($points) { ?>
      var points = Number($('#formated_points').data('points'));
      $('input:checked, option:selected').each(function() {
        points += Number($(this).attr('points') || $(this).data('points') || 0);
      });
      $('#formated_points').html(points);
    <?php } ?>
    
    var option_price = 0;
    
    $('input:checked, option:selected').each(function() {
      price_prefix = $(this).attr('price_prefix') || $(this).data('price_prefix') || '';
      opt_price = Number($(this).attr('price') || $(this).data('price') || 0);
      if (price_prefix == '=') {
        option_price += opt_price;
        main_price = 0;
        special = 0;
      }
      if (price_prefix == '+') {
        option_price += opt_price;
      }
      if (price_prefix == '-') {
        option_price -= opt_price;
      }
      if (price_prefix == 'u') {
        pcnt = 1.0 + opt_price / 100.0;
        option_price *= pcnt;
        main_price *= pcnt;
        special *= pcnt;
      }
      if (price_prefix == 'd') {
        pcnt = 1.0 - opt_price / 100.0;
        option_price *= pcnt;
        main_price *= pcnt;
        special *= pcnt;
      }
      if (price_prefix == '*') {
        option_price *= opt_price;
        main_price *= opt_price;
        special *= opt_price;
      }
    });
    
    special += option_price;
    main_price += option_price;

    <?php if ($special) { ?>
      main_price = special * special_coefficient;
      tax = special;
    <?php } else { ?>
      tax = main_price;
    <?php } ?>
    
    // Process TAX.
    main_price = calculate_tax(main_price);
    special = calculate_tax(special);
    
    // Раскомментировать, если нужен вывод цены с умножением на количество
    //main_price *= input_quantity;
    //special *= input_quantity;
    //tax *= input_quantity;

    // Display Main Price
    //$('#formated_price').html( price_format(main_price) );
    animateMainPrice(main_price);
      
    <?php if ($special) { ?>
      //$('#formated_special').html( price_format(special) );
      animateSpecialPrice(special);
    <?php } ?>

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

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

//--></script>
      ]]></add>
    </operation>
  </file>

  <file name="catalog/model/catalog/product.php">
    <operation>
      <search position="before"><![CDATA['weight'                  => $product_option_value['weight'],]]></search>
      <add><![CDATA[
        'points'        => $product_option_value['points'],
        'points_prefix' => $product_option_value['points_prefix'],
      ]]></add>
    </operation>
  </file>
  
  <file name="catalog/controller/product/product.php">
    <operation>
      <search position="before"><![CDATA[$this->data['options'] = array();]]></search>
      <add><![CDATA[
        $this->data['price_value'] = $product_info['price'];
        $this->data['special_value'] = $product_info['special'];
        $this->data['tax_value'] = (float)$product_info['special'] ? $product_info['special'] : $product_info['price'];
        
        $var_currency = array();
        $var_currency['value'] = $this->currency->getValue();
        $var_currency['symbol_left'] = $this->currency->getSymbolLeft();
        $var_currency['symbol_right'] = $this->currency->getSymbolRight();
        $var_currency['decimals'] = $this->currency->getDecimalPlace();
        $var_currency['decimal_point'] = $this->language->get('decimal_point');
        $var_currency['thousand_point'] = $this->language->get('thousand_point');
        $this->data['currency'] = $var_currency;
        
        $this->data['dicounts_unf'] = $discounts;

        $this->data['tax_class_id'] = $product_info['tax_class_id'];
        $this->data['tax_rates'] = $this->tax->getRates(0, $product_info['tax_class_id']);
      ]]></add>
    </operation>
    <operation>
      <search position="after"><![CDATA[$option_value_data[] = array(]]></search>
      <add><![CDATA[
        'price_value'                   => $option_value['price'],
        'points_value'                  => intval($option_value['points_prefix'].$option_value['points']),
      ]]></add>
    </operation>
  </file>


</modification>
 

 

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Добрый день! Столкнулся с тем, что модуль не правильно считает цену акционного товара при выборе опции этого товара. Если товар без акции, все считает верно! Возможно кто-то сталкивался с этой же проблемой и нашел решение? Я своими силами смог добиться только правильно вывода цены в карточке товара, а в категории, в корзине и остальных модулях так и подхватывает не верные данные.. 

 

П.С. проблема в следующем: Изначальная цена 280-25%= 210 рублей и добавляет к ней к примеру 255 рублей (это сумма указана в опции) складывает эту сумму и выводит 465р (Это порядка 13% скидка, а не 25..От изначальной суммы, без скидки). Изначальная цена 280 рублей к ней добавляет 255 рублей получаем 535 рублей, такая стоимость должна быть без акции, и, если отнять 25% от этой суммы, как и должно быть, получается 401 рубль. 

 

Установлена OC2_v3.0.2 версия.

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
В 25.06.2020 в 18:40, Zen1a сказал:

Добрый день! Столкнулся с тем, что модуль не правильно считает цену акционного товара при выборе опции этого товара. Если товар без акции, все считает верно! Возможно кто-то сталкивался с этой же проблемой и нашел решение?

 

 

В настройках включена поддержка акций?

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 3 months later...

Добрый день!

Как оплатить отдельно установку купленного модификатора?

При установке на ОС 2.3 через установщик, пишет, что не правильный тип файла.

При загрузке файла в папку system и нажатии "очистить" и "обновить" на странице Модификаторы в панели управления - ничего не происходит.

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Добрый вечер, подскажите пожалуйста, возможно я повторюсь, но не могу понять почему цена не меняется при выборе опции, если меняешь количество товаров все работает, а вот опции ни как, по переключал все настройки модуля но все бесполезно, забыл добавить версия ocstore 2.3 http://kirtiflowers.ru/index.php?route=product/product&path=60_65&product_id=58

Змінено користувачем jackmoon
Надіслати
Поділитися на інших сайтах


22 минуты назад, jackmoon сказал:

Добрый вечер, подскажите пожалуйста, возможно я повторюсь, но не могу понять почему цена не меняется при выборе опции, если меняешь количество товаров все работает, а вот опции ни как, по переключал все настройки модуля но все бесполезно, забыл добавить версия ocstore 2.3 http://kirtiflowers.ru/index.php?route=product/product&path=60_65&product_id=58

Добрый день. Надо смотреть код.

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

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Подскажите, пожалуйста, как сделать, чтобы при выборе опции в каталоге и переходе на товар оставалась выбранная опция. Я понимаю, что опция Hash # для этого и служит, но как реализовать не хватает знаний.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Обнаружил проблему с прибавлением % к цене.

У меня есть товар Кровать, цена 14800 руб. При изменении цвета надо прибавить 25% к стоимости товара (или стоимости товара + выбранные опции, например размер.)

14800 + 25% = 18500 — это правильно.

Если выбираю размер, например 120x200 (это +850 руб. к цене), а потом цвет (Белая эмаль) +25%. Должно быть так (14800 + 850) + 25%. Должно получится 19562 руб., а получается 19350 руб.

Насколько я понял, +25% прибавляется только к исходной цене, игнорируя опции. Как это исправить?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.