我想对Shopify API中记录的产品使用published
字段:
通过将已发布的属性更改为false来隐藏已发布的产品
我可以更改任何产品上的标记,但我还没有弄清楚如何从API返回published
字段。它没有列出list of fields of the Product
object。
答案 0 :(得分:3)
您可以按照here所述的方式直接设置各个产品的published_at
字段:
product.published_at = nil; product.save # hides product
product.published_at = Time.now.utc; product.save # makes product visible
您还可以按照here所述将published
设置为false来隐藏产品系列:
collection = ShopifyAPI::CustomCollection.find(params[:collection_id])
collection.published = false
collection.save
<强>已更新强>
现在我更好地理解了这个问题,这就是你想要的答案。您无法真正获得“已发布”值,因为产品上没有真正的published
属性。但是,您可以检查published_at
字段并检查它是否为nil
(未发布)。设置published = false
显然会为你设置为零。
答案 1 :(得分:0)
您可以非常轻松地获得已发布的状态。它在API中作为端点:published_status 这将返回已发布,未发布和任何。 https://help.shopify.com/api/reference/product 用法:
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
然后迭代数组并找到所需的产品。一些示例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
}
除非您有大量未发布的产品,否则迭代未发布的应该很快。然后交换测试。