#ajax #shopify
#ajax #Shopify
Вопрос:
https://bpt9hyq9jz7t6wkd-26803830855.shopifypreview.com На главной странице, если вы нажмете на кнопку корзины, появится всплывающее окно корзины, в котором будет указано, какой товар был добавлен, сколько товаров в корзине и т.д. если вы вместо этого перейдете сюда: https://bpt9hyq9jz7t6wkd-26803830855.shopifypreview.com/collections/all
из-за того, что оно создано с помощью приложения для улучшения фильтров, кнопка (как обычный, так и быстрый просмотр) не связана с модальным всплывающим окном. Я пытался разобраться в этом, но, хотя я могу понять Html и CSS, Ajax для меня в новинку. Я понял, что это Ajax, который вызывает модальное поле? Любая помощь будет оценена:
initAddToCart: function() {
if (e(".add-cart-btn").length > 0) {
e(".add-cart-btn").click(function(n) {
n.preventDefault();
if (e(this).attr("disabled") != "disabled") {
var r = e(this).parents(".item-row");
var i = e(r).attr("id");
i = i.match(/d /g);
if (!window.ajax_cart) {
e("#cart-form-" i).submit()
} else {
var s = e("#cart-form-" i " select[name=id]").val();
if (!s) {
s = e("#cart-form-" i " input[name=id]").val()
}
var o = e("#cart-form-" i " select[name=quantity]").val();
if (!o) {
o = 1
}
console.log(o);
var a = e(r).find(".featured-image").attr("src");
var p = e(r).find(".grid-link__title").text();
var amt = e(r).find(".grid-link__meta .product_price .grid-link__org_price span.money").text();
t.doAjaxAddToCart(s, o, a, p, amt)
}
}
return false
})
}
},
showLoading: function() {
e(".loading-modal").show()
},
hideLoading: function() {
e(".loading-modal").hide()
},
doAjaxAddToCart: function(n, r, a, p, amt) {
e.ajax({
type: "post",
url: "/cart/add.js",
data: "quantity=" r "amp;id=" n,
dataType: "json",
beforeSend: function() {
t.showLoading()
},
success: function(n) {
t.hideLoading();
t.showModal(".ajax-success-modal");
e(".ajax-success-modal").find(".ajax-product-image").attr("src", a);
e(".ajax-success-modal").find(".added-to-wishlist").hide();
e(".ajax-success-modal").find(".added-to-cart").show();
e(".ajax-success-modal").find(".ajax-product-title").text(p);
e(".ajax-success-modal").find(".ajax_price").text(amt);
e(".ajax-success-modal").find(".ajax_qty").text(r);
e.ajax({
type: 'GET',
dataType: 'json',
url: '/cart.js',
success: function(cart){
e(".ajax-success-modal").find(".ajax_qtyA").text(cart.item_count);
}
});
Комментарии:
1. хорошо, итак, насколько я понимаю, вы хотите добавить корзину AJAX в быстрый просмотр загруженного приложения и добавить в корзину, верно?
2. Всплывающее окно AJAX, да.
3. Вам нужно отредактировать код JS, чтобы добавить код AJAX, для этого потребуется больше навыков, потому что требуется много редактирования кода в
shop.js
4. Значит, это не просто вопрос подключения кнопки к текущему доступному всплывающему окну?
5. Нет, на самом деле структура HTML не совпадает с добавленной приложением, поэтому код темы по умолчанию в этом случае не работает. Вам нужно проверить это в настройках приложения, могут ли быть какие-либо опции для собственной функциональности AJAX cart?