コンテンツにスキップ

ネクストエンジン API 開発者フォーラム: receive_order_last_modified_dateが更新されています。再度受注伝票を検索してAPIを実行して下さい

ネクストエンジン API のネクストエンジンAPIについてに関する開発者フォーラムの質問と回答。クライアントアプリ・ストア連携・エンジン利用についてのQ&A。

投稿者: 高見沢 徳明 日時: 2019/11/10

カテゴリ: ネクストエンジンAPIについて

お世話になっております。受注伝票のステータスを印刷待ちから出荷済みに変更すべく

https://developer.next-engine.com/api/api_v1_receiveorder_base/shipped

を元にAPIをコールしているのですが、掲題のエラーが表示されます。こちらも拝見しましたが、再度検索するという意味合いがよくわかりません。

https://developer.next-engine.com/questions/1267

tmp = (NeAPI::Master.new(access_token: spree_next_engine_integrate.access_token, refresh_token: spree_next_engine_integrate.refresh_token).receiveorder_base_search(query: {“receive_order_shop_cut_form_id-eq”: r[‘receive_order_shop_cut_form_id’]}))

のようなソースを挿入しても特に変わらないです。

ちなみにソースコードはRubyのSDKを用いて以下のようにしています。

spree_next_engine_integrate = SpreeNextEngineIntegrate.find(1) # AccessTokenとRefreshTokenを格納しているモデル

result = (NeAPI::Master.new(access_token: spree_next_engine_integrate.access_token, refresh_token: spree_next_engine_integrate.refresh_token).receiveorder_base_search(query: {“receive_order_order_status_id-eq”: 20})) # waiting for printing

result.each do |r|

order = Spree::Order.find_by_number(r[‘receive_order_shop_cut_form_id’])

if order.present?

obj = (NeAPI::Master.new(access_token: spree_next_engine_integrate.access_token, refresh_token: spree_next_engine_integrate.refresh_token))

params = {receive_order_id: r[‘receive_order_shop_cut_form_id’], receive_order_last_modified_date: Time.now.strftime(‘%Y-%m-%d %H:%M:%S’)}

status = obj.post(method: ‘shipped’, model: ‘receiveorder_base’, query: nil, fields: nil, get_key: nil, params: params)

spree_next_engine_integrate.update_attributes(access_token: status.access_token, refresh_token: status.refresh_token)

end

こちらは何が問題なのでしょうか?


receive_order_last_modified_dateは伝票の状態の遷移や変更により、常に変わる可能性があります。

「受注伝票検索」にて最新のreceive_order_last_modified_dateを取得いただき、その値にて再度出荷確定処理を行ってください。

高見沢 徳明(質問者) — 2019/11/15

Section titled “高見沢 徳明(質問者) — 2019/11/15”

ご回答ありがとうございます。

そうしますと、receive_order_last_modified_dateの値は任意のものではなく、最新の現在の値を取得してそれをそのまま設定する必要があるということですね?

高見沢 徳明(質問者) — 2019/11/16

Section titled “高見沢 徳明(質問者) — 2019/11/16”

eceive_order_last_modified_dateの値は任意のものではなく、最新の現在の値を取得してそれをそのまま設定

こちらでエラー無く動作することを確認しました。ありがとうございました。