PageSourceSearch

https://www.herstorytw.com/search

html herstorytw.com collected 2026-10-05 23:44:21 UTC 245,880 bytes, 4,679 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-MTZZ7GJ
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/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM1NDg5X0xvZ2_ntJTmloflrZdf6buRLnBuZy5wbmciXV0.png?convert=false&sha=240dd3e5680be256">
26<link rel="apple-touch-icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM1NDg5X0xvZ2_ntJTmloflrZdf6buRLnBuZy5wbmciXV0.png?convert=false&sha=240dd3e5680be256">
27
28<meta property="og:site_name" content="HERSTORY法國有機精油" />
29
30<!-- og tag -->
31
32
33<!-- og image -->
34
35  
36  <meta property="og:image" content="https://cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM1NDg5X0xvZ2_ntJTmloflrZdf6buRLnBuZy5wbmciXV0.png?sha=240dd3e5680be256" />
37  
38
39
40<title>
41  
42    查詢 HERSTORY法國有機精油
43  
44</title>
45
46
47
48<script src='//cdn-general.cybassets.com/frontend/shop/useSettingsData-7338a3080043cbaa.js' type='text/javascript'></script>
48
49
50
51
52  
52<script>
53    window.setSettingsData({"draggable_sections":{"404":[],"index":["1737608845813_0","_index_product_banner","_index_4_blocks","1770453660997_0","_index_8_blocks","_index_product_banner_2","_index_4_blocks_2","1738165948405_3","_index_4_blocks_3"],"product":["product_info","product_description","board_comments","related_products"],"combo_product":["combo_product_info","combo_product_desc","board_comments"],"collection":[],"category":[],"blog":[],"article":[],"cart":[],"contact":[],"express_delivery":[],"search":[]},"sections":{"navbar":{"type":"navbar","visible":true,"settings":{"navbar_image_logo_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6","navbar_image_logo_tablet_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM4Mjc4X0xvZ2_ntJTmloflrZcg55m9LnBuZy5wbmciXV0.png?sha=de620915de596789","navbar_image_logo_mobile_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6","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":"/theme_src/i18n_shesay/default_img/header_banner_image.png","dict_header_banner_image_tablet_url":"","dict_header_banner_image_mobile_url":"/theme_src/i18n_shesay/default_img/header_banner_image_mobile.png","dict_header_banner_link":"","display_count_down":false,"navbar_display_style":"displayDefault","menu_display_style":"three_dimension_menu","header_banner_start":"","header_banner_end":"","timer_text_color":"#c39d6f","timer_bg_color":"#2b2b6e","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","header_logo_image_alt":"HERSTORY 法國有機精油","navbar_background_transparent":false,"logo_height":"","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"},"custom_name":"導覽列"},"footer":{"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/","display_instagram":true,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://line.me/zh-hant/","display_youtube":true,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_x","display_facebook_fan_block":true},"block_order":["default_contact_info","default_link_list","default_link_list_2"],"blocks":{"default_link_list":{"type":"link_list_setting","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"About us","footer_link":"footer"},"custom_name":"選單"},"default_contact_info":{"type":"contact_info_setting","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"dict_contact_info_block_title":"Information","display_phone":true,"dict_phone_number":"0968769227","display_fax_number":false,"dict_shop_fax_number":"0222345678","display_shop_email":true,"dict_shop_email":"[email protected]","display_shop_address":true,"dict_shop_address":"台北市士林區大東路174號3樓 (捷運士林站2號出口2分鐘)","display_office_time":true,"dict_shop_office_time":"10:00-19:00"},"custom_name":"聯絡資訊"},"default_link_list_2":{"type":"link_list_setting","visible":true,"settings":{"dict_link_list_block_title":"Help","footer_link":"main-menu"},"custom_name":"選單"}},"custom_name":"頁腳"},"_index_product_banner":{"type":"_index_product_banner","visible":true,"settings":{"dict_link":"","dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzEyXzIuanBnLmpwZWciXV0.jpeg?sha=3563284da76ad9ef","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzEyXzIuanBnLmpwZWciXV0.jpeg?sha=3563284da76ad9ef","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-WTgeeJjOS7i-e0uS5qcGcuanBlZyJdXQ.jpeg?sha=ffa37a09c11207dc","cta_btn_display_style":"topPosition","cta_btn_text":"了解更多","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"24","mobile_margin_x":"0","mobile_margin_bottom":"24"},"custom_name":"橫幅廣告"},"_index_product_banner_2":{"type":"_index_product_banner","visible":false,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_product_banner_2.png","dict_tablet_image_url":"","dict_mobile_image_url":"/theme_src/i18n_shesay/default_img/index_product_banner_2_mobile.png","dict_link":"","display_cta_btn":true,"cta_btn_display_style":"bottomPosition","cta_btn_text":"Shop Now","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"80","margin_bottom":"48","mobile_margin_x":"16","mobile_margin_bottom":"24"},"custom_name":"橫幅廣告"},"_index_4_blocks":{"type":"_index_4_blocks","visible":true,"settings":{"margin_x":"10","margin_bottom":"35","mobile_margin_x":"10","mobile_margin_bottom":"18","mobile_columns":1,"margin_block":"7","mobile_margin_block":"10"},"blocks":{"display_index_4_block_1":{"type":"image","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-acieapn-eyvuayuS5qcGcuanBlZyJdXQ.jpeg?sha=78802d58bc41af7e","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE1X-acieapn-eyvuayuSAoMikuanBnLmpwZWciXV0.jpeg?sha=0fd1a6b5f11791d7","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-acieapn-eyvuayuS5qcGcuanBlZyJdXQ.jpeg?sha=78802d58bc41af7e","dict_link":"/collections/精油產品","link_open_in_new_tab":true,"dict_image_description":""},"custom_name":"圖片"},"display_index_4_block_1_2":{"type":"image","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-ism-W6p-a0u-WLlS5qcGcuanBlZyJdXQ.jpeg?sha=ab81df2e6c0e8483","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-ism-W6p-a0u-WLlS5qcGcuanBlZyJdXQ.jpeg?sha=ab81df2e6c0e8483","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-ism-W6p-a0u-WLlS5qcGcuanBlZyJdXQ.jpeg?sha=ab81df2e6c0e8483","dict_link":"/collections/courses","link_open_in_new_tab":true,"dict_image_description":""},"custom_name":"圖片"},"display_index_4_block_1_3":{"type":"image","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-itieeFp-ePrS5qcGcuanBlZyJdXQ.jpeg?sha=1d4afc864bf0f0a9","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-itieeFp-ePrS5qcGcuanBlZyJdXQ.jpeg?sha=1d4afc864bf0f0a9","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-itieeFp-ePrS5qcGcuanBlZyJdXQ.jpeg?sha=1d4afc864bf0f0a9","dict_link":"/collections/certificate","link_open_in_new_tab":true,"dict_image_description":""},"custom_name":"圖片"},"1738165332248_0":{"type":"image","custom_name":"圖片","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-enkeWtuOiKs-eZglNQQS5qcGcuanBlZyJdXQ.jpeg?sha=ceee1a759cc5037a","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-enkeWtuOiKs-eZglNQQS5qcGcuanBlZyJdXQ.jpeg?sha=ceee1a759cc5037a","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM4Mzg3ODE0X-enkeWtuOiKs-eZglNQQS5qcGcuanBlZyJdXQ.jpeg?sha=ceee1a759cc5037a","dict_link":"/collections/massagecourse","link_open_in_new_tab":true,"dict_image_description":""}}},"block_order":["display_index_4_block_1_3","display_index_4_block_1_2","1738165332248_0","display_index_4_block_1"],"custom_name":"自訂排版設計"},"_index_4_blocks_2":{"type":"_index_4_blocks","visible":true,"blocks":{"display_index_4_block_2":{"type":"video","visible":true,"settings":{"dict_video_link":"https://www.youtube.com/watch?v=r8T54nvt3R0","block_propotion":"120","auto_play":false,"hide_controls":false,"loop":true},"custom_name":"影片"}},"block_order":["display_index_4_block_2"],"settings":{"margin_x":"20","margin_bottom":"20","mobile_margin_x":"10","mobile_margin_bottom":"32","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10"},"custom_name":"自訂排版設計"},"_index_4_blocks_3":{"type":"_index_4_blocks","visible":false,"settings":{"margin_x":"120","margin_bottom":"24","mobile_margin_x":"0","mobile_margin_bottom":"16","mobile_columns":2,"margin_block":"10","mobile_margin_block":"10"},"blocks":{"display_index_4_block_3":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_3.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","block_propotion":"33.3","dict_image_description":""},"custom_name":"圖片"},"display_index_4_block_3_2":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_3_2.png","dict_tablet_image_url":"","dict_mobile_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_3_2_mobile.png","dict_link":"","block_propotion":"66.6","dict_image_description":""},"custom_name":"圖片"}},"block_order":["display_index_4_block_3","display_index_4_block_3_2"],"custom_name":"自訂排版設計"},"_index_8_blocks":{"type":"_index_8_blocks","visible":true,"settings":{"dict_title":"熱賣商品","collection_handle":"frontpage","limit":"20","margin_x":"0","margin_bottom":"20","mobile_margin_x":"0","mobile_margin_bottom":"20","product_display":"displayPartial","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":"商品分類"},"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"]},"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":"
536","category_product_item_limit":"18"}},"shop_setting":{"type":"shop_setting","visible":true,"settings":{"favicon_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM1NDg5X0xvZ2_ntJTmloflrZdf6buRLnBuZy5wbmciXV0.png?sha=240dd3e5680be256","og_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM1NDg5X0xvZ2_ntJTmloflrZdf6buRLnBuZy5wbmciXV0.png?sha=240dd3e5680be256","shop_title":"法國有機精油|科學芳療證照班","shop_description":"HERSTORY 法國有機精油由專業科研團隊100%把關,來自全球五大洲超過700種植物品種,皆採用歐盟AB有機栽培的農場,在南法擁有專業硏發實驗室,生產歐盟Ecocert有機認證精油,40%成員來自精油芳療發源地法國,調香界最權威認證系統受訓調香師,為感官世界帶來愉悅的嗅覺饗宴。隨時隨地,即刻療癒","shop_keywords":"HERSTORY, 法國有機精油, 天然有機, 即刻療癒, 純天然, 法國製造, 上班療癒, 精油, 自律神經失調, 按摩, SPA, 芳療證照, 講座","prevent_right_click":false},"custom_name":"全站設定"},"color_settings":{"type":"color_settings","visible":true,"settings":{"button_color":"#44580F","button_text_color":"#f0e6a1","accent_color":"#f86f69","heading_color":"#44580F","text_color":"#9A9EA2","price_color":"#f86f69","discount_price_color":"#f86f69","theme_bg_color":"#ecece6","product_border_color":"#E2E2E2","nav_logo_bg_color":"#44580F","nav_menu_bg_color":"#87965e","nav_menu_text_color":"#feeedf","nav_menu_icon_color":"#fce6d3","footer_bg_color":"#D3C1AF","footer_text_color":"#f0f1f2","checkout_button_color":"#000000","checkout_accent_color":"#f86f69","tips_text_color":"#0c4a61"},"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":"圖片"}},"block_order":["popup_block_1"],"settings":{},"custom_name":"彈窗廣告"},"product_info":{"type":"product_info","visible":true,"settings":{"display_product_sku":true,"dict_vip_custom_price_text":"","dict_vip_custom_price_href":""}},"product_description":{"type":"product_description","visible":true},"board_comments":{"type":"board_comments","visible":true,"settings":{},"thumbnail":"list","draggable":false},"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"}},"combo_product_info":{"type":"combo_product_info","visible":true,"settings":{}},"combo_product_desc":{"type":"combo_product_desc","visible":true,"settings":{}},"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!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"}},"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_shesay/default_img/404_img.png","dict_404_image_url":"/theme_src/i18n_shesay/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"}},"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/other_valid_orders":{"type":"customers/other_valid_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":{}},"1737608845813_0":{"type":"_main_slider_custom","custom_name":"輪播素材","visible":false,"settings":{"swiper_delay":"3","margin_x":"0","margin_bottom":"50","image_number":"1","image_space":"12","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_image_number":"1","mobile_image_space":"8","transition_speed":"0.3"},"blocks":{"1737608845820_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzEyXzIuanBnLmpwZWciXV0.jpeg?sha=3563284da76ad9ef","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzEyXzIuanBnLmpwZWciXV0.jpeg?sha=3563284da76ad9ef","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjA5MzY0XzIuanBnLmpwZWciXV0.jpeg?sha=51ba0993616e0a98","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"}},"1737608888208_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzEyXzEuanBnLmpwZWciXV0.jpeg?sha=4ca127e4d12a16ad","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzEyXzEuanBnLmpwZWciXV0.jpeg?sha=4ca127e4d12a16ad","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjA5MzY0XzEuanBnLmpwZWciXV0.jpeg?sha=6559fa83c64fba0c","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"}},"1737608908253_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzExXzMuanBnLmpwZWciXV0.jpeg?sha=00f393736c508877","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzExXzMuanBnLmpwZWciXV0.jpeg?sha=00f393736c508877","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NjEwNzExXzMuanBnLmpwZWciXV0.jpeg?sha=00f393736c508877","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"}}},"block_order":["1737608845820_0","1737608888208_0","1737608908253_0"]},"1738165948405_3":{"type":"_index_4_blogs","custom_name":"分頁頁籤","visible":true,"settings":{"dict_title":"","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","article_c
53olumns":"4"},"blocks":{"1738165948412_0":{"type":"blog","custom_name":"部落格","visible":true,"settings":{"blog_handle":"精油百科"}},"1738760106883_0":{"type":"blog","custom_name":"部落格","visible":true,"settings":{"blog_handle":"自律神經失調"}}},"block_order":["1738165948412_0","1738760106883_0"]},"1770453660997_0":{"type":"_main_slider_custom","custom_name":"輪播素材","visible":false,"settings":{"swiper_delay":"3","transition_speed":"0.3","margin_x":"0","margin_bottom":"50","image_number":"1","image_space":"12","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_image_number":"1","mobile_image_space":"8"},"blocks":{"1770453661000_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzcwNDUzNDM1X091dHNpZGUucG5nLnBuZyJdXQ.png?sha=0c1144c5b64b8dc1","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzcwNDUzNDM1X091dHNpZGUucG5nLnBuZyJdXQ.png?sha=0c1144c5b64b8dc1","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzcwNDUzNDM1X091dHNpZGUucG5nLnBuZyJdXQ.png?sha=0c1144c5b64b8dc1","dict_link":"https://www.surveycake.com/s/wp3PR","link_open_in_new_tab":true,"slide_contents_display":"left","dict_slide_btn_text":"了解更多","dict_slide_btn_link":"https://www.surveycake.com/s/wp3PR","slide_btn_link_open_in_new_tab":true,"slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}}},"block_order":["1770453661000_0"]},"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":"/theme_src/i18n_shesay/default_img/header_banner_image.png","dict_image_tablet_url":"","dict_image_mobile_url":"/theme_src/i18n_shesay/default_img/header_banner_image_mobile.png","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}}},"block_order":["announcement_bar_block_1"],"settings":{"display_mode":"vertical","carousel_interval":"3"}}},"navbar_image_logo":true,"show_default_all_products":true,"one_dimension_limit":"6","two_dimension_limit":"10","header_banner_display":true,"header_banner_link":"/","display_main_slider":true,"display_phone":true,"phone_number":"0912345678","display_fax_number":true,"shop_fax_number":"0222345678","display_shop_email":true,"shop_email":"[email protected]","display_shop_address":true,"shop_address":"測試地址","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":"0","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":"/theme_src/beta_theme/default_img/onsale_icon.png","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","display_inventory_policy":true,"display_product_vendor":true,"google_font":"{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}","product_text_align":"start","styled_shop_menu":"buttonType","product_video_display_location":"before","product_scale":"default_scale","nav_icon_style":"icon_type_default","product_labels":{"items":[{"id":"sale_label","kind":"system","title":"特價標籤","display":true,"type":"image","dict_text":{"zh-TW":""},"image":"/theme_src/beta_theme/default_img/onsale_icon.png","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":"b2b5439f-ac10-4de7-ac7f-99acf03fdc00","kind":"custom","title":"自定義標籤 1","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"}
53,{"id":"119bfd82-6382-4e7d-88ca-d6940dc1a274","kind":"custom","title":"自定義標籤 2","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"e8d5a7c7-5287-4e1a-b5de-2fe6f0fd24d3","kind":"custom","title":"自定義標籤 3","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"7d9da14c-9f00-4fc3-8e48-d7c2a7c04587","kind":"custom","title":"自定義標籤 4","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"3db573ac-3d18-4478-ac75-d99a9a9f89a5","kind":"custom","title":"自定義標籤 5","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"}]},"product_card_hover_effect":"button","product_image_border_radius":"0"});
54  </script>
54
55
56
57
58
59
60
61
62
63
64
65    <!-- for vendor -->
66    <!-- cyb_snippet _bootstrap start -->
67
68<!-- cyb_snippet _bootstrap end -->
69    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vendor-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
70
71    <!-- common css rulesets -->
72    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/common-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
73
74    <!-- for navbar -->
75    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/navbar-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
76
77    <!-- for footer -->
78    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/footer-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
79
80    <!-- theme assets -->
81    <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/main-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
82
83    <!-- for vendor -->
84    
84<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/vendor-7338a3080043cbaa.js' type='text/javascript'></script>
84
85
86            
86<script>
87          window.sci = "eyJzaG9wX2lkIjozMTkzNSwic2hvcF9wbGFuIjoiYm9zc19wbHVzIiwiZGlt\nX2FmZmlsaWF0ZSI6bnVsbCwiY3VzdG9tZXJfaWQiOm51bGwsImN1c3RvbWVy\nX25hbWUiOm51bGwsInNob3BfbmFtZSI6IkhFUlNUT1JZ5rOV5ZyL5pyJ5qmf\n57K+5rK5Iiwic2hhcmVfYXR0cmlidXRpb25fZW5hYmxlZCI6ZmFsc2V9\n";
88        </script>
88
89
90
91<meta name="csrf-param" content="authenticity_token" />
92<meta name="csrf-token" content="UJ9CTfNfHh2RudMfjUWMBv_WwyAjCPdkzjDmqQosbXZF3iVAWjtxXJf_yjumFduFB_UC_BnaLxZa3TXd2njQHw" />
93<script>(function () {
94  window.gaConfigurations = {"useProductIdInProductEvents":false};
95})();
96</script>
vendor: 1 bytes, line 96
96
97<script>(function () {
98  window.CYBERBIZ_PageContext = {"page_type":"search"};
99})();
100</script>
100
101<link href="//cdn-general.cybassets.com/frontend/shop/quark-7338a3080043cbaa.css" rel="stylesheet" type="text/css" media="all" />
102        
102<script>
103          window.shopScriptHelper = {
104            i18nLocale: "zh-TW",
105            i18nLocaleDefault: "zh-TW",
106            availableCurrencies: [],
107            defaultCurrency: "TWD",
108            currenciesInfo: [{"decimal_precision":0,"name":"新台幣 (TWD)","html":"NT${{amount_no_decimals}}","money_format":"%u%n","unit":"","trailing_zeros":false,"email_unit":"NT${{amount_no_decimals}}","html_unit":"NT${{amount_no_decimals}}","format":"NT${{amount_no_decimals}}","code":"TWD","symbol":"NT$","email":"NT${{amount_no_decimals}}"}],
109            vueOverrideTranslations: {"zh-TW":{"vue":{"common":{"price_label":"建議售價","pre_order":"預購商品","add_to_cart":"加入購物車","contact_merchant":"聯絡店家","sold_out":"已售完","failed_to_update_cart":"更新購物車失敗","wrong_quantity":"數量輸入錯誤","buy_at_least_one":"購買數量不可小於1","exceed_upper_limit":"超過購買上限","exceed_stock_quantity":"超過庫存數量","corona":{"confirm_yes":"確認","confirm_no":"取消"},"theme":{"wrong_date":"日期錯誤","choose_specification":"請選擇規格"}},"express_delivery":{"default_sort":"預設排序","price_desc":"價格由高到低","price_asc":"價格由低到高","sell_from_asc":"上市日期舊到新","sell_from_desc":"上市日期新到舊","recent_days_sold_desc":"本週熱賣","product_count":"共 {totalCount} 件商品","empty_collection":"此分類目前沒有商品","search_product_count":"您搜尋{selectedStoreName}的商品共 {count} 項","back_to_product_list":"返回商品列表","choose_store":"選擇外送門市","phone":"聯絡電話","business_hours":"營業時間","store_address":"門市地址","store_address_info":"門市地址:{address}","store_is_closed":"目前不接受服務","view_products":"查看商品","more_info":"更多資訊","cyberbiz_now":"快速到貨","search_stores":"搜尋門市","not_search_stores_yet":"請點擊搜尋門市","service_description":"CYBERBIZ NOW 快速到貨 服務說明:","service_description_detail":"此購物服務由 CYBERBIZ 系統提供,我們與第三方合作夥伴配合提供外送服務,提供您更快速的購物體驗。","delivery_address":"外送地址","delivery_address_hint":"請輸入外送地址","delivery_address_detail":"樓層或房號","delivery_address_detail_hint":"請輸入樓層或房號","change_address":"變更地址","change":"變更","service_not_available_in_the_region":"很抱歉,您目前所在區域不支援「CYBERBIZ NOW 快速到貨」。","service_is_available":"您輸入的地址支援「CYBERBIZ NOW 快速到貨」","exit_prompt":"您確認要離開快速到貨?","service_hours":"營業時間:{day} {time}","sales_start_info":"{time} 開賣","sales_start_info_verbose":"{day} {time} 開賣","cancel":"取消","exit":"離開","address_incomplete":"輸入之地址不完整","address_incomplete_hint":"您的地址不完整,請輸入正確地址再加購物車","search_failed":"搜尋門市失敗","sold_out":"已售完","add_to_cart":"加入購物車","add_to_cart_error":"加入購物車失敗","please_select_specifications":"請選擇規格","pre_order":"預購商品","express_delivery":"CYBERBIZ NOW 快速到貨","get_position_error_no_permission":"錯誤:請開啟您的網頁定位服務","get_position_error_require_https":"錯誤:需要https","get_position_error_internal":"錯誤:請開啟瀏覽器存取位置權限","get_position_error_timeout":"錯誤:超過請求時間"},"bonus_mall":{"bonus_redemption_price":"紅利 {price}","select_itmes_count":"已選購 {quantity} 件紅利商品","available_bonus_and_used":"目前紅利點數 {customerRemainPoints} 點,使用 {usedBonusPoints} 點","proceed_to_checkout":"前往結帳","insufficient_points":"點數不足","points":"點數","quantity":"數量","subtotal":"小計","default_sort":"預設排序","bonus_price_desc":"依紅利點數大到小排序","bonus_price_asc":"依紅利點數小到大排序","sell_from_asc":"上市日期舊到新","sell_from_desc":"上市日期新到舊","recent_days_sold_desc":"依近期銷售量大到小","recent_days_sold_asc":"依近期銷售量小到大","product_count":"共 {totalCount} 件商品","bonus_points":"{points} 點","bonus_points_verbose":"紅利{points}點","bonus_price":"紅利點數","add_to_cart":"加入購物車","already_added_to_cart":"已加入購物車","sold_out":"已售完","loading_error":"載入商城購物車資料錯誤","need_to_buy_something":"數量不得少於1","wrong_quantity":"數量輸入錯誤","exceed_stock_quantity":"超出庫存數量","exceed_buy_limit":"超出購買數量限制","upcoming_product":"開賣時間","not_on_sale_yet":"尚未開賣","countdown":"開賣倒數","days":"日","hours":"時","minutes":"分","seconds":"秒"},"eticket_orders":{"eticket_term_of_service":"CYBERBIZ 電子票券服務使用說明","category_all":"所有票券","category_pending":"未付款","category_available":"可使用","category_used":"使用完畢","payment_status_failed":"付款失敗,請聯絡客服","payment_status_success":"付款成功","payment_status_pending":"等待請款","order_empty_note":"無任何資訊","failed_to_send_message":"發送訊息失敗","usage_status_used":"使用完畢","usage_status_partial_used":"部分使用","show_eticket_button_qr_code":"顯示票券 QR code","show_eticket_button_used":"票券已使用"},"line_group_buy":{"go_checkout":"前往結賬","add_to_cart":"加入購物車","product_description":"商品介紹","product_spec":"規格說明","product_shipping":"運送方式"},"omniauth_mobile":{"phone_validation":"手機驗證,","confirm_account_information":"請確認以下是å
109¦ç‚ºæ‚¨çš„æœƒå“¡è³‡æ–™","reconfirm":"否,重新驗證","merge":"是,請合併會員","check_account":"為了確認是您本人,請輸入手機號碼進行驗證","mobile_number":"手機號碼","send_message":"發送簡訊驗證碼","enter_mobile_number":"請輸入您的手機號碼","submit_btn":"加入會員","registered":"我已經有會員帳號了?","return_login":"回登入頁面","send_confirmation_token":"已將簡訊寄送至手機","verification_code":"4 位數簡訊驗證碼","confirm_submit":"送出","resend_with_timer":"({ timer }秒)重新發送","resend":"重新發送","retry_later_error":"達系統操作上限,請重新整理並再試一次"}}}},
110            hasI18nInContextEditing: false,
111            shopMultipleCurrenciesCheckout: false,
112            hasLocalizedShopPriceFormat: true,
113          }
114        </script>
114
115
116        
117        
117<script
118          src="//cdn-general.cybassets.com/frontend/shop/tolgeeIntegration-7338a3080043cbaa.js">
119        </script>
119
120        
120<script defer>
121          /*
122          * Enable in-context translation for Liquid part on the page.
123          * This must be executed last to prevent conflicts with other Vue apps.
124          * So put it to `onload`, which will be executed after DOM ready's app mount
125          */
126          window.onload = function() {
127            if (
128              window.shopScriptHelper &&
129              window.shopScriptHelper.hasI18nInContextEditing
130            ) {
131              window.initTolgeeForLiquid()
132            }
133          }
134        </script>
134
135
136<script> var google_con_event_labels = []</script>
vendor: 1 bytes, line 136
136
137<script src="//cdn-general.cybassets.com/frontend/shop/pageEventHandler-7338a3080043cbaa.js"></script>
vendor: 1 bytes, line 137
137
138<script src="//cdn-general.cybassets.com/frontend/shop/globalAnalysis-e4c650eb0b.js"></script>
138
139        
139<script>
140          window.c12t = {"customer_id":null,"search_string":null,"impressions":[{"name":"Douce Nuit晚安香氣盒","id":"69042087","price":"3360.0","brand":"HERSTORY法國有機精油","category":"熱門商品, 送禮專區, 舒眠精油, 精油產品","list":"default","position":1},{"name":"清新專注 聞香棒禮盒 \u003cbr\u003eBreath \u0026 Chill Inhaler","id":"69015586","price":"1680.0","brand":"HERSTORY法國有機精油","category":"熱門商品, 迎新開運精油, 送禮專區, 精油產品","list":"default","position":2},{"name":"【自律神經芳療健康管理師】2026第7期初階師資培訓班","id":"68464977","price":"29000.0","brand":"HERSTORY法國有機精油","category":"自律神經芳療 師資培訓班","list":"default","position":3},{"name":"雙人香氣探索・親密對話|90mins","id":"67063569","price":"4500.0","brand":"HERSTORY法國有機精油","category":"法式芳療療程","list":"default","position":4},{"name":"高階自我探索・香氣人格解析(含情緒壓力檢測)|60mins","id":"66198697","price":"2800.0","brand":"HERSTORY法國有機精油","category":"法式芳療療程","list":"default","position":5},{"name":"【自律神經芳療健康管理師】2026第6期初階師資培訓班 (已結訓)","id":"65998820","price":"29000.0","brand":"HERSTORY法國有機精油","category":"自律神經芳療 師資培訓班","list":"default","position":6},{"name":"【自律神經芳療健康管理師】2026第5期初階師資培訓班 (已結訓)","id":"62475448","price":"29000.0","brand":"HERSTORY法國有機精油","category":"自律神經芳療 師資培訓班","list":"default","position":7},{"name":"【自律神經芳療健康管理師】2025第4期初階師資培訓班 (已結訓)","id":"57454214","price":"33000.0","brand":"HERSTORY法國有機精油","category":"自律神經芳療 師資培訓班","list":"default","position":8},{"name":"【自律神經芳療健康管理師】2025第3期初階師資培訓班(已結訓)","id":"53790044","price":"33000.0","brand":"HERSTORY法國有機精油","category":"自律神經芳療 師資培訓班","list":"default","position":9},{"name":"全身深層釋壓SPA|160mins","id":"53569559","price":"5400.0","brand":"HERSTORY法國有機精油","category":"法式芳療療程, 熱門商品","list":"default","position":10}]};
141        </script>
141
142
143        <meta name="request-id" content="18A4DAAB34AEACAB3C017F196F901F50"/>
144
145<link rel="canonical" href="https://www.herstorytw.com/search">
146<script src="//cdn-general.cybassets.com/frontend/shop/carousel-7338a3080043cbaa.js"></script>
146
147          
147<script>
148            window.parent.postMessage({ type: 'previewShopInit', currentUrl: window.location.href }, '*');
149          </script>
149
150
151<script src="//cdn-general.cybassets.com/frontend/appStoreSDK/main.2798231628aa7fab87a9.js"></script>
vendor: 1 bytes, line 151
151
152<script>window.CYBERBIZ_AppScriptSettings = {"shop_add_ons":"W3sidmVuZG9yX3R5cGUiOiJDWUJFUkJJWiBHb29nbGUgQW5hbHl0aWNzIDQi\nLCJhcHBfaWQiOiJRVWo1WnFvZUlPUjlaM2JaS2trMG44N3l5a0FpOWU0NURE\naDJ0YlFnaUJBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IkctMzdFUTlHVExT\nQiwgRy00QjdSSzdGSFdIIn19LHsidmVuZG9yX3R5cGUiOiJHb29nbGUgQW5h\nbHl0aWNzIDQiLCJhcHBfaWQiOiJSYkpWMTVFcVZWOHJ1Umo3NVlmV3Z1RUlD\nRm90Q0FPZm0xSDZtZ3hyNkZBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6Ikct\nS01GOTZKRzBERyJ9fSx7InZlbmRvcl90eXBlIjoiQ2hhdCBCb3giLCJhcHBf\naWQiOiJjOWQ4M2YwOTk2MTc0ZmJiYTg2ZWJhMDQxYWU4OThhMiIsInNldHRp\nbmdzIjp7IndpZGdldF9rZXkiOiJIZjViT0hzMXY3UVhvdXZpIn19LHsidmVu\nZG9yX3R5cGUiOiJEaWdpdGFsIEludGVsbGlnZW5jZSBUcmFja2VyIiwiYXBw\nX2lkIjoiMWI1MGE4NmRjMmQxNDE4Mzg4ZmRlZGY3YTBkNDM5YWUiLCJzZXR0\naW5ncyI6e319XQ==\n"}
153</script>
vendor: 1 bytes, line 153
153
154<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/9d6f4550aad572e9f70abb70ae5a6552482cf617ea5e4d5a32ed4ebbb5d60d54.js"></script>
vendor: 1 bytes, line 154
154
155<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/a810ec58aab67d16f8de1c4adf06fc7cc9f4477ec503b9cb1a998741bc692652.js"></script>
vendor: 1 bytes, line 155
155
156<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/8766542902afa60f4adda3c555c06025d2c27771ea85a6fc657a91cddbe5c59f.js"></script>
vendor: 1 bytes, line 156
156
157<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/35cd1f36a4a855bacbaa53900f8e17b376d4cab44c73812eef261aef6435163d.js"></script>
vendor: 1 bytes, line 157
157
158<script>window.CYBERBIZ.initializeSDK.initialize();</script>
vendor: 1 bytes, line 158
158
159<script src="//cdn-general.cybassets.com/frontend/shop/setAffliateCookie-7338a3080043cbaa.js"></script>
159
160
161
162
163
164
165
166<script src="//cdn-general.cybassets.com/frontend/shop/searchPage-7338a3080043cbaa.js"></script>
166
167
168
169    <style id="color_settings">
170  :root {
171    
172      --button: #44580F;
173    
174
175    
176      --button_text: #f0e6a1;
177    
178
179    
180      --accent: #f86f69;
181    
182
183    
184      --heading: #44580F;
185    
186
187    
188      --text: #9A9EA2;
189    
190
191    
192      --price: #f86f69;
193    
194
195    
196      --discount_price: #f86f69;
197    
198
199    
200      --theme_bg: #ecece6;
201    
202
203    
204      --nav_logo_bg: #44580F;
205    
206
207    
208      --nav_menu_bg: #87965e;
209    
210
211    
212      --nav_menu_text: #feeedf;
213    
214
215    
216      --nav_menu_icon: #fce6d3;
217    
218
219    
220      --footer_bg: #D3C1AF;
221    
222
223    
224      --footer_text: #f0f1f2;
225    
226
227    
228      --checkout_button: #000000;
229    
230
231    
232      --checkout_accent: #f86f69;
233    
234
235    
236      --product_border: #E2E2E2;
237    
238
239    
240      --tips_text: #0c4a61;
241    
242
243    
244
245    
246  }
247</style>
248
249
250
251
252  
253        <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 74 bytes, lines 253-254
253
254          <script async src="https://www.googletagmanager.com/gtag/js?id=
254G-37EQ9GTLSB
vendor: 22 bytes, lines 254-255
254"></script>
255          
255<script>
256            window.dataLayer = window.dataLayer || [];
257            function gtag(){dataLayer.push(arguments);}
258            gtag('js', new Date());
259            gtag('config', 'G-37EQ9GTLSB', {"groups":"cyberbiz","custom_map":{"dimension1":"shop_id","dimension2":"customer_id","dimension3":"infinite_scroll","dimension4":"dim_affiliate"},"shop_id":31935,"dim_affiliate":null});
260            gtag('config', 'UA-64017614-1', {"groups":"cyberbiz","custom_map":{"dimension1":"shop_id","dimension2":"customer_id","dimension3":"infinite_scroll","dimension4":"dim_affiliate"},"shop_id":31935,"dim_affiliate":null});
261      </script>
261
262      
262<script>
263        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
264        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
265        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
266        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
267
268        ga('create', '', 'auto', {'name': 'cyberbiz'});
269        ga('cyberbiz.require', 'displayfeatures');
270        ga('cyberbiz.set', 'dimension1', '31935');
271        ga('cyberbiz.require', 'ec');
272        ga('cyberbiz.send', 'pageview');
273      </script>
273
274    
275      
275<script>
vendor: 426 bytes, lines 275-282
275
276      !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
277      n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
278      n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
279      t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
280      document,'script','//connect.facebook.net/en_US/fbevents.js');
281
282      fbq('init', '
282443321086329270
vendor: 38 bytes, lines 282-283
282', {}, {'agent':'plcyberbiz'});
283      
283fbq('track', "PageView", '', { eventID: "PageView_18A4DAAB34AEACAB3C017F196F901F50" });
284      var facebook_pixel_id = '443321086329270'</script>
284
285
286    </head>
287
288  <body style="display: flex; flex-direction: column;"><!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 288-289
288
289            <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
289GTM-MTZZ7GJ
vendor: 105 bytes, lines 289-291
289"
290            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
291          
291<!-- End Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 291-293
291
292      <noscript><iframe
293      src="//www.googletagmanager.com/ns.html?id=
293GTM-TXD9LVJ
vendor: 117 bytes, lines 293-299
293"
294      height="0"
295      width="0"
296      style="display:none;visibility:hidden">
297      </iframe></noscript>
298    
299    
299<!-- Navigation -->
300    <!-- cyb_snippet liquid_helper start -->
301<script>
302	function getDiscountPriceName() {
303		return "false" === "true" ? "" : "";
304	}
305
306	function getDiscountPriceSuggestionName() {
307		return "false" === "true" ? "" : "";
308	}
309
310  document.addEventListener('DOMContentLoaded', function() {
311    const languageHandle = Cookies.get("language");
312    const defaultLanguage = {"handle":"zh-TW","title":"繁體中文","currency_code":"TWD"};
313    const languages = [];
314    const currency = window.shopScriptHelper.defaultCurrency;
315    const currencies = window.shopScriptHelper.currenciesInfo;
316		window.liquidHelper = {
317			shopInternational: false,
318			defaultLanguage: defaultLanguage,
319			language: languages.find(function(l) {
320				return l.handle === languageHandle;
321			}) || defaultLanguage,
322      shopMultipleCurrenciesCheckout: false,
323			shopMultipleCurrencies: false,
324			defaultCurrencyFormat: "NT${{amount_no_decimals}}",
325			defaultCurrency: currency,
326			getCurrency: function() {
327        const currencyValue = Cookies.get("currencyValue") || currency;
328        return currencies.find(function(c) { return c.code === currencyValue; }
329      )},
330      getDefaultCurrency: function() { return currencies.find(function(c) {
331				return c.code === currency;
332			})},
333      getAvailableCurrencies: function() { return currencies.map(c => c.code) },
334      getCurrencyFormatInfo: function(currency) {
335        const currencyInfo = currencies.find(c => c.code === currency)
336        return _.pick(currencyInfo, [
337          'decimal_precision',
338          'symbol',
339          'money_format',
340          'unit',
341          'trailing_zeros',
342          'html_unit',
343          'code',
344        ]);
345      },
346			cartQuantityLimit: (function() {
347        const limit = Number("0" || undefined);
348        return limit <= 0 || isNaN(limit) ? Number.POSITIVE_INFINITY : limit;
349      })(),
350			isFirstVariantSelected:  false ,
351			isImageColorsUsed:  false ,
352			isEmptyClickable:  true ,
353			hasAddBuyProduct: '' !== "" ? true : false,
354			hasPriceWithDiscountPlugin: 'false' ? true : false,
355      conversionBonus: 1,
356      hasLocalizedShopPriceFormat: true,
357      hasCustomerCartPlugin: true,
358      isCartEnabled: true,
359      cdnHost: '//cdn-general.cybassets.com',
360      hasShopCustomPasswordRulePlugin: false,
361      hasDisableProductQuantityValidation: false,
362      hasBreadcrumbReferrerEnabled: false,
363		};
364	});
365</script>
365
366
367<!-- cyb_snippet liquid_helper end -->
368
369<script src='//cdn-general.cybassets.com/frontend/shop/navbarSection-7338a3080043cbaa.js' type='text/javascript'></script>
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386<style>
387  
388    #navbar {
389      --navbar-pc-title-scale: 0.9;
390      --navbar-pc-body-scale: 1.0;
391      --navbar-mobile-title-scale: 0.9;
392      --navbar-mobile-body-scale: 1.0;
393    }
394  
395
396  
397
398  
399</style>
400
401
402  <span id="navbar" class="drawer drawer--left font-size-setting-enabled">
403    <header id="header" class="qk-w--100vw qk-pos--fixed qk-t--0 qk-l--0">
404      
405
406      
407        <div id="announcement-bar"></div>
408      
409
410      
411      
412        <div class="computer_nav qk-hidden--mobile ">
413          <div class="header_logo qk-bg--nav_logo_bg">
414            <div class="qk-pos--rel">
415              <div class="qk-text--center">
416                <!-- logo start -->
417                
418                  <nav class="logo qk-display--il_bk">
419                    <a href="/" class="qk-w--100">
420                      <img
421                        src="//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6"
422                        class="qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--pc_logo qk-hidden--mobile"
423                        style="width: auto; height: 52px;"
424                        alt="HERSTORY 法國有機精油"
425                        height="52"
426                        width="auto"
427                      >
428                    </a>
429                  </nav>
430                
431                <!-- logo end -->
432                <!-- tool-nav start -->
433                
434                  <!-- cyb_snippet tool_nav start -->
435
436
437
438
439
440
441<nav class="tool-nav qk-pos--rel qk-float--r qk-display--flex">
442  <ul class="link_shelf_top qk-display--flex qk-flex--row qk-justify--end qk-align--center qk-pos--abs qk-r--0">
443    
444    
445    <!-- member -->
446    
447      <li class="customer_account qk-pos--rel qk-pd--05">
448        <div class="dropdown qk-pos--static">
449          <div class="qk-cursor--pointer" data-toggle="dropdown">
450            <div data-icon-type="custom_icon_type_account"></div>
451            <span class="text"></span>
452          </div>
453          <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">
454            <ul id="customer-logined-menu" style="display: none">
455              <li>
456                <div class="qk-fs--body qk-text--heading">
457                  <p class="customer-name qk-whitespace-break-spaces"></p>
458                  <p>您好!</p>
459                </div>
460              </li>
461            </ul>
462            <ul id="customer-not-login-menu">
463              <li class="button qk-text--center">
464                <a href="/account/login" class="btn-login qk-btn qk-btn--lg qk-btn--primary qk-w--100">會員登入</a>
465              </li>
466              <li class="button qk-text--center">
467                <a href="/account/signup" class="btn-orders qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent">註冊新會員</a>
468              </li>
469            </ul>
470            <span class="menu-bd qk-bd_t--default qk-bd--product_border"></span>
471            <ul class="member-menu qk-bd_t--default qk-bd--product_border">
472              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
473                <a href="/account/index" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">我的帳戶</a>
474              </li>
475              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
476                <a href="/account/orders" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">訂單查詢</a>
477              </li>
478              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
479                <a href="/account/coupons" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">專屬優惠券</a>
480              </li>
481              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
482                <a href="/account/tracking_items" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">收藏清單</a>
483              </li>
484              <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">
485                <a href="/account/logout" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">會員登出</a>
486              </li>
487            </ul>
488          </div>
489        </div>
490      </li>
491    
492    <!-- for money symbol -->
493    <div id="money-symbol" data-money-symbol="NT${{amount_no_decimals}}" hidden></div>
494    <!-- cart -->
495    
496      <li class="cart qk-pos--rel qk-pd--05">
497        <!--電腦版的購物車選單-->
498        <div class="dropdown qk-pos--static">
499          <div data-toggle="dropdown" class="shopcart qk-cursor--pointer" >
500            <div data-icon-type="custom_icon_type_cart"></div>
501            <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>
502            <span class="global-cart-loading"></span>
503          </div>
504          <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">
505            <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>
506            <p class="cart_empty qk-fs--body qk-text--heading qk-text--center">目前的購物車是空的!</p>
507            <ul>
508              <li class="button qk-text--center">
509                <a class="btn-checkout qk-btn qk-btn--lg qk-btn--primary qk-w--100" href="/cart" style="display: none">立即購買</a>
510                <a class="btn-tracking qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent" href="/account/tracking_items">前往收藏清單</a>
511              </li>
512            </ul>
513          </div>
514        </div>
515      </li>
516    
517    <!-- search -->
518    
519      <li class="search qk-pos--rel qk-pd--05" id="search-icon">
520        <div class="dropdown qk-pos--static">
521          <div class="qk-cursor--pointer" data-toggle="dropdown">
522            <div data-icon-type="custom_icon_type_search"></div>
523          </div>
524          <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">
525            <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-vert--mid">
526              <form action="/search" class="form-inline qk-search_form qk-display--flex qk-justfify--between qk-align--center qk-flex--1">
527                <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="" />
528                <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">搜尋</button>
529              </form>
530            </div>
531          </div>
532        </div>
533      </li>
534    
535    <!-- express delivery -->
536    
537  </ul>
538</nav>
539
540<!-- cyb_snippet tool_nav end -->
541                
542                <!-- tool-nav end -->
543              </div>
544            </div>
545          </div>
546          
547            <div class="header_nav qk-bg--nav_menu_bg">
548              <div class="qk-pd_x--15">
549                <div class="qk-pos--relative center">
550                  <!-- main-nav start -->
551                  <nav class="main_nav qk-display--init">
552                    <!-- cyb_snippet _main_nav_skeleton start --><ul
553    class="main_nav_skeleton link_shelf_top qk-display--flex qk-flex--row qk-flex--wrap qk-justify--center qk-align--center qk-body"
554    style="justify-content: center; visibility: hidden;"
555    aria-hidden="true"
556  ><span>
557        <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>
558      </span><span>
559        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/frontpage" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">有機精油商品</a></li>
560      </span><span>
561        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/massagecourse" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">科學芳療療程</a></li>
562      </span><span>
563        <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>
564      </span><span>
565        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/blogs" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">健康芳療專欄</a></li>
566      </span><span>
567        <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/blogs/最新活動" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">最新活動</a></li>
568      </span><span>
569        <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>
570      </span><span>
571        <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>
572      </span></ul><!-- cyb_snippet _main_nav_skeleton end -->
573                  </nav>
574                  <!-- main-nav end -->
575                </div>
576              </div>
577            </div>
578          
579        </div>
580      
581      <div class="qk-hidden--pc  ">
582        <!-- mobile-nav start -->
583        <nav class="mobile-nav qk-bg--nav_logo_bg">
584          <ul class="qk-display--flex qk-flex--row qk-justify--between qk-align--center qk-pd_x--05 qk-pd_y--0">
585            <!-- menu -->
586            
587              <li class="sidebar-menu-icon drawer-toggle qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center">
588                <div data-icon-type="custom_icon_type_menu"></div>
589              </li>
590            
591            <!-- logo -->
592            
593              <li class="logo qk-mg_r--auto qk-pd_x--05 qk-pd_y--0">
594                
595                  <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--phone">
596                    <img
597                      src="//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM4Mjc4X0xvZ2_ntJTmloflrZcg55m9LnBuZy5wbmciXV0.png?sha=de620915de596789"
598                      height="25"
599                      width="auto"
600                      alt="HERSTORY 法國有機精油"
601                    >
602                  </a>
603                
604                
605                  <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--tablet">
606                    <img
607                      src="//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6"
608                      height="25"
609                      width="auto"
610                      alt="HERSTORY 法國有機精油"
611                    >
612                  </a>
613                
614              </li>
615            
616            
617              <!-- search -->
618              
619                <li class="search qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center ">
620                  <div class="dropdown qk-pos--static qk-text--center">
621                    <div class="qk-cursor--pointer" data-toggle="dropdown">
622                      <div data-icon-type="custom_icon_type_search"></div>
623                    </div>
624                    <div
625                      class="qk-dropdown_menu dropdown-menu qk-w--100vw qk-bg--theme_bg qk-bd--default qk-bd--product_border qk-mg--0"
626                      role="menu"
627                    >
628                      <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-sp_bt--5 qk-w--100">
629                        <form action="/search" class="form-inline qk-display--flex qk-justfify--center qk-flex--1">
630                          <div class="form-inline qk-search_form qk-display--flex qk-justfify--center qk-align--center qk-flex--1">
631                            <input
632                              class="form-control qk-flex--1 qk-inputbox qk-inputbox--lg qk-bg--transparent qk-text--heading"
633                              type="search"
634                              placeholder="搜尋"
635                              aria-label="Search"
636                              name="q"
637                              value=""
638                            >
639                            <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">
640                              搜尋
641                            </button>
642                          </div>
643                        </form>
644                      </div>
645                    </div>
646                  </div>
647                </li>
648              
649              <!-- express delivery -->
650              
651            
652          </ul>
653        </nav>
654        <!-- mobile-nav end -->
655      </div>
656      
657    </header>
657<script>
658      (function () {
659        var isNavbarTransparent = false;
660
661        function measureHeaderOffset() {
662          var header = document.getElementById('header');
663          if (!header) return null;
664
665          var headerHeight = header.getBoundingClientRect().height;
666
667          if (isNavbarTransparent && window.matchMedia('(min-width: 992px)').matches) {
668            var computerNav = document.querySelector('.computer_nav');
669            if (computerNav) {
670              headerHeight -= computerNav.getBoundingClientRect().height;
671            }
672          }
673
674          var floatFilter = document.getElementById('float-filter');
675          var floatFilterHeight = floatFilter
676            ? floatFilter.getBoundingClientRect().height
677            : 0;
678
679          return headerHeight - floatFilterHeight;
680        }
681
682        window.measureHeaderOffset = measureHeaderOffset;
683
684        var offset = measureHeaderOffset();
685        if (offset !== null) {
686          document.body.style.paddingTop = offset + 'px';
687        }
688      })();
689    </script>
689
690    
691      <!-- Sidebar -->
692      <nav class="drawer-nav drawer-nav_width qk-bg--nav_menu_bg " role="navigation">
693        <div class="drawer-menu">
694          <!-- cyb_snippet side_menu start -->
695
696
697<ul id="index_sidebar_shelf_top" class="sidebar qk-pd_b--1">
698  
699    <li class="logo qk-pos--rel qk-bg--nav_logo_bg qk-pd_x--1 qk-pd_y--05">
700      <a href="/" class="qk-pd--0">
701        <img src="//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6" height="32" width="auto" alt="logo">
702      </a>
703      <button class="drawer-toggle qk-pos--abs qk-bg--transparent qk-pd--0"></button>
704    </li>
705  
706  
707    
708
709    
710      <!-- cyb_snippet components/side_menu/menu start -->
711
712  <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>
713
714
715  
716  
717  
718    <li class="qk-pos--rel qk-pd--0">
719      
720        <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>
721      
722    </li>
723  
724
725  
726  
727  
728    <li class="qk-pos--rel qk-pd--0">
729      <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 ">
730        
731          <a class="qk-text--nav_menu_text" href="/collections/frontpage"> 有機精油商品 </a>
732        
733      </button>
734      <ul id="index_sidebar_shelf_second_2" class="collapse_index_sidebar_2 collapse shelf_second  show  qk-pd--0">
735        
736          
737          
738          
739            <li class="qk-pos--rel qk-pd--0">
740              <button class="qk-fw--500 linklist bt-toggle  qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-fs--body qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_2_1" aria-expanded=" true ">
741                
742                  <span class="qk-cursor--pointer qk-text--nav_menu_text"> 熱賣商品 </span>
743                
744              </button>
745              <ul class="collapse_index_sidebar_2_1 collapse shelf_third qk-pd--0 show  qk-bd--nav_menu_text">
746                
747                  
748                  <li class="qk-pos--rel qk-pd--0">
749                    
750                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/sleepy">
751                        舒眠香氣
752                      </a>
753                    
754                  </li>
755                
756                  
757                  <li class="qk-pos--rel qk-pd--0">
758                    
759                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/relax">
760                        療癒好心情香氣
761                      </a>
762                    
763                  </li>
764                
765                  
766                  <li class="qk-pos--rel qk-pd--0">
767                    
768                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/禮盒系列">
769                        送禮首選
770                      </a>
771                    
772                  </li>
773                
774              </ul>
775            </li>
776          
777        
778          
779          
780          
781            <li class="qk-pos--rel qk-pd--0">
782              <button class="qk-fw--500 linklist bt-toggle  qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-fs--body qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_2_2" aria-expanded=" true ">
783                
784                  <span class="qk-cursor--pointer qk-text--nav_menu_text"> 單複方|有機精油 </span>
785                
786              </button>
787              <ul class="collapse_index_sidebar_2_2 collapse shelf_third q
787k-pd--0 show  qk-bd--nav_menu_text">
788                
789                  
790                  <li class="qk-pos--rel qk-pd--0">
791                    
792                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/sleepy">
793                        舒眠|有機精油
794                      </a>
795                    
796                  </li>
797                
798                  
799                  <li class="qk-pos--rel qk-pd--0">
800                    
801                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/relax">
802                        療癒舒壓|有機精油
803                      </a>
804                    
805                  </li>
806                
807                  
808                  <li class="qk-pos--rel qk-pd--0">
809                    
810                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/淨化提神精油">
811                        淨化提神|有機精油
812                      </a>
813                    
814                  </li>
815                
816                  
817                  <li class="qk-pos--rel qk-pd--0">
818                    
819                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/安定情緒精油">
820                        安定情緒|有機精油
821                      </a>
822                    
823                  </li>
824                
825                  
826                  <li class="qk-pos--rel qk-pd--0">
827                    
828                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/迎新開運">
829                        迎新開運|有機精油
830                      </a>
831                    
832                  </li>
833                
834              </ul>
835            </li>
836          
837        
838          
839          
840          
841            <li class="qk-pos--rel qk-pd--0">
842              
843                <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/aroma-mist">
844                  芳療級|淡香水
845                </a>
846              
847            </li>
848          
849        
850          
851          
852          
853            <li class="qk-pos--rel qk-pd--0">
854              
855                <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/周邊商品">
856                  周邊商品|擴香、洗髮餅、花草茶
857                </a>
858              
859            </li>
860          
861        
862          
863          
864          
865            <li class="qk-pos--rel qk-pd--0">
866              
867                <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/禮盒系列">
868                  送禮專區
869                </a>
870              
871            </li>
872          
873        
874      </ul>
875    </li>
876  
877
878  
879  
880  
881    <li class="qk-pos--rel qk-pd--0">
882      
883        <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="/collections/massagecourse">科學芳療療程</a>
884      
885    </li>
886  
887
888  
889  
890  
891    <li class="qk-pos--rel qk-pd--0">
892      <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_4" aria-expanded=" true ">
893        
894          <span class="qk-cursor--pointer qk-text--nav_menu_text"> 芳療課程講座 </span>
895        
896      </button>
897      <ul id="index_sidebar_shelf_second_4" class="collapse_index_sidebar_4 collapse shelf_second  show  qk-pd--0">
898        
899          
900          
901          
902            <li class="qk-pos--rel qk-pd--0">
903              
904                <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/certificate">
905                  自律神經芳療 師資培訓班
906                </a>
907              
908            </li>
909          
910        
911          
912          
913          
914            <li class="qk-pos--rel qk-pd--0">
915              
916                <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/courses">
917                  芳療講座
918                </a>
919              
920            </li>
921          
922        
923      </ul>
924    </li>
925  
926
927  
928  
929  
930    <li class="qk-pos--rel qk-pd--0">
931      <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_5" aria-expanded=" true ">
932        
933          <a class="qk-text--nav_menu_text" href="/blogs"> 健康芳療專欄 </a>
934        
935      </button>
936      <ul id="index_sidebar_shelf_second_5" class="collapse_index_sidebar_5 collapse shelf_second  show  qk-pd--0">
937        
938          
939          
940          
941            <li class="qk-pos--rel qk-pd--0">
942              
943                <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="/blogs/精油百科">
944                  精油百科
945                </a>
946              
947            </li>
948          
949        
950          
951          
952          
953            <li class="qk-pos--rel qk-pd--0">
954              
955                <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="/blogs/自律神經失調">
956                  自律神經失調
957                </a>
958              
959            </li>
960          
961        
962          
963          
964          
965            <li class="qk-pos--rel qk-pd--0">
966              
967                <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="/blogs/芳療與自律神經">
968                  芳療與自律神經
969                </a>
970              
971            </li>
972          
973        
974      </ul>
975    </li>
976  
977
978  
979  
980  
981    <li class="qk-pos--rel qk-pd--0">
982      
983        <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/最新活動">最新活動</a>
984      
985    </li>
986  
987
988  
989  
990  
991    <li class="qk-pos--rel qk-pd--0">
992      <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_7" aria-expanded=" true ">
993        
994          <a class="qk-text--nav_menu_text" href="/pages/about-us"> 關於我們 </a>
995        
996      </button>
997      <ul id="index_sidebar_shelf_second_7" class="collapse_index_sidebar_7 collapse shelf_second  show  qk-pd--0">
998        
999          
1000          
1001          
1002            <li class="qk-pos--rel qk-pd--0">
1003              
1004                <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="/pages/品牌故事">
1005                  品牌故事
1006                </a>
1007              
1008            </li>
1009          
1010        
1011          
1012          
1013          
1014            <li class="qk-pos--rel qk-pd--0">
1015              
1016                <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="/pages/媒體報導-20250205160825">
1017                  媒體報導
1018                </a>
1019              
1020            </li>
1021          
1022        
1023          
1024          
1025          
1026            <li class="qk-pos--rel qk-pd--0">
1027              
1028                <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="/pages/我們的堅持">
1029                  我們的堅持
1030                </a>
1031              
1032            </li>
1033          
1034        
1035      </ul>
1036    </li>
1037  
1038
1039  
1040  
1041  
1042    <li class="qk-pos--rel qk-pd--0">
1043      <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_8" aria-expanded=" true ">
1044        
1045          <span class="qk-cursor--pointer qk-text--nav_menu_text"> 企業客製 </span>
1046        
1047      </button>
1048      <ul id="index_sidebar_shelf_second_8" class="collapse_index_sidebar_8 collapse shelf_second  show  qk-pd--0">
1049        
1050          
1051          
1052          
1053            <li class="qk-pos--rel qk-pd--0">
1054              
1055                <span class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-cursor--pointer qk-bg--nav_menu_bg qk-text--nav_menu_text">
1056                  品牌香氣設計
1057                </span>
1058              
1059            </li>
1060          
1061        
1062          
1063          
1064          
1065            <li class="qk-pos--rel qk-pd--0">
1066              
1067                <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="/pages/企業合作案例">
1068                  企業合作案例
1069                </a>
1070              
1071            </li>
1072          
1073        
1074      </ul>
1075    </li>
1076  
1077
1078
1079<script>
1080  $('button a').on('click', function(e) {e.stopPropagation()});
1081</script>
1081
1082
1083<!-- cyb_snippet components/side_menu/menu end -->
1084    
1085  
1086  
1087    
1088      <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>
1089      <li class="qk-pos--rel qk-pd--0">
1090        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
1091          <a href="/account/index" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">我的帳戶</a>
1092        </div>
1093      </li>
1094      <li class="qk-pos--rel qk-pd--0">
1095        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
1096          <a href="/account/orders" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">訂單查詢</a>
1097        </div>
1098      </li>
1099      <li class="qk-pos--rel qk-pd--0">
1100        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
1101          <a href="/account/logout" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">會員登出</a>
1102        </div>
1103      </li>
1104      <li class="qk-pos--rel qk-pd--0">
1105        <a href="/account/login">
1106          <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 ">
1107            <span class="qk-text--nav_menu_bg qk-fw--500 qk-fs--body">
1108              會員登入
1109            </span>
1110          </div>
1111        </a>
1112      </li>
1113      <li class="qk-pos--rel qk-pd--0">
1114        <a href="/account/signup">
1115          <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">
1116            <span class="qk-text--nav_menu_text qk-fs--body qk-fw--500">
1117              註冊新會員
1118            </span>
1119          </div>
1120        </a>
1121      </li>
1122    
1123    
1124    
1125    
1126  
1127</ul>
1128
1129<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/sidebar-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
1130
1131<script>
1132  $(document).ready(function(){
1133    // 側邊選單
1134    if ($('.drawer').length){
1135      $('.drawer').drawer();
1136      $('.bt-toggle').click(function(){
1137        setTimeout(function(){
1138          $('.drawer')[0].iScroll.refresh()
1139        },500)
1140      })
1141    }
1142  });
1143</script>
1143
1144
1145
1146<!-- cyb_snippet side_menu end -->
1147
1148        </div>
1149      </nav>
1150      <!-- Bottombar -->
1151      
1152        <div
1153          id="mobile-bottom-bar"
1154          class="qk-display--flex qk-justify--around qk-bg--nav_logo_bg qk-w--100vw qk-pos--fixed qk-b--0 qk-hidden--pc"
1155        >
1156          <!-- home -->
1157          <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">
1158            <a id="home-nav-icon" href="/">
1159              <div data-icon-type="custom_icon_type_home"></div>
1160            </a>
1161          </div>
1162          <!-- tracking items -->
1163          <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">
1164            <a href="/account/tracking_items">
1165              <div data-icon-type="custom_icon_type_tracking_items" c></div>
1166            </a>
1167          </div>
1168          <!-- cart -->
1169          
1170            <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">
1171              <a
1172                href="/cart"
1173                class="qk-display--il_flex qk-flex--row qk-justify--center qk-align--center qk-vert--mid qk-pos--rel"
1174              >
1175                <div data-icon-type="custom_icon_type_cart"></div>
1176                <span
1177                  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"
1178                  style="display: none;"
1179                  >0</span
1180                >
1181              </a>
1182            </div>
1183          
1184          <!-- member -->
1185          
1186            <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">
1187              <a id="customer-phone-nav-icon" href="/account/login">
1188                <div data-icon-type="custom_icon_type_account"></div>
1189              </a>
1190            </div>
1191          
1192        </div>
1193      
1194    
1195  </span>
1196
1197<div id="index-popular-tags"></div>
1198
1199<style id="timer_color">
1200  :root {
1201    
1202      --timer_text: #c39d6f;
1203    
1204
1205    
1206      --timer_bg: #2b2b6e;
1207    
1208  }
1209</style>
1210
1211<script>
1212  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":"問題å
1212…§å®¹","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天免費鑑è³
1212žæœŸï¼ˆå«ä¾‹å‡æ—¥ï¼‰ã€‚退換貨時請保持原包裝商品的完整(包含購買商品,附件,贈品等)。\u003cbr\u003e 3. 收到申請後,我們將與您聯繫取回商品。若有任何退貨問題,您可以在『訂單明細』中,點選『我要詢問』,請勿自行寄回商品。\u003cbr\u003e 4. 收到您的退貨商品並審查通過後,將於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":"謝謝您的å¯
1212¶è²´æ„è¦‹","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":"定期定額","check_account_length":"請檢查銀行帳號長度"}
1213  $(document).ready(function(){
1214    if(window.location.pathname != '' && window.location.pathname != '/' ){
1215      document.getElementById('index-popular-tags').style.display = 'none'
1216    }
1217    // 倒數計時
1218    
1219
1220    function adjustContentTop() {
1221      const offset = window.measureHeaderOffset();
1222      if (offset === null) return;
1223      $("body").css({ "padding-top": offset + "px" });
1224    }
1225
1226    window.adjustContentTop = adjustContentTop;
1227
1228    // navbar設定透明
1229    
1230
1231    // Call it first once DOM is ready to prevent CLS
1232    adjustContentTop();
1233
1234    // 延遲初始化,等待 app banner 初始化完成
1235    $(window).on("resize", adjustContentTop);
1236
1237    // 使用 setTimeout 確保 banner 狀態已經確定
1238    $(window).on("load", function() {
1239      setTimeout(function() {
1240        adjustContentTop();
1241      }, 200); // 給 banner 足夠時間初始化
1242    });
1243
1244    $('img.header_banner').on('load', adjustContentTop);
1245
1246    window.renderNavbarSection('.main_nav', {
1247        navbarCollections: null,
1248        navbarItems: [{"id":1550651,"title":"首頁","url":"/","item_type":"frontpage","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1555210,"title":"有機精油商品","url":"/collections/frontpage","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1559140,"title":"熱賣商品","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1559145,"title":"舒眠香氣","url":"/collections/sleepy","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559146,"title":"療癒好心情香氣","url":"/collections/relax","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559147,"title":"送禮首選","url":"/collections/禮盒系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1559141,"title":"單複方|有機精油","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1559148,"title":"舒眠|有機精油","url":"/collections/sleepy","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559149,"title":"療癒舒壓|有機精油","url":"/collections/relax","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559150,"title":"淨化提神|有機精油","url":"/collections/淨化提神精油","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559151,"title":"安定情緒|有機精油","url":"/collections/安定情緒精油","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559152,"title":"迎新開運|有機精油","url":"/collections/迎新開運","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1559142,"title":"芳療級|淡香水","url":"/collections/aroma-mist","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559144,"title":"周邊商品|擴香、洗髮餅、花草茶","url":"/collections/周邊商品","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559154,"title":"送禮專區","url":"/collections/禮盒系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1559119,"title":"科學芳療療程","url":"/collections/massagecourse","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1555211,"title":"芳療課程講座","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1559099,"title":"自律神經芳療 師資培訓班","url":"/collections/certificate","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559137,"title":"芳療講座","url":"/collections/courses","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1550656,"title":"健康芳療專欄","url":"/blogs","item_type":"http","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1558583,"title":"精油百科","url":"/blogs/精油百科","item_type":"blog","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1558929,"title":"自律神經失調","url":"/blogs/自律神經失調","item_type":"blog","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559005,"title":"芳療與自律神經","url":"/blogs/芳療與自律神經","item_type":"blog","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1558920,"title":"最新活動","url":"/blogs/最新活動","item_type":"blog","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1550654,"title":"關於我們","url":"/pages/about-us","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1559134,"title":"品牌故事","url":"/pages/品牌故事","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1558890,"title":"媒體報導","url":"/pages/媒體報導-20250205160825","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1559155,"title":"我們的堅持","url":"/pages/我們的堅持","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1555213,"title":"企業客製","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1555231,"title":"品牌香氣設計","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1558981,"title":"企業合作案例","url":"/pages/企業合作案例","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null}]}],
1249        settings: {
1250          menuDisplayStyle: "three_dimension_menu",
1251          pcLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6",
1252          mobileLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjMxOTM1L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTM2MDY3X0xvZ2_ntJTmloflrZdf6YeRLnBuZy5wbmciXV0.png?sha=7a04bffc14b601d6",
1253          navbarDisplayStyle: "displayDefault",
1254        }
1255      }
1256    );
1257
1258
1259    // for link menu
1260    const linkMenuElement = document.querySelector('.link-nav');
1261    const data = []
1262    data.forEach((item) => {
1263      const wrapper = document.createElement('a');
1264      const link = document.createElement('ul');
1265
1266      wrapper.href = item.url;
1267      link.textContent = item.title;
1268      link.classList.add('link-item');
1269
1270      wrapper.appendChild(link);
1271      linkMenuElement.appendChild(wrapper);
1272    });
1273
1274    // for safe-area space on iOS devices
1275    const userAgent = navigator.userAgent;
1276    const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;
1277    const isLiff = /Line\/[\d.]+/i.test(userAgent);
1278    const $mobileBottomBar = $('#mobile-bottom-bar');
1279
1280    if ($mobileBottomBar.length && isIOS && isLiff) {
1281      $mobileBottomBar.addClass('is-ios-liff');
1282    }
1283  });
1284  document.addEventListener('DOMContentLoaded', function() {
1285    window.getCartAmount = function() {
1286      return parseInt($('.global-cart-count').html());
1287    };
1288  });
1289</script>
1289
1290
1291<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/navbar-7338a3080043cbaa.js' type='text/javascript'></script>
vendor: 1 bytes, line 1291
1291
1292<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/currencies-7338a3080043cbaa.js' type='text/javascript'></script>
1292
1293<!-- cyb_snippet i18n_modal start -->
1294
1295
1296<!-- cyb_snippet i18n_modal end -->
1297<!-- cyb_snippet _load_fonts start -->
1298<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/load_fonts-7338a3080043cbaa.js' type='text/javascript'></script>
vendor: 1 bytes, line 1298
1298
1299<script>
1300  document.addEventListener('DOMContentLoaded', function() {
1301    window.loadFontSetting("{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}")
1302  })
1303</script>
1303
1304
1305<!-- cyb_snippet _load_fonts end -->
1306<!-- cyb_snippet _custom_icon start -->
1307<script src='//cdn-general.cybassets.com/frontend/shop/navIcon-7338a3080043cbaa.js' type='text/javascript'></script>
1307
1308
1309<script>
1310  (function() {
1311    const iconUrlMap = new Map([
1312      ['custom_icon_type_home', null],
1313      ['custom_icon_type_tracking_items', null],
1314      ['custom_icon_type_account', null],
1315      ['custom_icon_type_cart', null],
1316      ['custom_icon_type_search', null],
1317      ['custom_icon_type_menu', null]
1318    ]);
1319    const elements = document.querySelectorAll('[data-icon-type]');
1320    elements.forEach((element, index) => {
1321      const iconAttributes = element.getAttribute('data-icon-type');
1322
1323      const uniqueId = `icon_${iconAttributes}_${index}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
1324      element.id = uniqueId;
1325      window.renderNavCustomIcon(`#${uniqueId}`, {
1326        navIconStyle: "icon_type_default",
1327        customIconUrl: iconUrlMap.get(iconAttributes) || '',
1328        iconAttributes: iconAttributes,
1329        currentTemplate: "search",
1330      });
1331    });
1332  })();
1333</script>
1333
1334
1335<!-- cyb_snippet _custom_icon end -->
1336
1337
1338
1339    
1340  
1341    
1341<script src='//cdn-general.cybassets.com/frontend/shop/announcementBar-7338a3080043cbaa.js' type='text/javascript'></script>
1341
1342
1343    
1344
1345    
1346
1347    
1347<script>
1348      $(document).ready(function() {
1349        window.renderAnnouncementBar('#announcement-bar', {
1350          sectionId: "announcement_bar",
1351          isIndex: false,
1352        });
1353      });
1354    </script>
1354
1355  
1356
1357
1358
1359
1360
1361    <!-- template -->
1362    <div id="template" style="flex:1 0 auto; background-color: var(--theme_bg);">
1363      <!-- cyb_snippet breadcrumb start -->
1364
1365<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/breadcrumb-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
1366
1367
1368<div id="site_path" class="qk-bd_b--default qk-bd--product_border">
1369  <!-- mobile: toggle button (hidden on PC) -->
1370  <div class="qk-container qk-hidden--pc">
1371    <div class="breadcrumb qk-bg--theme_bg qk-pd_x--0 qk-mg--0 qk-fs--breadcrumb">
1372      <button
1373        class="bt-toggle qk-bg--theme_bg qk-pd_x--0 qk-w--100 qk-text--left qk-bd--none qk-pos--rel collapsed"
1374        data-toggle="collapse"
1375        data-target=".breadcrumb-content"
1376      >
1377        <a href="/" class="qk-text--text">
1378          <i class="fas fa-home"></i>
1379        </a>
1380      </button>
1381    </div>
1382  </div>
1383  <!-- breadcrumb nav: single DOM, PC always visible, mobile as collapse dropdown -->
1384  <div class="breadcrumb-content qk-bg--theme_bg collapse">
1385    <div class="qk-container">
1386      <!-- cyb_snippet breadcrumb_nav start -->
1387<!-- 主題版型麵包屑 -->
1388<nav aria-label="breadcrumb">
1389  <ol
1390    class="breadcrumb qk-bg--theme_bg qk-pd_x--0 qk-mg--0 qk-fs--breadcrumb"
1391    itemscope
1392    itemtype="http://schema.org/BreadcrumbList"
1393  >
1394    
1395      <li
1396        class="breadcrumb-item
1397        
1398        "
1399        itemprop="itemListElement"
1400        itemscope itemtype="http://schema.org/ListItem">
1401        <!-- home -->
1402        
1403          <a href="/" class="qk-text--text" itemprop="item">
1404            <i class="fas fa-home"></i>
1405            <span class="qk-display--none" itemprop="name">首頁</span>
1406          </a>
1407        <!-- account -->
1408        
1409        <meta itemprop="position" content="1"/>
1410      </li>
1411    
1412      <li
1413        class="breadcrumb-item
1414        
1415         active "
1416        itemprop="itemListElement"
1417        itemscope itemtype="http://schema.org/ListItem">
1418        <!-- home -->
1419        
1420          <a href="/search" class="qk-text--text" itemprop="item">
1421            <span itemprop="name">搜尋頁</span>
1422          </a>
1423        <!-- register -->
1424        
1425        <meta itemprop="position" content="2"/>
1426      </li>
1427    
1428  </ol>
1429</nav>
1430<script>
1431  $(document).ready(function () {
1432    if (!window.liquidHelper || !window.liquidHelper.hasBreadcrumbReferrerEnabled) return;
1433
1434    var $collections = $('[data-breadcrumb-links]');
1435    if (!$collections.length) return;
1436
1437    var refMatch = document.referrer.match(/\/collections\/([^/?#]+)/);
1438    if (!refMatch || refMatch[1] === 'all') return;
1439
1440    var referrerHandle = decodeURIComponent(refMatch[1]);
1441
1442    function getCollectionHandle(url) {
1443      if (!url) return null;
1444      try {
1445        var pathname = new URL(url, location.origin).pathname;
1446        var parts = pathname.split('/');
1447        var idx = parts.indexOf('collections');
1448        if (idx === -1 || !parts[idx + 1]) return null;
1449        return decodeURIComponent(parts[idx + 1]);
1450      } catch (e) {
1451        return null;
1452      }
1453    }
1454
1455    var $link = $collections.find('a').filter(function () {
1456      return getCollectionHandle(this.href) === referrerHandle;
1457    });
1458
1459    if ($link.length) {
1460      $collections.siblings('a.qk-text--accent[href="#"]').remove();
1461      $collections.empty().append($link);
1462    }
1463  });
1464</script>
1464
1465
1466<!-- cyb_snippet breadcrumb_nav end -->
1467    </div>
1468  </div>
1469</div>
1470
1471
1472<!-- cyb_snippet breadcrumb end -->
1473
1474
1475<div id="search">
1476  <div class="qk-container">
1477    <div class="row qk-justify--center">
1478      <!-- 側邊列表 start -->
1479      
1480        <div class="qk-hidden--mobile qk-w--20">
1481          <!-- cyb_snippet side_menu start -->
1482
1483
1484<ul id="collection_menu_shelf_top" class="sidebar qk-pd_b--1">
1485  
1486  
1487    
1488
1489    
1490      <!-- cyb_snippet components/side_menu/menu start -->
1491
1492
1493  
1494  
1495  
1496    <li class="qk-pos--rel qk-pd--0">
1497      
1498        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/">首頁</a>
1499      
1500    </li>
1501  
1502
1503  
1504  
1505  
1506    <li class="qk-pos--rel qk-pd--0">
1507      <button class="linklist bt-toggle qk-fw--bold  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_2" aria-expanded=" false ">
1508        
1509          <a class="qk-text--heading" href="/collections/frontpage"> 有機精油商品 </a>
1510        
1511      </button>
1512      <ul id="collection_menu_shelf_second_2" class="collapse_collection_menu_2 collapse shelf_second  qk-pd--0">
1513        
1514          
1515          
1516          
1517            <li class="qk-pos--rel qk-pd--0">
1518              <button class="qk-fw--500 linklist bt-toggle  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-text--heading qk-fs--body qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_2_1" aria-expanded=" false ">
1519                
1520                  <span class="qk-cursor--pointer qk-text--heading"> 熱賣商品 </span>
1521                
1522              </button>
1523              <ul class="collapse_collection_menu_2_1 collapse shelf_third qk-pd--0 qk-bd--nav_menu_text">
1524                
1525                  
1526                  <li class="qk-pos--rel qk-pd--0">
1527                    
1528                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/sleepy">
1529                        舒眠香氣
1530                      </a>
1531                    
1532                  </li>
1533                
1534                  
1535                  <li class="qk-pos--rel qk-pd--0">
1536                    
1537                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/relax">
1538                        療癒好心情香氣
1539                      </a>
1540                    
1541                  </li>
1542                
1543                  
1544                  <li class="qk-pos--rel qk-pd--0">
1545                    
1546                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/禮盒系列">
1547                        送禮首選
1548                      </a>
1549                    
1550                  </li>
1551                
1552              </ul>
1553            </li>
1554          
1555        
1556          
1557          
1558          
1559            <li class="qk-pos--rel qk-pd--0">
1560              <button class="qk-fw--500 linklist bt-toggle  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-text--heading qk-fs--body qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_2_2" aria-expanded=" false ">
1561                
1562                  <span class="qk-cursor--pointer qk-text--heading"> 單複方|有機精油 </span>
1563                
1564              </button>
1565              <ul class="collapse_collection_menu_2_2 collapse shelf_third qk-pd--0 qk-bd--nav_menu_text">
1566                
1567                  
1568                  <li class="qk-pos--rel qk-pd--0">
1569                    
1570                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/sleepy">
1571                        舒眠|有機精油
1572                      </a>
1573                    
1574                  </li>
1575                
1576                  
1577                  <li class="qk-pos--rel qk-pd--0">
1578                    
1579                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/relax">
1580                        療癒舒壓|有機精油
1581                      </a>
1582                    
1583                  </li>
1584                
1585                  
1586                  <li class="qk-pos--rel qk-pd--0">
1587                    
1588                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/淨化提神精油">
1589                        淨化提神|有機精油
1590                      </a>
1591                    
1592                  </li>
1593                
1594                  
1595                  <li class="qk-pos--rel qk-pd--0">
1596                    
1597                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/安定情緒精油">
1598                        安定情緒|有機精油
1599                      </a>
1600                    
1601                  </li>
1602                
1603                  
1604                  <li class="qk-pos--rel qk-pd--0">
1605                    
1606                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--theme_bg qk-fs--body qk-text--heading" href="/collections/迎新開運">
1607                        迎新開運|有機精油
1608                      </a>
1609                    
1610                  </li>
1611                
1612              </ul>
1613            </li>
1614          
1615        
1616          
1617          
1618          
1619            <li class="qk-pos--rel qk-pd--0">
1620              
1621                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/aroma-mist">
1622                  芳療級|淡香水
1623                </a>
1624              
1625            </li>
1626          
1627        
1628          
1629          
1630          
1631            <li class="qk-pos--rel qk-pd--0">
1632              
1633                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/周邊商品">
1634                  周邊商品|擴香、洗髮餅、花草茶
1635                </a>
1636              
1637            </li>
1638          
1639        
1640          
1641          
1642          
1643            <li class="qk-pos--rel qk-pd--0">
1644              
1645                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/禮盒系列">
1646                  送禮專區
1647                </a>
1648              
1649            </li>
1650          
1651        
1652      </ul>
1653    </li>
1654  
1655
1656  
1657  
1658  
1659    <li class="qk-pos--rel qk-pd--0">
1660      
1661        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/massagecourse">科學芳療療程</a>
1662      
1663    </li>
1664  
1665
1666  
1667  
1668  
1669    <li class="qk-pos--rel qk-pd--0">
1670      <button class="linklist bt-toggle qk-fw--bold  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_4" aria-expanded=" false ">
1671        
1672          <span class="qk-cursor--pointer qk-text--heading"> 芳療課程講座 </span>
1673        
1674      </button>
1675      <ul id="collection_menu_shelf_second_4" class="collapse_collection_menu_4 collapse shelf_second  qk-pd--0">
1676        
1677          
1678          
1679          
1680            <li class="qk-pos--rel qk-pd--0">
1681              
1682                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/certificate">
1683                  自律神經芳療 師資培訓班
1684                </a>
1685              
1686            </li>
1687          
1688        
1689          
1690          
1691          
1692            <li class="qk-pos--rel qk-pd--0">
1693              
1694                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/courses">
1695                  芳療講座
1696                </a>
1697              
1698            </li>
1699          
1700        
1701      </ul>
1702    </li>
1703  
1704
1705  
1706  
1707  
1708    <li class="qk-pos--rel qk-pd--0">
1709      <button class="linklist bt-toggle qk-fw--bold  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_5" aria-expanded=" false ">
1710        
1711          <a class="qk-text--heading" href="/blogs"> 健康芳療專欄 </a>
1712        
1713      </button>
1714      <ul id="collection_menu_shelf_second_5" class="collapse_collection_menu_5 collapse shelf_second  qk-pd--0">
1715        
1716          
1717          
1718          
1719            <li class="qk-pos--rel qk-pd--0">
1720              
1721                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/blogs/精油百科">
1722                  精油百科
1723                </a>
1724              
1725            </li>
1726          
1727        
1728          
1729          
1730          
1731            <li class="qk-pos--rel qk-pd--0">
1732              
1733                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/blogs/自律神經失調">
1734                  自律神經失調
1735                </a>
1736              
1737            </li>
1738          
1739        
1740          
1741          
1742          
1743            <li class="qk-pos--rel qk-pd--0">
1744              
1745                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/blogs/芳療與自律神經">
1746                  芳療與自律神經
1747                </a>
1748              
1749            </li>
1750          
1751        
1752      </ul>
1753    </li>
1754  
1755
1756  
1757  
1758  
1759    <li class="qk-pos--rel qk-pd--0">
1760      
1761        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/blogs/最新活動">最新活動</a>
1762      
1763    </li>
1764  
1765
1766  
1767  
1768  
1769    <li class="qk-pos--rel qk-pd--0">
1770      <button class="linklist bt-toggle qk-fw--bold  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_7" aria-expanded=" false ">
1771        
1772          <a class="qk-text--heading" href="/pages/about-us"> 關於我們 </a>
1773        
1774      </button>
1775      <ul id="collection_menu_shelf_second_7" class="collapse_collection_menu_7 collapse shelf_second  qk-pd--0">
1776        
1777          
1778          
1779          
1780            <li class="qk-pos--rel qk-pd--0">
1781              
1782                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/pages/品牌故事">
1783                  品牌故事
1784                </a>
1785              
1786            </li>
1787          
1788        
1789          
1790          
1791          
1792            <li class="qk-pos--rel qk-pd--0">
1793              
1794                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/pages/媒體報導-20250205160825">
1795                  媒體報導
1796                </a>
1797              
1798            </li>
1799          
1800        
1801          
1802          
1803          
1804            <li class="qk-pos--rel qk-pd--0">
1805              
1806                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/pages/我們的堅持">
1807                  我們的堅持
1808                </a>
1809              
1810            </li>
1811          
1812        
1813      </ul>
1814    </li>
1815  
1816
1817  
1818  
1819  
1820    <li class="qk-pos--rel qk-pd--0">
1821      <button class="linklist bt-toggle qk-fw--bold  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_8" aria-expanded=" false ">
1822        
1823          <span class="qk-cursor--pointer qk-text--heading"> 企業客製 </span>
1824        
1825      </button>
1826      <ul id="collection_menu_shelf_second_8" class="collapse_collection_menu_8 collapse shelf_second  qk-pd--0">
1827        
1828          
1829          
1830          
1831            <li class="qk-pos--rel qk-pd--0">
1832              
1833                <span class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-cursor--pointer qk-bg--theme_bg qk-text--heading">
1834                  品牌香氣設計
1835                </span>
1836              
1837            </li>
1838          
1839        
1840          
1841          
1842          
1843            <li class="qk-pos--rel qk-pd--0">
1844              
1845                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/pages/企業合作案例">
1846                  企業合作案例
1847                </a>
1848              
1849            </li>
1850          
1851        
1852      </ul>
1853    </li>
1854  
1855
1856
1857<script>
1858  $('button a').on('click', function(e) {e.stopPropagation()});
1859</script>
1859
1860
1861<!-- cyb_snippet components/side_menu/menu end -->
1862    
1863  
1864  
1865</ul>
1866
1867<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/sidebar-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
1868
1869<script>
1870  $(document).ready(function(){
1871    // 側邊選單
1872    if ($('.drawer').length){
1873      $('.drawer').drawer();
1874      $('.bt-toggle').click(function(){
1875        setTimeout(function(){
1876          $('.drawer')[0].iScroll.refresh()
1877        },500)
1878      })
1879    }
1880  });
1881</script>
1881
1882
1883
1884<!-- cyb_snippet side_menu end -->
1885
1886        </div>
1887      
1888      <!-- 側邊列表 end -->
1889      <div id="search-result" class="col-md-9 col-xs-12 qk-mg_b--5"></div>
1890    </div>
1891  </div>
1892</div>
1893
1894
1895  <!-- Scupio -->
1896  
1896<script type="text/javascript">
1897    if(document.querySelector("meta[name=\"scupio_mid\"]")){
1898    mid = document.querySelector("meta[name=\"scupio_mid\"]").content;
1899              }else{
1900                mid = "";
1901              }
1902              (window._bwtm = window._bwtm || []).push(
1903                {
1904                  "mid": mid,
1905                  "pid": "search",
1906                  "kw": null,
1907    "sitem": "",
1908    "uid": "",
1909    "pi": "0"
1910    });
1911  </script>
1911
1912  <!-- End of Scupio -->
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923<script>
1924  document.addEventListener('DOMContentLoaded', function() {
1925    renderSearchPage('#search-result', {
1926      cartEnabled: true,
1927      productScale: "default_scale",
1928      displayProductTotalSold: false,
1929      showPeriodicLabel: false,
1930      discountPriceSloganUrl: '//cdn-general.cybassets.com/theme_src/beta_theme/default_img/onsale_icon.png',
1931      isUpcomingProductsEnabled: false,
1932      productSloganDisplay: false,
1933      productTextAlign: "start",
1934      hasIntegratedProductLabelsPlugin: true,
1935      isDisplayPriceRange: null,
1936      productCardHoverEffect: "button",
1937      productImageBorderRadius:0
1938    });
1939  })
1940</script>
1940
1941
1942<!-- cyb_snippet new_addcart_modal start -->
1943<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vue_product_modal-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
1944
1945<div id="new-addcart-modal" class="container">
1946  <transition name="modal">
1947    <product-modal
1948      v-if="showProductModal"
1949      :only-description="onlyDescription"
1950      :product-url="popProductUrl"
1951      :color="color"
1952      :is-collection="isCollection"
1953      :is-show-description="isShowDescription"
1954      :is-quick-buy="isQuickBuy"
1955      :selected-variant-id="selectedVariantId"
1956      :categories="categories"
1957      :call-back="checkoutAddToCartCallback"
1958      ref="productModal"
1959    >
1960    </product-modal>
1961  </transition>
1962</div>
1963
1964<!-- cyb_snippet components/product_modal/product_modal start -->
1965<script type="text/x-template" id="product-modal">
1966  <div class="modal-mask qk-h--100 qk-w--100 qk-l--0 qk-t--0 qk-pos--fixed" @click="closeModal">
1967    <div class="modal-content qk-bd--none qk-center qk-bg--theme_bg" :class="{'only-description': onlyDescription}" @click.stop>
1968      <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>
1969      <div class="modal-body custom-scrollbar qk-w--100">
1970        <div v-if="!isLoading">
1971          <div id="checkout-product" class="row">
1972            <div class="col-sm-6 col-xs-4">
1973              <photo-swiper
1974                :mediaItems="swiperItems"
1975                :current-image-index="currentImageIndex"
1976                :current-variant="currentVariant"
1977                :video-after-image="videoAfterImage"
1978              ></photo-swiper>
1979            </div>
1980            <div class="col-sm-6 col-xs-8">
1981              <h4 class="qk-fs--hd2 qk-fw--bold qk-text--heading qk-mg--0" v-html="product.title"></h4>
1982              <p class="product_brief qk-text--text qk-fs--body" v-html="product.brief"></p>
1983              <p class="product_slogan qk-text--heading qk-fs--body" v-html="product.slogan"></p>
1984              <div class="swiper_thumbnails" style="margin-bottom: 10px;">
1985                <swiper-thumbnails
1986                  :mediaItems="swiperItems"
1987                  :current-image-index="currentImageIndex"
1988                  :title="product.title"
1989                  @update-current-image-index="(thumbnailIndex) => { currentImageIndex = thumbnailIndex }"
1990                ></swiper-thumbnails>
1991              </div>
1992              
1993              <div v-if="!hidePrice" style="margin-bottom: 10px;">
1994                
1995                <span class="price-title qk-fs--body qk-fw--500 qk-text--heading">${ priceTitleTag }</span>
1996                
1997                <div>
1998                  <span v-html="variantPrice" class="variant-price qk-fs--hd1 qk-fw--bold" :class="[isDiscountPrice ? 'qk-text--discount_price' : 'qk-text--price']"></span>
1999                  <del v-html="marketPrice" class="variant-del-price qk-fs--body qk-fw--500 qk-text--text"></del>
2000                </div>
2001              </div>
2002              <div v-if="!onlyDescription" class="controls">
2003                <div class="variant-quantity qk-display--flex qk-flex--column">
2004                  <div v-if="hasVariant" class="product-variant-options">
2005                    <div v-for="(option, index) in optionInfo" class="product-variant-option" :class="{'product-variant-option--hidden': shouldHideSingleVariantOptions}">
2006                      <div class="advance variant-select-option" v-if="styledShopMenu==='dropDownType'">
2007                      
2008                        <label>${option.name}</label>
2009                        <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>
2010                        <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}`)">
2011                          <option value="null" class="select_option-hidden">請選擇${option.name}</option>
2012                          <option :style="{ visibility : isMobileSize ? 'hidden' : 'visible' }" v-for="(types) in option.types" :disabled="!types.isValid" :value="types.name">${types.name}</option>
2013                        </select>
2014                        <span class="select_placeholder-color" v-if="currentOption[`option${index + 1}`] === null" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)">請選擇${option.name}</span>
2015                        <span v-else :value="currentOption[`option${index + 1}`]" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)" v-html="currentOption[`option${index + 1}`]"></span>
2016                      </div>
2017                      <advance-option v-else :option-key="'option' + (index + 1)" :option="option" :current-option="currentOption" :toggle-current-option="toggleCurrentOption"/>
2018                    </div>
2019                  </div>
2020                  <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)">
2021                    <div class="list_block custom-scrollbar qk-of_x--hidden">
2022                      <h4 class="qk-text--heading qk-fs--body">此商品參與的優惠活動
2023                      </h4>
2024                      <template v-if="displayPeriodicSalesPages">
2025                        <div v-for="salesPage in product.showableSalesPages" class="discount-list">
2026                          <span class="discount-label qk-fs--breadcrumb qk-bd--default qk-bd--accent qk-bg--white qk-display--il_bk qk-text--accent">定期定額
2027                          </span>
2028                          <a class="discount-title qk-text--accent qk-fs--body" :href="salesPage.path">${ salesPage.title }</a>
2029                        </div>
2030                      </template>
2031                      <template v-for="discounts in discountsList">
2032                        <div v-for="discount in discounts" class="discount-list">
2033                          <a v-if="discount.url" :href="discount.url" class="discount-title qk-text--accent qk-fs--body">
2034                            ${ discount.title }
2035                          </a>
2036                          <span v-else class="discount-title qk-text--accent qk-fs--body">${ discount.title }</span>
2037                        </div>
2038                      </template>
2039                    </div>
2040                  </div>
2041                  <div v-if="showPurchaseControls" class="product-quantity qk-bd--product_border" v-show="!isMobileSize">
2042                    <div class="btn-group qk-w--100" role="group" aria-label="First group">
2043                      <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">-</button>
2044                      <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">
2045                      <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">+</button>
2046                    </div>
2047                  </div>
2048                </div>
2049                <div v-if="showPurchaseControls" class="add-button-wrapper">
2050                  <!-- cyb_snippet _product_modal_button start -->
2051<button
2052  class="btn btn-default add-button qk-cursor--pointer qk-w--100 qk-btn--primary"
2053  :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}"
2054  type="button"
2055  :disabled="isHideAddCartBtn"
2056  @click="addProduct"
2057>
2058  ${ addCartText }
2059</button>
2060
2061<!-- cyb_snippet _product_modal_button end -->
2062                </div>
2063                <div class="product-others qk-fs--body">
2064                  <span class="product-love">
2065                    <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">
2066                      <svg
2067                        width="15"
2068                        height="15"
2069                        viewBox="0 0 24 24"
2070                        fill="none"
2071                        xmlns="http://www.w3.org/2000/svg">
2072                        <path
2073                          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"
2074                          stroke="currentColor"
2075                          stroke-width="2"
2076                          stroke-linecap="round"
2077                          stroke-linejoin="round" />
2078                      </svg>
2079                      加入最愛
2080                    </a>
2081                  </span>
2082                  <span class="product_sold qk-text--text" v-if="false">
2083                    <span>已銷售:
2084                      ${ product.totalSold }
2085                      ä»¶
2086                    </span>
2087                  </span>
2088                  <span class="product_bonus qk-text--text" v-if="true">
2089                    此商品 「 最高 」可以折抵紅利
2090                    <span class="val qk-fw--600 qk-fs--hd2" v-if="currentVariant">${currentVariant.maxUsableBonus}</span>
2091                    <span class="val qk-fw--600 qk-fs--hd2" v-else>${maxUsableBonus}</span>
2092                    點
2093                    <span v-html="bonusToPrice"/>
2094                  </span>
2095                </div>
2096                <div class='product_limit_buy qk-fs--body' v-show="product.minBuy > 0 || product.limitBuy > 0">
2097                  ${limitBuyText}
2098                </div>
2099              </div>
2100            </div>
2101          </div>
2102          <div v-if="isShowDescription" class="row">
2103            <div class="col-sm-12">
2104              
2105                <div v-if="product.bodyHtml">
2106                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2107                    商品介紹
2108                  </h5>
2109                  <div class="ckeditor">
2110                    <div v-html="product.bodyHtml"></div>
2111                  </div>
2112                </div>
2113              
2114              
2115                <div v-if="otherDescriptions['product_description_section_spec']">
2116                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2117                    規格說明
2118                  </h5>
2119                  <div class="ckeditor">
2120                    <div v-html="otherDescriptions['product_description_section_spec']"></div>
2121                  </div>
2122                </div>
2123              
2124              
2125                <div v-if="otherDescriptions['product_description_section_shipping']">
2126                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2127                    運送方式
2128                  </h5>
2129                  <div class="ckeditor">
2130                    <div v-html="otherDescriptions['product_description_section_shipping']"></div>
2131                  </div>
2132                </div>
2133              
2134            </div>
2135          </div>
2136        </div>
2137        <div v-show="isLoading" style="text-align: center; padding-bottom: 20px;">
2138          <i class="fas fa-spinner fa-spin fa-fw fa-2x"></i>
2139        </div>
2140      </div>
2141        <!-- cyb_snippet _product_modal_button_mobile start -->
2142 <div
2143  v-if="showPurchaseControls"
2144  v-show="isMobileSize"
2145  class="mobile_footer"
2146  :class="{'mobile_footer-z': variantSize > 1 }">
2147        <div class="product-quantity">
2148          <div class="btn-group qk-w--100" role="group" aria-label="First group">
2149            <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">-</button>
2150            <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">
2151            <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">+</button>
2152          </div>
2153        </div>
2154        <button
2155          v-if="!isLoading && !onlyDescription"
2156          class="btn btn-mobile add-button qk-btn qk-btn--primary qk-btn--lg"
2157          :class="{selected: isChoose, adding: adding || isHideAddCartBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}"
2158          type="button"
2159          :disabled="isHideAddCartBtn"
2160          @click="addProduct">
2161            ${ addCartText }
2162        </button>
2163</div>
2164<div
2165  class="mobile-modal"
2166  :class="{ 'modal-open': isModalSelectShow && isMobileSize }">
2167        <div class="mobile_modal-content">
2168          <div class="modal_close-button">
2169            <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>
2170          </div>
2171          
2172          <p>請選擇${modalOption.name}</p>
2173          <div class="modal_select-templete qk-display--flex qk-of_y--auto qk-w--100">
2174            <div class="options-container">
2175              <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>
2176            </div>
2177          </div>
2178          <div v-if="variantSize > 1" class="modal_select_footer qk-display--flex">
2179            <button type="button" class="modal_cancel qk-bd--default qk-btn--secondary qk-bd--button qk-text--button" @click="onChangeModalSelect(false,false)">取消</button>
2180            <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>
2181          </div>
2182        </div>
2183</div>
2184
2185<!-- cyb_snippet _product_modal_button_mobile end -->
2186    </div>
2187  </div>
2188</script>
2188
2189
2190<!-- cyb_snippet components/product_modal/color_image_option start -->
2191<script id="color-image-option" type="text/x-template">
2192  <div class="color-image qk-display--flex qk-flex--wrap qk-align--center">
2193    <div class="title">顏色</div>
2194    <div
2195      v-for="(imageColor, index) in imageColors"
2196      :class="{
2197        'focus': !currentOption[optionKey] === option.types[index].name && currentImageIndex === index,
2198        'selected': currentOption[optionKey] === option.types[index].name,
2199        'disabled': !option.types[index].isValid
2200      }"
2201      class="image-option img-flex qk-bd--default qk-bd--transparent qk-display--block qk-pos--rel"
2202      @mouseleave="setCurrentImageIndex(index)"
2203      @mouseover="getOptionImageIndex(index)"
2204      @click="setOption(optionKey, index)"
2205    >
2206      <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image">
2207      <img v-else src="/assets/no-image-large.png" alt="image">
2208    </div>
2209  </div>
2210</script>
2210
2211
2212<script type="text/javascript">
2213  $(document).ready(function() {
2214    window.themeHelper.productModalComponents['color-image-option'] = {
2215      template: '#color-image-option',
2216      delimiters: ['${', '}'],
2217      props: {
2218        optionKey: String,
2219        option: Object,
2220        product: Object,
2221        imageColors: Array,
2222        isChoose: Boolean,
2223        currentImageIndex: Number,
2224        setCurrentImageIndex: Function,
2225        getOptionImageIndex: Function,
2226        currentOption: Object,
2227        toggleCurrentOption: Function,
2228      },
2229      methods: {
2230        setOption: function(optionKey, index) {
2231          const type = this.option.types[index];
2232          if(type.isValid){
2233            this.toggleCurrentOption(optionKey, type.name);
2234          }
2235        }
2236      }
2237    };
2238  });
2239</script>
2239
2240
2241<!-- cyb_snippet components/product_modal/color_image_option end -->
2242<!-- cyb_snippet components/product_modal/advance_option start -->
2243<script id="advance-option" type="text/x-template">
2244  <div class="advance">
2245    <div class="title qk-text--heading qk-fs--body">${option.name}</div>
2246    <div
2247      v-for="type in option.types"
2248      :class="{
2249        'selected': currentOption[optionKey] === type.name,
2250        'disabled': !type.isValid
2251      }"
2252      @click="setOption(optionKey, type)"
2253      class="option qk-btn  qk-bd--button qk-text--button qk-pd_x--1"
2254    >
2255      ${type.name}
2256    </div>
2257  </div>
2258</script>
2258
2259
2260<script type="text/javascript">
2261  $(document).ready(function() {
2262    window.themeHelper.productModalComponents['advance-option'] = {
2263      template: '#advance-option',
2264      delimiters: ['${', '}'],
2265      props: {
2266        optionKey: String,
2267        option: Object,
2268        product: Object,
2269        currentOption: Object,
2270        toggleCurrentOption: Function,
2271      },
2272      methods: {
2273        setOption: function(optionKey, type) {
2274          if(type.isValid){
2275            this.toggleCurrentOption(optionKey, type.name);
2276          }
2277        }
2278      }
2279    };
2280  });
2281</script>
2281
2282
2283<!-- cyb_snippet components/product_modal/advance_option end -->
2284
2285<!-- cyb_snippet components/product_modal/photo_swiper start -->
2286
2287
2288<script id="photo-swiper" type="text/x-template">
2289  <div ref="photoSwiper" id="photo_swiper" class="photos swiper swiper-container">
2290    <div class="swiper-wrapper">
2291      <template v-if="hasImage">
2292        <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">
2293          <video-player v-if="item.url" :video="item"
2294            :video-poster=" !!mediaItems[firstImageIndex] ? mediaItems[firstImageIndex].large : '//cdn-general.cybassets.com/img_loading.svg' "
2295          >
2296          </video-player>
2297          <img v-else class="qk-center" :src="item.large" alt="image"/>
2298        </div>
2299      </template>
2300      <div v-else class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top default_scale">
2301        <img src="//cdn-general.cybassets.com/assets/no-image-large-2b95ea56c455be9ce081d81c14eded925df68bf8fa38809e46f6af8fcdd5f9bc.png" alt="image" />
2302      </div>
2303    </div>
2304    <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>
2305    <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>
2306
2307    <div class="photo-pagination qk-bd--default qk-bd--body qk-text--center qk-text--body qk-fs--breadcrumb qk-visible-sm">
2308        <span class="current-index qk-text--default_dark">${currentImageIndex +1 }</span><span class="pagination-slash">/</span>
2309        <span>${mediaItems.length}</span>
2310      </div>
2311  </div>
2312</script>
2312
2313
2314<script>
2315  $(document).ready(function () {
2316    window.themeHelper.productModalComponents['photo-swiper'] = {
2317      template: '#photo-swiper',
2318      delimiters: ['${', '}'],
2319      props: {
2320        mediaItems: Array,
2321        currentImageIndex: Number,
2322        currentVariant: Object,
2323        videoAfterImage: Boolean,
2324      },
2325      data: function () {
2326        return {
2327          swiper: {},
2328          swiperOption: {
2329            preventInteractionOnTransition: true,
2330            rewind: true,
2331            spaceBetween: 5,
2332            slidesPerView: 1,
2333            navigation: {
2334              nextEl: '.photo-next',
2335              prevEl: '.photo-prev'
2336            }
2337          },
2338          showBtn: true,
2339          isVariantReposition: false,
2340        }
2341      },
2342      mounted: function() {
2343        this.swiper = new Swiper('#photo_swiper', this.swiperOption);
2344        this.swiper.on('slideChange', this.slideOnChange);
2345      },
2346      watch: {
2347        currentImageIndex: function() {
2348          this.slideToIndex();
2349        },
2350        currentVariant: {
2351          immediate: true,
2352          handler: function() {
2353            this.showBtn = this.mediaItems.length > 1;
2354            this.isVariantReposition = true;
2355            this.$nextTick(() => {
2356              if (this.swiper) {
2357                this.swiper.update();
2358                this.swiper.slideToLoop(this.initialItemIndex)
2359                this.slideOnChange();
2360                this.isVariantReposition = false;
2361              }
2362            });
2363          },
2364        },
2365      },
2366      computed: {
2367        hasImage: function() {
2368          return this.mediaItems.length > 0;
2369        },
2370        hasVideo: function() {
2371          return this.mediaItems.findIndex(item => !!item.url) !== -1;
2372        },
2373        variantPhotos: function() {
2374          if (this.currentVariant?.photos?.length) {
2375            return this.currentVariant.photos;
2376          } else  {
2377            return null;
2378          }
2379        },
2380        initialItemIndex: function() {
2381          if (this.hasVideo && !this.videoAfterImage) {
2382            // Focus on photo if "variant with photos" selected, video otherwise
2383            return this.variantPhotos?.length ? 1 : 0;
2384          } else {
2385            // Focus on first photo
2386            return 0;
2387          }
2388        },
2389      },
2390      methods: {
2391        slideOnChange: function() {
2392          themeHelper.EventBus.$emit('photoOnChange', this.swiper.realIndex, this.isVariantReposition);
2393        },
2394        slideToIndex: function() {
2395          if(this.swiper.realIndex != this.currentImageIndex) {
2396            this.swiper.slideToLoop(this.currentImageIndex);
2397            this.swiper.update();
2398          }
2399        },
2400      }
2401    };
2402  });
2403</script>
2403
2404
2405
2406<!-- cyb_snippet components/product_modal/video_player start -->
2407<script id="video-player" type="text/x-template">
2408  <div class="videoPlayer__wrapper" @click="handleVideoClick">
2409    <video 
2410      id='modal-video'
2411      class="videoPlayer__video qk-cursor--pointer qk-center" 
2412      :poster="videoPoster"
2413      loop defaultMuted muted playsinline webkit-playsinline autoplay
2414    >
2415      <source :src="videoUrl" type="video/mp4">
2416      <p>你的瀏覽器不支援 HTML 5 video</p>
2417    </video>
2418    <button id="modal-video-button" class="videoPlayer__pauseButton"></button>
2419  </div>
2420</script>
2420
2421
2422<script>
2423  $(document).ready(function () {
2424    window.themeHelper.productModalComponents['video-player'] = {
2425      template: '#video-player',
2426      delimiters: ['${', '}'],
2427      props: {
2428        video: Object,
2429        videoPoster: String,
2430      },
2431      data: function() {
2432        return {
2433          videoElement: null,
2434          buttonElement: null,
2435        };
2436      },
2437      mounted: function() {
2438        this.videoElement = $('#modal-video')[0];
2439        this.buttonElement = $('#modal-video-button');
2440        this.setVideoVolumeZero();
2441        this.videoElement.addEventListener('canplay', (event) => {
2442          this.sendGtag('play');
2443        }, { once: true });
2444      },
2445      computed: {
2446        videoUrl: function() {
2447          return this.video.url;
2448        }
2449      },
2450      methods: {
2451        sendGtag: function(action) {
2452          window.productVideoView && productVideoView(action);
2453        },
2454        setVideoVolumeZero: function() {
2455          this.videoElement.volume = 0;
2456        },
2457        handleVideoClick: function() {
2458          if (this.videoElement.paused){
2459            this.videoElement.play();
2460            this.sendGtag('play');
2461          } else {
2462            this.videoElement.pause();
2463            this.sendGtag('paused');
2464          }
2465          this.handleVideoButtonDisplay(this.buttonElement, this.videoElement);
2466        },
2467        handleVideoButtonDisplay: function(button, video) {
2468          button.toggleClass('videoPlayer__playButton', video.paused);
2469          button.toggleClass('videoPlayer__pauseButton', !video.paused);
2470        },
2471      }
2472    };
2473  });
2474</script>
2474
2475
2476<!-- cyb_snippet components/product_modal/video_player end -->
2477
2478<!-- cyb_snippet components/product_modal/photo_swiper end -->
2479<!-- cyb_snippet components/product_modal/swiper_thumbnails start -->
2480<script id="swiper-thumbnails" type="text/x-template">
2481  <div
2482    v-for="(thumbnail, index) in allThumbnails"
2483    :key="index"
2484    class="product-thumbnail img-flex qk-of--hidden qk-display--il_bk qk-cursor--pointer qk-bd--default qk-bd--transparent default_scale"
2485    :class="{ focus: index === currentImageIndex }"
2486    @mouseover="updateCurrentImageIndex(index)"
2487  >
2488    <template v-if="thumbnail.isVideo">
2489      <video class="qk-w--100 qk-h--100" :src="thumbnail.url" defaultMuted playsinline></video>
2490      <button class="videoPlayer__playButton"></button>
2491    </template>
2492    <img v-else :src="thumbnail.url" :alt="title" class="qk-w--100 qk-h--100">
2493  </div>
2494</script>
2494
2495
2496<script type="text/javascript">
2497  $(document).ready(function () {
2498    window.themeHelper.productModalComponents['swiper-thumbnails'] = {
2499      template: '#swiper-thumbnails',
2500      delimiters: ['${', '}'],
2501      props: {
2502        title: String,
2503        mediaItems: Array,
2504        currentImageIndex: Number,
2505      },
2506      emits: ['updateCurrentImageIndex'],
2507      methods: {
2508        updateCurrentImageIndex: function(thumbnailIndex) {
2509          if (thumbnailIndex !== this.currentImageIndex ) {
2510            this.$emit('updateCurrentImageIndex', thumbnailIndex);
2511          }
2512        },
2513      },
2514      mounted() {
2515        // can be removed after replacing video thumbnail with img
2516        const thumbnailVideo = $('.product-thumbnail video')[0];
2517        if (!!thumbnailVideo) {
2518          thumbnailVideo.volume = 0;
2519          const promise = thumbnailVideo.play();
2520          promise.then(() => {
2521            thumbnailVideo.pause();
2522          })
2523        }
2524      },
2525      computed: {
2526        allThumbnails: function() {
2527          return this.mediaItems.map(item => ({
2528            isVideo: !!item.url,
2529            url: item.url || item.medium
2530          }));
2531        },
2532      },
2533      watch: {
2534        allThumbnails: {
2535          handler(){
2536            this.updateCurrentImageIndex(this.currentImageIndex);
2537          }
2538        }
2539      }
2540    };
2541  });
2542</script>
2542
2543
2544<!-- cyb_snippet components/product_modal/swiper_thumbnails end -->
2545
2546
2547<!-- cyb_snippet _product_modal_js start -->
2548<script type="text/javascript">
2549  $(document).ready(function() {
2550    var categoryLevels = [];
2551    var productCategoryLevels = null;
2552    var pageMainProductId = null;
2553    window.themeHelper.productModalComponents['product-modal'] = {
2554      template: '#product-modal',
2555      delimiters: [
2556        '${', '}'
2557      ],
2558      props: {
2559        onlyDescription: Boolean,
2560        cartItems: Array,
2561        groupId: Number,
2562        productUrl: String,
2563        color: String, // unused
2564        collectionId: Number,
2565        categories: Array,
2566        // 判斷是否有色票展開
2567        isCollection: {
2568          type: Boolean,
2569          required: false,
2570          default: false,
2571        },
2572        // 判斷加入購物車的方法
2573        isNnCollection: Boolean,
2574        isNewNnCollection: Boolean,
2575        isBundleDiscount: Boolean,
2576
2577        // 判斷是否顯示商品描述
2578        isShowDescription: {
2579          type: Boolean,
2580          default: true
2581        },
2582
2583        // 判斷是否為立即購買
2584        isQuickBuy: {
2585          type: Boolean,
2586          default: false
2587        },
2588        selectedVariantId: Number,
2589        callBack: Function
2590      },
2591      data: function() {
2592        return {
2593          styledShopMenu: "buttonType",
2594          selectOption: '',
2595          selectCurrentStr:'',
2596          isModalSelectShow: false,
2597          modalOption: {},
2598          adding: false,
2599          currentImageIndex: 0,
2600          _navState: { variantId: null, photoIndex: 0 },
2601          currentOption: {
2602            option1: null,
2603            option2: null,
2604            option3: null
2605          },
2606          currentVariant: null,
2607          variantNotifications: null,
2608          currentVariantIndex: null,
2609          product: {},
2610          isChoose: false,
2611          isLoading: true,
2612          isEmptyClickable: liquidHelper.isEmptyClickable,
2613          quantity: 1,
2614          maxUsableBonus: 0,
2615          isDiscountPrice: false,
2616          displayProductDiscountsList: true,
2617          displayPeriodicSalesPages:false,
2618          discountsList: null,
2619          hasVideoPlugin: true,
2620          videoDisplayLocation: "before",
2621          hasStockNotificationPlugin: false,
2622          isDisplayPriceRange: null,
2623          hasVariantPriceRangePlugin: true,
2624          hasHideSingleVariantOptionsPlugin: false,
2625        }
2626      },
2627      mounted: function() {
2628        this.getProductDetail();
2629        $('.custom-scrollbar').addCustomScrollbar();
2630        themeHelper.EventBus.$on('photoOnChange', this.photoOnChange);
2631      },
2632      beforeUnmount: function() {
2633        themeHelper.EventBus.$off('photoOnChange', this.photoOnChange);
2634      },
2635      computed: {
2636        photoUrls: function() {
2637          return this.product.photoUrls.length > 0
2638            ? this.product.photoUrls
2639            : [this.featuredImage];
2640        },
2641        photoUrlsMap: function() {
2642          var map = {};
2643          var urls = this.product.photoUrls;
2644          this.product.photos.forEach(function(photo, index) {
2645            map[photo.photo.id] = urls[index];
2646          });
2647
2648          return map;
2649        },
2650        featuredImage: function() {
2651          return this.product.featuredImage;
2652        },
2653        swiperPhotos: function() {
2654          if (!this.photoUrls.length) {
2655            return [this.featuredImage];
2656          }
2657
2658          if (this.currentVariant && this.currentVariant.photos.length) {
2659            var map = this.photoUrlsMap;
2660            return this.currentVariant.photos.map(function(p) {
2661              return map[p.id];
2662            });
2663          }
2664
2665          return this.photoUrls;
2666        },
2667        productVideo: function() {
2668          return this.product.video;
2669        },
2670        videoAfterImage: function() {
2671          return this.videoDisplayLocation === 'after';
2672        },
2673        swiperItems: function() {
2674          const media = [...this.swiperPhotos];
2675          if (
2676            this.hasVideoPlugin && this.productVideo.url
2677          ) {
2678            this.videoAfterImage
2679              ? media.push(this.productVideo)
2680              : media.unshift(this.productVideo);
2681          }
2682          return media;
2683        },
2684        firstImageIndex: function() {
2685          return this.hasVideoPlugin && this.productVideo.url && !this.videoAfterImage
2686            ? 1
2687            : 0
2688        },
2689        otherDescriptions: function() {
2690          var descriptions = {};
2691          this.product.otherDescriptions.forEach(function(od) {
2692            descriptions[od.settingName] = od.bodyHtml;
2693          })
2694          return descriptions
2695        },
2696        variantOptions: function() {
2697          return themeHelper.variantOptions(this.product);
2698        },
2699        firstValidVariant: function() {
2700          var self = this;
2701          var result = this.product.variants.find(function(variant) {
2702            // 增加 product modal 聯絡店家 property
2703            variant.imgUrl = "";
2704            variant.productTitle = "";
2705
2706            return variant.available;
2707          });
2708
2709          return result
2710            ? result
2711            : null;
2712        },
2713        selectedValidVariant: function() {
2714          var self = this;
2715          var result = this.variantOptions.find(function(variant) {
2716            return variant.id === self.selectedVariantId;
2717          });
2718
2719          return result
2720            ? result
2721            : null;
2722        },
2723        totalInventoryQuantity: function(product) {
2724          return themeHelper.totalInventoryQuantity(this.product)
2725        },
2726        addCartText: function() {
2727          var variants = parseInt("");
2728          let isRegisteredNotification = this.currentVariant && this.variantNotifications && this.variantNotifications[this.currentVariant.id]
2729          if (this.isNnCollection || this.isBundleDiscount) {
2730            if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) {
2731              if (this.currentVariant.inventoryPolicy === 'continue') {
2732                if (this.isNnCollection) {
2733                  return this.isChoose && !this.isNewNnCollection
2734                    ? '已預購'
2735                    : '預購商品';
2736                }
2737              } else {
2738                return '已售完';
2739              }
2740            }
2741            if (this.totalInventoryQuantity === 0) {
2742              return '已售完';
2743            }
2744            return this.isChoose && !this.isNewNnCollection
2745              ? '已選購'
2746              : '選購';
2747          } else {
2748            if (this.isQuickBuy) {
2749              if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) {
2750                if (this.currentVariant.inventoryPolicy === 'continue'){
2751                  return '立即預購'
2752                }
2753                return this.hasStockNotificationPlugin
2754                  ? (isRegisteredNotification
2755                    ? '已登記補貨通知'
2756                    : '已售完,貨到通知我')
2757                  : '聯絡店家'
2758              }
2759              return '立即購買';
2760            } else {
2761              if (this.currentVariant) {
2762                if (!themeHelper.variantIsAvailable(this.currentVariant)) {
2763                  if (this.currentVariant.inventoryPolicy === 'continue'){
2764                    return '預購商品'
2765                  }
2766                  return this.hasStockNotificationPlugin
2767                    ? (isRegisteredNotification
2768                      ? '已登記補貨通知'
2769                      : '已售完,貨到通知我')
2770                    : '聯絡店家'
2771                }
2772              } else {
2773                if (this.totalInventoryQuantity === 0) {
2774                  return '已售完';
2775                }
2776              }
2777              return '加入購物車';
2778            }
2779          }
2780        },
2781        cartItem: function() {
2782          if (!this.currentVariant) {
2783            return null
2784          }
2785          return {
2786            id: this.currentVariant.id,
2787            groupId: this.groupId,
2788            productId: this.product.id,
2789            title: this.product.title,
2790            photo: this.currentVariant.imgUrl || this.featuredImage.large,
2791            quantity: this.quantity,
2792            price: this.currentVariant.price,
2793            variant: this.currentVariant,
2794            product: this.product
2795          }
2796        },
2797        options: function() {
2798          return this.product.options;
2799        },
2800        optionTypes: function() {
2801
2802          // 先根據設定的variants來排序
2803          var self = this;
2804
2805          var option1 = [];
2806          var option2 = [];
2807          var option3 = [];
2808          this.product.variants.forEach(function(item) {
2809            if (item.option1 !== null) {
2810              option1.push(item.option1);
2811            }
2812            if (item.option2 !== null) {
2813              option2.push(item.option2);
2814            }
2815            if (item.option3 !== null) {
2816              option3.push(item.option3);
2817            }
2818          })
2819          var filteredOptionTypes = [];
2820          this.product.optionTypes.forEach(function(item, index) {
2821            filteredOptionTypes.push(self.getUniqueVariant(eval('option' + (
2822              index + 1
2823            ))).join(','));
2824          });
2825          return filteredOptionTypes;
2826        },
2827        optionInfo: function() {
2828          var self = this;
2829
2830          return self.options.map(function(option, index) {
2831            return {
2832              name: option,
2833              types: self.getOptions('option' + (
2834                index + 1
2835              ), self.optionTypes[index].split(','))
2836            }
2837          });
2838        },
2839        hasVariant: function() {
2840          return this.product.options.length > 0;
2841        },
2842        shouldHideSingleVariantOptions: function() {
2843          return this.hasHideSingleVariantOptionsPlugin &&
2844                 this.product.variants &&
2845                 this.product.variants.length <= 1;
2846        },
2847        variantSize: function() {
2848          if(this.product.options){
2849          return this.product.options.length;
2850          }
2851        },
2852        firstVariant: function() {
2853          return this.product.variants[0];
2854        },
2855        firstCheapestVariant: function() {
2856          return this.product.variants.find((v)=> (v.price === this.priceStats.minPrice));
2857        },
2858        priceStats: function() {
2859          return this.product.variants.reduce(function(acc, variant) {
2860            return {
2861              minPrice: variant.price < acc.minPrice ? variant.price : acc.minPrice,
2862              maxPrice: variant.price > acc.maxPrice ? variant.price : acc.maxPrice,
2863            };
2864          }, {
2865            minPrice: this.firstVariant.price,
2866            maxPrice: this.firstVariant.price,
2867          });
2868        },
2869        hidePrice: function() {
2870          return this.product && this.product.hidePrice === true;
2871        },
2872        salesModePurchasable: function() {
2873          return !(this.product && this.product.salesModePurchasable === false);
2874        },
2875         // - 任選折扣/紅配綠:「選擇」只是加進試算清單,不會直接下單,故只擋藏價商品
2876        // - 其他情境(商品頁、群組頁、多層級分類、搜尋、首頁商品區塊):不可購買(含藏價)就整組收掉
2877        showPurchaseControls: function() {
2878          if (this.isNnCollection || this.isBundleDiscount) {
2879            return !this.hidePrice;
2880          }
2881          return this.salesModePurchasable;
2882        },
2883        variantPrice: function() {
2884          if (this.hidePrice) {
2885            return '';
2886          }
2887          var from = liquidHelper.defaultCurrency;
2888          if (this.currentVariant) {
2889            return moneySymbol(this.currentVariant.price, from);
2890          }
2891          if (this.product.variants.length === 1) {
2892            return moneySymbol(this.firstVariant.price, from);
2893          }
2894
2895          var minPrice = this.priceStats.minPrice;
2896          var maxPrice = this.priceStats.maxPrice;
2897
2898          if (minPrice !== maxPrice && (!this.hasVariantPriceRangePlugin || this.isDisplayPriceRange)) {
2899            this.isDiscountPrice = false;
2900            return moneySymbol(minPrice, from) + '~' + moneySymbol(maxPrice, from);
2901          } else {
2902            return moneySymbol(minPrice, from);
2903          }
2904        },
2905        marketPrice: function() {
2906          if (this.hidePrice) {
2907            this.isDiscountPrice = false;
2908            return;
2909          }
2910          var from = liquidHelper.defaultCurrency;
2911          if (this.currentVariant) {
2912            this.isDiscountPrice = false;
2913            if (this.currentVariant.compareAtPrice && this.currentVariant.compareAtPrice > this.currentVariant.price) {
2914              this.isDiscountPrice = true;
2915              return moneySymbol(this.currentVariant.compareAtPrice, from);
2916            }
2917          } else {
2918            if (!_.includes(this.variantPrice, '~')) {
2919              const price =  Number(this.variantPrice.replace(/[^0-9.
2919-]/g, ""))
2920              // 未選擇款式也不顯示區間時,顯示第一個最便宜的款式的定價
2921              if (this.firstCheapestVariant.compareAtPrice && this.firstCheapestVariant.compareAtPrice > price){
2922                this.isDiscountPrice = true;
2923                return moneySymbol(this.firstCheapestVariant.compareAtPrice, from);
2924              }
2925              // 未選擇款式時要改回一般價格顏色
2926              this.isDiscountPrice = false;
2927            }
2928          }
2929        },
2930        isShowDropdownList: function() {
2931          if (this.product.options.length > 0) {
2932            return true;
2933          }
2934          return this.product.variants.length > 1
2935        },
2936        priceTitleTag: function() {
2937          return this.marketPrice
2938            ? getDiscountPriceName()
2939            : getDiscountPriceSuggestionName();
2940        },
2941        isHideAddCartBtn: function() {
2942          if (this.addCartText === '已售完') {
2943            return true;
2944          }
2945          return false;
2946        },
2947        isSecondaryBtn: function() {
2948          if (this.addCartText === '聯絡店家') {
2949            return true;
2950          }
2951          return false;
2952        },
2953        variantsMaxUsableBonus: function() {
2954          var variants = this.product.variants;
2955          var maxUsableBonusArray = variants.map(function(item) {
2956            return item.maxUsableBonus
2957          });
2958          return Math.max.apply(null, maxUsableBonusArray);
2959        },
2960        bonusToPrice: function() {
2961          const bonus = this.currentVariant
2962            ? this.currentVariant.maxUsableBonus
2963            : this.maxUsableBonus;
2964          const price = Math.floor(bonus / window.liquidHelper.conversionBonus);
2965          const priceWithMoney = window.themeHelper.productDisplayCurrencyBlock(price);
2966          return "(約等於 value )".replace('value', priceWithMoney);
2967        },
2968        isMobileSize: function() {
2969          return window.innerWidth <= 580
2970        },
2971        limitBuyText: function () {
2972          const minCount = this.product.minBuy;
2973          const maxCount = this.product.limitBuy;
2974          if (minCount > 0 && maxCount > 0) {
2975            return '此商品每筆訂單最少需購買 minCount 件,最多可購買 maxCount 件'.replace('minCount', minCount).replace('maxCount', maxCount);
2976          }
2977          if (minCount > 0) {
2978            return '此商品每筆訂單最少需購買 minCount 件'.replace('minCount', minCount);
2979          }
2980          if (maxCount > 0) {
2981            return '此商品每筆訂單最多可購買 maxCount 件'.replace('maxCount', maxCount);
2982          }
2983          return '';
2984        }
2985      },
2986      methods: {
2987        onClickSelectModal: function(objData, selectOptionStr) {
2988          this.isModalSelectShow = true;
2989          this.modalOption = objData;
2990          this.selectOption = selectOptionStr
2991          this.selectCurrentStr = this.currentOption && (String(this.currentOption[selectOptionStr]) || null)
2992        },
2993        onChangeModalSelect: function(flag, isSelect) {
2994          if(!isSelect){
2995            this.setOption(this.selectOption,this.selectCurrentStr,this.modalOption.types)
2996          }
2997          this.isModalSelectShow = flag;
2998        },
2999        setOption: function(optionKey, type, dataArr) {
3000          let flag = true
3001          dataArr.forEach(item => {
3002            if (item.name === type) {
3003              flag = item.isValid
3004            }
3005          })
3006          if (flag) {
3007            this.toggleCurrentOption(optionKey, type)
3008          }
3009        },
3010        addToWishListEvent: function() {
3011          try {
3012            if (appMarketAddToWishListEvent) {
3013              var product = this.product;
3014              var currentVariant = this.currentVariant
3015              var element = $(`.btn[data-id=${product.id}]`);
3016              var index;
3017              var listName;
3018              if (element) {
3019                index = element.data('position')
3020                listName = element.data('list')
3021              }
3022              // sku_properties:選中款式的 option pairs(當前語系),類型名 zip 值
3023              var optionValues = [currentVariant.option1, currentVariant.option2, currentVariant.option3];
3024              var properties = [];
3025              (product.options || []).forEach(function(optionName, i) {
3026                if (optionName && optionValues[i]) {
3027                  properties.push({ name: optionName, value: optionValues[i] });
3028                }
3029              });
3030              var dataSet = {
3031                name: product.title,
3032                category: product.productType,
3033                categories: (this.categories && this.categories.length) ? this.categories : (categoryLevels.length ? categoryLevels : (product.id === pageMainProductId ? productCategoryLevels : undefined)),
3034                sku: currentVariant.sku,
3035                price: currentVariant.price,
3036                compare_at_price: currentVariant.compareAtPrice,
3037                properties: properties,
3038                quantity: currentVariant.inventoryQuantity,
3039                variant: currentVariant.title,
3040                listName: listName || null,
3041                productId: product.id,
3042                variantId: currentVariant.id,
3043                index: Number(index) || 0,
3044              }
3045              appMarketAddToWishListEvent(dataSet)
3046            }
3047          } catch (e) {
3048            console.error(e)
3049          }
3050        },
3051        addWishList: function() {
3052          if (this.currentVariant === null) {
3053            window.msg('請選擇商品款式', 'warning').show();
3054            return;
3055          }
3056          var productVariantId = this.currentVariant.id;
3057          var addToWishListEvent = this.addToWishListEvent
3058          $.ajax({
3059            method: 'POST',
3060            url: '/tracking_items',
3061            dataType: 'json',
3062            data: {
3063              product_variant_id: productVariantId
3064            },
3065            success: function(response) {
3066              if (response.message) {
3067                window.msg(response.message, 'success').show();
3068                addToWishListEvent()
3069              }
3070
3071              if (response.error) {
3072                window.msg(response.error, 'error').show();
3073
3074              }
3075              if (response.info) {
3076                window.msg(response.info, 'info').show();
3077              }
3078              if (response.success === false) {
3079                if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) {
3080                  window.location = "/" + window.liquidHelper.language.handle + "/account/login";
3081                } else {
3082                  window.location = "/account/login";
3083                }
3084              }
3085            }
3086          });
3087        },
3088        setChoose: function(currentVariant) {
3089          this.maxUsableBonus = 0;
3090          var quantity = 1;
3091          var cartItem = null;
3092          if (!this.isNnCollection && this.cartItems) {
3093            cartItem = this.normalGetChoosenItem(currentVariant);
3094          }
3095          if (this.isNnCollection) {
3096            cartItem = this.nnCollectionGetChoosenItem(currentVariant);
3097          }
3098          this.isChoose = !! cartItem;
3099          if (this.isNewNnCollection) {
3100            return
3101          }
3102          this.quantity = cartItem
3103            ? cartItem.quantity
3104            : this.quantity;
3105
3106          // product modal 聯絡店家情境
3107          if (currentVariant) {
3108            var photoIndex = 0;
3109            if (! currentVariant.imgUrl) {
3110              currentVariant.imgUrl = this.swiperPhotos.length > 0
3111                ? (this.swiperPhotos[photoIndex] && this.swiperPhotos[photoIndex].large)
3112                : this.featuredImage.large;
3113            }
3114            currentVariant.productTitle = this.product.title + ' - ' + this.currentVariant.title;
3115          }
3116        },
3117        normalGetChoosenItem: function(currentVariant) {
3118          return this.cartItems.find(function(cartItem) {
3119            return currentVariant && cartItem.id === currentVariant.id;
3120          });
3121        },
3122        nnCollectionGetChoosenItem: function(currentVariant) {
3123          var isSelected = null;
3124          if (! currentVariant) {
3125            return isSelected;
3126          }
3127          if (this.isNewNnCollection) {
3128            var cart = store.get(`SpecialCollectionCart_${this.collectionId}`);
3129            isSelected = cart && cart.find((item) => item.variant_id == currentVariant.id) || null;
3130          } else {
3131            store.each(function(value, key) {
3132              var productId = _.includes(key, 'Pro' + currentVariant.productId);
3133              var variantID = _.includes(key, 'Var' + currentVariant.id);
3134              if (productId && variantID) {
3135                isSelected = store.get(key);
3136              }
3137            });
3138          }
3139
3140          return isSelected;
3141        },
3142        // get product detail
3143        getProductDetail: function() {
3144          var self = this;
3145
3146          $.ajax({
3147            url: self.productUrl + '.json',
3148            type: 'GET',
3149            timeout: 30000,
3150            beforeSend: function() {
3151              self.isLoading = true;
3152            },
3153            error: function(xhr) {
3154              self.closeModal();
3155              if (xhr.status === 429) {
3156                window.showAddCartRateLimitModal(5);
3157                return;
3158              }
3159              window.msg('網路連線異常,請重新整理', 'error').show();
3160            }
3161          }).done(function(data) {
3162            if (data.id) {
3163              var productData = [themeHelper.toCamelCase(data)];
3164              self.product = themeHelper.priceWithDiscount(productData, liquidHelper.hasPriceWithDiscountPlugin)[0];
3165              self.maxUsableBonus = self.variantsMaxUsableBonus;
3166              if (self.product.variants.length === 1 || liquidHelper.isFirstVariantSelected || self.selectedVariantId) {
3167                self.currentVariant = self.firstValidVariant;
3168                // 如果已經自選商品,則商品頁下滑加入購物車顯示自選商品
3169                if (self.selectedVariantId) {
3170                  self.currentVariant = self.selectedValidVariant;
3171                }
3172                if (self.currentVariant) {
3173                  self.setChoose(self.currentVariant);
3174                  self.setDefaultOption();
3175                }
3176              }
3177              if (self.displayProductDiscountsList) {
3178                self.setUpDiscountsTag(data);
3179              }
3180              self.isLoading = false;
3181              if (self.product && self.product.variants) {
3182                self.product.variants.forEach(function(discountedVariant) {
3183                  var rawVariant = data.variants.find(function(v) { return v.id === discountedVariant.id; });
3184                  if (rawVariant) { rawVariant.price = discountedVariant.price; }
3185                });
3186              }
3187              viewItem && viewItem(data, { collectionId: '', collectionName: null, categories: (self.categories && self.categories.length) ? self.categories : (categoryLevels.length ? categoryLevels : (data.id === pageMainProductId ? productCategoryLevels : undefined)) });
3188
3189              
3190            } else {
3191              window.msg('網路連線異常,請重新整理', 'error').show();
3192              self.closeModal()
3193            }
3194          })
3195        },
3196        // product image btn
3197        photoOnChange: function(photoIndex, isVariantReposition) {
3198          var visiblePhotos = (this.currentVariant && this.currentVariant.photos.length)
3199            ? this.currentVariant.photos
3200            : this.product.photos.map(function(p) { return p.photo; });
3201          var result = themeHelper.buildNavigateItemImagePayload(this._navState, {
3202            product: this.product,
3203            currentVariant: this.currentVariant,
3204            visiblePhotos: visiblePhotos,
3205            slideIndex: photoIndex,
3206            videoOffset: this.firstImageIndex,
3207          });
3208          this._navState = result.nextState;
3209          if (result.payload && !isVariantReposition) {
3210            window.navigateItemImage(result.payload);
3211          }
3212          this.currentImageIndex = photoIndex;
3213        },
3214        toggleCurrentOption: function(key, value) {
3215          this.currentOption[key] =
3216            (this.currentOption[key] === value || value === 'null') ? null : value;
3217          var variantIndex = this.getVariantIndex();
3218          if (variantIndex !== -1) {
3219            this.currentVariant = this.product.variants[variantIndex];
3220          } else {
3221            this.currentVariant = null;
3222          }
3223          this.setChoose(this.product.variants[variantIndex]);
3224          if (this.currentOption[key] !== null) {
3225            var optionIndex = parseInt(key.replace('option', '')) - 1;
3226            appStoreSelectItemEvent(this.product, this.product.options[optionIndex], this.currentOption[key], this.currentVariant);
3227          }
3228        },
3229        toggleNotification: function() {
3230          var self = this;
3231          var variantId = this.currentVariant.id;
3232
3233          $.ajax({
3234            url: '/toggle_pv_notification',
3235            method: 'POST',
3236            dataType: 'json',
3237            data: {
3238              product_variant_id: variantId
3239            },
3240            success: function(response) {
3241              self.variantNotifications[variantId] = response.notice;
3242              window.msg(response.message, "success").show();
3243            },
3244            error: function(xhr) {
3245              var response = xhr.responseJSON;
3246              var msg = response && response.error || "網路連線異常,請重新整理";
3247              window.msg(msg, "error").show();
3248            }
3249          })
3250        },
3251        getOptionImageIndex: function(index) {
3252          this.currentImageIndex = index;
3253        },
3254        quantityDecrease: function() {
3255          if (this.cartItem) {
3256            themeHelper.EventBus.$emit('quantityDecrease', this.cartItem, false);
3257            this.quantity = this.cartItem.quantity
3258          } else {
3259            window.msg("請選擇商品款式", 'warning').show();
3260          }
3261        },
3262        quantityIncrease: function() {
3263          if (this.cartItem) {
3264            themeHelper.EventBus.$emit('quantityIncrease', this.cartItem, false);
3265            this.quantity = this.cartItem.quantity
3266          } else {
3267            window.msg("請選擇商品款式", 'warning').show();
3268          }
3269        },
3270        quantityChange: function(el) {
3271          if (this.cartItem) {
3272            themeHelper.EventBus.$emit('quantityChange', parseInt(el.target.value), this.cartItem, false);
3273            this.quantity = this.cartItem.quantity;
3274            el.target.value = this.cartItem.quantity;
3275          } else {
3276            window.msg("請選擇商品款式", 'warning').show();
3277          }
3278        },
3279        addProduct: function() {
3280          if (this.addCartText === '聯絡店家') {
3281            $('#messagebuy-Modal').data('variant', this.currentVariant);
3282            $('#messagebuy-Modal').modal('show');
3283            $('#messagebuy-Modal').css("background-color", "rgba(0, 0, 0, .6)");
3284          } else if (
3285            this.addCartText === '已登記補貨通知' ||
3286            this.addCartText === '已售完,貨到通知我'
3287          ) {
3288              this.toggleNotification();
3289          } else {
3290            if (this.cartItem) {
3291              try {
3292                if (this.isChoose) {
3293                  themeHelper.EventBus.$emit('updateStore', 'update', this.cartItem, this.callBack)
3294                } else {
3295                  themeHelper.EventBus.$emit('updateStore', 'add', this.cartItem, this.callBack)
3296                }
3297
3298                this.adding = true;
3299                this.closeModal();
3300              } catch (e) {
3301                window.msg("商品款式異常", 'error').show();
3302              }
3303            } else {
3304              window.msg("請選擇商品款式", 'warning').show();
3305            }
3306          }
3307        },
3308        closeModal: function() {
3309          themeHelper.EventBus.$emit('closeProductModal');
3310        },
3311        setDefaultOption: function() {
3312          var self = this;
3313          Object.keys(self.currentOption).map(function(optionKey) {
3314            self.currentOption[optionKey] = self.currentVariant[optionKey];
3315          });
3316        },
3317        getVariantIndex: function() {
3318          var self = this;
3319          return self.product.variants.findIndex(function(variant, index) {
3320            var isVariant = true;
3321            Object.keys(self.currentOption).forEach(function(option) {
3322              if (variant[option] !== self.currentOption[option]) {
3323                isVariant = false;
3324              }
3325            });
3326            return isVariant;
3327          });
3328        },
3329
3330        // 篩選重複品項
3331        getUniqueVariant: function(variants) {
3332          return variants.filter(function(value, index, self) {
3333            return self.indexOf(value) === index;
3334          });
3335        },
3336        groupBy(xs, key) {
3337          return xs.reduce(function(rv, x) {
3338            (rv[x[key]] = rv[x[key]] || []).push(x);
3339            return rv;
3340          }, {});
3341        },
3342        setUpDiscountsTag(data) {
3343          var self = this;
3344          var languagePrefix = '/' + ((window.shopScriptHelper && window.shopScriptHelper.i18nLocale) || 'zh-TW');
3345          $.ajax({
3346            url: languagePrefix + self.productUrl + '/discounts_list',
3347            method: 'GET',
3348            success: function(result) {
3349              if (result.length > 0) {
3350                var discounts_list = self.groupBy(result, 'campaign_type');
3351                self.discountsList = discounts_list;
3352              } else {
3353                self.discountsList = null;
3354              }
3355            }
3356          });
3357        },
3358        getOptions: function(optionKey, optionTypes) {
3359          var self = this;
3360          return optionTypes.map(function(optionType, index) {
3361            var isValid = true;
3362
3363            // 選出包含目前type的variant
3364            var matchVariants = self.product.variants.filter(function(variant) {
3365              return variant[optionKey] === optionType;
3366            });
3367
3368            // 篩選已勾選type
3369            Object.keys(self.currentOption).forEach(function(currentOptionKey) {
3370              if (currentOptionKey !== optionKey) {
3371                matchVariants = matchVariants.filter(function(variant) {
3372                  if (self.currentOption[currentOptionKey]) {
3373                    return variant[currentOptionKey] === self.currentOption[currentOptionKey]
3374                  } else {
3375                    return true;
3376                  }
3377                });
3378              }
3379            });
3380            if (matchVariants.length === 0) {
3381              isValid = false;
3382            }
3383            if (! self.isEmptyClickable) {
3384              isValid = false;
3385              matchVariants.find(function(item) {
3386                if (item.inventoryQuantity === null || item.inventoryQuantity > 0 || item.inventoryPolicy === 'continue') {
3387                  isValid = true;
3388                }
3389              });
3390            }
3391            return {name: optionType, isValid: isValid}
3392          });
3393        }
3394      }
3395    };
3396  });
3397</script>
3397
3398
3399<!-- cyb_snippet _product_modal_js end -->
3400
3401<!-- cyb_snippet components/product_modal/product_modal end -->
3402
3403<!-- cyb_snippet messagebuy_modal start -->
3404
3405<div class="modal" id="messagebuy-Modal" tabindex="-1" role="dialog" aria-hidden="true">
3406  <div class="modal-dialog modal-dialog-centered" role="document">
3407    <div class="modal-content">
3408      <div class="modal-header">
3409        <p class="modal-title qk-fw--500" style="font-size: 1.25rem;">商品庫存不足留言</p>
3410        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
3411          <span aria-hidden="true">&times;</span>
3412        </button>
3413      </div>
3414      <div class="modal-body">
3415        <form class="form-horizontal" id="message-form">
3416          <input type="hidden" name="authenticity_token" id="authenticity_token" value="qrFhpaiMyx69lleIQBjfHE8nzoOu3ncnbSJoauVM6RO_8AaoAeikX7vQTqxrSIiftwQPX5QMr1X5z7seNRhUeg" autocomplete="off" />
3417          <div class="product_link img-flex">
3418            <img src="" alt="product img" class="product_img" width="300" height="300">
3419          </div>
3420          <p class="product_name qk-fw--500 qk-mg_t--05 qk-mg_b--05" style="font-size: 1.25rem;"></p>
3421          <div class="form-group">
3422            <input type="email" class="form-control" id="contact_us_email" name="contact[email]" placeholder="Email"  data-error="這不是有效的email" required>
3423            <input type="email" class="form-control" id="repeat-email" name="content[email]" placeholder="Email">
3424            <div class="help-block with-errors"></div>
3425          </div>
3426          <div class="form-group">
3427            <textarea type="text" class="form-control" id="message_body" name="contact[body]" placeholder="留言給店家" data-error="請留下想對我們說的話喔!" rows="4" required></textarea>
3428            <div class="help-block with-errors"></div>
3429          </div>
3430          
3431            <button type="submit" class="qk-btn qk-btn--primary qk-btn--lg qk-w--100 btn-submit-message">送出</button>
3432          
3433        </form>
3434      </div>
3435    </div>
3436  </div>
3437</div>
3438
3439<script>
3440  $(document).ready(function(){
3441    // setting modal
3442    var product_title, product_img, variant, variant_name, variant_sku, variant_price
3443
3444    $('#repeat-email').hide();
3445
3446    $('#messagebuy-Modal').on('show.bs.modal', function(){
3447      var currentVariant = $('#messagebuy-Modal').data('variant');
3448
3449      if (currentVariant) {
3450        // product modal 聯絡店家
3451        $('#messagebuy-Modal').find('.product_name').html(currentVariant.productTitle);
3452        $('#messagebuy-Modal').find('.product_img').attr('src', currentVariant.imgUrl);
3453        product_title = currentVariant.productTitle;
3454        variant_sku = currentVariant.sku;
3455        variant_name = currentVariant.title;
3456        variant_price = parseInt(currentVariant.price);
3457      } else {
3458        product_title = $('#product .product_info .product_title').text()
3459        // 是否顯示色票
3460        var isDisplayImagesColor = "false";
3461        if (isDisplayImagesColor === "true") {
3462          product_img = $('#photo_with_images_color').attr('src');
3463        } else {
3464          product_img   = $('#product .product_info .thumb .active img').attr('src')
3465        }
3466        variant       = $('#product .product_variant').find(':selected')
3467        variant_name  = $(variant).data('name');
3468        variant_sku   = variant.data('sku');
3469        variant_price = variant.data('price');
3470        $('#messagebuy-Modal').find('.product_name').text(product_title)
3471        $('#messagebuy-Modal').find('.product_img').attr('src', product_img)
3472      }
3473    })
3474
3475    $('#message-form').on('submit', function (e) {
3476      e.preventDefault()
3477
3478      var robot_check = $('#repeat-email').val();
3479      if(robot_check)
3480        return;
3481
3482      var csrf_token = $('meta[name=csrf-token]').attr('content');
3483      var message_email = $('#message-form input[name="contact[email]"]').val();
3484      var message_body  = $('#message-form textarea[name="contact[body]"]').val();
3485      var variant_info  = "\n (商品標題:" + product_title + " ,(商品sku:" + variant_sku + " ,商品樣式:" + variant_name + " ,商品價格:" + variant_price + ')';
3486      if(!variant_sku || !variant_name || !variant_price){
3487        variant_info = "\n (商品標題:" + product_title + ", 未選擇商品 )"
3488      }
3489      message_body += variant_info
3490
3491      var headers = {};
3492      if (csrf_token && csrf_token !== '') {
3493        headers['X-CSRF-TOKEN'] = csrf_token;
3494      }
3495
3496      $.ajax({
3497        method: 'POST',
3498        url: '/contact',
3499        headers: headers,
3500        data: {
3501          contact: { email: message_email, body: message_body },
3502          'g-recaptcha-response': $('.g-recaptcha').data('g-recaptcha-response'),
3503        },
3504        dataType: 'json'
3505      }).done(function(){
3506        $('#message-form input[name="contact[email]"]').val('');
3507        $('#message-form textarea[name="contact[body]"]').val('');
3508
3509        window.msg("送出成功", 'success').show()
3510        $('#messagebuy-Modal').modal('hide');
3511        themeHelper.EventBus.$emit('closeProductModal');
3512      }).fail(function(){
3513        window.msg("請稍後再試", 'error').show();
3514      });
3515    })
3516  })
3517</script>
3517
3518
3519
3520<!-- cyb_snippet messagebuy_modal end -->
3521<!-- cyb_snippet components/rate_limit_modal start -->
3522<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/rate_limit_modal-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
3523
3524<div class="modal fade" id="rate-limit-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
3525  <div class="modal-dialog modal-dialog-centered" role="document">
3526    <div class="modal-content">
3527      <div class="modal-body">
3528        <div class="qk-text--default_dark rate-limit-text">
3529          <p id="rate-limit-title">目前搶購人潮眾多,請耐心等候</p>
3530          <p class="qk-fs--body qk-fw--500 rate-limit-message">
3531            <span class="qk-text--error" id="rate-limit-countdown"></span>
3532            <span id="rate-limit-desc"></span>
3533          </p>
3534          <p class="qk-fs--body qk-fw--500 rate-limit-message" id="rate-limit-warn">若離開此頁面,可能會延長等待時間。</p>
3535        </div>
3536        <button id="rate-limit-btn" class="btn qk-btn qk-btn--primary" disabled>重新進入商品頁</button>
3537      </div>
3538    </div>
3539  </div>
3540</div>
3541
3542<script>
3543  window.showRateLimitModal = function(countdownSec) {
3544    var countdown = countdownSec || 5;
3545    var $modal = $('#rate-limit-modal');
3546    var $btn = $modal.find('#rate-limit-btn');
3547    var $countdownEl = $modal.find('#rate-limit-countdown');
3548
3549    $btn.show();
3550    $modal.find('#rate-limit-desc').text(language["product_rate_limit_desc"]);
3551    $countdownEl.text(countdown);
3552    $btn.prop('disabled', true);
3553    $modal.modal('show');
3554
3555    var timer = setInterval(function() {
3556      countdown--;
3557      $countdownEl.text(countdown);
3558      if (countdown <= 0) {
3559        clearInterval(timer);
3560        $btn.prop('disabled', false);
3561      }
3562    }, 1000);
3563
3564    $btn.off('click').on('click', function() {
3565      location.reload();
3566    });
3567  }
3568
3569  window.showAddCartRateLimitModal = function(countdownSec) {
3570    var countdown = countdownSec || 5;
3571    var $modal = $('#rate-limit-modal');
3572    var $countdownEl = $modal.find('#rate-limit-countdown');
3573
3574    $modal.find('#rate-limit-btn').hide();
3575    $modal.find('#rate-limit-desc').text(language["addcart_rate_limit_desc"]);
3576    $countdownEl.text(countdown);
3577    $modal.modal('show');
3578
3579    var timer = setInterval(function() {
3580      countdown--;
3581      $countdownEl.text(countdown);
3582      if (countdown <= 0) {
3583        clearInterval(timer);
3584        $modal.modal('hide');
3585      }
3586    }, 1000);
3587  }
3588</script>
3588
3589
3590<!-- cyb_snippet components/rate_limit_modal end -->
3591
3592<script>
3593  $(document).ready(function() {
3594    const shouldSkipQuantityCheck = false;
3595    const newAddCartModalApp = new window.themeHelper.LiquidVueHandler({
3596      componentNames: Object.keys(window.themeHelper.productModalComponents),
3597      mountSelector: '#new-addcart-modal',
3598      autoMount: false,
3599    });
3600
3601    newAddCartModalApp.createApp({
3602      el: '#new-addcart-modal',
3603      delimiters: ['${', '}'],
3604      data() {
3605        return {
3606          collectionId: 0,
3607          categories: [],
3608          color: '', // unused
3609          isCollection: true,
3610          productQuantity: 0,
3611          onlyDescription: false,
3612          showProductModal: false,
3613          popProductUrl: '',
3614          loading: false,
3615        };
3616      },
3617      mounted: function() {
3618        themeHelper.EventBus.$on('closeProductModal',this.closeProductModal);
3619        themeHelper.EventBus.$on('updateStore', this.addProduct);
3620        themeHelper.EventBus.$on('quantityDecrease', this.quantityDecrease);
3621        themeHelper.EventBus.$on('quantityIncrease', this.quantityIncrease);
3622        themeHelper.EventBus.$on('quantityChange', this.quantityChange);
3623      },
3624      methods: {
3625        addProduct: function(actionType, productData, checkoutAddToCartCallback){
3626          var self = this;
3627          var pageViewId = window.CYBERBIZ && window.CYBERBIZ.dis && window.CYBERBIZ.dis.pageViewId;
3628          $.ajax({
3629            method: 'POST',
3630            url: '/cart/add',
3631            headers: pageViewId ? { 'X-Cyb-Page-View-Id': pageViewId } : {},
3632            data: {
3633              id: productData.id,
3634              quantity: productData.quantity,
3635            },
3636            dataType: 'json',
3637            beforeSend: function() {
3638              self.loading = true;
3639              themeHelper.ajaxLoadingMsg('loading');
3640              $('.shopcart').dropdown('hide')
3641              $('.global-cart-count').hide();
3642              $('.global-cart-loading').show();
3643              $('.global-cart-loading').html('<i class="fa fa-spinner fa-pulse" style="vertical-align: middle;"></i>');
3644            },
3645            error: function(xhr) {
3646              $('.global-cart-loading').hide();
3647              $('.global-cart-count').show();
3648              self.loading = false;
3649              if (xhr.status === 429) {
3650                themeHelper.ajaxLoadingMsg('hide', 0);
3651                self.closeProductModal();
3652                window.showAddCartRateLimitModal(5);
3653                return;
3654              }
3655              themeHelper.ajaxLoadingMsg('fail', 2000);
3656            }
3657          }).done(function(data, status, request){
3658            // product modal 立即購買按鈕
3659            window.sendAddToCartEvent && sendAddToCartEvent({
3660              price: productData.price,
3661              quantity: productData.quantity,
3662              id: productData.product.id,
3663              name: productData.product.title,
3664              category: productData.product.productType,
3665              brand: productData.product.vendor,
3666              qc: productData.variant.qc,
3667              variant: {
3668                id: productData.variant.id,
3669                title: productData.variant.title,
3670                sku: productData.variant.sku,
3671                price: productData.variant.price,
3672                qc: productData.variant.qc,
3673              },
3674              position: "商品彈出視窗",
3675              request,
3676            })
3677            if (self.isQuickBuy) {
3678              if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) {
3679                window.location = "/" + window.liquidHelper.language.handle + "/cart";
3680              } else {
3681                window.location = "/cart";
3682              }
3683            } else {
3684              themeHelper.ajaxLoadingMsg('success');
3685              pullNavCart();
3686              $('.shopcart').dropdown('show')
3687              $('.global-cart-loading').hide();
3688              self.loading = false;
3689            }
3690            if(typeof checkoutAddToCartCallback === 'function'){
3691              var callbackData = {
3692                id: productData.id,
3693                quantity: productData.quantity,
3694                title: productData.product ? productData.product.title : productData.title || ''
3695              };
3696              checkoutAddToCartCallback(callbackData)
3697            }
3698            peh.emit('product:add_to_cart', [{
3699              variantId: productData.id,
3700              quantity: productData.quantity
3701            }], self.collectionId);
3702          }).fail(function(e){
3703            if (e.status === 429) {
3704              return;
3705            }
3706            let err_msg = e.responseJSON.err_msg;
3707            err_msg && err_msg.length > 0 ?
3708              window.msg(e.responseJSON.err_msg, 'warning').show():
3709              window.msg("加入購物車有誤,請重新嘗試", 'warning').show();
3710          })
3711        },
3712        quantityDecrease: function(cartItem, isAdded){
3713          if (cartItem.quantity > 1) {
3714            cartItem.quantity -= 1;
3715          } else {
3716            window.msg("數量不得為低於 1", 'warning').show();
3717          }
3718        },
3719        quantityIncrease: function(cartItem, isAdded){
3720          const limitQuantity = cartItem.variant.inventoryQuantity;
3721          const limitBuy = cartItem.product.limitBuy
3722          if (limitBuy && cartItem.quantity >= limitBuy) {
3723            product_limit_buy = "此商品限購 limitBuy 件".replace('limitBuy', limitBuy)
3724            window.msg(product_limit_buy, 'warning').show();
3725            return;
3726          } else if (cartItem.quantity >= liquidHelper.cartQuantityLimit) {
3727            window.msg("數量超過購買上限", 'warning').show();
3728          } else if ( cartItem.quantity < limitQuantity || limitQuantity === null ||
3729            cartItem.variant.inventoryPolicy == "continue" || shouldSkipQuantityCheck) {
3730            cartItem.quantity += 1;
3731          } else {
3732            this.showInventoryMessage(limitQuantity);
3733          }
3734        },
3735        quantityChange: function(quantity, cartItem, isAdded){
3736          const limitBuy = cartItem.product.limitBuy
3737          var limitQuantity = cartItem.variant.inventoryQuantity;
3738          var inventoryPolicy = cartItem.variant.inventoryPolicy;
3739          if (Number.isInteger(quantity)) {
3740            if (quantity >= 1) {
3741              if (limitBuy && quantity >= limitBuy) {
3742                product_limit_buy = "此商品限購 limitBuy 件".replace('limitBuy', limitBuy)
3743                window.msg(product_limit_buy, 'warning').show();
3744              } else if (quantity > liquidHelper.cartQuantityLimit) {
3745                window.msg("數量超過購買上限", 'warning').show();
3746              } else if (quantity <= limitQuantity || limitQuantity === null || inventoryPolicy == "continue" || shouldSkipQuantityCheck) {
3747                cartItem.quantity = quantity;
3748              } else {
3749                cartItem.quantity = limitQuantity;
3750                this.showInventoryMessage(limitQuantity);
3751              }
3752            } else {
3753              window.msg("數量不得為低於 1", 'warning').show();
3754            }
3755          } else {
3756            window.msg("數量輸入錯誤", 'warning').show();
3757          }
3758        },
3759        popModal: function(productUrl, collectionId, color, isCollection, isShowDescription, isQuickBuy, variantId, checkoutAddToCartCallback, categories){
3760          this.showProductModal = true;
3761          this.collectionId = collectionId;
3762          this.categories = categories || [];
3763          this.popProductUrl = productUrl;
3764          this.color = color || ''; // unused
3765          this.isCollection = isCollection || false;
3766          this.isShowDescription = isShowDescription != false;
3767          this.isQuickBuy = isQuickBuy || false;
3768          this.selectedVariantId = parseInt(variantId) || undefined;
3769          this.checkoutAddToCartCallback = checkoutAddToCartCallback;
3770          document.body.style.overflow = "hidden";
3771        },
3772        closeProductModal: function() {
3773          this.showProductModal = false;
3774          document.body.style.overflow = "";
3775        },
3776        showInventoryMessage: function(inventoryQuantity) {
3777          const stockMessage = "商品庫存剩餘 count 件".replace('count', inventoryQuantity || 0);
3778          window.msg(stockMessage, 'warning').show();
3779        },
3780      }
3781    });
3782
3783    for (const componentName in window.themeHelper.productModalComponents) {
3784      newAddCartModalApp.component(
3785        componentName,
3786        window.themeHelper.productModalComponents[componentName],
3787      );
3788    }
3789
3790    window.new_addcart_modal = newAddCartModalApp.mount();
3791  });
3792</script>
3792
3793
3794<!-- cyb_snippet new_addcart_modal end -->
3795<!-- cyb_snippet _combo_product_related_items_modal start --><!-- cyb_snippet _combo_product_related_items_modal end -->
3796
3797
3798
3799
3800    </div>
3801
3802    <!-- Footer -->
3803    
3804
3805
3806
3807
3808
3809
3810<style>
3811  
3812  
3813  @media(min-width: 991px) {
3814    .display_x .left-content > div {
3815      max-width: calc(100% / 3);
3816    }
3817  }
3818</style>
3819
3820<div id="index-recommendation"></div>
3821
3822<footer id="footer" class="qk-fs--body qk-bg--footer_bg">
3823  
3824    
3825    <div class="qk-container display_x">
3826      <div class="footer_content qk-mg--0 qk-display--flex qk-justify--between">
3827        <div class="left-content qk-flex--1">
3828          
3829            
3830              <div class="item contact qk-text--left">
3831                
3832                  <p class="footer_title qk-fs--title qk-text--footer_text">Information</p>
3833                
3834                <ul>
3835                  
3836                    <li class="phone qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
3837                      <span class="qk-text--footer_text">客服專線:0968769227</span>
3838                    </li>
3839                  
3840                  
3841                  
3842                    <li class="time qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
3843                      <span class="qk-text--footer_text">客服時間:10:00-19:00</span>
3844                    </li>
3845                  
3846                  
3847                    <br>
3848                    <li class="mail qk-bd_r--default qk-bd--footer_text qk-cursor--pointer qk-display--il_bk">
3849                      <a class="qk-text--footer_text" href="mailto:[email protected]">信箱:[email protected]</a>
3850                    </li>
3851                  
3852                  
3853                    <li class="address qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
3854                      <span class="qk-text--footer_text">地址:台北市士林區大東路174號3樓 (捷運士林站2號出口2分鐘)</span>
3855                    </li>
3856                  
3857                  
3858                </ul>
3859              </div>
3860              
3861          
3862            
3863              <div class="link-list-container">
3864                
3865                  <p class="footer_title qk-fs--title qk-text--footer_text">About us</p>
3866                
3867                <div class="item horizontal qk-text--left">
3868                  <ul class="qk-display--flex qk-flex--wrap">
3869                    
3870                      
3871                        <li class="qk-display--il_bk">
3872                          
3873                            <a
3874                              class="qk-text--footer_text"
3875                              href="/search"
3876                              rel="noopener noreferrer"
3877                              target="_blank">查詢</a>
3878                          
3879                        </li>
3880                      
3881                        <li class="qk-display--il_bk">
3882                          
3883                            <a
3884                              class="qk-text--footer_text"
3885                              href="/pages/about-us"
3886                              rel="noopener noreferrer"
3887                              target="_blank">關於我們</a>
3888                          
3889                        </li>
3890                      
3891                        <li class="qk-display--il_bk">
3892                          
3893                            <a
3894                              class="qk-text--footer_text"
3895                              href="/account/index"
3896                              rel="noopener noreferrer"
3897                              target="_blank">我的帳戶</a>
3898                          
3899                        </li>
3900                      
3901                        <li class="qk-display--il_bk">
3902                          
3903                            <a
3904                              class="qk-text--footer_text"
3905                              href="/pages/運送與付款說明"
3906                              rel="noopener noreferrer"
3907                              target="_blank">運送與付款說明</a>
3908                          
3909                        </li>
3910                      
3911                        <li class="qk-display--il_bk">
3912                          
3913                            <a
3914                              class="qk-text--footer_text"
3915                              href="/pages/會員福利"
3916                              rel="noopener noreferrer"
3917                              target="_blank">會員福利</a>
3918                          
3919                        </li>
3920                      
3921                    
3922                  </ul>
3923                </div>
3924              </div>
3925              
3926          
3927            
3928              <div class="link-list-container">
3929                
3930                  <p class="footer_title qk-fs--title qk-text--footer_text">Help</p>
3931                
3932                <div class="item horizontal qk-text--left">
3933                  <ul class="qk-display--flex qk-flex--wrap">
3934                    
3935                      
3936                        <li class="qk-display--il_bk">
3937                          
3938                            <a
3939                              class="qk-text--footer_text"
3940                              href="/"
3941                              rel="noopener noreferrer"
3942                              target="_blank">首頁</a>
3943                          
3944                        </li>
3945                      
3946                        <li class="qk-display--il_bk">
3947                          
3948                            <a
3949                              class="qk-text--footer_text"
3950                              href="/collections/frontpage"
3951                              rel="noopener noreferrer"
3952                              target="_blank">有機精油商品</a>
3953                          
3954                        </li>
3955                      
3956                        <li class="qk-display--il_bk">
3957                          
3958                            <a
3959                              class="qk-text--footer_text"
3960                              href="/collections/massagecourse"
3961                              rel="noopener noreferrer"
3962                              target="_blank">科學芳療療程</a>
3963                          
3964                        </li>
3965                      
3966                        <li class="qk-display--il_bk">
3967                          
3968                            <span class="qk-cursor--pointer qk-text--footer_text">芳療課程講座</span>
3969                          
3970                        </li>
3971                      
3972                        <li class="qk-display--il_bk">
3973                          
3974                            <a
3975                              class="qk-text--footer_text"
3976                              href="/blogs"
3977                              rel="noopener noreferrer"
3978                              target="_blank">健康芳療專欄</a>
3979                          
3980                        </li>
3981                      
3982                        <li class="qk-display--il_bk">
3983                          
3984                            <a
3985                              class="qk-text--footer_text"
3986                              href="/blogs/最新活動"
3987                              rel="noopener noreferrer"
3988                              target="_blank">最新活動</a>
3989                          
3990                        </li>
3991                      
3992                        <li class="qk-display--il_bk">
3993                          
3994                            <a
3995                              class="qk-text--footer_text"
3996                              href="/pages/about-us"
3997                              rel="noopener noreferrer"
3998                              target="_blank">關於我們</a>
3999                          
4000                        </li>
4001                      
4002                        <li class="qk-display--il_bk">
4003                          
4004                            <span class="qk-cursor--pointer qk-text--footer_text">企業客製</span>
4005                          
4006                        </li>
4007                      
4008                    
4009                  </ul>
4010                </div>
4011              </div>
4012              
4013          
4014        </div>
4015        <div class="right-content qk-display--flex qk-flex--column">
4016          
4017            <div class="fb_fanpage qk-hidden--mobile">
4018              <div class="fb_fans_page_area">
4019                <div
4020                  class="fb-page"
4021                  data-href="https://www.facebook.com/1132643860229500"
4022                  data-width="500"
4023                  data-adapt-container-width="true"
4024                  data-hide-cover="false"
4025                  data-show-facepile="true">
4026                  <blockquote cite="https://www.facebook.com/1132643860229500" class="fb-xfbml-parse-ignore">
4027                    <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/1132643860229500"></a>
4028                  </blockquote>
4029                </div>
4030              </div>
4031            </div>
4032          
4033          <div class="media qk-display--il">
4034            <div class="item social_media qk-h--auto qk-float--l">
4035              <ul>
4036                
4037                  <li class="qk-display--il_bk">
4038                    <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/">
4039                      <svg
4040                        class="facebook-svg"
4041                        xmlns="http://www.w3.org/2000/svg"
4042                        width="40"
4043                        height="40"
4044                        viewBox="0 0 40 40">
4045                        <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" />
4046                      </svg>
4047                    </a>
4048                  </li>
4049                
4050                
4051                  <li class="qk-display--il_bk">
4052                    <a target="_blank" rel="noopener noreferrer" href="https://www.instagram.com/?hl=zh-tw">
4053                      <svg
4054                        class="instagram-svg"
4055                        xmlns="http://www.w3.org/2000/svg"
4056                        width="40"
4057                        height="40"
4058                        viewBox="0 0 40 40">
4059                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
4060                        <path class="qk-svg--footer_bg" d="M15.0302 8.08393C13.7534 8.14417 12.8814 8.34793 12.1192 8.64745C11.3303 8.95489 10.6616 9.36745 9.99636 10.0351C9.33107 10.7028 8.92139 11.3719 8.61611 12.162C8.32066 12.9259 8.1205 13.7986 8.0641 15.0761C8.0077 16.3536 7.99522 16.7643 8.00146 20.023C8.0077 23.2817 8.0221 23.6902 8.08402 24.9704C8.14498 26.2469 8.34802 27.1186 8.64755 27.8811C8.95547 28.67 9.36755 29.3384 10.0355 30.0039C10.7034 30.6694 
406011.3721 31.0782 12.1641 31.3839C12.9273 31.6789 13.8002 31.88 15.0775 31.9359C16.3547 31.9918 16.7659 32.0048 20.0237 31.9986C23.2815 31.9923 23.6916 31.9779 24.9716 31.9172C26.2515 31.8565 27.1186 31.652 27.8813 31.3539C28.6702 31.0453 29.3391 30.6339 30.0042 29.9658C30.6692 29.2976 31.0787 28.628 31.3837 27.8374C31.6794 27.0742 31.8803 26.2013 31.9357 24.925C31.9916 23.6441 32.0048 23.2352 31.9986 19.9769C31.9923 16.7187 31.9777 16.3102 31.917 15.0305C31.8563 13.7508 31.653 12.8818 31.3537 12.1188C31.0453 11.3299 30.6337 10.662 29.966 9.99601C29.2983 9.33001 28.6282 8.92081 27.8379 8.61649C27.0742 8.32105 26.2018 8.11969 24.9245 8.06449C23.6472 8.00929 23.2361 7.99513 19.9771 8.00137C16.7181 8.00761 16.3101 8.02153 15.0302 8.08393ZM15.1703 29.7771C14.0003 29.7262 13.365 29.5318 12.9417 29.3691C12.381 29.1531 11.9817 28.892 11.5597 28.4742C11.1378 28.0563 10.8786 27.6555 10.6597 27.0961C10.4953 26.6727 10.2973 26.0381 10.2426 24.8681C10.1831 23.6036 10.1706 23.2239 10.1636 20.0201C10.1567 16.8164 10.1689 16.4372 10.2244 15.1721C10.2743 14.0031 10.4699 13.3671 10.6324 12.9439C10.8484 12.3826 11.1085 11.9839 11.5273 11.5623C11.9461 11.1406 12.3457 10.8809 12.9057 10.662C13.3286 10.4969 13.9631 10.3006 15.1327 10.2449C16.3982 10.1849 16.7774 10.1729 19.9807 10.1659C23.184 10.159 23.5642 10.171 24.8302 10.2267C25.9992 10.2775 26.6355 10.4712 27.0581 10.6347C27.619 10.8507 28.0181 11.1101 28.4398 11.5296C28.8615 11.9491 29.1214 12.3473 29.3403 12.9084C29.5057 13.3301 29.702 13.9644 29.7572 15.1347C29.8174 16.4002 29.8311 16.7796 29.8369 19.9827C29.8426 23.1857 29.8314 23.5661 29.7759 24.8307C29.7248 26.0007 29.5309 26.6362 29.3679 27.0601C29.1519 27.6205 28.8915 28.0201 28.4725 28.4415C28.0534 28.863 27.6543 29.1226 27.0941 29.3415C26.6717 29.5064 26.0364 29.7032 24.8679 29.7589C23.6023 29.8184 23.2231 29.8309 20.0186 29.8378C16.8141 29.8448 16.4361 29.8318 15.1706 29.7771M24.9531 13.5864C24.9535 13.8713 25.0385 14.1495 25.1971 14.3861C25.3558 14.6226 25.581 14.8068 25.8443 14.9154C26.1077 15.0239 26.3973 15.0519 26.6765 14.9959C26.9558 14.9398 27.2122 14.8022 27.4132 14.6004C27.6142 14.3986 27.7509 14.1418 27.806 13.8623C27.861 13.5828 27.8319 13.2933 27.7224 13.0304C27.6129 12.7675 27.4279 12.5429 27.1908 12.3851C26.9536 12.2274 26.675 12.1435 26.3902 12.144C26.0084 12.1448 25.6425 12.2972 25.373 12.5677C25.1035 12.8381 24.9524 13.2046 24.9531 13.5864ZM13.8386 20.012C13.8453 23.4152 16.6091 26.1677 20.0117 26.1613C23.4142 26.1548 26.1687 23.3912 26.1622 19.988C26.1557 16.5848 23.3911 13.8315 19.9881 13.8382C16.5851 13.8449 13.8321 16.6092 13.8386 20.012ZM16 20.0076C15.9985 19.2165 16.2315 18.4427 16.6698 17.784C17.108 17.1253 17.7317 16.6114 18.462 16.3072C19.1924 16.003 19.9965 15.9222 20.7727 16.075C21.549 16.2278 22.2625 16.6073 22.823 17.1656C23.3836 17.724 23.766 18.436 23.9218 19.2116C24.0777 19.9872 24.0001 20.7917 23.6988 21.5232C23.3975 22.2547 22.886 22.8804 22.2291 23.3213C21.5721 23.7621 20.7992 23.9983 20.0081 23.9998C19.4827 24.0009 18.9623 23.8985 18.4766 23.6985C17.9909 23.4985 17.5493 23.2047 17.1771 22.834C16.8049 22.4632 16.5094 22.0228 16.3074 21.5379C16.1054 21.0529 16.001 20.533 16 20.0076Z" />
4061                      </svg>
4062                    </a>
4063                  </li>
4064                
4065                
4066                  <li class="qk-display--il_bk">
4067                    <a target="_blank" rel="noopener noreferrer" href="https://line.me/zh-hant/">
4068                      <svg
4069                        class="line-svg"
4070                        xmlns="http://www.w3.org/2000/svg"
4071                        width="40"
4072                        height="40"
4073                        viewBox="0 0 40 40">
4074                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
4075                        <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" />
4076                        <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" />
4077                        <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" />
4078                        <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" />
4079                        <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" />
4080                      </svg>
4081                    </a>
4082                  </li>
4083                
4084                
4085                  <li class="qk-display--il_bk">
4086                    <a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/">
4087                      <svg
4088                        class="youtube-svg"
4089                        xmlns="http://www.w3.org/2000/svg"
4090                        width="40"
4091                        height="40"
4092                        viewBox="0 0 40 40">
4093                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
4094                        <path class="qk-svg--footer_bg" d="M27.3078 11H12.6922C9.82462 11 7.5 13.3653 7.5 16.283V23.717C7.5 26.6347 9.82462 29 12.6922 29H27.3078C30.1754 29 32.5 26.6347 32.5 23.717V16.283C32.5 13.3653 30.1754 11 27.3078 11ZM23.7964 20.3617L16.9602 23.6792C16.778 23.7676 16.5676 23.6324 16.5676 23.4271V16.5848C16.5676 16.3766 16.7835 16.2416 16.9661 16.3357L23.8023 19.8606C24.0055 19.9653 24.002 20.2619 23.7964 20.3617Z" />
4095                      </svg>
4096                    </a>
4097                  </li>
4098                
4099              </ul>
4100            </div>
4101          </div>
4102        </div>
4103      </div>
4104    </div>
4105    
4106  <div class="copyright qk-text--footer_text qk-bd--footer_text qk-text--left qk-bd_t--default">
4107    <div class="qk-container container qk-fw--500">
4108      <span>Copyright ©</span>
4109      <a class="qk-text--link" href="/">
4110        <span>HERSTORY法國有機精油</span>
4111      </a>
4112      <span>All Rights Reserved.</span>
4113      <span>Designed by
4114      </span>
4115      <a
4116        class="qk-text--link"
4117        href="https://www.cyberbiz.io?utm_source=poweredbycyberbiz"
4118        target="_blank"
4119        rel="noopener noreferrer"
4120        title="Designed by CYBERBIZ">CYBERBIZ</a>.
4121    </div>
4122  </div>
4123  
4124</footer>
4125<script>
4126  $(document).ready(function() {
4127    let isDynamicLoading = false;
4128
4129    let menusData = {
4130      
4131        
4132      
4133        
4134          "footer": {
4135            
4136              "type": "items",
4137              "data": [
4138                
4139                
4140                  
4141                    {
4142                      "title": "查詢",
4143                      "url": "/search",
4144                      "item_type": "search"
4145                    },
4146                  
4147                    {
4148                      "title": "關於我們",
4149                      "url": "/pages/about-us",
4150                      "item_type": "page"
4151                    },
4152                  
4153                    {
4154                      "title": "我的帳戶",
4155                      "url": "/account/index",
4156                      "item_type": "http"
4157                    },
4158                  
4159                    {
4160                      "title": "運送與付款說明",
4161                      "url": "/pages/運送與付款說明",
4162                      "item_type": "page"
4163                    },
4164                  
4165                    {
4166                      "title": "會員福利",
4167                      "url": "/pages/會員福利",
4168                      "item_type": "page"
4169                    }
4170                  
4171                
4172              ]
4173            
4174          },
4175        
4176      
4177        
4178          "main-menu": {
4179            
4180              "type": "items",
4181              "data": [
4182                
4183                
4184                  
4185                    {
4186                      "title": "首頁",
4187                      "url": "/",
4188                      "item_type": "frontpage"
4189                    },
4190                  
4191                    {
4192                      "title": "有機精油商品",
4193                      "url": "/collections/frontpage",
4194                      "item_type": "custom_collection"
4195                    },
4196                  
4197                    {
4198                      "title": "科學芳療療程",
4199                      "url": "/collections/massagecourse",
4200                      "item_type": "custom_collection"
4201                    },
4202                  
4203                    {
4204                      "title": "芳療課程講座",
4205                      "url": "",
4206                      "item_type": "linklist"
4207                    },
4208                  
4209                    {
4210                      "title": "健康芳療專欄",
4211                      "url": "/blogs",
4212                      "item_type": "http"
4213                    },
4214                  
4215                    {
4216                      "title": "最新活動",
4217                      "url": "/blogs/最新活動",
4218                      "item_type": "blog"
4219                    },
4220                  
4221                    {
4222                      "title": "關於我們",
4223                      "url": "/pages/about-us",
4224                      "item_type": "page"
4225                    },
4226                  
4227                    {
4228                      "title": "企業客製",
4229                      "url": "",
4230                      "item_type": "linklist"
4231                    }
4232                  
4233                
4234              ]
4235            
4236          }
4237        
4238      
4239    };
4240
4241    if (isDynamicLoading) {
4242      window.DynamicLoading.setupComponent({
4243          sectionId: '#footer',
4244          callbackData:{
4245            section: {"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/","display_instagram":true,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://line.me/zh-hant/","display_youtube":true,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_x","display_facebook_fan_block":true},"block_order":["default_contact_info","default_link_list","default_link_list_2"],"blocks":{"default_link_list":{"type":"link_list_setting","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"About us","footer_link":"footer"},"custom_name":"選單"},"default_contact_info":{"type":"contact_info_setting","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"dict_contact_info_block_t
4245itle":"Information","display_phone":"true","dict_phone_number":"0968769227","display_fax_number":false,"dict_shop_fax_number":"0222345678","display_shop_email":"true","dict_shop_email":"[email protected]","display_shop_address":true,"dict_shop_address":"台北市士林區大東路174號3樓 (捷運士林站2號出口2分鐘)","display_office_time":"true","dict_shop_office_time":"10:00-19:00"},"custom_name":"聯絡資訊"},"default_link_list_2":{"type":"link_list_setting","visible":true,"settings":{"dict_link_list_block_title":"Help","footer_link":"main-menu"},"custom_name":"選單"}},"custom_name":"頁腳"},
4246            shop: {
4247              name: 'HERSTORY法國有機精油',
4248              cyberbiz_link: 'https://www.cyberbiz.io?utm_source=poweredbycyberbiz',
4249              facebook_fan_page: 'https://www.facebook.com/1132643860229500',
4250            },
4251            menus: menusData,
4252            is_display_facebook_fan_block: true
4253            },
4254          entryName:'renderFooterSection',
4255          source:'//cdn-general.cybassets.com/frontend/shop/footerSection-7338a3080043cbaa.js',
4256        });
4257    }
4258  });
4259</script>
4259
4260
4261<!-- cyb_snippet _tracking_code start -->
4262      
4262<script>
4263        window.fbAsyncInit = function() {
4264          FB.init({
4265          appId : '',
4266          xfbml : true,
4267          version : 'v24.0',
4268          });
4269        };
4270        (function(d, s, id){
4271          var js, fjs = d.getElementsByTagName(s)[0];
4272          if (d.getElementById(id)) {return;}
4273          js = d.createElement(s);
4274          js.id = id;
4275          js.src = 'https://connect.facebook.net/zh_TW/sdk.js';
4276          fjs.parentNode.insertBefore(js, fjs);
4277        }(document, 'script', 'facebook-jssdk'));
4278      </script>
4278
4279
4280
4281<script>
4282  // for scupio
4283  if (document.querySelector("meta[name=\"scupio_mid\"]")) {
4284    mid = document.querySelector("meta[name=\"scupio_mid\"]").content;
4285  } else {
4286    mid = "";
4287  }
4288  if (!window.is_scupio_sent && mid) {
4289    window._bwtm = window._bwtm || []
4290    window._bwtm.push({
4291      "mid": mid,
4292      "uid": ""
4293    });
4294  }
4295</script>
4295
4296
4297<!-- cyb_snippet _tracking_code end -->
4298
4299<script>
4300  $(document).ready(function(){
4301    if(window.location.pathname != '' && window.location.pathname != '/' ){
4302      document.getElementById('index-recommendation').style.display = 'none'
4303    }
4304  });
4305</script>
4305
4306
4307
4308
4309    <!-- Fast-Events -->
4310    <!-- cyb_snippet fast_events start -->
4311
4312
4313<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/fast_events-7338a3080043cbaa.js' type='text/javascript'></script>
4313
4314<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/fast_events-7338a3080043cbaa.css' rel='stylesheet' type='text/css' media='all' />
4315
4316<!-- cyb_snippet fast_events end -->
4317
4318    <div class="bottom-right qk-pos--fixed">
4319      <!-- gototop -->
4320      <div id="gototop" class="qk-display--none qk-text--center">
4321        <a href="javascript:void(0)" class="qk-circle qk-circle--lg qk-pos--relative qk-text--center">
4322          <i class="fas fa-chevron-up"></i>
4323        </a>
4324      </div>
4325
4326      <!-- popup -->
4327      
4328
4329
4330
4331<div id="popup-wrapper" class="qk-display--none"></div>
4332
4333<template id="popup-template">
4334  <div
4335    :class="status"
4336    v-if="hasContent"
4337    id="popup-section"
4338  >
4339    <transition name="backdrop">
4340      <div
4341        v-if="shouldShowPopup"
4342        @click.capture="minifyPopup"
4343        id="popup-backdrop"
4344        class="qk-w--100vw qk-h--100vh qk-pos--fixed qk-t--0 qk-l--0 qk-tst"
4345      >
4346      </div>
4347    </transition>
4348    <transition name="onShow">
4349      <div
4350        @click.self="showPopup"
4351        @transitionstart="updateGameStatus('start', this)"
4352        @transitionend="updateGameStatus('end', this)"
4353        class="popup-content qk-display--flex qk-align--center qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
4354      >
4355        <div
4356          v-for="block in blocks"
4357          :key="block.id"
4358          :class="[block.type, minifiedBlockClasses, block.settings.icon_size]"
4359          class="block qk-tst qk-tst_dur--30 qk-tst_timing--ease_o qk-of--auto"
4360        >
4361          <div v-if="block.type === 'image'" class="qk-pos--rel">
4362            <img
4363              v-show="!shouldShowPopup"
4364              :src="block.settings.dict_icon_image_url"
4365              class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
4366              alt="popup button"
4367            >
4368            <a
4369              v-show="shouldShowPopup"
4370              :href="block.settings.dict_link"
4371              :target="block.settings.target"
4372              :rel="block.settings.rel"
4373              class="qk-display--flex qk-align--center"
4374              @click="linkClicked"
4375            >
4376              <picture>
4377                <source :srcset="block.settings.dict_mobile_image_url" media="(max-width: 576px)">
4378                <source :srcset="block.settings.dict_tablet_image_url" media="(max-width: 992px)">
4379                <img
4380                  :src="block.settings.dict_image_url"
4381                  class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
4382                  alt="popup picture"
4383                />
4384              </picture>
4385            </a>
4386          </div>
4387          <div v-if="block.type === 'video'">
4388            <iframe
4389              :src="block.settings.dict_video_link"
4390              frameborder="0"
4391              class="qk-center--y qk-w--100 qk-h--100"
4392            ></iframe>
4393          </div>
4394          <div v-if="block.type === 'game'">
4395            <div v-show="gameStatus === 'show'" :class="{ 'show-game': gameStatus === 'show' }">
4396              <iframe
4397                class="cb-game-iframe iframe-loading"
4398                :src="getGameIframeSrc(block)"
4399                style="border: none;"
4400              >
4401                Loading
4402              </iframe>
4403            </div>
4404            <div v-show="gameStatus === 'minified'">
4405              <img
4406                src="//cdn-general.cybassets.com/game_assets/game_minified_new.png"
4407                class="qk-h--100 qk-w--100"
4408                alt="game minified icon"
4409              />
4410            </div>
4411          </div>
4412          <div
4413            v-if="block.type === 'carousel'"
4414            :id="`popup-carousel-${block.id}`"
4415          >
4416          </div>
4417        </div>
4418      </div>
4419    </transition>
4420    <transition name="backdrop">
4421      <div
4422        v-if="shouldShowPopup"
4423        @click.capture="minifyPopup"
4424        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"
4425      >
4426      </div>
4427    </transition>
4428  </div>
4429</template>
4430
4431<script>
4432  $(document).ready(function() {
4433    const CDN_HOST = '//cdn-general.cybassets.com';
4434    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":"圖片"}},"block_order":["popup_block_1"],"settings":{},"custom_name":"彈窗廣告"};
4435    var popupSection = Vue.createApp({
4436      template: '#popup-template',
4437      delimiters: ['${', '}'],
4438      data() {
4439        const isOmniauthPage = ['omniauth_terms_agreement', 'omniauth_mobile/']
4440          .some(path => location.pathname.includes(path));
4441        return {
4442          status: 'minified',
4443          gameStatus: 'show',
4444          blocks: isOmniauthPage
4445            ? []
4446            : section.block_order && section.block_order.reduce(
4447                function(acc, blockId) {
4448                  const block = section.blocks[blockId];
4449                  if (block && block.visible) {
4450                    acc.push({
4451                      ...block,
4452                      id: blockId,
4453                    });
4454                  }
4455                  return acc;
4456                },
4457                [],
4458              ),
4459          hasAddedGameScript: false,
4460        };
4461      },
4462      computed: {
4463        hasContent: function() {
4464          return !!(this.blocks && this.blocks.length > 0);
4465        },
4466        minifiedBlockClasses: function() {
4467          return this.status === 'minified' ? 'qk-pointer--none qk-unselectable' : '';
4468        },
4469        shouldShowPopup: function() {
4470          return this.status === 'show';
4471        }
4472      },
4473      methods: {
4474        unhidePopup: function(storedStatus) {
4475          this.status = storedStatus;
4476          $('#popup-wrapper').removeClass('qk-display--none');
4477        },
4478        showPopup: function() {
4479          if (this.status !== 'show') {
4480            this.status = 'show';
4481            this.saveStatus(this.status);
4482          }
4483        },
4484        minifyPopup: function() {
4485          this.status = 'minified';
4486          this.saveStatus('minified');
4487        },
4488        loadStatus: function() {
4489          return JSON.parse(localStorage.getItem('popupStatus'));
4490        },
4491        saveStatus: function(status) {
4492          if (status) {
4493            localStorage.setItem('popupStatus', JSON.stringify({
4494              status: status,
4495              setTime: new Date().getTime(),
4496            }));
4497          }
4498        },
4499        linkClicked: function() {
4500          this.saveStatus('minified');
4501        },
4502        parseVideoLink: function(settings) {
4503          settings.dict_video_link = themeHelper.parseYtUrl(settings.dict_video_link);
4504        },
4505        setupImageSrc: function (settings) {
4506          settings.dict_image_url = this.addCdnHost(settings.dict_image_url);
4507          if (settings.dict_tablet_image_url) {
4508            settings.dict_tablet_image_url = this.addCdnHost(settings.dict_tablet_image_url);
4509          }
4510          if (settings.dict_mobile_image_url) {
4511            settings.dict_mobile_image_url = this.addCdnHost(settings.dict_mobile_image_url);
4512          }
4513          settings.dict_icon_image_url = this.addCdnHost(settings.dict_icon_image_url) || settings.dict_image_url;
4514        },
4515        addCdnHost: function(url) {
4516          if (!url) {
4517            return url; // only add cdn host if url is not empty
4518          }
4519
4520          try {
4521            new URL(url);
4522            return url; // already a valid url, cdn host not needed
4523          } catch {
4524            return `${CDN_HOST}${url}`;
4525          }
4526        },
4527        initStatus: function() {
4528          let newStatus = 'show';
4529          const popupStatus = this.loadStatus();
4530          const currentTime = new Date().getTime();
4531          const oneDay = 1000 * 60 * 60 * 24;
4532          const hasStoredStatus = popupStatus && currentTime - popupStatus.setTime < oneDay;
4533          const redirectedByGameLogin = !this.hasRedirectUrl() && this.redirectedByGameLogin();
4534          const isLoggingIn = this.isLoggingIn();
4535          const isCartPage = window.location.pathname.split('/').includes('carts');
4536
4537          if (hasStoredStatus && !redirectedByGameLogin) {
4538            newStatus = popupStatus.status;
4539          }
4540
4541          if (isLoggingIn) {
4542            newStatus = 'minified';
4543          } else {
4544            localStorage.removeItem('redirectedByPopup');
4545          }
4546
4547          setTimeout(() => {
4548            this.status = newStatus;
4549            this.gameStatus = newStatus;
4550            this.saveStatus(newStatus);
4551            if(!isCartPage){
4552              this.unhidePopup(newStatus);
4553            }
4554          }, 1000);
4555        },
4556        initBlocks: function() {
4557          if (this.hasContent) {
4558            this.blocks.forEach(block => {
4559              switch(block.type) {
4560                case 'image':
4561                  this.setupImageSrc(block.settings);
4562
4563                  const isOpenInNewTab = block.settings.link_open_in_new_tab;
4564                  if (isOpenInNewTab) {
4565                    block.settings.target = '_blank';
4566                    block.settings.rel = 'noopener noreferrer';
4567                  }
4568
4569                  break;
4570                case 'video':
4571                  this.parseVideoLink(block.settings);
4572                  break;
4573              }
4574            })
4575          }
4576        },
4577        getGameIframeSrc: function (block) {
4578          return `/games/${block.settings.dict_game_handle}`
4579        },
4580        updateGameStatus: function(type, element) {
4581          if (
4582            (type === 'start' && this.status === 'minified')
4583            || (type === 'end' && this.status === 'show')
4584          ) {
4585            this.gameStatus = this.status;
4586          }
4587        },
4588        setupGameRedirects: function() {
4589          window.addEventListener('pagehide', () => {
4590            const isGameActive = document.body.getElementsByClassName('show-game').length;
4591            if (isGameActive) {
4592              localStorage.setItem('redirectedByPopup', 'true');
4593              this.saveStatus('minified');
4594            }
4595          });
4596        },
4597        hasRedirectUrl: function() {
4598          return (new URLSearchParams(location.search)).has('redirect_url');
4599        },
4600        redirectedByGameLogin: function() {
4601          return localStorage.getItem('redirectedByPopup');
4602        },
4603        isLoggingIn: function() {
4604          const loginRelatedPathnames = [
4605            'account/signup',
4606            'account/login',
4607            'account/customer/password/new',
4608            'pages/terms'
4609          ];
4610          return loginRelatedPathnames.some(path => location.pathname.includes(path));
4611        }
4612      },
4613      created: function() {
4614        this.initStatus();
4615        this.initBlocks();
4616        this.setupGameRedirects();
4617      },
4618      mounted: function() {
4619        this.blocks.forEach((block) => {
4620          if (block.type === 'carousel' && block.settings.dict_c
4620arousel) {
4621            renderCarousel(`#popup-carousel-${block.id}`, {
4622              title: block.settings.dict_carousel,
4623              CDN_HOST,
4624              onLinkClick: () => this.linkClicked(),
4625            });
4626          }
4627        });
4628      },
4629    });
4630    popupSection.mount('#popup-wrapper');
4631  });
4632</script>
4632
4633
4634
4635
4636    </div>
4637
4638    <!-- ajaxloading -->
4639    <div id="ajaxloading" class="qk-display--none qk-h--100vh qk-w--100vw qk-l--0 qk-t--0 qk-pos--fixed">
4640      <div class="ajaxbody qk-pos--abs qk-l--50 qk-t--50 qk-text--center">
4641        <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">
4642          <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"/>
4643          <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 "/>
4644          <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"/>
4645          <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"/>
4646          <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"/>
4647          <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"/>
4648        </svg>
4649        <div class="success_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">已加入購物車</div>
4650        <div class="success_update_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">已更新購物車</div>
4651        <div class="fail_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">網路異常,請重新整理</div>
4652      </div>
4653    </div>
4654  
4655      
4655<script>
4656        if (window.fbq) {
4657          fbq('track', 'Search', {
4658            content_ids: [84052654, 84021846, 83259157, 83259158, 83259159, 81540308, 80292652, 80036347, 80036348, 80036349, 75934186, 75934187, 75934188, 69457313, 64265513, 63972925, 63972430, 63970809, 63970242, 63968121, 63968105, 63968063, 63967454, 63967452, 63925666, 63925588, 63924679, 63924489, 63924292, 63923139, 63922958, 63922887, 63922715, 63922501, 63921738, 63921613, 63921208, 63920896, 63920634, 63920429, 63919938, 63919513, 63919182, 63917644, 63917331, 63917041, 63915412, 63915193, 63848842, 63848815, 63848812, 63848813, 63848791, 63848788, 63848785, 63848782, 63848281, 63847015, 63843745, 63840255, 63839630],
4659            currency: "TWD",
4660            search_string: null,
4661            contents: [{"id":84052654,"price":3360.0,"quantity":null},{"id":84021846,"price":1680.0,"quantity":null},{"id":83259157,"price":33000.0,"quantity":null},{"id":83259158,"price":29000.0,"quantity":10},{"id":83259159,"price":29000.0,"quantity":9},{"id":81540308,"price":4500.0,"quantity":null},{"id":80292652,"price":2800.0,"quantity":null},{"id":80036347,"price":33000.0,"quantity":null},{"id":80036348,"price":29000.0,"quantity":null},{"id":80036349,"price":29000.0,"quantity":null},{"id":75934186,"price":33000.0,"quantity":null},{"id":75934187,"price":29000.0,"quantity":null},{"id":75934188,"price":29000.0,"quantity":null},{"id":69457313,"price":33000.0,"quantity":null},{"id":64265513,"price":33000.0,"quantity":null},{"id":63972925,"price":5400.0,"quantity":null},{"id":63972430,"price":4200.0,"quantity":null},{"id":63970809,"price":33000.0,"quantity":null},{"id":63970242,"price":33000.0,"quantity":null},{"id":63968121,"price":1080.0,"quantity":null},{"id":63968105,"price":880.0,"quantity":null},{"id":63968063,"price":1480.0,"quantity":null},{"id":63967454,"price":2060.0,"quantity":null},{"id":63967452,"price":2560.0,"quantity":null},{"id":63925666,"price":2360.0,"quantity":null},{"id":63925588,"price":780.0,"quantity":null},{"id":63924679,"price":1180.0,"quantity":null},{"id":63924489,"price":980.0,"quantity":null},{"id":63924292,"price":580.0,"quantity":null},{"id":63923139,"price":1480.0,"quantity":null},{"id":63922958,"price":1180.0,"quantity":null},{"id":63922887,"price":4800.0,"quantity":null},{"id":63922715,"price":4800.0,"quantity":null},{"id":63922501,"price":4800.0,"quantity":null},{"id":63921738,"price":2360.0,"quantity":null},{"id":63921613,"price":980.0,"quantity":null},{"id":63921208,"price":980.0,"quantity":null},{"id":63920896,"price":1280.0,"quantity":null},{"id":63920634,"price":1280.0,"quantity":null},{"id":63920429,"price":980.0,"quantity":null},{"id":63919938,"price":880.0,"quantity":null},{"id":63919513,"price":880.0,"quantity":null},{"id":63919182,"price":980.0,"quantity":null},{"id":63917644,"price":880.0,"quantity":null},{"id":63917331,"price":1980.0,"quantity":null},{"id":63917041,"price":1980.0,"quantity":null},{"id":63915412,"price":1380.0,"quantity":null},{"id":63915193,"price":1280.0,"quantity":null},{"id":63848842,"price":1980.0,"quantity":null},{"id":63848815,"price":2880.0,"quantity":null},{"id":63848812,"price":680.0,"quantity":null},{"id":63848813,"price":680.0,"quantity":null},{"id":63848791,"price":1980.0,"quantity":null},{"id":63848788,"price":1380.0,"quantity":null},{"id":63848785,"price":2680.0,"quantity":null},{"id":63848782,"price":980.0,"quantity":null},{"id":63848281,"price":980.0,"quantity":null},{"id":63847015,"price":300.0,"quantity":null},{"id":63843745,"price":880.0,"quantity":null},{"id":63840255,"price":2680.0,"quantity":null},{"id":63839630,"price":210.0,"quantity":null}],
4662            content_type: 'product',
4663          }, {
4664            eventID: "Search_18A4DAAB34AEACAB3C017F196F901F50"
4665          });
4666        }
4667      </script>
4667
4668    </body>
4669
4670  
4670<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/sub_vendor-7338a3080043cbaa.js' type='text/javascript'></script>
4670
4671  
4671<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme_helper-7338a3080043cbaa.js' type='text/javascript'></script>
4671
4672
4673  <!-- theme assets -->
4674  
4674<script src='//cdn-general.cybassets.com/s/files/31935/theme/116484/assets/js/1737525107_e4c9bf6c_main.js?1737525107' type='text/javascript'></script>
4674
4675  
4675<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme-7338a3080043cbaa.js' type='text/javascript'></script>
4675
4676
4677  <!-- for cache -->
4678  
4678<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/cacheable-7338a3080043cbaa.js' type='text/javascript'></script>
4678
4679</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.