2

ShopifyAPIpublishedでここに文書化されている製品のフィールドを使用したいと思います:

公開された属性をfalseに変更して、公開された製品を非表示にします

publishedどの製品でもフラグを変更できますが、APIからフィールドを取り戻す方法がまだわかりません。 オブジェクトのフィールドのリストはProduct表示されません。

4

2 に答える 2

3

ここで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に設定されます。

于 2012-12-19T17:08:45.340 に答える
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
}

未公開の製品が大量にある場合を除いて、未公開の反復は迅速に行う必要があります。次に、テストを交換します。

于 2016-05-12T05:00:09.657 に答える