Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

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

У меня мгновенно не обновляет этоны(( https://stilniydom.com/gr-shkaf-kupe-2807952-assol

Модификаторы обновлены. Опции сгделал новые, тоже не помогло...

Странно. Не вижу признаков присутствия модуля на страниэто.

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites


Подскажите в чем проблема? Опенкарт 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; ?>

Edited by bombucho
Link to comment
Share on other sites


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

 

Edited by Zapuzin
  • +1 1
Link to comment
Share on other sites


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

 

 

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

Link to comment
Share on other sites


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

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

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

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

Link to comment
Share on other sites

Проверил, в не находит в файле "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; ?>
 

 

Link to comment
Share on other sites


и этот файл у меня выглядит чуть иначе 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>
 

 

Link to comment
Share on other sites


  • 2 months later...

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

 

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

 

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

Link to comment
Share on other sites


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

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

 

 

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

Link to comment
Share on other sites


Все рилииет, была не последняя версия усиновлена. И в настройках, вклюлив Акция на опции, все зарилиило. Спасипотому что!

Link to comment
Share on other sites


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

Добрый гдень!

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

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

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

Link to comment
Share on other sites


  • 3 weeks later...

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

Edited by jackmoon
Link to comment
Share on other sites


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

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

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

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

Link to comment
Share on other sites

17 часов назад, mpn2005 сказал:

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

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

Написал в лс

Link to comment
Share on other sites


  • 2 weeks later...

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

Link to comment
Share on other sites


  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

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.