PageSourceSearch

https://www.to-buy.com.tw/

html to-buy.com.tw collected 2026-10-07 16:58:08 UTC 236,693 bytes, 4,858 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-TW" style="height:100%;">
3  <head>
4      
4<script>
5        window.dataLayer = window.dataLayer || [];
6      </script>
6
7    <!-- Google Tag Manager -->
8            
8<script>
vendor: 375 bytes, lines 8-12
8(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
9            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
10            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
11            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
12            })(window,document,'script','dataLayer','
12GTM-5MMDGG24
vendor: 3 bytes, line 12
12');
12</script>
12
13          <!-- End Google Tag Manager -->
14      <!-- CYBERBIZ Google Tag Manager -->
15      
15<script>
vendor: 345 bytes, lines 15-19
15(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
16      new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
17      j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
18      'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
19      })(window,document,'script','cyb','
19GTM-TXD9LVJ
vendor: 3 bytes, line 19
19');
19</script>
19
20      <!-- End CYBERBIZ Google Tag Manager -->
21    
22    <meta charset="utf-8">
23<meta http-equiv="X-UA-Compatible" content="IE=edge">
24<meta name="viewport" content="width=device-width, initial-scale=1">
25<link rel="icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkxMjkwX1NLSUlf6buD5aeQ5oSb5L-d6aSKX0xvZ28uanBnLmpwZWciXV0.jpeg?convert=false&sha=927dea8ad1346c9b">
26<link rel="apple-touch-icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkxMjkwX1NLSUlf6buD5aeQ5oSb5L-d6aSKX0xvZ28uanBnLmpwZWciXV0.jpeg?convert=false&sha=927dea8ad1346c9b">
27
28<meta property="og:site_name" content="黃姐愛保養" />
29
30<!-- og tag -->
31
32  <meta name="keywords" content="SK-II, SK2, 雅詩蘭黛, Estée Lauder, 青春露, 神仙水, 小棕瓶, 特潤超導修護露, 大紅瓶, 小燈泡, 美白精華, 抗老保養品, 保濕精華, 專櫃保養品, 公司貨, 正品保證, 台灣現貨, 經銷商" />
33  <meta name="description" content="專營SK-II (SK2) 與雅詩蘭黛等專櫃保養品。提供青春露(神仙水)、大紅瓶、小棕瓶等熱銷公司貨。針對皮膚暗沉、毛孔粗大與抗老需求提供專業推薦。台灣現貨,保證正品 快速出貨" />
34  <meta property="og:title" content="黃姐愛保養 | SK-II 雅詩蘭黛 正貨經銷 - 國際精品美妝 多品牌代理" />
35  <meta property="og:description" content="專營SK-II (SK2) 與雅詩蘭黛等專櫃保養品。提供青春露(神仙水)、大紅瓶、小棕瓶等熱銷公司貨。針對皮膚暗沉、毛孔粗大與抗老需求提供專業推薦。台灣現貨,保證正品 快速出貨" />
36  <meta property="og:url" content="https://www.to-buy.com.tw" />
37  <meta property="og:type" content="website" />
38
39
40<!-- og image -->
41
42  
43  <meta property="og:image" content="https://cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkxMjkwX1NLSUlf6buD5aeQ5oSb5L-d6aSKX0xvZ28uanBnLmpwZWciXV0.jpeg?sha=927dea8ad1346c9b" />
44  
45
46
47<title>
48  
49    黃姐愛保養 | SK-II 雅詩蘭黛 正貨經銷 - 國際精品美妝 多品牌代理
50  
51</title>
52
53
54
55<script src='//cdn-general.cybassets.com/frontend/shop/useSettingsData-e958d46bfee2e69f.js' type='text/javascript'></script>
55
56
57
58
59  
59<script>
60    window.setSettingsData({"draggable_sections":{"404":[],"index":["1769909594379_7","_main_slider_custom","_index_product_banner","_index_8_blocks","1649756284558","_index_4_blogs","_index_4_blocks","1764205348538_3","1764205535671_3"],"product":["product_info","product_description","board_comments","related_products"],"collection":[],"category":[],"blog":[],"article":[],"cart":[],"contact":[],"express_delivery":[],"search":[],"combo_product":["combo_product_info","combo_product_desc","board_comments"]},"sections":{"navbar":{"type":"navbar","visible":true,"settings":{"navbar_image_logo_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7","navbar_image_logo_tablet_url":"","navbar_image_logo_mobile_url":"","main_nav":"main-menu","slider_primary_linklist":"main-menu","slider_primary_linklist_set_open":true,"nav_show_three_dimension":true,"search_enabled":true,"display_only_index":false,"dict_header_banner_image_url":"","dict_header_banner_image_tablet_url":"","dict_header_banner_image_mobile_url":"","dict_header_banner_link":"","display_count_down":false,"navbar_display_style":"displayDefault","header_banner_start":"","header_banner_end":"","timer_text_color":"#c39d6f","timer_bg_color":"#2b2b6e","menu_display_style":"three_dimension_menu","link_menu_enabled":false,"link_menu":"undefined","display_banner_type":"imageBanner","header_banner_simple_text_size":"12","header_banner_simple_text_color":"#ffffff","header_banner_simple_bg":"#000000","logo_height":"80","header_logo_image_alt":"黃姐愛保養 | SK-II 雅詩蘭黛 國際精品美妝 正貨經銷","mobile_logo_position":"left","navbar_pc_title_font_size_scale":"90","navbar_pc_body_font_size_scale":"100","navbar_mobile_title_font_size_scale":"90","navbar_mobile_body_font_size_scale":"100","breadcrumb_referrer_enabled":false},"custom_name":"導覽列","thumbnail":"navigation","draggable":false},"footer":{"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://reurl.cc/mGj0e7","display_instagram":false,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://lin.ee/W87riD8","display_youtube":false,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_y","display_facebook_fan_block":true},"custom_name":"頁腳","thumbnail":"footer","draggable":false,"block_order":["default_link_list","default_contact_info"],"blocks":{"default_link_list":{"type":"link_list_setting","custom_name":"選單","thumbnail":"list","draggable":true,"visible":true,"settings":{"footer_link":"footer","dict_link_list_block_title":"關於我們"}},"default_contact_info":{"type":"contact_info_setting","custom_name":"聯絡資訊","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"display_phone":false,"display_fax_number":false,"shop_fax_number":"0222345678","display_shop_email":true,"display_shop_address":false,"display_office_time":true,"shop_office_time":"10:00-17:00","dict_contact_info_block_title":"聯絡資訊","dict_phone_number":"02-2775-2682","dict_shop_email":"[email protected]","dict_shop_address":"新北市新莊區五工二路62å··6號一樓","display_tax_id":false,"dict_tax_id":"55783512 ","dict_shop_office_time":"週一到週五 10:00 - 17:30"}}}},"_main_slider_custom":{"type":"_main_slider_custom","visible":true,"blocks":{"display_main_slider_item_1":{"type":"image","visible":true,"settings":{"dict_link":"/collections/all","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkwOTYzXzIwMjIwMzExX1NLMum7g-WnkOWBhzHpmaoxMEJOX1JJQU5fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=0f7e740b12722a2a","dict_tablet_image_url":"","dict_mobile_image_url":"","slide_contents_display":"left","dict_slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","main_slider_image_alt":"黃姐愛保養-專櫃正貨"},"custom_name":"素材","thumbnail":"banner","draggable":true}
60,"display_main_slider_item_2":{"type":"image","visible":true,"settings":{"dict_link":"https://www.to-buy.com.tw/products/skc11103020","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY0OTAxODQ4XzIwMjUxMjAxLVNLMua0u-WLlS3lsI_oirNfMTkyMHgxMDgwLmpwZy5qcGVnIl1d.jpeg?sha=6ad51490ce747f87","dict_tablet_image_url":"","dict_mobile_image_url":"","slide_contents_display":"left","dict_slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","link_open_in_new_tab":true,"main_slider_image_alt":"SK-II-青春露-黃姐愛保養"},"custom_name":"素材","thumbnail":"banner","draggable":true},"display_main_slider_item_3":{"type":"image","visible":true,"settings":{"dict_link":"/products/sk0023","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3MzExNDE0XzIwMjIwMzE1X1NLMiDotoXogozlm6Dpkb3lhYnmt6jnmb3nsr7oj681MG1sIEJOX1JJQU5fMTkyMFg4MDAgLmpwZy5qcGVnIl1d.jpeg?sha=a169c5af60e68c76","dict_tablet_image_url":"","dict_mobile_image_url":""},"custom_name":"素材","thumbnail":"banner","draggable":true},"display_main_slider_item_4":{"type":"image","visible":true,"settings":{"dict_link":"/collections/all","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjcyOTY5MjMxXzIwMjMwMTA0U0tiYW5uZXIxOTIweDgwMC5qcGcuanBlZyJdXQ.jpeg?sha=57d7b8e2d232fb18","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjcyOTY5MjQ4XzIwMjMwMTA0U0tiYW5uZXIxMjAweDgwMC5qcGcuanBlZyJdXQ.jpeg?sha=328a8b35f8f8379c"},"custom_name":"素材","thumbnail":"banner","draggable":true},"display_main_slider_item_5":{"type":"image","visible":true,"settings":{"dict_link":"","dict_image_url":"","dict_tablet_image_url":"","dict_mobile_image_url":""},"custom_name":"素材","thumbnail":"banner","draggable":true},"1649644198621":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shoestore/default_img/index_4_blocks_1.jpg","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":""}},"1649644212083":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NjQ0NDI5XzIwMjIwNDA4X-m7g-WnkEJOX-Wwj-azol8xOTIweDgwMC5qcGcuanBlZyJdXQ.jpeg?sha=f2f6dc314c4109e8","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"https://line.me/R/ti/p/@666tppkn","slide_contents_display":"left","dict_slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","main_slider_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"}},"1663737517564":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjYzNzM3NTM4XznmnIjlkajlubTmhbYtMTkyMHg4MDAuanBnLmpwZWciXV0.jpeg?sha=3fb923e300aefa2b","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjYzNzM3NTY0XznmnIjlkajlubTmhbYtMTIwMHg4MDAuanBnLmpwZWciXV0.jpeg?sha=7ee9c920551deabb","dict_link":""}},"1667036157031_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjY3MDM2MTc4X-mbmTEx6LaF54uC6LO854mp56-AMTkyMHg4MDAuanBnLmpwZWciXV0.jpeg?sha=ee4e74d689d21672","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjY3MDM2MTk2X-mbmTEx6LaF54uC6LO854mp56-AMTIwMHg4MDAuanBnLmpwZWciXV0.jpeg?sha=f6edf72f8625ae76","dict_link":""}},"1667886850286_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjY3ODg2ODkwX-mbmTExIOeyvumBuDE5MjB4ODAwLmpwZy5qcGVnIl1d.jpeg?sha=ceb0e37b7c5694ab","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjY3ODg2OTE3X-mbmTExIOeyvumBuDEyMDB4ODAwLmpwZy5qcGVnIl1d.jpeg?sha=8b6141a6efbbfd5a","dict_link":"/collections/double_11_event"}},"1670384203116_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NDk0NzA2XzAzMTctU0sy5YWo57O75YiXQk4tUklBTi0xOTIwWDgwMF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?sha=f4b2ce3ae3096c15","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjcyOTY5NjE2XzAzMTctU0sy5YWo57O75YiXQk4tUklBTi0xOTIwWDgwMF_lt6XkvZzljYDln58gMSDopIfmnKwuanBnLmpwZWciXV0.jpeg?sha=9f5afeb790cd8618","dict_link":"","slide_contents_display":"left","dict_slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","main_slider_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"}},"1706776529094_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzA2Nzc2NjM4X-mBjuW5tOWHuuiyqOmAmuefpV8xOTIwLTgwMOmBjuW5tOWHuuiyqOmAmuefpS5qcGcuanBlZyJdXQ.jpeg?sha=62582e6fdca1015f","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzA2Nzc2NjY3X-mBjuW5tOWHuuiyqOmAmuefpV8xMjAwLTgwMOmBjuW5tOWHuuiyqOmAmuefpS5qcGcuanBlZyJdXQ.jpeg?sha=56616d774528f0d1","dict_link":""}}},"block_order":["display_main_slider_item_1","display_main_slider_item_2","1649644212083","1670384203116_0"],"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","swiper_delay":"5","image_number":"1","image_space":"12","mobile_image_number":"1","mobile_image_space":"8","transition_speed":"0.3"},"custom_name":"輪播素材","thumbnail":"slider","draggable":true},"_index_product_banner":{"type":"_index_product_banner","visible":true,"settings":{"dict_link":"/pages/partner","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAxMzA3XzIwMjIwMzE3X1NLMl_pu4Plp5DlkIjkvbVCTl9USU1fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=71aec86d7d36ef32","dict_tablet_image_url":"","dict_mobile_image_url":"","cta_btn_display_style":"bottomPosition","cta_btn_text":"點我!填寫團購表單","cta_btn_bg_color":"#f7a608","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"","mobile_margin_x":"0","mobile_margin_bottom":"24","display_cta_btn":false,"dict_cta_btn_text":"","product_banner_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"},"custom_name":"橫幅廣告","thumbnail":"banner","draggable":true},"_index_8_blocks":{"type":"_index_8_blocks","visible":true,"settings":{"dict_title":"熱銷商品","collection_handle":"facial","limit":"8","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_display":"displayDefault","old_container_setting":true,"product_arrangement":"1","product_alignment":"leftPosition","product_text_align":"center","product_column_for_pc":"4","product_column_for_mobile":"2","product_card_hover_effect":"button","product_image_border_radius":"15"},"custom_name":"商品分類","thumbnail":"collection","draggable":true},"_index_4_blogs":{"type":"_index_4_blogs","visible":false,"blocks":{"index_4_blogs_1":{"type":"blog","visible":true,"settings":{"blog_handle":"news"},"custom_name":"部落格","thumbnail":"banner","draggable":true},"index_4_blogs_2":{"type":"blog","visible":true,"settings":{"blog_handle":"news"},"custom_name":"部落格","thumbnail":"banner","draggable":true},"index_4_blogs_3":{"type":"blog","visible":true,"settings":{"blog_handle":"news"},"custom_name":"部落格","thumbnail":"banner","draggable":true},"index_4_blogs_4":{"type":"blog","visible":true,"settings":{"blog_handle":"news"},"custom_name":"部落格","thumbnail":"banner","draggable":true}},"block_order":["index_4_blogs_1","index_4_blogs_2","index_4_blogs_3","index_4_blogs_4"],"settings":{"dict_title":"更多資訊","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","article_c
60olumns":"4"},"custom_name":"分頁頁籤","thumbnail":"tabs","draggable":true},"_index_4_blocks":{"type":"_index_4_blocks","visible":true,"blocks":{"display_index_4_block_1":{"type":"image","visible":true,"settings":{"title":"","dict_link":"https://reurl.cc/mGj0e7","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTYxXzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZGQl8xMjUweDM1MC5qcGcuanBlZyJdXQ.jpeg?sha=bdc59d9f31f0df0f","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":""},"custom_name":"圖片","thumbnail":"banner","draggable":true},"1647313315677":{"type":"video","custom_name":"影片","thumbnail":"video","draggable":true,"visible":true,"settings":{"dict_video_link":"https://www.youtube.com/watch?v=cFt_su5phYg","block_propotion":"100","auto_play":true,"hide_controls":false,"loop":true}},"1647322885680":{"type":"image","custom_name":"圖片","thumbnail":"banner","draggable":true,"visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTY0XzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZMSU5FXzEyNTB4MzUwLnBuZy5wbmciXV0.png?sha=7bba79b2b561db23","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"https://lin.ee/W87riD8","dict_image_description":""}},"1647498897014":{"type":"video","custom_name":"影片","thumbnail":"video","draggable":true,"visible":true,"settings":{"dict_video_link":"https://youtu.be/XRS9GYRQq-A","block_propotion":"100","auto_play":true,"hide_controls":false,"loop":true}},"1744855485037_1":{"type":"video","custom_name":"影片","visible":true,"settings":{"dict_video_link":"","auto_play":false,"hide_controls":false,"loop":true}},"1763715667592_1":{"type":"video","custom_name":"影片","visible":false,"settings":{"dict_video_link":"https://drive.google.com/file/d/1rSJ7WWyhR5DpmmR2dxp9cBJmW_03uoYT/view?usp=drive_link","block_propotion":"100","auto_play":false,"hide_controls":false,"loop":true}},"1763715704208_1":{"type":"video","custom_name":"影片","visible":false,"settings":{"dict_video_link":""}}},"block_order":["1647313315677","1647498897014","display_index_4_block_1","1647322885680","1744855485037_1","1763715667592_1"],"custom_name":"自訂排版設計","thumbnail":"banner","draggable":true,"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10","mobile_align":"left"}},"custom_text":{"type":"custom_text","visible":true,"settings":{}},"blog":{"type":"blog","visible":true,"settings":{"article_limit_in_blog_page":"6"}},"article":{"type":"article","visible":true,"settings":{"display_blog_menu":true,"dict_blog_tags_title":"文章分類","blog_latest_post_limit":"2"}},"category":{"type":"category","visible":true,"settings":{"category_sidebar_set_open":false,"category_product_block_limit":"4","category_product_swiper_item_limit":"6","category_product_item_limit":"18"}},"shop_setting":{"type":"shop_setting","visible":true,"settings":{"favicon_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkxMjkwX1NLSUlf6buD5aeQ5oSb5L-d6aSKX0xvZ28uanBnLmpwZWciXV0.jpeg?sha=927dea8ad1346c9b","og_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkxMjkwX1NLSUlf6buD5aeQ5oSb5L-d6aSKX0xvZ28uanBnLmpwZWciXV0.jpeg?sha=927dea8ad1346c9b","shop_title":"| SK-II 雅詩蘭黛 正貨經銷 - 國際精品美妝 多品牌代理","shop_description":"專營SK-II (SK2) 與雅詩蘭黛等專櫃保養品。提供青春露(神仙水)、大紅瓶、小棕瓶等熱銷公司貨。針對皮膚暗沉、毛孔粗大與抗老需求提供專業推薦。台灣現貨,保證正品 快速出貨","shop_keywords":"SK-II, SK2, 雅詩蘭黛, Estée Lauder, 青春露, 神仙水, 小棕瓶, 特潤超導修護露, 大紅瓶, 小燈泡, 美白精華, 抗老保養品, 保濕精華, 專櫃保養品, 公司貨, 正品保證, 台灣現貨, 經銷商"},"custom_name":"全站設定"},"color_settings":{"type":"color_settings","visible":true,"settings":{"button_color":"#000000","button_text_color":"#FFFFFF","accent_color":"#2B2B6E","heading_color":"#565656","text_color":"#9A9EA2","price_color":"#C39D6F","discount_price_color":"#C39D6F","theme_bg_color":"#FFFFFF","nav_logo_bg_color":"#FFFFFF","nav_menu_bg_color":"#FFFFFF","nav_menu_text_color":"#565656","nav_menu_icon_color":"#565656","footer_bg_color":"#000000","footer_text_color":"#FFFFFF","checkout_button_color":"#000000","checkout_accent_color":"#2b2b6e","product_border_color":"#E2E2E2","tips_text_color":"#0C5460"},"custom_name":"顏色設定"},"popup":{"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":false,"settings":{"dict_image_url":"/theme_src/i18n_shoestore/default_img/popup_default.jpg","icon_size":"small"},"custom_name":"圖片","thumbnail":"banner","draggable":true}},"block_order":["popup_block_1"],"settings":{},"custom_name":"彈窗廣告","thumbnail":"banner","draggable":false},"product_info":{"type":"product_info","visible":true,"settings":{"display_product_sku":false,"dict_vip_custom_price_text":"","dict_vip_custom_price_href":""},"custom_name":"基本設定"},"product_description":{"type":"product_description","visible":true,"custom_name":"商品介紹"},"related_products":{"type":"related_products","visible":true,"settings":{"display_related_cols":true,"use_custom_related_cols":true,"dict_group_related_cols_related_product":"相關商品","related_products_limit":"4"},"custom_name":"相關商品"},"contact":{"type":"contact","visible":true,"settings":{"show_google_map":true,"show_google_map_iframe":"\u003ciframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3614.198398723812!2d121.46180341432435!3d25.06126384335351!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3442a89289e13fa5%3A0xcf82825135a60570!2zMjQy5paw5YyX5biC5paw6I6K5Y2A5paw5YyX5aSn6YGT5LqM5q61MzEy6JmfMw!5e0!3m2!1szh-TW!2stw!4v1647484089160!5m2!1szh-TW!2stw\" width=\"600\" height=\"450\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\"\u003e\u003c/iframe\u003e"},"custom_name":"客服","thumbnail":"general_page","draggable":false},"collection":{"type":"collection","visible":true,"settings":{"collection_sidebar":"main-menu","collection_sidebar_set_open":false,"collection_pagination_limit":"24"}},"404":{"type":"404","visible":true,"settings":{"image_url":"/theme_src/i18n_shoestore/default_img/404_img.png","dict_404_image_url":"/theme_src/i18n_shoestore/default_img/404_img.png","dict_title_text":"抱歉,此頁面不存在或者已經被移除","dict_btn_text":"返回首頁"}},"blogs_all":{"type":"blogs_all","visible":true,"settings":{}},"bundle_discounts":{"type":"bundle_discounts","visible":true,"settings":{}},"cart":{"type":"cart","visible":true,"settings":{}},"cart_empty":{"type":"cart_empty","visible":true,"settings":{}},"page":{"type":"page","visible":true,"settings":{}},"search":{"type":"search","visible":true,"settings":{"search_link_list":"main-menu"},"custom_name":"搜尋頁"},"customers/account":{"type":"customers/account","visible":true,"settings":{}},"customers/account_edit":{"type":"customers/account_edit","visible":true,"settings":{}},"customers/activate_account":{"type":"customers/activate_account","visible":true,"settings":{}},"customers/addresses":{"type":"customers/addresses","visible":true,"settings":{}},"customers/bonus_points":{"type":"customers/bonus_points","visible":true,"settings":{}},"customers/cancel":{"type":"customers/cancel","visible":true,"settings":{}},"customers/coupons":{"type":"customers/coupons","visible":true,"settings":{}},"customers/forgot_password":{"type":"customers/forgot_password","visible":true,"settings":{}},"customers/login":{"type":"customers/login","visible":true,"settings":{}},"customers/message":{"type":"customers/message","visible":true,"settings":{}},"customers/messages":{"type":"customers/messages","visible":true,"settings":{}},"customers/modify_password":{"type":"customers/modify_password","visible":true,"settings":{}},"customers/order":{"type":"customers/order","visible":true,"settings":{}},"customers/orders":{"type":"customers/orders","visible":true,"settings":{}},"customers/periodic_order":{"type":"customers/periodic_order","visible":true,"settings":{}},"customers/periodic_orders":{"type":"customers/periodic_orders","visible":true,"settings":{}},"customers/register":{"type":"customers/register","visible":true,"settings":{}},"customers/reset_password":{"type":"customers/reset_password","visible":true,"settings":{}},"customers/return":{"type":"customers/return","visible":true,"settings":{}},"customers/tracking_items":{"type":"customers/tracking_items","visible":true,"settings":{}},"express_delivery-navbar":{"type":"express_delivery-navbar","visible":true,"settings":{}},"express_delivery-content":{"type":"express_delivery-content","visible":true,"settings":{}},"express_delivery_index_4_blocks":{"type":"_index_4_blocks","visible":false,"blocks":{"express_delivery_display_index_4_block_1":{"type":"image","visible":true,"settings":{"title":"","dict_link":"","dict_image_url":"/theme_src/i18n_shoestore/default_img/index_4_blocks_1.jpg","dict_tablet_image_url":"","dict_mobile_image_url":""}}},"block_order":["express_delivery_display_index_4_block_1"]},"board_comments":{"type":"board_comments","visible":true,"settings":{},"custom_name":"商品評論","thumbnail":"list","draggable":false},"1649756284558":{"type":"_index_product_banner","custom_name":"橫幅廣告","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NzU2MzE4XzA0MTItU0syLUJBTk5FUi1SSUFOLTE5MjBYODAwX-W3peS9nOWNgOWfnyAxLmpwZy5qcGVnIl1d.jpeg?sha=c598a695b1861452","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","cta_btn_display_style":"topPosition","cta_btn_text":"了解更多","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_banner_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"},"blocks":{},"block_order":[]},"combo_product_info":{"type":"combo_product_info","visible":true,"settings":{}},"combo_product_desc":{"type":"combo_product_desc","visible":true,"settings":{}},"customers/other_valid_orders":{"type":"customers/other_valid_orders","visible":true,"settings":{}},"1764125042442_3":{"type":"_video_editor_section","custom_name":"影片設定","visible":true,"settings":{"video_editor_section_dict_title":"青春露限量活動","video_editor_section_dict_video_link":"https://youtube.com/shorts/-ipRMkADEwo","margin_x":"6","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0"},"blocks":{},"block_order":[]},"1764205348538_3":{"type":"_video_editor_section","custom_name":"影片設定","visible":false,"settings":{"video_editor_section_dict_title":"青春露330限量活動組","video_editor_section_dict_video_link":"youtube.com/watch?v=_YQF7mG9He0\u0026feature=youtu.be","margin_x":"7","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_video_editor_section_title":"青春露330限量活動組","dict_video_editor_section_video_link":"youtube.com/watch?v=_YQF7mG9He0\u0026feature=youtu.be","auto_play":false,"hide_controls":false,"loop":true},"blocks":{},"block_order":[]},"1764205535671_3":{"type":"_video_editor_section","custom_name":"影片設定","visible":false,"settings":{"video_editor_section_dict_title":"青春露330限量活動","video_editor_section_dict_video_link":"https://www.youtube.com/watch?v=_YQF7mG9He0","margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_video_editor_section_title":"青春露330限量活動","dict_video_editor_section_video_link":"https://www.youtube.com/watch?v=_YQF7mG9He0","auto_play":false,"hide_controls":false,"loop":true},"blocks":{},"block_order":[]},"1769909594379_7":{"type":"_custom_html","custom_name":"自訂HTML","visible":true,"settings":{"margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_body_html":"\u003cdiv class=\"brand-intro\"\u003e\r\n   \u003ch1 style=\"font-size: 24px; text-align: center;\"\u003e為妳守護每一份美麗,黃姐嚴選專櫃正貨\u003c/h1\u003e\r\n   \u003cp style=\"text-align: center;\"\u003e經銷 SK-II、雅詩蘭黛等國際品牌,保證正品,讓每一天的保養儀式,都成為寵愛自己的最美時刻。\u003c/p\u003e\r\n\u003c/div\u003e"},"blocks":{},"block_order":[]},"announcement_bar":{"type":"announcement_bar","visible":true,"blocks":{"announcement_bar_block_1":{"type":"image","visible":true,"settings":{"display_only_index":false,"display_period":"always","dict_link":"","link_open_in_new_tab":false,"dict_image_url":"","dict_image_tablet_url":"","dict_image_mobile_url":"","image_alt":"","dict_content":"","text_size":"12","text_color":"#ffffff","bg_color":"#000000","timer_text_color":"#c39d6f","timer_bg_color":"#2b2b6e","migrated_from_navbar":true},"custom_name":"圖片"}},"block_order":["announcement_bar_block_1"],"settings":{"display_mode":"vertical","carousel_interval":"3"},"custom_name":"置頂公告"}},"navbar_image_logo":true,"show_default_all_products":true,"one_dimension_limit":"
606","two_dimension_limit":"10","header_banner_display":true,"header_banner_link":"/","display_main_slider":true,"display_phone":true,"phone_number":"02-7727-7296","display_fax_number":false,"shop_fax_number":"0222345678","display_shop_email":true,"shop_email":"[email protected]","display_shop_address":true,"shop_address":"新北市新莊區新北大道二段312號3樓","display_office_time":true,"shop_office_time":"10:00-17:00","index_event_slider_display":true,"index_event_slider_item_1_display":true,"dict_index_event_slider_item_1_link":"#","index_event_slider_item_2_display":true,"dict_index_event_slider_item_2_title":"2019秋季鞋款新品上市","dict_index_event_slider_item_2_link":"#","index_event_slider_item_3_display":true,"dict_index_event_slider_item_3_title":"全館任選三件結帳再享折扣!!8折!!","dict_index_event_slider_item_3_link":"#","index_event_slider_item_4_display":true,"dict_index_event_slider_item_4_title":"FINAL SALE/夏天熱銷百搭鞋款補貨到店","dict_index_event_slider_item_4_link":"#","index_event_slider_item_5_display":true,"dict_index_event_slider_item_5_title":"熱賣倒數","dict_index_event_slider_item_5_link":"#","index_event_slider_item_6_display":true,"dict_index_event_slider_item_6_title":"現在註冊會員即可享折扣金$50(現折)","dict_index_event_slider_item_6_link":"#","index_event_slider_item_7_display":false,"dict_index_event_slider_item_7_title":"","dict_index_event_slider_item_7_link":"","index_event_slider_item_8_display":false,"dict_index_event_slider_item_8_title":"","dict_index_event_slider_item_8_link":"#","index_event_slider_item_9_display":false,"dict_index_event_slider_item_9_title":"","dict_index_event_slider_item_9_link":"#","index_event_slider_item_10_display":false,"dict_index_event_slider_item_10_title":"","dict_index_event_slider_item_10_link":"#","index_4_slider_display":true,"dict_index_4_slider_title":"Instagram","index_4_slider_item_1_display":true,"dict_index_4_slider_item_1_link":"#","index_4_slider_item_2_display":true,"dict_index_4_slider_item_2_link":"#","index_4_slider_item_3_display":true,"dict_index_4_slider_item_3_link":"#","index_4_slider_item_4_display":true,"dict_index_4_slider_item_4_link":"#","index_4_slider_item_5_display":true,"dict_index_4_slider_item_5_link":"#","index_4_slider_item_6_display":false,"dict_index_4_slider_item_6_link":"#","index_4_slider_item_7_display":false,"dict_index_4_slider_item_7_link":"#","index_4_slider_item_8_display":false,"dict_index_4_slider_item_8_link":"#","index_video_blocks_display":true,"dict_index_video_blocks_title":"Youtube","dict_index_video_blocks_video_link":"https://www.youtube.com/watch?v=3bI4IUIVjCk","collection_sidebar":"main-menu","collection_sidebar_set_open":false,"collection_pagination_limit":"24","product_slogan_display":false,"display_product_total_sold":false,"display_periodic_order_label":false,"cart_quantity_limit":"30","is_empty_clickable":true,"is_first_selected":false,"display_product_images_color":false,"discount_product_images_color_expand":false,"display_product_discounts_list":true,"display_discount_price_name":false,"discount_price_slogan_url":"","dict_discount_price_name":"","display_discount_price_suggestion_name":false,"dict_discount_price_suggestion_name":"","display_product_section_description":true,"dict_product_section_description":"商品介紹","description_section_spec_setting":true,"dict_product_description_section_spec":"規格說明","description_section_shipping_setting":true,"dict_product_description_section_shipping":"運送方式","vip_custom_price_visible":false,"display_global_event_1":false,"dict_show_global_event_1_link":"#","display_global_event_2":false,"dict_show_global_event_2_link":"#","display_global_event_3":false,"dict_show_global_event_3_link":"#","display_contact_address":true,"dict_contact_address":"測試地址","show_google_map":true,"show_google_map_iframe":"\u003ciframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3613.6479170127777!2d121.56760821400371!3d25.07991984260527!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3442ac6fbd841bbd%3A0x64e16bcf25e3da31!2zMTE05Y-w5YyX5biC5YWn5rmW5Y2A55Ge5YWJ6LevNTEz5be3MzDomZ8!5e0!3m2!1szh-TW!2stw!4v1485156761267\" width=\"600\" height=\"450\" frameborder=\"0\" style=\"border:0\" allowfullscreen\u003e\u003c/iframe\u003e","display_selected_blog":true,"selected_blog":"news","product_scale":"default_scale","google_font":"{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}","styled_shop_menu":"buttonType","display_inventory_policy":false,"display_product_vendor":true,"product_text_align":"center","product_video_display_location":"before","product_labels":{"items":[{"id":"sale_label","kind":"system","title":"特價標籤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"large"},{"id":"out_of_stock_label","kind":"system","title":"缺貨標籤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"periodic_event_label","kind":"system","title":"定期定額標籤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"8105365b-5338-4722-9797-30a9ac73df43","kind":"custom","title":"自定義標籤 1","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"7193ad43-893d-44d6-b5b1-737192b96af0","kind":"custom","title":"自定義標籤 2","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"768d7ef8-b244-4bc5-859b-683d1d9fb71e","kind":"custom","title":"自定義標籤 3","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"3d4f0ee5-da81-451e-98ac-577cb5125469","kind":"custom","title":"自定義標籤 4","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"}
60,{"id":"42dc9e49-67de-4a7c-9b84-45b89a0bf96f","kind":"custom","title":"自定義標籤 5","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"}]},"nav_icon_style":"icon_type_default","product_card_hover_effect":"button","product_image_border_radius":"0"});
61  </script>
61
62
63
64
65
66
67
68
69
70  
70<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","url":"https://www.to-buy.com.tw","logo":"https://cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7"}</script>
70<script type="application/ld+json">{"@context":"https://schema.org/","@type":"WebSite","name":"黃姐愛保養","url":"https://www.to-buy.com.tw","potentialAction":{"@type":"SearchAction","target":"www.to-buy.com.tw/search?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
70
71
72
73
74    <!-- for vendor -->
75    <!-- cyb_snippet _bootstrap start -->
76
77<!-- cyb_snippet _bootstrap end -->
78    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vendor-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
79
80    <!-- common css rulesets -->
81    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/common-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
82
83    <!-- for navbar -->
84    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/navbar-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
85
86    <!-- for footer -->
87    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/footer-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
88
89    <!-- theme assets -->
90    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/main-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
91
92    <!-- for vendor -->
93    
93<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/vendor-e958d46bfee2e69f.js' type='text/javascript'></script>
93
94
95            
95<script>
96          window.sci = "eyJzaG9wX2lkIjoyMTEyNiwic2hvcF9wbGFuIjoiYm9zc19wbHVzIiwiZGlt\nX2FmZmlsaWF0ZSI6bnVsbCwiY3VzdG9tZXJfaWQiOm51bGwsImN1c3RvbWVy\nX25hbWUiOm51bGwsInNob3BfbmFtZSI6Ium7g+WnkOaEm+S/nemkiiIsInNo\nYXJlX2F0dHJpYnV0aW9uX2VuYWJsZWQiOmZhbHNlfQ==\n";
97        </script>
97
98
99
100<meta name="csrf-param" content="authenticity_token" />
101<meta name="csrf-token" content="yEwb8AR-WnlB7FM_vLX_6gLiRfmow1_0CYW5qoFB9M6S4BE6H_ZQ46k_ezR3zA3OvMSArF4SzxZ6WX6arbv00w" />
102<script>(function () {
103  window.gaConfigurations = {"useProductIdInProductEvents":false};
104})();
105</script>
vendor: 1 bytes, line 105
105
106<script>(function () {
107  window.CYBERBIZ_PageContext = {"page_type":"home"};
108})();
109</script>
109
110<link href="//cdn-general.cybassets.com/frontend/shop/quark-e958d46bfee2e69f.css" rel="stylesheet" type="text/css" media="all" />
111        
111<script>
112          window.shopScriptHelper = {
113            i18nLocale: "zh-TW",
114            i18nLocaleDefault: "zh-TW",
115            availableCurrencies: [],
116            defaultCurrency: "TWD",
117            currenciesInfo: [{"html_unit":"NT${{amount_no_decimals}}","email_unit":"NT${{amount_no_decimals}}","name":"新台幣 (TWD)","html":"NT${{amount_no_decimals}}","unit":"","trailing_zeros":false,"money_format":"%u%n","decimal_precision":0,"format":"NT${{amount_no_decimals}}","code":"TWD","symbol":"NT$","email":"NT${{amount_no_decimals}}"}],
118            vueOverrideTranslations: {"zh-TW":{"vue":{}}},
119            hasI18nInContextEditing: false,
120            shopMultipleCurrenciesCheckout: false,
121            hasLocalizedShopPriceFormat: true,
122          }
123        </script>
123
124
125        
126        
126<script
127          src="//cdn-general.cybassets.com/frontend/shop/tolgeeIntegration-e958d46bfee2e69f.js">
128        </script>
128
129        
129<script defer>
130          /*
131          * Enable in-context translation for Liquid part on the page.
132          * This must be executed last to prevent conflicts with other Vue apps.
133          * So put it to `onload`, which will be executed after DOM ready's app mount
134          */
135          window.onload = function() {
136            if (
137              window.shopScriptHelper &&
138              window.shopScriptHelper.hasI18nInContextEditing
139            ) {
140              window.initTolgeeForLiquid()
141            }
142          }
143        </script>
143
144
145<script> var google_con_event_labels = []</script>
vendor: 1 bytes, line 145
145
146<script src="//cdn-general.cybassets.com/frontend/shop/pageEventHandler-e958d46bfee2e69f.js"></script>
vendor: 1 bytes, line 146
146
147<script src="//cdn-general.cybassets.com/frontend/shop/globalAnalysis-e4c650eb0b.js"></script>
147
148        
148<script>
149          window.c12t = {"customer_id":null};
150        </script>
150
151
152        <meta name="request-id" content="9746CF2203810D2D82F68AA15ACA84FD"/>
153
154<link rel="canonical" href="https://www.to-buy.com.tw/">
155<script src="//cdn-general.cybassets.com/frontend/shop/carousel-e958d46bfee2e69f.js"></script>
155
156          
156<script>
157            window.parent.postMessage({ type: 'previewShopInit', currentUrl: window.location.href }, '*');
158          </script>
158
159
160<script src="//cdn-general.cybassets.com/frontend/appStoreSDK/main.2798231628aa7fab87a9.js"></script>
vendor: 1 bytes, line 160
160
161<script>window.CYBERBIZ_AppScriptSettings = {"shop_add_ons":"W3sidmVuZG9yX3R5cGUiOiJDWUJFUkJJWiBHb29nbGUgQW5hbHl0aWNzIDQi\nLCJhcHBfaWQiOiJRVWo1WnFvZUlPUjlaM2JaS2trMG44N3l5a0FpOWU0NURE\naDJ0YlFnaUJBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IkctRjM3SjBNWTI4\nTiwgRy00QjdSSzdGSFdIIn19LHsidmVuZG9yX3R5cGUiOiJDaGF0IEJveCIs\nImFwcF9pZCI6ImM5ZDgzZjA5OTYxNzRmYmJhODZlYmEwNDFhZTg5OGEyIiwi\nc2V0dGluZ3MiOnsid2lkZ2V0X2tleSI6IlVfUy1paUZZNUxvWXF6REoifX0s\neyJ2ZW5kb3JfdHlwZSI6IkRpZ2l0YWwgSW50ZWxsaWdlbmNlIFRyYWNrZXIi\nLCJhcHBfaWQiOiIxYjUwYTg2ZGMyZDE0MTgzODhmZGVkZjdhMGQ0MzlhZSIs\nInNldHRpbmdzIjp7fX1d\n"}
162</script>
vendor: 1 bytes, line 162
162
163<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/9d6f4550aad572e9f70abb70ae5a6552482cf617ea5e4d5a32ed4ebbb5d60d54.js"></script>
vendor: 1 bytes, line 163
163
164<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/8766542902afa60f4adda3c555c06025d2c27771ea85a6fc657a91cddbe5c59f.js"></script>
vendor: 1 bytes, line 164
164
165<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/35cd1f36a4a855bacbaa53900f8e17b376d4cab44c73812eef261aef6435163d.js"></script>
vendor: 1 bytes, line 165
165
166<script>window.CYBERBIZ.initializeSDK.initialize();</script>
vendor: 1 bytes, line 166
166
167<script src="//cdn-general.cybassets.com/frontend/shop/setAffliateCookie-e958d46bfee2e69f.js"></script>
167
168
169
170
171
172
173
174
175
176    <style id="color_settings">
177  :root {
178    
179      --button: #000000;
180    
181
182    
183      --button_text: #FFFFFF;
184    
185
186    
187      --accent: #2B2B6E;
188    
189
190    
191      --heading: #565656;
192    
193
194    
195      --text: #9A9EA2;
196    
197
198    
199      --price: #C39D6F;
200    
201
202    
203      --discount_price: #C39D6F;
204    
205
206    
207      --theme_bg: #FFFFFF;
208    
209
210    
211      --nav_logo_bg: #FFFFFF;
212    
213
214    
215      --nav_menu_bg: #FFFFFF;
216    
217
218    
219      --nav_menu_text: #565656;
220    
221
222    
223      --nav_menu_icon: #565656;
224    
225
226    
227      --footer_bg: #000000;
228    
229
230    
231      --footer_text: #FFFFFF;
232    
233
234    
235      --checkout_button: #000000;
236    
237
238    
239      --checkout_accent: #2b2b6e;
240    
241
242    
243      --product_border: #E2E2E2;
244    
245
246    
247      --tips_text: #0C5460;
248    
249
250    
251
252    
253  }
254</style>
255
256
257
258    
259    <!-- Google Search Console, add by ttn  2025.12.06 -->
260    <meta name="google-site-verification" content="gaPfNBerrsTkxzyo7L0jVcRlXvVnx0ZutLsF-Q3zC5I" />
261    <!-- JSON-LD 結構化資料 , add by ttn  2025.12.06 -->
262    
262<script type="application/ld+json">
263    {
264      "@context": "https://schema.org",
265      "@type": "Organization",
266      "name": "黃姐愛保養",
267      "url": "https://www.to-buy.com.tw/",
268      "logo": {
269        "@type": "ImageObject",
270        "url": "https://cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MDEyNDQxX-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LmpwZy5wbmcucG5nIl1d.png?sha=35535be96a3a7887", 
271        "width": 740, // Logo 圖片的實際寬度
272        "height": 255  // Logo 圖片的實際高度
273      },
274      "sameAs": [
275        "https://www.facebook.com/people/%E9%BB%83%E5%A7%90%E6%84%9B%E4%BF%9D%E9%A4%8A/100078345875047/", // 官方 Facebook 頁面
276        "https://line.me/R/ti/p/@666tppkn" // LINE
277      ]
278    }
279    </script>
279
280  
281        <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 74 bytes, lines 281-282
281
282          <script async src="https://www.googletagmanager.com/gtag/js?id=
282G-F37J0MY28N
vendor: 22 bytes, lines 282-283
282"></script>
283          
283<script>
284            window.dataLayer = window.dataLayer || [];
285            function gtag(){dataLayer.push(arguments);}
286            gtag('js', new Date());
287            
288            
289      </script>
289
290      
290<script>
291        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
292        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
293        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
294        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
295
296        ga('create', '', 'auto', {'name': 'cyberbiz'});
297        ga('cyberbiz.require', 'displayfeatures');
298        ga('cyberbiz.set', 'dimension1', '21126');
299        ga('cyberbiz.require', 'ec');
300        ga('cyberbiz.send', 'pageview');
301      </script>
301
302    </head>
303
304  <body style="display: flex; flex-direction: column;"><!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 304-305
304
305            <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
305GTM-5MMDGG24
vendor: 105 bytes, lines 305-307
305"
306            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
307          
307<!-- End Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 307-309
307
308      <noscript><iframe
309      src="//www.googletagmanager.com/ns.html?id=
309GTM-TXD9LVJ
vendor: 117 bytes, lines 309-315
309"
310      height="0"
311      width="0"
312      style="display:none;visibility:hidden">
313      </iframe></noscript>
314    
315    
315<!-- Navigation -->
316    <!-- cyb_snippet liquid_helper start -->
317<script>
318	function getDiscountPriceName() {
319		return "false" === "true" ? "" : "";
320	}
321
322	function getDiscountPriceSuggestionName() {
323		return "false" === "true" ? "" : "";
324	}
325
326  document.addEventListener('DOMContentLoaded', function() {
327    const languageHandle = Cookies.get("language");
328    const defaultLanguage = {"handle":"zh-TW","currency_code":"TWD","title":"繁體中文"};
329    const languages = [];
330    const currency = window.shopScriptHelper.defaultCurrency;
331    const currencies = window.shopScriptHelper.currenciesInfo;
332		window.liquidHelper = {
333			shopInternational: false,
334			defaultLanguage: defaultLanguage,
335			language: languages.find(function(l) {
336				return l.handle === languageHandle;
337			}) || defaultLanguage,
338      shopMultipleCurrenciesCheckout: false,
339			shopMultipleCurrencies: false,
340			defaultCurrencyFormat: "NT${{amount_no_decimals}}",
341			defaultCurrency: currency,
342			getCurrency: function() {
343        const currencyValue = Cookies.get("currencyValue") || currency;
344        return currencies.find(function(c) { return c.code === currencyValue; }
345      )},
346      getDefaultCurrency: function() { return currencies.find(function(c) {
347				return c.code === currency;
348			})},
349      getAvailableCurrencies: function() { return currencies.map(c => c.code) },
350      getCurrencyFormatInfo: function(currency) {
351        const currencyInfo = currencies.find(c => c.code === currency)
352        return _.pick(currencyInfo, [
353          'decimal_precision',
354          'symbol',
355          'money_format',
356          'unit',
357          'trailing_zeros',
358          'html_unit',
359          'code',
360        ]);
361      },
362			cartQuantityLimit: (function() {
363        const limit = Number("30" || undefined);
364        return limit <= 0 || isNaN(limit) ? Number.POSITIVE_INFINITY : limit;
365      })(),
366			isFirstVariantSelected:  false ,
367			isImageColorsUsed:  false ,
368			isEmptyClickable:  true ,
369			hasAddBuyProduct: '' !== "" ? true : false,
370			hasPriceWithDiscountPlugin: 'false' ? true : false,
371      conversionBonus: 1,
372      hasLocalizedShopPriceFormat: true,
373      hasCustomerCartPlugin: true,
374      isCartEnabled: true,
375      cdnHost: '//cdn-general.cybassets.com',
376      hasShopCustomPasswordRulePlugin: false,
377      hasDisableProductQuantityValidation: false,
378      hasBreadcrumbReferrerEnabled: false,
379		};
380	});
381</script>
381
382
383<!-- cyb_snippet liquid_helper end -->
384
385<script src='//cdn-general.cybassets.com/frontend/shop/navbarSection-e958d46bfee2e69f.js' type='text/javascript'></script>
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402<style>
403  
404    #navbar {
405      --navbar-pc-title-scale: 0.9;
406      --navbar-pc-body-scale: 1.0;
407      --navbar-mobile-title-scale: 0.9;
408      --navbar-mobile-body-scale: 1.0;
409    }
410  
411
412  
413
414  
415</style>
416
417
418  <span id="navbar" class="drawer drawer--left font-size-setting-enabled">
419    <header id="header" class="qk-w--100vw qk-pos--fixed qk-t--0 qk-l--0">
420      
421
422      
423        <div id="announcement-bar"></div>
424      
425
426      
427      
428        <div class="computer_nav qk-hidden--mobile ">
429          <div class="header_logo qk-bg--nav_logo_bg">
430            <div class="qk-pos--rel">
431              <div class="qk-text--center">
432                <!-- logo start -->
433                
434                  <nav class="logo qk-display--il_bk">
435                    <a href="/" class="qk-w--100">
436                      <img
437                        src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7"
438                        class="qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--pc_logo qk-hidden--mobile"
439                        style="width: auto; height: 80px;"
440                        alt="黃姐愛保養 | SK-II 雅詩蘭黛 國際精品美妝 正貨經銷"
441                        height="52"
442                        width="auto"
443                      >
444                    </a>
445                  </nav>
446                
447                <!-- logo end -->
448                <!-- tool-nav start -->
449                
450                  <!-- cyb_snippet tool_nav start -->
451
452
453
454
455
456
457<nav class="tool-nav qk-pos--rel qk-float--r qk-display--flex">
458  <ul class="link_shelf_top qk-display--flex qk-flex--row qk-justify--end qk-align--center qk-pos--abs qk-r--0">
459    
460    
461    <!-- member -->
462    
463      <li class="customer_account qk-pos--rel qk-pd--05">
464        <div class="dropdown qk-pos--static">
465          <div class="qk-cursor--pointer" data-toggle="dropdown">
466            <div data-icon-type="custom_icon_type_account"></div>
467            <span class="text"></span>
468          </div>
469          <div class="member qk-dropdown_menu dropdown-menu qk-pos--abs qk-r--0 qk-bd--default qk-bd--product_border qk-bg--theme_bg" role="menu">
470            <ul id="customer-logined-menu" style="display: none">
471              <li>
472                <div class="qk-fs--body qk-text--heading">
473                  <p class="customer-name qk-whitespace-break-spaces"></p>
474                  <p>您好!</p>
475                </div>
476              </li>
477            </ul>
478            <ul id="customer-not-login-menu">
479              <li class="button qk-text--center">
480                <a href="/account/login" class="btn-login qk-btn qk-btn--lg qk-btn--primary qk-w--100">會員登入</a>
481              </li>
482              <li class="button qk-text--center">
483                <a href="/account/signup" class="btn-orders qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent">註冊新會員</a>
484              </li>
485            </ul>
486            <span class="menu-bd qk-bd_t--default qk-bd--product_border"></span>
487            <ul class="member-menu qk-bd_t--default qk-bd--product_border">
488              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
489                <a href="/account/index" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">我的帳戶</a>
490              </li>
491              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
492                <a href="/account/orders" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">訂單查詢</a>
493              </li>
494              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
495                <a href="/account/coupons" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">專屬優惠券</a>
496              </li>
497              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
498                <a href="/account/tracking_items" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">收藏清單</a>
499              </li>
500              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg customer-logout-li" style="display: none">
501                <a href="/account/logout" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">會員登出</a>
502              </li>
503            </ul>
504          </div>
505        </div>
506      </li>
507    
508    <!-- for money symbol -->
509    <div id="money-symbol" data-money-symbol="NT${{amount_no_decimals}}" hidden></div>
510    <!-- cart -->
511    
512      <li class="cart qk-pos--rel qk-pd--05">
513        <!--電腦版的購物車選單-->
514        <div class="dropdown qk-pos--static">
515          <div data-toggle="dropdown" class="shopcart qk-cursor--pointer" >
516            <div data-icon-type="custom_icon_type_cart"></div>
517            <span class="global-cart-count qk-circle qk-circle--sm qk-bg--accent qk-text--white qk-vert--mid qk-pos--abs qk-bd" style="display: none;">0</span>
518            <span class="global-cart-loading"></span>
519          </div>
520          <div class="qk-dropdown_menu dropdown-menu qk-pos--abs qk-r--0 qk-bd--default qk-bd--product_border qk-bg--theme_bg" role="menu">
521            <div class="cart_list global-cart-item-list custom-scrollbar qk-of_x--hidden qk-of_y--scroll qk-of_y--overlay qk-display--flex qk-flex--column qk-justify--between default_scale"></div>
522            <p class="cart_empty qk-fs--body qk-text--heading qk-text--center">目前的購物車是空的!</p>
523            <ul>
524              <li class="button qk-text--center">
525                <a class="btn-checkout qk-btn qk-btn--lg qk-btn--primary qk-w--100" href="/cart" style="display: none">立即購買</a>
526                <a class="btn-tracking qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent" href="/account/tracking_items">前往收藏清單</a>
527              </li>
528            </ul>
529          </div>
530        </div>
531      </li>
532    
533    <!-- search -->
534    
535      <li class="search qk-pos--rel qk-pd--05" id="search-icon">
536        <div class="dropdown qk-pos--static">
537          <div class="qk-cursor--pointer" data-toggle="dropdown">
538            <div data-icon-type="custom_icon_type_search"></div>
539          </div>
540          <div class="qk-dropdown_menu dropdown-menu qk-pos--abs qk-r--0 qk-bd--default qk-bd--product_border qk-bg--theme_bg" role="menu">
541            <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-vert--mid">
542              <form action="/search" class="form-inline qk-search_form qk-display--flex qk-justfify--between qk-align--center qk-flex--1">
543                <input class="search-input form-control qk-inputbox qk-inputbox--lg qk-flex--1 qk-w--100 qk-bg--transparent qk-text--heading" type="search" placeholder="搜尋" aria-label="Search" name="q" value="" />
544                <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">搜尋</button>
545              </form>
546            </div>
547          </div>
548        </div>
549      </li>
550    
551    <!-- express delivery -->
552    
553  </ul>
554</nav>
555
556<!-- cyb_snippet tool_nav end -->
557                
558                <!-- tool-nav end -->
559              </div>
560            </div>
561          </div>
562          
563            <div class="header_nav qk-bg--nav_menu_bg">
564              <div class="qk-pd_x--15">
565                <div class="qk-pos--relative center">
566                  <!-- main-nav start -->
567                  <nav class="main_nav qk-display--init">
568                    <!-- cyb_snippet _main_nav_skeleton start --><ul
569    class="main_nav_skeleton link_shelf_top qk-display--flex qk-flex--row qk-flex--wrap qk-justify--center qk-align--center qk-body"
570    style="justify-content: center; visibility: hidden;"
571    aria-hidden="true"
572  ><span>
573        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">首頁</a></li>
574      </span><span>
575        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><span class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--default">商品列表</span></li>
576      </span><span>
577        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/blogs/news" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">最新動態</a></li>
578      </span><span>
579        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/pages/about-us" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">關於我們</a></li>
580      </span><span>
581        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/contact" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">客服中心</a></li>
582      </span><span>
583        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/pages/shop" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">特約商店</a></li>
584      </span><span>
585        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/pages/sales-channels" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">銷售據點</a></li>
586      </span></ul><!-- cyb_snippet _main_nav_skeleton end -->
587                  </nav>
588                  <!-- main-nav end -->
589                </div>
590              </div>
591            </div>
592          
593        </div>
594      
595      <div class="qk-hidden--pc  ">
596        <!-- mobile-nav start -->
597        <nav class="mobile-nav qk-bg--nav_logo_bg">
598          <ul class="qk-display--flex qk-flex--row qk-justify--between qk-align--center qk-pd_x--05 qk-pd_y--0">
599            <!-- menu -->
600            
601              <li class="sidebar-menu-icon drawer-toggle qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center">
602                <div data-icon-type="custom_icon_type_menu"></div>
603              </li>
604            
605            <!-- logo -->
606            
607              <li class="logo qk-mg_r--auto qk-pd_x--05 qk-pd_y--0">
608                
609                  <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--phone">
610                    <img
611                      src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7"
612                      height="25"
613                      width="auto"
614                      alt="黃姐愛保養 | SK-II 雅詩蘭黛 國際精品美妝 正貨經銷"
615                    >
616                  </a>
617                
618                
619                  <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--tablet">
620                    <img
621                      src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7"
622                      height="25"
623                      width="auto"
624                      alt="黃姐愛保養 | SK-II 雅詩蘭黛 國際精品美妝 正貨經銷"
625                    >
626                  </a>
627                
628              </li>
629            
630            
631              <!-- search -->
632              
633                <li class="search qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center ">
634                  <div class="dropdown qk-pos--static qk-text--center">
635                    <div class="qk-cursor--pointer" data-toggle="dropdown">
636                      <div data-icon-type="custom_icon_type_search"></div>
637                    </div>
638                    <div
639                      class="qk-dropdown_menu dropdown-menu qk-w--100vw qk-bg--theme_bg qk-bd--default qk-bd--product_border qk-mg--0"
640                      role="menu"
641                    >
642                      <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-sp_bt--5 qk-w--100">
643                        <form action="/search" class="form-inline qk-display--flex qk-justfify--center qk-flex--1">
644                          <div class="form-inline qk-search_form qk-display--flex qk-justfify--center qk-align--center qk-flex--1">
645                            <input
646                              class="form-control qk-flex--1 qk-inputbox qk-inputbox--lg qk-bg--transparent qk-text--heading"
647                              type="search"
648                              placeholder="搜尋"
649                              aria-label="Search"
650                              name="q"
651                              value=""
652                            >
653                            <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">
654                              搜尋
655                            </button>
656                          </div>
657                        </form>
658                      </div>
659                    </div>
660                  </div>
661                </li>
662              
663              <!-- express delivery -->
664              
665            
666          </ul>
667        </nav>
668        <!-- mobile-nav end -->
669      </div>
670      
671    </header>
671<script>
672      (function () {
673        var isNavbarTransparent = false;
674
675        function measureHeaderOffset() {
676          var header = document.getElementById('header');
677          if (!header) return null;
678
679          var headerHeight = header.getBoundingClientRect().height;
680
681          if (isNavbarTransparent && window.matchMedia('(min-width: 992px)').matches) {
682            var computerNav = document.querySelector('.computer_nav');
683            if (computerNav) {
684              headerHeight -= computerNav.getBoundingClientRect().height;
685            }
686          }
687
688          var floatFilter = document.getElementById('float-filter');
689          var floatFilterHeight = floatFilter
690            ? floatFilter.getBoundingClientRect().height
691            : 0;
692
693          return headerHeight - floatFilterHeight;
694        }
695
696        window.measureHeaderOffset = measureHeaderOffset;
697
698        var offset = measureHeaderOffset();
699        if (offset !== null) {
700          document.body.style.paddingTop = offset + 'px';
701        }
702      })();
703    </script>
703
704    
705      <!-- Sidebar -->
706      <nav class="drawer-nav drawer-nav_width qk-bg--nav_menu_bg " role="navigation">
707        <div class="drawer-menu">
708          <!-- cyb_snippet side_menu start -->
709
710
711<ul id="index_sidebar_shelf_top" class="sidebar qk-pd_b--1">
712  
713    <li class="logo qk-pos--rel qk-bg--nav_logo_bg qk-pd_x--1 qk-pd_y--05">
714      <a href="/" class="qk-pd--0">
715        <img src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7" height="32" width="auto" alt="logo">
716      </a>
717      <button class="drawer-toggle qk-pos--abs qk-bg--transparent qk-pd--0"></button>
718    </li>
719  
720  
721    
722
723    
724      <!-- cyb_snippet components/side_menu/menu start -->
725
726  <li class="category_title qk-fs--breadcrumb qk-bd--nav_menu_text qk-text--nav_menu_text qk-bd_b--default qk-fw--500">主選單</li>
727
728
729  
730  
731  
732    <li class="qk-pos--rel qk-pd--0">
733      
734        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/">首頁</a>
735      
736    </li>
737  
738
739  
740  
741  
742    <li class="qk-pos--rel qk-pd--0">
743      <button class="linklist bt-toggle qk-fw--bold  qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--nav_menu_text qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_2" aria-expanded=" true ">
744        
745          <span class="qk-cursor--pointer qk-text--nav_menu_text"> 商品列表 </span>
746        
747      </button>
748      <ul id="index_sidebar_shelf_second_2" class="collapse_index_sidebar_2 collapse shelf_second  show  qk-pd--0">
749        
750          
751          
752          
753            <li class="qk-pos--rel qk-pd--0">
754              
755                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/all_products">
756                  全部商品
757                </a>
758              
759            </li>
760          
761        
762          
763          
764          
765            <li class="qk-pos--rel qk-pd--0">
766              
767                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/光蘊臻采煥亮系列">
768                  光蘊臻采煥亮系列
769                </a>
770              
771            </li>
772          
773        
774          
775          
776          
777            <li class="qk-pos--rel qk-pd--0">
778              
779                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/facial">
780                  青春露
781                </a>
782              
783            </li>
784          
785        
786          
787          
788          
789            <li class="qk-pos--rel qk-pd--0">
790              
791                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/skin_power">
792                  肌活能量系列
793                </a>
794              
795            </li>
796          
797        
798          
799          
800          
801            <li class="qk-pos--rel qk-pd--0">
802              
803                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/genoptics">
804                  超肌因系列
805                </a>
806              
807            </li>
808          
809        
810          
811          
812          
813            <li class="qk-pos--rel qk-pd--0">
814              
815                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/lxp">
816                  晶鑽極緻系列
817                </a>
818              
819            </li>
820          
821        
822          
823          
824          
825            <li class="qk-pos--rel qk-pd--0">
826              
827                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/toner">
828                  化妝水
829                </a>
830              
831            </li>
832          
833        
834          
835          
836          
837            <li class="qk-pos--rel qk-pd--0">
838              
839                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/lotion">
840                  乳液
841                </a>
842              
843            </li>
844          
845        
846          
847          
848          
849            <li class="qk-pos--rel qk-pd--0">
850              
851                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/essence">
852                  精華液
853                </a>
854              
855            </li>
856          
857        
858          
859          
860          
861            <li class="qk-pos--rel qk-pd--0">
862              
863                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/eye_cream">
864                  眼霜
865                </a>
866              
867            </li>
868          
869        
870          
871          
872          
873            <li class="qk-pos--rel qk-pd--0">
874              
875                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/cream">
876                  乳霜
877                </a>
878              
879            </li>
880          
881        
882          
883          
884          
885            <li class="qk-pos--rel qk-pd--0">
886              
887                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/mask">
888                  面膜
889                </a>
890              
891            </li>
892          
893        
894          
895          
896          
897            <li class="qk-pos--rel qk-pd--0">
898              
899                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/facial_cleanser">
900                  洗面乳
901                </a>
902              
903            </li>
904          
905        
906          
907          
908          
909            <li class="qk-pos--rel qk-pd--0">
910              
911                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/cleansing">
912                  卸妝
913                </a>
914              
915            </li>
916          
917        
918      </ul>
919    </li>
920  
921
922  
923  
924  
925    <li class="qk-pos--rel qk-pd--0">
926      
927        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/blogs/news">最新動態</a>
928      
929    </li>
930  
931
932  
933  
934  
935    <li class="qk-pos--rel qk-pd--0">
936      
937        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/about-us">關於我們</a>
938      
939    </li>
940  
941
942  
943  
944  
945    <li class="qk-pos--rel qk-pd--0">
946      
947        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/contact">客服中心</a>
948      
949    </li>
950  
951
952  
953  
954  
955    <li class="qk-pos--rel qk-pd--0">
956      
957        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/shop">特約商店</a>
958      
959    </li>
960  
961
962  
963  
964  
965    <li class="qk-pos--rel qk-pd--0">
966      
967        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/sales-channels">銷售據點</a>
968      
969    </li>
970  
971
972
973<script>
974  $('button a').on('click', function(e) {e.stopPropagation()});
975</script>
975
976
977<!-- cyb_snippet components/side_menu/menu end -->
978    
979  
980  
981    
982      <li class="category_account-title qk-bd--nav_menu_text qk-fs--breadcrumb qk-text--nav_menu_text qk-bd_y--default qk-fw--500">帳戶</li>
983      <li class="qk-pos--rel qk-pd--0">
984        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
985          <a href="/account/index" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">我的帳戶</a>
986        </div>
987      </li>
988      <li class="qk-pos--rel qk-pd--0">
989        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
990          <a href="/account/orders" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">訂單查詢</a>
991        </div>
992      </li>
993      <li class="qk-pos--rel qk-pd--0">
994        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
995          <a href="/account/logout" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">會員登出</a>
996        </div>
997      </li>
998      <li class="qk-pos--rel qk-pd--0">
999        <a href="/account/login">
1000          <div class="customer-not-login-menu qk-bd--nav_menu_text qk-bg--nav_menu_text customer-not-login-menu_login qk-display--il_flex qk-justify--center qk-align--center qk-w--100 qk-text--center ">
1001            <span class="qk-text--nav_menu_bg qk-fw--500 qk-fs--body">
1002              會員登入
1003            </span>
1004          </div>
1005        </a>
1006      </li>
1007      <li class="qk-pos--rel qk-pd--0">
1008        <a href="/account/signup">
1009          <div class="customer-not-login-menu qk-bd--nav_menu_text customer-not-login-menu_signup qk-display--il_flex qk-justify--center qk-align--center qk-w--100 qk-text--center qk-bd--nav_menu_text qk-bd--default">
1010            <span class="qk-text--nav_menu_text qk-fs--body qk-fw--500">
1011              註冊新會員
1012            </span>
1013          </div>
1014        </a>
1015      </li>
1016    
1017    
1018    
1019    
1020  
1021</ul>
1022
1023<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/sidebar-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
1024
1025<script>
1026  $(document).ready(function(){
1027    // 側邊選單
1028    if ($('.drawer').length){
1029      $('.drawer').drawer();
1030      $('.bt-toggle').click(function(){
1031        setTimeout(function(){
1032          $('.drawer')[0].iScroll.refresh()
1033        },500)
1034      })
1035    }
1036  });
1037</script>
1037
1038
1039
1040<!-- cyb_snippet side_menu end -->
1041
1042        </div>
1043      </nav>
1044      <!-- Bottombar -->
1045      
1046        <div
1047          id="mobile-bottom-bar"
1048          class="qk-display--flex qk-justify--around qk-bg--nav_logo_bg qk-w--100vw qk-pos--fixed qk-b--0 qk-hidden--pc"
1049        >
1050          <!-- home -->
1051          <div class="qk-display--flex qk-justify--center qk-align--center qk-text--center qk-pd_x--05 qk-pd_y--0 qk-flex--1">
1052            <a id="home-nav-icon" href="/">
1053              <div data-icon-type="custom_icon_type_home"></div>
1054            </a>
1055          </div>
1056          <!-- tracking items -->
1057          <div class="qk-display--flex qk-justify--center qk-align--center qk-text--center qk-pd_x--05 qk-pd_y--0 qk-flex--1">
1058            <a href="/account/tracking_items">
1059              <div data-icon-type="custom_icon_type_tracking_items" c></div>
1060            </a>
1061          </div>
1062          <!-- cart -->
1063          
1064            <div class="qk-display--flex qk-justify--center qk-align--center qk-text--center qk-pd_x--05 qk-pd_y--0 qk-flex--1">
1065              <a
1066                href="/cart"
1067                class="qk-display--il_flex qk-flex--row qk-justify--center qk-align--center qk-vert--mid qk-pos--rel"
1068              >
1069                <div data-icon-type="custom_icon_type_cart"></div>
1070                <span
1071                  class="number global-cart-count qk-circle qk-circle--sm qk-bg--accent qk-text--white qk-text--center qk-vert--mid qk-pos--abs"
1072                  style="display: none;"
1073                  >0</span
1074                >
1075              </a>
1076            </div>
1077          
1078          <!-- member -->
1079          
1080            <div class="qk-display--flex qk-justify--center qk-align--center qk-text--center qk-pd_x--05 qk-pd_y--0 qk-flex--1">
1081              <a id="customer-phone-nav-icon" href="/account/login">
1082                <div data-icon-type="custom_icon_type_account"></div>
1083              </a>
1084            </div>
1085          
1086        </div>
1087      
1088    
1089  </span>
1090
1091<div id="index-popular-tags"></div>
1092
1093<style id="timer_color">
1094  :root {
1095    
1096      --timer_text: #c39d6f;
1097    
1098
1099    
1100      --timer_bg: #2b2b6e;
1101    
1102  }
1103</style>
1104
1105<script>
1106  window.language = {"account_name":"戶名","add_cart_error_try_again":"加入購物車有誤,請重新嘗試","add_to_cart":"加入購物車","addcart_rate_limit_desc":"秒後可再試一次,建議您停留在此頁面。","address1":"詳細退貨地址:路/å··/弄/樓","all_filters":"所有篩選條件","apply_fail":"申請失敗","apply_return":"退貨申請","apply_return_success":"您的退貨申請已成立","apply_success":"申請成功","arrive_soon":"即將到貨","articles_total":"共 {{ totalArticleCounts }} 篇文章","bank_account":"銀行帳號","bank_branch_name":"分行名稱","bonus_redemption":"紅利換購","cancel":"取消","cart_price_total":"結帳金額約","check_order":"訂單查詢","choose_branch_bank":"請選擇分行","choose_return_reason":"請選擇退貨原因","city":"城市","common_price":"市價: ","comply_group_number":"符合 {{comply_group_number}} 組優惠,","confirm":"確認","confirm_return":"申請退貨","confirm_submit":"確定送出","congratulations_for_verify_mobile_success":"恭喜,您已成功驗證您的手機!","contact_form":"聯絡我們","continue_reading":"繼續閱讀","country_placeholder":"請選擇國家","coupon_free_shipping":"免運券折抵","coupon_items":"優惠券折扣項目","date_error":"日期錯誤","default_sort":"預設排序","deliver_error":"寄送商品錯誤","discount_detail":"折扣明細","email":"電子郵件","email_placeholder":"請輸入您的電子郵件,例:[email protected]","enter_account_name":"請輸入戶名","enter_bank_account":"請輸入銀行帳號","enter_return_reason":"請填寫退貨原因...","error_message":"驗證簡訊發生錯誤,請稍後再試。","fail_operation":"操作失敗!","filter_button":"篩選","filter_no_result":"很抱歉,無商品符合篩選條件","free":"免費","gift_price":"加購價","gift_purchase":"滿額/件贈","go_check_email":"請至信箱收取信件","group_percent_discount":"組合內商品打{{discount}}折","has_stock":"尚有庫存 ","include_discount_and_shipping_fee":"含優惠折扣與運費","invalid_email":"這不是有效的電子郵件","invalid_name":"姓名為必填","invalid_phone_number":"聯絡電話為必填","invalid_question_content":"問題內容為必填","keep_shopping":"繼續購物","keyin_address1":"請填寫詳細退貨地址:路/å··/弄/樓","keyin_city":"請輸入城市","keyin_zip":"請輸入郵遞區號","less_then_one":"數量不得少於1","line_item_quantity":"數量:{{ lineItemQuantity }}","literal_points":"點","login_btn":"會員登入","mail_send_fail":"信件寄送失敗","message_confirmation_token_error":"簡訊驗證碼有誤","messenger_error_please_try_again":"簡訊寄送發生錯誤,請稍後再試。","mobile_number_error":"手機號碼有誤","name":"姓名","name_placeholder":"請輸入您的姓名","new_password_is_sent":"已送出新密碼","new_product_defect":"新品瑕疵","nn_collection_save_more_money_title":"可享,買 {{quantity}} ä»¶ {{price}} 元優惠","no_stock":"庫存不足","notification_enabled":"已登記補貨通知","notify_me_when_stock_arrives":"已售完,貨到通知我","onsale":"特價","order_date":"訂購日期","order_number":"訂單編號","order_retrun_confirm":"您確認要申請退貨?","ori_price":"原價","others":"其他","over_cart_limit":"數量超過購買上限","over_product_quantity":"數量超過庫存","over_stock_count":"商品庫存剩餘 {{ count }} ä»¶","over_stock_quantity":"超過庫存數量","phone_number":"聯絡電話","phone_number_placeholder":"請輸入聯絡電話","piece":"{{quantity}} ä»¶","please_choose_bank":"請選擇銀行","please_choose_product":"請選擇商品款式","please_choose_variant":"請選擇商品款式","please_enter_number":"請輸入數字","please_reselect":"請重新輸入篩選","please_send_and_confirm_verify_code":"請先發送並確認簡訊驗證碼","pre_order":"預購商品","price_asc":"價格由低到高","price_desc":"價格由高到低","price_filter":"價格","price_includes_tax":"(內含消費稅:{{ tax }})","product_content_defect":"商品內容不全","product_defect":"商品有缺陷","product_limit_buy":"此商品限購 {{ count }} ä»¶","product_rate_limit_btn":"重新進入商品頁","product_rate_limit_desc":"秒後可重新進入商品頁,建議您停留在此頁面。","product_rate_limit_title":"目前搶購人潮眾多,請耐心等候","product_rate_limit_warn":"若離開此頁面,可能會延長等待時間。","product_sold":"已銷售:{{ productSold }}","products_total":"共 {{ totalProductCounts }} 件商品","quantity":"數量:","quantity_over_product_stock":"數量超過商品庫存","question_content":"問題å
1106…§å®¹","question_content_placeholder":"請輸入問題內容","question_submit_fail":"發生問題,請稍後再試","question_submit_success":"問題已成功送出,我們將盡快與您聯繫","question_type":"問題類型","reached_favorable":"已達優惠","recent_days_sold_desc":"本週熱賣","reenter_password_still_error":"重複輸入密碼有誤","refund":"退款金額","refund_account":"退款帳戶","refund_info":"退款資訊","refund_invoice_check":"本人同意發票作廢或「營業人銷貨退回進貨退出貨或折讓證明單」將全權由{{ envoiceCompanyName }}處理,以利加速退款作業。如有退貨/折讓,將直接開立折讓單上傳至財政部電子發票整合服務平台存證。","resend_verify_code":"重發驗證碼","reset_all_filters":"清除所有篩選","reset_filter_button":"清除篩選","return":"返回","return_address":"退貨地址","return_email_notification":"退貨申請信已寄至您的信箱","return_info":"退貨資訊","return_instruction":"退貨說明","return_msg_Australia":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_Japan":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_Japan_to_Taiwan":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_SEA":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_Taiwan":"1. 收到商品後如有發現瑕疵或破損狀況,需要辦理或換貨,請於收到貨後7天內登入『我的帳戶』頁面點選『申請退貨』。\u003cbr\u003e 2. 收到商品後可享有7天免費鑑è³
1106žæœŸï¼ˆå«ä¾‹å‡æ—¥ï¼‰ã€‚退換貨時請保持原包裝商品的完整(包含購買商品,附件,贈品等)。\u003cbr\u003e 3. 收到申請後,我們將與您聯繫取回商品。若有任何退貨問題,您可以在『訂單明細』中,點選『我要詢問』,請勿自行寄回商品。\u003cbr\u003e 4. 當你申請退貨後,請列印本申請單隨商品一起寄回。\u003cbr\u003e 5. 收到您的退貨商品並審查通過後,將於7個工作天內退款至你的退款帳戶。\u003cbr\u003e","return_msg_USA":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_product":"退貨商品","return_reason":"退貨原因","save_more_money_discount":"可享 {{discount}} 折優惠","save_more_money_dollar":"可省 {{dollar}}","search_article_label":"文章搜尋結果 ({{ totalArticleCounts }})","search_no_result":"很抱歉,找不到 {{ queryString }} 請重新輸入搜尋。","search_product_label":"商品搜尋結果 ({{ totalProductCounts }})","search_total":"搜尋 {{ queryString }} 結果共 {{ totalSearchCount }} 筆","select_sort_by":"選擇排序方式","sell_from_asc":"上市日期舊到新","sell_from_desc":"上市日期新到舊","send_too_many_times_try_again_later":"發送次數過多,請稍後再試","sending_msg_few_minutes_get":"簡訊發送中,幾分鐘後您將收到驗證碼","shipping_fee":"運費","sold_out":"已售完","state_placeholder":"請選擇州/省","submit":"送出","subtotal":"小計","success_operation":"操作成功!","successfully_copy_tracking_number":"已成功複製你的物流單號","system_busy_try_again":"系統忙碌,請稍後再試","tax":"稅額","thanks_for_advise":"謝謝您的å¯
1106¶è²´æ„è¦‹","thanks_you_have_signed_up":"謝謝您已註冊","total_bonus_redemption":"總紅利換購點數","tw_city_placeholder":"請選擇縣市","tw_district_placeholder":"請選擇鄉鎮市區","unreach_favorable":"未達優惠","verification_error_please_correct":"驗證有誤請修正","verify_success":"驗證碼確認成功","view_product":"查看商品","vip_shipping_free":"VIP免運費","zip":"郵遞區號","suggested_range":"建議區間:","periodic_order_label":"定期定額"}
1107  $(document).ready(function(){
1108    if(window.location.pathname != '' && window.location.pathname != '/' ){
1109      document.getElementById('index-popular-tags').style.display = 'none'
1110    }
1111    // 倒數計時
1112    
1113
1114    function adjustContentTop() {
1115      const offset = window.measureHeaderOffset();
1116      if (offset === null) return;
1117      $("body").css({ "padding-top": offset + "px" });
1118    }
1119
1120    window.adjustContentTop = adjustContentTop;
1121
1122    // navbar設定透明
1123    
1124
1125    // Call it first once DOM is ready to prevent CLS
1126    adjustContentTop();
1127
1128    // 延遲初始化,等待 app banner 初始化完成
1129    $(window).on("resize", adjustContentTop);
1130
1131    // 使用 setTimeout 確保 banner 狀態已經確定
1132    $(window).on("load", function() {
1133      setTimeout(function() {
1134        adjustContentTop();
1135      }, 200); // 給 banner 足夠時間初始化
1136    });
1137
1138    $('img.header_banner').on('load', adjustContentTop);
1139
1140    window.renderNavbarSection('.main_nav', {
1141        navbarCollections: null,
1142        navbarItems: [{"id":599486,"title":"首頁","url":"/","item_type":"frontpage","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":691551,"title":"商品列表","url":"商品列表","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":735407,"title":"全部商品","url":"/collections/all_products","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1256073,"title":"光蘊臻采煥亮系列","url":"/collections/光蘊臻采煥亮系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735408,"title":"青春露","url":"/collections/facial","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735409,"title":"肌活能量系列","url":"/collections/skin_power","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735410,"title":"超肌因系列","url":"/collections/genoptics","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735411,"title":"晶鑽極緻系列","url":"/collections/lxp","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735412,"title":"化妝水","url":"/collections/toner","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735413,"title":"乳液","url":"/collections/lotion","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735414,"title":"精華液","url":"/collections/essence","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735415,"title":"眼霜","url":"/collections/eye_cream","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735416,"title":"乳霜","url":"/collections/cream","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735417,"title":"面膜","url":"/collections/mask","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735418,"title":"洗面乳","url":"/collections/facial_cleanser","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":735419,"title":"卸妝","url":"/collections/cleansing","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":599488,"title":"最新動態","url":"/blogs/news","item_type":"http","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":599489,"title":"關於我們","url":"/pages/about-us","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":599490,"title":"客服中心","url":"/contact","item_type":"contact","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":678664,"title":"特約商店","url":"/pages/shop","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1877781,"title":"銷售據點","url":"/pages/sales-channels","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null}],
1143        settings: {
1144          menuDisplayStyle: "three_dimension_menu",
1145          pcLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7",
1146          mobileLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY1MzU4NzE0X-m7g-WnkOaEm-S_nemkil9Mb2dvX1NLLUlJIOmbheipqeiYrem7myDlnIvpmpvnsr7lk4Hnvo7lpp0g5q2j6LKo57aT6Yq3LnBuZy5wbmciXV0.png?sha=129bd7342db5c6d7",
1147          navbarDisplayStyle: "displayDefault",
1148        }
1149      }
1150    );
1151
1152
1153    // for link menu
1154    const linkMenuElement = document.querySelector('.link-nav');
1155    const data = []
1156    data.forEach((item) => {
1157      const wrapper = document.createElement('a');
1158      const link = document.createElement('ul');
1159
1160      wrapper.href = item.url;
1161      link.textContent = item.title;
1162      link.classList.add('link-item');
1163
1164      wrapper.appendChild(link);
1165      linkMenuElement.appendChild(wrapper);
1166    });
1167
1168    // for safe-area space on iOS devices
1169    const userAgent = navigator.userAgent;
1170    const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;
1171    const isLiff = /Line\/[\d.]+/i.test(userAgent);
1172    const $mobileBottomBar = $('#mobile-bottom-bar');
1173
1174    if ($mobileBottomBar.length && isIOS && isLiff) {
1175      $mobileBottomBar.addClass('is-ios-liff');
1176    }
1177  });
1178  document.addEventListener('DOMContentLoaded', function() {
1179    window.getCartAmount = function() {
1180      return parseInt($('.global-cart-count').html());
1181    };
1182  });
1183</script>
1183
1184
1185<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/navbar-e958d46bfee2e69f.js' type='text/javascript'></script>
vendor: 1 bytes, line 1185
1185
1186<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/currencies-e958d46bfee2e69f.js' type='text/javascript'></script>
1186
1187<!-- cyb_snippet i18n_modal start -->
1188
1189
1190<!-- cyb_snippet i18n_modal end -->
1191<!-- cyb_snippet _load_fonts start -->
1192<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/load_fonts-e958d46bfee2e69f.js' type='text/javascript'></script>
vendor: 1 bytes, line 1192
1192
1193<script>
1194  document.addEventListener('DOMContentLoaded', function() {
1195    window.loadFontSetting("{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}")
1196  })
1197</script>
1197
1198
1199<!-- cyb_snippet _load_fonts end -->
1200<!-- cyb_snippet _custom_icon start -->
1201<script src='//cdn-general.cybassets.com/frontend/shop/navIcon-e958d46bfee2e69f.js' type='text/javascript'></script>
1201
1202
1203<script>
1204  (function() {
1205    const iconUrlMap = new Map([
1206      ['custom_icon_type_home', null],
1207      ['custom_icon_type_tracking_items', null],
1208      ['custom_icon_type_account', null],
1209      ['custom_icon_type_cart', null],
1210      ['custom_icon_type_search', null],
1211      ['custom_icon_type_menu', null]
1212    ]);
1213    const elements = document.querySelectorAll('[data-icon-type]');
1214    elements.forEach((element, index) => {
1215      const iconAttributes = element.getAttribute('data-icon-type');
1216
1217      const uniqueId = `icon_${iconAttributes}_${index}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
1218      element.id = uniqueId;
1219      window.renderNavCustomIcon(`#${uniqueId}`, {
1220        navIconStyle: "icon_type_default",
1221        customIconUrl: iconUrlMap.get(iconAttributes) || '',
1222        iconAttributes: iconAttributes,
1223        currentTemplate: "index",
1224      });
1225    });
1226  })();
1227</script>
1227
1228
1229<!-- cyb_snippet _custom_icon end -->
1230
1231
1232
1233    
1234  
1235    
1235<script src='//cdn-general.cybassets.com/frontend/shop/announcementBar-e958d46bfee2e69f.js' type='text/javascript'></script>
1235
1236
1237    
1238
1239    
1240
1241    
1241<script>
1242      $(document).ready(function() {
1243        window.renderAnnouncementBar('#announcement-bar', {
1244          sectionId: "announcement_bar",
1245          isIndex: true,
1246        });
1247      });
1248    </script>
1248
1249  
1250
1251
1252
1253
1254
1255    <!-- template -->
1256    <div id="template" style="flex:1 0 auto; background-color: var(--theme_bg);">
1257      <div class="index">
1258
1259  
1260
1261
1262
1263
1264<section id="1769909594379_7">
1265  <div class="brand-intro">
1266   <h1 style="font-size: 24px; text-align: center;">為妳守護每一份美麗,黃姐嚴選專櫃正貨</h1>
1267   <p style="text-align: center;">經銷 SK-II、雅詩蘭黛等國際品牌,保證正品,讓每一天的保養儀式,都成為寵愛自己的最美時刻。</p>
1268</div>
1269</section>
1270
1271<style>
1272  [id="1769909594379_7"] {
1273    margin: 0 0px 0px !important;
1274  }
1275  @media (max-width: 991px) {
1276    [id="1769909594379_7"] {
1277      margin: 0 0px 0px !important;
1278    }
1279  }
1280</style>
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_main_slider_custom-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
1293
1294<style>
1295  [id="_main_slider_custom"] {
1296    margin: 0 0px 50px !important;
1297  }
1298  @media (max-width: 576px) {
1299    .main-slider-placeholder {
1300      display: none !important;
1301    }
1302    .swiper-container {
1303      visibility: visible !important;
1304    }
1305  }
1306  @media (max-width: 991px) {
1307    [id="_main_slider_custom"] {
1308      margin: 0 0px 50px !important;
1309    }
1310  }
1311</style>
1312
1313<section id="_main_slider_custom" class="main-slider qk-pos--rel">
1314  
1315  
1316
1317  <div
1318    class="swiper swiper-container"
1319    
1320  >
1321    <div class="swiper-wrapper qk-align--center">
1322      
1323      
1324      
1325        <div class="swiper-slide">
1326          
1327            
1328            <a
1329              href="/collections/all"
1330              class="img-flex qk-align--stretch qk-display--contents"
1331              target=""
1332              rel=""
1333            >
1334          
1335          
1336          
1337          
1338          
1339          
1340            <picture>
1341              
1342              
1343              <img
1344                id="slider-image"
1345                data-src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ2OTkwOTYzXzIwMjIwMzExX1NLMum7g-WnkOWBhzHpmaoxMEJOX1JJQU5fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=0f7e740b12722a2a"
1346                height="auto"
1347                alt="黃姐愛保養-專櫃正貨"
1348                class="swiper-lazy"
1349              >
1350            </picture>
1351
1352            
1353            
1354            
1355            
1356            
1357            
1358            
1359            
1360            
1361            
1362          
1363          
1364            </a>
1365          
1366          
1367            <div class="swiper-lazy-preloader"></div>
1368          
1369        </div>
1370      
1371        <div class="swiper-slide">
1372          
1373            
1374            <a
1375              href="https://www.to-buy.com.tw/products/skc11103020"
1376              class="img-flex qk-align--stretch qk-display--contents"
1377              target="_blank"
1378              rel="noopener noreferrer"
1379            >
1380          
1381          
1382          
1383          
1384          
1385          
1386            <picture>
1387              
1388              
1389              <img
1390                id="slider-image"
1391                data-src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNzY0OTAxODQ4XzIwMjUxMjAxLVNLMua0u-WLlS3lsI_oirNfMTkyMHgxMDgwLmpwZy5qcGVnIl1d.jpeg?sha=6ad51490ce747f87"
1392                height="auto"
1393                alt="SK-II-青春露-黃姐愛保養"
1394                class="swiper-lazy"
1395              >
1396            </picture>
1397
1398            
1399            
1400            
1401            
1402            
1403            
1404            
1405            
1406            
1407            
1408          
1409          
1410            </a>
1411          
1412          
1413            <div class="swiper-lazy-preloader"></div>
1414          
1415        </div>
1416      
1417        <div class="swiper-slide">
1418          
1419            
1420            <a
1421              href="https://line.me/R/ti/p/@666tppkn"
1422              class="img-flex qk-align--stretch qk-display--contents"
1423              target="_blank"
1424              rel="noopener noreferrer"
1425            >
1426          
1427          
1428          
1429          
1430          
1431          
1432            <picture>
1433              
1434              
1435              <img
1436                id="slider-image"
1437                data-src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NjQ0NDI5XzIwMjIwNDA4X-m7g-WnkEJOX-Wwj-azol8xOTIweDgwMC5qcGcuanBlZyJdXQ.jpeg?sha=f2f6dc314c4109e8"
1438                height="auto"
1439                alt="黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"
1440                class="swiper-lazy"
1441              >
1442            </picture>
1443
1444            
1445            
1446            
1447            
1448            
1449            
1450            
1451            
1452            
1453            
1454          
1455          
1456            </a>
1457          
1458          
1459            <div class="swiper-lazy-preloader"></div>
1460          
1461        </div>
1462      
1463        <div class="swiper-slide">
1464          
1465            <span class="img-flex qk-align--stretch qk-display--contents">
1466          
1467          
1468          
1469          
1470          
1471          
1472            <picture>
1473              
1474                <source
1475                  media="(max-width: 576px)"
1476                  data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjcyOTY5NjE2XzAzMTctU0sy5YWo57O75YiXQk4tUklBTi0xOTIwWDgwMF_lt6XkvZzljYDln58gMSDopIfmnKwuanBnLmpwZWciXV0.jpeg?sha=9f5afeb790cd8618"
1477                  alt="黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"
1478                >
1479              
1480              
1481              <img
1482                id="slider-image"
1483                data-src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NDk0NzA2XzAzMTctU0sy5YWo57O75YiXQk4tUklBTi0xOTIwWDgwMF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?sha=f4b2ce3ae3096c15"
1484                height="auto"
1485                alt="黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"
1486                class="swiper-lazy"
1487              >
1488            </picture>
1489
1490            
1491            
1492            
1493            
1494            
1495            
1496            
1497            
1498            
1499            
1500          
1501          
1502            </span>
1503          
1504          
1505            <div class="swiper-lazy-preloader"></div>
1506          
1507        </div>
1508      
1509    </div>
1510    
1511      <div
1512        class="qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v2 qk-swiper_btn--prev main_slider_custom_prev qk-hidden--mobile"
1513      ></div>
1514      <div
1515        class="qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v2 qk-swiper_btn--next main_slider_custom_next qk-hidden--mobile"
1516      ></div>
1517    
1518  </div>
1519  
1520    <div class="qk-swiper_pg qk-w--100 qk-mg_t--1 qk-text--center main_slider_pagination"></div>
1521  
1522</section>
1523
1524<script>
1525  $(document).ready(function(){
1526    let isDynamicLoading = false;
1527    let settingObj = {
1528      id: '_main_slider_custom',
1529      mobile_img_number: Number('1'),
1530      mobile_img_space: Number('8'),
1531      img_number: Number('1'),
1532      img_space: Number('12'),
1533      swiper_delay: '5',
1534    }
1535    window.mainSlider = function(obj){
1536    var id = themeHelper.escapeId(obj.id);
1537    var slideCount = $(`#${obj.id} .swiper-slide`).length
1538    var autoLoop = true
1539    if (slideCount <= 1){
1540      autoLoop = false
1541    }
1542    var mainSlider = new Swiper('#' + id + ' .swiper-container', {
1543      preloadImages: false,
1544      slidesPerView: Number(obj.mobile_img_number),
1545      spaceBetween: Number(obj.mobile_img_space),
1546      breakpoints: {
1547        0:{
1548          slidesPerView: Number(obj.mobile_img_number),
1549          spaceBetween: Number(obj.mobile_img_space),
1550        },
1551        991: {
1552          slidesPerView: Number(obj.img_number),
1553          spaceBetween: Number(obj.img_space),
1554        }
1555      },
1556      // Enable lazy loading
1557      observer: true,
1558      observeParents: true,
1559      autoheight: true,
1560      lazy: {
1561        loadPrevNext: true,
1562      },
1563      freeMode: {
1564        enabled: true,
1565        sticky: true,
1566        momentum: true,
1567        momentumRatio: 0.4,
1568        momentumVelocityRatio: 0.1,
1569      },
1570      loop: autoLoop,
1571      autoplay: { delay: obj.swiper_delay * 1000 },
1572      speed: Number('300.0'),
1573      pagination: {
1574        el: '#' + id + ' .main_slider_pagination',
1575        clickable: true,
1576      },
1577      navigation: {
1578        nextEl: '#' + id + ' .main_slider_custom_next',
1579        prevEl: '#' + id + ' .main_slider_custom_prev',
1580      },
1581      on: {
1582        init: function () {
1583          if (isDynamicLoading && !window.matchMedia("(max-width: 576px)").matches) {
1584            document.querySelector('#' + id + ' .main-slider-placeholder').style.display = 'none';
1585            document.querySelector('#' + id + ' .swiper-container').style.visibility = 'visible';
1586          }
1587        },
1588      }
1589    });
1590    }
1591    if (isDynamicLoading) {
1592        window.DynamicLoading.setupComponent({
1593        sectionId: "_main_slider_custom",
1594        sectionSettingData: settingObj,
1595        entryName:'mainSlider',
1596        source:'https://cdnjs.cloudflare.com/ajax/libs/Swiper/5.4.5/js/swiper.js',
1597        componentType:'js',
1598        hiddenDom: true
1599      });
1600    }else{
1601      mainSlider(settingObj);
1602    }
1603  })
1604</script>
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616<script src='//cdn-general.cybassets.com/frontend/shop/productBanner-e958d46bfee2e69f.js' type='text/javascript'></script>
1616
1617
1618
1619<style>
1620  [id="_index_product_banner"] {
1621    margin: 0 0px 0px !important;
1622  }
1623  @media (max-width: 991px) {
1624    [id="_index_product_banner"] {
1625      margin: 0 0px 24px !important;
1626    }
1627  }
1628</style>
1629
1630<section id="_index_product_banner" class="index-product-banner qk-display--bk qk-pos--rel">
1631  <div id="index_product_banner-_index_product_banner"></div>
1632</section>
1633
1634<script>
1635  $(document).ready(function() {
1636    let isDynamicLoading = false;
1637    if (isDynamicLoading) {
1638      window.DynamicLoading.setupComponent({
1639          sectionId:'#index_product_banner-_index_product_banner',
1640          callbackData:{
1641            sectionId: "_index_product_banner",
1642            section: {"type":"_index_product_banner","visible":true,"settings":{"dict_link":"/pages/partner","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAxMzA3XzIwMjIwMzE3X1NLMl_pu4Plp5DlkIjkvbVCTl9USU1fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=71aec86d7d36ef32","dict_tablet_image_url":"","dict_mobile_image_url":"","cta_btn_display_style":"bottomPosition","cta_btn_text":"點我!填寫團購表單","cta_btn_bg_color":"#f7a608","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"","mobile_margin_x":"0","mobile_margin_bottom":"24","display_cta_btn":false,"dict_cta_btn_text":"","product_banner_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"},"custom_name":"橫幅廣告","thumbnail":"banner","draggable":true,"schedule":{"enabled_default":true,"schedule_lists":[]}},
1643            dictMobileImageUrl:"",
1644            dictTabletImageUrl:"",
1645            dictImageUrl:"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAxMzA3XzIwMjIwMzE3X1NLMl_pu4Plp5DlkIjkvbVCTl9USU1fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=71aec86d7d36ef32",
1646          },
1647          entryName:'renderProductBanner',
1648          source:'//cdn-general.cybassets.com/frontend/shop/productBanner-e958d46bfee2e69f.js',
1649        });
1650    }else{
1651      window.renderProductBanner('#index_product_banner-_index_product_banner',
1652        {
1653          sectionId: "_index_product_banner",
1654          section: {"type":"_index_product_banner","visible":true,"settings":{"dict_link":"/pages/partner","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAxMzA3XzIwMjIwMzE3X1NLMl_pu4Plp5DlkIjkvbVCTl9USU1fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=71aec86d7d36ef32","dict_tablet_image_url":"","dict_mobile_image_url":"","cta_btn_display_style":"bottomPosition","cta_btn_text":"點我!填寫團購表單","cta_btn_bg_color":"#f7a608","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"","mobile_margin_x":"0","mobile_margin_bottom":"24","display_cta_btn":false,"dict_cta_btn_text":"","product_banner_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"},"custom_name":"橫幅廣告","thumbnail":"banner","draggable":true,"schedule":{"enabled_default":true,"schedule_lists":[]}},
1655          dictMobileImageUrl:"",
1656          dictTabletImageUrl:"",
1657          dictImageUrl:"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAxMzA3XzIwMjIwMzE3X1NLMl_pu4Plp5DlkIjkvbVCTl9USU1fMTkyMFg4MDAuanBnLmpwZWciXV0.jpeg?sha=71aec86d7d36ef32",
1658        });
1659    }
1660  });
1661</script>
1661
1662
1663
1664<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_index_8_blocks-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
1664<script src='//cdn-general.cybassets.com/frontend/shop/productCollection-e958d46bfee2e69f.js' type='text/javascript'></script>
1664<!-- cyb_snippet _combo_product_related_items_modal start --><!-- cyb_snippet _combo_product_related_items_modal end -->
1665
1666
1667
1668<script>
1669  $(document).ready(function() {
1670    let isDynamicLoading = false;
1671
1672    function sendProductImpressions(products, collectionTitle) {
1673      if (products && products.length > 0) {
1674        var gtm_product = []
1675
1676        $.each(products, function(index, product) {
1677          productInfo = {
1678            'brand':    product.vendor,
1679            'category': product.product_type,
1680            'id':       product.id,
1681            'list':     'Index: ' + collectionTitle,
1682            'name':     product.title,
1683            'position': index + 1,
1684            'price':    product.price,
1685            'variant':  ''
1686          }
1687
1688          if (typeof google_tag_manager_id != 'undefined' || typeof cyb != 'undefined') {
1689            gtm_product.push(productInfo)
1690          }
1691        })
1692
1693        if (typeof google_tag_manager_id != 'undefined' && gtm_product.length > 0) {
1694          dataLayer.push({
1695            'event': 'productImpressions',
1696            'ecommerce': {
1697              'impressions': gtm_product
1698            }
1699          });
1700        }
1701
1702        if (typeof cyb != "undefined" && gtm_product.length > 0) {
1703          cyb.push({
1704            'event': 'productImpressions',
1705            'impressions': gtm_product
1706          });
1707        }
1708      }
1709    }
1710
1711    const props = {
1712      sectionId: "_index_8_blocks",
1713      collection: {
1714        id: 208079,
1715        title: "青春露",
1716      },
1717      allProductCount: 2,
1718      cartEnabled: true,
1719      discountPriceSloganUrl: "",
1720      showMultipleLabels: false,
1721      collectionHandleUrl: "/collections/facial",
1722      blockProducts: 
1723{"products":[{"id":43447684,"title":"【SK-II】青春精華露 30ml","handle":"skc11103017","price":3290.0,"vendor":null,"slogan":"","sell_from":null,"url":"/products/skc11103017","product_type":null,"total_sold":0,"sold_out":false,"price_range":{"min":{"id":50563488,"price":3290.0,"compare_at_price":4600.0},"max":{"id":50563488,"price":3290.0,"compare_at_price":4600.0}},"show_slogan":true,"related_to_sales_page":false,"hide_price?":false,"sales_mode_purchasable?":true,"featured_image":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L3Byb2R1Y3RzLzQzNDQ3Njg0LzE3MDA2NDEwOTBfZDkyZDhmN2FkY2RkM2QzY2Q3ZDkucG5nIl0sWyJwIiwidGh1bWIiLCI2MDB4NjAwIl1d.png?sha=9601c4e19be25838","optional_combo_product?":false,"combo_product_info":null,"purchase_eligibility":{"required":false,"eligible":true,"status":"eligible"},"product_labels":[],"images":["//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L3Byb2R1Y3RzLzQzNDQ3Njg0LzE3MDA2NDEwOTBfZDkyZDhmN2FkY2RkM2QzY2Q3ZDkucG5nIl0sWyJwIiwidGh1bWIiLCI2MDB4NjAwIl1d.png?sha=9601c4e19be25838"]},{"id":36337552,"title":"【SK-II】青春露","handle":"skc11103020","price":2680.0,"vendor":null,"slogan":"一滴青春露,多重改善肌膚五大美肌度","sell_from":null,"url":"/products/skc11103020","product_type":null,"total_sold":18,"sold_out":false,"price_range":{"min":{"id":76829217,"price":2680.0,"compare_at_price":1490.0},"max":{"id":40960054,"price":4850.0,"compare_at_price":8990.0}},"show_slogan":true,"related_to_sales_page":false,"hide_price?":false,"sales_mode_purchasable?":true,"featured_image":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L3Byb2R1Y3RzLzM2MzM3NTUyLzE2NDYzMDE1NTRfOTQ3ODVjYTM3ZWNjYzAyODkyMzQucG5nIl0sWyJwIiwidGh1bWIiLCI2MDB4NjAwIl1d.png?sha=9278a70fbdfd38dd","optional_combo_product?":false,"combo_product_info":null,"purchase_eligibility":{"required":false,"eligible":true,"status":"eligible"},"product_labels":[],"images":["//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L3Byb2R1Y3RzLzM2MzM3NTUyLzE2NDYzMDE1NTRfOTQ3ODVjYTM3ZWNjYzAyODkyMzQucG5nIl0sWyJwIiwidGh1bWIiLCI2MDB4NjAwIl1d.png?sha=9278a70fbdfd38dd","//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L3Byb2R1Y3RzLzM2MzM3NTUyLzE3NjQ2NTQ5OTBfMWE2Nzk4MGUwYmU4Y2JjNDJhZmYuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=210c4df4a09f1edf","//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L3Byb2R1Y3RzLzM2MzM3NTUyLzE3NjU3NjQ4MTlfMTEyZTE0NTk1ZmQ5MTEwOGUyMzkuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=7b6d8e2459f500bd"]}]}
1724,
1725      sessionTitle: null,
1726      section: {"type":"_index_8_blocks","visible":true,"settings":{"dict_title":"熱銷商品","collection_handle":"facial","limit":"8","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_display":"displayDefault","old_container_setting":true,"product_arrangement":"1","product_alignment":"leftPosition","product_text_align":"center","product_column_for_pc":"4","product_column_for_mobile":"2","product_card_hover_effect":"button","product_image_border_radius":"15"},"custom_name":"商品分類","thumbnail":"collection","draggable":true,"schedule":{"enabled_default":true,"schedule_lists":[]}},
1727      productURLSearch: "",
1728      hasIntegratedProductLabelsPlugin: true,
1729      isDisplayPriceRange: null || false,
1730      pageType: "index",
1731    }
1732    if (isDynamicLoading) {
1733      window.DynamicLoading.setupComponent({
1734        sectionId: '#index_8_blocks-_index_8_blocks',
1735        callbackData: props,
1736        entryName: 'renderProductCollection',
1737        source: '//cdn-general.cybassets.com/frontend/shop/productCollection-e958d46bfee2e69f.js',
1738      });
1739    } else {
1740      renderProductCollection('#index_8_blocks-_index_8_blocks', props);
1741    }
1742    var products = props.blockProducts && props.blockProducts.products;
1743    if (products) {
1744      sendProductImpressions(products, props.collection.title);
1745    }
1746  });
1747</script>
1747
1748
1749<style>
1750  [id="_index_8_blocks"] {
1751    margin: 0 0px 50px !important;
1752  }
1753  @media (max-width: 991px) {
1754    [id="_index_8_blocks"] {
1755      margin: 0 0px 24px !important;
1756    }
1757  }
1758</style>
1759
1760<section id="_index_8_blocks" class="index_8_blocks qk-text--center">
1761  <div id="index_8_blocks-_index_8_blocks"></div>
1762</section>
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775<script src='//cdn-general.cybassets.com/frontend/shop/productBanner-e958d46bfee2e69f.js' type='text/javascript'></script>
1775
1776
1777
1778<style>
1779  [id="1649756284558"] {
1780    margin: 0 0px 50px !important;
1781  }
1782  @media (max-width: 991px) {
1783    [id="1649756284558"] {
1784      margin: 0 0px 24px !important;
1785    }
1786  }
1787</style>
1788
1789<section id="1649756284558" class="index-product-banner qk-display--bk qk-pos--rel">
1790  <div id="index_product_banner-1649756284558"></div>
1791</section>
1792
1793<script>
1794  $(document).ready(function() {
1795    let isDynamicLoading = false;
1796    if (isDynamicLoading) {
1797      window.DynamicLoading.setupComponent({
1798          sectionId:'#index_product_banner-1649756284558',
1799          callbackData:{
1800            sectionId: "1649756284558",
1801            section: {"type":"_index_product_banner","custom_name":"橫幅廣告","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NzU2MzE4XzA0MTItU0syLUJBTk5FUi1SSUFOLTE5MjBYODAwX-W3peS9nOWNgOWfnyAxLmpwZy5qcGVnIl1d.jpeg?sha=c598a695b1861452","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","cta_btn_display_style":"topPosition","cta_btn_text":"了解更多","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_banner_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"},"blocks":{},"block_order":[],"schedule":{"enabled_default":true,"schedule_lists":[]}},
1802            dictMobileImageUrl:"",
1803            dictTabletImageUrl:"",
1804            dictImageUrl:"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NzU2MzE4XzA0MTItU0syLUJBTk5FUi1SSUFOLTE5MjBYODAwX-W3peS9nOWNgOWfnyAxLmpwZy5qcGVnIl1d.jpeg?sha=c598a695b1861452",
1805          },
1806          entryName:'renderProductBanner',
1807          source:'//cdn-general.cybassets.com/frontend/shop/productBanner-e958d46bfee2e69f.js',
1808        });
1809    }else{
1810      window.renderProductBanner('#index_product_banner-1649756284558',
1811        {
1812          sectionId: "1649756284558",
1813          section: {"type":"_index_product_banner","custom_name":"橫幅廣告","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NzU2MzE4XzA0MTItU0syLUJBTk5FUi1SSUFOLTE5MjBYODAwX-W3peS9nOWNgOWfnyAxLmpwZy5qcGVnIl1d.jpeg?sha=c598a695b1861452","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","cta_btn_display_style":"topPosition","cta_btn_text":"了解更多","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_banner_image_alt":"黃姐愛保養-專櫃美妝正貨經銷-SK-II-雅詩蘭黛-頂級保養專賣"},"blocks":{},"block_order":[],"schedule":{"enabled_default":true,"schedule_lists":[]}},
1814          dictMobileImageUrl:"",
1815          dictTabletImageUrl:"",
1816          dictImageUrl:"//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ5NzU2MzE4XzA0MTItU0syLUJBTk5FUi1SSUFOLTE5MjBYODAwX-W3peS9nOWNgOWfnyAxLmpwZy5qcGVnIl1d.jpeg?sha=c598a695b1861452",
1817        });
1818    }
1819  });
1820</script>
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_index_4_blocks-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
1835<script src='//cdn-general.cybassets.com/frontend/shop/productDisplay-e958d46bfee2e69f.js' type='text/javascript'></script>
1835
1836
1837<style>
1838  [id="_index_4_blocks"] {
1839    margin: 0 0px 50px !important;
1840  }
1841
1842  @media (min-width: 992px) {
1843    [id="_index_4_blocks"] .block:not(.last-row) {
1844      margin-bottom: 10px !important;
1845    }
1846    [id="_index_4_blocks"] .block-default-width-margin:not(:first-of-type),
1847    [id="_index_4_blocks"] .block-not-first-margin {
1848      margin-left: 10px !important;
1849    }
1850  }
1851
1852  @media (max-width: 991px) {
1853    [id="_index_4_blocks"] {
1854      margin: 0 0px 50px !important;
1855    }
1856    [id="_index_4_blocks"] > .qk-display--flex.qk-flex--wrap {
1857      gap: 10px;
1858      justify-content: flex-start;
1859    }
1860    [id="_index_4_blocks"] .block {
1861      flex: 0 0 calc((100% - (1 - 1) * 10px) / 1);
1862    }
1863  }
1864
1865  .video-block-loading {
1866    background-color: #eeee;
1867    position: absolute;
1868    top: 0;
1869    bottom: 0;
1870    left: 0;
1871    width: 100%;
1872    height: 100%;
1873  }
1874</style>
1875
1876<script>
1877
1878  $(document).ready(function() {
1879    let isDynamicLoading = false;
1880    if (isDynamicLoading) {
1881      window.DynamicLoading.setupComponent({
1882          sectionId:'_index_4_blocks',
1883          componentType:'liquid',
1884        });
1885    }
1886    
1887      
1888    
1889      
1890    
1891      
1892    
1893      
1894    
1895      
1896    
1897  })
1898</script>
1898
1899
1900<script>
1901  function buildYoutubeEmbedUrl(url, options) {
1902    const YT_REGEX = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|shorts\/)([^#&?]*).*/;
1903    const match = (url || '').match(YT_REGEX);
1904    const videoId = match && match[2].length === 11 ? match[2] : '';
1905
1906    if (!videoId) {
1907      return '';
1908    }
1909
1910    const autoPlay = options && options.autoPlay;
1911    const hideControls = options && options.hideControls;
1912    const loop = options && options.loop;
1913
1914    const searchParams = new URLSearchParams();
1915
1916    searchParams.set('autoplay', autoPlay ? '1' : '0');
1917    // 若自動播放,預設靜音以符合瀏覽器限制
1918    searchParams.set('mute', autoPlay ? '1' : '0');
1919    searchParams.set('playsinline', '1');
1920
1921    searchParams.set('controls', hideControls ? '0' : '1');
1922    searchParams.set('rel', '0');
1923
1924    if (loop) {
1925      searchParams.set('loop', '1');
1926      searchParams.set('playlist', videoId);
1927    }
1928
1929    return 'https://www.youtube.com/embed/' + videoId + '?' + searchParams.toString();
1930  }
1931
1932  function parseYtUrlOnLoad(target, url, autoPlay, hideControls, loop) {
1933    const finalUrl = buildYoutubeEmbedUrl(url, {
1934      autoPlay: autoPlay,
1935      hideControls: hideControls,
1936      loop: loop,
1937    });
1938
1939    if (!finalUrl || target.src === finalUrl) {
1940      return;
1941    }
1942
1943    const handleVideoLoad = function () {
1944      try {
1945        const wrapper = $(target).closest('.embed-responsive')[0];
1946        if (wrapper) {
1947          // 關閉 loading skeleton
1948          const loading = wrapper.querySelector('.video-block-loading');
1949          if (loading) {
1950            loading.style.display = 'none';
1951          }
1952        }
1953      } catch (e) {
1954        console.error('iframe onload 處理失敗', e);
1955      } finally {
1956        target.removeEventListener('load', handleVideoLoad);
1957      }
1958    };
1959
1960    target.addEventListener('load', handleVideoLoad);
1961
1962    target.src = finalUrl;
1963    if (hideControls && autoPlay) {
1964      target.style.pointerEvents = 'none';
1965    }
1966
1967    // 判斷是不是 YouTube shorts,決定要不要加上 .short-youtube class
1968    try {
1969      const isShort = (url || '').indexOf('/shorts/') !== -1;
1970      if (isShort) {
1971        const wrapper = $(target).closest('.embed-responsive')[0];
1972        if (wrapper) {
1973          wrapper.classList.add('short-youtube');
1974        }
1975      }
1976    } catch (e) {
1977      console.error('isShort 判斷失敗', e);
1978    }
1979  }
1980
1981
1982  window.addEventListener('load', function () {
1983    const sectionEl = document.getElementById('_index_4_blocks');
1984    if (!sectionEl) return;
1985
1986    const options = {
1987      threshold: 0.25,
1988    };
1989
1990    
1991      
1992      {
1993        const target = sectionEl.querySelector('#video-block-1647313315677');
1994
1995        if (!target) {
1996          return;
1997        }
1998
1999        const callback = (entries, observer) => {
2000          entries.forEach(entry => {
2001            if (entry.isIntersecting) {
2002              const iframe = target.querySelector('iframe');
2003              parseYtUrlOnLoad(
2004                iframe,
2005                'https://www.youtube.com/watch?v=cFt_su5phYg',
2006                true,
2007                false,
2008                true
2009              );
2010
2011              observer.unobserve(entry.target);
2012            }
2013          });
2014        };
2015
2016        const observer = new IntersectionObserver(callback, options);
2017        observer.observe(target);
2018      }
2019      
2020    
2021      
2022      {
2023        const target = sectionEl.querySelector('#video-block-1647498897014');
2024
2025        if (!target) {
2026          return;
2027        }
2028
2029        const callback = (entries, observer) => {
2030          entries.forEach(entry => {
2031            if (entry.isIntersecting) {
2032              const iframe = target.querySelector('iframe');
2033              parseYtUrlOnLoad(
2034                iframe,
2035                'https://youtu.be/XRS9GYRQq-A',
2036                true,
2037                false,
2038                true
2039              );
2040
2041              observer.unobserve(entry.target);
2042            }
2043          });
2044        };
2045
2046        const observer = new IntersectionObserver(callback, options);
2047        observer.observe(target);
2048      }
2049      
2050    
2051      
2052    
2053      
2054    
2055      
2056      {
2057        const target = sectionEl.querySelector('#video-block-1744855485037_1');
2058
2059        if (!target) {
2060          return;
2061        }
2062
2063        const callback = (entries, observer) => {
2064          entries.forEach(entry => {
2065            if (entry.isIntersecting) {
2066              const iframe = target.querySelector('iframe');
2067              parseYtUrlOnLoad(
2068                iframe,
2069                '',
2070                false,
2071                false,
2072                true
2073              );
2074
2075              observer.unobserve(entry.target);
2076            }
2077          });
2078        };
2079
2080        const observer = new IntersectionObserver(callback, options);
2081        observer.observe(target);
2082      }
2083      
2084    
2085  });
2086</script>
2086
2087
2088<section id="_index_4_blocks" class="index-4-blocks">
2089  <div class="qk-display--flex qk-flex--wrap">
2090    
2091    
2092      
2093      
2094      <div class="block video mobile-1-col" style="width: calc(100% - 0.0px);">
2095        
2096            
2097            <div class="embed-responsive only-video" id="video-block-1647313315677">
2098              <iframe
2099                frameborder="0"
2100                allowfullscreen
2101                allow="autoplay; encrypted-media"
2102              ></iframe>
2103              
2104                <div class="video-block-loading" >
2105                </div>
2106              
2107            </div>
2108          
2109      </div>
2110    
2111      
2112      
2113      <div class="block video mobile-1-col" style="width: calc(100% - 0.0px);">
2114        
2115            
2116            <div class="embed-responsive only-video" id="video-block-1647498897014">
2117              <iframe
2118                frameborder="0"
2119                allowfullscreen
2120                allow="autoplay; encrypted-media"
2121              ></iframe>
2122              
2123                <div class="video-block-loading" >
2124                </div>
2125              
2126            </div>
2127          
2128      </div>
2129    
2130      
2131      
2132      <div class="block image mobile-1-col last-row" style="width: calc(20.0% - 0.0px);">
2133        
2134            <div class="img-card" id="display_index_4_block_1">
2135              
2136              
2137                
2138                  <a href="https://reurl.cc/mGj0e7" class="banner qk-hidden--mobile" target="" rel="">
2139                    <img src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTYxXzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZGQl8xMjUweDM1MC5qcGcuanBlZyJdXQ.jpeg?sha=bdc59d9f31f0df0f" class="qk-w--100" alt="">
2140                  </a>
2141                
2142              
2143              
2144                
2145                  <a
2146                    href="https://reurl.cc/mGj0e7"
2147                    class="banner qk-display--bk qk-hidden--phone qk-hidden--pc"
2148                    target=""
2149                    rel=""
2150                  >
2151                    <img
2152                      src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTYxXzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZGQl8xMjUweDM1MC5qcGcuanBlZyJdXQ.jpeg?sha=bdc59d9f31f0df0f"
2153                      class="qk-w--100"
2154                      alt=""
2155                    >
2156                  </a>
2157                
2158              
2159              
2160                
2161                  <a
2162                    href="https://reurl.cc/mGj0e7"
2163                    class="banner qk-display--bk qk-hidden--pc qk-hidden--tablet"
2164                    target=""
2165                    rel=""
2166                  >
2167                    <img
2168                      src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTYxXzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZGQl8xMjUweDM1MC5qcGcuanBlZyJdXQ.jpeg?sha=bdc59d9f31f0df0f"
2169                      class="qk-w--100"
2170                      alt=""
2171                    >
2172                  </a>
2173                
2174              
2175              
2176              <div class="advance-rich-text-content-container">
2177                
2178              </div>
2179            </div>
2180          
2181      </div>
2182    
2183      
2184      
2185      <div class="block image mobile-1-col block-not-first-margin last-row" style="width: calc(20.0% - 0.0px);">
2186        
2187            <div class="img-card" id="1647322885680">
2188              
2189              
2190                
2191                  <a href="https://lin.ee/W87riD8" class="banner qk-hidden--mobile" target="" rel="">
2192                    <img src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTY0XzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZMSU5FXzEyNTB4MzUwLnBuZy5wbmciXV0.png?sha=7bba79b2b561db23" class="qk-w--100" alt="">
2193                  </a>
2194                
2195              
2196              
2197                
2198                  <a
2199                    href="https://lin.ee/W87riD8"
2200                    class="banner qk-display--bk qk-hidden--phone qk-hidden--pc"
2201                    target=""
2202                    rel=""
2203                  >
2204                    <img
2205                      src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTY0XzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZMSU5FXzEyNTB4MzUwLnBuZy5wbmciXV0.png?sha=7bba79b2b561db23"
2206                      class="qk-w--100"
2207                      alt=""
2208                    >
2209                  </a>
2210                
2211              
2212              
2213                
2214                  <a
2215                    href="https://lin.ee/W87riD8"
2216                    class="banner qk-display--bk qk-hidden--pc qk-hidden--tablet"
2217                    target=""
2218                    rel=""
2219                  >
2220                    <img
2221                      src="//cdn-general.cybassets.com/media/W1siZiIsIjIxMTI2L2F0dGFjaGVkX3Bob3Rvcy8xNjQ3NTAzNTY0XzIwMjIwMzE3X1NLMl_lrpjntrLpgKPntZDlnJZMSU5FXzEyNTB4MzUwLnBuZy5wbmciXV0.png?sha=7bba79b2b561db23"
2222                      class="qk-w--100"
2223                      alt=""
2224                    >
2225                  </a>
2226                
2227              
2228              
2229              <div class="advance-rich-text-content-container">
2230                
2231              </div>
2232            </div>
2233          
2234      </div>
2235    
2236      
2237      
2238      <div class="block video mobile-1-col block-not-first-margin last-row" style="width: calc(20.0% - 0.0px);">
2239        
2240            
2241            <div class="embed-responsive" id="video-block-1744855485037_1">
2242              <iframe
2243                frameborder="0"
2244                allowfullscreen
2245                allow="autoplay; encrypted-media"
2246              ></iframe>
2247              
2248            </div>
2249          
2250      </div>
2251    
2252  </div>
2253</section>
2254
2255
2256
2257
2258  <!-- 加入購物車 -->
2259  
2260    <!-- cyb_snippet new_addcart_modal start -->
2261<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vue_product_modal-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
2262
2263<div id="new-addcart-modal" class="container">
2264  <transition name="modal">
2265    <product-modal
2266      v-if="showProductModal"
2267      :only-description="onlyDescription"
2268      :product-url="popProductUrl"
2269      :color="color"
2270      :is-collection="isCollection"
2271      :is-show-description="isShowDescription"
2272      :is-quick-buy="isQuickBuy"
2273      :selected-variant-id="selectedVariantId"
2274      :categories="categories"
2275      :call-back="checkoutAddToCartCallback"
2276      ref="productModal"
2277    >
2278    </product-modal>
2279  </transition>
2280</div>
2281
2282<!-- cyb_snippet components/product_modal/product_modal start -->
2283<script type="text/x-template" id="product-modal">
2284  <div class="modal-mask qk-h--100 qk-w--100 qk-l--0 qk-t--0 qk-pos--fixed" @click="closeModal">
2285    <div class="modal-content qk-bd--none qk-center qk-bg--theme_bg" :class="{'only-description': onlyDescription}" @click.stop>
2286      <button class="btn-close qk-circle qk-circle--md qk-pos--abs qk-op--100 qk-bg--theme_bg qk-text--heading qk-bd--product_border qk-bd--default" @click="closeModal"></button>
2287      <div class="modal-body custom-scrollbar qk-w--100">
2288        <div v-if="!isLoading">
2289          <div id="checkout-product" class="row">
2290            <div class="col-sm-6 col-xs-4">
2291              <photo-swiper
2292                :mediaItems="swiperItems"
2293                :current-image-index="currentImageIndex"
2294                :current-variant="currentVariant"
2295                :video-after-image="videoAfterImage"
2296              ></photo-swiper>
2297            </div>
2298            <div class="col-sm-6 col-xs-8">
2299              <h4 class="qk-fs--hd2 qk-fw--bold qk-text--heading qk-mg--0" v-html="product.title"></h4>
2300              <p class="product_brief qk-text--text qk-fs--body" v-html="product.brief"></p>
2301              <p class="product_slogan qk-text--heading qk-fs--body" v-html="product.slogan"></p>
2302              <div class="swiper_thumbnails" style="margin-bottom: 10px;">
2303                <swiper-thumbnails
2304                  :mediaItems="swiperItems"
2305                  :current-image-index="currentImageIndex"
2306                  :title="product.title"
2307                  @update-current-image-index="(thumbnailIndex) => { currentImageIndex = thumbnailIndex }"
2308                ></swiper-thumbnails>
2309              </div>
2310              
2311              <div v-if="!hidePrice" style="margin-bottom: 10px;">
2312                
2313                <span class="price-title qk-fs--body qk-fw--500 qk-text--heading">${ priceTitleTag }</span>
2314                
2315                <div>
2316                  <span v-html="variantPrice" class="variant-price qk-fs--hd1 qk-fw--bold" :class="[isDiscountPrice ? 'qk-text--discount_price' : 'qk-text--price']"></span>
2317                  <del v-html="marketPrice" class="variant-del-price qk-fs--body qk-fw--500 qk-text--text"></del>
2318                </div>
2319              </div>
2320              <div v-if="!onlyDescription" class="controls">
2321                <div class="variant-quantity qk-display--flex qk-flex--column">
2322                  <div v-if="hasVariant" class="product-variant-options">
2323                    <div v-for="(option, index) in optionInfo" class="product-variant-option" :class="{'product-variant-option--hidden': shouldHideSingleVariantOptions}">
2324                      <div class="advance variant-select-option" v-if="styledShopMenu==='dropDownType'">
2325                      
2326                        <label>${option.name}</label>
2327                        <svg height="20" width="20" viewBox="0 0 20 20" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"><path d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"> </path></svg>
2328                        <select class="qk-bg--theme_bg" :class="{'select_placeholder-color': currentOption[`option${index + 1}`] === null}" v-show="!isMobileSize" :value="String(currentOption[`option${index + 1}`])" @change="setOption(`option${index + 1}`, $event.target.value, option.types )" @click="onClickSelectModal(option,`option${index + 1}`)">
2329                          <option value="null" class="select_option-hidden">請選擇${option.name}</option>
2330                          <option :style="{ visibility : isMobileSize ? 'hidden' : 'visible' }" v-for="(types) in option.types" :disabled="!types.isValid" :value="types.name">${types.name}</option>
2331                        </select>
2332                        <span class="select_placeholder-color" v-if="currentOption[`option${index + 1}`] === null" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)">請選擇${option.name}</span>
2333                        <span v-else :value="currentOption[`option${index + 1}`]" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)" v-html="currentOption[`option${index + 1}`]"></span>
2334                      </div>
2335                      <advance-option v-else :option-key="'option' + (index + 1)" :option="option" :current-option="currentOption" :toggle-current-option="toggleCurrentOption"/>
2336                    </div>
2337                  </div>
2338                  <div class="product_discounts_list qk-bg--theme_bg qk-bd--default qk-bd--product_border qk-pd--1 qk-mg_b--1" v-show="displayProductDiscountsList && ((displayPeriodicSalesPages && product.showableSalesPages.length > 0) || !!discountsList)">
2339                    <div class="list_block custom-scrollbar qk-of_x--hidden">
2340                      <h4 class="qk-text--heading qk-fs--body">此商品參與的優惠活動
2341                      </h4>
2342                      <template v-if="displayPeriodicSalesPages">
2343                        <div v-for="salesPage in product.showableSalesPages" class="discount-list">
2344                          <span class="discount-label qk-fs--breadcrumb qk-bd--default qk-bd--accent qk-bg--white qk-display--il_bk qk-text--accent">定期定額
2345                          </span>
2346                          <a class="discount-title qk-text--accent qk-fs--body" :href="salesPage.path">${ salesPage.title }</a>
2347                        </div>
2348                      </template>
2349                      <template v-for="discounts in discountsList">
2350                        <div v-for="discount in discounts" class="discount-list">
2351                          <a v-if="discount.url" :href="discount.url" class="discount-title qk-text--accent qk-fs--body">
2352                            ${ discount.title }
2353                          </a>
2354                          <span v-else class="discount-title qk-text--accent qk-fs--body">${ discount.title }</span>
2355                        </div>
2356                      </template>
2357                    </div>
2358                  </div>
2359                  <div v-if="showPurchaseControls" class="product-quantity qk-bd--product_border" v-show="!isMobileSize">
2360                    <div class="btn-group qk-w--100" role="group" aria-label="First group">
2361                      <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">-</button>
2362                      <input class="btn item-quantity qk-bd--default qk-bd--border qk-w--100 qk-text--heading" type="text" name="quantity" :value="quantity" @change="quantityChange">
2363                      <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">+</button>
2364                    </div>
2365                  </div>
2366                </div>
2367                <div v-if="showPurchaseControls" class="add-button-wrapper">
2368                  <!-- cyb_snippet _product_modal_button start -->
2369<button
2370  class="btn btn-default add-button qk-cursor--pointer qk-w--100 qk-btn--primary"
2371  :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}"
2372  type="button"
2373  :disabled="isHideAddCartBtn"
2374  @click="addProduct"
2375>
2376  ${ addCartText }
2377</button>
2378
2379<!-- cyb_snippet _product_modal_button end -->
2380                </div>
2381                <div class="product-others qk-fs--body">
2382                  <span class="product-love">
2383                    <a class="btn-love qk-text--text qk-bg--theme_bg qk-bd--default qk-bd--product_border qk-display--il_bk qk-text--center qk-cursor--pointer qk-tst qk-tst_timing--ease_io qk-tst_dur--15" @click="addWishList">
2384                      <svg
2385                        width="15"
2386                        height="15"
2387                        viewBox="0 0 24 24"
2388                        fill="none"
2389                        xmlns="http://www.w3.org/2000/svg">
2390                        <path
2391                          d="M21.3899 4.54287C20.8146 4.01265 20.1366 3.60344 19.3969 3.34002C18.6572 3.0766 17.8711 2.96444 17.0863 3.01034C16.5593 3.01219 16.0362 3.09923 15.5375 3.26802C15.0194 3.44412 14.5265 3.68572 14.071 3.98682C13.6676 4.25092 13.2787 4.53613 12.906 4.84124C12.5762 5.09996 12.2648 5.38092 11.974 5.6821C11.6833 5.38092 11.3719 5.09996 11.042 4.84124C10.6516 4.53452 10.2443 4.24928 9.82221 3.98682C9.3967 3.69278 8.93642 3.45138 8.45163 3.26802C7.93995 3.0948 7.40254 3.0077 6.86175 3.01034C6.07688 2.96365 5.2906 3.07544 4.55076 3.3389C3.81091 3.60236 3.13296 4.01199 2.55813 4.54287C2.02401 5.11052 1.61146 5.77922 1.3453 6.50873C1.07914 7.23825 0.964875 8.01351 1.00937 8.78786C1.01359 9.36893 1.11073 9.94569 1.29719 10.4967C1.45989 11.0166 1.68054 11.517 1.95507 11.9886C2.20373 12.4073 2.47838 12.8104 2.77742 13.1956C3.09266 13.5889 3.32566 13.8601 3.46271 14.0093C3.56921 14.1255 3.6837 14.2343 3.80536 14.3348L11.4395 21.7669C11.5066 21.8412 11.5891 21.9002 11.6813 21.94C11.7736 21.9798 11.8734 21.9994 11.974 21.9975C12.0836 22.0067 12.1938 21.9906 12.296 21.9506C12.3983 21.9106 12.4898 21.8477 12.5634 21.7669L20.1838 14.3484C21.8272 12.9359 22.8376 10.9363 22.9935 8.78786C23.0307 8.0097 22.9078 7.23217 22.6321 6.50246C22.3565 5.77274 21.9339 5.10606 21.3899 4.54287V4.54287Z"
2392                          stroke="currentColor"
2393                          stroke-width="2"
2394                          stroke-linecap="round"
2395                          stroke-linejoin="round" />
2396                      </svg>
2397                      加入最愛
2398                    </a>
2399                  </span>
2400                  <span class="product_sold qk-text--text" v-if="false">
2401                    <span>已銷售:
2402                      ${ product.totalSold }
2403                      ä»¶
2404                    </span>
2405                  </span>
2406                  <span class="product_bonus qk-text--text" v-if="false">
2407                    此商品 「 最高 」可以折抵紅利
2408                    <span class="val qk-fw--600 qk-fs--hd2" v-if="currentVariant">${currentVariant.maxUsableBonus}</span>
2409                    <span class="val qk-fw--600 qk-fs--hd2" v-else>${maxUsableBonus}</span>
2410                    點
2411                    <span v-html="bonusToPrice"/>
2412                  </span>
2413                </div>
2414                <div class='product_limit_buy qk-fs--body' v-show="product.minBuy > 0 || product.limitBuy > 0">
2415                  ${limitBuyText}
2416                </div>
2417              </div>
2418            </div>
2419          </div>
2420          <div v-if="isShowDescription" class="row">
2421            <div class="col-sm-12">
2422              
2423                <div v-if="product.bodyHtml">
2424                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2425                    商品介紹
2426                  </h5>
2427                  <div class="ckeditor">
2428                    <div v-html="product.bodyHtml"></div>
2429                  </div>
2430                </div>
2431              
2432              
2433                <div v-if="otherDescriptions['product_description_section_spec']">
2434                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2435                    規格說明
2436                  </h5>
2437                  <div class="ckeditor">
2438                    <div v-html="otherDescriptions['product_description_section_spec']"></div>
2439                  </div>
2440                </div>
2441              
2442              
2443                <div v-if="otherDescriptions['product_description_section_shipping']">
2444                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2445                    運送方式
2446                  </h5>
2447                  <div class="ckeditor">
2448                    <div v-html="otherDescriptions['product_description_section_shipping']"></div>
2449                  </div>
2450                </div>
2451              
2452            </div>
2453          </div>
2454        </div>
2455        <div v-show="isLoading" style="text-align: center; padding-bottom: 20px;">
2456          <i class="fas fa-spinner fa-spin fa-fw fa-2x"></i>
2457        </div>
2458      </div>
2459        <!-- cyb_snippet _product_modal_button_mobile start -->
2460 <div
2461  v-if="showPurchaseControls"
2462  v-show="isMobileSize"
2463  class="mobile_footer"
2464  :class="{'mobile_footer-z': variantSize > 1 }">
2465        <div class="product-quantity">
2466          <div class="btn-group qk-w--100" role="group" aria-label="First group">
2467            <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">-</button>
2468            <input class="btn item-quantity qk-bd--default qk-bd--border qk-w--100 qk-text--heading" type="text" name="quantity" :value="quantity" @change="quantityChange">
2469            <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">+</button>
2470          </div>
2471        </div>
2472        <button
2473          v-if="!isLoading && !onlyDescription"
2474          class="btn btn-mobile add-button qk-btn qk-btn--primary qk-btn--lg"
2475          :class="{selected: isChoose, adding: adding || isHideAddCartBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}"
2476          type="button"
2477          :disabled="isHideAddCartBtn"
2478          @click="addProduct">
2479            ${ addCartText }
2480        </button>
2481</div>
2482<div
2483  class="mobile-modal"
2484  :class="{ 'modal-open': isModalSelectShow && isMobileSize }">
2485        <div class="mobile_modal-content">
2486          <div class="modal_close-button">
2487            <button class="btn-close qk-circle qk-circle--md qk-pos--abs qk-op--100  qk-text--heading qk-bd--product_border qk-bd--default" @click="onChangeModalSelect(false,true)"></button>
2488          </div>
2489          
2490          <p>請選擇${modalOption.name}</p>
2491          <div class="modal_select-templete qk-display--flex qk-of_y--auto qk-w--100">
2492            <div class="options-container">
2493              <label :class="{'seleced-option': currentOption && currentOption[selectOption] === data.name, 'avoid-clicks':!data.isValid}" v-for="data in modalOption.types" @click="setOption(selectOption, data.name, modalOption.types)">${data.name}</label>
2494            </div>
2495          </div>
2496          <div v-if="variantSize > 1" class="modal_select_footer qk-display--flex">
2497            <button type="button" class="modal_cancel qk-bd--default qk-btn--secondary qk-bd--button qk-text--button" @click="onChangeModalSelect(false,false)">取消</button>
2498            <button type="button" class="qk-btn qk-btn--primary qk-btn--lg qk-fs--body qk-bd--button qk-test--button_text" @click="onChangeModalSelect(false,true)">完成</button>
2499          </div>
2500        </div>
2501</div>
2502
2503<!-- cyb_snippet _product_modal_button_mobile end -->
2504    </div>
2505  </div>
2506</script>
2506
2507
2508<!-- cyb_snippet components/product_modal/color_image_option start -->
2509<script id="color-image-option" type="text/x-template">
2510  <div class="color-image qk-display--flex qk-flex--wrap qk-align--center">
2511    <div class="title">顏色</div>
2512    <div
2513      v-for="(imageColor, index) in imageColors"
2514      :class="{
2515        'focus': !currentOption[optionKey] === option.types[index].name && currentImageIndex === index,
2516        'selected': currentOption[optionKey] === option.types[index].name,
2517        'disabled': !option.types[index].isValid
2518      }"
2519      class="image-option img-flex qk-bd--default qk-bd--transparent qk-display--block qk-pos--rel"
2520      @mouseleave="setCurrentImageIndex(index)"
2521      @mouseover="getOptionImageIndex(index)"
2522      @click="setOption(optionKey, index)"
2523    >
2524      <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image">
2525      <img v-else src="/assets/no-image-large.png" alt="image">
2526    </div>
2527  </div>
2528</script>
2528
2529
2530<script type="text/javascript">
2531  $(document).ready(function() {
2532    window.themeHelper.productModalComponents['color-image-option'] = {
2533      template: '#color-image-option',
2534      delimiters: ['${', '}'],
2535      props: {
2536        optionKey: String,
2537        option: Object,
2538        product: Object,
2539        imageColors: Array,
2540        isChoose: Boolean,
2541        currentImageIndex: Number,
2542        setCurrentImageIndex: Function,
2543        getOptionImageIndex: Function,
2544        currentOption: Object,
2545        toggleCurrentOption: Function,
2546      },
2547      methods: {
2548        setOption: function(optionKey, index) {
2549          const type = this.option.types[index];
2550          if(type.isValid){
2551            this.toggleCurrentOption(optionKey, type.name);
2552          }
2553        }
2554      }
2555    };
2556  });
2557</script>
2557
2558
2559<!-- cyb_snippet components/product_modal/color_image_option end -->
2560<!-- cyb_snippet components/product_modal/advance_option start -->
2561<script id="advance-option" type="text/x-template">
2562  <div class="advance">
2563    <div class="title qk-text--heading qk-fs--body">${option.name}</div>
2564    <div
2565      v-for="type in option.types"
2566      :class="{
2567        'selected': currentOption[optionKey] === type.name,
2568        'disabled': !type.isValid
2569      }"
2570      @click="setOption(optionKey, type)"
2571      class="option qk-btn  qk-bd--button qk-text--button qk-pd_x--1"
2572    >
2573      ${type.name}
2574    </div>
2575  </div>
2576</script>
2576
2577
2578<script type="text/javascript">
2579  $(document).ready(function() {
2580    window.themeHelper.productModalComponents['advance-option'] = {
2581      template: '#advance-option',
2582      delimiters: ['${', '}'],
2583      props: {
2584        optionKey: String,
2585        option: Object,
2586        product: Object,
2587        currentOption: Object,
2588        toggleCurrentOption: Function,
2589      },
2590      methods: {
2591        setOption: function(optionKey, type) {
2592          if(type.isValid){
2593            this.toggleCurrentOption(optionKey, type.name);
2594          }
2595        }
2596      }
2597    };
2598  });
2599</script>
2599
2600
2601<!-- cyb_snippet components/product_modal/advance_option end -->
2602
2603<!-- cyb_snippet components/product_modal/photo_swiper start -->
2604
2605
2606<script id="photo-swiper" type="text/x-template">
2607  <div ref="photoSwiper" id="photo_swiper" class="photos swiper swiper-container">
2608    <div class="swiper-wrapper">
2609      <template v-if="hasImage">
2610        <div v-for="(item, index) in mediaItems" :key="index" class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top default_scale">
2611          <video-player v-if="item.url" :video="item"
2612            :video-poster=" !!mediaItems[firstImageIndex] ? mediaItems[firstImageIndex].large : '//cdn-general.cybassets.com/img_loading.svg' "
2613          >
2614          </video-player>
2615          <img v-else class="qk-center" :src="item.large" alt="image"/>
2616        </div>
2617      </template>
2618      <div v-else class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top default_scale">
2619        <img src="//cdn-general.cybassets.com/assets/no-image-large-2b95ea56c455be9ce081d81c14eded925df68bf8fa38809e46f6af8fcdd5f9bc.png" alt="image" />
2620      </div>
2621    </div>
2622    <div v-show="showBtn" class="photo-prev qk-swiper_btn--prev  qk-hidden--mobile qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v2 qk-mg_l--05"></div>
2623    <div v-show="showBtn" class="photo-next qk-swiper_btn--next  qk-hidden--mobile qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v2 qk-mg_l--05"></div>
2624
2625    <div class="photo-pagination qk-bd--default qk-bd--body qk-text--center qk-text--body qk-fs--breadcrumb qk-visible-sm">
2626        <span class="current-index qk-text--default_dark">${currentImageIndex +1 }</span><span class="pagination-slash">/</span>
2627        <span>${mediaItems.length}</span>
2628      </div>
2629  </div>
2630</script>
2630
2631
2632<script>
2633  $(document).ready(function () {
2634    window.themeHelper.productModalComponents['photo-swiper'] = {
2635      template: '#photo-swiper',
2636      delimiters: ['${', '}'],
2637      props: {
2638        mediaItems: Array,
2639        currentImageIndex: Number,
2640        currentVariant: Object,
2641        videoAfterImage: Boolean,
2642      },
2643      data: function () {
2644        return {
2645          swiper: {},
2646          swiperOption: {
2647            preventInteractionOnTransition: true,
2648            rewind: true,
2649            spaceBetween: 5,
2650            slidesPerView: 1,
2651            navigation: {
2652              nextEl: '.photo-next',
2653              prevEl: '.photo-prev'
2654            }
2655          },
2656          showBtn: true,
2657          isVariantReposition: false,
2658        }
2659      },
2660      mounted: function() {
2661        this.swiper = new Swiper('#photo_swiper', this.swiperOption);
2662        this.swiper.on('slideChange', this.slideOnChange);
2663      },
2664      watch: {
2665        currentImageIndex: function() {
2666          this.slideToIndex();
2667        },
2668        currentVariant: {
2669          immediate: true,
2670          handler: function() {
2671            this.showBtn = this.mediaItems.length > 1;
2672            this.isVariantReposition = true;
2673            this.$nextTick(() => {
2674              if (this.swiper) {
2675                this.swiper.update();
2676                this.swiper.slideToLoop(this.initialItemIndex)
2677                this.slideOnChange();
2678                this.isVariantReposition = false;
2679              }
2680            });
2681          },
2682        },
2683      },
2684      computed: {
2685        hasImage: function() {
2686          return this.mediaItems.length > 0;
2687        },
2688        hasVideo: function() {
2689          return this.mediaItems.findIndex(item => !!item.url) !== -1;
2690        },
2691        variantPhotos: function() {
2692          if (this.currentVariant?.photos?.length) {
2693            return this.currentVariant.photos;
2694          } else  {
2695            return null;
2696          }
2697        },
2698        initialItemIndex: function() {
2699          if (this.hasVideo && !this.videoAfterImage) {
2700            // Focus on photo if "variant with photos" selected, video otherwise
2701            return this.variantPhotos?.length ? 1 : 0;
2702          } else {
2703            // Focus on first photo
2704            return 0;
2705          }
2706        },
2707      },
2708      methods: {
2709        slideOnChange: function() {
2710          themeHelper.EventBus.$emit('photoOnChange', this.swiper.realIndex, this.isVariantReposition);
2711        },
2712        slideToIndex: function() {
2713          if(this.swiper.realIndex != this.currentImageIndex) {
2714            this.swiper.slideToLoop(this.currentImageIndex);
2715            this.swiper.update();
2716          }
2717        },
2718      }
2719    };
2720  });
2721</script>
2721
2722
2723
2724<!-- cyb_snippet components/product_modal/video_player start -->
2725<script id="video-player" type="text/x-template">
2726  <div class="videoPlayer__wrapper" @click="handleVideoClick">
2727    <video 
2728      id='modal-video'
2729      class="videoPlayer__video qk-cursor--pointer qk-center" 
2730      :poster="videoPoster"
2731      loop defaultMuted muted playsinline webkit-playsinline autoplay
2732    >
2733      <source :src="videoUrl" type="video/mp4">
2734      <p>你的瀏覽器不支援 HTML 5 video</p>
2735    </video>
2736    <button id="modal-video-button" class="videoPlayer__pauseButton"></button>
2737  </div>
2738</script>
2738
2739
2740<script>
2741  $(document).ready(function () {
2742    window.themeHelper.productModalComponents['video-player'] = {
2743      template: '#video-player',
2744      delimiters: ['${', '}'],
2745      props: {
2746        video: Object,
2747        videoPoster: String,
2748      },
2749      data: function() {
2750        return {
2751          videoElement: null,
2752          buttonElement: null,
2753        };
2754      },
2755      mounted: function() {
2756        this.videoElement = $('#modal-video')[0];
2757        this.buttonElement = $('#modal-video-button');
2758        this.setVideoVolumeZero();
2759        this.videoElement.addEventListener('canplay', (event) => {
2760          this.sendGtag('play');
2761        }, { once: true });
2762      },
2763      computed: {
2764        videoUrl: function() {
2765          return this.video.url;
2766        }
2767      },
2768      methods: {
2769        sendGtag: function(action) {
2770          window.productVideoView && productVideoView(action);
2771        },
2772        setVideoVolumeZero: function() {
2773          this.videoElement.volume = 0;
2774        },
2775        handleVideoClick: function() {
2776          if (this.videoElement.paused){
2777            this.videoElement.play();
2778            this.sendGtag('play');
2779          } else {
2780            this.videoElement.pause();
2781            this.sendGtag('paused');
2782          }
2783          this.handleVideoButtonDisplay(this.buttonElement, this.videoElement);
2784        },
2785        handleVideoButtonDisplay: function(button, video) {
2786          button.toggleClass('videoPlayer__playButton', video.paused);
2787          button.toggleClass('videoPlayer__pauseButton', !video.paused);
2788        },
2789      }
2790    };
2791  });
2792</script>
2792
2793
2794<!-- cyb_snippet components/product_modal/video_player end -->
2795
2796<!-- cyb_snippet components/product_modal/photo_swiper end -->
2797<!-- cyb_snippet components/product_modal/swiper_thumbnails start -->
2798<script id="swiper-thumbnails" type="text/x-template">
2799  <div
2800    v-for="(thumbnail, index) in allThumbnails"
2801    :key="index"
2802    class="product-thumbnail img-flex qk-of--hidden qk-display--il_bk qk-cursor--pointer qk-bd--default qk-bd--transparent default_scale"
2803    :class="{ focus: index === currentImageIndex }"
2804    @mouseover="updateCurrentImageIndex(index)"
2805  >
2806    <template v-if="thumbnail.isVideo">
2807      <video class="qk-w--100 qk-h--100" :src="thumbnail.url" defaultMuted playsinline></video>
2808      <button class="videoPlayer__playButton"></button>
2809    </template>
2810    <img v-else :src="thumbnail.url" :alt="title" class="qk-w--100 qk-h--100">
2811  </div>
2812</script>
2812
2813
2814<script type="text/javascript">
2815  $(document).ready(function () {
2816    window.themeHelper.productModalComponents['swiper-thumbnails'] = {
2817      template: '#swiper-thumbnails',
2818      delimiters: ['${', '}'],
2819      props: {
2820        title: String,
2821        mediaItems: Array,
2822        currentImageIndex: Number,
2823      },
2824      emits: ['updateCurrentImageIndex'],
2825      methods: {
2826        updateCurrentImageIndex: function(thumbnailIndex) {
2827          if (thumbnailIndex !== this.currentImageIndex ) {
2828            this.$emit('updateCurrentImageIndex', thumbnailIndex);
2829          }
2830        },
2831      },
2832      mounted() {
2833        // can be removed after replacing video thumbnail with img
2834        const thumbnailVideo = $('.product-thumbnail video')[0];
2835        if (!!thumbnailVideo) {
2836          thumbnailVideo.volume = 0;
2837          const promise = thumbnailVideo.play();
2838          promise.then(() => {
2839            thumbnailVideo.pause();
2840          })
2841        }
2842      },
2843      computed: {
2844        allThumbnails: function() {
2845          return this.mediaItems.map(item => ({
2846            isVideo: !!item.url,
2847            url: item.url || item.medium
2848          }));
2849        },
2850      },
2851      watch: {
2852        allThumbnails: {
2853          handler(){
2854            this.updateCurrentImageIndex(this.currentImageIndex);
2855          }
2856        }
2857      }
2858    };
2859  });
2860</script>
2860
2861
2862<!-- cyb_snippet components/product_modal/swiper_thumbnails end -->
2863
2864
2865<!-- cyb_snippet _product_modal_js start -->
2866<script type="text/javascript">
2867  $(document).ready(function() {
2868    var categoryLevels = [];
2869    var productCategoryLevels = null;
2870    var pageMainProductId = null;
2871    window.themeHelper.productModalComponents['product-modal'] = {
2872      template: '#product-modal',
2873      delimiters: [
2874        '${', '}'
2875      ],
2876      props: {
2877        onlyDescription: Boolean,
2878        cartItems: Array,
2879        groupId: Number,
2880        productUrl: String,
2881        color: String, // unused
2882        collectionId: Number,
2883        categories: Array,
2884        // 判斷是否有色票展開
2885        isCollection: {
2886          type: Boolean,
2887          required: false,
2888          default: false,
2889        },
2890        // 判斷加入購物車的方法
2891        isNnCollection: Boolean,
2892        isNewNnCollection: Boolean,
2893        isBundleDiscount: Boolean,
2894
2895        // 判斷是否顯示商品描述
2896        isShowDescription: {
2897          type: Boolean,
2898          default: true
2899        },
2900
2901        // 判斷是否為立即購買
2902        isQuickBuy: {
2903          type: Boolean,
2904          default: false
2905        },
2906        selectedVariantId: Number,
2907        callBack: Function
2908      },
2909      data: function() {
2910        return {
2911          styledShopMenu: "buttonType",
2912          selectOption: '',
2913          selectCurrentStr:'',
2914          isModalSelectShow: false,
2915          modalOption: {},
2916          adding: false,
2917          currentImageIndex: 0,
2918          _navState: { variantId: null, photoIndex: 0 },
2919          currentOption: {
2920            option1: null,
2921            option2: null,
2922            option3: null
2923          },
2924          currentVariant: null,
2925          variantNotifications: null,
2926          currentVariantIndex: null,
2927          product: {},
2928          isChoose: false,
2929          isLoading: true,
2930          isEmptyClickable: liquidHelper.isEmptyClickable,
2931          quantity: 1,
2932          maxUsableBonus: 0,
2933          isDiscountPrice: false,
2934          displayProductDiscountsList: true,
2935          displayPeriodicSalesPages:false,
2936          discountsList: null,
2937          hasVideoPlugin: true,
2938          videoDisplayLocation: "before",
2939          hasStockNotificationPlugin: false,
2940          isDisplayPriceRange: null,
2941          hasVariantPriceRangePlugin: true,
2942          hasHideSingleVariantOptionsPlugin: false,
2943        }
2944      },
2945      mounted: function() {
2946        this.getProductDetail();
2947        $('.custom-scrollbar').addCustomScrollbar();
2948        themeHelper.EventBus.$on('photoOnChange', this.photoOnChange);
2949      },
2950      beforeUnmount: function() {
2951        themeHelper.EventBus.$off('photoOnChange', this.photoOnChange);
2952      },
2953      computed: {
2954        photoUrls: function() {
2955          return this.product.photoUrls.length > 0
2956            ? this.product.photoUrls
2957            : [this.featuredImage];
2958        },
2959        photoUrlsMap: function() {
2960          var map = {};
2961          var urls = this.product.photoUrls;
2962          this.product.photos.forEach(function(photo, index) {
2963            map[photo.photo.id] = urls[index];
2964          });
2965
2966          return map;
2967        },
2968        featuredImage: function() {
2969          return this.product.featuredImage;
2970        },
2971        swiperPhotos: function() {
2972          if (!this.photoUrls.length) {
2973            return [this.featuredImage];
2974          }
2975
2976          if (this.currentVariant && this.currentVariant.photos.length) {
2977            var map = this.photoUrlsMap;
2978            return this.currentVariant.photos.map(function(p) {
2979              return map[p.id];
2980            });
2981          }
2982
2983          return this.photoUrls;
2984        },
2985        productVideo: function() {
2986          return this.product.video;
2987        },
2988        videoAfterImage: function() {
2989          return this.videoDisplayLocation === 'after';
2990        },
2991        swiperItems: function() {
2992          const media = [...this.swiperPhotos];
2993          if (
2994            this.hasVideoPlugin && this.productVideo.url
2995          ) {
2996            this.videoAfterImage
2997              ? media.push(this.productVideo)
2998              : media.unshift(this.productVideo);
2999          }
3000          return media;
3001        },
3002        firstImageIndex: function() {
3003          return this.hasVideoPlugin && this.productVideo.url && !this.videoAfterImage
3004            ? 1
3005            : 0
3006        },
3007        otherDescriptions: function() {
3008          var descriptions = {};
3009          this.product.otherDescriptions.forEach(function(od) {
3010            descriptions[od.settingName] = od.bodyHtml;
3011          })
3012          return descriptions
3013        },
3014        variantOptions: function() {
3015          return themeHelper.variantOptions(this.product);
3016        },
3017        firstValidVariant: function() {
3018          var self = this;
3019          var result = this.product.variants.find(function(variant) {
3020            // 增加 product modal 聯絡店家 property
3021            variant.imgUrl = "";
3022            variant.productTitle = "";
3023
3024            return variant.available;
3025          });
3026
3027          return result
3028            ? result
3029            : null;
3030        },
3031        selectedValidVariant: function() {
3032          var self = this;
3033          var result = this.variantOptions.find(function(variant) {
3034            return variant.id === self.selectedVariantId;
3035          });
3036
3037          return result
3038            ? result
3039            : null;
3040        },
3041        totalInventoryQuantity: function(product) {
3042          return themeHelper.totalInventoryQuantity(this.product)
3043        },
3044        addCartText: function() {
3045          var variants = parseInt("");
3046          let isRegisteredNotification = this.currentVariant && this.variantNotifications && this.variantNotifications[this.currentVariant.id]
3047          if (this.isNnCollection || this.isBundleDiscount) {
3048            if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) {
3049              if (this.currentVariant.inventoryPolicy === 'continue') {
3050                if (this.isNnCollection) {
3051                  return this.isChoose && !this.isNewNnCollection
3052                    ? '已預購'
3053                    : '預購商品';
3054                }
3055              } else {
3056                return '已售完';
3057              }
3058            }
3059            if (this.totalInventoryQuantity === 0) {
3060              return '已售完';
3061            }
3062            return this.isChoose && !this.isNewNnCollection
3063              ? '已選購'
3064              : '選購';
3065          } else {
3066            if (this.isQuickBuy) {
3067              if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) {
3068                if (this.currentVariant.inventoryPolicy === 'continue'){
3069                  return '立即預購'
3070                }
3071                return this.hasStockNotificationPlugin
3072                  ? (isRegisteredNotification
3073                    ? '已登記補貨通知'
3074                    : '已售完,貨到通知我')
3075                  : '聯絡店家'
3076              }
3077              return '立即購買';
3078            } else {
3079              if (this.currentVariant) {
3080                if (!themeHelper.variantIsAvailable(this.currentVariant)) {
3081                  if (this.currentVariant.inventoryPolicy === 'continue'){
3082                    return '預購商品'
3083                  }
3084                  return this.hasStockNotificationPlugin
3085                    ? (isRegisteredNotification
3086                      ? '已登記補貨通知'
3087                      : '已售完,貨到通知我')
3088                    : '聯絡店家'
3089                }
3090              } else {
3091                if (this.totalInventoryQuantity === 0) {
3092                  return '已售完';
3093                }
3094              }
3095              return '加入購物車';
3096            }
3097          }
3098        },
3099        cartItem: function() {
3100          if (!this.currentVariant) {
3101            return null
3102          }
3103          return {
3104            id: this.currentVariant.id,
3105            groupId: this.groupId,
3106            productId: this.product.id,
3107            title: this.product.title,
3108            photo: this.currentVariant.imgUrl || this.featuredImage.large,
3109            quantity: this.quantity,
3110            price: this.currentVariant.price,
3111            variant: this.currentVariant,
3112            product: this.product
3113          }
3114        },
3115        options: function() {
3116          return this.product.options;
3117        },
3118        optionTypes: function() {
3119
3120          // 先根據設定的variants來排序
3121          var self = this;
3122
3123          var option1 = [];
3124          var option2 = [];
3125          var option3 = [];
3126          this.product.variants.forEach(function(item) {
3127            if (item.option1 !== null) {
3128              option1.push(item.option1);
3129            }
3130            if (item.option2 !== null) {
3131              option2.push(item.option2);
3132            }
3133            if (item.option3 !== null) {
3134              option3.push(item.option3);
3135            }
3136          })
3137          var filteredOptionTypes = [];
3138          this.product.optionTypes.forEach(function(item, index) {
3139            filteredOptionTypes.push(self.getUniqueVariant(eval('option' + (
3140              index + 1
3141            ))).join(','));
3142          });
3143          return filteredOptionTypes;
3144        },
3145        optionInfo: function() {
3146          var self = this;
3147
3148          return self.options.map(function(option, index) {
3149            return {
3150              name: option,
3151              types: self.getOptions('option' + (
3152                index + 1
3153              ), self.optionTypes[index].split(','))
3154            }
3155          });
3156        },
3157        hasVariant: function() {
3158          return this.product.options.length > 0;
3159        },
3160        shouldHideSingleVariantOptions: function() {
3161          return this.hasHideSingleVariantOptionsPlugin &&
3162                 this.product.variants &&
3163                 this.product.variants.length <= 1;
3164        },
3165        variantSize: function() {
3166          if(this.product.options){
3167          return this.product.options.length;
3168          }
3169        },
3170        firstVariant: function() {
3171          return this.product.variants[0];
3172        },
3173        firstCheapestVariant: function() {
3174          return this.product.variants.find((v)=> (v.price === this.priceStats.minPrice));
3175        },
3176        priceStats: function() {
3177          return this.product.variants.reduce(function(acc, variant) {
3178            return {
3179              minPrice: variant.price < acc.minPrice ? variant.price : acc.minPrice,
3180              maxPrice: variant.price > acc.maxPrice ? variant.price : acc.maxPrice,
3181            };
3182          }, {
3183            minPrice: this.firstVariant.price,
3184            maxPrice: this.firstVariant.price,
3185          });
3186        },
3187        hidePrice: function() {
3188          return this.product && this.product.hidePrice === true;
3189        },
3190        salesModePurchasable: function() {
3191          return !(this.product && this.product.salesModePurchasable === false);
3192        },
3193         // - 任選折扣/紅配綠:「選擇」只是加進試算清單,不會直接下單,故只擋藏價商品
3194        // - 其他情境(商品頁、群組頁、多層級分類、搜尋、首頁商品區塊):不可購買(含藏價)就整組收掉
3195        showPurchaseControls: function() {
3196          if (this.isNnCollection || this.isBundleDiscount) {
3197            return !this.hidePrice;
3198          }
3199          return this.salesModePurchasable;
3200        },
3201        variantPrice: function() {
3202          if (this.hidePrice) {
3203            return '';
3204          }
3205          var from = liquidHelper.defaultCurrency;
3206          if (this.currentVariant) {
3207            return moneySymbol(this.currentVariant.price, from);
3208          }
3209          if (this.product.variants.length === 1) {
3210            return moneySymbol(this.firstVariant.price, from);
3211          }
3212
3213          var minPrice = this.priceStats.minPrice;
3214          var maxPrice = this.priceStats.maxPrice;
3215
3216          if (minPrice !== maxPrice && (!this.hasVariantPriceRangePlugin || this.isDisplayPriceRange)) {
3217            this.isDiscountPrice = false;
3218            return moneySymbol(minPrice, from) + '~' + moneySymbol(maxPrice, from);
3219          } else {
3220            return moneySymbol(minPrice, from);
3221          }
3222        },
3223        marketPrice: function() {
3224          if (this.hidePrice) {
3225            this.isDiscountPrice = false;
3226            return;
3227          }
3228          var from = liquidHelper.defaultCurrency;
3229          if (this.currentVariant) {
3230            this.isDiscountPrice = false;
3231            if (this.currentVariant.compareAtPrice && this.currentVariant.compareAtPrice > this.currentVariant.price) {
3232              this.isDiscountPrice = true;
3233              return moneySymbol(this.currentVariant.compareAtPrice, from);
3234            }
3235          } else {
3236            if (!_.includes(this.variantPrice, '~')) {
3237              const price =  Number(this.variantPrice.replace(/[^0-9.
3237-]/g, ""))
3238              // 未選擇款式也不顯示區間時,顯示第一個最便宜的款式的定價
3239              if (this.firstCheapestVariant.compareAtPrice && this.firstCheapestVariant.compareAtPrice > price){
3240                this.isDiscountPrice = true;
3241                return moneySymbol(this.firstCheapestVariant.compareAtPrice, from);
3242              }
3243              // 未選擇款式時要改回一般價格顏色
3244              this.isDiscountPrice = false;
3245            }
3246          }
3247        },
3248        isShowDropdownList: function() {
3249          if (this.product.options.length > 0) {
3250            return true;
3251          }
3252          return this.product.variants.length > 1
3253        },
3254        priceTitleTag: function() {
3255          return this.marketPrice
3256            ? getDiscountPriceName()
3257            : getDiscountPriceSuggestionName();
3258        },
3259        isHideAddCartBtn: function() {
3260          if (this.addCartText === '已售完') {
3261            return true;
3262          }
3263          return false;
3264        },
3265        isSecondaryBtn: function() {
3266          if (this.addCartText === '聯絡店家') {
3267            return true;
3268          }
3269          return false;
3270        },
3271        variantsMaxUsableBonus: function() {
3272          var variants = this.product.variants;
3273          var maxUsableBonusArray = variants.map(function(item) {
3274            return item.maxUsableBonus
3275          });
3276          return Math.max.apply(null, maxUsableBonusArray);
3277        },
3278        bonusToPrice: function() {
3279          const bonus = this.currentVariant
3280            ? this.currentVariant.maxUsableBonus
3281            : this.maxUsableBonus;
3282          const price = Math.floor(bonus / window.liquidHelper.conversionBonus);
3283          const priceWithMoney = window.themeHelper.productDisplayCurrencyBlock(price);
3284          return "(約等於 value )".replace('value', priceWithMoney);
3285        },
3286        isMobileSize: function() {
3287          return window.innerWidth <= 580
3288        },
3289        limitBuyText: function () {
3290          const minCount = this.product.minBuy;
3291          const maxCount = this.product.limitBuy;
3292          if (minCount > 0 && maxCount > 0) {
3293            return '此商品每筆訂單最少需購買 minCount 件,最多可購買 maxCount 件'.replace('minCount', minCount).replace('maxCount', maxCount);
3294          }
3295          if (minCount > 0) {
3296            return '此商品每筆訂單最少需購買 minCount 件'.replace('minCount', minCount);
3297          }
3298          if (maxCount > 0) {
3299            return '此商品每筆訂單最多可購買 maxCount 件'.replace('maxCount', maxCount);
3300          }
3301          return '';
3302        }
3303      },
3304      methods: {
3305        onClickSelectModal: function(objData, selectOptionStr) {
3306          this.isModalSelectShow = true;
3307          this.modalOption = objData;
3308          this.selectOption = selectOptionStr
3309          this.selectCurrentStr = this.currentOption && (String(this.currentOption[selectOptionStr]) || null)
3310        },
3311        onChangeModalSelect: function(flag, isSelect) {
3312          if(!isSelect){
3313            this.setOption(this.selectOption,this.selectCurrentStr,this.modalOption.types)
3314          }
3315          this.isModalSelectShow = flag;
3316        },
3317        setOption: function(optionKey, type, dataArr) {
3318          let flag = true
3319          dataArr.forEach(item => {
3320            if (item.name === type) {
3321              flag = item.isValid
3322            }
3323          })
3324          if (flag) {
3325            this.toggleCurrentOption(optionKey, type)
3326          }
3327        },
3328        addToWishListEvent: function() {
3329          try {
3330            if (appMarketAddToWishListEvent) {
3331              var product = this.product;
3332              var currentVariant = this.currentVariant
3333              var element = $(`.btn[data-id=${product.id}]`);
3334              var index;
3335              var listName;
3336              if (element) {
3337                index = element.data('position')
3338                listName = element.data('list')
3339              }
3340              // sku_properties:選中款式的 option pairs(當前語系),類型名 zip 值
3341              var optionValues = [currentVariant.option1, currentVariant.option2, currentVariant.option3];
3342              var properties = [];
3343              (product.options || []).forEach(function(optionName, i) {
3344                if (optionName && optionValues[i]) {
3345                  properties.push({ name: optionName, value: optionValues[i] });
3346                }
3347              });
3348              var dataSet = {
3349                name: product.title,
3350                category: product.productType,
3351                categories: (this.categories && this.categories.length) ? this.categories : (categoryLevels.length ? categoryLevels : (product.id === pageMainProductId ? productCategoryLevels : undefined)),
3352                sku: currentVariant.sku,
3353                price: currentVariant.price,
3354                compare_at_price: currentVariant.compareAtPrice,
3355                properties: properties,
3356                quantity: currentVariant.inventoryQuantity,
3357                variant: currentVariant.title,
3358                listName: listName || null,
3359                productId: product.id,
3360                variantId: currentVariant.id,
3361                index: Number(index) || 0,
3362              }
3363              appMarketAddToWishListEvent(dataSet)
3364            }
3365          } catch (e) {
3366            console.error(e)
3367          }
3368        },
3369        addWishList: function() {
3370          if (this.currentVariant === null) {
3371            window.msg('請選擇商品款式', 'warning').show();
3372            return;
3373          }
3374          var productVariantId = this.currentVariant.id;
3375          var addToWishListEvent = this.addToWishListEvent
3376          $.ajax({
3377            method: 'POST',
3378            url: '/tracking_items',
3379            dataType: 'json',
3380            data: {
3381              product_variant_id: productVariantId
3382            },
3383            success: function(response) {
3384              if (response.message) {
3385                window.msg(response.message, 'success').show();
3386                addToWishListEvent()
3387              }
3388
3389              if (response.error) {
3390                window.msg(response.error, 'error').show();
3391
3392              }
3393              if (response.info) {
3394                window.msg(response.info, 'info').show();
3395              }
3396              if (response.success === false) {
3397                if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) {
3398                  window.location = "/" + window.liquidHelper.language.handle + "/account/login";
3399                } else {
3400                  window.location = "/account/login";
3401                }
3402              }
3403            }
3404          });
3405        },
3406        setChoose: function(currentVariant) {
3407          this.maxUsableBonus = 0;
3408          var quantity = 1;
3409          var cartItem = null;
3410          if (!this.isNnCollection && this.cartItems) {
3411            cartItem = this.normalGetChoosenItem(currentVariant);
3412          }
3413          if (this.isNnCollection) {
3414            cartItem = this.nnCollectionGetChoosenItem(currentVariant);
3415          }
3416          this.isChoose = !! cartItem;
3417          if (this.isNewNnCollection) {
3418            return
3419          }
3420          this.quantity = cartItem
3421            ? cartItem.quantity
3422            : this.quantity;
3423
3424          // product modal 聯絡店家情境
3425          if (currentVariant) {
3426            var photoIndex = 0;
3427            if (! currentVariant.imgUrl) {
3428              currentVariant.imgUrl = this.swiperPhotos.length > 0
3429                ? (this.swiperPhotos[photoIndex] && this.swiperPhotos[photoIndex].large)
3430                : this.featuredImage.large;
3431            }
3432            currentVariant.productTitle = this.product.title + ' - ' + this.currentVariant.title;
3433          }
3434        },
3435        normalGetChoosenItem: function(currentVariant) {
3436          return this.cartItems.find(function(cartItem) {
3437            return currentVariant && cartItem.id === currentVariant.id;
3438          });
3439        },
3440        nnCollectionGetChoosenItem: function(currentVariant) {
3441          var isSelected = null;
3442          if (! currentVariant) {
3443            return isSelected;
3444          }
3445          if (this.isNewNnCollection) {
3446            var cart = store.get(`SpecialCollectionCart_${this.collectionId}`);
3447            isSelected = cart && cart.find((item) => item.variant_id == currentVariant.id) || null;
3448          } else {
3449            store.each(function(value, key) {
3450              var productId = _.includes(key, 'Pro' + currentVariant.productId);
3451              var variantID = _.includes(key, 'Var' + currentVariant.id);
3452              if (productId && variantID) {
3453                isSelected = store.get(key);
3454              }
3455            });
3456          }
3457
3458          return isSelected;
3459        },
3460        // get product detail
3461        getProductDetail: function() {
3462          var self = this;
3463
3464          $.ajax({
3465            url: self.productUrl + '.json',
3466            type: 'GET',
3467            timeout: 30000,
3468            beforeSend: function() {
3469              self.isLoading = true;
3470            },
3471            error: function(xhr) {
3472              self.closeModal();
3473              if (xhr.status === 429) {
3474                window.showAddCartRateLimitModal(5);
3475                return;
3476              }
3477              window.msg('網路連線異常,請重新整理', 'error').show();
3478            }
3479          }).done(function(data) {
3480            if (data.id) {
3481              var productData = [themeHelper.toCamelCase(data)];
3482              self.product = themeHelper.priceWithDiscount(productData, liquidHelper.hasPriceWithDiscountPlugin)[0];
3483              self.maxUsableBonus = self.variantsMaxUsableBonus;
3484              if (self.product.variants.length === 1 || liquidHelper.isFirstVariantSelected || self.selectedVariantId) {
3485                self.currentVariant = self.firstValidVariant;
3486                // 如果已經自選商品,則商品頁下滑加入購物車顯示自選商品
3487                if (self.selectedVariantId) {
3488                  self.currentVariant = self.selectedValidVariant;
3489                }
3490                if (self.currentVariant) {
3491                  self.setChoose(self.currentVariant);
3492                  self.setDefaultOption();
3493                }
3494              }
3495              if (self.displayProductDiscountsList) {
3496                self.setUpDiscountsTag(data);
3497              }
3498              self.isLoading = false;
3499              if (self.product && self.product.variants) {
3500                self.product.variants.forEach(function(discountedVariant) {
3501                  var rawVariant = data.variants.find(function(v) { return v.id === discountedVariant.id; });
3502                  if (rawVariant) { rawVariant.price = discountedVariant.price; }
3503                });
3504              }
3505              viewItem && viewItem(data, { collectionId: '', collectionName: null, categories: (self.categories && self.categories.length) ? self.categories : (categoryLevels.length ? categoryLevels : (data.id === pageMainProductId ? productCategoryLevels : undefined)) });
3506
3507              
3508            } else {
3509              window.msg('網路連線異常,請重新整理', 'error').show();
3510              self.closeModal()
3511            }
3512          })
3513        },
3514        // product image btn
3515        photoOnChange: function(photoIndex, isVariantReposition) {
3516          var visiblePhotos = (this.currentVariant && this.currentVariant.photos.length)
3517            ? this.currentVariant.photos
3518            : this.product.photos.map(function(p) { return p.photo; });
3519          var result = themeHelper.buildNavigateItemImagePayload(this._navState, {
3520            product: this.product,
3521            currentVariant: this.currentVariant,
3522            visiblePhotos: visiblePhotos,
3523            slideIndex: photoIndex,
3524            videoOffset: this.firstImageIndex,
3525          });
3526          this._navState = result.nextState;
3527          if (result.payload && !isVariantReposition) {
3528            window.navigateItemImage(result.payload);
3529          }
3530          this.currentImageIndex = photoIndex;
3531        },
3532        toggleCurrentOption: function(key, value) {
3533          this.currentOption[key] =
3534            (this.currentOption[key] === value || value === 'null') ? null : value;
3535          var variantIndex = this.getVariantIndex();
3536          if (variantIndex !== -1) {
3537            this.currentVariant = this.product.variants[variantIndex];
3538          } else {
3539            this.currentVariant = null;
3540          }
3541          this.setChoose(this.product.variants[variantIndex]);
3542          if (this.currentOption[key] !== null) {
3543            var optionIndex = parseInt(key.replace('option', '')) - 1;
3544            appStoreSelectItemEvent(this.product, this.product.options[optionIndex], this.currentOption[key], this.currentVariant);
3545          }
3546        },
3547        toggleNotification: function() {
3548          var self = this;
3549          var variantId = this.currentVariant.id;
3550
3551          $.ajax({
3552            url: '/toggle_pv_notification',
3553            method: 'POST',
3554            dataType: 'json',
3555            data: {
3556              product_variant_id: variantId
3557            },
3558            success: function(response) {
3559              self.variantNotifications[variantId] = response.notice;
3560              window.msg(response.message, "success").show();
3561            },
3562            error: function(xhr) {
3563              var response = xhr.responseJSON;
3564              var msg = response && response.error || "網路連線異常,請重新整理";
3565              window.msg(msg, "error").show();
3566            }
3567          })
3568        },
3569        getOptionImageIndex: function(index) {
3570          this.currentImageIndex = index;
3571        },
3572        quantityDecrease: function() {
3573          if (this.cartItem) {
3574            themeHelper.EventBus.$emit('quantityDecrease', this.cartItem, false);
3575            this.quantity = this.cartItem.quantity
3576          } else {
3577            window.msg("請選擇商品款式", 'warning').show();
3578          }
3579        },
3580        quantityIncrease: function() {
3581          if (this.cartItem) {
3582            themeHelper.EventBus.$emit('quantityIncrease', this.cartItem, false);
3583            this.quantity = this.cartItem.quantity
3584          } else {
3585            window.msg("請選擇商品款式", 'warning').show();
3586          }
3587        },
3588        quantityChange: function(el) {
3589          if (this.cartItem) {
3590            themeHelper.EventBus.$emit('quantityChange', parseInt(el.target.value), this.cartItem, false);
3591            this.quantity = this.cartItem.quantity;
3592            el.target.value = this.cartItem.quantity;
3593          } else {
3594            window.msg("請選擇商品款式", 'warning').show();
3595          }
3596        },
3597        addProduct: function() {
3598          if (this.addCartText === '聯絡店家') {
3599            $('#messagebuy-Modal').data('variant', this.currentVariant);
3600            $('#messagebuy-Modal').modal('show');
3601            $('#messagebuy-Modal').css("background-color", "rgba(0, 0, 0, .6)");
3602          } else if (
3603            this.addCartText === '已登記補貨通知' ||
3604            this.addCartText === '已售完,貨到通知我'
3605          ) {
3606              this.toggleNotification();
3607          } else {
3608            if (this.cartItem) {
3609              try {
3610                if (this.isChoose) {
3611                  themeHelper.EventBus.$emit('updateStore', 'update', this.cartItem, this.callBack)
3612                } else {
3613                  themeHelper.EventBus.$emit('updateStore', 'add', this.cartItem, this.callBack)
3614                }
3615
3616                this.adding = true;
3617                this.closeModal();
3618              } catch (e) {
3619                window.msg("商品款式異常", 'error').show();
3620              }
3621            } else {
3622              window.msg("請選擇商品款式", 'warning').show();
3623            }
3624          }
3625        },
3626        closeModal: function() {
3627          themeHelper.EventBus.$emit('closeProductModal');
3628        },
3629        setDefaultOption: function() {
3630          var self = this;
3631          Object.keys(self.currentOption).map(function(optionKey) {
3632            self.currentOption[optionKey] = self.currentVariant[optionKey];
3633          });
3634        },
3635        getVariantIndex: function() {
3636          var self = this;
3637          return self.product.variants.findIndex(function(variant, index) {
3638            var isVariant = true;
3639            Object.keys(self.currentOption).forEach(function(option) {
3640              if (variant[option] !== self.currentOption[option]) {
3641                isVariant = false;
3642              }
3643            });
3644            return isVariant;
3645          });
3646        },
3647
3648        // 篩選重複品項
3649        getUniqueVariant: function(variants) {
3650          return variants.filter(function(value, index, self) {
3651            return self.indexOf(value) === index;
3652          });
3653        },
3654        groupBy(xs, key) {
3655          return xs.reduce(function(rv, x) {
3656            (rv[x[key]] = rv[x[key]] || []).push(x);
3657            return rv;
3658          }, {});
3659        },
3660        setUpDiscountsTag(data) {
3661          var self = this;
3662          var languagePrefix = '/' + ((window.shopScriptHelper && window.shopScriptHelper.i18nLocale) || 'zh-TW');
3663          $.ajax({
3664            url: languagePrefix + self.productUrl + '/discounts_list',
3665            method: 'GET',
3666            success: function(result) {
3667              if (result.length > 0) {
3668                var discounts_list = self.groupBy(result, 'campaign_type');
3669                self.discountsList = discounts_list;
3670              } else {
3671                self.discountsList = null;
3672              }
3673            }
3674          });
3675        },
3676        getOptions: function(optionKey, optionTypes) {
3677          var self = this;
3678          return optionTypes.map(function(optionType, index) {
3679            var isValid = true;
3680
3681            // 選出包含目前type的variant
3682            var matchVariants = self.product.variants.filter(function(variant) {
3683              return variant[optionKey] === optionType;
3684            });
3685
3686            // 篩選已勾選type
3687            Object.keys(self.currentOption).forEach(function(currentOptionKey) {
3688              if (currentOptionKey !== optionKey) {
3689                matchVariants = matchVariants.filter(function(variant) {
3690                  if (self.currentOption[currentOptionKey]) {
3691                    return variant[currentOptionKey] === self.currentOption[currentOptionKey]
3692                  } else {
3693                    return true;
3694                  }
3695                });
3696              }
3697            });
3698            if (matchVariants.length === 0) {
3699              isValid = false;
3700            }
3701            if (! self.isEmptyClickable) {
3702              isValid = false;
3703              matchVariants.find(function(item) {
3704                if (item.inventoryQuantity === null || item.inventoryQuantity > 0 || item.inventoryPolicy === 'continue') {
3705                  isValid = true;
3706                }
3707              });
3708            }
3709            return {name: optionType, isValid: isValid}
3710          });
3711        }
3712      }
3713    };
3714  });
3715</script>
3715
3716
3717<!-- cyb_snippet _product_modal_js end -->
3718
3719<!-- cyb_snippet components/product_modal/product_modal end -->
3720
3721<!-- cyb_snippet messagebuy_modal start -->
3722
3723<div class="modal" id="messagebuy-Modal" tabindex="-1" role="dialog" aria-hidden="true">
3724  <div class="modal-dialog modal-dialog-centered" role="document">
3725    <div class="modal-content">
3726      <div class="modal-header">
3727        <p class="modal-title qk-fw--500" style="font-size: 1.25rem;">商品庫存不足留言</p>
3728        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
3729          <span aria-hidden="true">&times;</span>
3730        </button>
3731      </div>
3732      <div class="modal-body">
3733        <form class="form-horizontal" id="message-form">
3734          <input type="hidden" name="authenticity_token" id="authenticity_token" value="pnuDS6HNkkZ5Wb_TLvCgfpXuLXQ97fdRKfjY-AQ1XVL814mBukWY3JGKl9jliVJaK8joIcs8Z7NaJB_IKM9dTw" autocomplete="off" />
3735          <div class="product_link img-flex">
3736            <img src="" alt="product img" class="product_img" width="300" height="300">
3737          </div>
3738          <p class="product_name qk-fw--500 qk-mg_t--05 qk-mg_b--05" style="font-size: 1.25rem;"></p>
3739          <div class="form-group">
3740            <input type="email" class="form-control" id="contact_us_email" name="contact[email]" placeholder="Email"  data-error="這不是有效的email" required>
3741            <input type="email" class="form-control" id="repeat-email" name="content[email]" placeholder="Email">
3742            <div class="help-block with-errors"></div>
3743          </div>
3744          <div class="form-group">
3745            <textarea type="text" class="form-control" id="message_body" name="contact[body]" placeholder="留言給店家" data-error="請留下想對我們說的話喔!" rows="4" required></textarea>
3746            <div class="help-block with-errors"></div>
3747          </div>
3748          <div id="messagebuy-captcha-mount" class="qk-mg_b--05"></div>
3749          <button type="submit" class="qk-btn qk-btn--primary qk-btn--lg qk-w--100 btn-submit-message">送出</button>
3750        </form>
3751      </div>
3752    </div>
3753  </div>
3754</div>
3755
3756
3757
3758
3759<script>
3760  $(document).ready(function(){
3761    // setting modal
3762    var product_title, product_img, variant, variant_name, variant_sku, variant_price
3763    var flowCaptcha = {"provider_type":null,"site_key":null};
3764    var captchaSitekey = flowCaptcha.site_key;
3765    var captchaProviderType = flowCaptcha.provider_type;
3766    var captcha = null;
3767
3768    $('#repeat-email').hide();
3769
3770    $('#messagebuy-Modal').on('show.bs.modal', function(){
3771      var currentVariant = $('#messagebuy-Modal').data('variant');
3772
3773      if (currentVariant) {
3774        // product modal 聯絡店家
3775        $('#messagebuy-Modal').find('.product_name').html(currentVariant.productTitle);
3776        $('#messagebuy-Modal').find('.product_img').attr('src', currentVariant.imgUrl);
3777        product_title = currentVariant.productTitle;
3778        variant_sku = currentVariant.sku;
3779        variant_name = currentVariant.title;
3780        variant_price = parseInt(currentVariant.price);
3781      } else {
3782        product_title = $('#product .product_info .product_title').text()
3783        // 是否顯示色票
3784        var isDisplayImagesColor = "false";
3785        if (isDisplayImagesColor === "true") {
3786          product_img = $('#photo_with_images_color').attr('src');
3787        } else {
3788          product_img   = $('#product .product_info .thumb .active img').attr('src')
3789        }
3790        variant       = $('#product .product_variant').find(':selected')
3791        variant_name  = $(variant).data('name');
3792        variant_sku   = variant.data('sku');
3793        variant_price = variant.data('price');
3794        $('#messagebuy-Modal').find('.product_name').text(product_title)
3795        $('#messagebuy-Modal').find('.product_img').attr('src', product_img)
3796      }
3797    })
3798
3799    var isCaptchaReady = true;
3800    var isSubmitting = false;
3801
3802    function refreshSubmitState() {
3803
3804      var isDisabled = isSubmitting || !isCaptchaReady;
3805      $('#message-form .btn-submit-message')
3806        .prop('disabled', isDisabled)
3807        .toggleClass('qk-btn--disabled', isDisabled);
3808    }
3809
3810    function setSubmitting(submitting) {
3811      isSubmitting = submitting;
3812      refreshSubmitState();
3813    }
3814
3815    function setCaptchaReady(ready) {
3816      isCaptchaReady = ready;
3817      refreshSubmitState();
3818    }
3819
3820    function showErrorMsg(message) {
3821      window.msg(message || "請稍後再試", 'error').show();
3822    }
3823
3824    function mountCaptcha() {
3825      if (!captchaSitekey || !window.renderCaptcha) {
3826        return null;
3827      }
3828      return window.renderCaptcha('#messagebuy-captcha-mount', {
3829        providerType: captchaProviderType,
3830        sitekey: captchaSitekey,
3831        size: 'invisible',
3832        onVerify: function (token) {
3833          sendMessage(token);
3834        },
3835        onError: function (message) {
3836          setSubmitting(false);
3837          showErrorMsg(message);
3838        },
3839        onReadyChange: function (ready) {
3840          setCaptchaReady(ready);
3841        },
3842      });
3843    }
3844
3845    function sendMessage(captchaToken) {
3846      setSubmitting(true);
3847
3848      var csrf_token = $('meta[name=csrf-token]').attr('content');
3849      var message_email = $('#message-form input[name="contact[email]"]').val();
3850      var message_body  = $('#message-form textarea[name="contact[body]"]').val();
3851      var variant_info  = "\n (商品標題:" + product_title + " ,(商品sku:" + variant_sku + " ,商品樣式:" + variant_name + " ,商品價格:" + variant_price + ')';
3852      if(!variant_sku || !variant_name || !variant_price){
3853        variant_info = "\n (商品標題:" + product_title + ", 未選擇商品 )"
3854      }
3855      message_body += variant_info
3856
3857      var headers = {};
3858      if (csrf_token && csrf_token !== '') {
3859        headers['X-CSRF-TOKEN'] = csrf_token;
3860      }
3861
3862      $.ajax({
3863        method: 'POST',
3864        url: '/contact',
3865        headers: headers,
3866        data: {
3867          contact: { email: message_email, body: message_body },
3868          captcha_token: captchaToken || '',
3869        },
3870        dataType: 'json'
3871      }).done(function(){
3872        $('#message-form input[name="contact[email]"]').val('');
3873        $('#message-form textarea[name="contact[body]"]').val('');
3874
3875        window.msg("送出成功", 'success').show()
3876        $('#messagebuy-Modal').modal('hide');
3877        themeHelper.EventBus.$emit('closeProductModal');
3878      }).fail(function(){
3879        showErrorMsg();
3880      }).always(function(){
3881        setSubmitting(false);
3882      });
3883    }
3884
3885    captcha = mountCaptcha();
3886
3887    $('#message-form').on('submit', function (e) {
3888      e.preventDefault()
3889
3890      var robot_check = $('#repeat-email').val();
3891      if(robot_check)
3892        return;
3893
3894      if (this.checkValidity && this.checkValidity() === false) {
3895        this.classList.add('was-validated');
3896        return;
3897      }
3898
3899      if (!captchaSitekey) {
3900        sendMessage('');
3901        return;
3902      }
3903
3904      if (!captcha) {
3905        showErrorMsg();
3906        return;
3907      }
3908
3909      captcha.execute();
3910    })
3911  })
3912</script>
3912
3913
3914
3915<!-- cyb_snippet messagebuy_modal end -->
3916<!-- cyb_snippet components/rate_limit_modal start -->
3917<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/rate_limit_modal-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
3918
3919<div class="modal fade" id="rate-limit-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
3920  <div class="modal-dialog modal-dialog-centered" role="document">
3921    <div class="modal-content">
3922      <div class="modal-body">
3923        <div class="qk-text--default_dark rate-limit-text">
3924          <p id="rate-limit-title">目前搶購人潮眾多,請耐心等候</p>
3925          <p class="qk-fs--body qk-fw--500 rate-limit-message">
3926            <span class="qk-text--error" id="rate-limit-countdown"></span>
3927            <span id="rate-limit-desc"></span>
3928          </p>
3929          <p class="qk-fs--body qk-fw--500 rate-limit-message" id="rate-limit-warn">若離開此頁面,可能會延長等待時間。</p>
3930        </div>
3931        <button id="rate-limit-btn" class="btn qk-btn qk-btn--primary" disabled>重新進入商品頁</button>
3932      </div>
3933    </div>
3934  </div>
3935</div>
3936
3937<script>
3938  window.showRateLimitModal = function(countdownSec) {
3939    var countdown = countdownSec || 5;
3940    var $modal = $('#rate-limit-modal');
3941    var $btn = $modal.find('#rate-limit-btn');
3942    var $countdownEl = $modal.find('#rate-limit-countdown');
3943
3944    $btn.show();
3945    $modal.find('#rate-limit-desc').text(language["product_rate_limit_desc"]);
3946    $countdownEl.text(countdown);
3947    $btn.prop('disabled', true);
3948    $modal.modal('show');
3949
3950    var timer = setInterval(function() {
3951      countdown--;
3952      $countdownEl.text(countdown);
3953      if (countdown <= 0) {
3954        clearInterval(timer);
3955        $btn.prop('disabled', false);
3956      }
3957    }, 1000);
3958
3959    $btn.off('click').on('click', function() {
3960      location.reload();
3961    });
3962  }
3963
3964  window.showAddCartRateLimitModal = function(countdownSec) {
3965    var countdown = countdownSec || 5;
3966    var $modal = $('#rate-limit-modal');
3967    var $countdownEl = $modal.find('#rate-limit-countdown');
3968
3969    $modal.find('#rate-limit-btn').hide();
3970    $modal.find('#rate-limit-desc').text(language["addcart_rate_limit_desc"]);
3971    $countdownEl.text(countdown);
3972    $modal.modal('show');
3973
3974    var timer = setInterval(function() {
3975      countdown--;
3976      $countdownEl.text(countdown);
3977      if (countdown <= 0) {
3978        clearInterval(timer);
3979        $modal.modal('hide');
3980      }
3981    }, 1000);
3982  }
3983</script>
3983
3984
3985<!-- cyb_snippet components/rate_limit_modal end -->
3986
3987<script>
3988  $(document).ready(function() {
3989    const shouldSkipQuantityCheck = false;
3990    const newAddCartModalApp = new window.themeHelper.LiquidVueHandler({
3991      componentNames: Object.keys(window.themeHelper.productModalComponents),
3992      mountSelector: '#new-addcart-modal',
3993      autoMount: false,
3994    });
3995
3996    newAddCartModalApp.createApp({
3997      el: '#new-addcart-modal',
3998      delimiters: ['${', '}'],
3999      data() {
4000        return {
4001          collectionId: 0,
4002          categories: [],
4003          color: '', // unused
4004          isCollection: true,
4005          productQuantity: 0,
4006          onlyDescription: false,
4007          showProductModal: false,
4008          popProductUrl: '',
4009          loading: false,
4010        };
4011      },
4012      mounted: function() {
4013        themeHelper.EventBus.$on('closeProductModal',this.closeProductModal);
4014        themeHelper.EventBus.$on('updateStore', this.addProduct);
4015        themeHelper.EventBus.$on('quantityDecrease', this.quantityDecrease);
4016        themeHelper.EventBus.$on('quantityIncrease', this.quantityIncrease);
4017        themeHelper.EventBus.$on('quantityChange', this.quantityChange);
4018      },
4019      methods: {
4020        addProduct: function(actionType, productData, checkoutAddToCartCallback){
4021          var self = this;
4022          var pageViewId = window.CYBERBIZ && window.CYBERBIZ.dis && window.CYBERBIZ.dis.pageViewId;
4023          $.ajax({
4024            method: 'POST',
4025            url: '/cart/add',
4026            headers: pageViewId ? { 'X-Cyb-Page-View-Id': pageViewId } : {},
4027            data: {
4028              id: productData.id,
4029              quantity: productData.quantity,
4030            },
4031            dataType: 'json',
4032            beforeSend: function() {
4033              self.loading = true;
4034              themeHelper.ajaxLoadingMsg('loading');
4035              $('.shopcart').dropdown('hide')
4036              $('.global-cart-count').hide();
4037              $('.global-cart-loading').show();
4038              $('.global-cart-loading').html('<i class="fa fa-spinner fa-pulse" style="vertical-align: middle;"></i>');
4039            },
4040            error: function(xhr) {
4041              $('.global-cart-loading').hide();
4042              $('.global-cart-count').show();
4043              self.loading = false;
4044              if (xhr.status === 429) {
4045                themeHelper.ajaxLoadingMsg('hide', 0);
4046                self.closeProductModal();
4047                window.showAddCartRateLimitModal(5);
4048                return;
4049              }
4050              themeHelper.ajaxLoadingMsg('fail', 2000);
4051            }
4052          }).done(function(data, status, request){
4053            // product modal 立即購買按鈕
4054            window.sendAddToCartEvent && sendAddToCartEvent({
4055              price: productData.price,
4056              quantity: productData.quantity,
4057              id: productData.product.id,
4058              name: productData.product.title,
4059              category: productData.product.productType,
4060              brand: productData.product.vendor,
4061              qc: productData.variant.qc,
4062              variant: {
4063                id: productData.variant.id,
4064                title: productData.variant.title,
4065                sku: productData.variant.sku,
4066                price: productData.variant.price,
4067                qc: productData.variant.qc,
4068              },
4069              position: "商品彈出視窗",
4070              request,
4071            })
4072            if (self.isQuickBuy) {
4073              if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) {
4074                window.location = "/" + window.liquidHelper.language.handle + "/cart";
4075              } else {
4076                window.location = "/cart";
4077              }
4078            } else {
4079              themeHelper.ajaxLoadingMsg('success');
4080              pullNavCart();
4081              $('.shopcart').dropdown('show')
4082              $('.global-cart-loading').hide();
4083              self.loading = false;
4084            }
4085            if(typeof checkoutAddToCartCallback === 'function'){
4086              var callbackData = {
4087                id: productData.id,
4088                quantity: productData.quantity,
4089                title: productData.product ? productData.product.title : productData.title || ''
4090              };
4091              checkoutAddToCartCallback(callbackData)
4092            }
4093            peh.emit('product:add_to_cart', [{
4094              variantId: productData.id,
4095              quantity: productData.quantity
4096            }], self.collectionId);
4097          }).fail(function(e){
4098            if (e.status === 429) {
4099              return;
4100            }
4101            let err_msg = e.responseJSON.err_msg;
4102            err_msg && err_msg.length > 0 ?
4103              window.msg(e.responseJSON.err_msg, 'warning').show():
4104              window.msg("加入購物車有誤,請重新嘗試", 'warning').show();
4105          })
4106        },
4107        quantityDecrease: function(cartItem, isAdded){
4108          if (cartItem.quantity > 1) {
4109            cartItem.quantity -= 1;
4110          } else {
4111            window.msg("數量不得為低於 1", 'warning').show();
4112          }
4113        },
4114        quantityIncrease: function(cartItem, isAdded){
4115          const limitQuantity = cartItem.variant.inventoryQuantity;
4116          const limitBuy = cartItem.product.limitBuy
4117          if (limitBuy && cartItem.quantity >= limitBuy) {
4118            product_limit_buy = "此商品限購 limitBuy 件".replace('limitBuy', limitBuy)
4119            window.msg(product_limit_buy, 'warning').show();
4120            return;
4121          } else if (cartItem.quantity >= liquidHelper.cartQuantityLimit) {
4122            window.msg("數量超過購買上限", 'warning').show();
4123          } else if ( cartItem.quantity < limitQuantity || limitQuantity === null ||
4124            cartItem.variant.inventoryPolicy == "continue" || shouldSkipQuantityCheck) {
4125            cartItem.quantity += 1;
4126          } else {
4127            this.showInventoryMessage(limitQuantity);
4128          }
4129        },
4130        quantityChange: function(quantity, cartItem, isAdded){
4131          const limitBuy = cartItem.product.limitBuy
4132          var limitQuantity = cartItem.variant.inventoryQuantity;
4133          var inventoryPolicy = cartItem.variant.inventoryPolicy;
4134          if (Number.isInteger(quantity)) {
4135            if (quantity >= 1) {
4136              if (limitBuy && quantity >= limitBuy) {
4137                product_limit_buy = "此商品限購 limitBuy 件".replace('limitBuy', limitBuy)
4138                window.msg(product_limit_buy, 'warning').show();
4139              } else if (quantity > liquidHelper.cartQuantityLimit) {
4140                window.msg("數量超過購買上限", 'warning').show();
4141              } else if (quantity <= limitQuantity || limitQuantity === null || inventoryPolicy == "continue" || shouldSkipQuantityCheck) {
4142                cartItem.quantity = quantity;
4143              } else {
4144                cartItem.quantity = limitQuantity;
4145                this.showInventoryMessage(limitQuantity);
4146              }
4147            } else {
4148              window.msg("數量不得為低於 1", 'warning').show();
4149            }
4150          } else {
4151            window.msg("數量輸入錯誤", 'warning').show();
4152          }
4153        },
4154        popModal: function(productUrl, collectionId, color, isCollection, isShowDescription, isQuickBuy, variantId, checkoutAddToCartCallback, categories){
4155          this.showProductModal = true;
4156          this.collectionId = collectionId;
4157          this.categories = categories || [];
4158          this.popProductUrl = productUrl;
4159          this.color = color || ''; // unused
4160          this.isCollection = isCollection || false;
4161          this.isShowDescription = isShowDescription != false;
4162          this.isQuickBuy = isQuickBuy || false;
4163          this.selectedVariantId = parseInt(variantId) || undefined;
4164          this.checkoutAddToCartCallback = checkoutAddToCartCallback;
4165          document.body.style.overflow = "hidden";
4166        },
4167        closeProductModal: function() {
4168          this.showProductModal = false;
4169          document.body.style.overflow = "";
4170        },
4171        showInventoryMessage: function(inventoryQuantity) {
4172          const stockMessage = "商品庫存剩餘 count 件".replace('count', inventoryQuantity || 0);
4173          window.msg(stockMessage, 'warning').show();
4174        },
4175      }
4176    });
4177
4178    for (const componentName in window.themeHelper.productModalComponents) {
4179      newAddCartModalApp.component(
4180        componentName,
4181        window.themeHelper.productModalComponents[componentName],
4182      );
4183    }
4184
4185    window.new_addcart_modal = newAddCartModalApp.mount();
4186  });
4187</script>
4187
4188
4189<!-- cyb_snippet new_addcart_modal end -->
4190    
4190<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/new_cart-e958d46bfee2e69f.js' type='text/javascript'></script>
4190
4191  
4192</div>
4193
4194    </div>
4195
4196    <!-- Footer -->
4197    
4198
4199
4200
4201
4202
4203
4204<style>
4205  
4206  
4207  @media(min-width: 991px) {
4208    .display_x .left-content > div {
4209      max-width: calc(100% / 2);
4210    }
4211  }
4212</style>
4213
4214<div id="index-recommendation"></div>
4215
4216<footer id="footer" class="qk-fs--body qk-bg--footer_bg">
4217  
4218    
4219    <div class="qk-container display_y">
4220      <div class="footer_content qk-mg--0 qk-display--flex qk-justify--between">
4221        <div class="left-content qk-flex--1">
4222          
4223            
4224              <div class="link-list-container">
4225                
4226                  <p class="footer_title qk-fs--title qk-text--footer_text">關於我們</p>
4227                
4228                <div class="item horizontal qk-text--left">
4229                  <ul class="qk-display--flex qk-flex--wrap">
4230                    
4231                      
4232                        <li class="qk-display--il_bk">
4233                          
4234                            <a
4235                              class="qk-text--footer_text"
4236                              href="/search"
4237                              rel="noopener noreferrer"
4238                              target="_blank">查詢</a>
4239                          
4240                        </li>
4241                      
4242                        <li class="qk-display--il_bk">
4243                          
4244                            <a
4245                              class="qk-text--footer_text"
4246                              href="/pages/about-us"
4247                              rel="noopener noreferrer"
4248                              target="_blank">關於我們</a>
4249                          
4250                        </li>
4251                      
4252                        <li class="qk-display--il_bk">
4253                          
4254                            <a
4255                              class="qk-text--footer_text"
4256                              href="/pages/genuine"
4257                              rel="noopener noreferrer"
4258                              target="_blank">保證正貨</a>
4259                          
4260                        </li>
4261                      
4262                        <li class="qk-display--il_bk">
4263                          
4264                            <a
4265                              class="qk-text--footer_text"
4266                              href="/account/index"
4267                              rel="noopener noreferrer"
4268                              target="_blank">我的帳戶</a>
4269                          
4270                        </li>
4271                      
4272                        <li class="qk-display--il_bk">
4273                          
4274                            <a
4275                              class="qk-text--footer_text"
4276                              href="/pages/refund"
4277                              rel="noopener noreferrer"
4278                              target="_blank">退換貨政策</a>
4279                          
4280                        </li>
4281                      
4282                    
4283                  </ul>
4284                </div>
4285              </div>
4286              
4287          
4288            
4289              <div class="item contact qk-text--left">
4290                
4291                  <p class="footer_title qk-fs--title qk-text--footer_text">聯絡資訊</p>
4292                
4293                <ul>
4294                  
4295                  
4296                  
4297                    <li class="time qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
4298                      <span class="qk-text--footer_text">客服時間:週一到週五 10:00 - 17:30</span>
4299                    </li>
4300                  
4301                  
4302                    <br>
4303                    <li class="mail qk-bd_r--default qk-bd--footer_text qk-cursor--pointer qk-display--il_bk">
4304                      <a class="qk-text--footer_text" href="mailto:[email protected]">信箱:[email protected]</a>
4305                    </li>
4306                  
4307                  
4308                  
4309                </ul>
4310              </div>
4311              
4312          
4313        </div>
4314        <div class="right-content qk-display--flex qk-flex--column">
4315          
4316          <div class="media qk-display--il">
4317            <div class="item social_media qk-h--auto qk-float--l">
4318              <ul>
4319                
4320                  <li class="qk-display--il_bk">
4321                    <a target="_blank" rel="noopener noreferrer" href="https://reurl.cc/mGj0e7">
4322                      <svg
4323                        class="facebook-svg"
4324                        xmlns="http://www.w3.org/2000/svg"
4325                        width="40"
4326                        height="40"
4327                        viewBox="0 0 40 40">
4328                        <path class="qk-svg--footer_text" d="M40 20.1208C40 30.1027 32.6767 38.3778 23.1167 39.8795V25.9409H27.765L28.65 20.1742H23.1167V16.4324C23.1167 14.8541 23.89 13.3174 26.3667 13.3174H28.8817V8.4073C28.8817 8.4073 26.5983 8.01729 24.4167 8.01729C19.86 8.01729 16.8833 10.779 16.8833 15.7774V20.1725H11.8183V25.9393H16.8833V39.8779C7.325 38.3745 0 30.101 0 20.1208C0 9.07564 8.955 0.120483 20 0.120483C31.045 0.120483 40 9.07398 40 20.1208Z" />
4329                      </svg>
4330                    </a>
4331                  </li>
4332                
4333                
4334                
4335                  <li class="qk-display--il_bk">
4336                    <a target="_blank" rel="noopener noreferrer" href="https://lin.ee/W87riD8">
4337                      <svg
4338                        class="line-svg"
4339                        xmlns="http://www.w3.org/2000/svg"
4340                        width="40"
4341                        height="40"
4342                        viewBox="0 0 40 40">
4343                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
4344                        <path class="qk-svg--footer_bg" d="M32.5946 18.2214C32.5946 12.5857 26.9449 8 20.0002 8C13.0555 8 7.40576 12.5857 7.40576 18.2214C7.40576 23.2743 11.8873 27.5053 17.9396 28.3048C18.3506 28.392 18.908 28.575 19.0487 28.9269C19.1754 29.245 19.1303 29.7433 19.0881 30.0642C19.0881 30.0642 18.9417 30.9537 18.908 31.1423C18.8517 31.4604 18.6546 32.3866 20.0002 31.8207C21.343 31.2549 27.2545 27.5503 29.895 24.5101C31.7191 22.5058 32.5946 20.4762 32.5946 18.2214Z" />
4345                        <path class="qk-svg--footer_text" d="M17.4413 15.4965H16.5574C16.4223 15.4965 16.3125 15.6062 16.3125 15.7414V21.2279C16.3125 21.363 16.4223 21.4728 16.5574 21.4728H17.4413C17.5764 21.4728 17.6862 21.363 17.6862 21.2279V15.7414C17.6862 15.6062 17.5764 15.4965 17.4413 15.4965Z" />
4346                        <path class="qk-svg--footer_text" d="M23.5219 15.4965H22.638C22.5028 15.4965 22.3931 15.6063 22.3931 15.7414V19.0012L19.8792 15.6063C19.8736 15.5978 19.868 15.5894 19.8595 15.5809C19.8595 15.5809 19.8595 15.5809 19.8595 15.5781C19.8539 15.5725 19.8483 15.5668 19.8455 15.564C19.8426 15.564 19.8426 15.5612 19.8398 15.5584C19.8342 15.5556 19.8314 15.55 19.8258 15.5471C19.8229 15.5443 19.8229 15.5443 19.8201 15.5415C19.8173 15.5387 19.8117 15.5359 19.8089 15.5331C19.8061 15.5303 19.8032 15.5303 19.8004 15.5274C19.7948 15.5246 19.792 15.5218 19.7863 15.519C19.7835 15.519 19.7807 15.5162 19.7779 15.5162C19.7723 15.5134 19.7695 15.5105 19.7638 15.5105C19.761 15.5105 19.7582 15.5077 19.7554 15.5077C19.7498 15.5049 19.7469 15.5049 19.7413 15.5021C19.7385 15.5021 19.7357 15.5021 19.7329 15.4993C19.7272 15.4993 19.7244 15.4965 19.7188 15.4965C19.716 15.4965 19.7132 15.4965 19.7075 15.4937C19.7019 15.4937 19.6991 15.4937 19.6935 15.4908C19.6878 15.4908 19.685 15.4908 19.6822 15.4908C19.6794 15.4908 19.6766 15.4908 19.6737 15.4908H18.7898C18.6547 15.4908 18.5449 15.6006 18.5449 15.7358V21.2222C18.5449 21.3574 18.6547 21.4671 18.7898 21.4671H19.6737C19.8089 21.4671 19.9187 21.3574 19.9187 21.2222V17.9709L22.4353 21.3714C22.4522 21.3968 22.4747 21.4165 22.4972 21.4305C22.4972 21.4305 22.5 21.4305 22.5 21.4334C22.5057 21.4362 22.5113 21.439 22.5141 21.4418C22.5169 21.4418 22.5197 21.4446 22.5226 21.4446C22.5254 21.4474 22.531 21.4474 22.5338 21.4503C22.5366 21.4531 22.5423 21.4531 22.5451 21.4559C22.5479 21.4559 22.5507 21.4587 22.5535 21.4587C22.5591 21.4615 22.5648 21.4615 22.5704 21.4643H22.5732C22.5929 21.47 22.6154 21.4728 22.6352 21.4728H23.5191C23.6542 21.4728 23.764 21.363 23.764 21.2279V15.7414C23.7668 15.6063 23.657 15.4965 23.5219 15.4965Z" />
4347                        <path class="qk-svg--footer_text" d="M15.313 20.099H12.9118V15.7414C12.9118 15.6062 12.802 15.4965 12.6669 15.4965H11.783C11.6479 15.4965 11.5381 15.6062 11.5381 15.7414V21.2279C11.5381 21.2926 11.5634 21.3545 11.6056 21.3968L11.6085 21.3996L11.6113 21.4024C11.6563 21.4446 11.7154 21.4699 11.7802 21.4699H15.3102C15.4453 21.4699 15.5551 21.3602 15.5551 21.225V20.3411C15.5579 20.2116 15.4482 20.099 15.313 20.099Z" />
4348                        <path class="qk-svg--footer_text" d="M28.4001 16.8702C28.5352 16.8702 28.645 16.7604 28.645 16.6253V15.7414C28.645 15.6062 28.5352 15.4965 28.4001 15.4965H24.87C24.8053 15.4965 24.7433 15.5218 24.7011 15.5668L24.6983 15.5697C24.6983 15.5725 24.6955 15.5725 24.6955 15.5753C24.6533 15.6203 24.6279 15.6794 24.6279 15.7442V21.2307C24.6279 21.2954 24.6533 21.3573 24.6955 21.3996L24.6983 21.4024L24.7011 21.4052C24.7462 21.4474 24.8053 21.4756 24.87 21.4756H28.4001C28.5352 21.4756 28.645 21.3658 28.645 21.2307V20.3467C28.645 20.2116 28.5352 20.1018 28.4001 20.1018H25.9988V19.1757H28.4001C28.5352 19.1757 28.645 19.0659 28.645 18.9308V18.0469C28.645 17.9118 28.5352 17.802 28.4001 17.802H25.9988V16.8758H28.4001V16.8702Z" />
4349                      </svg>
4350                    </a>
4351                  </li>
4352                
4353                
4354              </ul>
4355            </div>
4356          </div>
4357        </div>
4358      </div>
4359    </div>
4360    
4361  <div class="copyright qk-text--footer_text qk-bd--footer_text qk-text--left qk-bd_t--default">
4362    <div class="qk-container container qk-fw--500">
4363      <span>Copyright ©</span>
4364      <a class="qk-text--link" href="/">
4365        <span>黃姐愛保養</span>
4366      </a>
4367      <span>All Rights Reserved.</span>
4368      <span>Designed by
4369      </span>
4370      <a
4371        class="qk-text--link"
4372        href="https://www.cyberbiz.io?utm_source=poweredbycyberbiz"
4373        target="_blank"
4374        rel="noopener noreferrer"
4375        title="Designed by CYBERBIZ">CYBERBIZ</a>.
4376    </div>
4377  </div>
4378  
4379</footer>
4380<script>
4381  $(document).ready(function() {
4382    let isDynamicLoading = false;
4383
4384    let menusData = {
4385      
4386        
4387          "footer": {
4388            
4389              "type": "items",
4390              "data": [
4391                
4392                
4393                  
4394                    {
4395                      "title": "查詢",
4396                      "url": "/search",
4397                      "item_type": "search"
4398                    },
4399                  
4400                    {
4401                      "title": "關於我們",
4402                      "url": "/pages/about-us",
4403                      "item_type": "page"
4404                    },
4405                  
4406                    {
4407                      "title": "保證正貨",
4408                      "url": "/pages/genuine",
4409                      "item_type": "page"
4410                    },
4411                  
4412                    {
4413                      "title": "我的帳戶",
4414                      "url": "/account/index",
4415                      "item_type": "http"
4416                    },
4417                  
4418                    {
4419                      "title": "退換貨政策",
4420                      "url": "/pages/refund",
4421                      "item_type": "refund"
4422                    }
4423                  
4424                
4425              ]
4426            
4427          },
4428        
4429      
4430        
4431      
4432    };
4433
4434    if (isDynamicLoading) {
4435      window.DynamicLoading.setupComponent({
4436          sectionId: '#footer',
4437          callbackData:{
4438            section: {"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://reurl.cc/mGj0e7","display_instagram":false,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://lin.ee/W87riD8","display_youtube":false,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_y","display_facebook_fan_block":true},"custom_name":"頁腳","thumbnail":"footer","draggable":false,"block_order":["default_link_list","default_contact_info"],"blocks":{"default_link_list":{"type":"link_list_setting","custom_name":"選單","thumbnail":"list","draggable":true,"visible":true,"settings":{"footer_link":"footer","dict_link_list_block_title":"關於我們"}},"default_contact_info":{"type":"contact_info_setting","custom_name":"聯絡資訊","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"display_phone":false,"display_fax_number":false,"shop_fax_number":"0222345678","display_shop_email":true,"display_shop_address":false,"display_office_time":"true","shop_office_time":"10:00-17:00","dict_contact_info_block_title":"聯絡資訊","dict_phone_number":"02-2775-2682","dict_shop_email":"[email protected]","dict_shop_address":"新北市新莊區五工二路62å··6號一樓","display_tax_id":false,"dict_tax_id":"55783512 ","dict_shop_office_time":"週一到週五 10:00 - 17:30"}}}},
4439            shop: {
4440              name: '黃姐愛保養',
4441              cyberbiz_link: 'https://www.cyberbiz.io?utm_source=poweredbycyberbiz',
4442              facebook_fan_page: '',
4443            },
4444            menus: menusData,
4445            is_display_facebook_fan_block: false
4446            },
4447          entryName:'renderFooterSection',
4448          source:'//cdn-general.cybassets.com/frontend/shop/footerSection-e958d46bfee2e69f.js',
4449        });
4450    }
4451  });
4452</script>
4452
4453
4454<!-- cyb_snippet _tracking_code start -->
4455      
4455<script>
4456        window.fbAsyncInit = function() {
4457          FB.init({
4458          appId : '',
4459          xfbml : true,
4460          version : 'v24.0',
4461          });
4462        };
4463        (function(d, s, id){
4464          var js, fjs = d.getElementsByTagName(s)[0];
4465          if (d.getElementById(id)) {return;}
4466          js = d.createElement(s);
4467          js.id = id;
4468          js.src = 'https://connect.facebook.net/zh_TW/sdk.js';
4469          fjs.parentNode.insertBefore(js, fjs);
4470        }(document, 'script', 'facebook-jssdk'));
4471      </script>
4471
4472
4473
4474<script>
4475  // for scupio
4476  if (document.querySelector("meta[name=\"scupio_mid\"]")) {
4477    mid = document.querySelector("meta[name=\"scupio_mid\"]").content;
4478  } else {
4479    mid = "";
4480  }
4481  if (!window.is_scupio_sent && mid) {
4482    window._bwtm = window._bwtm || []
4483    window._bwtm.push({
4484      "mid": mid,
4485      "uid": ""
4486    });
4487  }
4488</script>
4488
4489
4490<!-- cyb_snippet _tracking_code end -->
4491
4492<script>
4493  $(document).ready(function(){
4494    if(window.location.pathname != '' && window.location.pathname != '/' ){
4495      document.getElementById('index-recommendation').style.display = 'none'
4496    }
4497  });
4498</script>
4498
4499
4500
4501
4502    <!-- Fast-Events -->
4503    <!-- cyb_snippet fast_events start -->
4504
4505
4506<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/fast_events-e958d46bfee2e69f.js' type='text/javascript'></script>
4506
4507<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/fast_events-e958d46bfee2e69f.css' rel='stylesheet' type='text/css' media='all' />
4508
4509<!-- cyb_snippet fast_events end -->
4510
4511    <div class="bottom-right qk-pos--fixed">
4512      <!-- gototop -->
4513      <div id="gototop" class="qk-display--none qk-text--center">
4514        <a href="javascript:void(0)" class="qk-circle qk-circle--lg qk-pos--relative qk-text--center">
4515          <i class="fas fa-chevron-up"></i>
4516        </a>
4517      </div>
4518
4519      <!-- popup -->
4520      
4521
4522
4523
4524<div id="popup-wrapper" class="qk-display--none"></div>
4525
4526<template id="popup-template">
4527  <div
4528    :class="status"
4529    v-if="hasContent"
4530    id="popup-section"
4531  >
4532    <transition name="backdrop">
4533      <div
4534        v-if="shouldShowPopup"
4535        @click.capture="minifyPopup"
4536        id="popup-backdrop"
4537        class="qk-w--100vw qk-h--100vh qk-pos--fixed qk-t--0 qk-l--0 qk-tst"
4538      >
4539      </div>
4540    </transition>
4541    <transition name="onShow">
4542      <div
4543        @click.self="showPopup"
4544        @transitionstart="updateGameStatus('start', this)"
4545        @transitionend="updateGameStatus('end', this)"
4546        class="popup-content qk-display--flex qk-align--center qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
4547      >
4548        <div
4549          v-for="block in blocks"
4550          :key="block.id"
4551          :class="[block.type, minifiedBlockClasses, block.settings.icon_size]"
4552          class="block qk-tst qk-tst_dur--30 qk-tst_timing--ease_o qk-of--auto"
4553        >
4554          <div v-if="block.type === 'image'" class="qk-pos--rel">
4555            <img
4556              v-show="!shouldShowPopup"
4557              :src="block.settings.dict_icon_image_url"
4558              class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
4559              alt="popup button"
4560            >
4561            <a
4562              v-show="shouldShowPopup"
4563              :href="block.settings.dict_link"
4564              :target="block.settings.target"
4565              :rel="block.settings.rel"
4566              class="qk-display--flex qk-align--center"
4567              @click="linkClicked"
4568            >
4569              <picture>
4570                <source :srcset="block.settings.dict_mobile_image_url" media="(max-width: 576px)">
4571                <source :srcset="block.settings.dict_tablet_image_url" media="(max-width: 992px)">
4572                <img
4573                  :src="block.settings.dict_image_url"
4574                  class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
4575                  alt="popup picture"
4576                />
4577              </picture>
4578            </a>
4579          </div>
4580          <div v-if="block.type === 'video'">
4581            <iframe
4582              :src="block.settings.dict_video_link"
4583              frameborder="0"
4584              class="qk-center--y qk-w--100 qk-h--100"
4585            ></iframe>
4586          </div>
4587          <div v-if="block.type === 'game'">
4588            <div v-show="gameStatus === 'show'" :class="{ 'show-game': gameStatus === 'show' }">
4589              <iframe
4590                class="cb-game-iframe iframe-loading"
4591                :src="getGameIframeSrc(block)"
4592                style="border: none;"
4593              >
4594                Loading
4595              </iframe>
4596            </div>
4597            <div v-show="gameStatus === 'minified'">
4598              <img
4599                src="//cdn-general.cybassets.com/game_assets/game_minified_new.png"
4600                class="qk-h--100 qk-w--100"
4601                alt="game minified icon"
4602              />
4603            </div>
4604          </div>
4605          <div
4606            v-if="block.type === 'carousel'"
4607            :id="`popup-carousel-${block.id}`"
4608          >
4609          </div>
4610        </div>
4611      </div>
4612    </transition>
4613    <transition name="backdrop">
4614      <div
4615        v-if="shouldShowPopup"
4616        @click.capture="minifyPopup"
4617        class="minify-popup qk-circle qk-circle--md qk-text--black qk-bg--white qk-bd--default qk-bd--border qk-text--center qk-cursor--pointer qk-pos--fixed"
4618      >
4619      </div>
4620    </transition>
4621  </div>
4622</template>
4623
4624<script>
4625  $(document).ready(function() {
4626    const CDN_HOST = '//cdn-general.cybassets.com';
4627    const section = {"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":false,"settings":{"dict_image_url":"/theme_src/i18n_shoestore/default_img/popup_default.jpg","icon_size":"small"},"custom_name":"圖片","thumbnail":"banner","draggable":true}},"block_order":["popup_block_1"],"settings":{},"custom_name":"彈窗廣告","thumbnail":"banner","draggable":false};
4628    var popupSection = Vue.createApp({
4629      template: '#popup-template',
4630      delimiters: ['${', '}'],
4631      data() {
4632        const isOmniauthPage = ['omniauth_terms_agreement', 'omniauth_mobile/']
4633          .some(path => location.pathname.includes(path));
4634        return {
4635          status: 'minified',
4636          gameStatus: 'show',
4637          blocks: isOmniauthPage
4638            ? []
4639            : section.block_order && section.block_order.reduce(
4640                function(acc, blockId) {
4641                  const block = section.blocks[blockId];
4642                  if (block && block.visible) {
4643                    acc.push({
4644                      ...block,
4645                      id: blockId,
4646                    });
4647                  }
4648                  return acc;
4649                },
4650                [],
4651              ),
4652          hasAddedGameScript: false,
4653        };
4654      },
4655      computed: {
4656        hasContent: function() {
4657          return !!(this.blocks && this.blocks.length > 0);
4658        },
4659        minifiedBlockClasses: function() {
4660          return this.status === 'minified' ? 'qk-pointer--none qk-unselectable' : '';
4661        },
4662        shouldShowPopup: function() {
4663          return this.status === 'show';
4664        }
4665      },
4666      methods: {
4667        unhidePopup: function(storedStatus) {
4668          this.status = storedStatus;
4669          $('#popup-wrapper').removeClass('qk-display--none');
4670        },
4671        showPopup: function() {
4672          if (this.status !== 'show') {
4673            this.status = 'show';
4674            this.saveStatus(this.status);
4675          }
4676        },
4677        minifyPopup: function() {
4678          this.status = 'minified';
4679          this.saveStatus('minified');
4680        },
4681        loadStatus: function() {
4682          return JSON.parse(localStorage.getItem('popupStatus'));
4683        },
4684        saveStatus: function(status) {
4685          if (status) {
4686            localStorage.setItem('popupStatus', JSON.stringify({
4687              status: status,
4688              setTime: new Date().getTime(),
4689            }));
4690          }
4691        },
4692        linkClicked: function() {
4693          this.saveStatus('minified');
4694        },
4695        parseVideoLink: function(settings) {
4696          settings.dict_video_link = themeHelper.parseYtUrl(settings.dict_video_link);
4697        },
4698        setupImageSrc: function (settings) {
4699          settings.dict_image_url = this.addCdnHost(settings.dict_image_url);
4700          if (settings.dict_tablet_image_url) {
4701            settings.dict_tablet_image_url = this.addCdnHost(settings.dict_tablet_image_url);
4702          }
4703          if (settings.dict_mobile_image_url) {
4704            settings.dict_mobile_image_url = this.addCdnHost(settings.dict_mobile_image_url);
4705          }
4706          settings.dict_icon_image_url = this.addCdnHost(settings.dict_icon_image_url) || settings.dict_image_url;
4707        },
4708        addCdnHost: function(url) {
4709          if (!url) {
4710            return url; // only add cdn host if url is not empty
4711          }
4712
4713          try {
4714            new URL(url);
4715            return url; // already a valid url, cdn host not needed
4716          } catch {
4717            return `${CDN_HOST}${url}`;
4718          }
4719        },
4720        initStatus: function() {
4721          let newStatus = 'show';
4722          const popupStatus = this.loadStatus();
4723          const currentTime = new Date().getTime();
4724          const oneDay = 1000 * 60 * 60 * 24;
4725          const hasStoredStatus = popupStatus && currentTime - popupStatus.setTime < oneDay;
4726          const redirectedByGameLogin = !this.hasRedirectUrl() && this.redirectedByGameLogin();
4727          const isLoggingIn = this.isLoggingIn();
4728          const isCartPage = window.location.pathname.split('/').includes('carts');
4729
4730          if (hasStoredStatus && !redirectedByGameLogin) {
4731            newStatus = popupStatus.status;
4732          }
4733
4734          if (isLoggingIn) {
4735            newStatus = 'minified';
4736          } else {
4737            localStorage.removeItem('redirectedByPopup');
4738          }
4739
4740          setTimeout(() => {
4741            this.status = newStatus;
4742            this.gameStatus = newStatus;
4743            this.saveStatus(newStatus);
4744            if(!isCartPage){
4745              this.unhidePopup(newStatus);
4746            }
4747          }, 1000);
4748        },
4749        initBlocks: function() {
4750          if (this.hasContent) {
4751            this.blocks.forEach(block => {
4752              switch(block.type) {
4753                case 'image':
4754                  this.setupImageSrc(block.settings);
4755
4756                  const isOpenInNewTab = block.settings.link_open_in_new_tab;
4757                  if (isOpenInNewTab) {
4758                    block.settings.target = '_blank';
4759                    block.settings.rel = 'noopener noreferrer';
4760                  }
4761
4762                  break;
4763                case 'video':
4764                  this.parseVideoLink(block.settings);
4765                  break;
4766              }
4767            })
4768          }
4769        },
4770        getGameIframeSrc: function (block) {
4771          return `/games/${block.settings.dict_game_handle}`
4772        },
4773        updateGameStatus: function(type, element) {
4774          if (
4775            (type === 'start' && this.status === 'minified')
4776            || (type === 'end' && this.status === 'show')
4777          ) {
4778            this.gameStatus = this.status;
4779          }
4780        },
4781        setupGameRedirects: function() {
4782          window.addEventListener('pagehide', () => {
4783            const isGameActive = document.body.getElementsByClassName('show-game').length;
4784            if (isGameActive) {
4785              localStorage.setItem('redirectedByPopup', 'true');
4786              this.saveStatus('minified');
4787            }
4788          });
4789        },
4790        hasRedirectUrl: function() {
4791          return (new URLSearchParams(location.search)).has('redirect_url');
4792        },
4793        redirectedByGameLogin: function() {
4794          return localStorage.getItem('redirectedByPopup');
4795        },
4796        isLoggingIn: function() {
4797          const loginRelatedPathnames = [
4798            'account/signup',
4799            'account/login',
4800            'account/customer/password/new',
4801            'pages/terms'
4802          ];
4803          return loginRelatedPathnames.some(path => location.pathname.includes(path));
4804        }
4805      },
4806      created: function() {
4807        this.initStatus();
4808        this.initBlocks();
4809        this.setupGameRedirects();
4810      },
4811      mounted: function() {
4812        this.blocks.forEach((block) => {
4813          if (block.type === 'carousel' && block.settings.dict_c
4813arousel) {
4814            renderCarousel(`#popup-carousel-${block.id}`, {
4815              title: block.settings.dict_carousel,
4816              CDN_HOST,
4817              onLinkClick: () => this.linkClicked(),
4818            });
4819          }
4820        });
4821      },
4822    });
4823    popupSection.mount('#popup-wrapper');
4824  });
4825</script>
4825
4826
4827
4828
4829    </div>
4830
4831    <!-- ajaxloading -->
4832    <div id="ajaxloading" class="qk-display--none qk-h--100vh qk-w--100vw qk-l--0 qk-t--0 qk-pos--fixed">
4833      <div class="ajaxbody qk-pos--abs qk-l--50 qk-t--50 qk-text--center">
4834        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="73.4" height="73.4" viewBox="0 0 73.4 73.4">
4835          <circle class="circle" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="36.7" cy="36.7" r="35.2"/>
4836          <polyline class="success_path" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="23.7,36.8 32.4,45.4 49.7,28 "/>
4837          <path class="success_icon" fill="#898989" d="M32.5,46.9c-0.4,0-0.8-0.2-1.1-0.4l-8.6-8.6c-0.6-0.6-0.6-1.5,0-2.1s1.5-0.6,2.1,0l7.5,7.5L48.6,27c0.6-0.6,1.5-0.6,2.1,0s0.6,1.5,0,2.1L33.5,46.5C33.2,46.7,32.9,46.9,32.5,46.9L32.5,46.9z"/>
4838          <line class="fail_path" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="26.6" y1="26.6" x2="46.8" y2="46.8"/>
4839          <line class="fail_path" fill="none" stroke="#898989" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="46.8" y1="26.6" x2="26.6" y2="46.8"/>
4840          <path class="fail_icon" fill="#898989" d="M38.7,36.7l9.1-9.1c0.6-0.6,0.6-1.5,0-2.1s-1.5-0.6-2.1,0l-9.1,9.1l-9.1-9.1c-0.6-0.6-1.5-0.6-2.1,0s-0.6,1.5,0,2.1l9.1,9.1l-9.1,9.1c-0.6,0.6-0.6,1.5,0,2.1c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4l9.1-9.1l9.1,9.1c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4c0.6-0.6,0.6-1.5,0-2.1L38.7,36.7z"/>
4841        </svg>
4842        <div class="success_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">已加入購物車</div>
4843        <div class="success_update_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">已更新購物車</div>
4844        <div class="fail_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">網路異常,請重新整理</div>
4845      </div>
4846    </div>
4847  </body>
4848
4849  
4849<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/sub_vendor-e958d46bfee2e69f.js' type='text/javascript'></script>
4849
4850  
4850<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme_helper-e958d46bfee2e69f.js' type='text/javascript'></script>
4850
4851
4852  <!-- theme assets -->
4853  
4853<script src='//cdn-general.cybassets.com/s/files/21126/theme/77307/assets/js/1666252931_8187bd3d_main.js?1666252931' type='text/javascript'></script>
4853
4854  
4854<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme-e958d46bfee2e69f.js' type='text/javascript'></script>
4854
4855
4856  <!-- for cache -->
4857  
4857<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/cacheable-e958d46bfee2e69f.js' type='text/javascript'></script>
4857
4858</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.