テーマ仕様書 更新履歴
2026年
2026/02/19更新

2026/02/19更新

+ 更新した行
- 削除した行

ギフト機能と熨斗商品の数量上限に関する不具合の修正

ギフト商品を購入する際に、購入数を超える熨斗商品が追加できてしまう不具合を修正しました。
(複数お届け先対応が有効な熨斗商品の場合に発生していました)

cart > 複数のお届け先入力フォーム(部分テンプレート)

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

※同じコードが2箇所あります。両方とも修正してください。

                <!-- 「商品+ギフト」行(同じテーブル内に表示) -->
               {% for gift_set in gift_sets %}
                 {% if gift_set.order_item_id == order_item.id %}
-                  {% assign max_selectable = gift_set.gift_order_item.quantity | default: gift_set.gift_quantity %}
+                  {% 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 %}

商品詳細ページの表示速度改善

多くのレビューが投稿されている商品について、商品詳細ページの表示速度を改善しました。
※表示速度改善のため、レビュー部分はJavaScriptを用いて非同期で取得するようにしました。

product > 商品詳細画面

ec_force/shop/products/show.html.liquid
ec_force/shop/products/show.html+smartphone.liquid

 
   <!-- レビューコンテンツ -->
   {% if base_info.use_review? %}
 
     <!-- レビュー一覧 -->
     {% assign is_readable = product.id | check_review_reading_rule %}
     {% if is_readable %}
 
-      {% if reviews.size == 0 %}
+      <!-- レビュー一覧コンテナ (js-review-container クラスはレビュー表示に必要、タグは任意) -->
+      <div class="js-review-container">
+        {% if product.reviews_count == 0 %}
           この商品のレビューはありません。
         {% else %}
           <!-- レビュー件数(任意) -->
-        {{ reviews.size }} 件のレビュー
+          {{ product.reviews_count }} 件のレビュー
 
           <!-- レビュー平均点(任意) -->
           {{ product.average_star }}
 
-        {% for review in reviews %}
+          <!-- レビュー一覧 (js-review-list クラスはレビュー表示に必要、タグは任意) -->
+          <div class="js-review-list">
 
-          <!-- レビューのリアクション機能を利用する場合、画面制御に id 属性を利用するため変更不可 -->
-          <div id="review-{{ review.id }}">
+            <!-- レビュー詳細テンプレート (js-review-item-template クラスはレビュー表示に必要、タグは任意) -->
+            <div class="js-review-item-template" style="display:none;">
 
-            <!-- レビュータイトル -->
-            {{ review.title }}
+              <!-- ページ内遷移に必要なIDを追加 (js-review-id クラスはレビュー表示に必要、タグは任意) -->
+              <div class="js-review-id">
 
-            <!-- レビュー投稿日時(任意) -->
-            {{ review.created_at | date: '%Y/%m/%d %H:%M:%S' }}
+                <!-- レビュータイトル (js-review-title クラスはレビュー表示に必要、タグは任意) -->
+                <span class="js-review-title">レビュータイトル</span>
 
-            <!-- 投稿者 -->
-            {{ review.name }}
+                <!-- レビュー投稿日時 (任意、js-review-createdAt クラスはレビュー表示に必要、タグは任意) -->
+                <span class="js-review-createdAt">2020/01/01 00:00:00</span>
 
-            <!-- 評価 -->
-            {{ review.display_star }}
+                <!-- 投稿者 (js-review-name クラスはレビュー表示に必要、タグは任意)-->
+                <span class="js-review-name">投稿者</span>
 
-            <!-- レビューコメント -->
-            {{ review.comment | simple_format }}
+                <!-- 評価 (js-review-star クラスはレビュー表示に必要、タグは任意)-->
+                <span class="js-review-star">★★★★★</span>
 
-            <!-- レビューのリアクション(参考になった) -->
-            {% if base_info.review_reaction? %}
+                <!-- レビューコメント (js-review-comment クラスはレビュー表示に必要、タグは任意)-->
+                <p class="js-review-comment">レビューコメント</p>
 
-              <!-- レビューにリアクションした人数 -->
-              {% unless review.reactions_count == 0 %}
-                {{ review.reactions_count }}人が「参考になった」と回答しています。
-              {% endunless %}
+                <!-- レビューのリアクション(参考になった) -->
+                {% if base_info.review_reaction? %}
+                  <!-- レビューにリアクションした人数 (js-review-reactions-count-container、js-review-reactions-count クラスはレビュー表示に必要、タグは任意)-->
+                  <div class="js-review-reactions-count-container"><span class="js-review-reactions-count">0</span>人が「参考になった」と回答しています。</div>
 
-              {% unless review.customer.id == current_customer&.id %}
-                {% if reacted_review_ids contains review.id %}
-                  ご意見ありがとうございます。
+                  <!-- レビューのリアクション(参考になった)の感謝メッセージ (js-review-reaction-thanks-container クラスはレビュー表示に必要、タグは任意)-->
+                  <div class="js-review-reaction-thanks-container">
+                    ご意見ありがとうございます。
 
-                  <!-- レビューのリアクション(参考になった)の取り消し -->
-                  {% if base_info.review_reaction_cancellation? %}
-                    <a data-method="post" href="/shop/products/review_reaction_cancellation?customer_return_to=%2Fshop%2Fproducts%2F{{ product.master.sku }}&review_id={{ review.id }}#review-{{ review.id }}">取り消し</a>
-                  {% endif %}
-                {% else %}
-                  <form action="/shop/products/review_reaction?customer_return_to=%2Fshop%2Fproducts%2F{{ product.master.sku }}#review-{{ review.id }}" method="post">
-                    <input name="review_id" type="hidden" value="{{ review.id }}">
+                    {% if base_info.review_reaction_cancellation? %}
+                      <!-- レビューのリアクション(参考になった)の取り消し (js-review-reaction-cancel-link クラスはレビュー表示に必要)-->
+                      <a class="js-review-reaction-cancel-link" data-method="post" href="/shop/products/review_reaction_cancellation?customer_return_to=%2Fshop%2Fproducts%2F{{ product.master.sku }}">取り消し</a>
+                    {% endif %}
+                  </div>
+
+                  <!-- レビューのリアクション(参考になった)のフォーム button以外は変更不可-->
+                  <form class="js-review-reaction-form" action="/shop/products/review_reaction?customer_return_to=%2Fshop%2Fproducts%2F{{ product.master.sku }}" method="post">
+                    <input name="review_id" type="hidden" value="">
                     <button type="submit" data-disable-with="参考になった">
                       参考になった
                     </button>
                   </form>
                 {% endif %}
-              {% endunless %}
-            {% endif %}
+              </div>
+            </div>
           </div>
-
-        {% endfor %}
-      {% endif %}
+        {% endif %}
+        <!-- レビューのもっと見るボタン (js-load-more-reviews クラスはレビュー表示に必要、タグは任意)-->
+        <button class="js-load-more-reviews" type="button" data-product-id="{{ product.id }}" data-current-page="1" data-total-count="{{ product.reviews_count }}" style="display:none;">もっと見る</button>
+      </div>
     {% endif %}
       "ratingValue": "{{ product.average_star_eval }}"
     },
     "review": [
-    {% for review in reviews %}
+    {% for review in limited_reviews %}
       {% if review.name == empty %}
         {% continue %}
       {% endif %}