Shopify产品没有变体,但ID显示在网址

时间:2018-05-17 18:13:18

标签: javascript url shopify liquid product

我有一个奇怪的情况,我的产品没有任何变种,但是Url在购物车的产品链接中显示变体ID ...

ex)www.website.com/products/singleProduct?variant=12345678901

我已尝试将enableHistoryState设置为false,

enableHistoryState: false

并删除

if (!history.replaceState || !variant) {
    return;
  }

var newurl = window.location.protocol + '//' + window.location.host + window.location.pathname + '?variant=' + variant.id;
window.history.replaceState({path: newurl}, '', newurl);

但这些改变不起作用。

我实际上并不想删除这些代码,因为我确实有一些带有变体的产品。 我只是想知道为什么产品在网址中显示变体ID而没有变体...

1 个答案:

答案 0 :(得分:1)

shopify中的每件商品都至少有一种变体。

如果您尚未设置任何变体,则称为“默认”变体。

如果您在此处阅读文档:https://help.shopify.com/themes/liquid/objects/product,您会注意到有一个名为has_only_default_variant的属性会检查产品是否具有默认变体。这就是我所说的。

任何时候您在Shopify购买产品时,您购买的是该产品的变体(即使该变体是默认变体,您也不会在变体部分中看到它)。

您可以在管理面板中查看产品JSON响应购买进入产品页面,然后在URL地址后面输入.json。所以像/admin/products/189421092890.json这样的东西,您将能够看到该产品的默认变体。

因此,如果您不想显示具有默认变体的产品的变体,只需使用检查product.has_only_default_variant并修改指向产品页面的链接的href属性,以便它不包含默认变体ID。