定期注文詳細画面 基本情報の編集
会員が定期注文のポイント予約、配送サイクルの変更、クーポンの使用、支払い方法の変更、次回配送予定日を変更する画面です。
各機能について
ポイント利用予約
ポイント利用を予約できます。
ポイント利用、ポイント予約機能をどちらも「有効」にしている場合のみ利用できる機能です (管理画面から制御可能)
ポイントの利用を予約することで、従来価格からポイント消費分 (1ポイント = 1円 ) を値引いた価格で購入できます。
所持ポイントが指定ポイントを下回る場合、従来価格での注文となりますのでご注意ください。
ポイント有効期限確認
次回の受注が作成される日までにポイントが有効であるかを確認できます。
クーポン利用予約
クーポン利用を予約できます。
配送サイクル設定
定期注文の配送サイクルを変更できます。
定期配送サイクルの変更を「許可する」にしている場合のみ利用できる機能です。(管理画面から制御可能です)
次回配送予定日をサイクルに合わせるを「許可する」に設定しているとき、「はい」にチェックを入れた状態で配送サイクルを変更すると、前回受注の配送予定日をもとに定期受注の次回配送予定日と次回発送予定日を再計算します。
支払い方法変更
定期注文の支払い方法を変更できます。
支払い方法の変更を許可するにしているかつ、支払い方法管理でマイページへの表示を有効にしている支払い方法が1つ以上存在する場合のみ利用できる機能です。 (管理画面から制御可能)
次回配送予定日の変更
次回受注の配送予定日を変更できます。
次回配送予定日の変更を許可するにしている場合のみ利用できる機能です。 (管理画面から制御可能)
次回配送のスキップ
次回のお届けをスキップできます。
次回配送のスキップを許可するにしている場合のみ利用できる機能です。 (管理画面から制御可能)
ショップのパス
ドメイン/shop/customer/subs_orders/定期受注ID/edit
テーマ管理のファイルパス
ec_force/shop/customer/subs_orders/edit.html.liquid
ec_force/shop/customer/subs_orders/edit.html+smartphone.liquid
JS タグ
{{ 'shop/customer/subs_orders' | javascript_include_tag }}
必要なコンポーネント
※任意とあるもの以外はシステム上必要なコンポーネントとなりますので、必ず使用するようにしてください。
{{ 'shop/customer/subs_orders' | javascript_include_tag }}
<!-- (PCの場合)定期注文詳細タブ(任意) -->
{% assign template = 'shop/customer/subs_orders' %}
{% include 'ec_force/shop/customer/subs_orders/shared/nav.html' %}
<!-- (SPの場合)定期注文詳細タブ(任意) -->
{% assign template = 'shop/customer/subs_orders' %}
{% include 'ec_force/shop/customer/subs_orders/shared/nav.html+smartphone' %}
<!-- 定期注文詳細画面 基本情報の編集コンテナ -->
<div id='subs-order-edit-view'>
<!-- フラッシュメッセージ -->
{{ 'notice' | flash: 'alert alert-success', 'text' }}
{{ 'alert' | flash: 'alert alert-danger', 'text' }}
{{ 'error' | flash: 'alert alert-danger', 'text' }}
<!-- ポイント利用予約 -->
{% if base_info.use_point? and base_info.use_point_reservation? %}
<div id='point-redeem-view'>
<form action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<!-- 現在の所持ポイント -->
{{ current_customer.available_point_total | number_with_delimiter }}
<!-- ポイント利用上限 -->
{{ base_info.point_event_redeem.point_upper_limit | number_with_delimiter }}
<!-- ポイント利用下限 -->
{{ base_info.point_event_redeem.point_lower_limit | number_with_delimiter }}
<!-- ポイント利用予約入力フォーム -->
<label for="subs_order_point_redeem">ポイント利用</label>
<!-- ポイント有効期限確認 -->
{% if subs_order.active_point_for_next_auth_order? %}
<label>
<input name="subs_order[all_point_redeem]" type="hidden" value="0" /><input type="checkbox" value="1" name="subs_order[all_point_redeem]" id="subs_order_all_point_redeem" {% if subs_order.all_point_redeem == true %}checked{% endif %}/>
ポイントを全額消費する
</label>
<input class="validate[required,custom[integer],min[0],max[{{ point_upper_limit }}]]" type="text" value="{{ subs_order.point_redeem }}" name="subs_order[point_redeem]" id="subs_order_point_redeem" {% if subs_order.all_point_redeem == true %}disabled{% endif %} />
<!-- 次回のみポイント利用フラグ -->
<!-- 次回のみポイントを利用する -->
<label>
<input type="radio" name="subs_order[onetime_point_redeem]" id="subs_order_onetime_point_redeem_true" value="1" {% if subs_order.onetime_point_redeem == true %}checked{% endif %}>
次回の注文のみにポイントを利用する
</label>
<!-- 次回以降もポイントを利用する -->
<label>
<input type="radio" name="subs_order[onetime_point_redeem]" id="subs_order_onetime_point_redeem_false" value="0" {% if subs_order.onetime_point_redeem == false %}checked{% endif %}>
次回以降の注文すべてにポイントを利用する
</label>
{% else %}
<input type="text" value="{{ subs_order.point_redeem }}" name="subs_order[point_redeem]" id="subs_order_point_redeem" disabled="true" />
{% endif %}
<!-- 送信リンク -->
{% if subs_order.active_point_for_next_auth_order? %}
<input type="submit" name="commit" value="保存" data-disable-with="保存中..." />
{% endif %}
<!-- 戻るリンク -->
<a href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
</div>
{% endif %}
<!-- クーポン利用 -->
<div id='coupon-view'>
<form action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<!-- クーポンコード入力フォーム -->
<label for="subs_order_coupon_code">クーポンコード</label>
{% if subs_order.coupon_id %}
<p>使用中</p>
{% else %}
<input type="text" name='subs_order[coupon_code]' value="{{ subs_order.coupon_code }}" id="subs_order_coupon_code" />
{% endif %}
<!-- 送信リンク、外すリンク -->
{% if subs_order.coupon_id %}
<a data-confirm="本当に外しますか?" rel="nofollow" href="javascript:remove_coupon.submit();">外す</a>
{% else %}
<input type="submit" name="commit" value="保存" data-disable-with="保存中..." />
{% endif %}
<!-- 戻るリンク -->
<a href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
<form name="remove_coupon" action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="subs_order[coupon_code]">
</form>
</div>
<!-- 配送サイクル設定 -->
{% if base_info.delivery_cycle_changeable? %}
<div id='shipping-cycle-edit-view'>
<form action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put" />
<input value="true" type="hidden" name="subs_order[payment_schedule_locked]" id="subs_order_payment_schedule_locked">
<!-- 配送サイクルの指定 -->
<label for="subs_order_payment_schedule">配送サイクル</label>
<select name="subs_order[payment_schedule]" id="subs_order_payment_schedule">
{% if available_payment_schedules contains 'date' %}
<option value="date" {% if subs_order.payment_schedule == "date" %}selected{% endif %}>日付で指定</option>
{% endif %}
{% if available_payment_schedules contains 'term' %}
<option value="term" {% if subs_order.payment_schedule == "term" %}selected{% endif %}>間隔で指定</option>
{% endif %}
{% if available_payment_schedules contains 'day_of_week' %}
<option value="day_of_week" {% if subs_order.payment_schedule == "day_of_week" %}selected{% endif %}>曜日で指定</option>
{% endif %}
</select>
<!-- 日付で指定 -->
<div id='container_delivery_schedule_by_date'>
<label for="subs_order_scheduled_to_be_delivered_every_x_month">何ヶ月ごとの何日に配送</label>
<select class="validate[required]" name="subs_order[scheduled_to_be_delivered_every_x_month]" id="subs_order_scheduled_to_be_delivered_every_x_month">
{% if subs_order.available_delivery_dates.size > 0 %}
{% assign months = subs_order.available_delivery_dates | map: 'month' %}
{% for m in months %}
<option value="{{ m }}" {% if m == subs_order.scheduled_to_be_delivered_every_x_month %}selected{% endif %}>{{ m }}ヶ月</option>
{% endfor %}
{% else %}
{% for m in (1..12) %}
<option value="{{ m }}" {% if subs_order.scheduled_to_be_delivered_every_x_month == m %}selected{% endif %}>{{ m }}ヶ月</option>
{% endfor %}
{% endif %}
</select>
ごとの
<select class="validate[required]" name="subs_order[scheduled_to_be_delivered_on_xth_day]" id="subs_order_scheduled_to_be_delivered_on_xth_day">
{% for d in (1..28) %}
<option value="{{ d }}" {% if subs_order.scheduled_to_be_delivered_on_xth_day == d %}selected{% endif %}>{{ d }}日</option>
{% endfor %}
<option value="99" {% if subs_order.scheduled_to_be_delivered_on_xth_day == 99 %}selected{% endif %}>末日</option>
</select>
に配送
</div>
<!-- 間隔で指定 -->
<div id='container_delivery_schedule_by_term'>
<label for="subs_order_scheduled_to_be_delivered_every_x_day">何日ごとに配送</label>
<select class="validate[required]" name="subs_order[scheduled_to_be_delivered_every_x_day]" id="subs_order_scheduled_to_be_delivered_every_x_day">
{% if subs_order.available_delivery_intervals.size > 0 %}
{% assign intervals = subs_order.available_delivery_intervals | map: 'day' %}
{% for interval in intervals %}
<option value="{{ interval }}" {% if interval == subs_order.scheduled_to_be_delivered_every_x_day %}selected{% endif %}>{{ interval }}日</option>
{% endfor %}
{% else %}
{% assign least_interval = subs_order_settings['require_at_least_x_days_between_1st_and_2nd_orders'] %}
{% for interval in (least_interval..30) %}
<option value="{{ interval }}" {% if interval == subs_order.scheduled_to_be_delivered_every_x_day %}selected{% endif %}>{{ interval }}日</option>
{% endfor %}
<option value="60" {% if subs_order.scheduled_to_be_delivered_every_x_day == 60 %}selected{% endif %}>60日</option>
<option value="90" {% if subs_order.scheduled_to_be_delivered_every_x_day == 90 %}selected{% endif %}>90日</option>
{% endif %}
</select>
ごとに配送
</div>
<!-- 曜日で指定 -->
<div id='container_delivery_schedule_by_day_of_week'>
<label for="scheduled_to_be_delivered_every_x_month">何ヶ月ごとの何回目の何曜日に配送</label>
<select class="validate[required]" name="subs_order[scheduled_to_be_delivered_every_x_month]" id="subs_order_scheduled_to_be_delivered_every_x_month">
{% if subs_order.available_delivery_dates.size > 0 %}
{% assign months = subs_order.available_delivery_dates | map: 'month' %}
{% for m in months %}
<option value="{{ m }}" {% if subs_order.scheduled_to_be_delivered_every_x_month == m %}selected{% endif %}>{{ m }}ヶ月</option>
{% endfor %}
{% else %}
{% for m in (1..12) %}
<option value="{{ m }}" {% if subs_order.scheduled_to_be_delivered_every_x_month == m %}selected{% endif %}>{{ m }}ヶ月</option>
{% endfor %}
{% endif %}
</select>
ごとの
<select class="validate[required]" name="subs_order[scheduled_to_be_delivered_on_xth_day_of_week]" id="subs_order_scheduled_to_be_delivered_on_xth_day_of_week">
{% for n in (1..4) %}
<option value="{{ n }}" {% if subs_order.scheduled_to_be_delivered_on_xth_day_of_week == n %}selected{% endif %}>{{ n }}</option>
{% endfor %}
</select>
回目の
<select class="validate[required]" name="subs_order[scheduled_to_be_delivered_every_x_day_of_week]" id="subs_order_scheduled_to_be_delivered_every_x_day_of_week">
{% for d in (0..6) %}
<option value="{{ d }}" {% if subs_order.scheduled_to_be_delivered_every_x_day_of_week == d %}selected{% endif %}>{{ day_of_weeks[d] }}</option>
{% endfor %}
</select>
曜日に配送
</div>
<!-- 次回配送予定日をサイクルに合わせる -->
{% if base_info.scheduled_to_be_delivered_at_based_on_last_order? and subs_order.last_order != null %}
<label>
<input checked name="subs_order[recalculate_scheduled_to_be_delivered_at_based_on_last_order]" type="radio" value="1">
はい
</label>
<label>
<input name="subs_order[recalculate_scheduled_to_be_delivered_at_based_on_last_order]" type="radio" value="0">
いいえ
</label>
{% endif %}
<!-- 現在の次回配送予定日 -->
{{ subs_order.scheduled_to_be_delivered_at | date: "%Y-%m-%d" }}
<!-- 送信リンク -->
<input type="submit" name="commit" value="保存" data-disable-with="保存中..." />
<!-- 戻るリンク -->
<a href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
</div>
{% endif %}
<!-- 支払い方法変更 -->
{% if base_info.payment_method_changeable_on_mypage? %}
{% unless payment_methods.size == 0 %}
<div id="payment-method-edit-view">
<form action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<!-- 支払い方法変更 -->
<label for="subs_order_payment_attributes_payment_method_id">支払方法</label>
<select name="subs_order[payment_attributes][payment_method_id]" id="subs_order_payment_attributes_payment_method_id">
{% for payment_method in payment_methods %}
<option value="{{ payment_method.id }}" {% if subs_order.payment_method.id == payment_method.id %}selected{% endif %}>{{ payment_method.name }}</option>
{% endfor %}
</select>
<!-- クレジットカード選択 -->
<div id="credit-card">
<label for="subs_order_payment_attributes_source_id">クレジットカード</label>
<select class="validate[required]" name="subs_order[payment_attributes][source_id]" id="subs_order_payment_attributes_source_id">
<option value="">--</option>
{% for card in credit_cards %}
<option value="{{ card.id }}" {% if selected_credit_card.id == card.id %}selected{% endif %}>{{ card.display_number_with_default }}</option>
{% endfor %}
</select>
<input value="EcForce::CreditCard" type="hidden" name="subs_order[payment_attributes][source_type]" id="subs_order_payment_attributes_source_type">
{% if base_info.credit_card_editable? %}
<a href="/shop/customer/cards">クレジット新規登録はこちら</a>
{% endif %}
</div>
<!-- 分割回数 -->
<div class="form-group" style="display: none;">
<label for="subs_order_payment_attributes_payment_times">分割回数</label>
<select name="subs_order[payment_attributes][payment_times]" id="subs_order_payment_attributes_payment_times">
{% for i in (2..24) %}
<option value="{{ i }}" {% if subs_order.payment.payment_times == i %}selected{% endif %}>{{ i }}</option>
{% endfor %}
</select>
</div>
<!-- 送信リンク -->
<input type="submit" name="commit" value="保存" data-disable-with="保存中...">
<!-- 戻るリンク -->
<a href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
</div>
{% endunless %}
{% endif %}
<!-- 次回配送予定日の変更 -->
{% if base_info.scheduled_to_be_delivered_at_changeable_on_mypage? %}
<div id="scheduled-to-be-delivered-view">
<form class="form-horizontal" action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<input type='hidden' id='option_scheduled_to_be_delivered_at' value={{option_scheduled_to_be_delivered_at}}>
<input type='hidden' id='current_scheduled_to_be_delivered_at' value={{subs_order.scheduled_to_be_delivered_at}}>
<!-- 次回配送予定日の選択 -->
<label for="subs_order_scheduled_to_be_delivered_at">次回配送予定日</label>
<select class='validate[required]' id='subs_order_scheduled_to_be_delivered_at' name="subs_order[scheduled_to_be_delivered_at]">
{% assign a = subs_order.scheduled_to_be_delivered_at | date: "%Y-%m-%d" %}
<option value={{ a }} selected>{{ a }}(現在の次回配送予定日)</option>
{% for d in option_scheduled_to_be_delivered_at %}
{% assign b = d | date: "%Y-%m-%d" %}
{% unless a == b %}
<option value={{ d }}>{{ d }}</option>
{% endunless %}
{% endfor %}
</select>
<!-- 現在の次回配送予定日 -->
{{ subs_order.scheduled_to_be_delivered_at | date: "%Y-%m-%d" }}
<!-- 送信リンク -->
<input type="submit" name="commit" value="保存" data-disable-with="保存中..." />
<!-- 戻るリンク -->
<a href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
</div>
{% endif %}
<!-- 定期お届け時間の変更 -->
{% if base_info.scheduled_delivery_time_changeable_on_mypage? and subs_order.available_delivery_times.size > 0 %}
<div id="scheduled-delivery-time-view">
<form class="form-horizontal" action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<!-- 定期お届け時間の選択 -->
<label for="subs_order_scheduled_delivery_time">次回お届け時間</label>
<select class='' id='subs_order_scheduled_delivery_time' name="subs_order[scheduled_delivery_time]">
{% assign available_times = subs_order.available_delivery_times | map: 'time' %}
<option value="">指定なし</option>
{% for at in available_times %}
<option value="{{ at }}" {% if subs_order.scheduled_delivery_time == at %}selected{% endif %}>{{at}}</option>
{% endfor %}
</select>
<!-- 現在のお届け時間 -->
{% if subs_order.scheduled_delivery_time != "" %}
{{ subs_order.scheduled_delivery_time }}
{% endif %}
<!-- 送信リンク -->
<input type="submit" name="commit" value="保存" data-disable-with="保存中..." />
<!-- 戻るリンク -->
<a href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
</div>
{% endif %}
<!-- 次回配送のスキップの変更 -->
{% if base_info.skip_next_delivery_on_mypage? %}
<div id="skip-next-delivery-view">
<form class="form-horizontal" action="/shop/customer/subs_orders/{{ subs_order.number }}" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put">
<input value="true" type="hidden" name="subs_order[skip_next_scheduled_delivery]" id="subs_order_skip_next_scheduled_delivery">
<!-- 現在の次回配送予定日 -->
{{ subs_order.scheduled_to_be_delivered_at | date: "%Y-%m-%d" }}
<!-- スキップした後の次回配送予定日 -->
{% if subs_order.skip_next_scheduled_delivery? == false %}
{{ subs_order.next_scheduled_to_be_delivered_at | date: "%Y-%m-%d" }}
{% endif %}
<!-- 送信リンク -->
<input type="submit" name="commit" value="配送をスキップ" class="btn btn-primary btn-sm" {% if subs_order.skip_next_scheduled_delivery? %} disabled {% endif %} />
<!-- 戻るリンク -->
<a class="btn btn-sm btn-default" href="/shop/customer/subs_orders/{{ subs_order.number }}">戻る</a>
</form>
</div>
{% endif %}
</div>
画面イメージ
※こちらは、上記で紹介しているコンポーネントのコードにデフォルトデザインをCSSであてたイメージになります。コンポーネントのコードのみだと、このような表示にはなりませんのでご注意ください。