複数のお届け先入力フォーム(部分テンプレート)
注文情報入力画面で利用する各入力フォーム用部分テンプレートです。
注文情報入力画面で include して利用します。(注文情報入力画面以外では利用できません)
テーマ管理のファイルパス
ec_force/shop/orders/_view_multiple_shipping_information_form_data.html.liquid
ec_force/shop/orders/_view_multiple_shipping_information_form_data.html+smartphone.liquid
必要なコンポーネント
任意とあるもの以外はシステム上必要なコンポーネントとなりますので、必ず使用するようにしてください。
<!-- 部分テンプレート(複数のお届け先の入力フォームデータ及びフォームテンプレート) -->
{% if multiple_shipping_is_available %}
<!-- 複数のお届け先フォームデータ -->
<div id="multiple-shipping-raw-form">
{% for shipping_address in order.shipping_addresses_without_deleted %}
<!-- お届け先ごとのフォームデータ枠(必須タグ) -->
<div data-shipping-address-id="{{ shipping_address.id }}" data-form-index="{{ forloop.index0 }}">
{% assign index = forloop.index0 %}
<button class="delete_shipping_address" type="button">削除</button>
<!-- お届け先住所の選択 -->
<label>お届け先住所</label>
<select class="shipping_addresses_id" name="order[shipping_addresses_attributes][{{ index }}][shipping_address_id]">
<option value="same" {% if selected_shipping_addresses_value[index] == blank or selected_shipping_addresses_value[index] == 'same' %}selected{% endif %}>請求先住所と同じ</option>
{% if customer_signed_in %}
{% for sa in current_customer.shipping_addresses %}
<option value="{{ sa.id }}" {% if selected_shipping_addresses_value[index] == sa.id %}selected{% endif %}>
{{ sa.full_name }} | 〒{{ sa.full_zip }} {{ sa.full_address }}
</option>
{% endfor %}
{% endif %}
<option value="new" {% if selected_shipping_addresses_value[index] == 'new' %}selected{% endif %}>新しく入力する</option>
</select>
<div id="shipping_address_input_{{ index }}">
<!-- お名前 -->
<label>お名前</label>
{% if shop_form_settings['name_1_field'] %}
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_name01" name="order[shipping_addresses_attributes][{{ index }}][name01]" placeholder="例)山田 花子" value="{{ shipping_address.full_name }}">
{% else %}
<span>姓</span>
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_name01" name="order[shipping_addresses_attributes][{{ index }}][name01]" placeholder="例)山田" value="{{ shipping_address.name01 }}">
<span>名</span>
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_name02" name="order[shipping_addresses_attributes][{{ index }}][name02]" placeholder="例)花子" value="{{ shipping_address.name02 }}">
{% endif %}
<!-- フリガナ -->
<label>フリガナ</label>
{% if shop_form_settings['kana_1_field'] %}
<input type="text" class="validate[required,custom[katakana]]" id="order_shipping_addresses_{{index}}_attributes_kana01" name="order[shipping_addresses_attributes][{{ index }}][kana01]" placeholder="例)ヤマダ ハナコ" value="{{ shipping_address.full_kana }}">
{% else %}
<span>セイ</span>
<input type="text" class="validate[required,custom[katakana]]" id="order_shipping_addresses_{{index}}_attributes_kana01" name="order[shipping_addresses_attributes][{{ index }}][kana01]" placeholder="例)ヤマダ" value="{{ shipping_address.kana01 }}">
<span>メイ</span>
<input type="text" class="validate[required,custom[katakana]]" id="order_shipping_addresses_{{index}}_attributes_kana02" name="order[shipping_addresses_attributes][{{ index }}][kana02]" placeholder="例)ハナコ" value="{{ shipping_address.kana02 }}">
{% endif %}
<!-- 郵便番号 -->
<label>郵便番号</label>
{% if shop_form_settings['zip_1_field'] %}
<span>〒</span>
<input type="tel" class="shipping_addresses_zip01 validate[required,custom[integer],minSize[7]]" id="order_shipping_addresses_{{index}}_attributes_zip01" maxlength="7" name="order[shipping_addresses_attributes][{{ index }}][zip01]" placeholder="1500031" value="{{ shipping_address.full_zip }}">
{% else %}
<span>〒</span>
<input type="tel" class="shipping_addresses_zip01 validate[required,custom[integer],minSize[3]]" id="order_shipping_addresses_{{index}}_attributes_zip01" maxlength="3" name="order[shipping_addresses_attributes][{{ index }}][zip01]" placeholder="150" value="{{ shipping_address.zip01 }}">
<span>−</span>
<input type="tel" class="shipping_addresses_zip02 validate[required,custom[integer],minSize[4]]" id="order_shipping_addresses_{{index}}_attributes_zip02" maxlength="4" name="order[shipping_addresses_attributes][{{ index }}][zip02]" placeholder="0031" value="{{ shipping_address.zip02 }}">
{% endif %}
<!-- 都道府県 -->
<label>都道府県</label>
<select class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_prefecture_name" name="order[shipping_addresses_attributes][{{ index }}][prefecture_id]">
<option value="">選択してください</option>
{% for prefecture in prefectures %}
<option value="{{ prefecture.id }}" {% if shipping_address.prefecture_id == prefecture.id %}selected{% endif %}>{{ prefecture.name }}</option>
{% endfor %}
</select>
<!-- 住所1 -->
<label>{{ shop_form_settings['addr01_label'] }}</label>
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_addr01" name="order[shipping_addresses_attributes][{{ index }}][addr01]" placeholder="{{ shop_form_settings['addr01_placeholder'] }}" value="{{ shipping_address.addr01 }}">
<!-- 住所2 -->
<label>{{ shop_form_settings['addr02_label'] }}</label>
{% if shop_form_settings['addr03'] %}
<input type="text" class="{% if shop_form_settings['addr02_require'] %}validate[required]{% endif %}" id="order_shipping_addresses_{{index}}_attributes_addr02" name="order[shipping_addresses_attributes][{{ index }}][addr02]" value="{{ shipping_address.addr02 }}" placeholder="{{ shop_form_settings['addr02_placeholder'] }}">
{% else %}
<input type="text" class="{% if shop_form_settings['addr02_require'] %}validate[required]{% endif %}" id="order_shipping_addresses_{{index}}_attributes_addr02" name="order[shipping_addresses_attributes][{{ index }}][addr02]"
value="{{ shipping_address.addr02 }}{{ shipping_address.addr03 }}" placeholder="{{ shop_form_settings['addr02_placeholder'] | append: shop_form_settings['addr03_placeholder'] }}">
{% endif %}
<!-- 住所3 -->
{% if shop_form_settings['addr03'] %}
<label>{{ shop_form_settings['addr03_label'] }}</label>
<input type="text" id="order_shipping_addresses_{{index}}_attributes_addr03" name="order[shipping_addresses_attributes][{{ index }}][addr03]" placeholder="{{ shop_form_settings['addr03_placeholder'] }}" value="{{ shipping_address.addr03 }}">
{% endif %}
<!-- 電話番号 -->
<label>電話番号</label>
{% if shop_form_settings['tel_1_field'] %}
<input type="tel" class="validate[required,custom[integer]]" maxlength="12" name="order[shipping_addresses_attributes][{{ index }}][tel01]" value="{{ shipping_address.full_tel }}">
{% else %}
<input type="tel" class="validate[required,custom[integer]]" maxlength="5" name="order[shipping_addresses_attributes][{{ index }}][tel01]" value="{{ shipping_address.tel01 }}">
<span>-</span>
<input type="tel" class="validate[required,custom[integer]]" maxlength="4" name="order[shipping_addresses_attributes][{{ index }}][tel02]" value="{{ shipping_address.tel02 }}">
<span>-</span>
<input type="tel" class="validate[required,custom[integer]]" maxlength="4" name="order[shipping_addresses_attributes][{{ index }}][tel03]" value="{{ shipping_address.tel03 }}">
{% endif %}
<!-- お届け先登録-->
<label for="order_shipping_addresses_{{ index }}_attributes_persist_as_customer_shipping_address">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][persist_as_customer_shipping_address]" value="0">
<input type="checkbox" id="order_shipping_addresses_{{ index }}_attributes_persist_as_customer_shipping_address" name="order[shipping_addresses_attributes][{{ index }}][persist_as_customer_shipping_address]" value="1" {% if shipping_address.persist_as_customer_shipping_address == true %}checked{% endif %}>お届け先登録する
</label>
</div>
<!-- お届け先商品情報 -->
{% assign gift_sets = order.multiple_address_gift_relations_grouped %}
{% if order.gift_sets_for_view_by_index[index] %}
{% assign gift_sets = order.gift_sets_for_view_by_index[index] %}
{% endif %}
{% assign gift_target_order_item_ids = gift_sets | map: 'order_item_id' | uniq %}
<!-- ギフト対象商品ごとのギフト合計数量を計算 -->
{% assign gift_total_by_order_item = "" %}
{% for order_item_id in gift_target_order_item_ids %}
{% assign gift_total = 0 %}
{% for gs in gift_sets %}
{% if gs.order_item_id == order_item_id %}
{% assign gift_total = gift_total | plus: gs.gift_quantity %}
{% endif %}
{% endfor %}
{% capture gift_total_by_order_item %}{{ gift_total_by_order_item }}{{ order_item_id }}:{{ gift_total }};{% endcapture %}
{% endfor %}
{% assign gift_relation_idx = 0 %}
<table class="product-gift-set-table" data-index="{{ index }}">
<tbody>
{% for order_item in order_items_without_bundled_and_gift %}
{% assign order_items_info = "" %}
{% for oiil in shipping_address.order_items_info_list %}
{% if oiil.order_item.id == order_item.id %}
{% assign order_items_info = oiil %}
{% endif %}
{% endfor %}
{% assign is_gift_target = false %}
{% for gid in gift_target_order_item_ids %}
{% if gid == order_item.id %}
{% assign is_gift_target = true %}
{% endif %}
{% endfor %}
<!-- ギフト対象商品の場合 -->
{% if is_gift_target %}
{% assign gift_total = 0 %}
{% for gs in gift_sets %}
{% if gs.order_item_id == order_item.id %}
{% assign gift_total = gift_total | plus: gs.gift_quantity %}
{% endif %}
{% endfor %}
{% assign no_gift_max = order_item.quantity | minus: gift_total %}
<!-- このお届け先へのギフト付き数量を計算 -->
{% assign gift_quantity_for_address = 0 %}
{% if shipping_address.gift_relations %}
{% for gr in shipping_address.gift_relations %}
{% if gr.order_item_id == order_item.id %}
{% assign gift_quantity_for_address = gift_quantity_for_address | plus: gr.gift_quantity %}
{% endif %}
{% endfor %}
{% endif %}
{% assign total_quantity_for_address = order_items_info.quantity | default: 0 %}
{% assign no_gift_quantity_tmp = total_quantity_for_address | minus: gift_quantity_for_address %}
{% if no_gift_quantity_tmp < 0 %}
{% assign no_gift_quantity = 0 %}
{% else %}
{% assign no_gift_quantity = no_gift_quantity_tmp %}
{% endif %}
<!-- 「ギフトなし」行(ギフト数 < 商品数の場合のみ表示) -->
{% if no_gift_max > 0 %}
<tr class="order-item-row no-gift-row" data-order-item-id="{{ order_item.id }}" data-gift-total="{{ gift_total }}" data-no-gift-max="{{ no_gift_max }}">
<th>
<label>{{ order_item.variant.name_with_option_values_presentation }}(ギフトなし)</label>
</th>
<td class="order_items_info">
<input type="hidden" class="order_items_info__order_item_id" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][order_item_id]" value="{{ order_item.id }}">
<select class="order_items_info__no_gift_quantity" data-order-item-id="{{ order_item.id }}" data-no-gift-max="{{ no_gift_max }}">
{% for i in (0..no_gift_max) %}
<option value="{{ i }}" {% if no_gift_quantity == i %}selected{% endif %}>{{ i }} 個</option>
{% endfor %}
</select>
<input type="hidden" class="order_items_info__quantity_hidden" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][quantity]" value="{{ total_quantity_for_address }}" data-order-item-id="{{ order_item.id }}">
</td>
</tr>
{% else %}
<!-- ギフトなしの数量が0の場合(すべてギフト付き)、hidden inputのみ送信 -->
<tr class="order-item-row" data-order-item-id="{{ order_item.id }}" style="display:none;">
<th>
<label>{{ order_item.variant.name_with_option_values_presentation }}</label>
</th>
<td class="order_items_info">
<input type="hidden" class="order_items_info__order_item_id" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][order_item_id]" value="{{ order_item.id }}">
<input type="hidden" class="order_items_info__quantity_hidden" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][quantity]" value="{{ total_quantity_for_address }}" data-order-item-id="{{ order_item.id }}">
</td>
</tr>
{% endif %}
<!-- 「商品+ギフト」行(同じテーブル内に表示) -->
{% for gift_set in gift_sets %}
{% if gift_set.order_item_id == order_item.id %}
{% assign max_selectable = gift_set.gift_quantity | default: gift_set.gift_order_item.quantity %}
{% if gift_set.max_gift_quantity %}
{% assign max_selectable = gift_set.max_gift_quantity %}
{% endif %}
<!-- このお届け先に設定されたギフト数量を取得 -->
{% assign selected_gift_qty = 0 %}
{% if shipping_address.gift_relations %}
{% for gr in shipping_address.gift_relations %}
{% assign name_match = false %}
{% if gr.name_part_of_noshi == blank and gift_set.name_part_of_noshi == blank %}
{% assign name_match = true %}
{% elsif gr.name_part_of_noshi == gift_set.name_part_of_noshi %}
{% assign name_match = true %}
{% endif %}
{% assign desc_match = false %}
{% if gr.description_part_of_noshi == blank and gift_set.description_part_of_noshi == blank %}
{% assign desc_match = true %}
{% elsif gr.description_part_of_noshi == gift_set.description_part_of_noshi %}
{% assign desc_match = true %}
{% endif %}
{% if gr.order_item_id == gift_set.order_item_id and gr.gift_order_item_id == gift_set.gift_order_item_id and name_match and desc_match %}
{% assign selected_gift_qty = gr.gift_quantity %}
{% endif %}
{% endfor %}
{% endif %}
<tr class="product-gift-set-row" data-order-item-id="{{ gift_set.order_item_id }}" data-gift-order-item-id="{{ gift_set.gift_order_item_id }}" data-name-part-of-noshi="{{ gift_set.name_part_of_noshi }}" data-description-part-of-noshi="{{ gift_set.description_part_of_noshi }}">
<th>
{{ gift_set.order_item.variant.name_with_option_values_presentation }}
<br>
{{ gift_set.gift_order_item.variant.name_with_option_values_presentation }}
{% if gift_set.description_part_of_noshi != blank %}
<br>
表書き:{{ gift_set.description_part_of_noshi }}
{% endif %}
{% if gift_set.name_part_of_noshi != blank %}
<br>
名入れ:{{ gift_set.name_part_of_noshi }}
{% endif %}
</th>
<td>
<select class="gift-relation-quantity" data-order-item-id="{{ gift_set.order_item_id }}" data-max-quantity="{{ max_selectable }}">
{% for i in (0..max_selectable) %}
<option value="{{ i }}" {% if i == selected_gift_qty %}selected{% endif %}>{{ i }} 個</option>
{% endfor %}
</select>
<input type="hidden" class="gift-relation-quantity-hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][quantity]" value="{{ selected_gift_qty }}">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][order_item_id]" value="{{ gift_set.order_item_id }}">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][gift_order_item_id]" value="{{ gift_set.gift_order_item_id }}">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][name_part_of_noshi]" value="{{ gift_set.name_part_of_noshi }}">
{% if gift_set.description_part_of_noshi != blank %}
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][description_part_of_noshi]" value="{{ gift_set.description_part_of_noshi }}">
{% endif %}
</td>
</tr>
{% assign gift_relation_idx = gift_relation_idx | plus: 1 %}
{% endif %}
{% endfor %}
{% else %}
<!-- 通常商品(ギフト対象外) -->
<tr class="order-item-row" data-order-item-id="{{ order_item.id }}">
<th>
<label>{{ order_item.variant.name_with_option_values_presentation }}</label>
</th>
<td class="order_items_info">
<input type="hidden" class="order_items_info__order_item_id" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][order_item_id]" value="{{ order_item.id }}">
<select class="order_items_info__quantity" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][quantity]">
{% for i in (0..order_item.quantity) %}
<option value="{{ i }}" {% if order_items_info.quantity == i %}selected{% endif %}>{{ i }}</option>
{% endfor %}
</select>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
<!-- 配送業者情報 -->
<div style="{% unless display_shipping_carrier_view_flag %}display: none;{% endunless %}">
<div class="shipping_carrier_contents">
<!-- 配送業者の選択-->
<label>配送業者</label>
<select class="shipping_carrier_id" name="order[shipping_addresses_attributes][{{ index }}]['delivery_info_attributes'][shipping_carrier_id]">
{% if shipping_address.shipping_carrier_id %}
<option value="{{ shipping_address.shipping_carrier_id }}" selected>{{ shipping_address.shipping_carrier.name }}</option>
{% endif %}
</select>
<div class="shipping_carrier_description"></div>
</div>
</div>
</div>
{% endfor %}
</div>
<!-- 複数のお届け先入力フォームテンプレート -->
<div id="multiple-shipping-template-form" style="display: none;">
{% assign index = '#{index}' %}
{% assign shipping_address = shipping_address_instance %}
<button class="delete_shipping_address" type="button">削除</button>
<!-- お届け先住所の選択 -->
<label>お届け先住所</label>
<select class="shipping_addresses_id" name="order[shipping_addresses_attributes][{{ index }}][shipping_address_id]">
<option value="same" {% if selected_shipping_addresses_value[index] == blank or selected_shipping_addresses_value[index] == 'same' %}selected{% endif %}>請求先住所と同じ</option>
{% if customer_signed_in %}
{% for sa in current_customer.shipping_addresses %}
<option value="{{ sa.id }}" {% if selected_shipping_addresses_value[index] == sa.id %}selected{% endif %}>
{{ sa.full_name }} | 〒{{ sa.full_zip }} {{ sa.full_address }}
</option>
{% endfor %}
{% endif %}
<option value="new" {% if selected_shipping_addresses_value[index] == 'new' %}selected{% endif %}>新しく入力する</option>
</select>
<div id="shipping_address_input_{{ index }}">
<!-- お名前 -->
<label>お名前</label>
{% if shop_form_settings['name_1_field'] %}
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_name01" name="order[shipping_addresses_attributes][{{ index }}][name01]" placeholder="例)山田 花子" value="{{ shipping_address.full_name }}">
{% else %}
<span>姓</span>
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_name01" name="order[shipping_addresses_attributes][{{ index }}][name01]" placeholder="例)山田" value="{{ shipping_address.name01 }}">
<span>名</span>
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_name02" name="order[shipping_addresses_attributes][{{ index }}][name02]" placeholder="例)花子" value="{{ shipping_address.name02 }}">
{% endif %}
<!-- フリガナ -->
<label>フリガナ</label>
{% if shop_form_settings['kana_1_field'] %}
<input type="text" class="validate[required,custom[katakana]]" id="order_shipping_addresses_{{index}}_attributes_kana01" name="order[shipping_addresses_attributes][{{ index }}][kana01]" placeholder="例)ヤマダ ハナコ" value="{{ shipping_address.full_kana }}">
{% else %}
<span>セイ</span>
<input type="text" class="validate[required,custom[katakana]]" id="order_shipping_addresses_{{index}}_attributes_kana01" name="order[shipping_addresses_attributes][{{ index }}][kana01]" placeholder="例)ヤマダ" value="{{ shipping_address.kana01 }}">
<span>メイ</span>
<input type="text" class="validate[required,custom[katakana]]" id="order_shipping_addresses_{{index}}_attributes_kana02" name="order[shipping_addresses_attributes][{{ index }}][kana02]" placeholder="例)ハナコ" value="{{ shipping_address.kana02 }}">
{% endif %}
<!-- 郵便番号 -->
<label>郵便番号</label>
{% if shop_form_settings['zip_1_field'] %}
<span>〒</span>
<input type="tel" class="shipping_addresses_zip01 validate[required,custom[integer],minSize[7]]" id="order_shipping_addresses_{{index}}_attributes_zip01" maxlength="7" name="order[shipping_addresses_attributes][{{ index }}][zip01]" placeholder="1500031" value="{{ shipping_address.full_zip }}">
{% else %}
<span>〒</span>
<input type="tel" class="shipping_addresses_zip01 validate[required,custom[integer],minSize[3]]" id="order_shipping_addresses_{{index}}_attributes_zip01" maxlength="3" name="order[shipping_addresses_attributes][{{ index }}][zip01]" placeholder="150" value="{{ shipping_address.zip01 }}">
<span>−</span>
<input type="tel" class="shipping_addresses_zip02 validate[required,custom[integer],minSize[4]]" id="order_shipping_addresses_{{index}}_attributes_zip02" maxlength="4" name="order[shipping_addresses_attributes][{{ index }}][zip02]" placeholder="0031" value="{{ shipping_address.zip02 }}">
{% endif %}
<!-- 都道府県 -->
<label>都道府県</label>
<select class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_prefecture_name" name="order[shipping_addresses_attributes][{{ index }}][prefecture_id]">
<option value="">選択してください</option>
{% for prefecture in prefectures %}
<option value="{{ prefecture.id }}" {% if shipping_address.prefecture_id == prefecture.id %}selected{% endif %}>{{ prefecture.name }}</option>
{% endfor %}
</select>
<!-- 住所1 -->
<label>{{ shop_form_settings['addr01_label'] }}</label>
<input type="text" class="validate[required]" id="order_shipping_addresses_{{index}}_attributes_addr01" name="order[shipping_addresses_attributes][{{ index }}][addr01]" placeholder="{{ shop_form_settings['addr01_placeholder'] }}" value="{{ shipping_address.addr01 }}">
<!-- 住所2 -->
<label>{{ shop_form_settings['addr02_label'] }}</label>
{% if shop_form_settings['addr03'] %}
<input type="text" class="{% if shop_form_settings['addr02_require'] %}validate[required]{% endif %}" id="order_shipping_addresses_{{index}}_attributes_addr02" name="order[shipping_addresses_attributes][{{ index }}][addr02]" value="{{ shipping_address.addr02 }}" placeholder="{{ shop_form_settings['addr02_placeholder'] }}">
{% else %}
<input type="text" class="{% if shop_form_settings['addr02_require'] %}validate[required]{% endif %}" id="order_shipping_addresses_{{index}}_attributes_addr02" name="order[shipping_addresses_attributes][{{ index }}][addr02]"
value="{{ shipping_address.addr02 }}{{ shipping_address.addr03 }}" placeholder="{{ shop_form_settings['addr02_placeholder'] | append: shop_form_settings['addr03_placeholder'] }}">
{% endif %}
<!-- 住所3 -->
{% if shop_form_settings['addr03'] %}
<label>{{ shop_form_settings['addr03_label'] }}</label>
<input type="text" id="order_shipping_addresses_{{index}}_attributes_addr03" name="order[shipping_addresses_attributes][{{ index }}][addr03]" placeholder="{{ shop_form_settings['addr03_placeholder'] }}" value="{{ shipping_address.addr03 }}">
{% endif %}
<!-- 電話番号 -->
<label>電話番号</label>
{% if shop_form_settings['tel_1_field'] %}
<input type="tel" class="validate[required,custom[integer]]" maxlength="12" name="order[shipping_addresses_attributes][{{ index }}][tel01]" value="{{ shipping_address.full_tel }}">
{% else %}
<input type="tel" class="validate[required,custom[integer]]" maxlength="5" name="order[shipping_addresses_attributes][{{ index }}][tel01]" value="{{ shipping_address.tel01 }}">
<span>-</span>
<input type="tel" class="validate[required,custom[integer]]" maxlength="4" name="order[shipping_addresses_attributes][{{ index }}][tel02]" value="{{ shipping_address.tel02 }}">
<span>-</span>
<input type="tel" class="validate[required,custom[integer]]" maxlength="4" name="order[shipping_addresses_attributes][{{ index }}][tel03]" value="{{ shipping_address.tel03 }}">
{% endif %}
<!-- お届け先登録-->
<label for="order_shipping_addresses_{{ index }}_attributes_persist_as_customer_shipping_address">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][persist_as_customer_shipping_address]" value="0">
<input type="checkbox" id="order_shipping_addresses_{{ index }}_attributes_persist_as_customer_shipping_address" name="order[shipping_addresses_attributes][{{ index }}][persist_as_customer_shipping_address]" value="1" {% if shipping_address.persist_as_customer_shipping_address == true %}checked{% endif %}>お届け先登録する
</label>
</div>
<!-- お届け先商品情報 -->
{% assign gift_sets = order.multiple_address_gift_relations_grouped %}
{% if order.gift_sets_for_view_by_index[index] %}
{% assign gift_sets = order.gift_sets_for_view_by_index[index] %}
{% endif %}
{% assign gift_target_order_item_ids = gift_sets | map: 'order_item_id' | uniq %}
<!-- ギフト対象商品ごとのギフト合計数量を計算 -->
{% assign gift_total_by_order_item = "" %}
{% for order_item_id in gift_target_order_item_ids %}
{% assign gift_total = 0 %}
{% for gs in gift_sets %}
{% if gs.order_item_id == order_item_id %}
{% assign gift_total = gift_total | plus: gs.gift_quantity %}
{% endif %}
{% endfor %}
{% capture gift_total_by_order_item %}{{ gift_total_by_order_item }}{{ order_item_id }}:{{ gift_total }};{% endcapture %}
{% endfor %}
{% assign gift_relation_idx = 0 %}
<table class="product-gift-set-table" data-index="{{ index }}">
<tbody>
{% for order_item in order_items_without_bundled_and_gift %}
{% assign order_items_info = "" %}
{% for oiil in shipping_address.order_items_info_list %}
{% if oiil.order_item.id == order_item.id %}
{% assign order_items_info = oiil %}
{% endif %}
{% endfor %}
{% assign is_gift_target = false %}
{% for gid in gift_target_order_item_ids %}
{% if gid == order_item.id %}
{% assign is_gift_target = true %}
{% endif %}
{% endfor %}
<!-- ギフト対象商品の場合 -->
{% if is_gift_target %}
{% assign gift_total = 0 %}
{% for gs in gift_sets %}
{% if gs.order_item_id == order_item.id %}
{% assign gift_total = gift_total | plus: gs.gift_quantity %}
{% endif %}
{% endfor %}
{% assign no_gift_max = order_item.quantity | minus: gift_total %}
<!-- このお届け先へのギフト付き数量を計算 -->
{% assign gift_quantity_for_address = 0 %}
{% if shipping_address.gift_relations %}
{% for gr in shipping_address.gift_relations %}
{% if gr.order_item_id == order_item.id %}
{% assign gift_quantity_for_address = gift_quantity_for_address | plus: gr.gift_quantity %}
{% endif %}
{% endfor %}
{% endif %}
{% assign total_quantity_for_address = order_items_info.quantity | default: 0 %}
{% assign no_gift_quantity_tmp = total_quantity_for_address | minus: gift_quantity_for_address %}
{% if no_gift_quantity_tmp < 0 %}
{% assign no_gift_quantity = 0 %}
{% else %}
{% assign no_gift_quantity = no_gift_quantity_tmp %}
{% endif %}
<!-- 「ギフトなし」行(ギフト数 < 商品数の場合のみ表示) -->
{% if no_gift_max > 0 %}
<tr class="order-item-row no-gift-row" data-order-item-id="{{ order_item.id }}" data-gift-total="{{ gift_total }}" data-no-gift-max="{{ no_gift_max }}">
<th>
<label>{{ order_item.variant.name_with_option_values_presentation }}(ギフトなし)</label>
</th>
<td class="order_items_info">
<input type="hidden" class="order_items_info__order_item_id" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][order_item_id]" value="{{ order_item.id }}">
<select class="order_items_info__no_gift_quantity" data-order-item-id="{{ order_item.id }}" data-no-gift-max="{{ no_gift_max }}">
{% for i in (0..no_gift_max) %}
<option value="{{ i }}" {% if no_gift_quantity == i %}selected{% endif %}>{{ i }} 個</option>
{% endfor %}
</select>
<input type="hidden" class="order_items_info__quantity_hidden" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][quantity]" value="{{ total_quantity_for_address }}" data-order-item-id="{{ order_item.id }}">
</td>
</tr>
{% else %}
<!--ギフトなしの数量が0の場合(すべてギフト付き)、hidden inputのみ送信 -->
<tr class="order-item-row" data-order-item-id="{{ order_item.id }}" style="display:none;">
<th>
<label>{{ order_item.variant.name_with_option_values_presentation }}</label>
</th>
<td class="order_items_info">
<input type="hidden" class="order_items_info__order_item_id" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][order_item_id]" value="{{ order_item.id }}">
<input type="hidden" class="order_items_info__quantity_hidden" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][quantity]" value="{{ total_quantity_for_address }}" data-order-item-id="{{ order_item.id }}">
</td>
</tr>
{% endif %}
<!-- 「商品+ギフト」行(同じテーブル内に表示) -->
{% for gift_set in gift_sets %}
{% if gift_set.order_item_id == order_item.id %}
{% assign max_selectable = gift_set.gift_quantity | default: gift_set.gift_order_item.quantity %}
{% if gift_set.max_gift_quantity %}
{% assign max_selectable = gift_set.max_gift_quantity %}
{% endif %}
<!-- このお届け先に設定されたギフト数量を取得 -->
{% assign selected_gift_qty = 0 %}
{% if shipping_address.gift_relations %}
{% for gr in shipping_address.gift_relations %}
{% assign name_match = false %}
{% if gr.name_part_of_noshi == blank and gift_set.name_part_of_noshi == blank %}
{% assign name_match = true %}
{% elsif gr.name_part_of_noshi == gift_set.name_part_of_noshi %}
{% assign name_match = true %}
{% endif %}
{% assign desc_match = false %}
{% if gr.description_part_of_noshi == blank and gift_set.description_part_of_noshi == blank %}
{% assign desc_match = true %}
{% elsif gr.description_part_of_noshi == gift_set.description_part_of_noshi %}
{% assign desc_match = true %}
{% endif %}
{% if gr.order_item_id == gift_set.order_item_id and gr.gift_order_item_id == gift_set.gift_order_item_id and name_match and desc_match %}
{% assign selected_gift_qty = gr.gift_quantity %}
{% endif %}
{% endfor %}
{% endif %}
<tr class="product-gift-set-row" data-order-item-id="{{ gift_set.order_item_id }}" data-gift-order-item-id="{{ gift_set.gift_order_item_id }}" data-name-part-of-noshi="{{ gift_set.name_part_of_noshi }}" data-description-part-of-noshi="{{ gift_set.description_part_of_noshi }}">
<th>
{{ gift_set.order_item.variant.name_with_option_values_presentation }}
<br>
{{ gift_set.gift_order_item.variant.name_with_option_values_presentation }}
{% if gift_set.description_part_of_noshi != blank %}
<br>
表書き:{{ gift_set.description_part_of_noshi }}
{% endif %}
{% if gift_set.name_part_of_noshi != blank %}
<br>
名入れ:{{ gift_set.name_part_of_noshi }}
{% endif %}
</th>
<td>
<select class="gift-relation-quantity" data-order-item-id="{{ gift_set.order_item_id }}" data-max-quantity="{{ max_selectable }}">
{% for i in (0..max_selectable) %}
<option value="{{ i }}" {% if i == selected_gift_qty %}selected{% endif %}>{{ i }} 個</option>
{% endfor %}
</select>
<input type="hidden" class="gift-relation-quantity-hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][quantity]" value="{{ selected_gift_qty }}">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][order_item_id]" value="{{ gift_set.order_item_id }}">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][gift_order_item_id]" value="{{ gift_set.gift_order_item_id }}">
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][name_part_of_noshi]" value="{{ gift_set.name_part_of_noshi }}">
{% if gift_set.description_part_of_noshi != blank %}
<input type="hidden" name="order[shipping_addresses_attributes][{{ index }}][gift_relations_attributes][{{ gift_relation_idx }}][description_part_of_noshi]" value="{{ gift_set.description_part_of_noshi }}">
{% endif %}
</td>
</tr>
{% assign gift_relation_idx = gift_relation_idx | plus: 1 %}
{% endif %}
{% endfor %}
{% else %}
<!-- 通常商品(ギフト対象外) -->
<tr class="order-item-row" data-order-item-id="{{ order_item.id }}">
<th>
<label>{{ order_item.variant.name_with_option_values_presentation }}</label>
</th>
<td class="order_items_info">
<input type="hidden" class="order_items_info__order_item_id" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][order_item_id]" value="{{ order_item.id }}">
<select class="order_items_info__quantity" name="order[shipping_addresses_attributes][{{ index }}][order_items_info_list_attributes][{{ forloop.index0 }}][quantity]">
{% for i in (0..order_item.quantity) %}
<option value="{{ i }}" {% if order_items_info.quantity == i %}selected{% endif %}>{{ i }}</option>
{% endfor %}
</select>
</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
<!-- 配送業者情報 -->
<div style="{% unless display_shipping_carrier_view_flag %}display: none;{% endunless %}">
<div class="shipping_carrier_contents">
<!-- 配送業者の選択-->
<label>配送業者</label>
<select class="shipping_carrier_id" name="order[shipping_addresses_attributes][{{ index }}]['delivery_info_attributes'][shipping_carrier_id]">
{% if shipping_address.shipping_carrier_id %}
<option value="{{ shipping_address.shipping_carrier_id }}" selected>{{ shipping_address.shipping_carrier.name }}</option>
{% endif %}
</select>
<div class="shipping_carrier_description"></div>
</div>
</div>
</div>
{% endif %}