ShopifyAPIpublished
でここに文書化されている製品のフィールドを使用したいと思います:
公開された属性をfalseに変更して、公開された製品を非表示にします
published
どの製品でもフラグを変更できますが、APIからフィールドを取り戻す方法がまだわかりません。
オブジェクトのフィールドのリストはProduct
表示されません。
ShopifyAPIpublished
でここに文書化されている製品のフィールドを使用したいと思います:
公開された属性をfalseに変更して、公開された製品を非表示にします
published
どの製品でもフラグを変更できますが、APIからフィールドを取り戻す方法がまだわかりません。
オブジェクトのフィールドのリストはProduct
表示されません。
ここでpublished_at
説明するように、個々の製品のフィールドを直接設定できます。
product.published_at = nil; product.save # hides product
product.published_at = Time.now.utc; product.save # makes product visible
ここでpublished
説明するようにfalseに設定することで、製品のコレクションを非表示にすることもできます。
collection = ShopifyAPI::CustomCollection.find(params[:collection_id])
collection.published = false
collection.save
更新しました
質問をよりよく理解したので、ここにあなたが望む答えがあります。published
製品には実際には属性がないため、「公開された」値を実際に戻すことはできません。ただし、published_at
フィールドをチェックして、 nil
(公開されていない)かどうかをチェックすることはできます。設定published = false
すると、これは明らかにnilに設定されます。
公開ステータスは非常に簡単に取得できます。これは、エンドポイントとして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
}
未公開の製品が大量にある場合を除いて、未公開の反復は迅速に行う必要があります。次に、テストを交換します。