Shopify 如何判断产品是否已发布?

Shopify 如何判断产品是否已发布?,shopify,Shopify,我想在产品上使用已发布的字段,该字段记录在: 通过将“已发布”属性更改为false来隐藏已发布的产品 我可以更改任何产品上的标志,但我还没有弄清楚如何从API返回published字段。未列出。您可以在单个产品的字段中直接设置发布的,如下所述: 您还可以通过将published设置为false来隐藏产品集合,如下所述: 已更新 现在我对这个问题有了更好的理解,下面是你想要的答案。您无法真正获取“published”值,因为产品上没有真正的published属性。但是,您可以在字段中检查publi

我想在产品上使用
已发布的
字段,该字段记录在:

通过将“已发布”属性更改为false来隐藏已发布的产品


我可以更改任何产品上的标志,但我还没有弄清楚如何从API返回
published
字段。未列出。

您可以在单个产品的
字段中直接设置发布的
,如下所述:

您还可以通过将
published
设置为false来隐藏产品集合,如下所述:

已更新


现在我对这个问题有了更好的理解,下面是你想要的答案。您无法真正获取“published”值,因为产品上没有真正的
published
属性。但是,您可以在字段中检查
published_,并检查它是否为
nil
(未发布)。设置
published=false
显然会为您设置为nil。

您可以非常轻松地获得发布状态。它在API中作为端点:published_status 这将返回已发布、未发布和任何。 用法:

然后迭代数组并找到所需的产品。一些实现此功能的示例php:

function isPublished($shopify, $myprodid) {
  $products = $shopify('GET /admin/products.json?publish_status=unpublished');
  foreach($products as $prod) {
    if($prod['id'] == $myprodid)
      return false;
  }
  return true
}

迭代未发布的产品应该很快,除非您有大量未发布的产品。然后交换测试。

谢谢,但我感兴趣的是如何获得单个产品的
发布的
字段,而不是设置它!你不能把它拿回来——没有这样的属性。API是在后台发布的。您所能做的就是检查
published_at
属性,看看它是否为零(未发布)。感谢您的澄清,很抱歉,您第一次解释时我没有完全理解它。;)此处相同:)更新以澄清这一点。
collection = ShopifyAPI::CustomCollection.find(params[:collection_id])
collection.published = false
collection.save
To get an array of all published products:
GET /admin/products.json?publish_status=published

To get an array of all unpublished products:
GET /admin/products.json?publish_status=unpublished
function isPublished($shopify, $myprodid) {
  $products = $shopify('GET /admin/products.json?publish_status=unpublished');
  foreach($products as $prod) {
    if($prod['id'] == $myprodid)
      return false;
  }
  return true
}