我整天都在工作,不可能弄清楚,所以我需要一些帮助:)
我尝试在我的"尺寸"的每个变体行上添加一些文字。我的产品页面上的下拉列表:
如果产品数量> 0:尺寸+快速交货 其他:尺寸+ 2-3周交货 只是想在点击之前将它显示给客户,所以我不希望它只在selectedVariant上。
我尝试通过我的script.js更改它,我想:
复制每个变体数量(我没有找到方法)
根据变体数量复制我的下拉列表值/键+添加文本(快速/ 2-3周) var optionsSizes = {};
var optionsSizes = {};
$('#mySizes option').each(function(){
optionsSizes[$(this).val()] = $(this).text() + variant.inventory_quantity;
});
//console.log(optionsSizes);
var $el = $("#mySizes");
$el.empty(); // remove old options
$.each(optionsSizes, function(value,key) {
$el.append($("<option></option>")
.attr("value", value).text(key));
});
&#13;
下拉列表的复制/粘贴工作,但全部。 在variantSelected上很容易做到,但这不是我想要的。
如果您有任何疑问,请随时询问。
干杯,
bkseen
答案 0 :(得分:1)
('#product-select-5916642311-option-0')
和$('#mySizes')
这些select
元素不在您的主题中。 Shopify或主题脚本根据Shopify提供的产品JSON信息添加这两个元素。因此,没有直接的方法来获得理想的结果。
这是可以达到你想要的技巧。
<script>variantsJSON = {}</script>
。现在加载以下结构中的变体:
variantsJSON = {
"variant_option1" : {
"variant_option2_1_title" : "variant_option2_1_quantity",
"variant_option2_2_title" : "variant_option2_2_quantity",
} ....
}
要获得上述结构,您需要在{% for variant in product.variants %}
内添加以下脚本或在液体文件中添加类似的循环。
<script>
if (!variantsJSON['{{ variant.option1 }}']){
variantsJSON['{{ variant.option1 }}'] = {}
}
{% assign availability = 'QUICK DELIVERY' %}
{% if variant.inventory_quantity == 0 %}{% assign availability = '2-3 WEEKS DELIVERY' %}{% endif %}
if (!variantsJSON['{{ variant.option1 }}']['{{ variant.option2 }}']){
variantsJSON['{{ variant.option1 }}']['{{ variant.option2 }}'] = '{{ availability }}'
}
</script>
上述代码段(需要进行细化)会将所有变体及其可用性加载到JSON对象中
现在您需要做的是触发更改$('#product-select-{{ product.id }}-option-0')
的函数,该函数将清除<li>
中的所有$('#mySizes')
,然后使用<存储在<}中的值填充它们strong> variantsJSON 的 variant_option2 &amp;所选 variant_option1 的 variant_availability
醇>
P.S。随意格式化我的答案。我在某种程度上无法获得正确的格式。
答案 1 :(得分:0)
回答Hymnz
这很棘手,但我想我可以提供帮助。你如何改变产品类型___inventory-count product__form-message - 成功? - HymnZ 10小时前 块引用
if (variant) {
{% if settings.product_show_shipping %}
var myCount = variant['inventory_quantity'];
var myPath = this.element.find('.product__inventory-count');
if (myCount < 1){
myPath.removeClass('product__form-message--success');
myPath.addClass('product__form-message--error');
myPath.text("2-3 weeks delivery");
}else{
//myPath.toggleClass('product__form-message--success').siblings().removeClass('checked');
myPath.removeClass('product__form-message--error');
myPath.addClass('product__form-message--success');
myPath.text("Quick delivery");
}
{% endif %}
问题是,变体是选择的变体,而不是通过所有产品的变体。