Я создаю интернет-магазин, используя Meteor. У меня возникла проблема, когда сессия Метеор получает сброс, когда элемент добавляется в корзину. Пользователь может добавить товар в корзину из двух мест - страницу с описанием основных продуктов и страницей сведений о продукте.Метеоритный сеанс держит перезагрузку в корзине
Сценарий A: Клиент находится на странице основных продуктов и добавляет товар в корзину. Затем клиент нажимает на страницу сведений о продукте для другого товара. Затем клиент добавляет товар в корзину на странице сведений о продуктах. Создается новый сеанс, и элементы, которые были добавлены на странице с листингом продуктов, исчезают, и только продукты со страницы подробностей продукта находятся в корзине.
Так что моя проблема в том, что новая сессия создается, когда элемент будет добавлен в корзину, и я не уверен, почему это происходит ...
Вот событие AddToCart нажмите из моих productDetails.js:
'click .add-to-cart': function (e, tmpl) {
e.preventDefault();
var quantity = $('[name=qty]').val();
var thisProduct = Products.findOne();
var sessionId = Meteor.default_connection._lastSessionId;
var productInfo = {
productCode: thisProduct.productCode,
memPrice: thisProduct.memPrice,
brand: thisProduct.brand,
size: thisProduct.size,
description: thisProduct.description,
quantity: quantity,
sessionId: sessionId
};
Session.set('sessionId', sessionId);
console.log(productInfo);
if (quantity > 0) {
Meteor.call('addToCart', quantity, productInfo);
Router.go('Tires');
} else {
alert('Please input a desired quantity');
}
}
Вот мой AddToCart нажмите событие из моей странице мастера продуктов:
'click .add-to-cart': function (e, tmpl) {
e.preventDefault();
var currUser = Meteor.user();
if(!currUser) {
alert("Please register for an account before you may add items to cart");
} else if (!currUser.profile.confirmed) {
alert("Your account needs to be confirmed before you may add items to cart. Please contact [email protected] for assistance.")
} else {
var currentRow = $(e.target).closest('tr');
var quantity = currentRow.find('.item-quantity').val();
var sessionId = Meteor.default_connection._lastSessionId;
var productInfo = {
productCode: this.productCode,
memPrice: this.memberPrice,
brand: this.brand,
size: this.size,
description: this.description,
quantity: quantity,
sessionId: sessionId
};
Session.set('sessionId', sessionId);
if (quantity > 0) {
Meteor.call('addToCart', quantity, productInfo);
currentRow.find('.item-quantity').val(0);
} else {
alert('Please input a desired quantity');
}
};
}
А вот мой метод AddToCart:
addToCart: function(qty, productInfo, cb) {
console.log('//-------------Item Data-------------');
console.log("Product Info: ", productInfo);
if (qty > 0) {
Cart.insert(productInfo);
}
}
Любые мысли? Заранее спасибо!