Help us understand the problem. What is going on with this article?

MWS 代引きオーダーの出荷通知

More than 1 year has passed since last update.

はじめに

MWSを使って出荷管理系のシステムを構築するときには避けて通れない出荷通知
出荷通知といえばsubmit_feedの_POST_ORDER_FULFILLMENT_DATA_なのですが、
最近よく分からないエラーが出ていました。

<Result>
    <MessageID>1</MessageID>
    <ResultCode>Error</ResultCode>
    <ResultMessageCode>XXXX</ResultMessageCode>
    <ResultDescription>YYYYYYYYに一致する注文は出荷できません。</ResultDescription>
    <AdditionalInfo>
        <AmazonOrderID>111-111111-111111</AmazonOrderID>
    </AdditionalInfo>
</Result>

OrderIdは間違っていませんし、そもそも「YYYYYYYYに一致する注文は出荷できません。」ってその「YYYYYYYY(数字)」ってなんの番号です?
OrderにもOrderItemにもそんな番号存在しないしお手上!
どうせ今回だけのイレギュラーでしょ!平気平気!
とか思っていたのですが、そのあと1日で2回出ました。(対応せざるを得ないよなあ)
とは言っても手がかりはないし...と途方に暮れていると物販側がオーダーの共通点を見つけてくれました。
どうも決済が代引きのものの出荷通知が失敗しているようです。
お、これは勝ちました。と思って調べてみたらなかなか闇が深い。

フラットファイルで代引きオーダーの出荷通知をするには

代金引換決済の注文管理

出荷通知のフィードでは、代金引換の注文に対し、「代金引換」(cod-collection-method)の項目に「DirectPayment」を指定して確認する必要があります。その値を指定せずに出荷通知フィードを代金引換注文に対して送信した場合、処理エラーが発生します。代金引換の注文には、必ず「DirectPayment」を指定するようにしてください。

なるほど。速攻で解決できるやないですか。
設定したら一発やないですか!
でも私たちはXMLでのフィードなのでこの通りにはいきませんよね...

公式のxsdを見てみる

XMLでfeed_submitするときはどんな指定の仕方かな...
https://images-na.ssl-images-amazon.com/images/G/01/rainier/help/xsd/release_4_1/OrderFulfillment.xsd

いや、ないですやん。
codの項目ないですやん!
メロスは激怒しました。

調査は続く

探しに探した結果、フォーラムに希望が一筋。
アマゾンapiシステムや出荷情報確認について

Amazon MWSのAPIでもCODの出荷通知を送信することはできます。
CODの出荷通知を行う際はCODCollectionMethod要素を設定いただく必要があります。
仕様するオペレーションはフィードAPIのSubmitFeedをご使用頂ければと思います。

ほんとなのかよ?

ちなみにCODCollectionMethodで調べてみたら_POST_PAYMENT_ADJUSTMENT_DATA_には存在ました。
https://images-na.ssl-images-amazon.com/images/G/01/rainier/help/xsd/release_4_1/OrderAdjustment.xsd

XMLで代引きオーダーの出荷通知をするには

結果から言うと、CODCollectionMethodでDirectPaymentを指定すると正常に処理できました。

<Message>
  <MessageID>1</MessageID>
  <OperationType>Update</OperationType>
  <OrderFulfillment>
    <AmazonOrderID>111-111-111</AmazonOrderID>
    <FulfillmentDate>2018-01-01</FulfillmentDate>
    <FulfillmentData>
      <CarrierName>日本郵便</CarrierName>
      <ShipperTrackingNumber>A111</ShipperTrackingNumber>
    </FulfillmentData>
    <CODCollectionMethod>DirectPayment</CODCollectionMethod>
    <Item>
      <AmazonOrderItemCode>11111111</AmazonOrderItemCode>
      <Quantity>1</Quantity>
    </Item>
  </OrderFulfillment>
</Message>

まとめ

_人人人人人人人人人人人人人人_
> 隠しパラメータは存在する <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

ブログで見たい方はこちら
MWS 代引きオーダーの出荷通知

ayies128
株式会社illustrious CTO。 EC業務を色々な角度から効率化できるように日々システム開発を行っています。 システム開発の話から飲みに行こうって話までなんでもどうぞ。 うどんとお酒と #UVERWorld が大好きです。 世界で売るためのECインフラサービス「lismoa」の開発運営を行なっています。 https://lismoa.com/
http://nabesys.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした