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">×</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.