Мне нравится создавать магазин Shopify с помощью простой структуры веб-сайта HTML / CSS / JS / PHP, где я включаю настраиваемый Библиотека JS кнопки Shopify "Купить".
Я выполнил руководство, и все настроено правильно, так как я могу получать и отображать все свои продукты, которые я настроил через панель управления Shopify.
Стили по умолчанию и iFrames элементов пользовательского интерфейса Shopify (cart
, drawer
, buy-button
и т. Д.) Не соответствуют стилю и UX моего веб-сайта, поэтому я хочу настроить их с помощью css. Я отключил iFrames
большинства элементов с помощью директивы "iframe: false"
, и это работает правильно.
Я также хочу создать настраиваемую кнопку toggle
, которая открывает cart
(вместо классической формы кнопки переключения Shopify, которая закреплена в середине правой части экрана).
Странно то, что я не могу открыть cart
через ui.openCart()
, как упоминалось в документации. Я могу открыть корзину с помощью ui.openCart()
, если я делаю это с помощью setTimout (3s)
, но я не могу сделать это с помощью jQuery click event
. Что я делаю неправильно?
Мой код на данный момент:
<script src="//sdks.shopifycdn.com/buy-button/1.0.0/buybutton.js"></script>
<script>
var client = ShopifyBuy.buildClient({
domain: 'domain.myshopify.com',
storefrontAccessToken: '2b3xxxxxxxxjh5', // previously apiKey, now deprecated
});
ui = ShopifyBuy.UI.init(client);
ui.createComponent('product', {
id: 23xxxxxx56,
node: document.getElementById('my-product'),
options: {
"product": {
"iframe": false
},
toggle: {
"iframe": false
}
}
});
// -- this does not work --
$('#shoppingCartDropdownInvoker').click(function(){
ui.openCart();
});
// -- this does work --
setTimeout(function(){
ui.openCart();
}, 3000);
</script>
Код для #shoppingCartDropdownInvoker
:
<a id="shoppingCartDropdownInvoker" class="btn btn-xs btn-icon btn-text-secondary" href="javascript:;" role="button">
<span class="fas fa-shopping-cart btn-icon__inner"></span>
</a>