ebisumart:導入手順とタグ設置
ebisumart をお使いのストアに AnyGift を導入するときに、あなたのストアで行う設定と、ショップ画面へのタグ設置の方法を説明します。導入後の画面や注文の動きは ebisumart:画面表示と注文の流れ をご覧ください。
タグの設置は AnyGift で行うこともできます
このページのタグ設置(テンプレートの編集)は、AnyGift 側で無償で行うこともできます。導入担当者へご相談ください。
導入の流れ
- ebisumart で自由項目を設定し、AnyGift 担当窓口へ情報を共有する(あなたのストア)
- AnyGift の ebisumart Apps を導入する(AnyGift 担当窓口)
- テンプレートにタグを設置する(あなたのストア、または AnyGift 担当窓口)
- テスト注文で動作を確認する
手順1の自由項目の設定が終わっていないと、連携の処理が正しく動きません。 必ず先に設定してください。
ステップ1: 自由項目を設定する
AnyGift は、ebisumart の「自由項目」を使って、eギフトの対象商品かどうかや、eギフト注文の状態・メッセージなどをやり取りします。
商品の自由項目
ebisumart の管理画面で システム設定 > 自由項目管理 > 自由項目登録・照会 を開き、プルダウンが「商品」になっていることを確認して、次の項目を追加します。
| 設定 | 値 |
|---|---|
| 画面表示名 | AnyGift対象商品 |
| 利用フラグ | 使用する |
| 項目入力形式 | プルダウン |
| 項目選択肢 | 0:対象外,1:対象 |
| 属性 | 数値 |
受注ヘッダの自由項目
プルダウンを「受注ヘッダ」に切り替え、次の5つの項目を追加します。いずれも利用フラグは「使用する」にします。
| 画面表示名 | 項目入力形式 | 設定 |
|---|---|---|
| AnyGiftステータス | プルダウン | 項目選択肢 :未設定,0:受け取り入力待ち,1:受け取り設定完了,2:受け取り期限切れ,3:キャンセル済み、属性 数値(「未設定」には値を入れない) |
| AnyGift注文ID | 1行テキスト | 属性 半角、最大文字数 100 |
| 贈り主名 | 1行テキスト | 属性 全角、最大文字数 60 |
| メッセージ | テキストエリア | 横幅 100、縦幅 4、属性 全角、最大文字数 400 |
| メッセージカードID | 1行テキスト | 属性 半角、最大文字数 100 |
出力自由項目リスト
ショップ画面で AnyGift が自由項目の値を読めるように、システム設定 > システム設定マスタ > 初期設定 で次の2つを設定します。
- m:id「HIDDEN_DATA_TAGS_HERE」出力自由項目リスト(商品): 「AnyGift対象商品」の自由項目のキーを指定します
- m:id「HIDDEN_DATA_TAGS_HERE」出力自由項目リスト(受注ヘッダ): 「AnyGiftステータス」「メッセージカードID」「贈り主名」「メッセージ」の自由項目のキーを指定します
AnyGift 担当窓口へ共有する情報
| 情報 | 内容 |
|---|---|
| ebisumart No | ログイン時に入力する、ストアを特定する番号 |
| ストアのドメイン | 例:example.com |
| 環境 | デモ環境か本番環境か |
| 自由項目のテーブル項目名 | 上で設定した各項目の項目名(例:AnyGift対象商品 ITEM.FREE_ITEM_1、AnyGiftステータス ORDER_H.FREE_ITEM_1) |
ステップ2: ebisumart Apps の導入
情報をいただいたら、AnyGift 担当窓口が AnyGift の ebisumart Apps をインストールします。インストールすると、ebisumart の注文の作成・キャンセルやメール送信のタイミングで AnyGift が連携処理を行えるようになります。
ステップ3: テンプレートにタグを設置する
ebisumart の コンテンツ管理 > テンプレート管理 > view で、各テンプレートを編集します。PC 用(userweb)とスマートフォン用(smartphone)の両方を編集してください。コード内の {storeId} は、AnyGift から連絡したストアIDに置き換えます。
共通スクリプト
商品詳細(item_detail.xhtml)の <head> 内
<script type="text/javascript">
window.AnyGiftApiIntegration = {
storeId: "{storeId}",
};
</script>
<script defer src="https://d1ioo46r7yo3cy.cloudfront.net/api-integration.js"></script>
カート共通ヘッダー(header_cart.xhtml)の <body> 開始タグの直後(<head> 内では読み込まれません)
<script type="text/javascript">
window.AnyGiftApiIntegration = {
storeId: "{storeId}",
// eギフトのときに隠す決済手段(data-anygift-payment-method を付けた要素の中のセレクター)
itemsForPayment: [
'tbody td input[value="1"]',
'tbody td input[value="3"]',
],
// 上の要素を含む、実際に隠す要素
hiddenItemForPayment: 'div',
// 通常注文のときに隠す自由項目(data-anygift-free-items を付けた要素の中のセレクター)
hiddenItemsForFreeItem: [
"tbody tr:nth-child(2)",
"tbody tr:nth-child(3)",
],
// eギフト注文の確認画面で隠す自由項目
hiddenItemsInConfirmIfEGiftOrder: [],
};
</script>
<script defer src="https://d1ioo46r7yo3cy.cloudfront.net/api-integration.js"></script>
header_cart.xhtml がない場合は、cart_index.xhtml・cart_seisan.xhtml・cart_confirm.xhtml・cart_result.xhtml の <body> 直後に入れてください。
表示位置の目印(マーカー)
商品詳細・カート関連の各テンプレートの <body> 直後に、自由項目を出力するタグを入れます。
<span m:id='HIDDEN_DATA_TAGS_HERE'></span>
そのうえで、テンプレートごとに次の目印を入れます。
| テンプレート | 入れる目印 | 表示されるもの |
|---|---|---|
| item_detail.xhtml | <div data-anygift-banner-item></div> |
「eギフトで贈れる」バナー |
| cart_index.xhtml | <div data-anygift-banner-cart></div> |
「eギフトで贈れる」バナー |
| cart_seisan.xhtml | <div data-anygift-checkbox></div> |
「住所を知らない相手にeギフトで送る」チェックボックス(お届け先を別住所にするチェックボックスと同じ親要素の中に置きます) |
| cart_confirm.xhtml | <div data-anygift-message-card></div> |
確認画面のメッセージカード |
| cart_result.xhtml | <div data-anygift-complete></div> |
eギフトの受取URL などの購入完了表示 |
購入手続き画面(cart_seisan.xhtml)の要素に属性を付ける
| 付ける場所 | 属性 | 目的 |
|---|---|---|
お届け先情報を囲む要素(id="SEND_TO_ANOTHER_ADDRESS_TABLE" など) |
data-anygift-another-address |
eギフトを選んだときにお届け先の入力欄を隠す |
| 決済手段のリストを囲む要素 | data-anygift-payment-method |
eギフトを選んだときに、itemsForPayment で指定した決済手段(クレジットカード以外)を隠す |
| 次へ進むボタン | data-anygift-form-button |
メッセージ・贈り主名が空のまま進めないようにする |
| 自由項目を囲む要素(cart_confirm.xhtml にも付ける) | data-anygift-free-items |
不要な自由項目を隠す |
例えば次の設定では、代金引換と銀行振込の行が隠れ、クレジットカードだけが残ります。
<table data-anygift-payment-method>
<tbody>
<tr>
<th>決済手段</th>
<td>
<div><input type="radio" value="1"><label>代金引換</label></div>
<div><input type="radio" value="2"><label>クレジットカード</label></div>
<div><input type="radio" value="3"><label>銀行振込</label></div>
</td>
</tr>
</tbody>
</table>
確認画面(cart_confirm.xhtml)
eギフト注文のときに確認画面で隠したい要素には、クラス名 anygift-hidden-element を付けます。例えば、決済手段の変更画面へ戻るボタンなど、選んだ内容を変えられてしまう要素に付けます。
<div class="anygift-hidden-element">eギフト注文のときに隠したい要素</div>
購入履歴(member_history.xhtml)
eギフト注文では、マイページの購入履歴から納品書(配送先住所が載ったもの)をダウンロードできないようにします。{AnyGiftステータスの自由項目番号} は、受注ヘッダの「AnyGiftステータス」の番号に置き換えます。
<span m:id="IF_ORDER_H_FREE_VALUE" m:free_item_no="{AnyGiftステータスの自由項目番号}" m:NOT="">
<a m:id="NOUHINSHO_LINK_TAG" href="#" class="button positive small delivery_slip">納品書ダウンロード</a>
</span>
管理画面の受注編集画面に注意書きを出す(任意)
スタッフが誤って配送先を購入者に伝えないよう、eギフト注文の受注編集画面に注意書きを出せます。次の内容で client_script.js を作り、anyGiftStatusKey をあなたの「AnyGiftステータス」の自由項目キーに変えて、テンプレート管理の /view/admin に追加します。
(function () {
const anyGiftStatusKey = 'FREE_ITEM1'; // AnyGiftステータスの自由項目キーに変更
function showEGiftAlert() {
const anyGiftStatusElement = document.getElementById(`ORDER_H.${anyGiftStatusKey}`);
const isEGift = anyGiftStatusElement.querySelector('option[selected]').value !== '';
const messageArea = document.getElementById('fragment-4');
if (!isEGift || messageArea == null) {
return;
}
messageArea.insertAdjacentHTML(
'afterbegin',
'<div style="color: red; border: 1px solid red; padding: 2px; margin-bottom: 4px;">この注文はeギフト注文のため、送付先情報を注文者に伝えることは禁止です。</div>',
);
}
switch (ebisumartExecutingAdminPageId) {
case 'order/order_input':
showEGiftAlert();
break;
default:
break;
}
})();
Amazon Pay でも eギフトを購入できるようにする
ebisumart で Amazon Pay をお使いの場合は、eギフトも Amazon Pay で購入できるようにできます。
ご利用の条件
- 上のタグ設置が済んでいること
- Amazon Pay V2 をお使いであること
- Amazon Pay で非同期オーソリを使っていないこと(詳しくは ebisumart の提供元へご確認ください)
タグを入れる
header_cart.xhtml に共通スクリプトを入れている場合は、cart_seisan$amazon_payments_v2.xhtml の </body> の直前に次を入れます(Amazon Pay では決済手段を隠さないため)。
<script type="text/javascript">
window.AnyGiftApiIntegration.itemsForPayment = undefined;
</script>
header_cart.xhtml がない場合は、cart_seisan$amazon_payments_v2.xhtml と cart_confirm$amazon_payments_v2.xhtml の <body> 直後に次を入れます。
<span m:id='HIDDEN_DATA_TAGS_HERE'></span>
<script type="text/javascript">
window.AnyGiftApiIntegration = {
storeId: "{storeId}",
hiddenItemForPayment: 'div',
hiddenItemsForFreeItem: [],
hiddenItemsInConfirmIfEGiftOrder: [],
};
</script>
<script defer src="https://d1ioo46r7yo3cy.cloudfront.net/api-integration.js"></script>
目印と属性を入れる
cart_seisan$amazon_payments_v2.xhtml: チェックボックスを表示したい位置に次を入れ、次へ進むボタンにdata-anygift-form-buttonを付けます。Amazon Pay の画面では、チェックボックスがほかの入力欄から独立した表示になります
<div>
<div data-anygift-checkbox></div>
</div>
<div data-anygift-another-address></div>
cart_confirm$amazon_payments_v2.xhtml: 隠したい要素にクラス名anygift-hidden-elementを付け、メッセージカードを表示したい位置に<div data-anygift-message-card></div>を入れます
ステップ4: テスト注文で確認する
| 場面 | 確認すること |
|---|---|
| 表示 | eギフト対象の商品で、商品詳細とカートに「eギフトで贈れる」バナーが出る。マイページの購入履歴で eギフト注文の配送先住所(納品書)が出ない |
| 購入手続き | 「住所を知らない相手にeギフトで送る」を選ぶと、メッセージカードの選択欄が出る。メッセージ・贈り主名が空だと先へ進めない。決済手段がクレジットカード(と Amazon Pay)だけになる。決済手段を選ばないと先へ進めない |
| 確認画面 | eギフト注文のとき、決済手段の変更など選んだ内容を変える画面へ戻るボタンが出ない |
| 購入完了 | 購入完了画面に受取URL が出る。ebisumart の購入完了メールは送られず、AnyGift からの購入完了メールだけが届く |
| 受取 | 受取URL から住所を入力すると、ebisumart の受注の送付先情報と「AnyGiftステータス」が更新される |
| キャンセル | ebisumart で受注を取り消すと、「AnyGiftステータス」が「キャンセル済み」になる |
| 受取期限切れ | 期限の前日に購入者へリマインドメールが届く。期限が切れると「AnyGiftステータス」が「受け取り期限切れ」になる |
| 発送 | eギフト注文では ebisumart の発送完了メールが送られない |
ラッピングなどのオプションも、あなたの基幹システムへ正しく連携されるか確認してください。
「受注送付先作成」をお使いの場合
ebisumart の「受注送付先作成」の設定を使っていると、受取後に送付先情報が更新されない場合があります。既存の運用に影響がなければ、この設定をオフにしてください。オンのまま使う場合は追加の調整が必要になることがあるため、事前に AnyGift 担当窓口へお知らせください。