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。
我有一个奇怪的情况,我的产品没有任何变体,但 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。