Roger Bobo's VOLARE Shop

See the cart

Volare Mouthpieces are not only made based on the ideas of players’ alone. They are developed with teamwork by Japanese special craftsmen. Every player must experience for themselves just how different these mouthpieces are. A newly born new standard “Volare-Type” has just arrived in the universe!

What is “Volare”?

This project was founded in Japan by legendary tuba virtuoso Roger Bobo.
All concepts and ideas are based on his innovation. What we are most excited about is the very first Volare Mouthpiece, BT-01F, idea by the Maestro himself. The craftsmen behind this work are not the typical instrument makers. They produce many other items by hand using the traditional spirit of Japanese craftsmen. Maestro Bobo has also collaborated with many of the world’s top professional tubists and greatly values their influence and feedback.
Now, Volare is not only for the tuba products. We also have developed and are making products for other low brass instruments! When Maestro tried one of our first mouthpiece designs, he shouted, “Volare!” Volare is an Italian word which means “To Take Flight!”

Roger Bobo

Japan still has many special craftsmen who emphasize fine details and working by hand.
This work ethic is based on intuition combined with years of experience. Our mouthpieces are made by such craftsmen in conjunction with Maestro and other professional players’ ideas.
Maestro’s request was very simple and encompassed three categories. These are: Great Resonance, Evenness of Sound and a Rich Tone in all registers. In line with this concept, we never compromise and put immense effort into each mouthpiece we make. We respect and often improve upon several types of mouthpieces from past makers (eg. Helleberg-Type, Geib-Type, etc.) and also research the differences between U-Cup and V-Cup. Our mouthpieces are produced and sold while maintaining thorough quality with each product,and this brings all players joy, inspiration and helps them achieve the expression they desire. Now, the newly-born new standard “Volare-Type” has officially arrived in the universe!

Greetings from Roger Bobo and six points of Volare development.

final confirmation of the "Neo"Volare Project

Development of Volare

3D MEASURING

The shape of each mouthpiece is designed with extreme precision using Industrial Technology Center Okayama’s 3D Micro Measuring Machine (ZEISS). This has been an enormous success for our development. Such Technology ensures absolute consistency when designing the contour of each model.

3D MEASURING

SELECTED MATERIAL

We thoroughly researched the finest material of multiple kinds of brass at Okayama University Laboratory. We have sought to solve issues regarding intonation flaws using only the highest quality of brass available. We then chose the best acoustic balance and decided upon the weight of our mouthpieces. Volare has also avoided the use of hammering the model number and company seal onto our products. We have tried to avoid any metal-fatigue due to hammering and have adopted the use of laser-printing. This process has proved to be a great success.

SELECTED MATERIAL

EMBOUCHURE

We researched the effects of stress and endurance regarding embouchure in all registers and dynamics. Then we designed a special type of cutting called, “Triple−Edged Flat Construction,” for the ideal inner-rim shape. You will find this to be very comfortable to the embouchure while also reducing fatigue.

EMBOUCHURE

CRAFTSMAN

Volare mouthpieces are designed by a Micro Measuring Machine (ZEISS), but our craftsmen also understand the invaluable role of human-touch in the pursuit of excellence. Numerical values used in programming were replaced with human senses then the human senses were converted back to numerical values and applied to the machine. The cup, throat, bore and back bore cuttings are the most important part for producing the best sound and creating this is an arduous process when problems often seem invisible. But using the fine skill of our craftsmen, we can cut in precisely the right place according to their expertise and knowledge. We have often received feedback such as, “I have tried two mouthpieces which are the same model, but the sound is somehow different.” We have addressed such concerns according to the method above.

金属加工 CRAFTSMAN

Dynamic Elasticity

We also conducted wind-tunnel experiments at Shimane University Laboratory. As a result of these tests, we arrived at the best ratio in size between cup and shank. Much to our surprise, the outer design played a critical role in the results of the wind-tunnel experiment. Ultimately, these trials were a great success in aiding the development of airflow in every register and all dynamics.

空気力学 Dynamic Elasticity

Production Control

The realization of quality which allows each artist to perform with ease and consistency is exactly what motivates and inspires the team at Volare. Volare is a crystallization of Japanese craftsmanship and ingenuity. Our products are made with the pride and spirit of Japan.

生産管理 Production Control

This new Volare model differs slightly from our first production.

At the adamant request of the Maestro, in order to maintain the prototype according to its design and to minimize polishing, we are manufacturing by two processes before applying gold plating.
This also increases plating strength. As a result, there may be hairlines or uneven plating, but it is necessary to keep the original shape of the prototype.

This will cause no hindrance to performance.

Product

BT(Bass Tuba) Series

BT-01 F R

BT-01F

Specifics

Cup DiameterRim WidthThroat/Bore Size
32.03mm Shallow Shape8.35mm7.50mm

BT-01F Gold

market price

Silver

price38,000JPY

BT-01R(Round Rim)

Specifics

Cup DiameterRim WidthThroat/Bore Size
32.03mm Shallow Shape8.35mm7.50mm

BT-01R(Round Rim)Gold

market price

Silver

price38,000JPY

CBT(Contra Bass Tuba) Series

CBT- 01 GH8 03

CBT-01

Specifics

Cup DiameterRim WidthThroat/Bore Size
32.39mm Medium Deep Shape7.06mm8.30mm

CBT-01 Gold

market price

Silver

price38,000JPY

CBT-GH8

Specifics

Cup DiameterRim WidthThroat/Bore Size
33.08mm Medium Deep Shape7.20mm8.10mm

CBT-GH8 Gold

market price

Silver

price38,000JPY

CBT-03

Specifics

Cup DiameterRim WidthThroat/Bore Size
33.50mm Medium Deep Shape7.00mm8.30mm

CBT-03 Gold

market price

Silver

price38,000JPY

copyright 2016-2020 bass-clef.co.jp

// 「言語毎の商品表示・非表示制御」機能がONの時 if (exist_lcs_module("goods_lang_disp", $lcs{'lcs_module_info'}) === TRUE) { // 言語毎の表示条件を追加 $where .= " AND (g.goods_lang_disp_flag = 0 " . " OR EXISTS ( " . " SELECT gl.goods_id FROM tbl_goods_lang gl " . " WHERE gl.lcs_id = g.lcs_id AND gl.goods_id = g.goods_id AND gl.lang_id = ". sqlesc($lang_id, "t") . " AND gl.gola_disp_flag = 1))"; } // モールの時 if ($shop{'lcs_mall_flag'} == "1"){ // メインユーザの商品または、サブユーザでステータスが利用中の商品のみ表示 $where .= " AND (g.mls_id = ". sqlesc(MLS_DEFAULT_ID, "i"). " OR " . " EXISTS (SELECT ml.mls_id " . " FROM tbl_mall_license ml " . " WHERE ml.lcs_id = g.lcs_id AND ml.mls_id = g.mls_id AND ml.mls_status = 1 " . " ) " . " ) "; // サブユーザの使用可言語 $where .= " AND EXISTS ( " . " SELECT mll.lang_id " . " FROM tbl_mall_license_lang mll " . " WHERE mll.lcs_id = g.lcs_id AND mll.mls_id = g.mls_id AND mll.lang_id = ". sqlesc($lang_id, "t") . " ) "; } // YCD機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE) { // YCD対象の配送国の時 if ($obj_ycd->ycd_target_country_flag == "1") { // YCDスクリーニング状態 が スクリーニング完了 // YCD販売対象から除外するフラグ が 未設定 $where .= " AND g.goods_ycd_screening_status = " . sqlesc(cls_ycd::YCD_SCREENING_STATUS_COMPLETE, "i") . " AND g.goods_ycd_nodisp_flag = 0 "; } } // 店舗サブ管理者 承認管理 機能ONの時 if (exist_lcs_module("sblc_approval", $lcs{'lcs_module_info'}) === TRUE) { // 承認ステータスの条件を設定 if (($approval_status_sql = $obj_goods->get_active_goods_sblc_approval_status_sql($lcs_id, 'g')) !== '') { $where .= " AND " . $approval_status_sql; } } //エアリー様対応→廃止 $genre_optv1_code=""; $genre_optv2_code=""; /* if(exist_lcs_module("sku_img_flg", $lcs{'lcs_module_info'}) === TRUE){ // カテゴリ情報 $sql = "SELECT genre_id,genre_optv1_code,genre_optv2_code FROM tbl_genre " . " WHERE lcs_id = ". sqlesc($lcs_id, "t") . " AND genre_id = ". sqlesc($genre_id, "t"); $R = mysql_query($sql); $rows = mysqli_num_rows($R); if ($rows == 1) { $data = mysqli_fetch_array($R, MYSQLI_ASSOC); $genre_optv1_code=$data["genre_optv1_code"]; $genre_optv2_code=$data["genre_optv2_code"]; $smarty->assign("genre_optv1_code",$genre_optv1_code); $smarty->assign("genre_optv2_code", $genre_optv2_code); } } if(exist_lcs_module("sku_img_flg", $lcs{'lcs_module_info'}) === TRUE && $genre_optv1_code!=""){ // 商品SKU 取得 $where .= " AND EXISTS ( " ."SELECT tgs.gosku_thumbnail,tgs.gosku_shop_original_optv2_code " . " FROM tbl_goods_sku tgs" . " WHERE tgs.lcs_id = ". sqlesc($lcs_id, "t") . " AND tgs.goods_id = g.goods_id AND tgs.gosku_shop_original_optv1_code=".sqlesc($genre_optv1_code, "t") . " AND (tgs.gosku_flg1=0 or tgs.gosku_flg1 is null or tgs.gosku_flg1 =2) and gosku_show_flg='1'" .")"; } */ // 並び順の価格項目 $order_by_price_elm = 'goods_price'; // 国内価格 // YCD機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE) { // YCD対象の配送国の時 if ($obj_ycd->ycd_target_country_flag == "1") { $order_by_price_elm = 'goods_cn_ddp_price'; // 中国DDP価格 } } //2018/05/14 商品在庫あり優先判断 $stock_sort_str = ""; if($shop{'shop_goods_stock_sort_flg'}=="1"&&exist_lcs_module("lcs_stock_presence_flg", $lcs{'lcs_module_info'})){ $stock_sort_str = " CASE WHEN g.goods_zaiko_flag = '0' OR ( g.goods_zaiko_flag = '1' and g.goods_zaikosu > 0 AND sku.goods_id IS NULL ) OR ( sku.sku_zaikosu is not null and sku.sku_zaikosu > 0 and sku.goods_id is not null ) THEN '1' ELSE '0' END DESC, "; } if ($sortkey == 1) { $order = " ORDER BY ".$stock_sort_str." g.goods_keisaibi DESC, g.goods_id DESC "; } elseif ($sortkey == 2) { $order = " ORDER BY ".$stock_sort_str." g." . $order_by_price_elm . ", g.goods_id "; } elseif ($sortkey == 3) { $order = " ORDER BY ".$stock_sort_str." g." . $order_by_price_elm . " DESC, g.goods_id "; } elseif ($sortkey == 4) { $order = " ORDER BY ".$stock_sort_str." g.goods_price2, g.goods_id "; } elseif ($sortkey == 5) { $order = " ORDER BY ".$stock_sort_str." g.goods_price2 DESC, g.goods_id "; } else { $order = " ORDER BY ".$stock_sort_str." g.goods_sortno IS NULL ASC, g.goods_sortno ASC, g.goods_keisaibi DESC, g.goods_id DESC "; } // 全データ数取得 $sql = "SELECT count(*) FROM tbl_goods g ". $where; $R = mysql_query($sql); $allrows = mysqli_fetch_array($R, MYSQLI_BOTH);$allrows = $allrows[0]; // 表示データ取得 //$limit = dlookup("htpl_list_limit", "tbl_html_tpl", "lcs_id = ". sqlesc($lcs_id, "t"). " AND htpl_id = ". sqlesc($htpl_id, "i")); if (($html_tpl_info = cls_util::get_html_tpl_info($lcs_id, $htpl_id)) !== false) { $limit = $html_tpl_info{'htpl_list_limit'}; } else { $limit = "10"; } // オフセットを補正 if (isset($offset) === false) { $offset = 0; } $offset = edit_pager_offset($allrows, $offset, $limit); //2018/05/14 商品在庫あり優先判断 $skuJoinStr = ""; if($shop{'shop_goods_stock_sort_flg'}=="1"&&exist_lcs_module("lcs_stock_presence_flg", $lcs{'lcs_module_info'})){ $sku_img_str = ""; if (exist_lcs_module("sku_img_flg", $lcs{'lcs_module_info'}) === TRUE) { $sku_img_str = " AND ( gosku_flg1 != 1 or gosku_flg1 is null ) and gosku_show_flg='1' "; } $skuJoinStr = "left join (select goods_id, Sum(gosku_zaikosu) as sku_zaikosu from tbl_goods_sku WHERE lcs_id = ".sqlesc($lcs_id, "t").$sku_img_str."group by goods_id) sku on sku.goods_id = g.goods_id "; } $sql = "SELECT g.goods_id, g.mls_id, g.brand_id, g.goods_num, g.goods_num2, g.goods_price, g.goods_price2, g.goods_zaiko_flag, g.goods_zaikosu, g.goods_weight, g.goods_min_kosu, g.goods_thumbnail, g.goods_img1, g.goods_img2, g.goods_img3, g.goods_img4, g.goods_img5, g.goods_img6, g.goods_img7, g.goods_img8, g.goods_img9, g.goods_img10, g.goods_embargo, g.goods_nocharge, g.goods_name_print_flag, g.goods_cool_type, g.goods_google_shopping_feed_zaiko_type, g.goods_sale_flag, g.goods_sale_base_price, g.goods_sale_base_price2, g.goods_warehouse_code, g.goods_keisaibi, g.goods_ycd_screening_status, g.goods_ycd_nodisp_flag, g.goods_cn_ddp_price, g.goods_cn_ddp_sale_price, g.goods_cn_ddp_sale_base_price, g.goods_duty_exemption_type, g.goods_free_option_1, g.goods_free_option_2, g.goods_free_option_3, g.goods_free_option_4, g.goods_free_option_5, g.goods_release_date, g.goods_release_date_control_flag, g.sblc_supplier_id, g.sblc_supplier_name, g.goods_eky_capacity FROM tbl_goods g ". $skuJoinStr. $where. $order. " LIMIT ". sqlesc($limit, "i"). " OFFSET ". sqlesc($offset, "i"); // print "sql=[$sql]
\n"; $R = mysql_query($sql); $rows = mysqli_num_rows($R); // ページ送り $smarty->assign("goodslist_allrows", _h($allrows)); $smarty->assign("goodslist_srows", _h($offset + 1)); $smarty->assign("goodslist_erows", _h($offset + $rows)); $url = ""; if($offset > 0){ $prev = $offset - $limit; $url = $_SERVER{'PHP_SELF'}."?lang_id=$lang_id&genre_id=$genre_id&keyword=".urlencode($keyword)."&sch_goods_tag=".urlencode($sch_goods_tag)."&act=$act&sortkey=$sortkey&offset=$prev"; if ($htpl_id_over) $url .= "&htpl_id=$htpl_id"; if ($tsuka_conv) $url .= "&tsuka_conv=$tsuka_conv"; // セール中 商品 if ($sch_goods_sale != "") { $url .= "&sch_goods_sale=$sch_goods_sale"; } } $smarty->assign("goodslist_prev", _h($url)); $url = ""; if(($allrows - $offset + $limit) > 0 && ($offset+$limit) < $allrows){ $next = $offset + $limit; $url = $_SERVER{'PHP_SELF'}."?lang_id=$lang_id&genre_id=$genre_id&keyword=".urlencode($keyword)."&sch_goods_tag=".urlencode($sch_goods_tag)."&act=$act&sortkey=$sortkey&offset=$next"; if ($htpl_id_over) $url .= "&htpl_id=$htpl_id"; if ($tsuka_conv) $url .= "&tsuka_conv=$tsuka_conv"; // セール中 商品 if ($sch_goods_sale != "") { $url .= "&sch_goods_sale=$sch_goods_sale"; } } $smarty->assign("goodslist_next", _h($url)); if ($allrows > 0) { $page_max = 1; } else { $page_max = 0; } // ページリンク $list_page_ary = array(); if ($limit > 0 && $allrows > 0 && $allrows > $limit) { $current_page = intval($offset / $limit) + 1; $page_max = intval($allrows / $limit); if ($allrows > ($page_max * $limit)) { $page_max++; } if ($current_page < 5) { $start_page = 1; if ($page_max > 9) { $end_page = 9; } else { $end_page = $page_max; } } elseif (($page_max - $current_page) < 5) { if ($page_max > 8) { $start_page = $page_max - 8; } else { $start_page = 1; } $end_page = $page_max; } else { $start_page = $current_page - 4; $end_page = $current_page + 4; } $j = 0; for ($i = $start_page; $i <= $end_page; $i++) { $page_offset = ($i * $limit) - $limit; $list_page_ary[$j]{'id'} = _h($j); $list_page_ary[$j]{'name'} = _h($i); $url = $_SERVER{'PHP_SELF'}."?lang_id=$lang_id&genre_id=$genre_id&keyword=".urlencode($keyword)."&sch_goods_tag=".urlencode($sch_goods_tag)."&act=$act&sortkey=$sortkey&offset=$page_offset"; if ($htpl_id_over) $url .= "&htpl_id=$htpl_id"; if ($tsuka_conv) $url .= "&tsuka_conv=$tsuka_conv"; // セール中 商品 if ($sch_goods_sale != "") { $url .= "&sch_goods_sale=$sch_goods_sale"; } $list_page_ary[$j]{'url'} = _h($url); if ($page_offset == $offset) { $list_page_ary[$j]{'current_flag'} = _h("1"); } else { $list_page_ary[$j]{'current_flag'} = _h(""); } $j++; } } $smarty->assign("goodslist_page", $list_page_ary); // 総ページ数 $smarty->assign("goodslist_page_max", $page_max); // 商品配列に設定 $goods_tmp_ary = array(); $goods_id_ary = array(); for ($i = 0; $i < $rows; $i++) { $data = mysqli_fetch_array($R,MYSQLI_ASSOC); $data{'goods_lang'} = array(); // 言語別情報 $data{'goods_sku'} = array(); // SKU $data{'goods_opt'} = array(); // オプション $goods_tmp_ary{$data{'goods_id'}} = $data; $goods_id_ary[] = $data{'goods_id'}; } // 商品言語別情報、SKU情報、オプション情報 取得 if (count($goods_id_ary) > 0) { // 商品ID $where_goods_id_in = ""; reset($goods_id_ary); foreach ($goods_id_ary as $idx => $val) { if ($where_goods_id_in != "") { $where_goods_id_in .= ","; } $where_goods_id_in .= sqlesc($val, "i"); } // 商品言語別情報 取得 $sql = "SELECT * FROM tbl_goods_lang " . " WHERE lcs_id = ". sqlesc($lcs_id, "t") . " AND goods_id IN(". $where_goods_id_in . ")" . " AND lang_id = ". sqlesc($lang_id, "t"); $R = mysql_query($sql); $rows = mysqli_num_rows($R); if ($rows > 0) { for ($i = 0; $i < $rows; $i++) { $data = mysqli_fetch_array($R,MYSQLI_ASSOC); $goods_tmp_ary{$data{'goods_id'}}{'goods_lang'} = $data; } } // 商品SKU 取得 $sql = "SELECT * " . " FROM tbl_goods_sku " . " WHERE lcs_id = ". sqlesc($lcs_id, "t") . " AND goods_id IN(". $where_goods_id_in . ") " . " ORDER BY goods_id, gosku_id"; $R = mysql_query($sql); $rows = mysqli_num_rows($R); if ($rows > 0) { for ($i = 0; $i < $rows; $i++) { $data = mysqli_fetch_array($R,MYSQLI_ASSOC); $goods_tmp_ary{$data{'goods_id'}}{'goods_sku'}{$data{'gosku_id'}} = $data; } } // 商品オプション 取得 $sql = "SELECT goods_id, goopt_id, goopt_opt_name " . " FROM tbl_goods_opt " . " WHERE lcs_id = ". sqlesc($lcs_id, "t") . " AND goods_id IN(". $where_goods_id_in . ")" . " AND lang_id = ". sqlesc($lang_id, "t") . " ORDER BY goods_id, goopt_id"; $R = mysql_query($sql); $rows = mysqli_num_rows($R); if ($rows > 0) { for ($i = 0; $i < $rows; $i++) { $data = mysqli_fetch_array($R,MYSQLI_ASSOC); $data{'goods_optval'} = array(); $goods_tmp_ary{$data{'goods_id'}}{'goods_opt'}{$data{'goopt_id'}} = $data; } } // 商品オプション値 取得 $sql = "SELECT goods_id, goopt_id, gooptv_id, gooptv_opt_value " . " FROM tbl_goods_optval " . " WHERE lcs_id = ". sqlesc($lcs_id, "t") . " AND goods_id IN(". $where_goods_id_in . ")" . " AND lang_id = ". sqlesc($lang_id, "t") . " ORDER BY goods_id, goopt_id, gooptv_id"; $R = mysql_query($sql); $rows = mysqli_num_rows($R); if ($rows > 0) { for ($i = 0; $i < $rows; $i++) { $data = mysqli_fetch_array($R,MYSQLI_ASSOC); if (isset($goods_tmp_ary{$data{'goods_id'}}{'goods_opt'}{$data{'goopt_id'}}) !== false) { $goods_tmp_ary{$data{'goods_id'}}{'goods_opt'}{$data{'goopt_id'}}{'goods_optval'}{$data{'gooptv_id'}} = $data; } } } } // 商品表示 $goods_ary = array(); $i = 0; reset($goods_tmp_ary); foreach ($goods_tmp_ary as $key => $val) { $data = $val; // 言語別情報 if (count($data{'goods_lang'}) > 0) { $data2 = $data{'goods_lang'}; } else { $data2{'gola_goods_name'} = ''; $data2{'gola_goods_copy'} = ''; $data2{'gola_setsumei'} = ''; $data2{'gola_freearea1'} = ''; $data2{'gola_freearea2'} = ''; $data2{'gola_freearea3'} = ''; $data2{'gola_freearea4'} = ''; $data2{'gola_freearea5'} = ''; $data2{'gola_tani'} = ''; } // 商品詳細ページURL(商品ID 指定) $url = "goods.php?lang_id=$lang_id&goods_id=".$data{'goods_id'}."&tsuka_conv=$tsuka_conv"; if ($htpl_id_over) $url .= "&htpl_id=$htpl_id"; $goods_ary[$i]{'url'} = _h($url); // 商品詳細ページURL(商品番号 指定 : URLフィルター用パラメータ値変換) $url = "goods.php?lang_id=$lang_id&goods_num=" . mlc_urlencode(encode_url_filter_param($data{'goods_num'})) . "&tsuka_conv=$tsuka_conv"; if ($htpl_id_over) $url .= "&htpl_id=$htpl_id"; $goods_ary[$i]{'url_gonum'} = _h($url); // 手数料適用対象外 $goods_ary[$i]{'nocharge'} = _h($data{'goods_nocharge'}); // 商品ID $goods_ary[$i]{'id'} = _h($data{'goods_id'}); // カートに入っているフラグ $cart_in_flag = ""; // カートCookie 存在する場合 if (isset($_SESSION{'CART_'.$lcs_id})) { // カートCookieの中に 商品IDがあるかチェック $cart_ary = explode(",", $_SESSION{'CART_'.$lcs_id}); foreach($cart_ary as $value) { list($cart_goods_id, $cart_kosu, $cart_goods_opt) = explode("|", $value); if ($cart_goods_id == $data{'goods_id'}){ $cart_in_flag = 1; } } } $goods_ary[$i]{'cart_in_flag'} = _h($cart_in_flag); // 商品番号 $goods_ary[$i]{'num'} = _h($data{'goods_num'}); // 商品番号2 $goods_ary[$i]{'num2'} = _h($data{'goods_num2'}); // 商品名 $goods_ary[$i]{'name'} = _h($data2{'gola_goods_name'}); // タイムスタンプ if ($data{'goods_keisaibi'} != "") { $goods_ary[$i]{'keisaibi'} = _h(date("Y/m/d H:i:s", strtotime($data{'goods_keisaibi'}))); } else { $goods_ary[$i]{'keisaibi'} = _h(""); } // 発売開始日時制御フラグ $goods_ary[$i]{'goods_release_date_control_flag'} = _h($data{'goods_release_date_control_flag'}); // 発売開始日時 if ($data{'goods_release_date'} != "") { $goods_ary[$i]{'goods_release_date'} = _h(date("Y/m/d H:i:s", strtotime($data{'goods_release_date'}))); } else { $goods_ary[$i]{'goods_release_date'} = _h(""); } // 単語のスペース区切りフラグ設定時 if ($lang_word_space_delimiter_flag == 1) { $conv_br_delimiter = " "; } else { $conv_br_delimiter = ""; } // 商品コピー $goods_ary[$i]{'goods_copy'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_goods_copy'}))); // 商品コピー(タグ削除なし) $goods_ary[$i]{'goods_copy_raw'} = mlc_nl2br($data2{'gola_goods_copy'}); // 商品説明 $goods_ary[$i]{'setsumei'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_setsumei'}))); // 商品説明(タグ削除なし) $goods_ary[$i]{'setsumei_raw'} = mlc_nl2br($data2{'gola_setsumei'}); // 商品自由設定項目 $goods_ary[$i]{'freearea1'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_freearea1'}))); $goods_ary[$i]{'freearea2'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_freearea2'}))); $goods_ary[$i]{'freearea3'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_freearea3'}))); $goods_ary[$i]{'freearea4'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_freearea4'}))); $goods_ary[$i]{'freearea5'} = _h(str_replace(array("\r", "\n"), $conv_br_delimiter, strip_tags($data2{'gola_freearea5'}))); // 商品自由設定項目(タグ削除なし) $goods_ary[$i]{'freearea1_raw'} = mlc_nl2br($data2{'gola_freearea1'}); $goods_ary[$i]{'freearea2_raw'} = mlc_nl2br($data2{'gola_freearea2'}); $goods_ary[$i]{'freearea3_raw'} = mlc_nl2br($data2{'gola_freearea3'}); $goods_ary[$i]{'freearea4_raw'} = mlc_nl2br($data2{'gola_freearea4'}); $goods_ary[$i]{'freearea5_raw'} = mlc_nl2br($data2{'gola_freearea5'}); // 日本国内価格 $goods_ary[$i]{'price'} = _h(number_format($data{'goods_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 日本国内価格(桁区切りなし) $goods_ary[$i]{'price_nonbreaking'} = _h($data{'goods_price'}); // 日本国外価格 $goods_ary[$i]{'price2'} = _h(number_format($data{'goods_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 日本国外価格(桁区切りなし) $goods_ary[$i]{'price2_nonbreaking'} = _h($data{'goods_price2'}); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // YCD機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE) { // YCD販売対象から除外するフラグ が設定されている時 if ($data{'goods_ycd_nodisp_flag'} == "1") { // YCDスクリーニング状態 $goods_ary[$i]{'goods_ycd_screening_status'} = _h(cls_ycd::YCD_SCREENING_STATUS_NG); // YCD販売対象外 } else { // YCDスクリーニング状態 $goods_ary[$i]{'goods_ycd_screening_status'} = _h($data{'goods_ycd_screening_status'}); } } // 中国DDP価格 $goods_ary[$i]{'cn_ddp_price'} = _h($obj_ycd->calc_price($lcs_id, $data{'goods_cn_ddp_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format")); // 中国DDP価格(桁区切りなし) $goods_ary[$i]{'cn_ddp_price_nonbreaking'} = _h($data{'goods_cn_ddp_price'}); // 関税および立替手数料(=中国DDP価格 - FOB価格) $goods_ary[$i]{'cn_ddp_customs_duty'} = _h($obj_ycd->calc_customs_duty($lcs_id, $data{'goods_cn_ddp_price'}, $data{'goods_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format")); // 関税および立替手数料(=中国DDP価格 - FOB価格)(桁区切りなし) $goods_ary[$i]{'cn_ddp_customs_duty_nonbreaking'} = _h($obj_ycd->calc_customs_duty($lcs_id, $data{'goods_cn_ddp_price'}, $data{'goods_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "")); // ※YCD使用店舗 (EKKYO.NET機能ON店舗も同様) は // クーポン割引(割引率)、 // ボリュームディスカウント割引、 // 有料会員割引(プレミアム会員機能)が使用不可。 // (システムでは制限せずに、店舗が使用しない運用) } // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE) { $ary_membership_price = array(); // 会員種別毎の商品価格 -> 値引き価格を取得 $params = array(); $params{'lcs_id'} = $lcs_id; $params{'lang_id'} = $lang_id; $params{'goods_id'} = $data{'goods_id'}; $params{'goods_price'} = $data{'goods_price'}; // 商品 国内価格 $params{'goods_price2'} = $data{'goods_price2'}; // 商品 国外価格 $params{'goods_sale_base_price'} = $data{'goods_sale_base_price'}; // 商品 セール前 国内価格 $params{'goods_sale_base_price2'} = $data{'goods_sale_base_price2'}; // 商品 セール前 国外価格 $params{'tsuka_decimal'} = $tsuka_decimal; $cache_not_use_flag = ""; // 公開側のトップ~商品詳細はキャッシュを使用する(カート投入前) if (($result = $obj_mdl_premium_membership->calc_goods_premium_membership_waribiki_price($params, $cache_not_use_flag)) !== false) { $ary_membership_price = $result; reset($ary_membership_price); foreach ($ary_membership_price as $membership_price_key => $membership_price_val) { // 会員権割引 商品 国内価格 $goods_ary[$i]{'membership_price_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 会員権割引 商品 国内価格(桁区切りなし) $goods_ary[$i]{'membership_price_nonbreaking_' . $membership_price_key} = _h($membership_price_val{'membership_goods_price'}); // 会員権割引 商品 国外価格 $goods_ary[$i]{'membership_price2_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 会員権割引 商品 国外価格(桁区切りなし) $goods_ary[$i]{'membership_price2_nonbreaking_' . $membership_price_key} = _h($membership_price_val{'membership_goods_price2'}); // 会員権割引 商品 セール前 国内価格 $goods_ary[$i]{'membership_sale_base_price_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 会員権割引 商品 セール前 国外価格 $goods_ary[$i]{'membership_sale_base_price2_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_sale_base_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); } } } // 在庫管理有無フラグ $goods_ary[$i]{'zaiko_flag'} = _h($data{'goods_zaiko_flag'}); // 在庫数 $goods_ary[$i]{'zaikosu'} = _h($data{'goods_zaikosu'}); // 重量 $goods_ary[$i]{'weight'} = _h($data{'goods_weight'}); // 最低注文数 $goods_ary[$i]{'min_kosu'} = _h($data{'goods_min_kosu'}); // 注文の単位 $goods_ary[$i]{'tani'} = _h($data2{'gola_tani'}); // 倉庫コード $goods_ary[$i]{'goods_warehouse_code'} = _h($data{'goods_warehouse_code'}); // 名入れ商品フラグ $goods_ary[$i]{'goods_name_print_flag'} = _h($data{'goods_name_print_flag'}); // 冷凍冷蔵フラグ(0 : 一般、1 : 冷凍、 2 : 冷蔵) $goods_ary[$i]{'cool_flag'} = _h($data{'goods_cool_type'}); // if ($goods_ary[$i]{'cool_flag'} > 0) { // if ($goods_ary[$i]{'cool_flag'} == 1) { // // 冷凍 // $goods_ary[$i]{'cool_type'} = "frozen"; // } else if ($goods_ary[$i]{'cool_flag'} == 2) { // // 冷蔵 // $goods_ary[$i]{'cool_type'} = "chilled"; // } // } $goods_ary[$i]{'cool_type'} = _h(cls_util::get_goods_cool_type_title($data{'goods_cool_type'})); // サムネイル $goods_ary[$i]{'thumbnail'} = _h(($data{'goods_thumbnail'}=="")?"":$goimg_url.$data{'goods_thumbnail'}); $goods_ary[$i]{'img1'} = _h(($data{'goods_img1'}=="")?"":$goimg_url.$data{'goods_img1'}); $goods_ary[$i]{'img2'} = _h(($data{'goods_img2'}=="")?"":$goimg_url.$data{'goods_img2'}); $goods_ary[$i]{'img3'} = _h(($data{'goods_img3'}=="")?"":$goimg_url.$data{'goods_img3'}); $goods_ary[$i]{'img4'} = _h(($data{'goods_img4'}=="")?"":$goimg_url.$data{'goods_img4'}); $goods_ary[$i]{'img5'} = _h(($data{'goods_img5'}=="")?"":$goimg_url.$data{'goods_img5'}); $goods_ary[$i]{'img6'} = _h(($data{'goods_img6'}=="")?"":$goimg_url.$data{'goods_img6'}); $goods_ary[$i]{'img7'} = _h(($data{'goods_img7'}=="")?"":$goimg_url.$data{'goods_img7'}); $goods_ary[$i]{'img8'} = _h(($data{'goods_img8'}=="")?"":$goimg_url.$data{'goods_img8'}); $goods_ary[$i]{'img9'} = _h(($data{'goods_img9'}=="")?"":$goimg_url.$data{'goods_img9'}); $goods_ary[$i]{'img10'} = _h(($data{'goods_img10'}=="")?"":$goimg_url.$data{'goods_img10'}); // 国外配送の制限 $goods_ary[$i]{'embargo'} = _h($data{'goods_embargo'}); // 店舗の基準通貨が「通貨選択」または「店舗の優先順位一位の通貨」と異なる時 if($tsuka_conv != $shop{'tsuka_id'} || $shop_first_tsuka_id != $shop{'tsuka_id'}){ // 通貨変換 $price_conv = round_price_conv($data{'goods_price'} * $rate, $tsuka_conv_decimal); $goods_ary[$i]{'price_conv'} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $price_conv . " " . $tsuka_unit); $price2_conv = round_price_conv($data{'goods_price2'} * $rate, $tsuka_conv_decimal); $goods_ary[$i]{'price2_conv'} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $price2_conv . " " . $tsuka_unit); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 通貨変換 $goods_ary[$i]{'cn_ddp_price_conv'} = _h($obj_ycd->calc_price_conv($lcs_id, $data{'goods_cn_ddp_price'}, $rate, $tsuka_conv_decimal, $lang_id, $tsuka_unit)); // 関税および立替手数料(=中国DDP価格 - FOB価格) 通貨変換 $goods_ary[$i]{'cn_ddp_customs_duty_conv'} = _h($obj_ycd->calc_customs_duty_conv($lcs_id, $data{'goods_cn_ddp_price'}, $data{'goods_price2'}, $rate, $tsuka_conv_decimal, $lang_id, $tsuka_unit)); } // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE) { reset($ary_membership_price); foreach ($ary_membership_price as $membership_price_key => $membership_price_val) { // 会員権割引 商品 国内価格 通貨変換 $membership_price_conv = round_price_conv($membership_price_val{'membership_goods_price'} * $rate, $tsuka_conv_decimal); $goods_ary[$i]{'membership_price_conv_' . $membership_price_key} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $membership_price_conv . " " . $tsuka_unit); // 会員権割引 商品 国外価格 通貨変換 $membership_price2_conv = round_price_conv($membership_price_val{'membership_goods_price2'} * $rate, $tsuka_conv_decimal); $goods_ary[$i]{'membership_price2_conv_' . $membership_price_key} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $membership_price2_conv . " " . $tsuka_unit); } } } // ブランド $goods_ary[$i]{'brand_name'} = ""; // モールの時 if ($shop{'lcs_mall_flag'} == "1"){ if ($data{'brand_id'} != 0){ // ブランド名を取得 // $goods_ary[$i]{'brand_name'} = dlookup("mall_shopla_brand_title". $data{'brand_id'}, "tbl_mall_shop_lang", "lcs_id = ". sqlesc($lcs_id, "t"). " AND mls_id = ". sqlesc($data{'mls_id'}, "i"). " AND lang_id = ". sqlesc($lang_id, "t")); if (($mall_shop_lang_info = cls_util::get_mall_shop_lang_info($lcs_id, $data{'mls_id'}, $lang_id)) !== false) { $goods_ary[$i]{'brand_name'} = $mall_shop_lang_info{'mall_shopla_brand_title'. $data{'brand_id'}}; } else { $goods_ary[$i]{'brand_name'} = ""; } } } // セールフラグ $goods_ary[$i]{'goods_sale_flag'} = _h($data{'goods_sale_flag'}); // セール前価格(国内) $goods_ary[$i]{'goods_sale_base_price'} = _h(number_format($data{'goods_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // セール前価格(国外) $goods_ary[$i]{'goods_sale_base_price2'} = _h(number_format($data{'goods_sale_base_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 中国DDP セール前価格 $goods_ary[$i]{'goods_cn_ddp_sale_base_price'} = _h($obj_ycd->calc_price($lcs_id, $data{'goods_cn_ddp_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format")); } // 免税区分 $goods_ary[$i]{'goods_duty_exemption_type'} = _h($data{'goods_duty_exemption_type'}); // 商品自由管理項目1~5 for ($idx = 1; $idx <= $CN_GOODS_OP_MAX; $idx++) { $goods_ary[$i]{'goods_free_option_' . $idx} = _h($data{'goods_free_option_' . $idx}); } // 店舗サブ管理者 承認管理 機能ONの時 if (exist_lcs_module("sblc_approval", $lcs{'lcs_module_info'}) === TRUE) { $goods_ary[$i]{'sblc_supplier_id'} = _h($data{'sblc_supplier_id'}); $goods_ary[$i]{'sblc_supplier_name'} = _h($data{'sblc_supplier_name'}); } // EKKYO.NET 機能ONの時 if (exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 容積値 $goods_ary[$i]{'eky_capacity'} = _h($data{'goods_eky_capacity'}); } // カートフォームhidden $tmp = ""; if (strstr($lcs{'lcs_sslurl'}, $CN_SSL_DOMAIN)) { $tmp .= "\n"; } $tmp .= "\n"; $tmp .= "\n"; if ($htpl_id_over) $tmp .= "\n"; // EKKYO.NET 機能ONの時 if (exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // トークン $tmp .= "\n"; $tmp .= "\n"; } $goods_ary[$i]{'cart_hidden'} = $tmp; $sku_goods_key = $lcs_id . '_' . $data{'goods_id'}; // 店舗ID+商品ID $goods_ary[$i]{'sku_goods_key'} = _h($sku_goods_key); $goods_ary[$i]{'sku_goods_opt1'} = _h(""); $goods_ary[$i]{'sku_goods_opt2'} = _h(""); $sku_hidden = ""; $goods_ary[$i]{'sku_flag'} = ""; // SKU管理有無の判定用 $goods_sku_ary = array(); // SKUの在庫数 合計 $goods_ary[$i]{'sku_zaikosu_total'} = 0; // 出力用 商品SKU $ary_temp_out_sku = array(); // SKU if (count($data{'goods_sku'}) > 0) { $goods_ary[$i]{'sku_flag'} = "1"; reset($data{'goods_sku'}); foreach ($data{'goods_sku'} as $sub_key => $sub_val) { $data3 = $sub_val; $goods_ary[$i]{'sku_zaikosu_total'} += $data3{'gosku_zaikosu'}; $gosku_id = $data3{'gosku_id'}; $goods_sku_ary[$gosku_id] = $data3; // 価格、在庫表示変更用にデリミタを変更 $w_sku_key = $data3{'gosku_id'}; $w_sku_key = str_replace(SKU_OPT_DELIMITER, "-", $w_sku_key); $w_sku_key = str_replace(SKU_OPTVAL_DELIMITER, ":", $w_sku_key); // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE) { $temp_out_membership_sku = array(); $ary_membership_sku_price = array(); // 会員種別毎の商品価格 -> 値引き価格を取得 $params = array(); $params{'lcs_id'} = $lcs_id; $params{'lang_id'} = $lang_id; $params{'goods_id'} = $data{'goods_id'}; $params{'goods_price'} = $data3{'gosku_price'}; // 商品SKU 国内価格 $params{'goods_price2'} = $data3{'gosku_price2'}; // 商品SKU 国外価格 $params{'goods_sale_base_price'} = $data3{'gosku_sale_base_price'}; // 商品SKU セール前 国内価格 $params{'goods_sale_base_price2'} = $data3{'gosku_sale_base_price2'}; // 商品SKU セール前 国外価格 $params{'tsuka_decimal'} = $tsuka_decimal; $cache_not_use_flag = ""; // 公開側のトップ~商品詳細はキャッシュを使用する(カート投入前) if (($result = $obj_mdl_premium_membership->calc_goods_premium_membership_waribiki_price($params, $cache_not_use_flag)) !== false) { $ary_membership_sku_price = $result; reset($ary_membership_sku_price); foreach ($ary_membership_sku_price as $membership_price_key => $membership_price_val) { // 会員権割引 商品SKU 国内価格 $temp_out_membership_sku{'membership_price_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 会員権割引 商品SKU 国内価格(桁区切りなし) $temp_out_membership_sku{'membership_price_nonbreaking_' . $membership_price_key} = _h($membership_price_val{'membership_goods_price'}); // 会員権割引 商品SKU 国外価格 $temp_out_membership_sku{'membership_price2_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 会員権割引 商品SKU 国外価格(桁区切りなし) $temp_out_membership_sku{'membership_price2_nonbreaking_' . $membership_price_key} = _h($membership_price_val{'membership_goods_price2'}); // 会員権割引 商品 セール前 国内価格 $temp_out_membership_sku{'membership_sale_base_price_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 会員権割引 商品 セール前 国外価格 $temp_out_membership_sku{'membership_sale_base_price2_' . $membership_price_key} = _h(number_format($membership_price_val{'membership_goods_sale_base_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); } } } // 日本国内価格 $price = number_format($data3{'gosku_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000); // 日本国外価格 $price2 = number_format($data3{'gosku_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 中国向けDDP価格 $gosku_cn_ddp_price = $obj_ycd->calc_price($lcs_id, $data3{'gosku_cn_ddp_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format"); // 関税および立替手数料(=中国DDP価格 - FOB価格) $gosku_cn_ddp_customs_duty = $obj_ycd->calc_customs_duty($lcs_id, $data3{'gosku_cn_ddp_price'}, $data3{'gosku_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format"); } // 店舗の基準通貨が「通貨選択」または「店舗の優先順位一位の通貨」と異なる時 if($tsuka_conv != $shop{'tsuka_id'} || $shop_first_tsuka_id != $shop{'tsuka_id'}){ // 通貨変換 $price_conv = round_price_conv($data3{'gosku_price'} * $rate, $tsuka_conv_decimal); $price_conv = get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $price_conv . " " . $tsuka_unit; $price2_conv = round_price_conv($data3{'gosku_price2'} * $rate, $tsuka_conv_decimal); $price2_conv = get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $price2_conv . " " . $tsuka_unit; // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 通貨変換 $gosku_cn_ddp_price_conv = $obj_ycd->calc_price_conv($lcs_id, $data3{'gosku_cn_ddp_price'}, $rate, $tsuka_conv_decimal, $lang_id, $tsuka_unit); // 関税および立替手数料(=中国DDP価格 - FOB価格) 通貨変換 $gosku_cn_ddp_customs_duty_conv = $obj_ycd->calc_customs_duty_conv($lcs_id, $data3{'gosku_cn_ddp_price'}, $data3{'gosku_price2'}, $rate, $tsuka_conv_decimal, $lang_id, $tsuka_unit); } // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE) { reset($ary_membership_sku_price); foreach ($ary_membership_sku_price as $membership_price_key => $membership_price_val) { // 会員権割引 商品 国内価格 通貨変換 $membership_price_conv = round_price_conv($membership_price_val{'membership_goods_price'} * $rate, $tsuka_conv_decimal); $temp_out_membership_sku{'membership_price_conv_' . $membership_price_key} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $membership_price_conv . " " . $tsuka_unit); // 会員権割引 商品 国外価格 通貨変換 $membership_price2_conv = round_price_conv($membership_price_val{'membership_goods_price2'} * $rate, $tsuka_conv_decimal); $temp_out_membership_sku{'membership_price2_conv_' . $membership_price_key} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $membership_price2_conv . " " . $tsuka_unit); } } } // セール前価格(国内) $gosku_sale_base_price = number_format($data3{'gosku_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000); // セール前価格(国外) $gosku_sale_base_price2 = number_format($data3{'gosku_sale_base_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 中国向けDDP セール前価格 $gosku_cn_ddp_sale_base_price = $obj_ycd->calc_price($lcs_id, $data3{'gosku_cn_ddp_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format"); } $sku_z_key = $sku_goods_key . "_" . $w_sku_key; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; $sku_hidden .= "\n"; } // EKKYO.NET 機能ONの時 if (exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 容積値 $sku_hidden .= "\n"; } // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE) { reset($temp_out_membership_sku); foreach ($temp_out_membership_sku as $membership_price_elm_key => $membership_price_elm_val) { // 会員権割引 項目をhiddenに設定 $sku_hidden .= "\n"; } } // 出力用 商品SKU $temp_out_sku = array(); // 商品SKUのhiddenキー $temp_out_sku{'sku_hidden_key'} = _h($sku_z_key); // 商品オプション1 ID $temp_out_sku{'opt1_id'} = _h($data3{'goopt1_id'}); // 商品オプション値1 ID $temp_out_sku{'optv1_id'} = _h($data3{'gooptv1_id'}); // 商品オプション2 ID $temp_out_sku{'opt2_id'} = _h($data3{'goopt2_id'}); // 商品オプション値2 ID $temp_out_sku{'optv2_id'} = _h($data3{'gooptv2_id'}); // 重量 $temp_out_sku{'weight'} = _h($data3{'gosku_weight'}); // 在庫数 $temp_out_sku{'zaikosu'} = _h($data3{'gosku_zaikosu'}); // 国内価格 $temp_out_sku{'price'} = _h($price); // 国外価格 $temp_out_sku{'price2'} = _h($price2); // 国内価格(近似値) $temp_out_sku{'price_conv'} = _h($price_conv); // 国外価格(近似値) $temp_out_sku{'price2_conv'} = _h($price2_conv); // セール前 国内価格 $temp_out_sku{'sale_base_price'} = _h($gosku_sale_base_price); // セール前 国外価格 $temp_out_sku{'sale_base_price2'} = _h($gosku_sale_base_price2); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 中国向けDDP価格 $temp_out_sku{'cn_ddp_price'} = _h($gosku_cn_ddp_price); // 中国向けDDP価格(近似値) $temp_out_sku{'cn_ddp_price_conv'} = _h($gosku_cn_ddp_price_conv); // 関税および立替手数料(=中国DDP価格 - FOB価格) $temp_out_sku{'cn_ddp_customs_duty'} = _h($gosku_cn_ddp_customs_duty); // 関税および立替手数料(=中国DDP価格 - FOB価格)(近似値) $temp_out_sku{'cn_ddp_customs_duty_conv'} = _h($gosku_cn_ddp_customs_duty_conv); // 中国向けDDP セール前価格 $temp_out_sku{'cn_ddp_sale_base_price'} = _h($gosku_cn_ddp_sale_base_price); } // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE) { reset($temp_out_membership_sku); foreach ($temp_out_membership_sku as $membership_price_elm_key => $membership_price_elm_val) { // 会員権割引 項目をSKU出力項目に設定 $temp_out_sku{$membership_price_elm_key} = _h($membership_price_elm_val); $goods_sku_ary[$gosku_id]{'premium_membership'}{$membership_price_elm_key} = $membership_price_elm_val; } } // EKKYO.NET 機能ONの時 if (exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 容積値 $temp_out_sku{'eky_capacity'} = _h($data3{'gosku_eky_capacity'}); } $ary_temp_out_sku[] = $temp_out_sku; } } $goods_ary[$i]{'cart_hidden'} .= $sku_hidden; // 商品SKU 配列 $goods_ary[$i]{'sku'} = $ary_temp_out_sku; // Google shopping feed用 在庫タイプ $goods_ary[$i]{'goods_google_shopping_feed_zaiko_type'} = _h($data{'goods_google_shopping_feed_zaiko_type'}); $goods_ary[$i]{'zaiko_type_title'} = ""; // Google shopping feed用 在庫タイプ 名称 if ($goods_ary[$i]{'goods_google_shopping_feed_zaiko_type'} == 0) { // 在庫有り $goods_ary[$i]{'zaiko_type_title'} = "in stock"; if ($goods_ary[$i]{'zaiko_flag'} == 1) { if ($goods_ary[$i]{'sku_flag'} == 1) { if ($goods_ary[$i]{'sku_zaikosu_total'} <= 0) { // 在庫無し $goods_ary[$i]{'zaiko_type_title'} = "out of stock"; } } else { if ($goods_ary[$i]{'zaikosu'} <= 0) { // 在庫無し $goods_ary[$i]{'zaiko_type_title'} = "out of stock"; } } } } elseif ($goods_ary[$i]{'goods_google_shopping_feed_zaiko_type'} == 1) { // 取り寄せ $goods_ary[$i]{'zaiko_type_title'} = "available for order"; } elseif ($goods_ary[$i]{'goods_google_shopping_feed_zaiko_type'} == 2) { // 予約 $goods_ary[$i]{'zaiko_type_title'} = "preorder"; } // 商品オプション if (count($data{'goods_opt'}) > 0) { $j = 0; reset($data{'goods_opt'}); foreach ($data{'goods_opt'} as $sub_key => $sub_val) { $data3 = $sub_val; $goods_ary[$i]{'opt'}[$j]{'name'} = _h($data3{'goopt_opt_name'}); $goods_ary[$i]{'opt'}[$j]{'goopt_id'} = _h($data3{'goopt_id'}); // 選択状態にする選択肢 $goods_ary[$i]{'opt'}[$j]{'selected_gooptv_id'} = _h(""); // SKUのプルダウンで在庫チェック用 $opt_idx = $j + 1; $goods_ary[$i]{'opt'}[$j]{'sku_opt_key'} = _h($sku_goods_key . "_opt" . $opt_idx); $goods_ary[$i]{'sku_goods_opt' . $opt_idx} = _h($sku_goods_key . "_opt" . $opt_idx); if (count($sub_val{'goods_optval'}) > 0) { reset($sub_val{'goods_optval'}); foreach ($sub_val{'goods_optval'} as $sub_optval_key => $sub_optval_val) { $data4 = $sub_optval_val; $goods_ary[$i]{'optv'}[$j]{'id'}[] = _h($data3{'goopt_id'}.":".$data4{'gooptv_id'}); $goods_ary[$i]{'optv'}[$j]{'name'}[] = _h($data4{'gooptv_opt_value'}); $goods_ary[$i]{'optv'}[$j]{'sku_optval_key'}[] = _h($data3{'goopt_id'} . SKU_OPTVAL_DELIMITER . $data4{'gooptv_id'}); } } $j++; } } // SKU登録されている場合、初期表示される商品オプションの組み合わせの価格・在庫に変更 if (count($goods_sku_ary) > 0) { $target_sku_key = ""; if (isset($goods_ary[$i]{'optv'}[0]{'sku_optval_key'}) !== FALSE) { $ary_optval1 = $goods_ary[$i]{'optv'}[0]{'sku_optval_key'}; $opt1_key = ""; $opt2_key = ""; reset($ary_optval1); foreach ($ary_optval1 as $sub_optval1_idx => $sku_optval1_key) { $opt1_key = $sku_optval1_key; if (isset($goods_ary[$i]{'optv'}[1]{'sku_optval_key'}) !== FALSE) { $ary_optval2 = $goods_ary[$i]{'optv'}[1]{'sku_optval_key'}; reset($ary_optval2); foreach ($ary_optval2 as $sub_optval2_idx => $sku_optval2_key) { $opt2_key = $sku_optval2_key; $sku_key1 = $opt1_key . SKU_OPT_DELIMITER . $opt2_key; $sku_key2 = $opt2_key . SKU_OPT_DELIMITER . $opt1_key; if ($sku_key1 != "" && isset($goods_sku_ary[$sku_key1]) !== FALSE) { $target_sku_key = $sku_key1; // 選択状態にする選択肢 $goods_ary[$i]{'opt'}[0]{'selected_gooptv_id'} = _h($goods_ary[$i]{'optv'}[0]{'id'}[$sub_optval1_idx]); $goods_ary[$i]{'opt'}[1]{'selected_gooptv_id'} = _h($goods_ary[$i]{'optv'}[1]{'id'}[$sub_optval2_idx]); break; } elseif ($sku_key2 != "" && isset($goods_sku_ary[$sku_key2]) !== FALSE) { $target_sku_key = $sku_key2; // 選択状態にする選択肢 $goods_ary[$i]{'opt'}[0]{'selected_gooptv_id'} = _h($goods_ary[$i]{'optv'}[0]{'id'}[$sub_optval1_idx]); $goods_ary[$i]{'opt'}[1]{'selected_gooptv_id'} = _h($goods_ary[$i]{'optv'}[1]{'id'}[$sub_optval2_idx]); break; } } } else { $sku_key1 = $opt1_key; if ($sku_key1 != "" && isset($goods_sku_ary[$sku_key1]) !== FALSE) { $target_sku_key = $sku_key1; // 選択状態にする選択肢 $goods_ary[$i]{'opt'}[0]{'selected_gooptv_id'} = _h($goods_ary[$i]{'optv'}[0]{'id'}[$sub_optval1_idx]); } } if ($target_sku_key != "") { break; } } } else { if (isset($goods_ary[$i]{'optv'}[1]{'sku_optval_key'}) !== FALSE) { $ary_optval2 = $goods_ary[$i]{'optv'}[1]{'sku_optval_key'}; reset($ary_optval2); foreach ($ary_optval2 as $sub_optval2_idx => $sku_optval2_key) { $opt2_key = $sku_optval2_key; $sku_key2 = $opt2_key; if ($sku_key2 != "" && isset($goods_sku_ary[$sku_key2]) !== FALSE) { $target_sku_key = $sku_key2; // 選択状態にする選択肢 $goods_ary[$i]{'opt'}[1]{'selected_gooptv_id'} = _h($goods_ary[$i]{'optv'}[1]{'id'}[$sub_optval2_idx]); break; } } } } if ($target_sku_key != "") { $sku_key = $target_sku_key; // 日本国内価格 $goods_ary[$i]{'price'} = _h(number_format($goods_sku_ary[$sku_key]{'gosku_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 日本国内価格(桁区切りなし) $goods_ary[$i]{'price_nonbreaking'} = _h($goods_sku_ary[$sku_key]{'gosku_price'}); // 日本国外価格 $goods_ary[$i]{'price2'} = _h(number_format($goods_sku_ary[$sku_key]{'gosku_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // 日本国外価格(桁区切りなし) $goods_ary[$i]{'price2_nonbreaking'} = _h($goods_sku_ary[$sku_key]{'gosku_price2'}); // 在庫数 $goods_ary[$i]{'zaikosu'} = _h($goods_sku_ary[$sku_key]{'gosku_zaikosu'}); // 重量 $goods_ary[$i]{'weight'} = _h($goods_sku_ary[$sku_key]{'gosku_weight'}); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 中国向けDDP価格 $goods_ary[$i]{'cn_ddp_price'} = _h($obj_ycd->calc_price($lcs_id, $goods_sku_ary[$sku_key]{'gosku_cn_ddp_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format")); // 中国向けDDP価格(桁区切りなし) $goods_ary[$i]{'cn_ddp_price_nonbreaking'} = _h($goods_sku_ary[$sku_key]{'gosku_cn_ddp_price'}); // 関税および立替手数料(=中国DDP価格 - FOB価格) $goods_ary[$i]{'cn_ddp_customs_duty'} = _h($obj_ycd->calc_customs_duty($lcs_id, $goods_sku_ary[$sku_key]{'gosku_cn_ddp_price'}, $goods_sku_ary[$sku_key]{'gosku_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format")); // 関税および立替手数料(=中国DDP価格 - FOB価格)(桁区切りなし) $goods_ary[$i]{'cn_ddp_customs_duty_nonbreaking'} = _h($obj_ycd->calc_customs_duty($lcs_id, $goods_sku_ary[$sku_key]{'gosku_cn_ddp_price'}, $goods_sku_ary[$sku_key]{'gosku_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "")); } // 店舗の基準通貨が「通貨選択」または「店舗の優先順位一位の通貨」と異なる時 if($tsuka_conv != $shop{'tsuka_id'} || $shop_first_tsuka_id != $shop{'tsuka_id'}){ // 通貨変換 $price_conv = round_price_conv($goods_sku_ary[$sku_key]{'gosku_price'} * $rate, $tsuka_conv_decimal); // $goods_ary[$i]{'price_conv'} = _h(" ≈ " . $price_conv . " " . $tsuka_unit); $goods_ary[$i]{'price_conv'} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $price_conv . " " . $tsuka_unit); $price2_conv = round_price_conv($goods_sku_ary[$sku_key]{'gosku_price2'} * $rate, $tsuka_conv_decimal); // $goods_ary[$i]{'price2_conv'} = _h(" ≈ " . $price2_conv . " " . $tsuka_unit); $goods_ary[$i]{'price2_conv'} = _h(get_shop_tsuka_approximate_symbol($lcs_id, $lang_id) . $price2_conv . " " . $tsuka_unit); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 通貨変換 $goods_ary[$i]{'cn_ddp_price_conv'} = _h($obj_ycd->calc_price_conv($lcs_id, $goods_sku_ary[$sku_key]{'gosku_cn_ddp_price'}, $rate, $tsuka_conv_decimal, $lang_id, $tsuka_unit)); // 関税および立替手数料(=中国DDP価格 - FOB価格) 通貨変換 $goods_ary[$i]{'cn_ddp_customs_duty_conv'} = _h($obj_ycd->calc_customs_duty_conv($lcs_id, $goods_sku_ary[$sku_key]{'gosku_cn_ddp_price'}, $goods_sku_ary[$sku_key]{'gosku_price2'}, $rate, $tsuka_conv_decimal, $lang_id, $tsuka_unit)); } } // セール前価格(国内) $goods_ary[$i]{'goods_sale_base_price'} = _h(number_format($goods_sku_ary[$sku_key]{'gosku_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // セール前価格(国外) $goods_ary[$i]{'goods_sale_base_price2'} = _h(number_format($goods_sku_ary[$sku_key]{'gosku_sale_base_price2'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000)); // YCD機能ONの時 // EKKYO.NET 機能ONの時 if (exist_lcs_module("ycd", $lcs{'lcs_module_info'}) === TRUE || exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 中国向けDDP セール前価格 $goods_ary[$i]{'goods_cn_ddp_sale_base_price'} = _h($obj_ycd->calc_price($lcs_id, $goods_sku_ary[$sku_key]{'gosku_cn_ddp_sale_base_price'}, $tsuka_decimal, $CN_NF_DECP, $CN_NF_1000, "format")); } // プレミアム会員機能ONの時 if (exist_lcs_module("premium_membership", $lcs{'lcs_module_info'}) === TRUE && isset($goods_sku_ary[$sku_key]{'premium_membership'})) { reset($goods_sku_ary[$sku_key]{'premium_membership'}); foreach ($goods_sku_ary[$sku_key]{'premium_membership'} as $membership_price_elm_key => $membership_price_elm_val) { $goods_ary[$i]{$membership_price_elm_key} = _h($membership_price_elm_val); } } // EKKYO.NET 機能ONの時 if (exist_lcs_module("ekkyo_net", $lcs{'lcs_module_info'}) === TRUE) { // 容積値 $goods_ary[$i]{'eky_capacity'} = _h($goods_sku_ary[$sku_key]{'gosku_eky_capacity'}); } } } $i++; } $smarty->assign("goodslist", $goods_ary); //言語ID、通貨単位 $smarty->assign("lang_id", _h($lang_id)); $smarty->assign("tsuka_conv", _h($tsuka_conv)); //通貨単位が店舗の基準通貨と異なる場合に設定(近似値の表示制御用) if (strtoupper($tsuka_conv) != $shop{'tsuka_id'}) { $smarty->assign("tsuka_conv_flag", _h("1")); } else { $smarty->assign("tsuka_conv_flag", _h("")); } // カートからの戻りURL設定を追加 $url_param = "lang_id=" . mlc_urlencode($lang_id) . "&genre_id=" . mlc_urlencode($genre_id) . "&keyword=" . mlc_urlencode($keyword)."&sch_goods_tag=".mlc_urlencode($sch_goods_tag) . "&act=" . mlc_urlencode($act) . "&sortkey=" . mlc_urlencode($sortkey) . "&offset=" . mlc_urlencode($offset); if ($htpl_id_over) $url_param .= "&htpl_id=" . mlc_urlencode($htpl_id); if ($tsuka_conv) $url_param .= "&tsuka_conv=" . mlc_urlencode($tsuka_conv); // index : トップ $smarty->assign("cart_back_url", _h(create_cart_back_url("index", $url_param))); // 検索条件:セール中 $smarty->assign("search_goods_sale", _h($sch_goods_sale)); if ($lcs_id=="50662"){ require_once('../include/init_nw_com_date.inc'); // ネオ・ウィング様用 $smarty->assign("express_day", _h($express_day)); $smarty->assign("express_day_2", _h($express_day_2)); $smarty->assign("rental_start_date", _h($rental_start_date)); $smarty->assign("rental_start_date_2", _h($rental_start_date_2)); } // url変更フィルタ $smarty->register_outputfilter('tpl_replace'); // HTMLを画面出力 $smarty->display("index.tpl"); ?>