@panterr92

Как передать значение опций товара в корзину через AJAX(JSON)?

При передаче товара в корзину из карточки товара - работает следующий код

'add': function(product_id, quantity) {
		$.ajax({
			url: 'index.php?route=checkout/cart/add',
			type: 'post',
			data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
			dataType: 'json',
			beforeSend: function() {
				$('#cart > button').button('loading');
			},
			complete: function() {
				$('#cart > button').button('reset');
			},
			success: function(json) {
				$('.alert, .text-danger').remove();

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

				if (json['success']) {
					$('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');

					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
					}, 100);

					$('html, body').animate({ scrollTop: 0 }, 'slow');

					$('#cart > ul').load('index.php?route=common/cart/info ul li');
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	},


Если выставить опции для товара обязательными, то в корзину добавление не производится. При выводе JSON-строки в консоль - пишет ошибка, нужно обязательно выбрать цвет (это и есть опция).

Пришел к выводу, что необходимо дополнить строку добавив &option

spoiler
data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),


Вопрос, как правильно передать туда переменные, как понимаю ID-опции и ID-значения опции в массиве.
  • Вопрос задан
  • 763 просмотра
Решения вопроса 1
zoozag
@zoozag
Opencart
В карточке товара другой код добавления в корзину. Там в указанной вами строке:
data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@amfetamine
Откройте исходники и посмотрите
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы