app/template/default/Cart/index.twig line 1

Open in your IDE?
  1. {#
  2. This file is part of EC-CUBE
  3. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  4. http://www.ec-cube.co.jp/
  5. For the full copyright and license information, please view the LICENSE
  6. file that was distributed with this source code.
  7. #}
  8. {% block stylesheet %}
  9.     <link rel="stylesheet" href="{{ asset('assets/css/ec_module.css', 'user_data') }}">
  10.     <link rel="stylesheet" href="{{ asset('assets/css/button_design.css', 'user_data') }}">
  11.     <link rel="stylesheet" href="{{ asset('assets/css/cart.css', 'user_data') }}">
  12.     
  13.     <style>
  14.     .cart-progress-item:nth-of-type(1) .cart-progress-spot::before{
  15.         content: "";
  16.         width: 24px;
  17.         height: 24px;
  18.         position: absolute;
  19.         top: 50%;
  20.         left: 50%;
  21.         transform: translate(-50%,-50%);
  22.         border-radius: 50%;
  23.         background-color: #FFFFFF;
  24.     }
  25.     </style>
  26. {% endblock %}
  27. {% extends 'default_frame.twig' %}
  28. {% set body_class = 'cart_page' %}
  29. {% block main %}
  30. <main>
  31.     <div class="wrapper">
  32.         <h1>
  33.             <div class="ec-title">
  34.                 <img src="{{ asset('assets/img/title_ic_basket.svg', 'user_data') }}" alt="backet" class="title-ic">
  35.                 <span>{{ 'ショッピングカート'|trans }}</span>
  36.             </div>
  37.             <div class="vertical-line"></div>
  38.         </h1>
  39.         <div class="cart-progress">
  40.             <ul class="cart-progress-list">
  41.                 <li class="cart-progress-item">
  42.                     <div class="cart-progress-spot"></div>
  43.                     <div class="cart-progress-label">{{ 'カートの商品'|trans }}</div>
  44.                 </li>
  45.                 {% if is_granted('ROLE_USER') == false %}
  46.                 <li class="cart-progress-item">
  47.                     <div class="cart-progress-spot"></div>
  48.                     <div class="cart-progress-label">{{ 'お客様情報'|trans }}</div>
  49.                 </li>
  50.                 {% endif %}
  51.                 <li class="cart-progress-item">
  52.                     <div class="cart-progress-spot"></div>
  53.                     <div class="cart-progress-label">{{ 'ご注文手続き'|trans }}</div>
  54.                 </li>
  55.                 <li class="cart-progress-item">
  56.                     <div class="cart-progress-spot"></div>
  57.                     <div class="cart-progress-label">{{ 'ご注文内容確認'|trans }}</div>
  58.                 </li>
  59.                 <li class="cart-progress-item">
  60.                     <div class="cart-progress-spot"></div>
  61.                     <div class="cart-progress-label">{{ '完了'|trans }}</div>
  62.                 </li>
  63.             </ul>
  64.         </div>
  65.         
  66.         {# 旧コーディング・処理 #}
  67.         
  68.         {% set productStr = app.session.flashbag.get('eccube.front.request.product') %}
  69.         {% for error in app.session.flashbag.get('eccube.front.request.error') %}
  70.             {% set idx = loop.index0 %}
  71.             <div class="ec-cartRole__error">
  72.                 <div class="ec-alert-warning">
  73.                     {#<div class="ec-alert-warning__icon"><img src="{{ asset('assets/img/exclamation-white.svg', 'user_data') }}"></div>#}
  74.                     <div class="ec-alert-warning__text">
  75.                         {% if productStr[idx] is defined %}
  76.                             {{ error|trans({'%product%':productStr[idx]})|nl2br }}
  77.                         {% else %}
  78.                             {{ error|trans|nl2br }}
  79.                         {% endif %}
  80.                     </div>
  81.                 </div>
  82.             </div>
  83.         {% endfor %}
  84.         {% for error in app.session.flashbag.get('eccube.front.cart.error') %}
  85.             <div class="ec-cartRole__error">
  86.                 <div class="ec-alert-warning">
  87.                     {#<div class="ec-alert-warning__icon"><img src="{{ asset('assets/img/exclamation-white.svg', 'user_data') }}"></div>#}
  88.                     <div class="ec-alert-warning__text">
  89.                         {{ error|trans|nl2br }}
  90.                     </div>
  91.                 </div>
  92.             </div>
  93.         {% endfor %}
  94.         {% if totalQuantity > 0 %}
  95.             {% if Carts|length > 1 %}
  96.                 <div class="ec-cartRole__error">
  97.                     <div class="ec-alert-warning">
  98.                         <div class="ec-alert-warning__text">
  99.                             {{ '同時購入できない商品がカートに含まれています。'|trans|nl2br }}
  100.                         </div>
  101.                     </div>
  102.                 </div>
  103.             {% endif %}
  104.             
  105.             {# 旧コーディング・処理 #}
  106.             
  107.             <form name="form" id="form_cart" class="ec-cartRole" method="post" action="{{ url('cart') }}">
  108.                 {% for CartIndex,Cart in Carts %}
  109.                     {% set cartKey = Cart.cart_key %}
  110.                     {% for error in app.session.flashbag.get('eccube.front.cart.' ~ cartKey ~ '.request.error') %}
  111.                         <div class="ec-cartRole__error">
  112.                             <div class="ec-alert-warning">
  113.                                 {#<div class="ec-alert-warning__icon"><img src="{{ asset('assets/img/exclamation-white.svg', 'user_data') }}"></div>#}
  114.                                 <div class="ec-alert-warning__text">
  115.                                     {{ error|trans|nl2br }}
  116.                                 </div>
  117.                             </div>
  118.                         </div>
  119.                     {% endfor %}
  120.                     
  121.                     {# 旧コーディング・処理 終わり #}
  122.                     
  123.                     <div class="cart-table">
  124.                         <ul class="cart-header">
  125.                             <li class="cart-header-label">{{ '削除'|trans }}</li>
  126.                             <li class="cart-header-label">{{ '商品内容'|trans }}</li>
  127.                             <li class="cart-header-label">{{ '数量'|trans }}</li>
  128.                             <li class="cart-header-label">{{ '小計'|trans }}</li>
  129.                         </ul>
  130.                         
  131.                         {% for CartItemIndex,CartItem in Cart.CartItems %}
  132.                                 {% set ProductClass = CartItem.ProductClass %}
  133.                                 {% set Product = ProductClass.Product %}
  134.                         <ul class="cart-row">
  135.                             <li class="cart-column-delete">
  136.                                 <a href="{{ url('cart_handle_item', {'operation': 'remove', 'productClassId': ProductClass.id }) }}" {{ csrf_token_for_anchor() }} class="ec-icon cart-column-deleteIc" data-method="put" data-message="カートから商品を削除してもよろしいですか?"" class="cart-column-deleteIc">×</a>
  137.                             </li>
  138.                             <li class="cart-column-content">
  139.                                 <div class="cart-column-img">
  140.                                     <a target="_blank" href="content.html">
  141.                                         <img src="{{ asset(CartItem.ProductClass.Product.main_list_image|no_image_product, 'save_image') }}" alt="{{ CartItem.ProductClass.Product.name }}"/>
  142.                                     </a>
  143.                                 </div>
  144.                                 <div class="cart-column-summary">
  145.                                     <div class="cart-column-name">
  146.                                         <a target="_blank" href="content.html">{{ CartItem.ProductClass.Product.name }}</a>
  147.                                     </div>
  148.                                     <div class="cart-column-unitPrice">¥{{ CartItem.price|number_format(0, '.', ',') }}</div>
  149.                                 </div>
  150.                             </li>
  151.                             <li class="cart-column-amountColumn">
  152.                                 <div class="cart-column-amount">{{ CartItem.quantity }}</div>
  153.                                 {# <div class="cart-column-amountSP">{{ 'common.quantity-with_separator'|trans }}{{ CartItem.quantity|number_format }}</div> #}
  154.                                 <div class="cart-column-amountUpDown">
  155.                                     {% if CartItem.quantity > 1 %}
  156.                                         <a href="{{ url('cart_handle_item', {'operation': 'down', 'productClassId': ProductClass.id}) }}" {{ csrf_token_for_anchor() }} class="cart-column-amountDownButton load-overlay" data-method="put" data-confirm="false" style="background-color: #629649;">
  157.                                             <span class="ec-cartRow__amountDownButton__icon">-</span>
  158.                                         </a>
  159.                                     {% else %}
  160.                                         <div class="ec-cartRow__amountDownButtonDisabled">
  161.                                             <span class="ec-cartRow__amountDownButton__icon">-</span>
  162.                                         </div>
  163.                                     {% endif %}
  164.                                     <a href="{{ url('cart_handle_item', {'operation': 'up', 'productClassId': ProductClass.id}) }}" {{ csrf_token_for_anchor() }} class="cart-column-amountUpButton load-overlay" data-method="put" data-confirm="false">
  165.                                         <span class="ec-cartRow__amountUpButton__icon">+</span>
  166.                                     </a>
  167.                                 </div>
  168.                             </li>
  169.                             <li class="cart-column-subtotalColumn">
  170.                                 <div class="cart-column-sutbtotal">{{ (CartItem.price * CartItem.quantity)|number_format(0, '.', ',') }}</div>
  171.                             </li>
  172.                         </ul>
  173.                         {% endfor %}
  174.                     </div>
  175.                     <div class="ec-cartRole__progress">
  176.                         {% if BaseInfo.delivery_free_amount and BaseInfo.delivery_free_quantity %}
  177.                             <br/>
  178.                             {% if is_delivery_free[cartKey] %}
  179.                                 {{ '現在送料無料です。'|trans }}
  180.                             {% else %}
  181.                                 {{ 'あと「<strong>%price%</strong>」または「<strong>%quantity%個</strong>」のお買い上げで<strong class="ec-color-red">送料無料</strong>になります。'|trans({ '%price%': least[cartKey]|price, '%quantity%': quantity[cartKey]|number_format })|raw }}
  182.                             {% endif %}
  183.                         {% elseif BaseInfo.delivery_free_amount %}
  184.                             <br/>
  185.                             {% if is_delivery_free[cartKey] %}
  186.                                 {{ '現在送料無料です。'|trans }}
  187.                             {% else %}
  188.                                 {{ 'あと「<strong>%price%</strong>」のお買い上げで<strong class="ec-color-red">送料無料</strong>になります。'|trans({ '%price%': least[cartKey]|price })|raw }}
  189.                             {% endif %}
  190.                         {% elseif BaseInfo.delivery_free_quantity %}
  191.                             <br/>
  192.                             {% if is_delivery_free[cartKey] %}
  193.                                 {{ '現在送料無料です。'|trans }}
  194.                             {% else %}
  195.                                 {{ 'あと「<strong>%quantity%個</strong>」のお買い上げで<strong class="ec-color-red">送料無料</strong>になります。'|trans({ '%quantity%': quantity[cartKey]|number_format })|raw }}
  196.                             {% endif %}
  197.                         {% endif %}
  198.                     </div>
  199.         
  200.                     <div class="cart-actions">
  201.                     <div class="cart-actions-total">
  202.                         {{ '合計:'|trans }}
  203.                         <span class="cart-total-totalAmount">{{ Cart.totalPrice|price }}</span>
  204.                     </div>
  205.                     <a class="ec-blockBtn--action" href="{{ path('cart_buystep', {'cart_key':cartKey}) }}">
  206.                         <img src="{{ asset('assets/img/btn_ic_register.svg', 'user_data') }}" alt="register" class="title-ic">
  207.                         {{ 'レジに進む'|trans }}
  208.                     </a>
  209.                     <a class="ec-blockBtn--cancel" href="javascript:history.back();">
  210.                         <img src="{{ asset('assets/img/btn_ic_basket.svg', 'user_data') }}" alt="basket" class="title-ic">
  211.                         {{ 'お買い物を続ける'|trans }}
  212.                     </a>
  213.                 </div>
  214.                 {% endfor %}
  215.                 {# 旧コーディング・処理 #}
  216.                 {% else %}
  217.                     {% for CartIndex,Cart in Carts %}
  218.                         {% set cartKey = Cart.cart_key %}
  219.                         {% for error in app.session.flashbag.get('eccube.front.cart.' ~ cartKey ~ '.request.error') %}
  220.                             <div class="ec-cartRole__error">
  221.                                 <div class="ec-alert-warning">
  222.                                     {#<div class="ec-alert-warning__icon"><img src="{{ asset('assets/img/exclamation-white.svg', 'user_data') }}"></div>#}
  223.                                     <div class="ec-alert-warning__text">
  224.                                         {{ error|trans|nl2br }}
  225.                                     </div>
  226.                                 </div>
  227.                             </div>
  228.                         {% endfor %}
  229.                     {% endfor %}
  230.                     <div class="ec-role">
  231.                         <div class="ec-off3Grid">
  232.                             <div class="ec-off3Grid__cell">
  233.                                 <div class="ec-alert-warning">
  234.                                     {#<div class="ec-alert-warning__icon"><img src="{{ asset('assets/img/exclamation-white.svg', 'user_data') }}"></div>#}
  235.                                     <div class="ec-alert-warning__text">{{ '現在カート内に商品はございません。'|trans }}</div>
  236.                                 </div>
  237.                             </div>
  238.                         </div>
  239.                     </div>
  240.                 {% endif %}
  241.                 {# 旧コーディング・処理 終わり #}
  242.     </div>    
  243. </main>
  244. {% endblock %}