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

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


Recommended Posts

Копаюсь в коде 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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