Shopify アプリケーションの一部として、すべての注文のローカル エクスポートを保持したいと考えています。ここで必要なことのほとんどを実現する Ruby スクリプトがありますが、それは未履行の注文を取得するだけです。
次のようなパラメータを追加して、ShopifyAPI::Order.allを微調整してみました
fullfilled_orders=ShopifyAPI::Order.all(params: { ステータス: ‘任意’, フルフィルメントステータス: ‘フルフィルド’})
両方のフィールドで「any」と「fulfilled」のバリエーションを試し、パラメータなしで実行しても、出力は同じままです。
アプリケーションにはストアの設定ページで可能なすべての権限があり、Ruby のアプリケーション スコープはこれに設定されています。
スコープ: ‘read_all_orders read_orders read_customers read_users’,
これが関数のスニペットです
def order_dl()
# Load API credentials from file
config = YAML.load_file('config.yml')
# Shopify API credentials
session = ShopifyAPI::Auth::Session.new(
shop: config['shop'],
access_token: config['access_token'],
)
ShopifyAPI::Context.setup(
api_key: config['api_key'],
api_secret_key: config['api_secret_key'],
api_version: '2024-01', # Example: '2024-01'
scope: 'read_all_orders read_orders read_customers read_users',
is_private: false, # Set to true if you are using a private app
is_embedded: true # Set to true if you are using an embedded app
)
ShopifyAPI::Context.activate_session(session)
client = ShopifyAPI::Clients::Rest::Admin.new(
session: session
)
test_session = ShopifyAPI::Context.active_session
#retrieve order details
orders = ShopifyAPI::Order.all(params: { status: 'any', fulfillment_status: 'any'})
infos=[]
オプションを間違って渡しているようです。ドキュメントによると、status とfulfillment_statusはキーワード引数であり、次のように渡す必要があります。
ShopifyAPI::Order.all( status: 'any', fulfillment_status: 'any')
デフォルトでは最初の 50 件のみが取得されることに注意してください。 API ドキュメント。
limit: 250; を使用して制限を 250 に設定できます。ただし、一度に 250 レコードを超えるレコードを取得することはできないため、すべてのレコードを実際に受信するには、since または updated_at_min のようなオフセットを使用してこのプロセスを複数回ループする必要がある場合があります。