Количество товаров в корзину!

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

ApxaHGe1
ApxaHGe1
Репутация: 0
Сообщения: 9
Зарегистрирован: 08.11.2016
С нами: 7 лет 5 месяцев

Сообщение #1 ApxaHGe1 » 08.11.2016, 10:55

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

Код: Выделить всё

      <form class="cart" action="/cart">
        <div class="price">
        <strike class='compare_price'>{if $product->variant->compare_price > 0}{$product->variant->compare_price|convert}{else}{/if}</strike>
        {if $product->variant->price >0}<span class='color'>{$product->variant->price|convert}</span><i class='color'>{$currency->sign|escape}</i>{else}<i style='margin:0;font-size:19px;' title='Не назначена цена'>Под заказ</i>{/if}
        </div>
{$product->views}
       
        <select name="variant" {if $product->variants|count==1  && !$product->variant->name}style='display:none;'{/if}>
        {foreach $product->variants as $v}
        {if $v->price > 0}<option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}">{$v->name}</option>{/if}
        {/foreach}
        </select>
{* Форма количества *}
<select name="amount" class="amounts">
{section name=amounts start=1 loop=$product->variant->stock+1 step=1}
<option value="{$smarty.section.amounts.index}" {if $product->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
{/section}
</select>
        <br><br>
        {if $product->variant->price >0}<input type="submit" class="but_add to_cart" value="" data-result-text=""/>{/if}
      </form>
    {else}
    <div class="price"><i style='margin:0;' title='Нет на складе'><br />Нет в наличии</i></div>
    {/if}
  </div>


Выбираю количество нужное мне и отличное от "1" и в корзину все равно летит 1 товар ((
Подскажите что поправить нужно что бы добавлялось нужное, а точнее выбранное количество товара

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #2 korshunov » 08.11.2016, 11:15

Надо же смотреть на только на внешнюю видимость, и на функционал целиком.
В данном случае обратить внимание на классы для <form> и обработчик в okay.js
Пробуйте добавить для своей <form> классы, как в дефолтном шаблоне...

ApxaHGe1
ApxaHGe1
Репутация: 0
Сообщения: 9
Зарегистрирован: 08.11.2016
С нами: 7 лет 5 месяцев

Сообщение #3 ApxaHGe1 » 08.11.2016, 11:33

Что то я мало чего понял
Если не затруднит можете посмотреть?

Вот файл с моего шаблона

Забыл сказать)) это шаблон ситимаркета от симплы. адаптированный под окай.

вот может пригодится кому сам шаблон
Вложения
product.rar
(1.8 КБ) 157 скачиваний

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 2 месяца
Откуда: Днепр

Сообщение #4 zyxer » 09.11.2016, 08:36

измените файл ajax_cart.js чтобы он выглядел так:

Код: Выделить всё

$('form.cart').live('submit', function(e) {
    e.preventDefault();
    button = $(this).find('input[type="submit"]');
   
    var amount = 1;
    if($(this).find('[name="amount"]').size() > 0) {
        amount = $(this).find('[name="amount"]').val();
    }

    $.ajax({
        url: "ajax/cart.php",
        data: {variant: $(this).find('select').val(), amount: amount},
        dataType: 'json',
        success: function(data){
            $('#cart_informer').html(data);
            if(button.attr('data-result-text'))
                button.val(button.attr('data-result-text'));
        }
    });
    var o1 = $(this).offset();
    var o2 = $('#cart_informer').offset();
    var dx = o1.left - o2.left;
    var dy = o1.top - o2.top;
    var distance = Math.sqrt(dx * dx + dy * dy);
    $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);   
    $('.transfer_class').html($(this).closest('.product').find('.image').html());
    $('.transfer_class').find('img').css('height', '100%');
    return false;
});
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

ApxaHGe1
ApxaHGe1
Репутация: 0
Сообщения: 9
Зарегистрирован: 08.11.2016
С нами: 7 лет 5 месяцев

Сообщение #5 ApxaHGe1 » 09.11.2016, 10:07

К сожалению, в корзину все равно летит 1 товар

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 2 месяца
Откуда: Днепр

Сообщение #6 zyxer » 09.11.2016, 10:11

ApxaHGe1 писал(а):К сожалению, в корзину все равно летит 1 товар

У вас же ajax_cart.js используется для добавления в корзину, или вы okay.js подключали?
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

ApxaHGe1
ApxaHGe1
Репутация: 0
Сообщения: 9
Зарегистрирован: 08.11.2016
С нами: 7 лет 5 месяцев

Сообщение #7 ApxaHGe1 » 09.11.2016, 10:13

{* Аяксовая корзина *}
<script src="design/{$settings->theme}/js/jquery-ui.min.js"></script>
<script src="design/{$settings->theme}/js/ajax_cart.js"></script>

Все спасибо) за помощь..

Закинул еще один файл с именем ajax_cart_1.js и подключил его
Последний раз редактировалось ApxaHGe1 09.11.2016, 10:23, всего редактировалось 1 раз.

zyxer M
zyxer M
Возраст: 32
Репутация: 77
Сообщения: 419
Зарегистрирован: 03.02.2016
С нами: 8 лет 2 месяца
Откуда: Днепр

Сообщение #8 zyxer » 09.11.2016, 10:22

ApxaHGe1 писал(а):А где правильно посмотреть какой из js подключен.

Наверное проще всего, это в браузере Mozilla Firefox в инспекторе кода посмотреть, на форму должно быть "навешено" событие (в инспекторе маленький квадратик "EV" возле тега <form>), по нажатии на него, высветится какие события и из каких файлов "навешены"
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS


Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 32 гостя