備忘録34〜閑話休題 ECモールのAPIで在庫取得
お仕事の方で、モールのAPIの相談が来ました・・・の続きです。
またまた、FileMakerですが・・・
前回と同じくこちらを参考に、組んでみました。
楽天の在庫情報を取得してみる。
在庫関連のAPIはSOAP形式です・・・ちと面倒そうです。
スクリプトで「URLから挿入」を使います
URLは
"https://api.rms.rakuten.co.jp/es/1.0/inventory/ws"
cURLオプションの指定
"-H \"Content-Type:text/xml; charset=utf-8\" "
&
"-d @$data"
次に、変数$dataの中身です。見やすいように、整形しました。
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns1=\"java:jp.co.rakuten.rms.mall.inventoryapi.v1.model.entity\" xmlns:ns2=\"https://inventoryapi.rms.rakuten.co.jp/rms/mall/inventoryapi\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ns3=\"java:language_builtins.lang\">
<SOAP-ENV:Body>
<ns2:getInventoryExternal>
<ns2:externalUserAuthModel>
<ns1:authKey>"&$auth&"</ns1:authKey>
<ns1:userName></ns1:userName>
<ns1:shopUrl></ns1:shopUrl>
</ns2:externalUserAuthModel>
<ns2:getRequestExternalModel>
<ns1:inventorySearchRange xsi:nil=\"true\"/>
<ns1:itemUrl>
<ns3:string>
商品管理番号(URL)を入れる
</ns3:string>
</ns1:itemUrl>
</ns2:getRequestExternalModel>
</ns2:getInventoryExternal>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>"
複数も行けるようなのですが、試していません。
<ns1:itemUrl>のところを複数書くといけると思います。
タブ区切りと改行は消してもいいのですが、項目は削らないでください。エラーになります。
$authは
"ESA " & Base64EncodeRFC ( 4648 ; "##serviceSecret##" & ":" & "##licenseKey##" )
##serviceSecret##
##licenseKey##
は、共にモール上で確認・店舗自ら発行できます。
この設定で、実行すると、XML形式で在庫情報が取得できます。
ショップサーブの在庫情報を取得してみる
URLは
"https://management.api.shopserve.jp/v2/items/##商品番号##/stock"
##商品番号##は、商品台帳の商品番号を入れます。
cURLのオプション設定は
"-X \"GET\" "
&
"-H \"Authorization: " & $auth & "\" "
$authは
Lower ( HexEncode ( CryptDigest( "##SHOP CODE##" & "##認証キー##" & $unixTime ; "md5" ) ) )
認証情報は、このように md5ハッシュ化 した値が必要です。
また Lower
で小文字に変換しないと認証エラーになるので注意して下さい。
これで、在庫情報をJSON形式で取得できます。
今日は以上です。
ディスカッション
コメント一覧
まだ、コメントがありません