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

Shopify product doesn't have variant but the id showed up in url

我有一个奇怪的情况,我的产品没有任何变体,但 Url 在购物车的产品 link 中显示变体 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);

但这些更改不起作用。

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

shopify 中的每个产品都至少有一个变体。

如果您没有设置任何变体,它称为“默认”变体。

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

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

您可以通过从管理面板进入产品页面并在 URL 地址后键入 .json 来查看您的产品 JSON 响应。所以像这样 /admin/products/189421092890.json 你将能够看到该产品的默认变体。

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