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
}