Перейти к содержанию
MySun

Как работает добавление в корзину товара с опциями ?

Рекомендуемые сообщения

Копаюсь в коде ocstore, учусь.

Возник вопрос :

В файле catalog\view\theme\mytheme\template\product\product.tpl кнопка addToCart описана следующим образом

<a class="buy" onclick="addToCart('<?php echo $product_id; ?>');"><?php echo $button_cart; ?></a>

Т.е в скрипт addToCart() передаётся только $product_id.

Сам же скрипт addToCart() хранится в файле catalog\view\javascript\common.js и выглядит так

 

function addToCart(product_id, quantity) {
quantity = typeof(quantity) != 'undefined' ? quantity : 1;


$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: 'product_id=' + product_id + '&quantity=' + quantity,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information, .error').remove();


if (json['redirect']) {
location = json['redirect'];
}


if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');


$('.success').fadeIn('slow');


$('#cart-total').html(json['total']);


$('html, body').animate({ scrollTop: 0 }, 'slow'); 
} 
}
});
}
Совершенно не понятно, как и каким кодом при этом обрабатываются опции товаров.

 

Может кто нибудь подсказать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этот скрипт с опциями не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Копаюсь в коде ocstore, учусь.

Возник вопрос :

В файле catalog\view\theme\mytheme\template\product\product.tpl кнопка addToCart описана следующим образом

<a class="buy" onclick="addToCart('<?php echo $product_id; ?>');"><?php echo $button_cart; ?></a>

Т.е в скрипт addToCart() передаётся только $product_id.

Сам же скрипт addToCart() хранится в файле catalog\view\javascript\common.js и выглядит так

 

function addToCart(product_id, quantity) {
quantity = typeof(quantity) != 'undefined' ? quantity : 1;


$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: 'product_id=' + product_id + '&quantity=' + quantity,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information, .error').remove();


if (json['redirect']) {
location = json['redirect'];
}


if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');


$('.success').fadeIn('slow');


$('#cart-total').html(json['total']);


$('html, body').animate({ scrollTop: 0 }, 'slow'); 
} 
}
});
}
Совершенно не понятно, как и каким кодом при этом обрабатываются опции товаров.

 

Может кто нибудь подсказать ?

 

Нужный скрипт не в JS-файле, а в шаблонах сидит. Бестолково это конечно, но таков уж Опенкарт.

Начинается так:

$('#button-cart').bind('click', function() { ...

то есть обработчик событий навешивается на кнопку добавления товара в корзину на странице товара. Сам код в теле страницы сидит в конце. Дальше думаю найдете.

Изменено пользователем EVMedvedev

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.