Shopify:是否可以通过sku编号查找产品?

问题描述 投票:0回答:7

我获得的数据仅包含 SKU 编号。我正在尝试弄清楚如何将这些 SKU 编号链接到 Shopify 中的产品变体,而无需实际的产品 ID 编号。

示例数据:

<Inventory ItemNumber="100B3001-B-01">
    <ItemStatus Status="Avail" Quantity="0" />
  </Inventory>
  <Inventory ItemNumber="100B3001-B-02">
    <ItemStatus Status="Avail" Quantity="0" />
  </Inventory>
  <Inventory ItemNumber="100B3001-B-03">
    <ItemStatus Status="Avail" Quantity="-1" />
    <ItemStatus Status="Alloc" Quantity="1" />
  </Inventory>
  <Inventory ItemNumber="100B3001-B-04">
    <ItemStatus Status="Avail" Quantity="-1" />
    <ItemStatus Status="Alloc" Quantity="1" />
  </Inventory>
shopify
7个回答

4
投票
正如 David Lazar 在评论中指出的那样,Shopify API 目前不支持根据 SKU 查找产品的功能。


3
投票

编辑:这是一个不可靠的选项,我曾经将其用作最后的手段。我不建议使用它,但我会将其留在这里,以防有人发现它有帮助。

您可以使用此API端点:

/admin/products/search.json?query=sku:abc123

我只在浏览器中使用过它,但找不到任何相关文档。而且它可能随时停止工作。


1
投票
Shopify 上的图形查询对我有用:


0
投票
旧帖子,但仍然相关。我想出了一个 jQuery AJAX 函数来从 SKU 获取产品信息,以及提取其他附加信息:

function getProductInfo(productID) { console.log("Getting product info for " + productID + "..."); $.ajax({ url: window.Shopify.routes.root + 'admin/products/search.json?query=sku:' + productID, method: "GET", success: function (data) { let pid = data.products['0'].id; let pdpUrl = window.Shopify.routes.root + 'products/' + data.products['0'].handle; let imgid = data.products['0'].image.src; let quantity = data.products['0'].variants['0'].inventory_quantity; if (quantity == 0) { $('form[data-pid=' + productID + '] button[type=submit]').text('OUT OF STOCK').attr('onclick', 'event.preventDefault();').css("background-color", "#c6c6c6");; console.log("PRODUCT SOLD OUT: " + productID) } $('a[data-sku=' + productID + '] img').css('background-image', "url('" + imgid + "')"); $('a[data-sku=' + productID + ']').attr('href', pdpUrl); $('form input[value=' + productID + ']').attr('value', pid); return; }, error: function (error) { console.log('Cannot retrieve data from SKU ' + sku); } }); };
如果您希望在函数运行后操作 DOM,我还留下了一些成功操作,以便为你们提供一个良好的起点。请注意,这将获取产品的父 ID,如果您想获取产品变体 ID,则只需更改此:

let pid = data.products['0'].id;
对此:

let pid = data.products['0'].variants['0'].id;
注意:如果没有与产品关联的变体,则会抛出未定义的错误。


0
投票
你可以使用

response = await shopifyApi.post( "https://" + this?.ecommerce?.shopify?.domain + "/api/2024-01/graphql.json", `{ products(first: 1, query:"${SKU}") { nodes { id title handle description variants(first: 10) { nodes { id sku title price { amount currencyCode } availableForSale } } } } }` );
    

-1
投票
你可以使用

*.myshopify.com/search?view=json&q=sku:SKUID
    
© www.soinside.com 2019 - 2024. All rights reserved.