質問 > フロント機能 > 価格欄に入力した円をリアルタイム為替換算してドルに表示する |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kinnobitou |
投稿日時: 2018/1/4 20:41
対応状況: −−−
|
常連 登録日: 2010/4/1 居住地: 投稿: 46 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 仙人様
あけましておめでとうございます。 product/product.twigですね。 ありがとうございます。 下記product.twigのどの場所に導入したらいいでしょうか? 色々、聞いてばかりですみません。 宜しくお願い致します。 あと、APIはどうやったらいいですか? -------------------------------------------------------------------- {% extends 'default_frame.twig' %} {% set menus = ['product', 'product_edit'] %} {% block title %}商品管理{% endblock %} {% block sub_title %}商品登録{% endblock %} {% form_theme form 'Form/bootstrap_3_horizontal_layout.html.twig' %} {% block stylesheet %} <link rel="stylesheet" href="{{ app.config.admin_urlpath }}/assets/css/fileupload/jquery.fileupload.css"> <link rel="stylesheet" href="{{ app.config.admin_urlpath }}/assets/css/fileupload/jquery.fileupload-ui.css"> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> <style> .ui-state-highlight { height: 148px; border: dashed 1px #ccc; background: #fff; } </style> {% endblock stylesheet %} {% block javascript %} <script src="{{ app.config.admin_urlpath }}/assets/js/vendor/fileupload/vendor/jquery.ui.widget.js"></script> <script src="{{ app.config.admin_urlpath }}/assets/js/vendor/fileupload/jquery.iframe-transport.js"></script> <script src="{{ app.config.admin_urlpath }}/assets/js/vendor/fileupload/jquery.fileupload.js"></script> <script src="{{ app.config.admin_urlpath }}/assets/js/vendor/fileupload/jquery.fileupload-process.js"></script> <script src="{{ app.config.admin_urlpath }}/assets/js/vendor/fileupload/jquery.fileupload-validate.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> <script> $(function() { $("#thumb").sortable({ cursor: 'move', opacity: 0.7, placeholder: 'ui-state-highlight', update: function (event, ui) { updateRank(); } }); {% if has_class == false %} if ($("#{{ form.class.stock_unlimited.vars.id }}").prop("checked")) { $("#{{ form.class.stock.vars.id }}").attr("disabled", "disabled").val(''); } else { $("#{{ form.class.stock.vars.id }}").removeAttr("disabled"); } $("#{{ form.class.stock_unlimited.vars.id }}").on("click change", function () { if ($(this).prop("checked")) { $("#{{ form.class.stock.vars.id }}").attr("disabled", "disabled").val(''); } else { $("#{{ form.class.stock.vars.id }}").removeAttr("disabled"); } }); {% endif %} var proto_img = '' + '<li class="ui-state-default">' + '<img src="__path__" />' + '<a class="delete-image">' + '<svg class="cb cb-close">' + '<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cb-close"></use>' + '</svg>' + '</a>' + '</li>'; var proto_add = '{{ form_widget(form.add_images.vars.prototype) }}'; var proto_del = '{{ form_widget(form.delete_images.vars.prototype) }}'; {% for image in form.images %} var $img = $(proto_img.replace(/__path__/g, '{{ app.config.image_save_urlpath }}/{{ image.vars.value }}')); var $widget = $('{{ form_widget(image) }}'); $widget.val('{{ image.vars.value }}'); $("#thumb").append($img.append($widget)); {% endfor %} {% for add_image in form.add_images %} var $img = $(proto_img.replace(/__path__/g, '{{ app.config.image_temp_urlpath }}/{{ add_image.vars.value }}')); var $widget = $('{{ form_widget(add_image) }}'); $widget.val('{{ add_image.vars.value }}'); $("#thumb").append($img.append($widget)); {% endfor %} {% for delete_image in form.delete_images %} $("#thumb").append('{{ form_widget(delete_image) }}'); {% endfor %} var hideSvg = function () { if ($("#thumb li").length > 0) { $("#icon_no_image").css("display", "none"); } else { $("#icon_no_image").css("display", ""); } }; var updateRank = function () { $("#thumb li").each(function (index) { $(this).find(".rank_images").remove(); filename = $(this).find("input[type='hidden']").val(); $rank = $('<input type="hidden" class="rank_images" name="rank_images[]" />'); $rank.val(filename + '//' + parseInt(index + 1)); $(this).append($rank); }); } hideSvg(); updateRank(); // 画像削除時 var count_del = 0; $("#thumb").on("click", ".delete-image", function () { var $new_delete_image = $(proto_del.replace(/__name__/g, count_del)); var src = $(this).prev().attr('src') .replace('{{ app.config.image_temp_urlpath }}/', '') .replace('{{ app.config.image_save_urlpath }}/', ''); $new_delete_image.val(src); $("#thumb").append($new_delete_image); $(this).parent("li").remove(); hideSvg(); updateRank(); count_del++; }); var count_add = {{ form.add_images|length|default(0) }}; $('#{{ form.product_image.vars.id }}').fileupload({ url: "{{ url('admin_product_image_add') }}", type: "post", dataType: 'json', done: function (e, data) { $('#progress').hide(); $.each(data.result.files, function (index, file) { var path = '{{ app.config.image_temp_urlpath }}/' + file; var $img = $(proto_img.replace(/__path__/g, path)); var $new_img = $(proto_add.replace(/__name__/g, count_add)); $new_img.val(file); $child = $img.append($new_img); $('#thumb').append($child); count_add++; }); hideSvg(); updateRank(); }, fail: function (e, data) { alert('アップロードに失敗しました。'); }, always: function (e, data) { $('#progress').hide(); $('#progress .progress-bar').width('0%'); }, start: function (e, data) { $('#progress').show(); }, acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, maxFileSize: 10000000, maxNumberOfFiles: 10, progressall: function (e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); $('#progress .progress-bar').css( 'width', progress + '%' ); }, processalways: function (e, data) { if (data.files.error) { alert("画像ファイルサイズが大きいか画像ファイルではありません。"); } } }); // 画像アップロード $('#file_upload').on('click', function () { $('#{{ form.product_image.vars.id }}').click(); }); }); function fnClass(action) { document.form1.action = action; document.form1.submit(); return false; } </script> {% endblock javascript %} {% block main %} <form role="form" name="form1" id="form1" method="post" action="" novalidate enctype="multipart/form-data"> {{ form_widget(form._token) }} <div class="row" id="aside_wrap"> <div id="detail_wrap" class="col-md-9"> <div id="detail_box" class="box form-horizontal"> <div id="detail_box__header" class="box-header"> <h3 class="box-title">基本情報</h3> </div><!-- /.box-header --> <div id="detail_box__body" class="box-body"> {# 商品ID #} {% if Product.id %} <div id="detail_box__id" class="form-group"> <label class="col-sm-3 col-lg-2 control-label">商品ID</label> <div class="col-sm-9 col-lg-10 padT07">{{ Product.id }}</div> </div> {% endif %} {{ form_row(form.name) }} {% if has_class == false %} {{ form_row(form.class.product_type, { attr : { class : 'form-inline padT07' } } ) }} {% endif %} <div id="detail_box__image" class="form-group"> <label class="col-sm-2 control-label" for="admin_product_product_image"> {{ form.product_image.vars.label }}<br> <span class="small">620px以上推奨</span> </label> <div id="detail_files_box" class="col-sm-9 col-lg-10"> <div class="photo_files" id="drag-drop-area"> <svg id="icon_no_image" class="cb cb-photo no-image"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#cb-photo"></use></svg> <ul id="thumb" class="clearfix"></ul> </div> </div> </div> <div class="form-group marB30"> <div id="detail_box__file_upload" class="col-sm-offset-2 col-sm-9 col-lg-10 "> <div id="progress" class="progress progress-striped active" style="display:none;"> <div class="progress-bar progress-bar-info"></div> </div> {{ form_widget(form.product_image, { attr : { accept : 'image/*', style : 'display:none;' } }) }} <a id="file_upload" class="with-icon"> <svg class="cb cb-plus"> <use xlink:href="#cb-plus" /></svg>ファイルをアップロード </a> </div> </div> <div id="detail_description_box" class="form-group"> {{ form_label(form.description_detail) }} <div id="detail_description_box__detail" class="col-sm-9 col-lg-10"> {{ form_widget(form.description_detail) }} <div id="detail_description_box__list" class="accordion marT15 marB20"><a id="detail_description_box__list_toggle" class="toggle with-icon"><svg class="cb cb-plus icon_plus"> <use xlink:href="#cb-plus" /></svg>一覧コメントを追加</a> <div class="accpanel padT08"> {{ form_widget(form.description_list) }} </div> </div> </div> </div> {% if has_class == false %} <div id="detail_box__price" class="form-group"> {{ form_label(form.class.price02) }} <div id="detail_box__price02" class="col-sm-3 col-lg-3"> {{ form_widget(form.class.price02) }} {{ form_errors(form.class.price02) }} <div id="detail_box__price01" class="accordion marT15 marB20"><a class="toggle with-icon"><svg class="cb cb-plus icon_plus"> <use xlink:href="#cb-plus" /></svg>通常価格を追加</a> <input type='text' id='dollars' value=''> <div class="accpanel padT08"> {{ form_widget(form.class.price01) }} {{ form_errors(form.class.price01) }} </div> </div> </div> </div> <div id="detail_box__stock" class="form-group"> {{ form_label(form.class.stock) }} <div class="col-sm-9 col-lg-10"> <div class="row"> <div id="detail_box__unlimited" class="col-xs-12 form-inline"> {{ form_widget(form.class.stock) }} {{ form_errors(form.class.stock) }} {{ form_widget(form.class.stock_unlimited) }} {{ form_errors(form.class.stock_unlimited) }} </div> </div> </div> </div> {% endif %} <div id="detail_category_box" class="form-group"> {{ form_label(form.Category) }} <div class="col-sm-9 col-lg-10"> <div class="accordion marT05"> <a id="detail_category_box__toggle" class="toggle with-icon"><svg class="cb cb-plus icon_plus"> <use xlink:href="#cb-plus" /></svg>カテゴリを選択</a> <div id="detail_category_box__list" class="accpanel padT08{% if form.Category.vars.valid == false %} has-error{% endif %}"> {{ form_widget(form.Category) }} {{ form_errors(form.Category) }} </div> </div> </div> </div> <div id="detail_tag_box" class="form-group"> {{ form_label(form.Tag) }} <div class="col-sm-9 col-lg-10"> <div class="accordion marT05"> <a id="detail_tags_box__toggle" class="toggle with-icon"><svg class="cb cb-plus icon_plus"> <use xlink:href="#cb-plus" /></svg>{{ 'Tag'|trans }}を選択</a> <div id="detail_tags_box__list" class="accpanel padT08"> {{ form_widget(form.Tag) }} {{ form_errors(form.Tag) }} </div> </div> </div> </div> <div class="extra-form"> {% for f in form.getIterator %} {% if f.vars.name matches '[^plg*]' %} {{ form_row(f) }} {% endif %} {% endfor %} </div> </div><!-- /.box-body --> </div><!-- /.box --> <div id="sub_detail_box" class="box accordion form-horizontal"> <div id="sub_detail_box__toggle" class="box-header toggle"> <h3 class="box-title">詳細な設定<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> </div><!-- /.box-header --> <div id="sub_detail_box__body" class="box-body accpanel"> {% if has_class == false %} {{ form_row(form.class.code) }} {{ form_row(form.class.sale_limit) }} {% endif %} {{ form_row(form.search_word) }} {% if has_class == false %} {{ form_row(form.class.delivery_date) }} {% if BaseInfo.option_product_delivery_fee %} <div id="sub_detail_box__delivery_fee" class="form-group"> {{ form_label(form.class.delivery_fee) }} <div class="col-sm-3 col-lg-3"> {{ form_widget(form.class.delivery_fee) }} </div> </div> {% endif %} {% if BaseInfo.option_product_tax_rule %} <div id="sub_detail_box__tax_rate" class="form-group"> {{ form_label(form.class.tax_rate) }} <div class="col-sm-3 col-lg-3"> {{ form_widget(form.class.tax_rate) }} </div> </div> {% endif %} {% endif %} </div> </div> <div id="free_box" class="box accordion"> <div id="free_box__body_toggle" class="box-header toggle"> <h3 class="box-title">フリーエリア<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> </div><!-- /.box-header --> <div id="free_box__body" class="box-body accpanel"> {{ form_widget(form.free_area, {id: 'wysiwyg-area'}) }} </div> </div> <div id="detail_box__footer" class="row hidden-xs hidden-sm"> <div class="col-xs-10 col-xs-offset-1 col-sm-6 col-sm-offset-3 text-center btn_area"> <p><a href="{{ url('admin_product_page', { page_no : app.session.get('eccube.admin.product.search.page_no')|default('1') } ) }}?resume=1">検索画面に戻る</a></p> </div> </div> </div><!-- /.col --> <div id="common_box" class="col-md-3"> <div class="col_inner" id="aside_column"> <div id="common_button_box" class="box no-header"> <div id="common_button_box__body" class="box-body"> <div id="common_button_box__status" class="row"> <div class="col-xs-12"> <div class="form-group"> {{ form_widget(form.Status) }} {{ form_errors(form.Status) }} </div> </div> </div> <div id="common_button_box__insert_button" class="row text-center"> <div class="col-sm-6 col-sm-offset-3 col-md-12 col-md-offset-0"> <button type="submit" class="btn btn-primary btn-block btn-lg prevention-btn prevention-mask" >商品を登録</button> </div> </div> <div id="common_button_box__class_set_button" class="row text-center with-border"> <div class="col-sm-6 col-sm-offset-3 col-md-12 col-md-offset-0"> {% if id is null %} <button class="btn btn-default btn-block btn-sm" disabled> 規格設定 </button> {% else %} <button class="btn btn-default btn-block btn-sm" onclick="fnClass('{{ url('admin_product_product_class', { 'id' : id }) }}');return false;"> 規格設定 </button> {% endif %} </div> </div> <div id="common_button_box__operation_button" class="row text-center with-border"> <div class="col-sm-6 col-sm-offset-3 col-md-12 col-md-offset-0"> <ul class="col-3"> {% if id is null %} <li> <button class="btn btn-default btn-block btn-sm" disabled> 確認 </button> </li> <li> <button class="btn btn-default btn-block btn-sm" disabled> 複製 </button> </li> <li> <button class="btn btn-default btn-block btn-sm" disabled> 削除 </button> </li> {% else %} <li> <a class="btn btn-default btn-block btn-sm" href="{{ url('admin_product_product_display', {'id' : id}) }}" target="_blank"> 確認 </a> </li> <li> <a class="btn btn-default btn-block btn-sm" href="{{ url('admin_product_product_copy', {'id' : Product.id}) }}" {{ csrf_token_for_anchor() }} data-method="post" data-message="この商品情報を複製してもよろしいですか?"> 複製 </a> </li> <li> <a class="btn btn-default btn-block btn-sm" href="{{ url('admin_product_product_delete', {'id' : Product.id}) }}" {{ csrf_token_for_anchor() }} data-method="delete" data-message="この商品情報を削除してもよろしいですか?"> 削除 </a> </li> {% endif %} </ul> </div> </div> </div><!-- /.box-body --> </div><!-- /.box --> <div id="common_date_info_box" class="box no-header"> <div id="common_date_info_box__body" class="box-body update-area"> <p><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>登録日:{{ Product.create_date|date_format }}</p> <p><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>更新日:{{ Product.update_date|date_format }}</p> </div> </div><!-- /.box --> <div id="common_shop_note_box" class="box"> <div id="common_shop_note_box__header" class="box-header"> <h3 class="box-title">ショップ用メモ欄</h3> </div><!-- /.box-header --> <div id="common_shop_note_box__body" class="box-body"> {{ form_widget(form.note) }} </div> </div> </div> </div><!-- /.col --> </div> </form> {% endblock %} |
umebius |
投稿日時: 2017/12/26 7:21
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 失礼いたしました。商品規格は使用されていないことが前提ですが、
Order/edit.twigではなく admin/Product/product.twigでした。 {{ form_label(form.class.price02) }}が販売価格ですので、その上あたりで良いのではないでしょうか。
|
kinnobitou |
投稿日時: 2017/12/26 0:44
対応状況: −−−
|
常連 登録日: 2010/4/1 居住地: 投稿: 46 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 仙人様
返信ありがとうございます。 Order/edit.twingを開いたのですが、どの箇所に「<input type='text' id='dollars' value=''>」を 入力したらよいのでしょうか? 宜しくお願い致します。 <script src="//ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script> <script> $(function() { $('#zip-search').click(function() { AjaxZip3.zip2addr('order[zip][zip01]', 'order[zip][zip02]', 'order[address][pref]', 'order[address][addr01]'); }); // 注文者情報をコピー $('.copyCustomerToShippingButton').on('click', function() { var data = $(this).data(); var idx = data.idx; $('#order_Shippings_' + idx + '_name_name01').val($('#order_name_name01').val()); $('#order_Shippings_' + idx + '_name_name02').val($('#order_name_name02').val()); $('#order_Shippings_' + idx + '_kana_kana01').val($('#order_kana_kana01').val()); $('#order_Shippings_' + idx + '_kana_kana02').val($('#order_kana_kana02').val()); $('#order_Shippings_' + idx + '_zip_zip01').val($('#order_zip_zip01').val()); $('#order_Shippings_' + idx + '_zip_zip02').val($('#order_zip_zip02').val()); $('#order_Shippings_' + idx + '_address_pref').val($('#order_address_pref').val()); $('#order_Shippings_' + idx + '_address_addr01').val($('#order_address_addr01').val()); $('#order_Shippings_' + idx + '_address_addr02').val($('#order_address_addr02').val()); $('#order_Shippings_' + idx + '_email').val($('#order_email').val()); $('#order_Shippings_' + idx + '_tel_tel01').val($('#order_tel_tel01').val()); $('#order_Shippings_' + idx + '_tel_tel02').val($('#order_tel_tel02').val()); $('#order_Shippings_' + idx + '_tel_tel03').val($('#order_tel_tel03').val()); $('#order_Shippings_' + idx + '_fax_fax01').val($('#order_fax_fax01').val()); $('#order_Shippings_' + idx + '_fax_fax02').val($('#order_fax_fax02').val()); $('#order_Shippings_' + idx + '_fax_fax03').val($('#order_fax_fax03').val()); $('#order_Shippings_' + idx + '_company_name').val($('#order_company_name').val()); }); // 会員検索 $('#searchCustomerModalButton').on('click', function() { var list = $('#searchCustomerModalList'); list.children().remove(); $.ajax({ type: 'POST', dataType: 'html', data: { 'search_word' : $('#admin_search_customer_multi').val() }, url: '{{ url('admin_order_search_customer_html') }}', success: function(data) { // モーダルに結果を書き出し. $('#searchCustomerModalList').html(data); }, error: function() { alert('search customer failed.'); } }); }); $('#searchProductModal').on('show.bs.modal', function (event) { var button = $(event.relatedTarget); var idx = button.data('idx'); var modal = $(this); modal.find('#searchProductModalButton').attr('data-idx', idx); }); // 商品検索 $('#searchProductModalButton').on('click', function() { var list = $('#searchProductModalList'); list.children().remove(); var data = $(this).data(); shipment_idx = data.idx; shipmentItem_idx = $('.shipment_item_idx' + shipment_idx).length; $.ajax({ type: 'POST', dataType: 'html', data: { 'id' : $('#admin_search_product_id').val(), 'category_id' : $('#admin_search_product_category_id').val() }, url: '{{ url('admin_order_search_product') }}', success: function(data) { // モーダルに結果を書き出し. $('#searchProductModalList').html(data); }, error: function() { alert('search product failed.'); } }); }); // 受注明細行の行数カウンタ. // 受注登録・編集画面上でグローバルな変数. // search_product.twig/order_detail_prototype.twigで利用しています. order_details_count = '{{ form.OrderDetails|length }}'; // 項目数が多く、入力している項目によってEnter押下時に期待する動作が変わるので、いったん禁止 $("input").on("keydown", function(e) { if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { return false; } else { return true; } }); $(".delete-item").on("click", function(){ $(this).parents(".item_box").remove(); order_details_count--; onChangeOrderDetailCount(order_details_count); }); var onChangeOrderDetailCount = function(order_details_count) { if (order_details_count == 1) { $(".delete-item").attr("disabled", "disabled"); } else { $(".delete-item").removeAttr("disabled"); } }; onChangeOrderDetailCount(); // 配送業者選択時にお届け時間を設定 var times = {{ shippingDeliveryTimes|raw }}; $('.shipping-delivery').change(function(){ var data = $(this).data(); setShippingDeliveryTime($(this).val(), data.idx); }); function setShippingDeliveryTime(val, idx){ var $shippingDeliveryTime = $('.shipping-delivery-time[data-idx="' + idx + '"]'); $shippingDeliveryTime.find('option').remove(); $shippingDeliveryTime.append($('<option></option>').val('').text('指定なし')); if (typeof(times[val]) !== 'undefined') { for (var key in times[val]){ text = times[val][key]; $shippingDeliveryTime.append($('<option></option>') .val(key) .text(text)); } } } }); var setModeAndSubmit = function(mode, keyname, keyid) { document.form1.modal.value = mode; if(keyname !== undefined && keyname !== "" && keyid !== undefined && keyid !== "") { document.form1[keyname].value = keyid; } document.form1.submit(); }; </script> {% endblock javascript %} {% block main %} <div class="row" id="aside_wrap"> <form name="form1" method="post" action="?"> <input type="hidden" name="modal" value=""> {{ form_widget(form._token) }} <div id="detail_wrap" class="col-md-12"> <div class="col_inner"> <div id="number_info_box" class="box no-header"> <div id="number_info_box__body" class="box-body"> <div class="row"> <div id="number_info_box__order_status" class="col-sm-4"> <h4>注文番号 <span class="number">{{ Order.id }}</span></h4> <div class="form-group"> {{ form_widget(form.OrderStatus) }} {{ form_errors(form.OrderStatus) }} </div> <div id="number_info_box__order_status_info" class="small text-danger">キャンセルの場合は在庫数を手動で戻してください</div> </div> <div class="col-sm-6 col-sm-offset-2"> <p id="number_info_box__order_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>受注日:{{ Order.order_date ? Order.order_date |date("Y/m/d H:i:s") : '' }}</p> <p id="number_info_box__payment_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>入金日:{{ Order.payment_date ? Order.payment_date|date("Y/m/d H:i:s") : '' }}</p> <p id="number_info_box__commit_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>発送日:{{ Order.commit_date ? Order.commit_date|date("Y/m/d H:i:s") : '' }}</p> <p id="number_info_box__update_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>更新日:{{ Order.update_date ? Order.update_date|date("Y/m/d H:i:s") : '' }}</p> </div> </div> </div><!-- /.box-body --> </div><!-- /.box --> </div> <div id="customer_info_box" class="box accordion"> <div id="customer_info_box__toggle" class="box-header toggle active"> <h3 class="box-title">注文者情報<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> </div><!-- /.box-header --> <div id="customer_info_box__body" class="box-body accpanel" style="display: block;"> <div id="customer_info_list" class="order_list form-horizontal"> {% if Order.id is empty %} <div id="customer_info_list__button_search" class="btn_area"> <ul> <li><a class="btn btn-default" data-toggle="modal" data-target="#searchCustomerModal">会員検索</a></li> </ul> </div> {% endif %} <div id="customer_info_list__customer" class="form-group"> <div class="col-sm-3 col-lg-2">会員ID</div> <div class="col-sm-9 col-lg-10"> <p id="order_CustomerId">{{ form.Customer.vars.value is empty ? '非会員' : form.Customer.vars.value }}</p> {{ form_widget(form.Customer) }} {{ form_errors(form.Customer) }} </div> </div> <div id="customer_info_list__name" class="form-group"> {{ form_label(form.name) }} <div class="col-sm-9 col-lg-10 input_name form-inline"> {{ form_widget(form.name.name01, { attr : { placeholder: '姓' }}) }} {{ form_widget(form.name.name02, { attr : { placeholder: '名' }}) }} {{ form_errors(form.name.name01) }} {{ form_errors(form.name.name02) }} </div> </div> <div id="customer_info_list__kana" class="form-group"> {{ form_label(form.kana) }} <div class="col-sm-9 col-lg-10 input_name form-inline"> {{ form_widget(form.kana.kana01, { attr : { placeholder : 'セイ' }}) }} {{ form_widget(form.kana.kana02, { attr : { placeholder : 'メイ' }}) }} {{ form_errors(form.kana.kana01) }} {{ form_errors(form.kana.kana02) }} </div> </div> {# 住所:郵便番号 #} <div id="customer_info_list__address" class="form-group"> {{ form_label(form.address) }} <div id="customer_info_list__zip" class="col-sm-9 col-lg-10 input_zip form-inline"> 〒{{ form_widget(form.zip.zip01) }}-{{ form_widget(form.zip.zip02) }} {{ form_errors(form.zip.zip01) }} {{ form_errors(form.zip.zip02) }} <span><button type="button" id="zip-search" class="btn btn-default btn-sm">郵便番号から自動入力</button></span> </div> </div> {# 住所:都道府県 #} <div class="form-group"> <div id="customer_info_list__pref" class="col-sm-offset-2 col-sm-9 col-lg-10 form-inline"> {{ form_widget(form.address.pref) }} {{ form_errors(form.address.pref) }} </div> </div> {# 住所:住所1 #} <div class="form-group"> <div id="customer_info_list__addr01" class="col-sm-offset-2 col-sm-9 col-lg-10"> {{ form_widget(form.address.addr01, { attr : { placeholder : '市区町村名(例:千代田区神田神保町)'}} ) }} {{ form_errors(form.address.addr01) }} </div> </div> {# 住所:住所2 #} <div class="form-group"> <div id="customer_info_list__addr02" class="col-sm-offset-2 col-sm-9 col-lg-10"> {{ form_widget(form.address.addr02, { attr : { placeholder : '番地・ビル名(例:1-3-5)' }}) }} {{ form_errors(form.address.addr02) }} </div> </div> {# メールアドレス #} <div id="customer_info_list__email" class="form-group"> {{ form_label(form.email) }} <div class="col-sm-9 col-lg-10"> {{ form_widget(form.email) }} {{ form_errors(form.email) }} </div> </div> {# 電話番号 #} <div id="customer_info_list__tel" class="form-group"> {{ form_label(form.tel) }} <div class="col-sm-9 col-lg-10 input_tel form-inline"> {{ form_widget(form.tel.tel01) }}-{{ form_widget(form.tel.tel02) }}-{{ form_widget(form.tel.tel03) }} {{ form_errors(form.tel.tel01) }} {{ form_errors(form.tel.tel02) }} {{ form_errors(form.tel.tel03) }} </div> </div> {# FAX番号 #} <div id="customer_info_list__fax" class="form-group"> {{ form_label(form.fax) }} <div class="col-sm-9 col-lg-10 input_tel form-inline"> {{ form_widget(form.fax.fax01) }}-{{ form_widget(form.fax.fax02) }}-{{ form_widget(form.fax.fax03) }} {{ form_errors(form.fax) }} </div> </div> {# 会社名 #} <div id="customer_info_list__company_name" class="form-group"> {{ form_label(form.company_name) }} <div class="col-sm-9 col-lg-10"> {{ form_widget(form.company_name) }} {{ form_errors(form.company_name) }} </div> </div> {# 注文時お問い合わせ #} <div id="customer_info_list__message" class="form-group"> {{ form_label(form.message) }} <div class="col-sm-9 col-lg-10"> {{ form_widget(form.message, { attr : { placeholder : '3000文字まで入力可能' }}) }} {{ form_errors(form.message) }} </div> </div> </div> </div><!-- /.box-body --> </div><!-- /.box --> <div id="product_info_box" class="box accordion"> <div id="product_info_box__toggle" class="box-header toggle active"> <h3 class="box-title">受注商品情報<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> </div><!-- /.box-header --> <div id="product_info_box__body" class="box-body accpanel" style="display: block;"> <div id="product_info_list" class="order_list"> <div class="btn_area"> <ul id="product_info_list__search_menu"> {% if BaseInfo.optionMultipleShipping != 1 %} <li><a class="btn btn-default" data-toggle="modal" data-target="#searchProductModal">商品の追加</a></li> {% endif %} <li><button type="submit" class="btn btn-default" name="mode" value="calc">計算結果の更新</button></li> </ul> </div> <div class="tableish" id="order_detail_list" data-prototype=" {% filter escape %} {{ include('Order/order_detail_prototype.twig', { 'orderDetailForm': form.OrderDetails.vars.prototype }) }} {% endfilter %}"> {% for orderDetailForm in form.OrderDetails %} <div id="product_info_list__item--{{ loop.index }}" class="item_box"> {{ form_widget(orderDetailForm.Product) }} {{ form_widget(orderDetailForm.ProductClass) }} {{ form_widget(orderDetailForm.product_name) }} {{ form_widget(orderDetailForm.product_code) }} {{ form_widget(orderDetailForm.class_name1) }} {{ form_widget(orderDetailForm.class_name2) }} {{ form_widget(orderDetailForm.class_category_name1) }} {{ form_widget(orderDetailForm.class_category_name2) }} {{ form_widget(orderDetailForm.tax_rule) }} <div id="product_info_list__item_detail--{{ loop.index }}" class="item_detail"> <div id="product_info_list__detail_name--{{ loop.index }}" class="item_name_area"> <strong id="product_info_list__product_name--{{ loop.index }}" class="item_name">{{ orderDetailForm.vars.value.product_name }}</strong><br> <span id="product_info_list__product_code--{{ loop.index }}" class="item_id small">{{ orderDetailForm.vars.value.product_code }}</span> <span id="product_info_list__class_category_name--{{ loop.index }}" class="item_pattern small"> {% if orderDetailForm.vars.value.class_category_name1 is not empty %} / ( {{ orderDetailForm.vars.value.class_name1 }}: {{ orderDetailForm.vars.value.class_category_name1 }} {% if orderDetailForm.vars.value.class_category_name2 is not empty %} / {{ orderDetailForm.vars.value.class_name2 }}: {{ orderDetailForm.vars.value.class_category_name2 }} {% endif %} ) {% endif %} </span> </div> <div class="row"> <div id="product_info_list__price--{{ loop.index }}" class="col-md-4 col-lg-3 form-group form-inline text-right"> <span class="input-group item_price col-xs-8 col-sm-6 col-md-12"> {{ form_widget(orderDetailForm.price) }} {{ form_errors(orderDetailForm.price) }} </span> </div> <div class="col-md-4 col-lg-3 form-group form-inline text-right"> <span id="product_info_list__quantity--{{ loop.index }}" class="item_quantity"> {% if BaseInfo.optionMultipleShipping %} 数量:{{ form_widget(orderDetailForm.quantity, {'read_only': 'readonly'}) }} {% else %} 数量:{{ form_widget(orderDetailForm.quantity) }} {% endif %} {{ form_errors(orderDetailForm.quantity) }} </span> </div> <div class="col-md-4 col-lg-3 form-group form-inline text-right"> <span id="product_info_list__tax_rate--{{ loop.index }}" class="item_tax"> 税率: <span class="input-group"> {{ form_widget(orderDetailForm.tax_rate) }} {{ form_errors(orderDetailForm.tax_rate) }} <span class="input-group-addon">%</span> </span> </span> </div> <div id="product_info_list__total_price--{{ loop.index }}" class="col-md-12 col-lg-3 item_subtotal text-right"> <span>小計:</span> {{ orderDetailForm.vars.value.total_price|price }} </div> </div> </div> {% if BaseInfo.optionMultipleShipping %} {% else %} <div id="product_info_list__button_multiple_shipping_delete--{{ loop.index }}" class="icon_edit"> <button type="button" class="btn btn-default btn-sm delete-item">削除</button> </div> {% endif %} </div><!-- /.item_box --> {% endfor %} </div> <div id="product_info_result_box__sub_price" class="row with-border2 no-margin text-right"> <div class="col-lg-7 col-lg-offset-5"> <dl id="product_info_result_box__body_sub_price" class="dl-horizontal"> <dt id="product_info_result_box__subtotal">小計:</dt> <dd>{{ Order.subtotal|price }}</dd> <dt id="product_info_result_box__discount">値引き:</dt> <dd class="form-group form-inline"> {{ form_widget(form.discount) }} {{ form_errors(form.discount) }} </dd> <dt id="product_info_result_box__delivery_fee_total">送料:</dt> <dd class="form-group form-inline"> {{ form_widget(form.delivery_fee_total) }} {{ form_errors(form.delivery_fee_total) }} </dd> <dt id="product_info_result_box__charge">手数料:</dt> <dd class="form-group form-inline"> {{ form_widget(form.charge) }} {{ form_errors(form.charge) }} </dd> </dl> </div> </div> <div id="product_info_result_box__summary" class="row with-border2 no-margin text-right ta"> <div class="col-lg-7 col-lg-offset-5"> <dl id="product_info_result_box__body_summary" class="dl-horizontal"> <dt id="product_info_result_box__total">合計:</dt> <dd>{{ Order.total|price }}</dd> <dt id="product_info_result_box__payment_total">お支払合計:</dt> <dd>{{ Order.payment_total|price }}</dd> </dl> </div> </div> </div> </div> </div> {# お支払情報 #} <div id="payment_info_box" class="box accordion"> <div id="payment_info_box__toggle" class="box-header toggle active"> <h3 class="box-title">お支払情報<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> </div><!-- /.box-header --> <div id="payment_info_box__body" class="box-body accpanel" style="display: block;"> <dl id="payment_info_box__payment_method" class="dl-horizontal"> <dt>お支払方法</dt> <dd class="form-group form-inline"> {{ form.vars.value.payment_method }}<br/> {{ form_widget(form.Payment) }} {{ form_errors(form.Payment) }} <p class="small">お支払方法の変更に伴う手数料の変更は手動にてお願いします。</p> </dd> </dl> </div> </div> {# お届け先情報 #} {% if BaseInfo.optionMultipleShipping %} <div id="shipping_info__button_new"><button type="submit" class="btn btn-default" name="mode" value="add_delivery">お届け先を新規追加</button></div> {% endif %} {% for shippingForm in form.Shippings %} {% set shippingIndex = loop.index0 %} <div id="shipping_info_box--{{ loop.index }}" class="box accordion"> <div id="shipping_info_box__toggle--{{ loop.index }}" class="box-header toggle active"> <h3 class="box-title">お届け先情報{% if form.Shippings|length > 1 %}({{ loop.index }}){% endif %}<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> </div><!-- /.box-header --> <div id="shipping_info_box__body--{{ loop.index }}" class="box-body accpanel" style="display: block;"> <div id="shipping_info_list--{{ loop.index }}" class="order_list"> <div class="btn_area"> <ul id="shipping_info_list__menu--{{ loop.index }}"> <li><a class="btn btn-default copyCustomerToShippingButton" data-idx="{{ loop.index0 }}">注文者情報をコピー</a></li> {% if BaseInfo.optionMultipleShipping %} <li><a class="btn btn-default" data-toggle="modal" data-target="#searchProductModal" data-idx="{{ loop.index0 }}">商品の追加</a></li> {% endif %} </ul> </div> {% if BaseInfo.optionMultipleShipping %} <div class="tableish" id="shipment_item_list{{ loop.index0 }}" data-prototype=" {% filter escape %} {{ include('Order/shipment_item_prototype.twig', { 'shipmentItemForm': shippingForm.ShipmentItems.vars.prototype }) }} {% endfilter %}"> {% for shipmentItemForm in shippingForm.ShipmentItems %} <div id="shipment_item__id--{{ shippingIndex }}" class="item_box shipment_item_idx{{ shippingIndex }}"> {{ form_widget(shipmentItemForm.Product) }} {{ form_widget(shipmentItemForm.ProductClass) }} {{ form_widget(shipmentItemForm.Product) }} {{ form_widget(shipmentItemForm.ProductClass) }} {{ form_widget(shipmentItemForm.product_name) }} {{ form_widget(shipmentItemForm.product_code) }} {{ form_widget(shipmentItemForm.class_name1) }} {{ form_widget(shipmentItemForm.class_name2) }} {{ form_widget(shipmentItemForm.class_category_name1) }} {{ form_widget(shipmentItemForm.class_category_name2) }} <div id="shipment_item__detail--{{ shippingIndex }}" class="item_detail"> <div id="shipment_item__name_detail--{{ shippingIndex }}" class="item_name_area"> <strong id="shipment_item__product_name--{{ shippingIndex }}" class="item_name">{{ shipmentItemForm.vars.value.product_name }}</strong><br> <span id="shipment_item__product_code--{{ shippingIndex }}" class="item_id small">{{ shipmentItemForm.vars.value.product_code }}</span> <span id="shipment_item__class_category_name--{{ shippingIndex }}" class="item_pattern small"> {% if shipmentItemForm.vars.value.class_category_name1 is not empty %} / ( {{ shipmentItemForm.vars.value.class_name1 }}: {{ shipmentItemForm.vars.value.class_category_name1 }} {% if shipmentItemForm.vars.value.class_category_name2 is not empty %} / {{ shipmentItemForm.vars.value.class_name2 }}: {{ shipmentItemForm.vars.value.class_category_name2 }} {% endif %} ) {% endif %} </span> </div> <div id="shipment_item__info_item--{{ shippingIndex }}" class="row"> <div id="shipment_item__price--{{ shippingIndex }}" class="col-md-4 col-lg-3 form-group form-inline text-right"> {{ form_widget(shipmentItemForm.price, {'read_only': 'readonly'}) }} </div> <div id="shipment_item__quantity--{{ shippingIndex }}" class="col-md-4 col-lg-3 form-group form-inline text-right"> <span class="item_quantity"> 数量:{{ form_widget(shipmentItemForm.quantity, {'attr': {'class': 'shipment_quantity'}}) }} {{ form_errors(shipmentItemForm.quantity) }} </span> </div> </div> </div> </div><!-- /.item_box --> {% endfor %} </div> {% endif %} <hr> <div id="shipment_item_detail--{{ loop.index }}" class="form-horizontal"> <div id="shipment_item_detail__name--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.name) }} <div class="col-sm-9 col-lg-10 input_name form-inline"> {{ form_widget(shippingForm.name.name01, { attr : { placeholder: '姓' }}) }} {{ form_widget(shippingForm.name.name02, { attr : { placeholder: '名' }}) }} {{ form_errors(shippingForm.name.name01) }} {{ form_errors(shippingForm.name.name02) }} </div> </div> <div id="shipment_item_detail__kana--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.kana) }} <div class="col-sm-9 col-lg-10 input_name form-inline"> {{ form_widget(shippingForm.kana.kana01, { attr : { placeholder : 'セイ' }}) }} {{ form_widget(shippingForm.kana.kana02, { attr : { placeholder : 'メイ' }}) }} {{ form_errors(shippingForm.kana.kana01) }} {{ form_errors(shippingForm.kana.kana02) }} </div> </div> <div id="shipment_item_detail__company_name--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.company_name) }} <div class="col-sm-9 col-lg-10"> {{ form_widget(shippingForm.company_name) }} {{ form_errors(shippingForm.company_name) }} </div> </div> {# 住所:郵便番号 #} <div id="shipment_item_detail__address--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.address) }} <div id="shipment_item_detail__zip--{{ loop.index }}" class="col-sm-9 col-lg-10 input_zip form-inline"> 〒{{ form_widget(shippingForm.zip.zip01) }}-{{ form_widget(shippingForm.zip.zip02) }} {{ form_errors(shippingForm.zip.zip01) }} {{ form_errors(shippingForm.zip.zip02) }} </div> </div> {# 住所:都道府県 #} <div class="form-group"> <div id="shipment_item_detail__pref--{{ loop.index }}" class="col-sm-offset-2 col-sm-9 col-lg-10 form-inline"> {{ form_widget(shippingForm.address.pref) }} {{ form_errors(shippingForm.address.pref) }} </div> </div> {# 住所:住所1 #} <div class="form-group"> <div id="shipment_item_detail__addr01--{{ loop.index }}" class="col-sm-offset-2 col-sm-9 col-lg-10"> {{ form_widget(shippingForm.address.addr01, { attr : { placeholder : '市区町村名(例:千代田区神田神保町)'}} ) }} {{ form_errors(shippingForm.address.addr01) }} </div> </div> {# 住所:住所2 #} <div class="form-group"> <div id="shipment_item_detail__addr02--{{ loop.index }}" class="col-sm-offset-2 col-sm-9 col-lg-10"> {{ form_widget(shippingForm.address.addr02, { attr : { placeholder : '番地・ビル名(例:1-3-5)' }}) }} {{ form_errors(shippingForm.address.addr02) }} </div> </div> {# 電話番号 #} <div id="shipment_item_detail__tel--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.tel) }} <div class="col-sm-9 col-lg-10 input_tel form-inline"> {{ form_widget(shippingForm.tel.tel01) }}-{{ form_widget(shippingForm.tel.tel02) }}-{{ form_widget(shippingForm.tel.tel03) }} {{ form_errors(shippingForm.tel.tel01) }} {{ form_errors(shippingForm.tel.tel02) }} {{ form_errors(shippingForm.tel.tel03) }} </div> </div> {# FAX番号 #} <div id="shipment_item_detail__fax--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.fax) }} <div class="col-sm-9 col-lg-10 input_tel form-inline"> {{ form_widget(shippingForm.fax.fax01) }}-{{ form_widget(shippingForm.fax.fax02) }}-{{ form_widget(shippingForm.fax.fax03) }} {{ form_errors(shippingForm.fax) }} </div> </div> {# 配送業者 #} <div id="shipment_item_detail__delivery--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.Delivery) }} <div id="shipment_item_detail__delivery_name--{{ loop.index }}" class="col-sm-9 col-lg-10"> {% if shippingForm.vars.value.shipping_delivery_name is not empty %} {{ shippingForm.vars.value.shipping_delivery_name }}<br/> {% endif %} {{ form_widget(shippingForm.Delivery, {'attr': {'style': 'width:auto', 'class': 'shipping-delivery', 'data-idx': loop.index0}}) }} {{ form_errors(shippingForm.Delivery) }} </div> </div> {# お届け時間 #} <div id="shipment_item_detail__delivery_time--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.DeliveryTime) }} <div class="col-sm-9 col-lg-10"> {% if shippingForm.vars.value.shipping_delivery_time is not empty %} {{ shippingForm.vars.value.shipping_delivery_time }}<br/> {% else %} 指定なし {% endif %} {{ form_widget(shippingForm.DeliveryTime, {'attr': {'style': 'width:auto', 'class': 'shipping-delivery-time', 'data-idx': loop.index0}}) }} {{ form_errors(shippingForm.DeliveryTime) }} </div> </div> {# お届け日 #} <div id="shipment_item_detail__shipping_delivery_date--{{ loop.index }}" class="form-group"> {{ form_label(shippingForm.shipping_delivery_date) }} <div class="col-sm-9 col-lg-10"> {{ form_widget(shippingForm.shipping_delivery_date) }} {{ form_errors(shippingForm.shipping_delivery_date) }} </div> </div> <div class="extra-form"> {% for f in form.getIterator %} {% if f.vars.name matches '[^plg*]' %} {{ form_row(f) }} {% endif %} {% endfor %} </div> </div> </div> </div><!-- /.box-body --> </div> {% endfor %} <div id="shop_info_box" class="box"> <div id="shop_info_box__header" class="box-header"> <h3 class="box-title">ショップ用メモ欄</h3> </div><!-- /.box-header --> <div id="shop_info_box__note" class="box-body">{{ form_widget(form.note) }}</div> </div><!-- /.box --> <div id="detail__insert_button" class="row btn_area"> <p class="col-xs-8 col-xs-offset-2 col-sm-4 col-sm-offset-4 text-center"> <button type="submit" class="btn btn-primary btn-block btn-lg" name="mode" value="register">受注情報を登録</button> </p> <!-- /.col --> </div> <div id="detail__back_button" class="row hidden-xs hidden-sm"> <div class="col-xs-10 col-xs-offset-1 col-sm-6 col-sm-offset-3 text-center btn_area"> {% if id is not null %} <p><a href="{{ url('admin_order_page', { page_no: app.session.get('eccube.admin.order.search.page_no')|default('1') }) }}?resume=1">戻る</a></p> {% endif %} </div> </div> </div><!-- /.col --> </form> </div> {% endblock %} {% block modal %} {# 会員検索モーダル #} <div class="modal fade" id="searchCustomerModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div id="search_customer_modal_box" class="modal-content"> <div id="search_customer_modal_box__header" class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span class="modal-close" aria-hidden="true">×</span></button> <h4 class="modal-title" id="myModalLabel">会員検索</h4> </div> <div id="search_customer_modal_box__body" class="modal-body"> <div class="form-group"> {{ form_widget(searchCustomerModalForm.multi, { attr : { placeholder : '会員ID・メールアドレス・お名前' } } ) }} </div> <div class="extra-form form-group"> {% for f in searchCustomerModalForm.getIterator %} {% if f.vars.name matches '[^plg*]' %} {{ form_label(f) }} {{ form_widget(f) }} {{ form_errors(f) }} {% endif %} {% endfor %} </div> <div id="search_customer_modal_box__button_search" class="form-group"> <button type="button" id="searchCustomerModalButton" class="btn btn-primary" >検索</button> </div> <div class="form-group" id="searchCustomerModalList"> </div> </div> </div> </div> </div> {# 商品検索モーダル #} <div class="modal fade" id="searchProductModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div id="search_product_modal_box" class="modal-content"> <div id="search_product_modal_box__header" class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span class="modal-close" aria-hidden="true">×</span></button> <h4 class="modal-title" id="myModalLabel">商品検索</h4> </div> <div id="search_product_modal_box__body" class="modal-body"> <div id="search_product_modal_box__id" class="form-group"> {{ form_widget(searchProductModalForm.id, { attr : { placeholder : '商品名・ID・コード' } } ) }} </div> <div id="search_product_modal_box__category_id" class="form-group"> {{ form_widget(searchProductModalForm.category_id) }} </div> <div class="extra-form form-group"> {% for f in searchProductModalForm.getIterator %} {% if f.vars.name matches '[^plg*]' %} {{ form_label(f) }} {{ form_widget(f) }} {{ form_errors(f) }} {% endif %} {% endfor %} </div> <div id="search_product_modal_box__button_search" class="form-group"> <button type="button" id="searchProductModalButton" class="btn btn-primary">検索</button> </div> <div class="form-group" id="searchProductModalList"> </div> </div> </div> </div> </div> |
umebius |
投稿日時: 2017/12/22 12:20
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 引用:
まず、Admin/Order/edit.twigを編集してドル入力用のフォームを追加 最低限これで問題ないかと思います。 <input type='text' id='dollars' value=''> |
kinnobitou |
投稿日時: 2017/12/21 17:35
対応状況: −−−
|
常連 登録日: 2010/4/1 居住地: 投稿: 46 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 仙人様
いつもありがとうございます。 貴方がいないと何もできません。感謝です。 素人なもので、もう少し具体的に教えて頂きたいです。 ------------------------------------------------------------------ まず、Admin/Order/edit.twigを編集してドル入力用のフォームを追加 Q.フォームはどうやって追加したらいいのですか? タグを教えて頂きたいです。 ------------------------------------------------------------------ ドル入力用フォームの入力値を使ってjavascriptで為替レートAPIに送信して円の値を取得、元々存在する販売価格フォームに入力すれば良いかと思います。 Q.ちんぷんかんぷんで具体的にどうやってやるのか教えて頂きたいです。 ------------------------------------------------------------------------- お忙しい中申し訳ございませんが宜しくお願い致します。 |
umebius |
投稿日時: 2017/12/20 20:36
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する kinnobitou様
まず、Admin/Order/edit.twigを編集してドル入力用のフォームを追加 ドル入力用フォームの入力値を使ってjavascriptで為替レートAPIに送信して円の値を取得、元々存在する販売価格フォームに入力すれば良いかと思います。
|
kinnobitou |
投稿日時: 2017/12/20 20:08
対応状況: −−−
|
常連 登録日: 2010/4/1 居住地: 投稿: 46 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する eccubeに詳しい方教えて頂けませんでしょうか...
先へ進めず、どうしたらいいのか。わかりません。 下記をするには具体的にどこを修正すればいいのでしょうか? 宜しくお願い致します。 -------------------------------------------------------- 【質問内容】 ドルの場合、登録した時の為替レートによって、日本円に換算してDBに保存、フロント側に、日本円を表示する。 |
kinnobitou |
投稿日時: 2017/12/3 9:30
対応状況: −−−
|
常連 登録日: 2010/4/1 居住地: 投稿: 46 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する kikurin様
返信ありがとうございます。 ①kikurin様の言う通り下記のようにだけしたいです。 私が希望していたのはまさにこれです! 説明下手ですみません。 ドルの場合、登録した時の為替レートによって、日本円に換算してDBに保存、フロント側に、日本円を表示する。 方法はございますでしょうか。 宜しくお願い致します。 ------------------------------------------------------------------------------ Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 突然にすみませんが、 ちょっと整理したいです。 まず、以下の質問をしたいですが、 ①管理画面で、新規商品登録の時、 日本円とドルの中から1つ選択して、値段を入力する。 日本円で値段を入力すれば、そのままその値段をDBに保存して、フロントに表示する。 ドルの場合、登録した時の為替レートによって、日本円に換算してDBに保存、フロント側に、日本円を表示する。 という要求ですか? ②商品を登録した時の日本円を記録させて、 そのあと、為替レートの換算率が変更されても、登録した時の日本円の値段を表示する。 この認識は正しいですか? |
kikurin |
投稿日時: 2017/11/29 12:44
対応状況: −−−
|
新米 登録日: 2017/11/29 居住地: 投稿: 1 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 突然にすみませんが、
ちょっと整理したいです。 まず、以下の質問をしたいですが、 ①管理画面で、新規商品登録の時、 日本円とドルの中から1つ選択して、値段を入力する。 日本円で値段を入力すれば、そのままその値段をDBに保存して、フロントに表示する。 ドルの場合、登録した時の為替レートによって、日本円に換算してDBに保存、フロント側に、日本円を表示する。 という要求ですか? ②商品を登録した時の日本円を記録させて、 そのあと、為替レートの換算率が変更されても、登録した時の日本円の値段を表示する。 この認識は正しいですか? |
kinnobitou |
投稿日時: 2017/11/29 11:35
対応状況: −−−
|
常連 登録日: 2010/4/1 居住地: 投稿: 46 |
Re: 価格欄に入力した円をリアルタイム為替換算してドルに表示する 仙人様
返信ありがとうございます。 説明不足で申し訳ございません。 円以外の外貨を使用するのではないです。 状況を説明いたしますと、 商品販売金額を為替レートによって自動で変更できるようにさせたいです。 サイトは日本円で表示させたいです。 たとえば、私が海外サイトで 50$の商品を購入すると、自分のサイトで日本円で5,580円(為替レート換算)で表示される。 うまく説明ができていないかもしれませんが、宜しくお願い致します。 |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |