这个问题听起来与我自己的问题cart-template-variant类似。我用ajax cart header.liquid
做同样的事情。我只是想从购物车对象访问与cart-template
问题{% if item.variant.inventory_quantity < 1 %}
相同的广告资源。我最初尝试将{{item.variant.inventory_quantity}}
打印到header.liquid
,因为它是ajax购物车。在{% for item in cart.items %}
里面我打印了{{item.variant.inventory_quantity}}
但是当我将库存或缺货产品添加到购物车中时。它总是返回0.哪个是我没有正确传递的购物车对象属性?
我实际上是在遵循以下建议,但我在这里错过了一些东西。
Ajax购物车的代码在header.liquid中。它有一个Cart对象,它有许多属性。见https://help.shopify.com/themes/liquid/objects/cart#cart-items
其中一项是物品(即cart.items),它会将所有物品添加到购物车中。在第100行附近,您将看到一个for循环{%for cart.items%}。
这里是item = line_item。 line_item有许多属性。请参阅https://help.shopify.com/themes/liquid/objects/line_item。
其中一个是变种。即line_item.variant。所以这里的for循环将是item.variant。
所以现在你有了变体属性。见https://help.shopify.com/themes/liquid/objects/variant
variant.inventory_quantity就是其中之一。
header.liquid(如果需要,准备共享整个文件。)
<form action="/checkout" method="post" id="cart">
<ul data-money-format="{{ shop.money_format }}" data-shop-currency="{{ shop.currency }}" data-shop-name="{{ shop.name | escape }}">
<li class="mm-subtitle"><a class="continue ss-icon" href="#cart"><span class="icon-close"></span></a></li>
{% if cart.item_count == 0 %}
<li class="empty_cart">{{ 'layout.general.empty_cart' | t }}</li>
{% else %}
{% for item in cart.items %}
{{item.variant.inventory_quantity}}
<a href="/#" >Will be dispatched by June 7</a>
<li class="cart_item {% if forloop.last %}last_cart_item{% endif %}">
<p class="mm-counter">
<span class="icon-minus minus"></span><input type="number" min="0" class="quantity" name="updates[]" id="updates_{{ item.id }}" value="{{ item.quantity }}" data-line-id="{{ forloop.index }}" readonly /><span class="icon-plus plus"></span>
</p>
<a href="{{ item.url }}">
{% if item.image %}
<div class="cart_image">
<img src="{{ item | img_url: '410x' }}" alt="{{ item.title | escape }}" />
</div>
{% endif %}
<div class="item_info">
{{ item.product.title }}
{% unless item.product.has_only_default_variant or item.variant.title contains "Title" %}
{% for option in item.product.options %}
{% unless option contains "Title" %}
- {{ item.variant.options[forloop.index0] }} {% unless forloop.last %}/{% endunless %}
{% endunless %}
{% endfor %}
{% endunless %}
{% if item.properties %}
{% for p in item.properties %}
{% if p.last != blank %}
<div class="line-item">
{{ p.first }}: {{ p.last }}
</div>
{% endif %}
{% endfor %}
{% endif %}
<div class="price">
<span class="money">{{ item.price | money }}</span>
</div>
</div>
</a>
</li>
{% endfor %}
<li class="mm-label">
<p class="mm-counter price">
<span class="money">{{ cart.total_price | money }}</span>
</p>
<a href="/cart">
<strong>{{ 'layout.general.subtotal' | t }}</strong>
</a>
</li>
<li class="mm-subtitle clearfix">
{% if settings.display_special_instructions %}
<textarea id="cart-note" name="note" rows="2" placeholder="{{ 'layout.general.cart_note' | t }}" class="clearfix">{{ cart.note }}</textarea>
{% endif %}
{% if settings.display_tos_checkbox %}
<aside class="tos tos_checkbox">
<input type="checkbox" class="tos_agree" id="sliding_agree" required />
<label class="tos_label" for="sliding_agree">
{{ settings.tos_richtext }}
</label>
</aside>
{% endif %}
<input type="submit" class="action_button right" value="{{ 'layout.general.checkout' | t }}" />
<a href="/cart" class="action_button edit_cart right">{{ 'layout.general.edit_cart' | t }}</a>
</li>
{% endif %}
</ul>
</form>