(開発者用)在庫更新プログラムの準備【汎用】 ID:5174

※在庫更新プログラムの準備については、サポート対象外です。
本システムから店舗へ在庫数を更新するために必要な在庫更新プログラムを準備するための操作手順です。

1.在庫更新ファイルを用意

本システムから汎用店舗へ在庫数を更新するためのリクエストを送信します。
お客様にて本システムからのリクエストを受け取る在庫更新ファイルを用意し、商品の在庫数を更新するプログラムを実装してください。

リクエストするURLの例

http://店舗様ドメイン名/UpdateStock.php?StoreAccount=samplestore&Code=test-aaa&Stock=10&ts=20180115083010aaa&.sig=6a4812f93d36aece5559a9c271fab5a2
※実際は1行のリクエストです。

リクエストの仕様

  • リクエストにはHTTPのGETを使用しています。
  • リクエストURLは、店舗設定(本ページ3-2参照)にて設定した「在庫更新用URL」にパラメータを付与したURLです。
    ※パラメータは本システムが自動付与した値です。
  • パラメータの連結には&を使用します。パラメータの仕様は下表の通りです。
項目名 パラメータ 送られる値
ストアアカウント StoreAccount 店舗設定に登録したストアアカウント
(例)samplestore
商品コード Code 商品マスタの商品コード
(例)test-aaa
在庫数 Stock 商品マスタのフリー在庫数+予約フリー在庫数
(例)10

※下記条件に合致する商品の場合、在庫数は空で送ります。

・商品区分「20:受注発注」

・商品区分「10:予約」かつ、予約在庫数「99999」

日付 ts リクエスト送信時の日付+1日

※「YYYYMMDDhhmmss」の形式で送られます。
例:20180115083010

署名コード .sig リクエストパラメータの末尾に店舗設定に登録した認証キーを結合した文字列
→md5でハッシュ化した値
(例)
StoreAccount=samplestore&Code=test-aaa&Stock=10&ts=20180115083010aaa
↓ハッシュ化
6a4812f93d36aece5559a9c271fab5a2

実装時の注意事項

店舗側のBasic認証などの制限は解除してください。本システムと正常に連携できません。

IP制限を行う場合

店舗側にてIP制限を行う場合は、本システムのIPアドレスをサポートまでお問い合わせください。

2.在庫更新のレスポンスについて

店舗側から本システムへ送る在庫更新のレスポンスは、下記仕様に基づいたデータを返すよう実装してください。

レスポンスの例

<?xml version="1.0" encoding="EUC-JP"?>
<ShoppingUpdateStock version="1.0">
<ResultSet TotalResult="1">
<Request>
<Argument Name="StoreAccount" Value="samplestore" />
<Argument Name=”Code” Value=”test-aaa" />
<Argument Name="Stock" Value="10" />
<Argument Name="ts" Value="201801150830" />
<Argument Name=".sig" Value="85f6ec658a3d56bbebdf30f28d3a4b61" />
</Request>
<Result No="1">
<Processed>0</Processed>
</Result>
</ResultSet>
</ShoppingUpdateStock>

レスポンスのルール

  • レスポンスにはXMLを使用してください。
  • 文字コードはEUC-JPを使用してください。
  • XMLの仕様は下記の通りです。
XMLタグ 種別 必須 データ型 説明
ShoppingUpdateStock
version="1.0"
        node      
  ResultSet                
    TotalResult     attribute integer リザルト総数  
    Request           リクエスト  
      Argument         引数  
        Name attribute String 引数名
        Value attribute String 引数値  
      /Argument            
    /Request              
    Result           リザルト  
      No   attribute integer リザルト番号
(1オリジン)
      Processed   node integer 処理結果
0:成功
-2:クライアントエラー
-3:システムエラー
<Processed>0</Processed>
    /Result     -        
  /ResultSet                
/ShoppingUpdateStock         -        

実装時の注意

  • 指定したURLからのレスポンスに時間がかかる場合、全店舗の在庫連携の実行が遅延する恐れがありますのでご注意ください。1商品のリクエスト〜レスポンス完了まで1秒以下程度の性能を推奨します。
  • 店舗側のWEBサーバのTLSのバージョン1.1以下はサポート対象外です。事前にバージョンが1.2以上であるかどうかご確認ください。
  • 本システムからのリクエストの送信は、モール・カート側がタイムアウトでレスポンスを返さなかった場合のみリトライを継続します。
    レスポンスが返された場合、レスポンスの内容に関わらず、在庫連携対象から外れます。

3.本システムの店舗設定について

3-1.店舗設定に登録する値

店舗設定に登録する値についてご説明します。

項目名 説明
在庫更新用URL(※必須) httpから始まるURLを入力してください。
http://店舗様ドメイン名/任意のパス/在庫連携処理ファイル
※例ではPHPを使用していますが、JavaやRubyでも問題ありません。
http://samplestore.com/UpdateStock.php
http://samplestore.com/nextengine/UpdateStock.php
ストアアカウント(※任意) リクエストURLのパラメータの一種として使用します。
どの店舗からのリクエストなのかを管理することができます。
※在庫更新処理自体には影響しません。
samplestore、123
認証キー(※任意) リクエストURLのパラメータでシステムが署名コードを生成する際に使用します。
※在庫更新処理自体には影響しません。
aaa、999

3-2.店舗設定の操作手順

本システムの店舗設定に「在庫更新用URL」「ストアアカウント」「認証キー」を登録します。
下記マニュアルをご参照の上、設定を行ってください。

在庫連携用アカウントの登録