(58)【調査した分野】(Int.Cl.,DB名)
前記付加的な利用可能な調節のうちの少なくとも1つの前記選択に基づいて、前記ユーザの前記カートに適用される前記少なくとも1つのパラメータに対する調節を実行するための実行要求を、カート調節コンピュータシステムにおいてパートナサービスサーバから受信することと、
前記実行要求を受信することに応答して、
前記付加的な利用可能な調節のうちの少なくとも1つの前記選択に基づいて、支払調節を判定することと、
前記カートが前記ユーザの貯蔵価値に影響を及ぼすアクションをトリガするかどうかを判定することと、
前記ユーザの前記カートに対する前記付加的な利用可能な調節のうちの少なくとも1つの前記選択が、チェックアウト目的のためにアクティブ化されていることを識別する領収証としてのカート調節トークンと、前記ユーザの前記カートに適用される前記少なくとも1つのパラメータに対する前記付加的な利用可能な調節のうちの少なくとも1つの前記選択に基づいて決定された支払調節とを前記パートナサービスサーバに送信することと、
前記アクティブ化された調節を最終決定するための最終決定要求を前記パートナサービスサーバから受信することと、
前記カート調節トークンを使用して前記ユーザの前記カートにおいて適用される前記少なくとも1つのパラメータに対する前記アクティブ化された調節を最終決定することにより、前記アクティブ化され最終決定された調節を識別することと
を行うことと
をさらに含む、請求項1に記載の方法。
ユーザのカートに適用される少なくとも1つのパラメータに対する状況的電子商取引ショッピングカート調節を提供するためのコンピュータ読み取り可能な命令を記憶する非一過性のコンピュータ読み取り可能な媒体であって、前記命令は、コンピュータによって実行可能であり、前記命令は、
前記ユーザの前記カートに適用される前記少なくとも1つのパラメータに対する1つ以上の利用可能な調節を前記ユーザに通知するためのカート調節要求をカート調節コンピューティングシステムに送信することであって、前記カート調節要求は、前記カート調節コンピューティングシステムから遠隔にあるクライアントコンピュータデバイス上で実行しているパートナアプリケーションから送信され、前記1つ以上の利用可能な調節は、前記パートナアプリケーションによって行われるチェックアウト操作に関連付けられており、前記1つ以上の利用可能な調節は、前記少なくとも1つのパラメータを変更するためのものである、ことと、
前記パートナアプリケーションにおいて、チェックアウトのために、前記パートナアプリケーション内の前記ユーザの前記カートに適用可能である前記1つ以上の利用可能な調節を前記カート調節コンピューティングシステムから受信することであって、前記1つ以上の利用可能な調節は、前記パートナアプリケーションから前記クライアントコンピュータデバイス上で実行するための別のソフトウェアアプリケーションに前記クライアントコンピュータデバイスをダイレクトするために、ディープリンク商取引サービスを含み、前記ディープリンク商取引サービスは、前記パートナアプリケーションに対して、および、前記別のソフトウェアアプリケーションに対して、前記ユーザを識別するために指紋を利用する、ことと、
前記ディープリンク商取引サービスの選択の受信に応答して、前記別のソフトウェアアプリケーションにアクセスすることと、
前記パートナアプリケーションと前記別のソフトウェアアプリケーションとの間でユーザコンテキストを持続することと、
前記パートナアプリケーションにおいて、前記ユーザの前記カートに適用される前記少なくとも1つのパラメータに対する1つ以上の付加的な利用可能な調節を前記別のソフトウェアアプリケーションから受信することと、
前記付加的な利用可能な調節のうちの少なくとも1つの選択を受信することと、
前記付加的な利用可能な調節のうちの少なくとも1つの前記選択に基づいて、前記パートナアプリケーション内の前記ユーザの前記カートを更新することと
を含む、非一過性のコンピュータ読み取り可能な媒体。
【発明を実施するための形態】
【0017】
以下の発明を実施するための形態は、任意の当業者が、開示される主題を作製、使用、および/または実践することを可能にするように提示され、1つまたはそれを上回る特定の実装との関連で提供される。開示される実装の種々の修正が、当業者に容易に明白となり、本明細書で定義される一般原理は、本開示の範囲から逸脱することなく、他の実装および用途に適用され得る。したがって、本開示は、説明および/または図示される実装に限定されることを意図しておらず、本明細書に開示される原理および特徴と一致する、最も広い範囲を与えられるものである。
【0018】
本開示は、ユーザが電子商取引アプリケーションを使用してチェックアウトするときに、カート調節をユーザまたは消費者のショッピングカートに提供するための技法を説明する。例示的カート調節技法は、1つまたはそれを上回る電子商取引ベンダ(例えば、オンラインショッピング体験を顧客に提供する、小売業者、サービスプロバイダ、または市場オペレータ)と提携する、カート調節システムによって実装されることができる。電子商取引ベンダは、モバイルアプリケーション、ウェブアプリケーション、または携帯電話、タブレット、ラップトップ、デスクトップ、もしくは他のコンピュータデバイス上で実行可能な他のアプリケーション等のクライアントアプリケーションを顧客に提供することができる。
【0019】
顧客がチェックアウトのために電子商取引ベンダのアプリケーション(パートナアプリケーションと称される)を使用するとき、カート調節システムは、個人化カート調節オプションの列挙を消費者に提供することができる。これらのカート調節は、例えば、ショッピングカートまたはトランザクションの総額に影響を及ぼし得る、換金可能貨幣価値(例えば、クレジット、販促、ロイヤルティポイント等)を含むことができる。換金可能貨幣価値は、例えば、消費者データ(例えば、人口統計データ、購入履歴等)、およびカート調節システムのデータ記憶装置(例えば、1つまたはそれを上回るデータベース)内で管理される貯蔵価値データに基づいて、判定されることができる。貯蔵価値アカウントが、カート調節サービスに登録する各ユーザのために作成されることができる。いくつかの実装では、貯蔵価値を作成することを含む、カート調節サービスへの登録は、パートナ電子商取引ベンダによって制御されることができる。例えば、パートナは、ユーザの全て、一部、または任意のサブセットのために、カート調節サービスをサポートすることを選定することができる。いくつかの実装では、カート調節システム自体または他のシステムが、カート調節サービスを登録し、電子商取引パートナの範囲外のユーザ(例えば、カート調節システム自体のユーザ)に提供することができる。貯蔵価値は、例えば、ロイヤルティポイント、クレジット、マイレージ、または他のタイプの価値を含むことができる。いくつかの実装では、ユーザは、複数の異なるサービスおよび/または異なる電子商取引ベンダのための複数の貯蔵価値を有することができる。複数の貯蔵価値は、同一または異なる通貨であり得る。カート調節システムは、例えば、トランザクションが行われている企業によって(例えば、ショッピングカートで)使用される通貨に貯蔵価値を換金することによって、換金可能貨幣価値を判定し、換金可能貨幣価値をショッピングカートに適用することができる。実施例として、換金可能貨幣価値は、ロイヤルティサービスに基づいて判定されるロイヤルティ引換(例えば、「5,000ポイント使って、本購入の5ドル割引を入手してください」)、ディープリンク商取引サービスに基づいて判定されるアプリケーション間共通販促(例えば、ユーザがアプリケーション1からアプリケーション2にダイレクトされるとき、アプリケーション2のチェックアウト画面内で、「アプリケーション2でチェックアウトしていただきありがとうございます。アプリケーション1から当社をダウンロードして、本購入の5ドル割引を獲得してください」等のカート調節オプションが促され得る)、または他のタイプの貨幣価値を含むことができる。カート調節オプションは、例えば、ユーザインターフェース(UI)を使用して、パートナアプリケーション内で消費者に提示されることができる。
【0020】
(例えば、UIとの消費者の相互作用によって選定される)カート調節オプションの選択時に、カート調節システムは、カート調節オプションと関連付けられる金額の引換を自動化することができる。検証された確実な金額は、パートナアプリケーションにパスされることができ、アプリケーションの支払プロセッサ(例えば、クレジットカードプロセッサ)への請求額調節を示し、したがって、選択された引換カート調節を完了する。
【0021】
いくつかの実装では、本明細書に説明されるカート調節技法は、パートナ電子商取引ベンダが、ユーザのチェックアウト時に、商取引アプリケーションのカートへのリアルタイムカート調節を提供して実行することを可能にすることができる。カート調節は、恣意的であり得、例えば、ユーザの人口統計情報、選好、挙動(例えば、ショッピング履歴)、またはカート調節システムによって収集される他の状況的情報に基づいて、カスタマイズされることができる。いくつかの実装では、(例えば、複数のパートナアプリケーションにおける)アプリケーション体験、販促状況、およびユーザ挙動の転送と関連付けられる全てのデータは、カート調節システムのデータベース内に記憶されることができ、したがって、パートナアプリケーションのユーザにサービス提供するためのより優れた知能を提供するために有用な徹底レポジトリを提供し、ひいては、消費者ベース内の使用の可能性を増加させる。いくつかの実装では、カート調節システムは、顧客を引き付けるようにアプリケーション間共通販促能力を提供することによって、複数の電子商取引パートナが最小ベンダ統合を用いて収益源を拡張することを促進することができる。いくつかの実装では、カート調節技法は、不正を含んだクーポンコード獲得キャンペーンの依存を低減させる、または除去することに役立ち得る。付加的または異なる利点が、達成されることができる。
【0022】
図1Aは、実装による、カート調節機能性を提供するための例示的分散コンピュータシステム(EDCS)100を図示する、高レベルアーキテクチャブロック図である。高レベルで、図示されるEDCS100は、アプリケーションプログラミングインターフェース(API)121を使用して通信する、1つまたはそれを上回る通信可能に結合されたコンピュータ(
図1B参照)を含む、もしくはそれらで構成される。
図1で明示的に図示されていないが、EDCS100の構成要素は、1つまたはそれを上回るネットワークを横断して通信することができる(
図1B参照)。いくつかの実装では、API121もしくは構成要素の間の他の接続のうちの1つまたはそれを上回るものも、ネットワークの一部と見なされることができる。いくつかの実装では、EDCS100またはEDCS100の複数部分は、クラウドコンピューティングベースの環境内で動作することができる。図示されるEDCS100は、カート調節システム(またはCartAdjustシステム)110と、API121と、SDKを伴う1つまたはそれを上回るパートナアプリケーション111と、パートナアプリケーション113と、パートナシステム115とを含む。説明される例証は、説明される主題の1つの可能な実装にすぎず、本開示を単一の説明される実装に限定することを意図していない。当業者は、説明される構成要素が、本開示に一致する代替的方法で接続され、組み合わせられ、使用されることができるという事実を理解するであろう。
【0023】
カート調節システム110は、ショッピングカート調節機能性を提供するための任意のデバイスまたはプログラムである。例えば、カート調節システム110は、サーバまたはクライアントとして実装されることができ、任意の種類のコンピュータデバイスまたはシステムと常駐する、もしくは結合されることができる。いくつかの実装では、カート調節システム110は、第三者として、API121を通して、SDKを伴う複数のパートナアプリケーション111、パートナアプリケーション113、およびパートナシステム115と通信可能に結合される。カート調節システム110は、SDKを伴う複数のパートナアプリケーション111、パートナシステム115、およびパートナアプリケーション113にわたって、カート調節機能性を統合、監視、ならびに管理することができる。ある場合には、カート調節システム110は、集中型様式において専用システムで実装される、またはネットワーク内の複数のサーバもしくはクライアントの間で分散されることができる。
【0024】
カート調節システム110は、ショッピングカート調節と関連付けられる種々のソフトウェア電子商取引サービスを提供することができる。例えば、カート調節システム110は、ロイヤルティサービス131と、ディープリンク商取引サービス133と、販促サービス135a−cと、カート調節サービス137と、指紋サービス139とを含むことができる。カート調節システム110は、付加的または異なるサービスを提供することができる。いくつかの実装では、サービスは、カート調節システム102の1つまたはそれを上回るプロセッサもしくはサブシステムによって実行される、1つまたはそれを上回るモジュールもしくはアプリケーションとして実装されることができる。
【0025】
ロイヤルティサービス131は、1つまたはそれを上回るパートナアプリケーション113内で行われる購入のためのポイント発生および引換を管理する、サービスを含むことができる。サービスは、(例えば、パートナアプリケーション113内のトランザクション詳細に基づく)ポイント収益と、カート調節技法に従ってチェックアウト時にカートを割引することができる、ポイント引換とを含む、消費者のポイント残高を管理する。
【0026】
ディープリンク商取引サービス133は、1つのアプリケーションから別のアプリケーションへのユーザのフロー中にユーザコンテキストの持続を管理する、サービスを含むことができる。アプリケーションは、例えば、特定の必要性、所望、または特定の実装に従って、機能性もしくはサービスを提供する、モバイルアプリケーション、ウェブアプリケーション、Eメール、ウェブページ、または任意の他のソフトウェアモジュールもしくはエンジンを含むことができる。指紋サービス139を使用して、ディープリンク商取引サービス133は、アプリケーション内でユーザを識別することができる。次いで、サービスは、チェックアウト時に、カート調節を提供するために使用されることができる、ユーザ情報、状況的コンテンツ、および(ポイントを含む、任意の通貨での)状況的カートデビット/クレジットを提供する。例えば、ディープリンク商取引サービス133は、「Eメール・アプリ間」および「ウェブ・アプリ間」販促を含む、上記で説明されるアプリケーション間共通販促を提供することができる。実施例として、「当社のアプリをお使い頂きありがとうございます!サービスCを用いた最初の購入での5ドルクレジットのために、こちらの他のサービスCもチェックしてください」等の販促が、ウェブ、Eメール、または他の通信形式で提供され、ユーザをサービスCにダイレクトすることができる。販促は、ユーザがサービスCを用いてチェックアウトするときに、ユーザのためのカート調節として使用されることができる。
【0027】
販促サービス135a−cは、アプリケーション内でユーザに提示されるキャンペーンおよび販促列挙を管理する、サービスを含むことができる。これは、パートナアプリケーションの製品カタログ内の具体的アイテムへのロイヤルティ販促、またはカート調節技法に従って実行されることができる、(例えば、提供される入力に基づく)チェックアウト時のリアルタイムカート割引であり得る。
【0028】
CartAdjustサービス137は、1つまたはそれを上回るパートナアプリケーションの消費者のショッピングカートを管理する、サービスを含むことができる。CartAdjustサービス137は、例えば、カート調節オプションのリストを生成して列挙するステップと、選択されたカート調節オプションを実行するステップと、カート調節オプションを最終決定するステップ(例えば、カート調節の実行を確認または報告し、データベース内のユーザ情報を更新するステップ)とを含む、本開示に説明される例示的カート調節技法を具現化することができる。CartAdjustサービス137はまた、例えば、どのようなカート調節が利用可能であり、どれだけの貨幣価値割引がカート調節のそれぞれのためにあるかを判定する際に、カート調節システム110によって提供される他のサービスと相互作用することもできる。
【0029】
指紋サービス139は、収集されてそれにパスされる種々のメタデータ(例えば、デバイス識別子、ユーザアカウント情報、IPアドレス等)を使用して、パートナアプリケーション内でユーザを識別する、サービスを含むことができる。ある場合には、いったんユーザが識別されると、本システムは、適切なユーザコンテキストを任意の消費サービスまたはシステムに提供するように、例えば、ユーザアカウントシステムからユーザ情報を引き出すことができる。
【0030】
カート調節システム110は、カート調節機能性を提供するための種々のサービスと関連付けられるデータを生成、記憶、更新、もしくは別様に管理するために、メモリ、データベース、および/またはデータ管理システムを含むことができる。データは、例えば、ユーザアカウント情報(例えば、Eメール、電話番号、支払情報(例えば、クレジットカード情報)、および(例えば、ポイントならびに米ドルのような通貨の両方での)アカウント残高)を含み得る、アカウントデータ142と、パートナデータ144(例えば、名称、サイズ、商取引/消費サービスタイプ、パートナアプリケーションデータ等)、一般ユーザデータ(例えば、氏名、住所、年齢、性別、または他のユーザ情報)およびパートナ特有のユーザデータ(例えば、パートナアプリケーション内で使用される識別子)を含み得る、ユーザデータ146と、指紋データ148(例えば、デバイス識別子、ユーザ識別子、ユーザ証明書、暗号化されたデータ等)と、販促データ150(例えば、パートナ特有の販促、ユーザ特有の販促、ロイヤルティアカウント情報、店のクレジット情報、クーポン情報等)と、キャンペーンデータ152と、移行データ154(例えば、支払情報、クレジット/デビット情報等)と、他のデータとを含むことができる。いくつかの実装では、これらのタイプの情報は、
図1Aに示されるものと異なる様式で分類および管理されることができる。
【0031】
いくつかの実装では、カート調節システム110は、カート調節システム110が負う全ての金融責任を管理する、バンクシステム(図示せず)を含むことができる。これは、ポイントを含む任意の通貨でユーザアカウントに発行される、任意のクレジットおよび/またはデビットを含むことができる。例えば、ユーザが購入から500ポイントを獲得するとき、獲得されたポイントは、金融元帳として、バンクシステムによって生成および管理される。同様に、ユーザが、パートナアプリケーションにおけるチェックアウト時に、カート調節技法に従って5ドルクレジットを実行するとき、その負債価値は、カート調節システム110のバンクシステム内で記憶および管理される。
【0032】
API121は、カート調節システム110にアクセスし、それと通信および相互作用するためのインターフェースを定義する、ルーチン、データ構造、オブジェクトクラス、ならびに変数の仕様を含むことができる。API121は、カート調節システム110によって提供されるサービス(例えば、ロイヤルティサービス131、ディープリンク商取引サービス133、販促サービス135a−c、カート調節サービス137、指紋サービス139等)の発見および実行をサポートすることができる。いくつかの実装では、API121は、(例えば、異なるサービスまたは異なるパートナ専用の)複数のAPI、APIの消費者(例えば、SDKを伴うパートナアプリケーション111、パートナアプリケーション113、およびパートナシステム115)が接続するAPIエンドポイント、および/または他のAPI管理構成要素を含む、API管理システムであり得る。
図1ではEDCS100の分離された構成要素として図示されるが、API121は、カート調節システム100、SDKを伴うパートナアプリケーション111、パートナアプリケーション113、またはパートナシステム115の一体構成要素として(例えば、プラグインまたはローカルで定義されたインターフェースとして)実装されることができる。
【0033】
SDKを伴うパートナアプリケーション111は、API121にインターフェース接続し、パートナアプリケーションのためのカート調節機能性を提供するためにカート調節システム110と相互作用し得る、パートナアプリケーションの作成を可能にする、ソフトウェア開発ツールまたはプラットフォームのセットを含むことができる。
【0034】
パートナアプリケーション113は、カート調節システム110と提携する電子商取引ベンダの顧客にオンラインショッピング体験を提供するための1つまたはそれを上回るモバイルアプリケーション、ウェブアプリケーション、もしくは他のアルゴリズムソフトウェアエンジンを含むことができる。パートナアプリケーション113は、発注する、予約を入れる、ユーザアカウントを管理する、支払情報を更新する、または電子商取引ベンダによって提供される製品もしくはサービスに関係付けられる任意の他の動作を行うように、例えば、モバイルデバイスを使用して、ユーザによってアクセスおよび操作されることができる。
【0035】
パートナシステム115は、電子商取引サービス(パートナサービスとも称される)を顧客に提供するための電子商取引ベンダのコンピュータシステムを含むことができる。いくつかの実装では、パートナシステム115は、その顧客の使用のために分散される、いくつかのアプリケーションを監視および管理する、電子商取引ベンダのサーバ側を表すことができる。いくつかの実装では、パートナシステム115は、トランザクションの支払を実行するために、1つまたはそれを上回る支払ベンダ(例えば、クレジットカード会社、銀行、支払サービス、または他の金融機関)に(例えば、直接接続または通信ネットワークを通して)通信可能にリンクされる。
【0036】
図1Bは、実装による、EDCS100で使用される例示的コンピュータ102のブロック
図100bである。図示されるコンピュータ102は、コンピュータデバイスの物理および/または仮想インスタンスの両方を含む、サーバ、デスクトップコンピュータ、ラップトップ/ノートブックコンピュータ、無線データポート、スマートフォン、携帯情報端末(PDA)、タブレットコンピュータデバイス、これらのデバイス内の1つまたはそれを上回るプロセッサ、もしくは任意の他の好適な処理デバイス等の任意のコンピュータデバイスを包含することを意図している。加えて、コンピュータ102は、ユーザ情報を受け取ることができる、キーパッド、キーボード、タッチスクリーン、または他のデバイス等の入力デバイスと、デジタルデータ、視覚および/またはオーディオ情報、もしくはGUIを含む、コンピュータ102の動作と関連付けられる情報を伝える、出力デバイスとを含む、コンピュータを備えてもよい。
【0037】
一般に、コンピュータ102は、サーバ、クライアント、ネットワーク構成要素、データベース、またはコンピュータシステムの他の持続性としての機能を果たすことができる。いくつかの実装では、コンピュータ102は、カート調節システム110、パートナシステム115、API121、SDKを伴うパートナアプリケーション111、パートナアプリケーション113、および/またはEDCS100の任意の他の構成要素としての機能を果たすことができる。図示されるコンピュータ102は、ネットワーク130と通信可能に結合される。いくつかの実装では、コンピュータ102の1つまたはそれを上回る構成要素は、クラウドコンピューティングベースの環境内で動作するように構成されてもよい。
【0038】
高レベルで、コンピュータ102は、EDCS100と関連付けられるデータおよび情報を受信、伝送、処理、記憶、または管理するように動作可能な電子コンピュータデバイスである。いくつかの実装によると、コンピュータ102はまた、アプリケーションサーバ、Eメールサーバ、ウェブサーバ、キャッシングサーバ、ストリーミングデータサーバ、ビジネスインテリジェンス(BI)サーバ、および/または他のサーバを含んでもよい、もしくはそれと通信可能に結合されてもよい。
【0039】
コンピュータ102は、(例えば、別のコンピュータ102上で実行される)クライアントアプリケーションから、ネットワーク130を経由して要求を受信し、適切なソフトウェアアプリケーションにおいて該要求を処理することによって、受信された要求に応答することができる。加えて、要求はまた、(例えば、コマンドコンソールから、または他の適切なアクセス方法によって)内部ユーザ、外部関係者または第三者、他の自動アプリケーション、ならびに任意の他の適切なエンティティ、個人、システム、もしくはコンピュータから、コンピュータ102に送信されてもよい。
【0040】
コンピュータ102の構成要素のそれぞれは、システムバス103を使用して通信することができる。いくつかの実装では、ハードウェアおよび/またはソフトウェアの両方である、コンピュータ102の任意ならびに/もしくは全ての構成要素は、アプリケーションプログラミングインターフェース(API)112および/またはサービス層113を使用して、システムバス103を経由して相互ならびに/もしくはインターフェース104とインターフェースをとってもよい。いくつかの実装では、API112は、
図1Aでは、API121であり得る。サービス層113は、
図1Aでは、1つまたはそれを上回るサービス(例えば、ロイヤルティサービス131、ディープリンク商取引サービス133、販促サービス135a−c、カート調節サービス137、および指紋サービス139)の機能性を提供することができる。API112は、ルーチン、データ構造、およびオブジェクトクラスの仕様を含んでもよい。API112は、コンピュータ言語非依存または依存のいずれかであり、完全インターフェース、単一の機能、またはAPIのセットさえも指し得る。サービス層113は、ソフトウェアサービスをコンピュータ102および/またはEDCS100に提供する。コンピュータ102の機能性は、本サービス層を使用して、全てのサービス消費者のためにアクセス可能であり得る。サービス層113によって提供されるもの等のソフトウェアサービスは、定義されたインターフェースを通して、再利用可能な定義されたビジネス機能性を提供する。例えば、インターフェースは、JAVA(登録商標)、C++、または拡張マークアップ言語(XML)形式もしくは他の好適な形式でデータを提供する他の好適な言語で書かれたソフトウェアであってもよい。コンピュータ102の統合構成要素として図示されるが、代替的実装は、コンピュータ102および/またはEDCS100の他の構成要素に関連して、独立型構成要素としてAPI112ならびに/もしくはサービス層113を図示してもよい。また、API112および/またはサービス層113の任意もしくは全ての部分は、本開示の範囲から逸脱することなく、別のソフトウェアモジュール、企業アプリケーション、またはハードウェアモジュールの子もしくはサブモジュールとして実装されてもよい。
【0041】
コンピュータ102は、インターフェース104を含む。
図1Bでは単一のインターフェース104として図示されるが、2つまたはそれを上回るインターフェース104が、特定の必要性、所望、もしくはコンピュータ102および/またはEDCS100の特定の実装に従って使用されてもよい。インターフェース104は、(図示されているかどうかにかかわらず)ネットワーク130に接続される、EDCS100内を含む、分散環境内の他のシステムと通信するために、コンピュータ102によって使用される。概して、インターフェース104は、好適な組み合わせでソフトウェアおよび/またはハードウェアにおいて符号化され、ネットワーク130と通信するように動作可能である、論理を備える。より具体的には、インターフェース104は、ネットワーク130もしくはインターフェースのハードウェアが、図示されるEDCS100内および外で物理的信号を伝達するよう動作可能であるように、通信と関連付けられる1つまたはそれを上回る通信プロトコルをサポートする、ソフトウェアを備えてもよい。
【0042】
コンピュータ102は、プロセッサ105を含む。
図1Bでは単一のプロセッサ105として図示されるが、2つまたはそれを上回るプロセッサが、特定の必要性、所望、もしくはコンピュータ102および/またはEDCS100の特定の実装に従って使用されてもよい。概して、プロセッサ105は、命令を実行し、コンピュータ102の動作を行うようにデータを操作する。具体的には、プロセッサ105は、カート調節を提供するために必要とされる機能性を実行する。
【0043】
コンピュータ102はまた、コンピュータ102および/またはEDCS100の他の構成要素のためのデータを保持する、メモリ106も含む。
図1Bでは単一のメモリ106として図示されるが、2つまたはそれを上回るメモリが、特定の必要性、所望、もしくはコンピュータ102および/またはEDCS100の特定の実装に従って使用されてもよい。メモリ106は、コンピュータ102の一体構成要素として図示されるが、代替的実装では、メモリ106は、コンピュータ102および/またはEDCS100の外部にあり得る。
【0044】
アプリケーション107は、具体的には、ショッピングカート調節を提供するために必要とされる機能性に関して、特定の必要性、所望、もしくはコンピュータ102および/またはEDCS100の特定の実装に従って機能性を提供する、アルゴリズムソフトウェアエンジンである。例えば、アプリケーション107は、
図1Aに説明される1つまたはそれを上回る構成要素/アプリケーション(例えば、SDKを伴うパートナアプリケーション111、パートナアプリケーション113、カート調節システム110、およびパートナシステム115)としての機能を果たすことができる。さらに、単一のアプリケーション107として図示されるが、アプリケーション107は、コンピュータ102上の複数のアプリケーション107として実装されてもよい。加えて、コンピュータ102と一体として図示されるが、代替的実装では、アプリケーション107は、コンピュータ102および/またはEDCS100の外部にあり得る。
【0045】
EDCS100と関連付けられ、またはその外部にあり、ネットワーク130を経由して通信する、任意の数のコンピュータ102があってもよい。さらに、用語「クライアント」、「ユーザ」、および他の適切な用語が、本開示の範囲から逸脱することなく、適宜、同義的に使用されてもよい。また、本開示は、ユーザが1つのコンピュータ102を使用し得ること、またはユーザが複数のコンピュータ102を使用し得ることを考慮する。
【0046】
図2は、実装による、カート調節を提供するための例示的システム202のフロー(方法200)を図示する、アーキテクチャのブロック図である。提示を明確にするために、以下に続く説明は、概して、
図1A−1Bおよび3−8との関連で方法200を説明する。しかしながら、方法200は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法200の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0047】
例示的システム202は、図示されるEDCS100または別のコンピュータシステムによって実装されることができる。高レベルで、例示的システム202は、CartAdjustサービス210と、パートナアプリケーション(チェックアウト表示)220と、パートナサービス230と、パートナ支払ゲートウェイ240とを含む。例示的システム202は、付加的もしくは異なるサービス、モジュール、および/またはプラットフォームを含むことができる。
【0048】
CartAdjustサービス210は、ユーザがパートナアプリケーションを使用してチェックアウトするとき、カート調節サービスを提供することができる。いくつかの実装では、CartAdjustサービス210は、
図1Aの例示的CartAdjustサービス137または別のタイプのカート調節サービスを含むことができる。CartAdjustサービス210は、
図1のCartAdjustシステム110または別のカート調節システムによって実装されることができる。
【0049】
パートナアプリケーション(チェックアウト表示)220は、パートナのクライアントアプリケーション(例えば、
図1Aのパートナアプリケーション113)の例示的表現である。図示されるように、パートナアプリケーション(チェックアウト表示)220は、パートナアプリケーションの例示的カートチェックアウト表示(例えば、商取引フローにおける最終段階)を示す。チェックアウト表示220は、例えば、ユーザのモバイルデバイスの画面(例えば、タッチスクリーン)上のグラフィックユーザインターフェース(GUI)を使用して、表示されることができる。チェックアウト表示220は、概して、(完了したチェックアウトを仮定して)ユーザが期待するはずである全請求額を提示することができる。いくつかの実装では、チェックアウト表示220は、利用可能なカート調節オプション222、224、および226を表す、1つまたはそれを上回るユーザインターフェース(UI)構成要素を含むことができる。ユーザは、1つまたはそれを上回る利用可能なカート調節オプションを選択し、例えば、チェックアウトボタン228をアクティブ化することによって、チェックアウトを続けることができる。
【0050】
パートナ支払ゲートウェイ240は、消費者の支払を実行するために関連パートナが使用している、1つまたはそれを上回る支払ベンダを含むことができる。いくつかの実装では、パートナ支払ゲートウェイ240は、BRAINTREE、STRIPE、および/または他の支払ベンダによるもの等のエクスポーズされた支払ベンダAPIを使用して、統合されることができる。
【0051】
パートナサービス230は、クライアント側アプリケーション(例えば、
図1Aのパートナアプリケーション113)が通信する、パートナのサーバ側システム(例えば、
図1Aのパートナシステム115)を表すことができる。パートナサービス230は、クライアントアプリケーションのためのユーザ管理、支払ゲートウェイベンダとの支払統合、およびクライアントアプリケーションの機能性のために必要とされる任意のデータ管理(データベース)を可能にすることができる。
【0052】
(1)では、カート調節要求が、パートナアプリケーション220からCartAdjustサービス210によって受信される。カート調節要求は、自動的に(例えば、ユーザがチェックアウト表示に入るときに)、またはユーザの要求に基づいて、トリガされることができる。例えば、パートナアプリケーション220は、利用可能なカート調節オプションをユーザに通知する、(例えば、ポップアップウィンドウの形態の)グラフィック、状況的、または別のタイプのプロンプトを含んでもよい。カート調節要求は、ユーザがプロンプトをクリック、選択、または別様にアクティブ化するときに、トリガされることができる。(1)から、方法200は、(2)に進む。
【0053】
(2)では、CartAdjustサービス210が、特定のユーザのカートに利用可能なカート調節オプションを識別することができる。利用可能なカート調節オプションを生成および識別するための例示的技法は、
図4に関して以下でさらに詳細に説明される。利用可能なカート調節がない場合、CartAdjustサービス210は、そのようなインジケーションをパートナアプリケーション220に送信することができる。パートナアプリケーションは、カート調節UI要素が示されていない状態で、ユーザがチェックアウトを続けることができるように、そのようなインジケーションをユーザに伝えることができる。ユーザのカートに適用可能である、1つまたはそれを上回る利用可能な調節がある場合、CartAdjustサービス210は、1つまたはそれを上回るカート調節をパートナアプリケーション220に送信することができる。いくつかの実装では、利用可能な調節の受信時に、パートナアプリケーション220は、例えば、
図2に示される例示的カート調節表現222、224、および226として、カート調節をユーザに提示することができる。(2)から、方法200は、(3)に進む。
【0054】
(3)では、パートナアプリケーション220が、アクティブ化されたカート調節をCartAdjustサービス210に送信することができる。アクティブ化されたカート調節は、例えば、パートナアプリケーション220のUI要素とのユーザのアクティブな相互作用時に、ユーザの選択に基づき得る。いくつかの実装では、アクティブ化されたカート調節は、例えば、具体的製品/サービスがカートに含まれるときに、自動的に選択または判定されることができる。(3)から、方法200は、(4)に進む。
【0055】
(4)では、アクティブ化されたカート調節の受信時に、CartAdjustサービス210が、アクティブ化されたカート調節を評価してカートに適用し、更新されたカート状態(例えば、アクティブ化されたカート調節が適用される場合、期待される全請求額)を取得することができる。パートナアプリケーション220は、アクティブ化されたカート調節が適用される場合に、カートの全請求額のプレビューをユーザに提供するように、更新された全請求額を示すためにチェックアウト表示をリフレッシュすることができる。ユーザがアクティブ化されたカート調節を用いてチェックアウトを続けることを選定する場合、方法200は、(4)から(5)に進む。ユーザがアクティブ化されたカート調節を用いてチェックアウトを続けないことを選定する場合、パートナアプリケーション220は、前のチェックアウト表示に戻る機能性を提供することができる。いくつかの実装では、利用可能な付加的カート調節がある場合、ユーザは、別のカート調節をアクティブ化することができ、それ以上のカート調節が利用可能ではなくなるまで、またはユーザが現在適用されているカート調節を用いてチェックアウトすることを決定するまで、(3)および(4)は、繰り返されることができる。
【0056】
(5)では、パートナアプリケーション220が、チェックアウト要求をパートナサービス230に送信することによって、アクティブ化されたカート調節を用いてチェックアウトを実行することができる。いくつかの実装では、チェックアウト要求は、ユーザがカートに適用するように選択した、アクティブ化されたカート調節のインジケーションを含むことができる。(5)から、方法200は、(6)に進む。
【0057】
(6)では、パートナサービス230が、選択されているアクティブ化されたカート調節を実行するように、CartAdjustサービス210と相互作用することができる。実行プロセス中に、CartAdjustサービス210は、例えば、支払を差し引くように、ユーザのクレジットもしくは他の利用可能な貯蔵価値を適用すること、支払調節および/または更新されたカート請求額を判定すること、適用されているカート調節を考慮して、ユーザの貯蔵価値を判定すること等によって、アクティブ化されたカート調節を適用することができる。カート調節を実行するための例示的技法は、
図7に関して以下でさらに詳細に説明される。(6)から、方法200は、(7)に進む。
【0058】
(7)では、CartAdjustサービス210が、カート調節トークンをパートナサービス230に返すことができる。いくつかの実装では、カート調節トークンは、チェックアウト目的で選択および実行されているアクティブ化されたカート調節を識別するように、領収証としての機能を果たすことができる。いくつかの実装では、(6)でCartAdjustサービス210によって判定される支払調節は、カート調節トークンとともに、またはその一部として、パートナサービス230に送信されることができる。(7)から、方法200は、(8)に進む。
【0059】
(8)では、パートナサービス230が、例えば、アクティブ化されたカート調節を適用した後に、更新された全請求額に基づいてユーザに請求するように、パートナ支払ゲートウェイ240にコンタクトすることができる。(8)から、方法200は、(9)に進む。
【0060】
(9)では、パートナ支払ゲートウェイ240が、支払結果をパートナサービス230に返す。支払が成功していない場合、パートナサービス230は、エラーメッセージをパートナアプリケーション220に返すことができ、後者は、エラーおよび/またはエラーの原因をユーザに提示することができ、ならびに/もしくはカート調節アクションは、キャンセルされる、もしくは取り消されることができる。この場合、方法200が停止する。支払が成功した場合、方法200は、(9)から(10)に進む。
【0061】
(10)では、パートナサービス230が、例えば、カート調節を最終決定するために、最終決定要求をCartAdjustサービス210に送信することができる。いくつかの実装では、最終決定要求は、支払が失敗なく行われたことを示す、支払確認を含むことができる。したがって、パートナは、アクティブ化されたカート調節の実行に従って、ユーザの貯蔵価値を最終決定するようにCartAdjustサービス210に権限を与える。いくつかの実装では、最終決定要求は、最終決定されるために要求されるカート調節を識別する、カート調節トークンを含むことができる。CartAdjustサービス210は、例えば、ユーザのカートへのアクティブ化された調節の実行に基づいて、アカウント情報、貯蔵価値情報、またはユーザの他の情報を更新することによって、カート調節を最終決定することができる。実施例として、CartAdjustサービス210は、ユーザアカウントからユーザの使用可能なクレジットまたはクーポンを差し引くこと、本トランザクション中に支払われる金額に基づいてユーザのロイヤルティポイントを増加させること等ができる。最終決定後、ユーザの貯蔵ユーザ価値は、もはや保留中と見なされなくなるが、最終決定される。次いで、CartAdjustサービス210は、ユーザのカートへのアクティブ化された調節の実行の成功または失敗を示す、最終決定応答をパートナサービスサーバ230に送信することができる。いくつかの実装では、CartAdjustサービス210およびパートナサービス230は、安全な、または信頼されるチャネルを通して通信することができ、支払調節もしくは他の情報は、経時的に預託されることができる。したがって、いくつかの実装では、トークンは、CartAdjustサーバ210とパートナサービス230との間の通信のために必要とされない。カート調節を最終決定するための例示的技法は、
図8に関して以下でさらに詳細に説明される。(10)から、方法200は、(11)に進む。
【0062】
(11)では、CartAdjustサービス210が、カート調節の最終決定が成功しているかどうかを示す、成功またはエラー応答をパートナサービス230に送信することができる。(11)から、方法200は、(12)に進む。
【0063】
(12)では、パートナサービス230が、CartAdjustサービス210から受信される成功またはエラー応答に基づいて、チェックアウト結果をパートナアプリケーション220に返すことができる。次いで、パートナアプリケーション220は、チェックアウト結果をユーザに提示することができる。(12)の後に、方法200は、停止する。
【0064】
図3は、実装による、パートナアプリケーションチェックアウトプロセスを図示する、方法300のフローチャートである。提示を明確にするために、以下に続く説明は、概して、
図1A、1B、2、および4−8との関連で方法300を説明する。例えば、例示的方法の一部または全ては、
図2のパートナアプリケーション220によって行われることができる。しかしながら、方法300は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法300の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0065】
ある場合には、方法300は、例えば、ユーザ入力を受信するパートナアプリケーションによって、ユーザがチェックアウト画面(例えば、
図2の例示的チェックアウト表示220)に入ることが検出される、302から始まる。302から、方法300は、306に進む。
【0066】
306では、要求が、自動的に、またはユーザの命令に従って、CartAdjustサービス(例えば、
図2のCartAdjustサービス210)への利用可能な調節のために行われる。カートアイテム、税、チップ、および割引等のショッピングカートと関連付けられる情報が、CartAdjustサービスにパスされることができる。ある場合には、306は、
図2の方法200の(1)に対応することができる。306から、方法300は、310に進む。
【0067】
ある場合には、方法300は、ユーザがカート調節(例えば、パートナアプリケーションのチェックアウト表示上にすでに表示されているカート調節)を選択または別様にアクティブ化することが検出され得る、304から始まる。いくつかの実装では、カート調節のそれぞれは、例えば、調節がアクティブ化されているかどうかを識別する、識別子を有することができる。いったんカート調節がアクティブ化されると、カート調節の識別子は、カート調節がアクティブ化状態にあることを示すように変更されることができる。ある場合には、304は、
図2の方法200の(3)に対応することができる。304から、方法300は、308に進む。
【0068】
308では、要求が、自動的に、またはユーザの命令に従って、CartAdjustサービス(例えば、
図2のCartAdjustサービス210)への利用可能な調節のために行われる。例えば、カートアイテム、税、チップ、および割引を含む、ショッピングカートと関連付けられる情報、ならびにアクティブ化されたカート調節の識別子が、CartAdjustサービスにパスされることができる。306から、方法300は、310に進む。
【0069】
310では、チェックアウト要求が、CartAdjustサービスに送信される。310から、方法300は、312に進む。
【0070】
312では、利用可能なカート調節のセットが、識別されることができる。利用可能なカート調節を識別するための例示的技法は、
図4に関して以下でさらに詳細に説明される。312から、方法300は、314に進む。
【0071】
314では、応答が、CartAdjustサービスから受信される。応答は、利用可能なカート調節のセットを含むことができ、および/またはアクティブ化されたカート調節を与えられる、カート状態が適用される。ある場合には、314は、
図2の方法200の(2)および(4)に対応することができる。314から、方法300は、316に進む。
【0072】
316では、任意のカート調節が利用可能であるかどうかの判定が行われる。カート調節が利用可能ではない場合、方法300は、316から318に進み、そこで方法300が停止する。カート調節が利用可能である場合、方法300は、316から320に進む。
【0073】
320では、全ての利用可能なカート調節が、反復または別様に列挙されることができる。320から、方法300は、322に進む。
【0074】
322では、いずれかのカート調節が残っている(すなわち、評価されていない)かどうかが判定される。判定が「いいえ」である場合、方法300は、322から318に進み、そこで方法300が停止する。しかしながら、カート調節が残っている場合、方法300は、322から324に進む。
【0075】
324では、残りのカート調節がアクティブ化されるかどうかが判定されることができる。判定が「はい」である場合、方法300は、324から326に進む。しかしながら、判定が「いいえ」である場合、方法300は、324から328に進む。
【0076】
326では、アクティブ化されたカート調節が、例えば、カートの更新された全請求額を計算するように、ローカルカートに適用されることができる。326から、方法300は、328に進む。
【0077】
328では、カート調節のためのUI構成要素が、例えば、カート調節をユーザに表示または別様に提示するためにインスタンス化されることができる。328から、方法300は、330に進む。
【0078】
330では、カート調節のためのUI構成要素が、パートナアプリケーションのチェックアウト表示に追加されることができ、したがって、カート調節をユーザに提示する。330から、方法300は、322に戻る。
【0079】
図4は、実装による、カート調節を識別するための例示的方法400を図示する、フローチャートである。方法400は、
図3の方法300の312および/または
図7の方法700の706の例示的実装であり得る。提示を明確にするために、以下に続く説明は、概して、
図1A、1B、2、3、および5−8との関連で方法400を説明する。例えば、例示的方法の一部または全ては、
図2のCartAdjustサービス210によって行われることができる。しかしながら、方法400は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法400の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0080】
404では、CartAdjustシステム(例えば、
図1AのCartAdjustシステム110)によって提供される1つまたはそれを上回るサービスが、列挙されることができる。サービスは、例えば、ロイヤルティサービス131、ディープリンク商取引サービス133、販促サービス135a−c、カート調節サービス137、指紋サービス139、および/またはカート調節に関係付けられる任意の他のサービスを含むことができる。404から、方法400は、406に進む。
【0081】
406では、サービスのそれぞれが、ユーザのための1つまたはそれを上回る利用可能なカート調節を判定するように評価される。いくつかの実装では、カート調節の可用性は、CartAdjust技術を利用する製品サービスへのパートナ登録および/またはユーザ登録に基づいて判定される。例えば、所与のサービスに関して、特定のパートナ電子商取引ベンダが所与のサービスに登録しているかどうかが判定されることができる。パートナ電子商取引ベンダがサービスに登録している場合、ユーザがサービスに登録しているかどうかが判定されることができる。いくつかの実装では、所与のサービスによって提供されるカート調節は、ユーザおよびパートナサービスが両方とも所与のサービス230に登録されている場合のみ利用可能であり得る。いくつかの実装では、カート調節システムは、パートナサービスが登録されているかどうかにかかわらず、カート調節システムを通してサービスに登録されているユーザにカート調節を提供することができる。例えば、ユーザは、カート調節のために、パートナ電子商取引ベンダからではなくカート調節システムによって発行される貯蔵価値を使用することができる。いくつかの実装では、例えば、タイプ(例えば、クレジット、デビット、控除、収益ポイント等)、金額、または調節の他のパラメータがカートに適用され得るかどうかを判定するように、ユーザステータスもしくは情報がチェックされることができる。例えば、ユーザが、ショッピングカートに適用されることができる利用可能な残額もしくはクレジットを自分のアカウントに有しているかどうか、特定の販促が生じている領域中にユーザが位置するかどうか、および/またはカート調節を判定するように評価されることができるユーザの他の属性である。いくつかの実装では、カート調節は、パートナ電子商取引ベンダおよび/またはカート調節システムによって規定されるポリシーもしくは規則に基づき得る。406から、方法400は、408に進む。
【0082】
408では、いずれかのサービスが残っている(すなわち、評価されていない)かどうかが判定されることができる。判定が「いいえ」である場合、方法400は、408から410に進む。しかしながら、サービスが残っている場合、方法400は、408から412に進む。
【0083】
412では、残りのサービスがユーザのための調節を有するかどうかが、判定されることができる。調節は、例えば、特定のサービスが特定のユーザに適用可能であるかどうか(例えば、ユーザがロイヤルティサービスのメンバー/加入者であるかどうか、ユーザが、別のパートナアプリケーションを通してパートナアプリケーションをダウンロードする、またはそれにアクセスすることによって、ディープリンク商取引サービスを適格とするかどうか等)に基づいて、判定されることができる。「はい」である場合、方法400は、412から414に進む。「いいえ」である場合、方法400は、406に戻る。
【0084】
414では、利用可能な調節が、ユーザのための利用可能なカート調節のセットに追加される。414から、方法400は、410に進む。
【0085】
410では、1つまたはそれを上回る利用可能なカート調節が、出力されるかまたは別様に返されることができる。410から、方法400は、停止する。
【0086】
図5は、実装による、
図4のカート調節を識別するための方法400の具体的実施例500のフローチャートである。提示を明確にするために、以下に続く説明は、概して、
図1A、1B、2−4、および6−8との関連で方法500を説明する。しかしながら、方法500は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法500の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0087】
502では、ユーザがパートナアプリケーションの現在のショッピングカートに適用可能なクレジットを有するかどうかが、判定されることができる。いくつかの実装では、クレジットは、ユーザの貯蔵価値のクレジットであり得る。貯蔵価値は、例えば、カート調節システム自体(例えば、ある場合には、登録を必要とすることなく発行される)、パートナ電子商取引ベンダ、および/またはカート調節に関係付けられるサービス(例えば、ロイヤルティサービス131、ディープリンク商取引サービス133、販促サービス、135a−c、指紋サービス139等)によって発行されることができる。「はい」である場合、方法500は、502から504に進む。「いいえ」である場合、方法500は、506に進む。
【0088】
504では、クレジットが、カート調節として識別され、ユーザのための利用可能なカート調節のセットに追加されることができる。504から、方法500は、506に進む。
【0089】
506では、ユーザがロイヤルティサービスに登録されるかどうかが、判定されることができる。「はい」である場合、方法500は、506から508に進む。「いいえ」である場合、方法500は、514に進む。
【0090】
508では、現在のショッピングカートに基づくユーザのロイヤルティ獲得が、判定されることができる。(例えば、ポイント、マイレージ、および/または他の測定基準に関する)ロイヤルティ獲得は、カート調節として識別され、ユーザのための利用可能なカート調節のセットに追加されることができる。508から、方法500は、510に進む。
【0091】
510では、ユーザがロイヤルサービスのポイント転換点に到達したかどうかが、判定されることができる。「はい」である場合、方法500は、510から512に進む。「いいえ」である場合、方法500は、514に進む。
【0092】
512では、ユーザのポイントが、例えば、ショッピングカートの通貨に換金されることができ、したがって、ロイヤルティ燃焼(すなわち、ロイヤルティポイント/クレジットの交換/引換)が、カート調節として識別され、ユーザのための利用可能なカート調節のセットに追加されることができる。512から、方法500は、514に進む。
【0093】
514では、例えば、貨幣価値をともに換金して加算すること、および/またはそれぞれのサービスに基づいて判定される貨幣価値のうちの1つを選択することによって、1つまたはそれを上回るカート調節が組み合わせられることができる。514から、方法500は、516に進む。
【0094】
516では、利用可能なカート調節のセットが、列挙されて返されることができる。516の後に、方法500は、停止する。
【0095】
図6は、実装による、チェックアウトフローを図示する、方法600のフローチャートである。提示を明確にするために、以下に続く説明は、概して、
図1A、1B、2−5、および7−8との関連で方法600を説明する。例えば、例示的方法の一部または全ては、
図2のパートナアプリケーション220およびパートナサービス230によって行われることができる。しかしながら、方法600は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法600の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0096】
602では、例えば、ユーザがチェックアウトボタン(例えば、
図2のチェックアウトボタン228)をクリックまたは別様にアクティブ化するというインジケーションを受信する、パートナアプリケーションによって、ユーザがチェックアウトを実行することが、検出されることができる。602から、方法600は、604に進む。
【0097】
604では、チェックアウト要求が、例えば、パートナアプリケーションによって、パートナサービスに送信される。チェックアウト要求は、カート調節がアクティブ化されることを示す、カート調節の識別子を含むことができる。ある場合には、604は、
図2の方法200の(5)に対応することができる。604から、方法600は、606に進む。
【0098】
606では、パートナサービスが、例えば、アクティブ化されたカート調節の識別子を含む、チェックアウト要求をCartAdjustサービスに送信することによって、アクティブ化されたカート調節を実行するためにCartAdjustサービスと相互作用することができる。606から、方法600は、608に進む。
【0099】
608では、アクティブ化されたカート調節が実行される。アクティブ化されたカート調節を実行するための例示的技法は、
図7に関して以下でさらに詳細に説明される。ある場合には、608は、
図2の方法200の(6)に対応することができる。608から、方法600は、610に進む。
【0100】
610では、例えば、アクティブ化されたカート調節に基づいて、カートの請求額が値引されるべきかどうかが判定されることができる。例えば、アクティブ化されたカート調節が、ユーザのカートに適用可能な(例えば、クレジット、クーポン等の形態の)請求額値引を含む場合には、カートの請求額は、値引されることができる。したがって、方法600は、610から612に進む。カートの請求額が値引されることができない場合、方法600は、614に進む。
【0101】
612では、値引されたカート合計が、ユーザに請求されることができる。例えば、パートナサービスは、アクティブ化されたカート調節によって規定される値引価値を引いた当初または完全カート金額について、商業サービスを用いてユーザに請求する(例えば、そうするようにパートナ支払ゲートウェイと相互作用する)ことができる。612から、方法600は、616に進む。
【0102】
614では、完全カート価値が、ユーザに請求されることができる。例えば、パートナサービスは、いかなる請求額値引も含まない、アクティブ化されたカート調節の当初または完全カート金額について、商業サービスを用いてユーザに請求する(例えば、そうするようにパートナ支払ゲートウェイと相互作用する)ことができる。614から、方法600は、616に進む。ある場合には、612および/または616は、
図2の方法200の(8)ならびに(9)に対応することができる。
【0103】
616では、パートナサービスが、アクティブ化されたカート調節を最終決定するための要求をCartAdjustサービスに送信することができる。616から、方法600は、618に進む。
【0104】
618では、アクティブ化されたカート調節が、最終決定される。アクティブ化されたカート調節を最終決定するための例示的技法は、
図8に関して以下でさらに詳細に説明される。ある場合には、616および/または618は、
図2の方法200の(10)に対応することができる。618から、方法600は、620に進む。
【0105】
620では、チェックアウト応答が、例えば、CartAdjustサービスからパートナサービスによって受信されることができる。ある場合には、620は、
図2の方法200の(12)に対応することができる。620の後に、方法600は、停止する。
【0106】
図7は、実装による、カート調節を実行することを図示する、方法700のフローチャートである。方法700は、
図6の方法600の608の例示的実装であり得る。提示を明確にするために、以下に続く説明は、概して、
図1A、1B、2−6、および8との関連で方法700を説明する。例えば、例示的方法の一部または全ては、
図2のCartAdjustサービス210によって行われることができる。しかしながら、方法700は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法700の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0107】
704では、カート調節を実行するための要求が、例えば、CartAdjustサービスによって、パートナサービスから受信される。704から、方法700は、706に進む。
【0108】
706では、利用可能なカート調節のセットが、例えば、
図4の方法400に関して説明される例示的技法に基づいて、識別されることができる。706から、方法700は、708に進む。
【0109】
708では、例えば、規定されるアクティブ化されたカート調節が706で識別される利用可能なカート調節のセットに含まれるかどうかを判定することによって、規定されるアクティブ化されたカート調節が利用可能であるかどうかが、判定されることができる。規定されるアクティブ化されたカート調節が利用可能である場合、方法700は、708から710に進む。「いいえ」である場合、方法700は、712に進む。
【0110】
710では、カート調節支払が、例えば、規定されるアクティブ化されたカート調節に基づいて、生成されることができる。いくつかの実装では、カート調節支払は、完全カート価値から、アクティブ化されたカート調節において規定されるクレジットまたは任意の他の支払値引価値を差し引くことによって、生成されることができる。706から、方法700は、708に進む。
【0111】
712では、カートがユーザの貯蔵価値を増分する任意のアクションをトリガするかどうかが、判定されることができる。いくつかの実装では、パートナ電子商取引ベンダおよび/またはカート調節システムは、ユーザの貯蔵価値のためのポリシー/規則を定義することができる。例示的規則は、顧客が500ドル以上を使う、または特定の製品を購入する場合に、5ドルを獲得することであり得る。カートは、ユーザに貯蔵価値の任意の増分の資格があるかどうかを確認するように、ポリシー/規則に対して評価されることができる。判定が「はい」である場合、方法700は、712から714に進む。判定が「いいえ」である場合、方法700は、716に進む。
【0112】
714では、貯蔵価値クレジットが、生成されることができる。したがって、付加的貯蔵価値が生成され、したがって、貯蔵価値の通貨でユーザの全体的アカウント残高を増加させる。714から、方法700は、716に進む。
【0113】
716では、ユーザのカートへのアクティブ化された調節と、ユーザのカートへのアクティブ化された調節に基づいて判定される支払調節(例えば、完全カート価値から差し引かれる金額、またはアクティブ化された調節を適用した後の更新されたカート価値)とを識別する、カート調節トークンが、パートナサービスサーバに送信されることができる。716の後に、方法700は、停止する。
【0114】
図8は、実装による、カート調節を最終決定する方法800のフローチャートである。方法800は、
図6の方法600の618の例示的実装であり得る。提示を明確にするために、以下に続く説明は、概して、
図1A、1B、および2−7との関連で方法800を説明する。例えば、例示的方法の一部または全ては、
図2のCartAdjustサービス210によって行われることができる。しかしながら、方法800は、例えば、適宜、任意の他の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって行われ得ることが理解されるであろう。いくつかの実装では、方法800の種々のステップは、並行して、組み合わせで、ループで、および/または任意の順序で実行されることができる。
【0115】
804では、ACトークンが、パートナサービスから受信される。カート調節トークンは、最終決定される、実行されたカート調節を識別する。804から、方法800は、806に進む。
【0116】
806では、ACトークンが存在するかどうかが、判定されることができる。いくつかの実装では、CartAdjustサービスは、(例えば、
図7の方法700に関して説明される例示的技法に従って)実行されたACトークンのリストを記憶することができる。受信されたACトークンが実行されたACトークンのリストの中に存在するかどうかをチェックすることによって、CartAdjustサービスは、受信されたACトークンが有効であるかどうかを判定することができる。受信されたACトークンが存在しない場合、方法800は、806から808に進む。受信されたACトークンが存在する場合、方法800は、806から810に進む。
【0117】
808では、カート調節の要求された最終決定が有効ではないことを報告するエラーメッセージが、パートナサービスに送信されることができる。ある場合には、808は、
図2の方法200の(11)の例示的実装に対応することができる。808の後に、方法800は、停止する。
【0118】
810では、カート調節トークンと関連付けられる1つまたはそれを上回る移行が、列挙されることができる。移行は、貯蔵価値がソースと宛先(例えば、1つまたはそれを上回る貯蔵価値アカウント、パートナサービスアカウント、パートナ支払アカウント、バンキングアカウント等)との間で交換されることを可能にする。移行は、貯蔵価値の支払(例えば、引換)、貯蔵価値のクレジット(例えば、獲得もしくは増加)、または別の形態であり得る。810の後に、方法800は、812に進む。
【0119】
812では、チェックされていない、受信されたカート調節トークンと関連付けられる任意の移行が残っているかどうかが、判定される。「はい」である場合、方法800は、812から814に進む。「いいえ」である場合、方法800は、812から822に進む。
【0120】
チェックされていない、受信されたカート調節トークンと関連付けられる移行が残っていないことが判定される場合において、例えば、規定されるアクティブ化されたカート調節に基づいて、支払が生成され得ることに留意されたい。いくつかの実装では、カート調節支払は、完全カート価値から、アクティブ化されたカート調節において規定されるクレジットまたは任意の他の支払控除価値を差し引くことによって、生成されることができる。806から、方法800は、808に進む。
【0121】
814では、移行が支払であるかどうかが、判定されることができる。「はい」である場合、方法800は、814から816に進む。「いいえ」である場合、方法800は、814から818に進む。
【0122】
816では、ユーザの貯蔵価値控除が、最終決定されることができる。816から、方法800は、812に戻る。
【0123】
818では、移行がクレジットであるかどうかが、判定されることができる。「はい」である場合、方法800は、818から820に進む。「いいえ」である場合、方法800は、812に戻る。
【0124】
820では、ユーザの貯蔵価値獲得が、最終決定されることができる。820から、方法800は、812に戻る。
【0125】
822では、ACトークンと関連付けられる全ての移行が査定されたときに、成功応答が、パートナサービスに送信されることができる。応答は、受信されたACトークンの最終決定が失敗なく行われたことを示すことができる。822の後に、方法800は、停止する。
【0126】
本明細書に説明される主題および機能的動作の実装は、デジタル電子回路で、有形で具現化されたコンピュータソフトウェアまたはファームウェアで、本明細書に開示される構造およびそれらの構造的均等物を含む、コンピュータハードウェアで、もしくはそれらのうちの1つまたはそれを上回るものの組み合わせで、実装されることができる。本明細書に説明される主題の実装は、1つまたはそれを上回るコンピュータプログラム、すなわち、データ処理装置による実行のために、もしくはその動作を制御するために、有形の非一過性コンピュータ記憶媒体上で符号化されたコンピュータプログラム命令の1つまたはそれを上回るモジュールとして、実装されることができる。代替として、または加えて、プログラム命令は、データ処理装置による実行のための好適な受信機装置に伝送するための情報を符号化するように生成される、人為的生成伝搬信号、例えば、マシン生成電気、光学、もしくは電磁信号上で符号化されることができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、もしくはそれらのうちの1つまたはそれを上回るものの組み合わせであり得る。
【0127】
「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」という用語(もしくは当業者によって理解されるような均等物)は、データ処理ハードウェアを指し、一例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための全ての種類の装置、デバイス、およびマシンを包含する。本装置はまた、またはさらに、専用論理回路、例えば、中央処理装置(CPU)、FPGA(フィールドプログラマブルゲートアレイ)、もしくはASIC(特定用途向け集積回路)を含むことができる。いくつかの実装では、データ処理装置および/または専用論理回路は、ハードウェアベースならびに/もしくはソフトウェアベースであってもよい。本装置は、随意に、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、もしくはそれらのうちの1つまたはそれを上回るものの組み合わせを構成するコードを含むことができる。本開示は、従来のオペレーティングシステム、例えば、LINUX(登録商標)、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS、ANDROID(登録商標)、IOS、または任意の他の好適な従来のオペレーティングシステムを伴う、もしくは伴わない、データ処理装置の使用を考慮する。
【0128】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも称され得る、もしくは表され得る、コンピュータプログラムが、コンパイラ型またはインタープリタ型言語、もしくは宣言型または手続き型言語を含む、任意の形態のプログラミング言語で書かれることができ、これは、独立型プログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境での使用のために好適な他のユニットとしてを含む、任意の形態で展開されることができる。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、例えば、マークアップ言語文書内に記憶された1つまたはそれを上回るスクリプトを保持するファイルの一部内に、問題のプログラム専用である単一のファイル内に、もしくは複数の協調ファイル、例えば、1つまたはそれを上回るモジュール、サブプログラム、もしくはコードの複数部分を記憶するファイル内に、記憶されることができる。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に位置する、もしくは複数の場所にわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で、実行されるように展開されることができる。種々の図に図示されるプログラムの複数部分が、種々のオブジェクト、方法、または他のプロセスを通して、種々の特徴および機能性を実装する、個々のモジュールとして示されるが、プログラムは、代わりに、適宜、いくつかのサブモジュール、第三者サービス、構成要素、ライブラリ等を含んでもよい。逆に、種々の構成要素の特徴および機能性は、適宜、単一構成要素に組み込まれることもできる。
【0129】
本明細書に説明されるプロセスおよび論理フローは、入力データに作用し、出力を生成することによって、機能を果たすように、1つまたはそれを上回るコンピュータプログラムを実行する、1つまたはそれを上回るプログラマブルコンピュータによって行われることができる。プロセスおよび論理フローはまた、専用論理回路、例えば、CPU、FPGA、またはASICによって行われることもでき、装置がまた、それらとして実装されることもできる。
【0130】
コンピュータプログラムの実行のために好適なコンピュータは、汎用または専用マイクロプロセッサ、両方、もしくは任意の他の種類のCPUに基づき得る。概して、CPUは、読取専用メモリ(ROM)またはランダムアクセスメモリ(RAM)もしくは両方から、命令およびデータを受信するであろう。コンピュータの不可欠な要素は、命令を実施もしくは実行するためのCPU、ならびに命令およびデータを記憶するための1つまたはそれを上回るメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つまたはそれを上回る大容量記憶デバイス、例えば、磁気、光磁気ディスク、もしくは光ディスクを含む、またはそれらに動作可能に結合される、そこからデータを受信する、もしくはそこにデータを転送する、または両方を行うであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。また、コンピュータは、別のデバイス、例えば、いくつか例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、もしくは携帯用記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることができる。
【0131】
コンピュータプログラム命令またはデータを記憶するために好適なコンピュータ可読媒体(適宜、一過性または非一過性)は、一例として、半導体メモリデバイス、例えば、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD−ROM、DVD+/−R、DVD−RAM、およびDVD−ROMディスクを含む、全ての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。メモリは、キャッシュ、クラス、フレームワーク、アプリケーション、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データベーステーブル、ビジネスおよび/または動的情報を記憶するレポジトリ、ならびに任意のパラメータ、変数、アルゴリズム、命令、規則、制約、もしくはそこへの参照を含む、任意の他の適切な情報を含む、種々のオブジェクトまたはデータを記憶してもよい。加えて、メモリは、ログ、ポリシー、セキュリティまたはアクセスデータ、報告ファイル、ならびにその他等の任意の他の適切なデータを含んでもよい。プロセッサおよびメモリは、専用論理回路によって補完される、またはそれに組み込まれることができる。
【0132】
ユーザとの相互作用を提供するために、本明細書に説明される主題の実装は、情報をユーザに表示するためのディスプレイデバイス、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)、LED(発光ダイオード)、またはプラズマモニタと、それによってユーザが入力をコンピュータに提供し得る、キーボードおよびポインティングデバイス、例えば、マウス、トラックボール、またはトラックパッドを有する、コンピュータ上で実装されることができる。入力はまた、圧力感受性を伴うタブレットコンピュータ表面、容量または電気感知を使用するマルチタッチスクリーン、もしくは他のタイプのタッチスクリーン等のタッチスクリーンを使用して、コンピュータに提供されてもよい。他の種類のデバイスも、ユーザとの相互作用を提供するために使用されることができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、発話、または触覚入力を含む、任意の形態で受信されることができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、例えば、ウェブブラウザから受信される要求に応答して、ウェブページをユーザのクライアントデバイス上のウェブブラウザに送信することによって、ユーザと相互作用することができる。
【0133】
「グラフィカルユーザインターフェース」もしくは「GUI」という用語は、1つまたはそれを上回るグラフィカルユーザインターフェース、および特定のグラフィカルユーザインターフェースのディスプレイのそれぞれを表すために、単数形または複数形で使用されてもよい。したがって、GUIは、ウェブブラウザ、タッチスクリーン、または情報を処理して情報結果を効率的にユーザに提示する、コマンドラインインターフェース(CLI)を含むが、それらに限定されない、任意のグラフィカルユーザインターフェースを表してもよい。一般に、GUIは、ビジネススイートユーザによって操作可能な双方向フィールド、プルダウンリスト、およびボタン等の、いくつかまたは全てがウェブブラウザと関連付けられる複数のユーザインターフェース(UI)要素を含んでもよい。これらおよび他のUI要素は、ウェブブラウザの機能に関係付けられ得る、またはそれらを表してもよい。
【0134】
本明細書に説明される主題の実装は、例えば、データサーバとして、バックエンド構成要素を含む、またはミドルウェア構成要素、例えば、アプリケーションサーバを含む、もしくはフロントエンド構成要素、例えば、それを通してユーザが本明細書に説明される主題の実装と相互作用することができる、グラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含む、もしくは1つまたはそれを上回るそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせを含む、コンピュータシステムで実装されることができる。本システムの構成要素は、有線および/または無線デジタルデータ通信の任意の形態もしくは媒体、例えば、通信ネットワークによって、相互接続されることができる。通信ネットワークの実施例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、Worldwide Interoperability for Microwave Access(WIMAX)、例えば、802.11a/b/g/nおよび/または802.20を使用する無線ローカリエリアネットワーク(WLAN)、インターネットの全体または一部、ならびに/もしくは1つまたはそれを上回る場所における1つもしくは複数の任意の他の通信システムを含む。ネットワークは、ネットワークアドレスの間で、例えば、インターネットプロトコル(IP)パケット、フレームリレーフレーム、非同期転送モード(ATM)セル、音声、ビデオ、データ、および/または他の好適な情報と通信してもよい。
【0135】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、概して、相互から遠隔にあり、典型的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で作動し、相互にクライアント−サーバ関係を有する、コンピュータプログラムによって生じる。
【0136】
いくつかの実装では、ハードウェアおよび/またはソフトウェアの両方である、コンピュータシステムの構成要素のうちのいずれかもしくは全ては、アプリケーションプログラミングインターフェース(API)および/またはサービス層を使用して、相互ならびに/もしくはインターフェースとインターフェースをとってもよい。APIは、ルーチン、データ構造、およびオブジェクトクラスの仕様を含んでもよい。APIは、コンピュータ言語非依存または依存のいずれかであり、完全インターフェース、単一の機能、またはAPIのセットさえも指し得る。サービス層は、ソフトウェアサービスをコンピュータシステムに提供する。コンピュータシステムの種々の構成要素の機能性は、本サービス層を使用して、全てのサービス消費者のためにアクセス可能であり得る。ソフトウェアサービスは、定義されたインターフェースを通して、再利用可能な定義されたビジネス機能性を提供する。例えば、インターフェースは、JAVA(登録商標)、C++、または拡張マークアップ言語(XML)形式もしくは他の好適な形式でデータを提供する他の好適な言語で書かれたソフトウェアであってもよい。APIおよび/またはサービス層は、コンピュータシステムの他の構成要素に関連して、一体ならびに/もしくは独立型構成要素であってもよい。また、サービス層の任意または全ての部分は、本開示の範囲から逸脱することなく、別のソフトウェアモジュール、企業アプリケーション、もしくはハードウェアモジュールの子またはサブモジュールとして実装されてもよい。
【0137】
本明細書は多くの具体的実装詳細を含有するが、これらは、任意の発明の範囲または請求され得るものの範囲に対する制限として解釈されるべきではなく、むしろ、特定の発明の特定の実装に特異的であり得る特徴の説明として解釈されるべきである。別個の実装との関連で本明細書に説明される、ある特徴はまた、単一の実装で組み合わせて実装されることもできる。逆に、単一の実装との関連で説明される種々の特徴もまた、別個に、または任意の好適な副次的組み合わせにおいて、複数の実装で実装されることもできる。また、特徴は、ある組み合わせにおいて作用するものとして上記で説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つまたはそれを上回る特徴は、ある場合には、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせもしくは副組み合わせの変形例を対象とし得る。
【0138】
本主題の特定の実装が説明されている。他の実装、説明される実装の改変、および順列は、当業者に明白となるような以下の請求項の範囲内である。動作は、特定の順序において図面または請求項で描写されるが、これは、そのような動作が、示される特定の順序において、もしくは連続順序において行われること、または望ましい結果を達成するために、全ての図示される動作が行われること(いくつかの動作が随意と見なされ得る)を要求するものとして、理解されるべきではない。ある状況では、マルチタスクおよび並列処理が、有利であり得る。
【0139】
また、上記で説明される実装における種々のシステムモジュールならびに構成要素の分離および/または統合は、全ての実装においてそのような分離および/または統合を要求するものとして理解されるべきではなく、説明されるプログラム構成要素およびシステムは、概して、単一のソフトウェア製品にともに組み込まれ得る、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0140】
したがって、例示的実装の上記の説明は、本開示を定義または制約しない。他の変更、代用、および改変も、本開示の精神ならびに範囲から逸脱することなく、可能である。