注文管理の自動化事例

注文管理の自動化事例

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

シナリオ

Qntrlを使用して注文フルフィルメントプロセスを管理している小売企業を考えてみます。この企業には、顧客から注文を受け付ける外部ECプラットフォームがあり、これらの注文を自動的に処理するためにQntrlと連携する必要があります。

インバウンドSOAP Webサービスを使用すると、ECプラットフォームからQntrlに注文の詳細を送信できます。Qntrlは要求を検証し、注文を処理して、在庫システムを更新します。

仕組み  

  1. 顧客がEC Webサイトで注文します。
  2. Webサイトは、SOAP要求をQntrlのインバウンドSOAPエンドポイントに、注文の詳細(例:注文ID、顧客ID、商品ID、数量、注文日)とともに送信します。
  3. Qntrlは要求を処理し、次を実行します。
    • 注文の詳細を検証します(商品の在庫状況の確認、重複注文のチェックなど)。
    • 注文管理システムに新しい注文を登録します。
    • 注文が正常に作成されたことを示すSOAP応答を送信します。
  1. ECプラットフォームは応答を受信し、注文確認の詳細を顧客に通知します。
 

ビジネスへの影響  

注文処理の自動化により、手作業とエラーを削減できます。
応答時間の短縮により、顧客体験が向上します。
シームレスな連携により、外部プラットフォームとQntrlを連携できます。
 

インバウンドSOAP Webサービスの作成手順   

SOAPサービスの定義  

  1. [設定]→[WEBサービス][インバウンド][SOAP]を選択します。
  2. [新しいSOAP Webサービスを作成]をクリックします。
  3. QntrlがECプラットフォームからのSOAP要求を受信して処理できるように、サービスの詳細を入力します。
    1. [名前]OrderProcessingService
    2. [ソースエンドポイント]:/orderService(外部システムが注文を送信するために呼び出すURLです)
    3. [操作]:execute(要求を処理するための既定の操作です)
    4. [リソース]:受信したSOAP要求をQntrlがどのように処理するかを定義するために、新しい関数を作成します。
      1. エディターで関数を作成し、注文の詳細を検証して注文管理システムに保存し、確認応答を返すようにします。
    5. [認証の種類]ECプラットフォームQntrl間の安全な通信を確保するために、認証を設定します。
      1. OAuth
      2. APIキー
      3. 基本認証(ユーザー名とパスワードをBase64でエンコード)
    6. [WSDL準拠の必須化](任意)
      1. True:事前定義された要求/応答パラメーターと操作のみが許可されます。
      2. False:追加のパラメーターは許可されますが、検証ルールが適用されます。
      

 

要求パラメーターと応答パラメーターの定義

これらの要求パラメーターは、ECプラットフォームから送信される注文の詳細を定義します。

パラメーター

種類

許可される正規表現

最小文字数

最大文字数

初期値

必須

OrderID

文字列

^[A-Za-z0-9]{5,10}$

5

20

-

CustomerID

文字列

[^[A-Za-z0-9]{5,10}$

5

20

-

ProductID

文字列

^[A-Za-z0-9]{5,10}$

5

20

-

Quantity

整数

\d+

1

5

1

OrderDate

日付

^[A-Za-z0-9]{5,10}$

-

-

-

 

これらのレスポンスパラメーターは、ECプラットフォームに返される注文確認の詳細を定義します。

パラメーター

必須

Status

OrderReference

 

QntrlでのSOAPリクエストの処理   

受信SOAPリクエストの処理  

Qntrlでは、リクエストを処理して値を抽出するために、soapRequestオブジェクトを使用します。

let orderID = soapRequest.getParam('OrderID'); let customerID = soapRequest.getParam('CustomerID'); let productID = soapRequest.getParam('ProductID'); let quantity = soapRequest.getParam('Quantity'); let orderDate = soapRequest.getParam('OrderDate'); // Business logic: Validate and store the order if (!validateOrder(orderID, customerID, productID, quantity, orderDate)) { soapResponse.setFault('INVALID_ORDER', 'Order validation failed.'); } else { let orderRef = processOrder(orderID, customerID, productID, quantity, orderDate); soapResponse.setParam('Status', 'Success'); soapResponse.setParam('OrderReference', orderRef); }

 

SOAPレスポンスの送信  

Qntrlは、注文が正常に処理されたかどうかを確認するXMLレスポンスを返します。

SOAPレスポンスのサンプル  

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'><soapenv:Body> <OrderResponse> <Status>Success</Status> <OrderReference>ORD12345XYZ</OrderReference> </OrderResponse> </soapenv:Body> </soapenv:Envelope>
 

SOAP WebサービスへのAPI呼び出しの実行   

WSDL定義のリクエスト  

  • メソッド:GET
  • URL形式:https://##PROTECTED_0##
  • 目的:外部システムはWSDL定義を取得し、利用可能な操作を把握できます。

注文リクエストの送信  
 <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'xmlns:ord='https://core.qntrl.com/webservice/soap/orderManagement'><soapenv:Header> <ord:AuthHeader> <ord:Username>APIUser</ord:Username> </ord:AuthHeader> </soapenv:Header> <soapenv:Body> <ord:PlaceOrder> <ord:OrderID>ORD67890</ord:OrderID> <ord:CustomerID>CUST54321</ord:CustomerID> <ord:ProductID>PROD1122</ord:ProductID> <ord:Quantity>2</ord:Quantity> <ord:OrderDate>2025-04-10</ord:OrderDate> </ord:PlaceOrder> </soapenv:Body> </soapenv:Envelope>