1<!DOCTYPE html> 2<html lang="en" 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-M7SFH7L
vendor: 3 bytes, line 12
12');
12</script>
12 13
13<script>var google_tag_manager_id = 'GTM-M7SFH7L';</script>
13 14<!-- End Google Tag Manager --> 15 <!-- CYBERBIZ Google Tag Manager --> 16
16<script>
vendor: 345 bytes, lines 16-20
16(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 17 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 18 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 19 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 20 })(window,document,'script','cyb','
20GTM-TXD9LVJ
vendor: 3 bytes, line 20
20');
20</script>
20 21 <!-- End CYBERBIZ Google Tag Manager --> 22 23
23<script> 24 function getUserFromCookie(){ 25 if(localStorage.customer && localStorage.customer != '{"notLogin":true}'){ 26 return JSON.parse(localStorage.customer).id; 27 }else{ 28 return ""; 29 } 30 } 31 cyb = [{ 32 'shop': "17907-å é´»çæè¡ä»½æéå ¬å¸", 33 'shop_plan': "enterprise", 34 'userId': getUserFromCookie() 35 }]; 36 </script>
36 37 38 <!-- CYBERBIZ Google Tag Manager --> 39
39<script>
vendor: 345 bytes, lines 39-43
39(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 40 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 41 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 42 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 43 })(window,document,'script','cyb','
43GTM-P7528MQ
vendor: 3 bytes, line 43
43');
43</script>
43 44 <!-- End CYBERBIZ Google Tag Manager --> 45 46 <meta charset="utf-8"> 47<meta http-equiv="X-UA-Compatible" content="IE=edge"> 48<meta name="viewport" content="width=device-width, initial-scale=1"> 49<link rel="icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzMTczMDQ2X2xvZ29f5ZyWLnBuZy5wbmciXV0.png?convert=false&sha=6bec93c9ce3ac668"> 50<link rel="apple-touch-icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzMTczMDQ2X2xvZ29f5ZyWLnBuZy5wbmciXV0.png?convert=false&sha=6bec93c9ce3ac668"> 51 52<meta property="og:site_name" content="å é´»çæè¡ä»½æéå ¬å¸" /> 53 54<!-- og tag --> 55 56 <meta name="keywords" content="" /> 57 <meta name="description" content="" /> 58 <meta property="og:title" content="å é´»çæè¡ä»½æéå ¬å¸ " /> 59 <meta property="og:description" content="" /> 60 <meta property="og:url" content="https://www.zh-biotech.com" /> 61 <meta property="og:type" content="website" /> 62 63 64<!-- og image --> 65 66 67 <meta property="og:image" content="https://cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzMTczMDQ2X2xvZ29f5ZyWLnBuZy5wbmciXV0.png?sha=6bec93c9ce3ac668" /> 68 69 70 71<title> 72 73 å é´»çæè¡ä»½æéå ¬å¸ 74 75</title> 76 77 78
79<script src='//cdn-general.cybassets.com/frontend/shop/useSettingsData-4a1e7dfec7e41476.js' type='text/javascript'></script>
79 80 81 82 83
83<script> 84 window.setSettingsData({"draggable_sections":{"404":[],"index":["_main_slider_custom","_index_4_blocks","1680063739968_4","1680063869940_4","1683878235142_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/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDYxOTg5X-WFhum0u-WOu-iDjDIucG5nLnBuZyJdXQ.png?sha=031854de1c6a33f7","navbar_image_logo_tablet_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDU4NjYxX-WFhum0u-WOu-iDjC5naWYuZ2lmIl1d.gif?sha=b92020efb817f87a","navbar_image_logo_mobile_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDU4NjYxX-WFhum0u-WOu-iDjC5naWYuZ2lmIl1d.gif?sha=b92020efb817f87a","main_nav":"main-menu","slider_primary_linklist":"main-menu","slider_primary_linklist_set_open":true,"nav_show_three_dimension":true,"search_enabled":false,"display_only_index":false,"dict_header_banner_image_url":"/theme_src/i18n_nolli/default_img/header_banner_image.png","dict_header_banner_image_tablet_url":"","dict_header_banner_image_mobile_url":"/theme_src/i18n_nolli/default_img/header_banner_image_mobile.png","dict_header_banner_link":"","display_count_down":false,"navbar_display_style":"displayDefault","header_banner_start":"","header_banner_end":"","timer_text_color":"#ffffff","timer_bg_color":"#000000","navbar_background_transparent":true,"menu_display_style":"three_dimension_menu","header_logo_image_alt":"å é´»çæ,èèç½,èé¡ä¿å¥,è·è,ä¿å¥å","header_banner_image_alt":"","display_banner_type":"imageBanner","header_banner_simple_text_size":"12","header_banner_simple_text_color":"#ffffff","header_banner_simple_bg":"#000000","link_menu_enabled":false,"link_menu":"undefined","logo_height":"","mobile_logo_position":"left","navbar_pc_title_font_size_scale":"100","navbar_pc_body_font_size_scale":"100","navbar_mobile_title_font_size_scale":"100","navbar_mobile_body_font_size_scale":"100","breadcrumb_referrer_enabled":false},"custom_name":"å°è¦½å"},"footer":{"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/%E5%85%86%E9%B4%BB-%E9%BB%83%E9%87%91%E8%9C%86%E8%9B%8B%E7%99%BD-168548957238384","display_instagram":false,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://liff.line.me/2000447957-RL1l5N7D","display_youtube":false,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_y","display_facebook_fan_block":true},"block_order":["default_contact_info","default_link_list","1680064031226_2"],"blocks":{"default_link_list":{"type":"link_list_setting","custom_name":"é¸å®","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"About Us","footer_link":"footer"}},"default_contact_info":{"type":"contact_info_setting","custom_name":"è¯çµ¡è³è¨","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"dict_contact_info_block_title":"Informations","display_phone":true,"dict_phone_number":"09-87654321","display_fax_number":true,"dict_shop_fax_number":"02-22345678","display_shop_email":true,"dict_shop_email":"[email protected]","display_shop_address":true,"dict_shop_address":"Waterloo, IN 46793, United States","display_office_time":true,"dict_shop_office_time":"10:30am - 6:30pm"}},"default_link_list_2":{"type":"link_list_setting","custom_name":"é¸å®","visible":true,"settings":{"dict_link_list_block_title":"Menu","footer_link":"main-menu"}},"1680064031226_2":{"type":"rich_text_editor_setting","custom_name":"èªè¨æå","visible":true,"settings":{"dict_rich_text_title":"","dict_rich_text_content":""}}},"custom_name":"é è ³"},"_main_slider_custom":{"type":"_main_slider_custom","visible":true,"blocks":{"display_main_slider_item_1":{"type":"image","visible":true,"settings":{"dict_link":"/products/èèé60ç²è£-20230427145309","dict_image_url":"/theme_src/i18n_nolli/default_img/main_slider_item_1.png","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MDYyXzIwMjUwODA3X-ichuiKnemdiF85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=fbba2cc226115444","dict_mobile_image_url":"/theme_src/i18n_nolli/default_img/main_slider_item_1_mobile.png","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""},"custom_name":"èèé"}
84,"display_main_slider_item_2":{"type":"image","visible":true,"settings":{"dict_link":"/products/èèé寶-60-ç²è£-20230427144347","dict_image_url":"/theme_src/i18n_nolli/default_img/main_slider_item_2.png","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMxNTYwXzIwMjYxMDA1X-iWkeichumbmeWvtlBsdXNfOTYweDYwMC5qcGcuanBlZyJdXQ.jpeg?sha=9daf3230fd7f995e","dict_mobile_image_url":"/theme_src/i18n_nolli/default_img/main_slider_item_2_mobile.png","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""},"custom_name":"èèé寶"},"1683625586301_0":{"type":"image","custom_name":"å®æè³¼","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA2NTg0MTE0X-Wumuacn-izvF8yNDAxMzBfbmV3LmpwZy5qcGVnIl1d.jpeg?sha=7e544bbcabb1f1e6","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA2NTg0MTE1X-Wumuacn-izvF8yNDAxMzBfMl9uZXcuanBnLmpwZWciXV0.jpeg?sha=3fb60ca958eb1e7a","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA2NTg0MTE1X-Wumuacn-izvF8yNDAxMzBfM19uZXcuanBnLmpwZWciXV0.jpeg?sha=fc8e2fb533c05cbf","dict_link":"/pages/å®æè³¼","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1684111299529_0":{"type":"image","custom_name":"æ¯è¦ªç¯333x3","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTE2NjY4XzIwMjMwNTEyLmpwZy5qcGVnIl1d.jpeg?sha=06e0b6572b4d116a","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTE2NjY3XzIwMjMwNTEyXzk2MC5qcGcuanBlZyJdXQ.jpeg?sha=470a81339f919873","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTE2OTIxXzIwMjMwNTEyXzU2MC5qcGcuanBlZyJdXQ.jpeg?sha=3c323017828216cb","dict_link":"/collections/ææåå"}},"1684115267015_0":{"type":"image","custom_name":"ç¶ æ·¨è½","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTMxNjIwXzIwMjMwNTAxX-avjeimquevgF_ntqDmt6jogr1fMi5qcGcuanBlZyJdXQ.jpeg?sha=d80a473906c9cb62","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTMxNjQzXzIwMjMwNTAxX-avjeimquevgF_ntqDmt6jogr1fMl85NjAuanBnLmpwZWciXV0.jpeg?sha=cdc570ba8ce60056","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTMxNjYxXzIwMjMwNTAxX-avjeimquevgF_ntqDmt6jogr1fMl81NjAuanBnLmpwZWciXV0.jpeg?sha=34e5fc786a6e7f6c","dict_link":"/products/ç¶ æ·¨è½-60ç²è£-20230427144941"}},"1684115547750_0":{"type":"image","custom_name":"é²èæ¶²","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTIzNjc0XzIwMjMwNTExX-mYsuiaiua2si5qcGcuanBlZyJdXQ.jpeg?sha=68148d35814d06d7","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTIzNjg5XzIwMjMwNTExX-mYsuiaiua2sl85NjAuanBnLmpwZWciXV0.jpeg?sha=176b6bc965f7d6d0","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg0MTIzNzEwXzIwMjMwNTExX-mYsuiaiua2sl81NjAuanBnLmpwZWciXV0.jpeg?sha=60e1f4fd8fd1342d","dict_link":"/products/å
èä½ -èæ¬æ¤è精油é²èæ¶²"}},"1688357517672_0":{"type":"image","custom_name":"éç«æ
¶","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg4MzUyNTgxX-mWi-ermeaFti3pm7vohabniYguanBnLmpwZWciXV0.jpeg?sha=c3a1e19aed3cce44","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg4MzUyNTkxX-mWi-ermeaFti3lubPmnb_niYguanBnLmpwZWciXV0.jpeg?sha=1dfcbb6a7472193e","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjg4MzUyNTkyX-mWi-ermeaFti3miYvmqZ_niYguanBnLmpwZWciXV0.jpeg?sha=f72c781ace4ca83a","dict_link":"/collections/éç«æ
¶éæåªæ çµ"}},"1690856965195_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjkwODU3MzMwX-eItuW_qy3pm7vohabniYguanBnLmpwZWciXV0.jpeg?sha=6bfe15066e0aab4e","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjkwODU3MTIwX-eItuW_qy3lubPmnb_niYhfMC
845qcGcuanBlZyJdXQ.jpeg?sha=ec376db627b2aed3","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjkwODU3MzYwX-eItuW_qy3miYvmqZ_niYhfMC5qcGcuanBlZyJdXQ.jpeg?sha=492fa43cd45ffb0d","dict_link":"/collections/ä»»é¸3é
åªæ "}},"1692865662663_0":{"type":"image","custom_name":"ç¶ æ·¨è½","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MjExXzIwMjUxMDAyX-e2oOa3qOiCvS5qcGcuanBlZyJdXQ.jpeg?sha=cad5287801d94bd5","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MjEwXzIwMjUxMDAyX-e2oOa3qOiCvV85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=54bee6de9a7a6a4c","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MjExXzIwMjUxMDAyX-e2oOa3qOiCvV81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=cadee8a131eae02f","dict_link":"/products/ç¶ æ·¨è½-60ç²è£-20230427144941","main_slider_image_alt":"ã調ç¯è¡èãç¶ æ·¨è½","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1692930510446_0":{"type":"image","custom_name":"ç¦å©åèèé寶","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzAzNDk2ODg4XzIwMjMxMjI1IOWFhum0u1_olpHonIbpm5nlr7bosrfkuozpgIHkuIDmtLvli5UuanBnLmpwZWciXV0.jpeg?sha=eaec7c9b49f58b68","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzAzNDk2ODg4XzIwMjMxMjI1IOWFhum0u1_olpHonIbpm5nlr7bosrfkuozpgIHkuIDmtLvli5VfOTAweDYwMC5qcGcuanBlZyJdXQ.jpeg?sha=f57e046c215fe7f3","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzAzNDk2ODg4XzIwMjMxMjI1IOWFhum0u1_olpHonIbpm5nlr7bosrfkuozpgIHkuIDmtLvli5VfNTc2eDUwMC5qcGcuanBlZyJdXQ.jpeg?sha=5bec2a742959da9e","dict_link":"/products/èèé寶-60-ç²è£-20230427144347","main_slider_image_alt":"ãè¤æ¹å ä¹ãèèé寶"}},"1692930862865_0":{"type":"image","custom_name":"é²èæ¶²","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgyMTc3MjgwXzIwMjYwNjIzX-mYsuiaiua2si5qcGcuanBlZyJdXQ.jpeg?sha=e20bb236a079972c","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgyMTc3MjgwXzIwMjYwNjIzX-mYsuiaiua2sl85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=2b52637b59d79653","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgyMTc3MjgwXzIwMjYwNjIzX-mYsuiaiua2sl81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=eabec98dc457de8a","dict_link":"/collections/é²èæ¶²","main_slider_image_alt":"å
èä½ é²èæ¶²","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1693787414167_0":{"type":"image","custom_name":"å¤§çµæ¸åªæ ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMyOTIzXzIwMjYxMDA3LmpwZy5qcGVnIl1d.jpeg?sha=b620e29bc7564a87","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMyOTIyXzIwMjYxMDA3Xzk2MHg2MDAuanBnLmpwZWciXV0.jpeg?sha=2ae9d8ad491eeee1","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMyOTIzXzIwMjYxMDA3XzU3Nng1MDAuanBnLmpwZWciXV0.jpeg?sha=c2d6c2fced0296d2","dict_link":"/collections/ææåå","main_slider_image_alt":"å
é´»çæç¢å","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1696468904785_0":{"type":"image","custom_name":"ç¶å®LINE@","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzI3NjYyMTE2XzIwMjQwOTMwX0xJTkVA5Yqg5YWl5aW95Y-L5rW35aCxXzEwMCDlhYPmipjlg7nliLguanBnLmpwZWciXV0.jpeg?sha=d3b7350760492aae","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzI3NjYyMTE2XzIwMjQwOTMwX0xJTkVA5Yqg5YWl5aW95Y-L5rW35aCxXzEwMCDlhYPmipjlg7nliLhfOTYweDYwMC5qcGcuanBlZyJdXQ.jpeg?sha=4a132a96d2f39a3b","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzI3NjYyMTE2XzIwMjQwOTMwX0xJTkVA5Yqg5YWl5aW95Y-L5rW35aCxXzEwMCDlhYPmipjlg7nliLhfNTc2eDUwMC5qcGcuanBlZyJdXQ.jpeg?sha=e67c205b36f9fe1a","dict_link":"https://liff.line.me/2000447957-RL1l5N7D","main_slider_image_alt":"ç¶å®LINE@","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1704264794507_0":{"type":"image","custom_name":"èèéå
è²»é«é©","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA1OTEwMjcxXzIwMjQwMTEyLTFf5bel5L2c5Y2A5Z-fIDEuanBnLmpwZWciXV0.jpeg?sha=c2f2a7a2d72fbc12","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA1OTEwMjcxXzIwMjQwMTEyLTJfOTYweDYwMC0wMi0wMi5qcGcuanBlZyJdXQ.jpeg?sha=2e704c2bb780419c","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA1OTEwMjcxXzIwMjQwMTEyLTNfNTc2eDUwMC0wMy5qcGcuanBlZyJdXQ.jpeg?sha=6ea
847200cc705df69","dict_link":"/products/èèé20ç²è£-20231011085745","main_slider_image_alt":"èèéå
è²»é«é©","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1708501234096_0":{"type":"image","custom_name":"ç´
å©é»æ¸","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA4NTAxMjU2XzIwMjQwMjIxX-e0heWIqem7nuaVuC5qcGcuanBlZyJdXQ.jpeg?sha=c5070e33bfad880c","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA4NTAxMjczXzIwMjQwMjIxX-e0heWIqem7nuaVuF85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=228a10c0c08a3b53","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA4NTAxMjczXzIwMjQwMjIxX-e0heWIqem7nuaVuF81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=e3bf239c2214d7cf","dict_link":"https://www.zh-biotech.com/zh-TW/collections/%E6%98%8E%E6%98%9F%E5%95%86%E5%93%81","main_slider_image_alt":"ç·ä¸è³¼ç©ç´
å©é»æ¸æ´»å","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1711943050777_0":{"type":"image","custom_name":"èèé寶å
è²»é«é©","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzEyNTYwMDY0XzIwMjQwMzA2X1_olpHonIbpm5nlr7Zf6auU6amX5ZOBX-W3peS9nOWNgOWfnyAxLmpwZy5qcGVnIl1d.jpeg?sha=cb93dbff445f2664","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzEyNTYwMDYzXzIwMjQwMzA2X1_olpHonIbpm5nlr7Zf6auU6amX5ZOBLTAyLmpwZy5qcGVnIl1d.jpeg?sha=da1ea7787bea0c0d","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzEyNTYwMDYzXzIwMjQwMzA2X1_olpHonIbpm5nlr7Zf6auU6amX5ZOBLTAzLmpwZy5qcGVnIl1d.jpeg?sha=a24421616eff448f","dict_link":"/products/èèé寶-10-ç²è£-20240401111213","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1730260490026_0":{"type":"image","custom_name":"ç¶ æ·¨è½-è²·ä¸éäº","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzMxMDU1ODU5XzIwMjQxMDI5X-e2oOa3qOiCvV_osrfkuIDpgIHkuowuanBnLmpwZWciXV0.jpeg?sha=02d07a572728db6b","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzMxMDU1Nzg4XzIwMjQxMDI5X-e2oOa3qOiCvV_osrfkuIDpgIHkuoxfOTYweDYwMC5qcGcuanBlZyJdXQ.jpeg?sha=33dd84ee41030b83","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzMxMDU1Nzg5XzIwMjQxMDI5X-e2oOa3qOiCvV_osrfkuIDpgIHkuoxfNTc2eDUwMC5qcGcuanBlZyJdXQ.jpeg?sha=e09bf3f72aec6a25","dict_link":"/collections/ç¶ æ·¨è½","main_slider_image_alt":"ç¶ æ·¨è½","slide_contents_display":"left","slide_btn_link":"/collections/ç¶ æ·¨è½","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":"/collections/ç¶ æ·¨è½"}},"1744849916888_0":{"type":"image","custom_name":"æ¯è¦ªç¯åªæ æ´»å","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzQ3MjczMjgyXzIwMjUwNTE1X-avjeimquevgF8xOTIweDkyMC5qcGcuanBlZyJdXQ.jpeg?sha=98becdec4c018f72","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzQ3MjczMjgyXzIwMjUwNTE1X-avjeimquevgF85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=7d4103b409fd1484","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzQ3MjczMjgyXzIwMjUwNTE1X-avjeimquevgF81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=1157b9cb859268f5","dict_link":"/collections/all","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":["1744849916888_0","1693787414167_0","1711943050777_0","1704264794507_0","display_main_slider_item_1","display_main_slider_item_2","1692865662663_0","1692930862865_0","1708501234096_0","1683625586301_0","1696468904785_0","173026049
840026_0"],"settings":{"margin_x":"0","margin_bottom":"48","mobile_margin_x":"0","mobile_margin_bottom":"24","swiper_delay":"5","image_number":"1","image_space":"12","mobile_image_number":"1","mobile_image_space":"8","transition_speed":"0.3"},"custom_name":"大å輪æ"},"_index_8_blocks":{"type":"_index_8_blocks","visible":true,"settings":{"dict_title":"Delicious Food","collection_handle":"delicious-food","limit":"8","margin_x":"0","margin_bottom":"48","mobile_margin_x":"","mobile_margin_bottom":"24","product_display":"displayPartial"},"custom_name":"åååé¡"},"_index_product_banner":{"type":"_index_product_banner","custom_name":"æ©«å¹
廣å","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_nolli/default_img/index_product_banner.png","dict_tablet_image_url":"","dict_mobile_image_url":"/theme_src/i18n_nolli/default_img/index_product_banner_mobile.png","dict_link":"","display_cta_btn":true,"cta_btn_display_style":"midPosition","cta_btn_text":"Read More","cta_btn_bg_color":"#f07d4a","cta_btn_text_color":"#ffffff","margin_x":"80","margin_bottom":"48","mobile_margin_x":"0","mobile_margin_bottom":"24"},"blocks":{},"block_order":[]},"_index_4_blocks":{"type":"_index_4_blocks","visible":true,"blocks":{"index_4_blocks_block_1":{"type":"image","visible":true,"settings":{"title":"","dict_link":"/collections/é»éèèç½","dict_image_url":"/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_1.png","dict_tablet_image_url":"","dict_mobile_image_url":"","block_propotion":"33.3","dict_image_description":""},"custom_name":"èèé"},"index_4_blocks_block_2":{"type":"image","custom_name":"èèé寶","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_2.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/èèé寶","block_propotion":"33.3","dict_image_description":""}},"index_4_blocks_block_3":{"type":"image","custom_name":"ç¶ æ·¨è½","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_3.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/ç¶ æ·¨è½","block_propotion":"33.3","dict_image_description":""}}},"block_order":["index_4_blocks_block_1","index_4_blocks_block_2","index_4_blocks_block_3"],"custom_name":"ä¸å¤§ç±éåå","settings":{"margin_x":"180","margin_bottom":"48","mobile_margin_x":"0","mobile_margin_bottom":"24","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10","mobile_align":"left"}},"_index_4_blocks_2":{"type":"_index_4_blocks","custom_name":"èªè¨æçè¨è¨","visible":true,"settings":{"margin_x":"80","margin_bottom":"48","mobile_margin_x":"16","mobile_margin_bottom":"24","mobile_columns":1},"blocks":{"_index_4_blocks_2_block_1":{"type":"video","custom_name":"å½±ç","visible":true,"settings":{"dict_video_link":"https://www.youtube.com/watch?v=bPf2zuuH_7g\u0026feature=youtu.be","block_propotion":"100"}}},"block_order":["_index_4_blocks_2_block_1"]},"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_nolli/default_img/index_4_blocks_1_block_1.png","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":"Categories","blog_latest_post_limit":"2"},"custom_name":"é¨è½æ ¼æç« è¨å®"},"category":{"type":"category","visible":true,"settings":{"category_sidebar_set_open":false,"category_product_block_limit":"4","category_product_swiper_item_limit":"6","category_product_item_limit":"18"}},"shop_setting":{"type":"shop_setting","visible":true,"settings":{"favicon_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzMTczMDQ2X2xvZ29f5ZyWLnBuZy5wbmciXV0.png?sha=6bec93c9ce3ac668","og_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzMTczMDQ2X2xvZ29f5ZyWLnBuZy5wbmciXV0.png?sha=6bec93c9ce3ac668","shop_title":"èé¡è·èä¿å¥åå°å®¶","shop_description":"","shop_keywords":"å
é´»çæ,é»éèèç½,èèç½,èé¡ä¿å¥,è·èä¿å¥,ä¸é«ä¿å¥","dict_shop_title":"èé¡è·èä¿å¥åå°å®¶","dict_shop_description":"","dict_shop_keywords":"å
é´»çæ,é»éèèç½,èèç½,èé¡ä¿å¥,è·èä¿å¥,ä¸é«ä¿å¥"},"custom_name":"å
¨ç«è¨å®"},"color_settings":{"type":"color_settings","visible":true,"settings":{"button_color":"#f07d4a","button_text_color":"#ffffff","accent_color":"#f07d4a","heading_color":"#3a3a3a","text_color":"#987956","price_color":"#f07d4a","discount_price_color":"#f07d4a","theme_bg_color":"#FFFFFF","product_border_color":"#b98c58","nav_logo_bg_color":"#FFF9F2","nav_menu_bg_color":"#FFF9F2","nav_menu_text_color":"#3a3a3a","nav_menu_icon_color":"#643114","footer_bg_color":"#fff9f2","footer_text_color":"#3a3a3a","checkout_button_color":"#f07d4a","checkout_accent_color":"#643114","tips_text_color":"#0C5460"},"custom_name":"é¡è²è¨å®"},"popup":{"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_nolli/default_img/popup_image.png","icon_size":"small"},"custom_name":"åç"},"1688357362999_0":{"type":"image","custom_name":"åç","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f","icon_size":"large","dict_link":"https://liff.line.me/2000447957-RL1l5N7D","dict_icon_
84image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f"}}},"block_order":["1688357362999_0"],"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":""},"custom_name":"åºæ¬è¨å®"},"product_description":{"type":"product_description","visible":true,"custom_name":"ååä»ç´¹"},"board_comments":{"type":"board_comments","visible":true,"settings":{},"custom_name":"ååè©è«","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","related_products_limit":"4"},"custom_name":"ç¸éåå"},"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"},"custom_name":"åååé¡è¨å®"},"404":{"type":"404","visible":true,"settings":{"image_url":"/theme_src/i18n_nolli/default_img/404_img.png","dict_404_image_url":"/theme_src/i18n_nolli/default_img/404_img.png","dict_title_text":"Sorry, this page does not exist or has been removed","dict_btn_text":"Back to Home"}},"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/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":{}}
84,"1680063739968_4":{"type":"_index_4_blocks","custom_name":"宣å³å½±ç","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10","mobile_align":"left"},"blocks":{"1680063739971_1":{"type":"video","custom_name":"å½±ç","visible":true,"settings":{"dict_video_link":"https://youtu.be/BehdoVBymKk\u0026loop=1\u0026autoplay=1\u0026mute=1","block_propotion":"100","auto_play":true,"hide_controls":false,"loop":true}}},"block_order":["1680063739971_1"]},"1680063869940_4":{"type":"_index_4_blocks","custom_name":"å
ébanner","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"40","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10","mobile_align":"left"},"blocks":{"1680063869942_0":{"type":"image","custom_name":"滿1200å
é","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzNzg1NjI2X-WFjemBiy3pm7vohabniYguanBnLmpwZWciXV0.jpeg?sha=e4ff56310d7e71f4","dict_tablet_image_url":"","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzNzg3MDU1X-WFjemBiy3miYvmqZ_niYguanBnLmpwZWciXV0.jpeg?sha=9da5987f49564a20","dict_link":"","dict_image_description":""}}},"block_order":["1680063869942_0"]},"1680063973726_4":{"type":"_index_4_blocks","custom_name":"æå¡åªæ ","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_columns":1},"blocks":{"1680063973728_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shoestore/default_img/index_4_blocks_1.jpg","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":""}}},"block_order":["1680063973728_0"]},"1683878235142_3":{"type":"_index_4_blogs","custom_name":"åé é 籤","visible":false,"settings":{"dict_title":"","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","article_columns":"4"},"blocks":{"1683878425979_0":{"type":"blog","custom_name":"çé¤å¸«","visible":true,"settings":{"blog_handle":"çé¤å¸«å¥½è©"}},"1683878250947_0":{"type":"blog","custom_name":"èèé","visible":true,"settings":{"blog_handle":"èèé"}},"1683878235149_0":{"type":"blog","custom_name":"èèé寶","visible":true,"settings":{"blog_handle":"èèé寶"}},"1683878403824_0":{"type":"blog","custom_name":"ç¶ æ·¨è½","visible":true,"settings":{"blog_handle":"ç¶ æ·¨è½"}}},"block_order":["1683878250947_0","1683878235149_0","1683878403824_0","1683878425979_0"]},"customers/other_valid_orders":{"type":"customers/other_valid_orders","visible":true,"settings":{}},"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_nolli/default_img/header_banner_image.png","dict_image_tablet_url":"","dict_image_mobile_url":"/theme_src/i18n_nolli/default_img/header_banner_image_mobile.png","image_alt":"","dict_content":"","text_size":"12","text_color":"#ffffff","bg_color":"#000000","timer_text_color":"#ffffff","timer_bg_color":"#000000","migrated_from_navbar":true},"custom_name":"åç"}},"block_order":["announcement_bar_block_1"],"settings":{"display_mode":"vertical","carousel_interval":"3"},"custom_name":"ç½®é å
¬å"}},"navbar_image_logo":true,"show_default_all_products":true,"one_dimension_limit":"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":"Autumn Shoes are now in store","dict_index_event_slider_item_2_link":"#","index_event_slider_item_3_display":true,"dict_index_event_slider_item_3_title":"Purchase any 3 items and get 20% off!","dict_index_event_slider_item_3_link":"#","index_event_slider_item_4_display":true,"dict_index_event_slider_item_4_title":"FINAL SALE/Summer shoes are now on clearance sale!","dict_index_event_slider_item_4_link":"#","index_event_slider_item_5_display":true,"dict_index_event_slider_item_5_title":"Sale ends soon","dict_index_event_slider_item_5_link":"#","index_event_slider_item_6_display":true,"dict_index_event_slider_item_6_title":"Register now and get $50 off","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":"","
84index_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":"","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","description_section_spec_setting":true,"dict_product_description_section_spec":"Specification","description_section_shipping_setting":false,"dict_product_description_section_shipping":"Shipping Method","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":"Test Address","show_google_map":true,"show_google_map_iframe":"\u003ciframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3613.6479170127777!2d121.56760821400371!3d25.07991984260527!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3442ac6fbd841bbd%3A0x64e16bcf25e3da31!2zMTE05Y-w5YyX5biC5YWn5rmW5Y2A55Ge5YWJ6LevNTEz5be3MzDomZ8!5e0!3m2!1szh-TW!2stw!4v1485156761267\" width=\"600\" height=\"450\" frameborder=\"0\" style=\"border:0\" allowfullscreen\u003e\u003c/iframe\u003e","display_selected_blog":true,"selected_blog":"news","product_scale":"three_to_four_scale","display_inventory_policy":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'}}","styled_shop_menu":"dropDownType","display_product_vendor":true,"product_video_display_location":"before","product_text_align":"center","product_labels":{"items":[{"id":"sale_label","kind":"system","title":"ç¹å¹æ¨ç±¤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"large"},{"id":"out_of_stock_label","kind":"system","title":"缺貨æ¨ç±¤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"periodic_event_label","kind":"system","title":"宿å®é¡æ¨ç±¤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"fc3ce4da-d72d-4c9b-9620-a44475129373","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 1","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"481e4224-eda6-4db0-b7c7-8035b2f89c23","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 2","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"59b2bbe3-ce1e-48b6-893a-0840e3f620ca","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 3","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"8ef3bd5d-a057-45ac-b237-9ac30ea59804","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 4","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"066f64d4-6205-4b46-95cd-7bd99beba216","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 5","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"}]},"nav_icon_style":"icon_type_default","product_card_hover_effect":"button","product_image_border_radius":"0"}); 85 </script>
85 86 87 88 89 90 91 92 93 94
94<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","url":"https://www.zh-biotech.com","logo":"https://cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDYxOTg5X-WFhum0u-WOu-iDjDIucG5nLnBuZyJdXQ.png?sha=031854de1c6a33f7"}</script>
94<script type="application/ld+json">{"@context":"https://schema.org/","@type":"WebSite","name":"å
é´»çæè¡ä»½æéå
¬å¸","url":"https://www.zh-biotech.com","potentialAction":{"@type":"SearchAction","target":"www.zh-biotech.com/search?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
94 95 96 97 98 <!-- for vendor --> 99 <!-- cyb_snippet _bootstrap start --> 100 101<!-- cyb_snippet _bootstrap end --> 102 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vendor-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 103 104 <!-- common css rulesets --> 105 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/common-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 106 107 <!-- for navbar --> 108 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/navbar-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 109 110 <!-- for footer --> 111 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/footer-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 112 113 <!-- theme assets --> 114 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/main-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 115 116 <!-- for vendor --> 117
117<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/vendor-4a1e7dfec7e41476.js' type='text/javascript'></script>
117 118 119
119<script> 120 window.sci = "eyJzaG9wX2lkIjoxNzkwNywic2hvcF9wbGFuIjoiZW50ZXJwcmlzZSIsImRp\nbV9hZmZpbGlhdGUiOm51bGwsImN1c3RvbWVyX2lkIjpudWxsLCJjdXN0b21l\ncl9uYW1lIjpudWxsLCJzaG9wX25hbWUiOiLlhYbptLvnlJ/mioDogqHku73m\nnInpmZDlhazlj7giLCJzaGFyZV9hdHRyaWJ1dGlvbl9lbmFibGVkIjpmYWxz\nZX0=\n"; 121 </script>
121 122 123 124<meta name="csrf-param" content="authenticity_token" /> 125<meta name="csrf-token" content="i-NguL-4PdkGcsSgfR3c2pm9DhPpErZry7t5Gp7pcsiov7ngZ-YheuR2XkAA2y9Ta38IB0_ZPD2his3rY_TcTQ" />
126<script>(function () { 127 window.gaConfigurations = {"useProductIdInProductEvents":false}; 128})(); 129</script>
vendor: 1 bytes, line 129
129
130<script>(function () { 131 window.CYBERBIZ_PageContext = {"page_type":"home"}; 132})(); 133</script>
133 134<link href="//cdn-general.cybassets.com/frontend/shop/quark-4a1e7dfec7e41476.css" rel="stylesheet" type="text/css" media="all" /> 135
135<script> 136 window.shopScriptHelper = { 137 i18nLocale: "en", 138 i18nLocaleDefault: "zh-TW", 139 availableCurrencies: ["AUD","CNY","EUR","GBP","HKD","JPY","KRW","MYR","SGD","THB","TWD","USD","VND"], 140 defaultCurrency: "TWD", 141 currenciesInfo: [{"html_unit":"NT${{amount_no_decimals}}","email_unit":"NT${{amount_no_decimals}}","name":"æ°å°å¹£ (TWD)","html":"NT${{amount_no_decimals}}","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%u%n","format":"NT${{amount_no_decimals}}","code":"TWD","symbol":"NT$","email":"NT${{amount_no_decimals}}"},{"html_unit":"\u0026#165;{{amount}}","email_unit":"Â¥{{amount}}","name":"人æ°å¹£ (CNY)","html":"\u0026#165;{{amount}}","trailing_zeros":true,"unit":"RMB","decimal_precision":2,"money_format":"%u%n","format":"\u0026#165;{{amount}}","code":"CNY","symbol":"Â¥","email":"Â¥{{amount}}"},{"html_unit":"${{amount}} USD","email_unit":"${{amount}} USD","name":"ç¾å (USD)","html":"${{amount}}","trailing_zeros":true,"unit":"USD","decimal_precision":2,"money_format":"%u%n","format":"${{amount}} USD","code":"USD","symbol":"$","email":"${{amount}}"},{"html_unit":"\u0026euro;{{amount}} EUR","email_unit":"â¬{{amount}} EUR","name":"æå (EUR)","html":"\u0026euro;{{amount}}","trailing_zeros":true,"unit":"EUR","decimal_precision":2,"money_format":"%u%n","format":"\u0026euro;{{amount}} EUR","code":"EUR","symbol":"â¬","email":"â¬{{amount}}"},{"html_unit":"HK${{amount}}","email_unit":"HK${{amount}}","name":"港å (HKD)","html":"${{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"HK${{amount}}","code":"HKD","symbol":"HK$","email":"${{amount}}"},{"html_unit":"\u0026#165;{{amount_no_decimals}}","email_unit":"Â¥{{amount_no_decimals}}","name":"æ¥å¹£ (JPY)","html":"\u0026#165;{{amount_no_decimals}}","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%u%n","format":"\u0026#165;{{amount_no_decimals}}","code":"JPY","symbol":"Â¥","email":"Â¥{{amount_no_decimals}}"},{"html_unit":"฿{{amount}}","email_unit":"฿{{amount}}","name":"æ³°é (THB)","html":"฿{{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"฿{{amount}}","code":"THB","symbol":"฿","email":"฿{{amount}}"},{"html_unit":"{{amount_no_decimals}}â«","email_unit":"{{amount_no_decimals}}â«","name":"è¶åç¾ (VND)","html":"{{amount_no_decimals}}â«","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%n%u","format":"{{amount_no_decimals}}â«","code":"VND","symbol":"â«","email":"{{amount_no_decimals}}â«"},{"html_unit":"RM {{amount}}","email_unit":"RM {{amount}}","name":"馬ä¾è¥¿äºä»¤å (MYR)","html":"RM {{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"RM {{amount}}","code":"MYR","symbol":"RM ","email":"RM {{amount}}"},{"html_unit":"S${{amount}}","email_unit":"S${{amount}}","name":"æ°å å¡å (SGD)","html":"S${{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"S${{amount}}","code":"SGD","symbol":"S$","email":"S${{amount}}"},{"html_unit":"â©{{amount_no_decimals}}","email_unit":"â©{{amount_no_decimals}}","name":"éå (KRW)","html":"â©{{amount_no_decimals}}","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%u%n","format":"â©{{amount_no_decimals}}","code":"KRW","symbol":"â©","email":"â©{{amount_no_decimals}}"},{"html_unit":"A${{amount}}","email_unit":"A${{amount}}","name":"澳洲å (AUD)","html":"A${{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"A${{amount}}","code":"AUD","symbol":"A$","email":"A${{amount}}"},{"html_unit":"£{{amount}}","email_unit":"£{{amount}}","name":"è±é (GBP)","html":"£{{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"£{{amount}}","code":"GBP","symbol":"£","email":"£{{amount}}"}], 142 vueOverrideTranslations: {"en":{"vue":{"common":{"corona":{"sell_from_asc":"Store Essentials"}},"theme_pages":{"collection":{"products_total":"Total of {totalProductCounts} products"},"combo_product":{"notification_enabled":"Notification enabled"},"order_return":{"gift_price":"Discount Price","check_account_length":"Bank Account Length Validation","refund_invoice_check":"I agree to the cancellation of the invoice or the \"Tax Payment Certificate\", and g
142ive consent to {company_name} to be handled at discretion in order to expedite the refund process.","enter_return_reason":"Please specify the return reason..."},"contact":{"invalid_phone_number":"Phone number required"},"search":{"articles_total":"Total of {totalArticleCounts} articles"}}}}}, 143 hasI18nInContextEditing: false, 144 shopMultipleCurrenciesCheckout: false, 145 hasLocalizedShopPriceFormat: true, 146 } 147 </script>
147 148 149 150
150<script 151 src="//cdn-general.cybassets.com/frontend/shop/tolgeeIntegration-4a1e7dfec7e41476.js"> 152 </script>
152 153
153<script defer> 154 /* 155 * Enable in-context translation for Liquid part on the page. 156 * This must be executed last to prevent conflicts with other Vue apps. 157 * So put it to `onload`, which will be executed after DOM ready's app mount 158 */ 159 window.onload = function() { 160 if ( 161 window.shopScriptHelper && 162 window.shopScriptHelper.hasI18nInContextEditing 163 ) { 164 window.initTolgeeForLiquid() 165 } 166 } 167 </script>
167 168
169<script> var google_con_event_labels = [{"conversion_id":"11219391246","conversion_event":"order_created","conversion_label":"R8YLCI6Siq0YEI6m6eUp","id":null},{"conversion_id":"11219391246","conversion_event":"add_to_cart","conversion_label":"YoZlCJGSiq0YEI6m6eUp","id":null}]</script>
vendor: 1 bytes, line 169
169
170<script src="//cdn-general.cybassets.com/frontend/shop/pageEventHandler-4a1e7dfec7e41476.js"></script>
vendor: 1 bytes, line 170
170
171<script src="//cdn-general.cybassets.com/frontend/shop/globalAnalysis-e4c650eb0b.js"></script>
171 172
172<script> 173 window.c12t = {"customer_id":null}; 174 </script>
174 175 176 <meta name="request-id" content="B3EA24FD1F27FFF63CAEA6A7944D3898"/> 177 178<link rel="canonical" href="https://www.zh-biotech.com/en/"> 179<link rel="alternate" hreflang="zh-TW" href="https://www.zh-biotech.com/zh-TW/"> 180<link rel="alternate" hreflang="en" href="https://www.zh-biotech.com/en/"> 181<link rel="alternate" hreflang="x-default" href="https://www.zh-biotech.com/zh-TW/">
182<script src="//cdn-general.cybassets.com/frontend/shop/carousel-4a1e7dfec7e41476.js"></script>
182 183
183<script> 184 window.parent.postMessage({ type: 'previewShopInit', currentUrl: window.location.href }, '*'); 185 </script>
185 186
187<script src="//cdn-general.cybassets.com/frontend/appStoreSDK/main.2798231628aa7fab87a9.js"></script>
vendor: 1 bytes, line 187
187
188<script>window.CYBERBIZ_AppScriptSettings = {"shop_add_ons":"W3sidmVuZG9yX3R5cGUiOiJDWUJFUkJJWiBHb29nbGUgQW5hbHl0aWNzIDQi\nLCJhcHBfaWQiOiJRVWo1WnFvZUlPUjlaM2JaS2trMG44N3l5a0FpOWU0NURE\naDJ0YlFnaUJBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IkctOEM4NzNKUDRH\nRCwgRy00QjdSSzdGSFdIIn19LHsidmVuZG9yX3R5cGUiOiJHb29nbGUgQW5h\nbHl0aWNzIDQiLCJhcHBfaWQiOiJSYkpWMTVFcVZWOHJ1Umo3NVlmV3Z1RUlD\nRm90Q0FPZm0xSDZtZ3hyNkZBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6Ikct\nV042RUNTOTY0OSJ9fSx7InZlbmRvcl90eXBlIjoiQ2hhdCBCb3giLCJhcHBf\naWQiOiJjOWQ4M2YwOTk2MTc0ZmJiYTg2ZWJhMDQxYWU4OThhMiIsInNldHRp\nbmdzIjp7IndpZGdldF9rZXkiOiI1eGw3YUNPLWpFWWNMLXd4In19LHsidmVu\nZG9yX3R5cGUiOiJEaWdpdGFsIEludGVsbGlnZW5jZSBUcmFja2VyIiwiYXBw\nX2lkIjoiMWI1MGE4NmRjMmQxNDE4Mzg4ZmRlZGY3YTBkNDM5YWUiLCJzZXR0\naW5ncyI6e319XQ==\n"} 189</script>
vendor: 1 bytes, line 189
189
190<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/9d6f4550aad572e9f70abb70ae5a6552482cf617ea5e4d5a32ed4ebbb5d60d54.js"></script>
vendor: 1 bytes, line 190
190
191<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/a810ec58aab67d16f8de1c4adf06fc7cc9f4477ec503b9cb1a998741bc692652.js"></script>
vendor: 1 bytes, line 191
191
192<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/8766542902afa60f4adda3c555c06025d2c27771ea85a6fc657a91cddbe5c59f.js"></script>
vendor: 1 bytes, line 192
192
193<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/35cd1f36a4a855bacbaa53900f8e17b376d4cab44c73812eef261aef6435163d.js"></script>
vendor: 1 bytes, line 193
193
194<script>window.CYBERBIZ.initializeSDK.initialize();</script>
vendor: 1 bytes, line 194
194
195<script src="//cdn-general.cybassets.com/frontend/shop/setAffliateCookie-4a1e7dfec7e41476.js"></script>
195 196 197 198 199 200 201 202 203 204 205 <style id="color_settings"> 206 :root { 207 208 --button: #f07d4a; 209 210 211 212 --button_text: #ffffff; 213 214 215 216 --accent: #f07d4a; 217 218 219 220 --heading: #3a3a3a; 221 222 223 224 --text: #987956; 225 226 227 228 --price: #f07d4a; 229 230 231 232 --discount_price: #f07d4a; 233 234 235 236 --theme_bg: #FFFFFF; 237 238 239 240 --nav_logo_bg: #FFF9F2; 241 242 243 244 --nav_menu_bg: #FFF9F2; 245 246 247 248 --nav_menu_text: #3a3a3a; 249 250 251 252 --nav_menu_icon: #643114; 253 254 255 256 --footer_bg: #fff9f2; 257 258 259 260 --footer_text: #3a3a3a; 261 262 263 264 --checkout_button: #f07d4a; 265 266 267 268 --checkout_accent: #643114; 269 270 271 272 --product_border: #b98c58; 273 274 275 276 --tips_text: #0C5460; 277 278 279 280 281 282 } 283</style> 284 285 286 287 288 289 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 74 bytes, lines 289-290
289 290 <script async src="https://www.googletagmanager.com/gtag/js?id=
290G-8C873JP4GD
vendor: 22 bytes, lines 290-291
290"></script> 291
291<script> 292
vendor: 183 bytes, lines 292-297
292window.dataLayer = window.dataLayer || []; 293 function gtag(){dataLayer.push(arguments);} 294 gtag('js', new Date()); 295 296 297 gtag('config', '
297G-WN6ECS9649
vendor: 27 bytes, line 297
297', {"groups":"ecommerce"});
297gtag('config', 'AW-11219391246', {"groups":"dynamic_remarketing"});gtag('config', 'AW-11219391246', {'allow_enhanced_conversions':true});</script>
297 298
298<script> 299 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 300 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 301 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 302 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 303 304 ga('create', '', 'auto', {'name': 'cyberbiz'}); 305 ga('cyberbiz.require', 'displayfeatures'); 306 ga('cyberbiz.set', 'dimension1', '17907'); 307 ga('cyberbiz.require', 'ec'); 308 ga('cyberbiz.send', 'pageview'); 309 </script>
309 310 311
311<script>
vendor: 426 bytes, lines 311-318
311 312 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 313 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 314 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 315 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 316 document,'script','//connect.facebook.net/en_US/fbevents.js'); 317 318 fbq('init', '
318807736417281776
vendor: 38 bytes, lines 318-319
318', {}, {'agent':'plcyberbiz'}); 319
319fbq('track', "PageView", '', { eventID: "PageView_B3EA24FD1F27FFF63CAEA6A7944D3898" }); 320 var facebook_pixel_id = '807736417281776'</script>
320 321 322 </head> 323 324 <body style="display: flex; flex-direction: column;"><!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 324-325
324 325 <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
325GTM-M7SFH7L
vendor: 105 bytes, lines 325-327
325" 326 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 327
327<!-- End Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 327-329
327 328 <noscript><iframe 329 src="//www.googletagmanager.com/ns.html?id=
329GTM-TXD9LVJ
vendor: 186 bytes, lines 329-336
329" 330 height="0" 331 width="0" 332 style="display:none;visibility:hidden"> 333 </iframe></noscript> 334 335 <noscript><iframe 336 src="//www.googletagmanager.com/ns.html?id=
336GTM-P7528MQ
vendor: 117 bytes, lines 336-342
336" 337 height="0" 338 width="0" 339 style="display:none;visibility:hidden"> 340 </iframe></noscript> 341 342
342<!-- Navigation --> 343 <!-- cyb_snippet liquid_helper start -->
344<script> 345 function getDiscountPriceName() { 346 return "false" === "true" ? "" : ""; 347 } 348 349 function getDiscountPriceSuggestionName() { 350 return "false" === "true" ? "" : ""; 351 } 352 353 document.addEventListener('DOMContentLoaded', function() { 354 const languageHandle = Cookies.get("language"); 355 const defaultLanguage = {"handle":"zh-TW","title":"ç¹é«ä¸æ","currency_code":"TWD"}; 356 const languages = [{"handle":"zh-TW","title":"ç¹é«ä¸æ","currency_code":"TWD"},{"handle":"en","title":"English","currency_code":"USD"}]; 357 const currency = window.shopScriptHelper.defaultCurrency; 358 const currencies = window.shopScriptHelper.currenciesInfo; 359 window.liquidHelper = { 360 shopInternational: true, 361 defaultLanguage: defaultLanguage, 362 language: languages.find(function(l) { 363 return l.handle === languageHandle; 364 }) || defaultLanguage, 365 shopMultipleCurrenciesCheckout: false, 366 shopMultipleCurrencies: true, 367 defaultCurrencyFormat: "NT${{amount_no_decimals}}", 368 defaultCurrency: currency, 369 getCurrency: function() { 370 const currencyValue = Cookies.get("currencyValue") || currency; 371 return currencies.find(function(c) { return c.code === currencyValue; } 372 )}, 373 getDefaultCurrency: function() { return currencies.find(function(c) { 374 return c.code === currency; 375 })}, 376 getAvailableCurrencies: function() { return currencies.map(c => c.code) },
377 getCurrencyFormatInfo: function(currency) { 378 const currencyInfo = currencies.find(c => c.code === currency) 379 return _.pick(currencyInfo, [ 380 'decimal_precision', 381 'symbol', 382 'money_format', 383 'unit', 384 'trailing_zeros', 385 'html_unit', 386 'code', 387 ]); 388 }, 389 cartQuantityLimit: (function() { 390 const limit = Number("0" || undefined); 391 return limit <= 0 || isNaN(limit) ? Number.POSITIVE_INFINITY : limit; 392 })(), 393 isFirstVariantSelected: false , 394 isImageColorsUsed: false , 395 isEmptyClickable: true , 396 hasAddBuyProduct: '' !== "" ? true : false, 397 hasPriceWithDiscountPlugin: 'true' ? true : false, 398 conversionBonus: 1, 399 hasLocalizedShopPriceFormat: true, 400 hasCustomerCartPlugin: true, 401 isCartEnabled: true, 402 cdnHost: '//cdn-general.cybassets.com', 403 hasShopCustomPasswordRulePlugin: false, 404 hasDisableProductQuantityValidation: false, 405 hasBreadcrumbReferrerEnabled: false, 406 }; 407 }); 408</script>
408 409 410<!-- cyb_snippet liquid_helper end --> 411
412<script src='//cdn-general.cybassets.com/frontend/shop/navbarSection-4a1e7dfec7e41476.js' type='text/javascript'></script>
412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429<style> 430 431 #navbar { 432 --navbar-pc-title-scale: 1.0; 433 --navbar-pc-body-scale: 1.0; 434 --navbar-mobile-title-scale: 1.0; 435 --navbar-mobile-body-scale: 1.0; 436 } 437 438 439 440 441 442</style> 443 444 445 <span id="navbar" class="drawer drawer--left font-size-setting-enabled"> 446 <header id="header" class="qk-w--100vw qk-pos--fixed qk-t--0 qk-l--0"> 447 448 449 450 <div id="announcement-bar"></div> 451 452 453 454 455 <div class="computer_nav qk-hidden--mobile display_transparent"> 456 <div class="header_logo qk-bg--nav_logo_bg"> 457 <div class="qk-pos--rel"> 458 <div class="qk-text--center"> 459 <!-- logo start --> 460 461 <nav class="logo qk-display--il_bk"> 462 <a href="/" class="qk-w--100"> 463 <img 464 src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDYxOTg5X-WFhum0u-WOu-iDjDIucG5nLnBuZyJdXQ.png?sha=031854de1c6a33f7" 465 class="qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--pc_logo qk-hidden--mobile" 466 style="width: auto; height: 52px;" 467 alt="å é´»çæ,èèç½,èé¡ä¿å¥,è·è,ä¿å¥å" 468 height="52" 469 width="auto" 470 > 471 </a> 472 </nav> 473 474 <!-- logo end --> 475 <!-- tool-nav start --> 476 477 <!-- cyb_snippet tool_nav start --> 478 479 480 481 482 483 484<nav class="tool-nav qk-pos--rel qk-float--r qk-display--flex"> 485 <ul class="link_shelf_top qk-display--flex qk-flex--row qk-justify--end qk-align--center qk-pos--abs qk-r--0"> 486 487 488 489 <li class="i18n-selector qk-fs--body qk-text--nav_menu_icon qk-bd--nav_menu_icon qk-btn"></li> 490 491 <!-- member --> 492 493 <li class="customer_account qk-pos--rel qk-pd--05"> 494 <div class="dropdown qk-pos--static"> 495 <div class="qk-cursor--pointer" data-toggle="dropdown"> 496 <div data-icon-type="custom_icon_type_account"></div> 497 <span class="text"></span> 498 </div> 499 <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"> 500 <ul id="customer-logined-menu" style="display: none"> 501 <li> 502 <div class="qk-fs--body qk-text--heading"> 503 <p class="customer-name qk-whitespace-break-spaces"></p> 504 <p>Welcome!</p> 505 </div> 506 </li> 507 </ul> 508 <ul id="customer-not-login-menu"> 509 <li class="button qk-text--center"> 510 <a href="/en/account/login" class="btn-login qk-btn qk-btn--lg qk-btn--primary qk-w--100">Log in</a> 511 </li> 512 <li class="button qk-text--center"> 513 <a href="/en/account/signup" class="btn-orders qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent">Sign up</a> 514 </li> 515 </ul> 516 <span class="menu-bd qk-bd_t--default qk-bd--product_border"></span> 517 <ul class="member-menu qk-bd_t--default qk-bd--product_border"> 518 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 519 <a href="/en/account/index" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Account</a> 520 </li> 521 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 522 <a href="/en/account/orders" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Order(s)</a> 523 </li> 524 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 525 <a href="/en/account/coupons" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Coupon(s)</a> 526 </li> 527 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 528 <a href="/en/account/tracking_items" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Wishlist</a> 529 </li> 530 <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"> 531 <a href="/en/account/logout" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">Logout</a> 532 </li> 533 </ul> 534 </div> 535 </div> 536 </li> 537 538 <!-- for money symbol --> 539 <div id="money-symbol" data-money-symbol="NT${{amount_no_decimals}}" hidden></div> 540 <!-- cart --> 541 542 <li class="cart qk-pos--rel qk-pd--05"> 543 <!--é»è ¦ççè³¼ç©è»é¸å®--> 544 <div class="dropdown qk-pos--static"> 545 <div data-toggle="dropdown" class="shopcart qk-cursor--pointer" > 546 <div data-icon-type="custom_icon_type_cart"></div>
547 <span class="global-cart-count qk-circle qk-circle--sm qk-bg--accent qk-text--white qk-vert--mid qk-pos--abs qk-bd qk-bd--none" style="display: none;">0</span> 548 <span class="global-cart-loading"></span> 549 </div> 550 <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"> 551 <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 three_to_four_scale"></div> 552 <p class="cart_empty qk-fs--body qk-text--heading qk-text--center">There are no items in your cart.</p> 553 <ul> 554 <li class="button qk-text--center"> 555 <a class="btn-checkout qk-btn qk-btn--lg qk-btn--primary qk-w--100" href="/en/cart" style="display: none">BUY NOW</a> 556 <a class="btn-tracking qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent" href="/en/account/tracking_items">Go to Wishlist</a> 557 </li> 558 </ul> 559 </div> 560 </div> 561 </li> 562 563 <!-- search --> 564 565 <!-- express delivery --> 566 567 </ul> 568</nav> 569 570<!-- cyb_snippet tool_nav end --> 571 572 <!-- tool-nav end --> 573 </div> 574 </div> 575 </div> 576 577 <div class="header_nav qk-bg--nav_menu_bg"> 578 <div class="qk-pd_x--15"> 579 <div class="qk-pos--relative center"> 580 <!-- main-nav start --> 581 <nav class="main_nav qk-display--init"> 582 <!-- cyb_snippet _main_nav_skeleton start --><ul 583 class="main_nav_skeleton link_shelf_top qk-display--flex qk-flex--row qk-flex--wrap qk-justify--center qk-align--center qk-body" 584 style="justify-content: center; visibility: hidden;" 585 aria-hidden="true" 586 ><span> 587 <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> 588 </span><span> 589 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/all" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">å ¨é¨åå</a></li> 590 </span><span> 591 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/ææåå" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">ææåå</a></li> 592 </span><span> 593 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/pages/è³¼ç©é ç¥" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">è³¼ç©é ç¥</a></li> 594 </span><span> 595 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/pages/å®æè³¼" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">å®å¿å®æè³¼</a></li> 596 </span><span> 597 <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> 598 </span><span> 599 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="https://liff.line.me/2000447957-RL1l5N7D" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer"><a href="https://liff.line.me/2000447957-RL1l5N7D"><img src="https://scdn.line-apps.com/n/line_add_friends/btn/zh-Hant.png" alt="LINE@å å ¥å¥½å" height="36" border="0"></a></a></li> 600 </span></ul><!-- cyb_snippet _main_nav_skeleton end --> 601 </nav> 602 <!-- main-nav end --> 603 </div> 604 </div> 605 </div> 606 607 </div> 608 609 <div class="qk-hidden--pc "> 610 <!-- mobile-nav start --> 611 <nav class="mobile-nav qk-bg--nav_logo_bg"> 612 <ul class="qk-display--flex qk-flex--row qk-justify--between qk-align--center qk-pd_x--05 qk-pd_y--0"> 613 <!-- menu --> 614 615 <li class="sidebar-menu-icon drawer-toggle qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center"> 616 <div data-icon-type="custom_icon_type_menu"></div> 617 </li> 618 619 <!-- logo --> 620 621 <li class="logo qk-mg_r--auto qk-pd_x--05 qk-pd_y--0"> 622 623 <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--phone"> 624 <img 625 src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDU4NjYxX-WFhum0u-WOu-iDjC5naWYuZ2lmIl1d.gif?sha=b92020efb817f87a" 626 height="25" 627 width="auto" 628 alt="å é´»çæ,èèç½,èé¡ä¿å¥,è·è,ä¿å¥å" 629 > 630 </a> 631 632 633 <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--tablet"> 634 <img 635 src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDU4NjYxX-WFhum0u-WOu-iDjC5naWYuZ2lmIl1d.gif?sha=b92020efb817f87a" 636 height="25" 637 width="auto" 638 alt="å é´»çæ,èèç½,èé¡ä¿å¥,è·è,ä¿å¥å" 639 > 640 </a> 641 642 </li> 643 644 645 <!-- search --> 646 647 <!-- express delivery --> 648 649 650 </ul> 651 </nav>
652 <!-- mobile-nav end --> 653 </div> 654 655 </header>
655<script> 656 (function () { 657 var isNavbarTransparent = true; 658 659 function measureHeaderOffset() { 660 var header = document.getElementById('header'); 661 if (!header) return null; 662 663 var headerHeight = header.getBoundingClientRect().height; 664 665 if (isNavbarTransparent && window.matchMedia('(min-width: 992px)').matches) { 666 var computerNav = document.querySelector('.computer_nav'); 667 if (computerNav) { 668 headerHeight -= computerNav.getBoundingClientRect().height; 669 } 670 } 671 672 var floatFilter = document.getElementById('float-filter'); 673 var floatFilterHeight = floatFilter 674 ? floatFilter.getBoundingClientRect().height 675 : 0; 676 677 return headerHeight - floatFilterHeight; 678 } 679 680 window.measureHeaderOffset = measureHeaderOffset; 681 682 var offset = measureHeaderOffset(); 683 if (offset !== null) { 684 document.body.style.paddingTop = offset + 'px'; 685 } 686 })(); 687 </script>
687 688 689 <!-- Sidebar --> 690 <nav class="drawer-nav drawer-nav_width qk-bg--nav_menu_bg " role="navigation"> 691 <div class="drawer-menu"> 692 <!-- cyb_snippet side_menu start --> 693 694 695<ul id="index_sidebar_shelf_top" class="sidebar qk-pd_b--1"> 696 697 <li class="logo qk-pos--rel qk-bg--nav_logo_bg qk-pd_x--1 qk-pd_y--05"> 698 <a href="/" class="qk-pd--0"> 699 <img src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDYxOTg5X-WFhum0u-WOu-iDjDIucG5nLnBuZyJdXQ.png?sha=031854de1c6a33f7" height="32" width="auto" alt="logo"> 700 </a> 701 <button class="drawer-toggle qk-pos--abs qk-bg--transparent qk-pd--0"></button> 702 </li> 703 704 705 706 707 708 <!-- cyb_snippet components/side_menu/menu start --> 709 710 <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> 711 712 713 714 715 716 <li class="qk-pos--rel qk-pd--0"> 717 718 <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> 719 720 </li> 721 722 723 724 725 726 <!-- cyb_snippet components/side_menu/collection_all start --> 727 728 729 730 731 <li class="qk-pos--rel qk-pd--0"> 732 <button class="collection_all bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-bd--none qk-pos--rel qk-fw--bold" data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2" aria-expanded=" true "> 733 <a href="/collections/all" class="collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-fw--bold qk-bg--nav_menu_bg qk-text--nav_menu_text"> 734 å ¨é¨åå 735 </a> 736 </button> 737 <ul id="index_sidebar_collection_all_shelf_second_2" class="collapse_collection_all_index_sidebar_2 collapse shelf_second qk-pd--0 show "> 738 739 740 741 <li class="qk-pos--rel qk-pd--0"> 742 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_1" aria-expanded=" true "> 743 <a href="/collections/ææåå" class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 744 ææåå 745 </a> 746 </button> 747 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_1 collapse shelf_third qk-pd--0 show "> 748 749 <li class="qk-pos--rel qk-pd--0"> 750 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20240507085340">ãå ¨æ°åç´ãèèé 60ç²è£ - 5ç¶çµå</a> 751 </li> 752 753 <li class="qk-pos--rel qk-pd--0"> 754 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20240507084815">ãå ¨æ°åç´ãèèé 60ç²è£ - 3ç¶çµå</a> 755 </li> 756 757 <li class="qk-pos--rel qk-pd--0"> 758 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20230427145309">ãå ¨æ°åç´ãèèé 60ç²</a> 759 </li> 760 761 <li class="qk-pos--rel qk-pd--0"> 762 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20260918171105">ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 5ç¶çµå</a> 763 </li> 764 765 <li class="qk-pos--rel qk-pd--0"> 766 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20260918171515">ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 3ç¶çµå</a> 767 </li> 768 769 <li class="qk-pos--rel qk-pd--0"> 770 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20230427144347">ãè¤æ¹å ä¹ãèèé寶 60ç²</a> 771 </li> 772 773 <li class="qk-pos--rel qk-pd--0"> 774 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20260918163815">ãè¤æ¹å ä¹ãèèé寶Plus 60ç²</a> 775 </li> 776 777 <li class="qk-pos--rel qk-pd--0"> 778 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20240507090734">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 5ççµå</a> 779 </li> 780 781 <li class="qk-pos--rel qk-pd--0"> 782 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20240507090308">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 3ççµå</a> 783 </li> 784 785 <li class="qk-pos--rel qk-pd--0"> 786 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20230427144941">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²</a> 787 </li> 788 789 <li class="qk-pos--rel qk-pd--0"> 790 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20230517151231">å èä½ èæ¬æ¤è精油é²èæ¶²x5</a> 791 </li> 792 793 <li class="qk-pos--rel qk-pd--0"> 794 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304155834">å èä½ èæ¬æ¤è精油é²èæ¶²x30</a> 795 </li> 796 797 <li class="qk-pos--rel qk-pd--0"> 798 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304160213">å èä½ èæ¬æ¤è精油é²èæ¶²x50</a> 799 </li> 800 801 <li class="qk-pos--rel qk-pd--0"> 802 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²">å èä½ èæ¬æ¤è精油é²èæ¶²</a> 803 </li> 804 805 </ul> 806 </li> 807 808 809 810 <li class="qk-pos--rel qk-pd--0"> 811 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_2" aria-expanded=" true "> 812 <a href="/collections/é»éèèç½" class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 813 é»éèèç½ 814 </a> 815 </button> 816 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_2 collapse shelf_third q
816k-pd--0 show "> 817 818 <li class="qk-pos--rel qk-pd--0"> 819 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20240507085340">ãå ¨æ°åç´ãèèé 60ç²è£ - 5ç¶çµå</a> 820 </li> 821 822 <li class="qk-pos--rel qk-pd--0"> 823 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20240507084815">ãå ¨æ°åç´ãèèé 60ç²è£ - 3ç¶çµå</a> 824 </li> 825 826 <li class="qk-pos--rel qk-pd--0"> 827 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20230427145309">ãå ¨æ°åç´ãèèé 60ç²</a> 828 </li> 829 830 <li class="qk-pos--rel qk-pd--0"> 831 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/é»éèèç½è å-60ç²è£">é»éèèç½è å 60ç²</a> 832 </li> 833 834 </ul> 835 </li> 836 837 838 839 <li class="qk-pos--rel qk-pd--0"> 840 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_3" aria-expanded=" true "> 841 <a href="/collections/èèé寶" class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 842 èèé寶 843 </a> 844 </button> 845 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_3 collapse shelf_third qk-pd--0 show "> 846 847 <li class="qk-pos--rel qk-pd--0"> 848 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20260918171105">ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 5ç¶çµå</a> 849 </li> 850 851 <li class="qk-pos--rel qk-pd--0"> 852 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20260918171515">ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 3ç¶çµå</a> 853 </li> 854 855 <li class="qk-pos--rel qk-pd--0"> 856 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20260918163815">ãè¤æ¹å ä¹ãèèé寶Plus 60ç²</a> 857 </li> 858 859 <li class="qk-pos--rel qk-pd--0"> 860 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé寶-60-ç²è£-20230427144347">ãè¤æ¹å ä¹ãèèé寶 60ç²</a> 861 </li> 862 863 </ul> 864 </li> 865 866 867 868 <li class="qk-pos--rel qk-pd--0"> 869 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_4" aria-expanded=" true "> 870 <a href="/collections/ç¶ æ·¨è½" class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 871 ç¶ æ·¨è½ 872 </a> 873 </button> 874 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_4 collapse shelf_third qk-pd--0 show "> 875 876 <li class="qk-pos--rel qk-pd--0"> 877 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20240507090734">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 5ççµå</a> 878 </li> 879 880 <li class="qk-pos--rel qk-pd--0"> 881 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20240507090308">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 3ççµå</a> 882 </li> 883 884 <li class="qk-pos--rel qk-pd--0"> 885 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20230427144941">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²</a> 886 </li> 887 888 </ul> 889 </li> 890 891 892 893 <li class="qk-pos--rel qk-pd--0"> 894 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_5" aria-expanded=" true "> 895 <a href="/collections/é²èæ¶²" class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 896 é²èæ¶² 897 </a> 898 </button> 899 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_5 collapse shelf_third q
899k-pd--0 show "> 900 901 <li class="qk-pos--rel qk-pd--0"> 902 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²">å èä½ èæ¬æ¤è精油é²èæ¶²</a> 903 </li> 904 905 <li class="qk-pos--rel qk-pd--0"> 906 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20230517151231">å èä½ èæ¬æ¤è精油é²èæ¶²x5</a> 907 </li> 908 909 <li class="qk-pos--rel qk-pd--0"> 910 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304155834">å èä½ èæ¬æ¤è精油é²èæ¶²x30</a> 911 </li> 912 913 <li class="qk-pos--rel qk-pd--0"> 914 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304160213">å èä½ èæ¬æ¤è精油é²èæ¶²x50</a> 915 </li> 916 917 </ul> 918 </li> 919 920 921 922 <li class="qk-pos--rel qk-pd--0"> 923 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_6" aria-expanded=" true "> 924 <a href="/collections/èè»ç²¾ç²¹" class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 925 èè»ç²¾ç²¹ 926 </a> 927 </button> 928 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_6 collapse shelf_third qk-pd--0 show "> 929 930 <li class="qk-pos--rel qk-pd--0"> 931 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èè»ç²¾ç²¹-60ç²è£-20240304145331">èè»ç²¾ç²¹ 60ç²</a> 932 </li> 933 934 </ul> 935 </li> 936 937 938 939 <li class="qk-pos--rel qk-pd--0"> 940 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_7" aria-expanded=" true "> 941 <a href="/collections/ç¶ æ·¨è½å¤§çµæ¸åªæ " class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 942 ç¶ æ·¨è½å¤§çµæ¸åªæ 943 </a> 944 </button> 945 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_7 collapse shelf_third qk-pd--0 show "> 946 947 <li class="qk-pos--rel qk-pd--0"> 948 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/ç¶ æ·¨è½-60ç²è£-20230427144941">ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²</a> 949 </li> 950 951 </ul> 952 </li> 953 954 955 956 <li class="qk-pos--rel qk-pd--0"> 957 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_8" aria-expanded=" true "> 958 <a href="/collections/èèéå¤§çµæ¸åªæ " class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 959 èèéå¤§çµæ¸åªæ 960 </a> 961 </button> 962 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_8 collapse shelf_third qk-pd--0 show "> 963 964 <li class="qk-pos--rel qk-pd--0"> 965 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/èèé60ç²è£-20230427145309">ãå ¨æ°åç´ãèèé 60ç²</a> 966 </li> 967 968 </ul> 969 </li> 970 971 972 973 <li class="qk-pos--rel qk-pd--0"> 974 <button class="collection_all qk-fw--500 bt-toggle qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg " data-toggle="collapse" data-target=".collapse_collection_all_index_sidebar_2_9" aria-expanded=" true "> 975 <a href="/collections/é²èæ¶²å¤§çµæ¸åªæ " class="qk-fw--500 collection_all_link qk-display--il_bk qk-text--left qk-fs--body qk-text--nav_menu_text"> 976 é²èæ¶²å¤§çµæ¸åªæ 977 </a> 978 </button> 979 <ul class="qk-bd--nav_menu_text collapse_collection_all_index_sidebar_2_9 collapse shelf_third q
979k-pd--0 show "> 980 981 <li class="qk-pos--rel qk-pd--0"> 982 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-bg--nav_menu_bg qk-fs--body" href="/products/å èä½ -èæ¬æ¤è精油é²èæ¶²">å èä½ èæ¬æ¤è精油é²èæ¶²</a> 983 </li> 984 985 </ul> 986 </li> 987 988 </ul> 989 </li> 990 991 992<!-- cyb_snippet components/side_menu/collection_all end --> 993 994 995 996 997 998 <li class="qk-pos--rel qk-pd--0"> 999 1000 <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/ææåå">ææåå</a> 1001 1002 </li> 1003 1004 1005 1006 1007 1008 <li class="qk-pos--rel qk-pd--0"> 1009 1010 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/è³¼ç©é ç¥">è³¼ç©é ç¥</a> 1011 1012 </li> 1013 1014 1015 1016 1017 1018 <li class="qk-pos--rel qk-pd--0"> 1019 1020 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/å®æè³¼">å®å¿å®æè³¼</a> 1021 1022 </li> 1023 1024 1025 1026 1027 1028 <li class="qk-pos--rel qk-pd--0"> 1029 1030 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/about-us">éæ¼å é´»çæ</a> 1031 1032 </li> 1033 1034 1035 1036 1037 1038 <li class="qk-pos--rel qk-pd--0"> 1039 1040 <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="https://liff.line.me/2000447957-RL1l5N7D"><a href="https://liff.line.me/2000447957-RL1l5N7D"><img src="https://scdn.line-apps.com/n/line_add_friends/btn/zh-Hant.png" alt="LINE@å å ¥å¥½å" height="36" border="0"></a></a> 1041 1042 </li> 1043 1044 1045
1046<script> 1047 $('button a').on('click', function(e) {e.stopPropagation()}); 1048</script>
1048 1049 1050<!-- cyb_snippet components/side_menu/menu end --> 1051 1052 1053 1054 1055 <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">Account</li> 1056 <li class="qk-pos--rel qk-pd--0"> 1057 <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none"> 1058 <a href="/en/account/index" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">My Account</a> 1059 </div> 1060 </li> 1061 <li class="qk-pos--rel qk-pd--0"> 1062 <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none"> 1063 <a href="/en/account/orders" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">My Order(s)</a> 1064 </div> 1065 </li> 1066 <li class="qk-pos--rel qk-pd--0"> 1067 <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none"> 1068 <a href="/en/account/logout" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">Logout</a> 1069 </div> 1070 </li> 1071 <li class="qk-pos--rel qk-pd--0"> 1072 <a href="/en/account/login"> 1073 <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 "> 1074 <span class="qk-text--nav_menu_bg qk-fw--500 qk-fs--body"> 1075 Log in 1076 </span> 1077 </div> 1078 </a> 1079 </li> 1080 <li class="qk-pos--rel qk-pd--0"> 1081 <a href="/en/account/signup"> 1082 <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"> 1083 <span class="qk-text--nav_menu_text qk-fs--body qk-fw--500"> 1084 Sign up 1085 </span> 1086 </div> 1087 </a> 1088 </li> 1089 1090 1091 1092 1093 <li class="category_title qk-bd--nav_menu_text qk-fs--breadcrumb qk-text--nav_menu_text qk-bd_y--default qk-fw--500"> 1094 1095 Language 1096 1097 1098 ï½ 1099 1100 1101 Currency 1102 1103 </li> 1104 <li id="side-menu-modal__button" class="qk-text--nav_menu_text qk-fw--bold language_button qk-fs--body qk-text--nav_menu_text"> 1105 </li> 1106 1107 1108</ul> 1109 1110<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/sidebar-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 1111
1112<script> 1113 $(document).ready(function(){ 1114 // å´éé¸å® 1115 if ($('.drawer').length){ 1116 $('.drawer').drawer(); 1117 $('.bt-toggle').click(function(){ 1118 setTimeout(function(){ 1119 $('.drawer')[0].iScroll.refresh() 1120 },500) 1121 }) 1122 } 1123 }); 1124</script>
1124 1125
1126<script> 1127 $(document).ready(function(){ 1128 const languageSize = 2 1129 const currencySize = 13 1130 1131 const initLanguageAndCurrency = ({language,code})=> { 1132 const contentSelector = $("#side-menu-modal__button"); 1133 let content = '' 1134 const isMutipleCurrencies = true 1135 const isMultiLanguages = true 1136 if ( isMultiLanguages && languageSize > 1 ) content = language || (liquidHelper.language && liquidHelper.language.title) 1137 if ( isMutipleCurrencies && (code && content === '')) content = code 1138 else if (isMutipleCurrencies && (code && content !=='')) content = `${content}ï½${code}` 1139 contentSelector.text(content) 1140 } 1141 1142 let code = '' 1143 let language = '' 1144 if (liquidHelper.language) language = liquidHelper.language 1145 if (liquidHelper.getCurrency()) code = liquidHelper.getCurrency().code 1146 1147 initLanguageAndCurrency({ language:language.title, code }) 1148 1149 $("#side-menu-modal__button").click(function() { 1150 const clickable = languageSize > 1 || currencySize > 1 1151 if (clickable) { 1152 $('.drawer').drawer('close'); 1153 const event = new CustomEvent("i18n_selector_clicked"); 1154 document.dispatchEvent(event); 1155 } 1156 }); 1157 1158 document.addEventListener('i18n_modal_confirmed', (e) => { 1159 const { languageTitle, currency } = e.detail; 1160 initLanguageAndCurrency({ language: languageTitle, code: currency }); 1161 }); 1162 }); 1163 1164</script>
1164 1165 1166 1167<!-- cyb_snippet side_menu end --> 1168 1169 </div> 1170 </nav> 1171 <!-- Bottombar --> 1172 1173 <div 1174 id="mobile-bottom-bar" 1175 class="qk-display--flex qk-justify--around qk-bg--nav_logo_bg qk-w--100vw qk-pos--fixed qk-b--0 qk-hidden--pc" 1176 > 1177 <!-- home --> 1178 <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"> 1179 <a id="home-nav-icon" href="/"> 1180 <div data-icon-type="custom_icon_type_home"></div> 1181 </a> 1182 </div> 1183 <!-- tracking items --> 1184 <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"> 1185 <a href="/en/account/tracking_items"> 1186 <div data-icon-type="custom_icon_type_tracking_items" c></div> 1187 </a> 1188 </div> 1189 <!-- cart --> 1190 1191 <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"> 1192 <a 1193 href="/en/cart" 1194 class="qk-display--il_flex qk-flex--row qk-justify--center qk-align--center qk-vert--mid qk-pos--rel" 1195 > 1196 <div data-icon-type="custom_icon_type_cart"></div> 1197 <span 1198 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" 1199 style="display: none;" 1200 >0</span 1201 > 1202 </a> 1203 </div> 1204 1205 <!-- member --> 1206 1207 <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"> 1208 <a id="customer-phone-nav-icon" href="/en/account/login"> 1209 <div data-icon-type="custom_icon_type_account"></div> 1210 </a> 1211 </div> 1212 1213 </div> 1214 1215 1216 </span> 1217 1218<div id="index-popular-tags"></div> 1219 1220<style id="timer_color"> 1221 :root { 1222 1223 --timer_text: #ffffff; 1224 1225 1226 1227 --timer_bg: #000000; 1228 1229 } 1230</style> 1231
1232<script> 1233 window.language = {"account_name":"Bank Account Name","add_cart_error_try_again":"Network error, please try again.","add_to_cart":"ADD TO CART","addcart_rate_limit_desc":"seconds until you can try again. We recommend staying on this page.","address1":"Return Address","all_filters":"All Filters","apply_fail":"Application Failed","apply_return":"Return Application","apply_return_success":"Refund Request Sent","apply_success":"Successful Application","arrive_soon":"Arriving Soon","articles_total":"Total of {{ totalArticleCounts }} articles","bank_account":"Bank Account","bank_branch_name":"Name of Branch","bonus_redemption":"Exchange Credit Point(s)","cancel":"Cancel","cart_price_total":"Total","check_order":"My Order(s)","choose_branch_bank":"Select Bank Branch","choose_return_reason":"Select Return Reason","city":"City","common_price":"Retail Price","comply_group_number":"Comply {{comply_group_number}} group(s) of discount, ","confirm":"Confirm","confirm_return":"Apply Refund","confirm_submit":"Submit","congratulations_for_verify_mobile_success":"Congratulations, you've successfully verified your phone!","contact_form":"Contact Form","continue_reading":"Continue Reading","country_placeholder":"Select country","coupon_free_shipping":"Free Shipping Coupon","coupon_items":"Coupon Discount Item","date_error":"Date error","default_sort":"Store Recommendations","deliver_error":"Delivery Error","discount_detail":"Discount Details","email":"Email Address","email_placeholder":"Enter your email, e.g.: [email protected]","enter_account_name":"Enter bank account name","enter_bank_account":"Enter bank account number","enter_return_reason":"Please specify the return reason...","error_message":"An error has occurred when sending a verification message; please try again later.","fail_operation":"Something went wrong; please try again later!","filter_button":"Filter","filter_no_result":"Sorry, no results","free":"Free","gift_price":"Discount Price","gift_purchase":"Gift with purchase","go_check_email":"Please check your mailbox; we've just sent you an email.","group_percent_discount":"{{percent_discount}} % off item(s) in the group.","has_stock":"In Stock","include_discount_and_shipping_fee":"Including discount and shipping fee","invalid_email":"Invalid Email","invalid_name":"Name required","invalid_phone_number":"Phone number required","invalid_question_content":"Please enter your message","keep_shopping":"Keep Shopping","keyin_address1":"Please enter the address we should collect the returning goods","keyin_city":"Please enter city name","keyin_zip":"Please enter postal code","less_then_one":"Quantity must be greater than 0; please select the amount to purchase.","line_item_quantity":"Quantity: {{ lineItemQuantity }}","literal_points":"point(s)","login_btn":"Log in","mail_send_fail":"Failed to send mail.","message_confirmation_token_error":"Error in verification code.","messenger_error_please_try_again":"An error has occurred when sending the message; please try again later.","mobile_number_error":"Mobile phone number in error.","name":"Name","name_placeholder":"Enter your name","new_password_is_sent":"New password is sent.","new_product_defect":"Defect on New Product","nn_collection_save_more_money_title":"for {{price}}","no_stock":"Out of Stock","notification_enabled":"Notification enabled","notify_me_when_stock_arrives":"Sold out! Notify me when the product is available.","onsale":"On Sale","order_date":"Order Date","order_number":"Order Number","order_retrun_confirm":"Are you sure you want to request a refund?","ori_price":"Original Price","others":"Others","over_cart_limit":"Quantity exceeds shopping cart limit; please remove some items and place the order again.","over_product_quantity":"Quantity exceeds the purchase limit; please reduce the quantity selected.","over_stock_count":"Quantity exceeds inventory stock. Remaining {{ count }}","over_stock_quantity":"The quantity entered exceeds the stock quantity. Please decrease your order.","phone_number":"Phone Number","phone_number_placeholder":"Enter your phone number","piece":"{{quantity}} item(s)","please_choose_bank":"Select Bank","please_choose_product":"Please select specifications.","please_choose_variant":"Please select product specifications.","please_enter_number":"Please enter a number.","please_reselect":"Try removing some filters to
1233see more items","please_send_and_confirm_verify_code":"Please send and confirm the verification code.","pre_order":"Pre-order Goods","price_asc":"Price Low To High","price_desc":"Price High To Low","price_filter":"Price","price_includes_tax":"(includes consumption tax of {{ tax }})","product_content_defect":"Wrong Product or Incomplete Product","product_defect":"Defective Product","product_limit_buy":"Limited purchase of this product {{ count }} items","product_rate_limit_btn":"Re-enter product page","product_rate_limit_desc":"seconds until you can re-enter the product page. We recommend staying on this page.","product_rate_limit_title":"High demand right now, please wait","product_rate_limit_warn":"Leaving this page may increase your wait time.","product_sold":"Sold {{ productSold }} products","products_total":"Total of {{ totalProductCounts }} products","quantity":"Quantity","quantity_over_product_stock":"The quantity entered exceeds available product stock. Please decrease your order.","question_content":"Message","question_content_placeholder":"Please enter your message","question_submit_fail":"Something went wrong; please try again later!","question_submit_success":"The question has been sent successfully. We will contact you as soon as possible!","question_type":"Question Type","reached_favorable":"Promotion Reached","recent_days_sold_desc":"Best Seller","reenter_password_still_error":"Error: Password does not match.","refund":"Refund Amount","refund_account":"Refund Account","refund_info":"Refund Information","refund_invoice_check":"I agree to the cancellation of the invoice or the \"Tax Payment Certificate\", and give consent to {{company_name}} to be handled at discretion in order to expedite the refund process.","resend_verify_code":"Resend verification code.","reset_all_filters":"Reset All Filters","reset_filter_button":"Reset Filter","return":"Return","return_address":"Return Address","return_email_notification":"A copy of the refund details have been sent to your email","return_info":"Return Information","return_instruction":"Return Information","return_msg_Australia":"1. If any defects or breakages are found upon receiving the goods, and you need to apply for an exchange or refund, please enter \"My Account\", find your order and click \"View Status\", then click on \"Apply Refund\" as soon as possible.\u003cbr\u003e 2. After receiving the refund application, we will contact you to retrieve the goods. If you have any return questions, you can leave a message to the shop on the \"Order(s)\" page. Please do not send back the goods before confirming with the shop.\u003cbr\u003e 3. When returning or exchanging goods, please keep the original package intact (including purchased goods, accessories, gifts, etc.).\u003cbr\u003e 4. Once your returned item is received and inspected, an exchange or a refund will be made according to the shop's return policy.\u003cbr\u003e 5. Please refer to the shop's return policy for detailed information and guidance.\u003cbr\u003e","return_msg_Japan":"1. If any defects or breakages are found upon receiving the goods, and you need to apply for an exchange or refund, please enter \"My Account\", find your order and click \"View Status\", then click on \"Apply Refund\" as soon as possible. Please refer to the shop's return policy for detailed information and guidance.\u003cbr\u003e 2. When returning or exchanging goods, please keep the original package intact (including purchased goods, accessories, gifts, etc.).\u003cbr\u003e 3. After receiving the refund application, we will contact you to retrieve the goods. \u003cbr\u003e 4. If you have any return questions, you can leave a message to the shop on the \"Order(s)\" page. Please do not send back the goods before confirming with the shop.\u003cbr\u003e 5. Once your returned item is received and inspected, an exchange or a refund will be made according to the shop's return policy.\u003cbr\u003e","return_msg_Japan_to_Taiwan":"1. If any defects or breakages are found upon receiving the goods, and you need to apply for an exchange or refund, please enter \"My Account\", find your order and click \"View Status\", then click on \"Apply Refund\" as soon as possible. Please refer to the shop's return policy for detailed information and guidance.\u003cbr\u003e 2. When returning or exchanging goods, please keep the original package intact (including purchased goods, accessories, gifts, etc.).\u003cbr\u003e 3. After receiving the refund application, we will c
1233ontact you to retrieve the goods. \u003cbr\u003e 4. If you have any return questions, you can leave a message to the shop on the \"Order(s)\" page. Please do not send back the goods before confirming with the shop.\u003cbr\u003e 5. Once your returned item is received and inspected, an exchange or a refund will be made according to the shop's return policy.\u003cbr\u003e","return_msg_SEA":"1. If any defects or breakages are found upon receiving the goods, and you need to apply for an exchange or refund, please enter \"My Account\", find your order and click \"View Status\", then click on \"Apply Refund\" as soon as possible. Please refer to the shop's return policy for detailed information and guidance.\u003cbr\u003e 2. When returning or exchanging goods, please keep the original package intact (including purchased goods, accessories, gifts, etc.).\u003cbr\u003e 3. After receiving the refund application, we will contact you to retrieve the goods. \u003cbr\u003e 4. If you have any return questions, you can leave a message to the shop on the \"Order(s)\" page. Please do not send back the goods before confirming with the shop.\u003cbr\u003e 5. Once your returned item is received and inspected, an exchange or a refund will be made according to the shop's return policy.\u003cbr\u003e","return_msg_Taiwan":"1. If any defects or breakages are found upon receiving the goods, and you need to apply for an exchange or refund, please enter to \" My Account\", find your order and click \"My Order(s)\", then click on \"Apply Refund\" as soon as possible. Please refer to the shop's return policy for detailed information and guidance.\u003cbr\u003e 2. When returning or exchanging goods, please keep the original package intact (including purchased goods, accessories, gifts, etc.).\u003cbr\u003e 3. After receiving the refund application, we will contact you to retrieve the goods. If you have any return questions, you can click \"Message Shop\" on the \"My Order(s)\" page. Please do not send back the goods by yourself.\u003cbr\u003e 4. Please print this application form and send it with the goods.\u003cbr\u003e 5. Once your returned item is received and reviewed, a refund will be made to your original payment method; it would take up to 5 to 10 days until it shows on your bank statement.\u003cbr\u003e","return_msg_USA":"1. If any defects or breakages are found upon receiving the goods, and you need to apply for an exchange or refund, please enter \"My Account\", find your order and click \"View Status\", then click on \"Apply Refund\" as soon as possible. Please refer to the shop's return policy for detailed information and guidance.\u003cbr\u003e 2. When returning or exchanging goods, please keep the original package intact (including purchased goods, accessories, gifts, etc.).\u003cbr\u003e 3. After receiving the refund application, we will contact you to retrieve the goods. \u003cbr\u003e 4. If you have any return questions, you can leave a message to the shop on the \"Order(s)\" page. Please do not send back the goods before confirming with the shop.\u003cbr\u003e 5. Once your returned item is received and inspected, an exchange or a refund will be made according to the shop's return policy.\u003cbr\u003e","return_product":"Product Return Request","return_reason":"Return Reason","save_more_money_discount":"to enjoy {{percent_discount}}% off.","save_more_money_dollar":"Get {{dollar}} discount","search_article_label":"Article results ({{ totalArticleCounts }})","search_no_result":"Sorry, no results found by searching: {{ queryString }}. Please try a different word.","search_product_label":"Product results ({{ totalProductCounts }})","search_total":"Search: {{ queryString }} / {{ totalSearchCount }} item(s) found","select_sort_by":"Sort By","sell_from_asc":"Store Essentials","sell_from_desc":"New Arrivals","send_too_many_times_try_again_later":"Sent too many times, please try again later.","sending_msg_few_minutes_get":"SMS sending⦠You'll receive a verification code in a few minutes.","shipping_fee":"Shipping Fee","sold_out":"Sold Out","state_placeholder":"Select state / province","submit":"Submit","subtotal":"Subtotal","success_operation":"Message Sent!","successfully_copy_tracking_number":"Tracking number copied successfully","system_busy_try_again":"System busy; please try again later.","tax":"Tax","thanks_for_advise":"Thanks for your feedback.","thanks_you_have_signed_up":"Thanks for registering!","total_bonus_redemption":"Total Credit Point(s) Redemption","tw_city_placeholder":"County / City","tw_district_placeholder":"District","unreach_favorable":"Promotion Unreached","verification_error_please_correct":"Error during verification, please try again.","verify_success":"Verification code confirmed.","view_product":"View Product","vip_shipping_free":"Free Shipping For Members","zip":"ZIP / Postcode","suggested_range":"Suggested Range","periodic_order_label":"Subscription","check_account_length":"Bank Account Length Validation"} 1234 $(document).ready(function(){ 1235 if(window.location.pathname != '' && window.location.pathname != '/' ){ 1236 document.getElementById('index-popular-tags').style.display = 'none' 1237 } 1238 // åæ¸è¨æ 1239 1240 1241 function adjustContentTop() { 1242 const offset = window.measureHeaderOffset(); 1243 if (offset === null) return; 1244 $("body").css({ "padding-top": offset + "px" }); 1245 } 1246 1247 window.adjustContentTop = adjustContentTop; 1248 1249 // navbarè¨å®éæ 1250 1251 var prevScrollpos = window.pageYOffset; 1252 1253 $(window).on('scroll load resize', function () { 1254 if (!window.matchMedia('(min-width: 992px)').matches) { 1255 return; 1256 } 1257 var headerBannerHeight = window.measureHeaderOffset(); 1258 if (headerBannerHeight === null) { 1259 return; 1260 } 1261 var currentScrollPos = window.pageYOffset; 1262 if (currentScrollPos === 0) { 1263 $('.computer_nav').addClass('display_transparent'); 1264 } else if (currentScrollPos > prevScrollpos && currentScrollPos >= headerBannerHeight) { 1265 $('#header').css({ transform: "translate(0, -100%)", transition: 'all .3s' }); 1266 $('.computer_nav').removeClass('display_transparent'); 1267 } else { 1268 $('#header').css({ transform: "none", transition: 'all .3s' }); 1269 $('.computer_nav').removeClass('display_transparent'); 1270 } 1271 prevScrollpos = currentScrollPos; 1272 }); 1273 $('.computer_nav').on('mouseover', function () { 1274 $(this).removeClass('display_transparent'); 1275 }); 1276 $('.computer_nav').on('mouseout', function () { 1277 if ($('.dropdown_menu').hasClass('show')) { 1278 return; 1279 } else if (window.pageYOffset === 0) { 1280 $(this).addClass('display_transparent'); 1281 } 1282 }); 1283 1284 1285 // Call it first once DOM is ready to prevent CLS 1286 adjustContentTop(); 1287 1288 // å»¶é²åå§åï¼çå¾ app banner åå§å宿 1289 $(window).on("resize", adjustContentTop); 1290 1291 // ä½¿ç¨ setTimeout ç¢ºä¿ banner çæ å·²ç¶ç¢ºå® 1292 $(window).on("load", function() { 1293 setTimeout(function() { 1294 adjustContentTop(); 1295 }, 200); // 給 banner è¶³å¤ æéåå§å 1296 }); 1297 1298 $('img.header_banner').on('load', adjustContentTop); 1299 1300 window.renderNavbarSection('.main_nav', {
1301 navbarCollections: [{"title":"ææåå","url":"/collections/ææåå","products":[{"title":"ãå ¨æ°åç´ãèèé 60ç²è£ - 5ç¶çµå","url":"/products/èèé60ç²è£-20240507085340"},{"title":"ãå ¨æ°åç´ãèèé 60ç²è£ - 3ç¶çµå","url":"/products/èèé60ç²è£-20240507084815"},{"title":"ãå ¨æ°åç´ãèèé 60ç²","url":"/products/èèé60ç²è£-20230427145309"},{"title":"ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 5ç¶çµå","url":"/products/èèé寶-60-ç²è£-20260918171105"},{"title":"ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 3ç¶çµå","url":"/products/èèé寶-60-ç²è£-20260918171515"},{"title":"ãè¤æ¹å ä¹ãèèé寶 60ç²","url":"/products/èèé寶-60-ç²è£-20230427144347"},{"title":"ãè¤æ¹å ä¹ãèèé寶Plus 60ç²","url":"/products/èèé寶-60-ç²è£-20260918163815"},{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 5ççµå","url":"/products/ç¶ æ·¨è½-60ç²è£-20240507090734"},{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 3ççµå","url":"/products/ç¶ æ·¨è½-60ç²è£-20240507090308"},{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²","url":"/products/ç¶ æ·¨è½-60ç²è£-20230427144941"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²x5","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20230517151231"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²x30","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304155834"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²x50","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304160213"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²"}]},{"title":"é»éèèç½","url":"/collections/é»éèèç½","products":[{"title":"ãå ¨æ°åç´ãèèé 60ç²è£ - 5ç¶çµå","url":"/products/èèé60ç²è£-20240507085340"},{"title":"ãå ¨æ°åç´ãèèé 60ç²è£ - 3ç¶çµå","url":"/products/èèé60ç²è£-20240507084815"},{"title":"ãå ¨æ°åç´ãèèé 60ç²","url":"/products/èèé60ç²è£-20230427145309"},{"title":"é»éèèç½è å 60ç²","url":"/products/é»éèèç½è å-60ç²è£"}]},{"title":"èèé寶","url":"/collections/èèé寶","products":[{"title":"ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 5ç¶çµå","url":"/products/èèé寶-60-ç²è£-20260918171105"},{"title":"ãè¤æ¹å ä¹ãèèé寶Plus 60ç²è£ - 3ç¶çµå","url":"/products/èèé寶-60-ç²è£-20260918171515"},{"title":"ãè¤æ¹å ä¹ãèèé寶Plus 60ç²","url":"/products/èèé寶-60-ç²è£-20260918163815"},{"title":"ãè¤æ¹å ä¹ãèèé寶 60ç²","url":"/products/èèé寶-60-ç²è£-20230427144347"}]},{"title":"ç¶ æ·¨è½","url":"/collections/ç¶ æ·¨è½","products":[{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 5ççµå","url":"/products/ç¶ æ·¨è½-60ç²è£-20240507090734"},{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²è£ - 3ççµå","url":"/products/ç¶ æ·¨è½-60ç²è£-20240507090308"},{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²","url":"/products/ç¶ æ·¨è½-60ç²è£-20230427144941"}]},{"title":"é²èæ¶²","url":"/collections/é²èæ¶²","products":[{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²x5","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20230517151231"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²x30","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304155834"},{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²x50","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²-20240304160213"}]},{"title":"èè»ç²¾ç²¹","url":"/collections/èè»ç²¾ç²¹","products":[{"title":"èè»ç²¾ç²¹ 60ç²","url":"/products/èè»ç²¾ç²¹-60ç²è£-20240304145331"}]},{"title":"ç¶ æ·¨è½å¤§çµæ¸åªæ ","url":"/collections/ç¶ æ·¨è½å¤§çµæ¸åªæ ","products":[{"title":"ã調ç¯è¡èãç¶ æ·¨è½Â® 60ç²","url":"/products/ç¶ æ·¨è½-60ç²è£-20230427144941"}]},{"title":"èèéå¤§çµæ¸åªæ ","url":"/collections/èèéå¤§çµæ¸åªæ ","products":[{"title":"ãå ¨æ°åç´ãèèé 60ç²","url":"/products/èèé60ç²è£-20230427145309"}]},{"title":"é²èæ¶²å¤§çµæ¸åªæ ","url":"/collections/é²èæ¶²å¤§çµæ¸åªæ ","products":[{"title":"å èä½ èæ¬æ¤è精油é²èæ¶²","url":"/products/å èä½ -èæ¬æ¤è精油é²èæ¶²"}]}], 1302 navbarItems: [{"id":465408,"title":"é¦é ","url":"/","item_type":"frontpage","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1006139,"title":"å ¨é¨åå","url":"/collections/all","item_type":"collections_all","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1006146,"title":"ææåå","url":"/collections/ææåå","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":474027,"title":"è³¼ç©é ç¥","url":"/pages/è³¼ç©é ç¥","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":595476,"title":"å®å¿å®æè³¼","url":"/pages/å®æè³¼","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":465411,"title":"éæ¼å é´»çæ","url":"/pages/about-us","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1122399,"title":"\u003ca href=\"https://liff.line.me/2000447957-RL1l5N7D\"\u003e\u003cimg src=\"https://scdn.line-apps.com/n/line_add_friends/btn/zh-
1302Hant.png\" alt=\"LINE@å å ¥å¥½å\" height=\"36\" border=\"0\"\u003e\u003c/a\u003e","url":"https://liff.line.me/2000447957-RL1l5N7D","item_type":"http","subtitle":null,"icon_image_url":null,"menuItems":null}], 1303 settings: { 1304 menuDisplayStyle: "three_dimension_menu", 1305 pcLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDYxOTg5X-WFhum0u-WOu-iDjDIucG5nLnBuZyJdXQ.png?sha=031854de1c6a33f7", 1306 mobileLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgwMDU4NjYxX-WFhum0u-WOu-iDjC5naWYuZ2lmIl1d.gif?sha=b92020efb817f87a", 1307 navbarDisplayStyle: "displayDefault", 1308 } 1309 } 1310 ); 1311 1312 1313 // for link menu 1314 const linkMenuElement = document.querySelector('.link-nav'); 1315 const data = [] 1316 data.forEach((item) => { 1317 const wrapper = document.createElement('a'); 1318 const link = document.createElement('ul'); 1319 1320 wrapper.href = item.url; 1321 link.textContent = item.title; 1322 link.classList.add('link-item'); 1323 1324 wrapper.appendChild(link); 1325 linkMenuElement.appendChild(wrapper); 1326 }); 1327 1328 // for safe-area space on iOS devices 1329 const userAgent = navigator.userAgent; 1330 const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream; 1331 const isLiff = /Line\/[\d.]+/i.test(userAgent); 1332 const $mobileBottomBar = $('#mobile-bottom-bar'); 1333 1334 if ($mobileBottomBar.length && isIOS && isLiff) { 1335 $mobileBottomBar.addClass('is-ios-liff'); 1336 } 1337 }); 1338 document.addEventListener('DOMContentLoaded', function() { 1339 window.getCartAmount = function() { 1340 return parseInt($('.global-cart-count').html()); 1341 }; 1342 }); 1343</script>
1343 1344
1345<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/navbar-4a1e7dfec7e41476.js' type='text/javascript'></script>
vendor: 1 bytes, line 1345
1345
1346<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/currencies-4a1e7dfec7e41476.js' type='text/javascript'></script>
1346 1347<!-- cyb_snippet i18n_modal start --> 1348 1349
1349<script src='//cdn-general.cybassets.com/frontend/shop/i18nSetting-4a1e7dfec7e41476.js' type='text/javascript'></script>
1349 1350
1350<script type="text/javascript"> 1351 $(document).ready(function() { 1352 const props = { 1353 isMultiLanguages: true, 1354 isMultiCurrencies: true, 1355 } 1356 1357 props.languageOptions = [{"handle":"zh-TW","title":"ç¹é«ä¸æ","currency_code":"TWD"},{"handle":"en","title":"English","currency_code":"USD"}] 1358 1359 1360 props.currencyOptions = [{"html_unit":"A${{amount}}","email_unit":"A${{amount}}","name":"澳洲å (AUD)","html":"A${{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"A${{amount}}","code":"AUD","symbol":"A$","email":"A${{amount}}"},{"html_unit":"\u0026#165;{{amount}}","email_unit":"Â¥{{amount}}","name":"人æ°å¹£ (CNY)","html":"\u0026#165;{{amount}}","trailing_zeros":true,"unit":"RMB","decimal_precision":2,"money_format":"%u%n","format":"\u0026#165;{{amount}}","code":"CNY","symbol":"Â¥","email":"Â¥{{amount}}"},{"html_unit":"\u0026euro;{{amount}} EUR","email_unit":"â¬{{amount}} EUR","name":"æå (EUR)","html":"\u0026euro;{{amount}}","trailing_zeros":true,"unit":"EUR","decimal_precision":2,"money_format":"%u%n","format":"\u0026euro;{{amount}} EUR","code":"EUR","symbol":"â¬","email":"â¬{{amount}}"},{"html_unit":"£{{amount}}","email_unit":"£{{amount}}","name":"è±é (GBP)","html":"£{{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"£{{amount}}","code":"GBP","symbol":"£","email":"£{{amount}}"},{"html_unit":"HK${{amount}}","email_unit":"HK${{amount}}","name":"港å (HKD)","html":"${{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"HK${{amount}}","code":"HKD","symbol":"HK$","email":"${{amount}}"},{"html_unit":"\u0026#165;{{amount_no_decimals}}","email_unit":"Â¥{{amount_no_decimals}}","name":"æ¥å¹£ (JPY)","html":"\u0026#165;{{amount_no_decimals}}","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%u%n","format":"\u0026#165;{{amount_no_decimals}}","code":"JPY","symbol":"Â¥","email":"Â¥{{amount_no_decimals}}"},{"html_unit":"â©{{amount_no_decimals}}","email_unit":"â©{{amount_no_decimals}}","name":"éå (KRW)","html":"â©{{amount_no_decimals}}","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%u%n","format":"â©{{amount_no_decimals}}","code":"KRW","symbol":"â©","email":"â©{{amount_no_decimals}}"},{"html_unit":"RM {{amount}}","email_unit":"RM {{amount}}","name":"馬ä¾è¥¿äºä»¤å (MYR)","html":"RM {{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"RM {{amount}}","code":"MYR","symbol":"RM ","email":"RM {{amount}}"},{"html_unit":"S${{amount}}","email_unit":"S${{amount}}","name":"æ°å å¡å (SGD)","html":"S${{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"S${{amount}}","code":"SGD","symbol":"S$","email":"S${{amount}}"},{"html_unit":"฿{{amount}}","email_unit":"฿{{amount}}","name":"æ³°é (THB)","html":"฿{{amount}}","trailing_zeros":true,"unit":"","decimal_precision":2,"money_format":"%u%n","format":"฿{{amount}}","code":"THB","symbol":"฿","email":"฿{{amount}}"},{"html_unit":"NT${{amount_no_decimals}}","email_unit":"NT${{amount_no_decimals}}","name":"æ°å°å¹£ (TWD)","html":"NT${{amount_no_decimals}}","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%u%n","format":"NT${{amount_no_decimals}}","code":"TWD","symbol":"NT$","email":"NT${{amount_no_decimals}}"},{"html_unit":"${{amount}} USD","email_unit":"${{amount}} USD","name":"ç¾å (USD)","html":"${{amount}}","trailing_zeros":true,"unit":"USD","decimal_precision":2,"money_format":"%u%n","format":"${{amount}} USD","code":"USD","symbol":"$","email":"${{amount}}"},{"html_unit":"{{amount_no_decimals}}â«","email_unit":"{{amount_no_decimals}}â«","name":"è¶åç¾ (VND)","html":"{{amount_no_decimals}}â«","trailing_zeros":false,"unit":"","decimal_precision":0,"money_format":"%n%u","format":"{{amount_no_decimals}}â«","code":"VND","symbol":"â«","email":"{{amount_no_decimals}}â«"}] 1361 1362 window.renderI18nSetting('.i18n-selector', props) 1363 }) 1364 </script>
1364 1365 1366 1367<!-- cyb_snippet i18n_modal end --> 1368<!-- cyb_snippet _load_fonts start -->
1369<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/load_fonts-4a1e7dfec7e41476.js' type='text/javascript'></script>
vendor: 1 bytes, line 1369
1369
1370<script> 1371 document.addEventListener('DOMContentLoaded', function() { 1372 window.loadFontSetting("{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}") 1373 }) 1374</script>
1374 1375 1376<!-- cyb_snippet _load_fonts end --> 1377<!-- cyb_snippet _custom_icon start -->
1378<script src='//cdn-general.cybassets.com/frontend/shop/navIcon-4a1e7dfec7e41476.js' type='text/javascript'></script>
1378 1379
1380<script> 1381 (function() { 1382 const iconUrlMap = new Map([ 1383 ['custom_icon_type_home', null], 1384 ['custom_icon_type_tracking_items', null], 1385 ['custom_icon_type_account', null], 1386 ['custom_icon_type_cart', null], 1387 ['custom_icon_type_search', null], 1388 ['custom_icon_type_menu', null] 1389 ]); 1390 const elements = document.querySelectorAll('[data-icon-type]'); 1391 elements.forEach((element, index) => { 1392 const iconAttributes = element.getAttribute('data-icon-type'); 1393 1394 const uniqueId = `icon_${iconAttributes}_${index}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; 1395 element.id = uniqueId; 1396 window.renderNavCustomIcon(`#${uniqueId}`, { 1397 navIconStyle: "icon_type_default", 1398 customIconUrl: iconUrlMap.get(iconAttributes) || '', 1399 iconAttributes: iconAttributes, 1400 currentTemplate: "index", 1401 }); 1402 }); 1403 })(); 1404</script>
1404 1405 1406<!-- cyb_snippet _custom_icon end --> 1407 1408 1409 1410 1411 1412
1412<script src='//cdn-general.cybassets.com/frontend/shop/announcementBar-4a1e7dfec7e41476.js' type='text/javascript'></script>
1412 1413 1414 1415 1416 1417 1418
1418<script> 1419 $(document).ready(function() { 1420 window.renderAnnouncementBar('#announcement-bar', { 1421 sectionId: "announcement_bar", 1422 isIndex: true, 1423 }); 1424 }); 1425 </script>
1425 1426 1427 1428 1429 1430 1431 1432 <!-- template --> 1433 <div id="template" style="flex:1 0 auto; background-color: var(--theme_bg);"> 1434
1434<script type="application/ld+json"> 1435{ 1436 "@context": "https://schema.org", 1437 "@type": "FAQPage", 1438 "mainEntity": [{ 1439 "@type": "Question", 1440 "name": "å é´»çæé»éèèç½", 1441 "acceptedAnswer": { 1442 "@type": "Answer", 1443 "text": "èèç½æç¼çï¼èèç½æ·±åº¦è·èï¼èèç½å éå·å£çåï¼èèç½éåæç¼ç 1444" 1445 } 1446 }, { 1447 "@type": "Question", 1448 "name": "èèç½ç²¾æºæç¼ç", 1449 "acceptedAnswer": { 1450 "@type": "Answer", 1451 "text": "ï¼èèç½å°±æç¨å®¶ãéå調ç¯ãæ©è½ï¼èèç½æ¯å¸å®èç²¾ç¡æ³ä¼åçç§å¸é«åº¦ãèèç½è½ä¸»å平衡é«å §çç¼çåæï¼ 1452⢠顯èæåæç¼çå å (IL-10)ï¼çºç´°èç©¿ä¸é²å½è¡£ã 1453⢠ææéä½ä¿ç¼çå å (TNF-α)ï¼å¾æºé 黿·ç²åèæå·ã 1454èè修復ï¼é«å¼·åº¦è¨ç·´å¾ï¼é«å §èèæå·ææ¸ï¼CPK / LDHï¼å¾å¾å± é«ä¸ä¸ã 坦驿¸æé¡¯ç¤ºï¼èèç½è½é¡¯èéä½éåå¾çèèæå·ææ¸ã éæå³èï¼ä½ çæ¢å¾©æéè®çäºï¼å次åå°è³½å ´ï¼æè·å ´ï¼ççç¼åæ´å¼·äºã 1455çªç ´æçï¼èåèè·èçå®ç¾å ±ç 1456èèæ¯è½é代è¬çç¸½ææ®ãéé FCE èèç½å¯å«çééµèºåºé ¸èç²¾èºé ¸ (Arginine)ï¼ 1457⢠åå䏿°§å氮循ç°ï¼å é代è¬å»¢ç©ã 1458⢠延é·éåèåï¼å»¶ç·©ç²åæç¢çã ä¸å ä¿è·èçµç¹å åæ°§åå£åå·å®³ï¼æ´è®ä½ çªç ´é«è½çãæçæãã 1459" 1460 } 1461 }] 1462} 1463</script>
1463 1464 1465 1466 1467 1468<div class="index"> 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_main_slider_custom-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 1480 1481<style> 1482 [id="_main_slider_custom"] { 1483 margin: 0 0px 48px !important; 1484 } 1485 @media (max-width: 576px) { 1486 .main-slider-placeholder { 1487 display: none !important; 1488 } 1489 .swiper-container { 1490 visibility: visible !important; 1491 } 1492 } 1493 @media (max-width: 991px) { 1494 [id="_main_slider_custom"] { 1495 margin: 0 0px 24px !important; 1496 } 1497 } 1498</style> 1499 1500<section id="_main_slider_custom" class="main-slider qk-pos--rel"> 1501 1502 1503 1504 <div 1505 class="swiper swiper-container" 1506 1507 > 1508 <div class="swiper-wrapper qk-align--center"> 1509 1510 1511 1512 <div class="swiper-slide"> 1513 1514 1515 <a 1516 href="/collections/ææåå" 1517 class="img-flex qk-align--stretch qk-display--contents" 1518 target="" 1519 rel="" 1520 > 1521 1522 1523 1524 1525 1526 1527 <picture> 1528 1529 <source 1530 media="(max-width: 576px)" 1531 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMyOTIzXzIwMjYxMDA3XzU3Nng1MDAuanBnLmpwZWciXV0.jpeg?sha=c2d6c2fced0296d2" 1532 alt="å é´»çæç¢å" 1533 > 1534 1535 1536 <source 1537 media="(max-width: 992px)" 1538 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMyOTIyXzIwMjYxMDA3Xzk2MHg2MDAuanBnLmpwZWciXV0.jpeg?sha=2ae9d8ad491eeee1" 1539 alt="å é´»çæç¢å" 1540 > 1541 1542 <img 1543 id="slider-image" 1544 data-src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzkxMzMyOTIzXzIwMjYxMDA3LmpwZy5qcGVnIl1d.jpeg?sha=b620e29bc7564a87" 1545 height="auto" 1546 alt="å é´»çæç¢å" 1547 class="swiper-lazy" 1548 > 1549 </picture> 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 </a> 1564 1565 1566 <div class="swiper-lazy-preloader"></div> 1567 1568 </div> 1569 1570 <div class="swiper-slide"> 1571 1572 <span class="img-flex qk-align--stretch qk-display--contents"> 1573 1574 1575 1576 1577 1578 1579 <picture> 1580 1581 <source 1582 media="(max-width: 576px)" 1583 data-srcset="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/main_slider_item_1_mobile.png" 1584 alt="" 1585 > 1586 1587 1588 <img 1589 id="slider-image" 1590 data-src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/main_slider_item_1.png" 1591 height="auto" 1592 alt="" 1593 class="swiper-lazy" 1594 > 1595 </picture> 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 </span> 1610 1611 1612 <div class="swiper-lazy-preloader"></div> 1613 1614 </div> 1615 1616 <div class="swiper-slide"> 1617 1618 <span class="img-flex qk-align--stretch qk-display--contents"> 1619 1620 1621 1622 1623 1624 1625 <picture> 1626 1627 <source 1628 media="(max-width: 576px)" 1629 data-srcset="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/main_slider_item_2_mobile.png" 1630 alt="" 1631 > 1632 1633 1634 <img 1635 id="slider-image" 1636 data-src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/main_slider_item_2.png" 1637 height="auto" 1638 alt="" 1639 class="swiper-lazy" 1640 > 1641 </picture> 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 </span> 1656 1657 1658 <div class="swiper-lazy-preloader"></div> 1659 1660 </div> 1661 1662 <div class="swiper-slide"> 1663 1664 1665 <a 1666 href="/products/ç¶ æ·¨è½-60ç²è£-20230427144941" 1667 class="img-flex qk-align--stretch qk-display--contents" 1668 target="" 1669 rel="" 1670 > 1671 1672 1673 1674 1675 1676 1677 <picture> 1678 1679 <source 1680 media="(max-width: 576px)" 1681 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MjExXzIwMjUxMDAyX-e2oOa3qOiCvV81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=cadee8a131eae02f" 1682 alt="ã調ç¯è¡èãç¶ æ·¨è½" 1683 > 1684 1685 1686 <source 1687 media="(max-width: 992px)" 1688 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MjEwXzIwMjUxMDAyX-e2oOa3qOiCvV85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=54bee6de9a7a6a4c" 1689 alt="ã調ç¯è¡èãç¶ æ·¨è½" 1690 > 1691 1692 <img 1693 id="slider-image" 1694 data-src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgwMjE4MjExXzIwMjUxMDAyX-e2oOa3qOiCvS5qcGcuanBlZyJdXQ.jpeg?sha=cad5287801d94bd5" 1695 height="auto" 1696 alt="ã調ç¯è¡èãç¶ æ·¨è½" 1697 class="swiper-lazy" 1698 > 1699 </picture> 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 </a> 1714 1715 1716 <div class="swiper-lazy-preloader"></div> 1717 1718 </div> 1719 1720 <div class="swiper-slide"> 1721 1722 1723 <a 1724 href="/collections/é²èæ¶²" 1725 class="img-flex qk-align--stretch qk-display--contents" 1726 target="" 1727 rel="" 1728 > 1729 1730 1731 1732 1733 1734 1735 <picture> 1736 1737 <source 1738 media="(max-width: 576px)" 1739 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgyMTc3MjgwXzIwMjYwNjIzX-mYsuiaiua2sl81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=eabec98dc457de8a" 1740 alt="å èä½ é²èæ¶²" 1741 > 1742 1743 1744 <source 1745 media="(max-width: 992px)" 1746 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgyMTc3MjgwXzIwMjYwNjIzX-mYsuiaiua2sl85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=2b52637b59d79653" 1747 alt="å èä½ é²èæ¶²" 1748 > 1749 1750 <img 1751 id="slider-image" 1752 data-src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzgyMTc3MjgwXzIwMjYwNjIzX-mYsuiaiua2si5qcGcuanBlZyJdXQ.jpeg?sha=e20bb236a079972c" 1753 height="auto" 1754 alt="å èä½ é²èæ¶²" 1755 class="swiper-lazy" 1756 > 1757 </picture> 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 </a> 1772 1773 1774 <div class="swiper-lazy-preloader"></div> 1775 1776 </div> 1777 1778 <div class="swiper-slide"> 1779 1780 1781 <a 1782 href="https://www.zh-biotech.com/zh-TW/collections/%E6%98%8E%E6%98%9F%E5%95%86%E5%93%81" 1783 class="img-flex qk-align--stretch qk-display--contents" 1784 target="" 1785 rel="" 1786 > 1787 1788 1789 1790 1791 1792 1793 <picture> 1794 1795 <source 1796 media="(max-width: 576px)" 1797 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA4NTAxMjczXzIwMjQwMjIxX-e0heWIqem7nuaVuF81NzZ4NTAwLmpwZy5qcGVnIl1d.jpeg?sha=e3bf239c2214d7cf" 1798 alt="ç·ä¸è³¼ç©ç´ å©é»æ¸æ´»å" 1799 > 1800 1801 1802 <source 1803 media="(max-width: 992px)" 1804 data-srcset="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA4NTAxMjczXzIwMjQwMjIxX-e0heWIqem7nuaVuF85NjB4NjAwLmpwZy5qcGVnIl1d.jpeg?sha=228a10c0c08a3b53" 1805 alt="ç·ä¸è³¼ç©ç´ å©é»æ¸æ´»å" 1806 > 1807 1808 <img 1809 id="slider-image" 1810 data-src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNzA4NTAxMjU2XzIwMjQwMjIxX-e0heWIqem7nuaVuC5qcGcuanBlZyJdXQ.jpeg?sha=c5070e33bfad880c" 1811 height="auto" 1812 alt="ç·ä¸è³¼ç©ç´ å©é»æ¸æ´»å" 1813 class="swiper-lazy" 1814 > 1815 </picture> 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 </a> 1830 1831 1832 <div class="swiper-lazy-preloader"></div> 1833 1834 </div> 1835 1836 </div> 1837 1838 <div 1839 class="qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v2 qk-swiper_btn--prev main_slider_custom_prev qk-hidden--mobile" 1840 ></div> 1841 <div 1842 class="qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v2 qk-swiper_btn--next main_slider_custom_next qk-hidden--mobile" 1843 ></div> 1844 1845 </div> 1846
1847 <div class="qk-swiper_pg qk-w--100 qk-mg_t--1 qk-text--center main_slider_pagination"></div> 1848 1849</section> 1850
1851<script> 1852 $(document).ready(function(){ 1853 let isDynamicLoading = false; 1854 let settingObj = { 1855 id: '_main_slider_custom', 1856 mobile_img_number: Number('1'), 1857 mobile_img_space: Number('8'), 1858 img_number: Number('1'), 1859 img_space: Number('12'), 1860 swiper_delay: '5', 1861 } 1862 window.mainSlider = function(obj){ 1863 var id = themeHelper.escapeId(obj.id); 1864 var slideCount = $(`#${obj.id} .swiper-slide`).length 1865 var autoLoop = true 1866 if (slideCount <= 1){ 1867 autoLoop = false 1868 } 1869 var mainSlider = new Swiper('#' + id + ' .swiper-container', { 1870 preloadImages: false, 1871 slidesPerView: Number(obj.mobile_img_number), 1872 spaceBetween: Number(obj.mobile_img_space), 1873 breakpoints: { 1874 0:{ 1875 slidesPerView: Number(obj.mobile_img_number), 1876 spaceBetween: Number(obj.mobile_img_space), 1877 }, 1878 991: { 1879 slidesPerView: Number(obj.img_number), 1880 spaceBetween: Number(obj.img_space), 1881 } 1882 }, 1883 // Enable lazy loading 1884 observer: true, 1885 observeParents: true, 1886 autoheight: true, 1887 lazy: { 1888 loadPrevNext: true, 1889 }, 1890 freeMode: { 1891 enabled: true, 1892 sticky: true, 1893 momentum: true, 1894 momentumRatio: 0.4, 1895 momentumVelocityRatio: 0.1, 1896 }, 1897 loop: autoLoop, 1898 autoplay: { delay: obj.swiper_delay * 1000 }, 1899 speed: Number('300.0'), 1900 pagination: { 1901 el: '#' + id + ' .main_slider_pagination', 1902 clickable: true, 1903 }, 1904 navigation: { 1905 nextEl: '#' + id + ' .main_slider_custom_next', 1906 prevEl: '#' + id + ' .main_slider_custom_prev', 1907 }, 1908 on: { 1909 init: function () { 1910 if (isDynamicLoading && !window.matchMedia("(max-width: 576px)").matches) { 1911 document.querySelector('#' + id + ' .main-slider-placeholder').style.display = 'none'; 1912 document.querySelector('#' + id + ' .swiper-container').style.visibility = 'visible'; 1913 } 1914 }, 1915 } 1916 }); 1917 } 1918 if (isDynamicLoading) { 1919 window.DynamicLoading.setupComponent({ 1920 sectionId: "_main_slider_custom", 1921 sectionSettingData: settingObj, 1922 entryName:'mainSlider', 1923 source:'https://cdnjs.cloudflare.com/ajax/libs/Swiper/5.4.5/js/swiper.js', 1924 componentType:'js', 1925 hiddenDom: true 1926 }); 1927 }else{ 1928 mainSlider(settingObj); 1929 } 1930 }) 1931</script>
1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_index_4_blocks-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' />
1946<script src='//cdn-general.cybassets.com/frontend/shop/productDisplay-4a1e7dfec7e41476.js' type='text/javascript'></script>
1946 1947 1948<style> 1949 [id="_index_4_blocks"] { 1950 margin: 0 180px 48px !important; 1951 } 1952 1953 @media (min-width: 992px) { 1954 [id="_index_4_blocks"] .block:not(.last-row) { 1955 margin-bottom: 10px !important; 1956 } 1957 [id="_index_4_blocks"] .block-default-width-margin:not(:first-of-type), 1958 [id="_index_4_blocks"] .block-not-first-margin { 1959 margin-left: 10px !important; 1960 } 1961 } 1962 1963 @media (max-width: 991px) { 1964 [id="_index_4_blocks"] { 1965 margin: 0 0px 24px !important; 1966 } 1967 [id="_index_4_blocks"] > .qk-display--flex.qk-flex--wrap { 1968 gap: 10px; 1969 justify-content: flex-start; 1970 } 1971 [id="_index_4_blocks"] .block { 1972 flex: 0 0 calc((100% - (1 - 1) * 10px) / 1); 1973 } 1974 } 1975 1976 .video-block-loading { 1977 background-color: #eeee; 1978 position: absolute; 1979 top: 0; 1980 bottom: 0; 1981 left: 0; 1982 width: 100%; 1983 height: 100%; 1984 } 1985</style> 1986
1987<script> 1988 1989 $(document).ready(function() { 1990 let isDynamicLoading = false; 1991 if (isDynamicLoading) { 1992 window.DynamicLoading.setupComponent({ 1993 sectionId:'_index_4_blocks', 1994 componentType:'liquid', 1995 }); 1996 } 1997 1998 1999 2000 2001 2002 2003 2004 }) 2005</script>
2005 2006
2007<script> 2008 function buildYoutubeEmbedUrl(url, options) { 2009 const YT_REGEX = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|shorts\/)([^#&?]*).*/; 2010 const match = (url || '').match(YT_REGEX); 2011 const videoId = match && match[2].length === 11 ? match[2] : ''; 2012 2013 if (!videoId) { 2014 return ''; 2015 } 2016 2017 const autoPlay = options && options.autoPlay; 2018 const hideControls = options && options.hideControls; 2019 const loop = options && options.loop; 2020 2021 const searchParams = new URLSearchParams(); 2022 2023 searchParams.set('autoplay', autoPlay ? '1' : '0'); 2024 // è¥èªåææ¾ï¼é è¨éé³ä»¥ç¬¦åç覽å¨éå¶ 2025 searchParams.set('mute', autoPlay ? '1' : '0'); 2026 searchParams.set('playsinline', '1'); 2027 2028 searchParams.set('controls', hideControls ? '0' : '1'); 2029 searchParams.set('rel', '0'); 2030 2031 if (loop) { 2032 searchParams.set('loop', '1'); 2033 searchParams.set('playlist', videoId); 2034 } 2035 2036 return 'https://www.youtube.com/embed/' + videoId + '?' + searchParams.toString(); 2037 } 2038 2039 function parseYtUrlOnLoad(target, url, autoPlay, hideControls, loop) { 2040 const finalUrl = buildYoutubeEmbedUrl(url, { 2041 autoPlay: autoPlay, 2042 hideControls: hideControls, 2043 loop: loop, 2044 }); 2045 2046 if (!finalUrl || target.src === finalUrl) { 2047 return; 2048 } 2049 2050 const handleVideoLoad = function () { 2051 try { 2052 const wrapper = $(target).closest('.embed-responsive')[0]; 2053 if (wrapper) { 2054 // éé loading skeleton 2055 const loading = wrapper.querySelector('.video-block-loading'); 2056 if (loading) { 2057 loading.style.display = 'none'; 2058 } 2059 } 2060 } catch (e) { 2061 console.error('iframe onload èç失æ', e); 2062 } finally { 2063 target.removeEventListener('load', handleVideoLoad); 2064 } 2065 }; 2066 2067 target.addEventListener('load', handleVideoLoad); 2068 2069 target.src = finalUrl; 2070 if (hideControls && autoPlay) { 2071 target.style.pointerEvents = 'none'; 2072 } 2073 2074 // 夿·æ¯ä¸æ¯ YouTube shortsï¼æ±ºå®è¦ä¸è¦å ä¸ .short-youtube class 2075 try { 2076 const isShort = (url || '').indexOf('/shorts/') !== -1; 2077 if (isShort) { 2078 const wrapper = $(target).closest('.embed-responsive')[0]; 2079 if (wrapper) { 2080 wrapper.classList.add('short-youtube'); 2081 } 2082 } 2083 } catch (e) { 2084 console.error('isShort 夿·å¤±æ', e); 2085 } 2086 } 2087 2088 2089 window.addEventListener('load', function () { 2090 const sectionEl = document.getElementById('_index_4_blocks'); 2091 if (!sectionEl) return; 2092 2093 const options = { 2094 threshold: 0.25, 2095 }; 2096 2097 2098 2099 2100 2101 2102 2103 2104 }); 2105</script>
2105 2106 2107<section id="_index_4_blocks" class="index-4-blocks"> 2108 <div class="qk-display--flex qk-flex--wrap"> 2109 2110 2111 2112 2113 <div class="block image mobile-1-col last-row" style="width: calc(33.3% - 6.66px);"> 2114 2115 <div class="img-card" id="index_4_blocks_block_1"> 2116 2117 2118 2119 <img 2120 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_1.png" 2121 class="qk-w--100 qk-hidden--mobile" 2122 alt="" 2123 > 2124 2125 2126 2127 2128 <img 2129 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_1.png" 2130 class="qk-w--100 qk-display--bk qk-hidden--phone qk-hidden--pc" 2131 alt="" 2132 > 2133 2134 2135 2136 2137 <img 2138 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_1.png" 2139 class="qk-w--100 qk-display--bk qk-hidden--pc qk-hidden--tablet" 2140 alt="" 2141 > 2142 2143 2144 2145 <div class="advance-rich-text-content-container"> 2146 2147 </div> 2148 </div> 2149 2150 </div> 2151 2152 2153 2154 <div class="block image mobile-1-col block-not-first-margin last-row" style="width: calc(33.3% - 6.66px);"> 2155 2156 <div class="img-card" id="index_4_blocks_block_2"> 2157 2158 2159 2160 <img 2161 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_2.png" 2162 class="qk-w--100 qk-hidden--mobile" 2163 alt="" 2164 > 2165 2166 2167 2168 2169 <img 2170 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_2.png" 2171 class="qk-w--100 qk-display--bk qk-hidden--phone qk-hidden--pc" 2172 alt="" 2173 > 2174 2175 2176 2177 2178 <img 2179 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_2.png" 2180 class="qk-w--100 qk-display--bk qk-hidden--pc qk-hidden--tablet" 2181 alt="" 2182 > 2183 2184 2185 2186 <div class="advance-rich-text-content-container"> 2187 2188 </div> 2189 </div> 2190 2191 </div> 2192 2193 2194 2195 <div class="block image mobile-1-col block-not-first-margin last-row" style="width: calc(33.3% - 6.66px);"> 2196 2197 <div class="img-card" id="index_4_blocks_block_3"> 2198 2199 2200 2201 <img 2202 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_3.png" 2203 class="qk-w--100 qk-hidden--mobile" 2204 alt="" 2205 > 2206 2207 2208 2209 2210 <img 2211 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_3.png" 2212 class="qk-w--100 qk-display--bk qk-hidden--phone qk-hidden--pc" 2213 alt="" 2214 > 2215 2216 2217 2218 2219 <img 2220 src="//cdn-general.cybassets.com/theme_src/i18n_nolli/default_img/index_4_blocks_1_block_3.png" 2221 class="qk-w--100 qk-display--bk qk-hidden--pc qk-hidden--tablet" 2222 alt="" 2223 > 2224 2225 2226 2227 <div class="advance-rich-text-content-container"> 2228 2229 </div> 2230 </div> 2231 2232 </div> 2233 2234 </div> 2235</section> 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_index_4_blocks-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' />
2250<script src='//cdn-general.cybassets.com/frontend/shop/productDisplay-4a1e7dfec7e41476.js' type='text/javascript'></script>
2250 2251 2252<style> 2253 [id="1680063739968_4"] { 2254 margin: 0 0px 50px !important; 2255 } 2256 2257 @media (min-width: 992px) { 2258 [id="1680063739968_4"] .block:not(.last-row) { 2259 margin-bottom: 10px !important; 2260 } 2261 [id="1680063739968_4"] .block-default-width-margin:not(:first-of-type), 2262 [id="1680063739968_4"] .block-not-first-margin { 2263 margin-left: 10px !important; 2264 } 2265 } 2266 2267 @media (max-width: 991px) { 2268 [id="1680063739968_4"] { 2269 margin: 0 0px 50px !important; 2270 } 2271 [id="1680063739968_4"] > .qk-display--flex.qk-flex--wrap { 2272 gap: 10px; 2273 justify-content: flex-start; 2274 } 2275 [id="1680063739968_4"] .block { 2276 flex: 0 0 calc((100% - (1 - 1) * 10px) / 1); 2277 } 2278 } 2279 2280 .video-block-loading { 2281 background-color: #eeee; 2282 position: absolute; 2283 top: 0; 2284 bottom: 0; 2285 left: 0; 2286 width: 100%; 2287 height: 100%; 2288 } 2289</style> 2290
2291<script> 2292 2293 $(document).ready(function() { 2294 let isDynamicLoading = false; 2295 if (isDynamicLoading) { 2296 window.DynamicLoading.setupComponent({ 2297 sectionId:'1680063739968_4', 2298 componentType:'liquid', 2299 }); 2300 } 2301 2302 2303 2304 }) 2305</script>
2305 2306
2307<script> 2308 function buildYoutubeEmbedUrl(url, options) { 2309 const YT_REGEX = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|shorts\/)([^#&?]*).*/; 2310 const match = (url || '').match(YT_REGEX); 2311 const videoId = match && match[2].length === 11 ? match[2] : ''; 2312 2313 if (!videoId) { 2314 return ''; 2315 } 2316 2317 const autoPlay = options && options.autoPlay; 2318 const hideControls = options && options.hideControls; 2319 const loop = options && options.loop; 2320 2321 const searchParams = new URLSearchParams(); 2322 2323 searchParams.set('autoplay', autoPlay ? '1' : '0'); 2324 // è¥èªåææ¾ï¼é è¨éé³ä»¥ç¬¦åç覽å¨éå¶ 2325 searchParams.set('mute', autoPlay ? '1' : '0'); 2326 searchParams.set('playsinline', '1'); 2327 2328 searchParams.set('controls', hideControls ? '0' : '1'); 2329 searchParams.set('rel', '0'); 2330 2331 if (loop) { 2332 searchParams.set('loop', '1'); 2333 searchParams.set('playlist', videoId); 2334 } 2335 2336 return 'https://www.youtube.com/embed/' + videoId + '?' + searchParams.toString(); 2337 } 2338 2339 function parseYtUrlOnLoad(target, url, autoPlay, hideControls, loop) { 2340 const finalUrl = buildYoutubeEmbedUrl(url, { 2341 autoPlay: autoPlay, 2342 hideControls: hideControls, 2343 loop: loop, 2344 }); 2345 2346 if (!finalUrl || target.src === finalUrl) { 2347 return; 2348 } 2349 2350 const handleVideoLoad = function () { 2351 try { 2352 const wrapper = $(target).closest('.embed-responsive')[0]; 2353 if (wrapper) { 2354 // éé loading skeleton 2355 const loading = wrapper.querySelector('.video-block-loading'); 2356 if (loading) { 2357 loading.style.display = 'none'; 2358 } 2359 } 2360 } catch (e) { 2361 console.error('iframe onload èç失æ', e); 2362 } finally { 2363 target.removeEventListener('load', handleVideoLoad); 2364 } 2365 }; 2366 2367 target.addEventListener('load', handleVideoLoad); 2368 2369 target.src = finalUrl; 2370 if (hideControls && autoPlay) { 2371 target.style.pointerEvents = 'none'; 2372 } 2373 2374 // 夿·æ¯ä¸æ¯ YouTube shortsï¼æ±ºå®è¦ä¸è¦å ä¸ .short-youtube class 2375 try { 2376 const isShort = (url || '').indexOf('/shorts/') !== -1; 2377 if (isShort) { 2378 const wrapper = $(target).closest('.embed-responsive')[0]; 2379 if (wrapper) { 2380 wrapper.classList.add('short-youtube'); 2381 } 2382 } 2383 } catch (e) { 2384 console.error('isShort 夿·å¤±æ', e); 2385 } 2386 } 2387 2388 2389 window.addEventListener('load', function () { 2390 const sectionEl = document.getElementById('1680063739968_4'); 2391 if (!sectionEl) return; 2392 2393 const options = { 2394 threshold: 0.25, 2395 }; 2396 2397 2398 2399 { 2400 const target = sectionEl.querySelector('#video-block-1680063739971_1'); 2401 2402 if (!target) { 2403 return; 2404 } 2405 2406 const callback = (entries, observer) => { 2407 entries.forEach(entry => { 2408 if (entry.isIntersecting) { 2409 const iframe = target.querySelector('iframe'); 2410 parseYtUrlOnLoad( 2411 iframe, 2412 'https://youtu.be/BehdoVBymKk&loop=1&autoplay=1&mute=1', 2413 true, 2414 false, 2415 true 2416 ); 2417 2418 observer.unobserve(entry.target); 2419 } 2420 }); 2421 }; 2422 2423 const observer = new IntersectionObserver(callback, options); 2424 observer.observe(target); 2425 } 2426 2427 2428 }); 2429</script>
2429 2430 2431<section id="1680063739968_4" class="index-4-blocks"> 2432 <div class="qk-display--flex qk-flex--wrap"> 2433 2434 2435 2436 2437 <div class="block video mobile-1-col last-row" style="width: calc(100% - 0.0px);"> 2438 2439 2440 <div class="embed-responsive only-video" id="video-block-1680063739971_1"> 2441 <iframe 2442 frameborder="0" 2443 allowfullscreen 2444 allow="autoplay; encrypted-media" 2445 ></iframe> 2446 2447 <div class="video-block-loading" > 2448 </div> 2449 2450 </div> 2451 2452 </div> 2453 2454 </div> 2455</section> 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/_index_4_blocks-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' />
2470<script src='//cdn-general.cybassets.com/frontend/shop/productDisplay-4a1e7dfec7e41476.js' type='text/javascript'></script>
2470 2471 2472<style> 2473 [id="1680063869940_4"] { 2474 margin: 0 0px 50px !important; 2475 } 2476 2477 @media (min-width: 992px) { 2478 [id="1680063869940_4"] .block:not(.last-row) { 2479 margin-bottom: 10px !important; 2480 } 2481 [id="1680063869940_4"] .block-default-width-margin:not(:first-of-type), 2482 [id="1680063869940_4"] .block-not-first-margin { 2483 margin-left: 10px !important; 2484 } 2485 } 2486 2487 @media (max-width: 991px) { 2488 [id="1680063869940_4"] { 2489 margin: 0 0px 40px !important; 2490 } 2491 [id="1680063869940_4"] > .qk-display--flex.qk-flex--wrap { 2492 gap: 10px; 2493 justify-content: flex-start; 2494 } 2495 [id="1680063869940_4"] .block { 2496 flex: 0 0 calc((100% - (1 - 1) * 10px) / 1); 2497 } 2498 } 2499 2500 .video-block-loading { 2501 background-color: #eeee; 2502 position: absolute; 2503 top: 0; 2504 bottom: 0; 2505 left: 0; 2506 width: 100%; 2507 height: 100%; 2508 } 2509</style> 2510
2511<script> 2512 2513 $(document).ready(function() { 2514 let isDynamicLoading = false; 2515 if (isDynamicLoading) { 2516 window.DynamicLoading.setupComponent({ 2517 sectionId:'1680063869940_4', 2518 componentType:'liquid', 2519 }); 2520 } 2521 2522 2523 2524 }) 2525</script>
2525 2526
2527<script> 2528 function buildYoutubeEmbedUrl(url, options) { 2529 const YT_REGEX = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=|shorts\/)([^#&?]*).*/; 2530 const match = (url || '').match(YT_REGEX); 2531 const videoId = match && match[2].length === 11 ? match[2] : ''; 2532 2533 if (!videoId) { 2534 return ''; 2535 } 2536 2537 const autoPlay = options && options.autoPlay; 2538 const hideControls = options && options.hideControls; 2539 const loop = options && options.loop; 2540 2541 const searchParams = new URLSearchParams(); 2542 2543 searchParams.set('autoplay', autoPlay ? '1' : '0'); 2544 // è¥èªåææ¾ï¼é è¨éé³ä»¥ç¬¦åç覽å¨éå¶ 2545 searchParams.set('mute', autoPlay ? '1' : '0'); 2546 searchParams.set('playsinline', '1'); 2547 2548 searchParams.set('controls', hideControls ? '0' : '1'); 2549 searchParams.set('rel', '0'); 2550 2551 if (loop) { 2552 searchParams.set('loop', '1'); 2553 searchParams.set('playlist', videoId); 2554 } 2555 2556 return 'https://www.youtube.com/embed/' + videoId + '?' + searchParams.toString(); 2557 } 2558 2559 function parseYtUrlOnLoad(target, url, autoPlay, hideControls, loop) { 2560 const finalUrl = buildYoutubeEmbedUrl(url, { 2561 autoPlay: autoPlay, 2562 hideControls: hideControls, 2563 loop: loop, 2564 }); 2565 2566 if (!finalUrl || target.src === finalUrl) { 2567 return; 2568 } 2569 2570 const handleVideoLoad = function () { 2571 try { 2572 const wrapper = $(target).closest('.embed-responsive')[0]; 2573 if (wrapper) { 2574 // éé loading skeleton 2575 const loading = wrapper.querySelector('.video-block-loading'); 2576 if (loading) { 2577 loading.style.display = 'none'; 2578 } 2579 } 2580 } catch (e) { 2581 console.error('iframe onload èç失æ', e); 2582 } finally { 2583 target.removeEventListener('load', handleVideoLoad); 2584 } 2585 }; 2586 2587 target.addEventListener('load', handleVideoLoad); 2588 2589 target.src = finalUrl; 2590 if (hideControls && autoPlay) { 2591 target.style.pointerEvents = 'none'; 2592 } 2593 2594 // 夿·æ¯ä¸æ¯ YouTube shortsï¼æ±ºå®è¦ä¸è¦å ä¸ .short-youtube class 2595 try { 2596 const isShort = (url || '').indexOf('/shorts/') !== -1; 2597 if (isShort) { 2598 const wrapper = $(target).closest('.embed-responsive')[0]; 2599 if (wrapper) { 2600 wrapper.classList.add('short-youtube'); 2601 } 2602 } 2603 } catch (e) { 2604 console.error('isShort 夿·å¤±æ', e); 2605 } 2606 } 2607 2608 2609 window.addEventListener('load', function () { 2610 const sectionEl = document.getElementById('1680063869940_4'); 2611 if (!sectionEl) return; 2612 2613 const options = { 2614 threshold: 0.25, 2615 }; 2616 2617 2618 2619 2620 }); 2621</script>
2621 2622 2623<section id="1680063869940_4" class="index-4-blocks"> 2624 <div class="qk-display--flex qk-flex--wrap"> 2625 2626 2627 2628 2629 <div class="block image mobile-1-col block-default-width-margin last-row" style="width: calc(100.0% - 0.0px);"> 2630 2631 <div class="img-card" id="1680063869942_0"> 2632 2633 2634 2635 <img 2636 src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzNzg1NjI2X-WFjemBiy3pm7vohabniYguanBnLmpwZWciXV0.jpeg?sha=e4ff56310d7e71f4" 2637 class="qk-w--100 qk-hidden--mobile" 2638 alt="" 2639 > 2640 2641 2642 2643 2644 <img 2645 src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzNzg1NjI2X-WFjemBiy3pm7vohabniYguanBnLmpwZWciXV0.jpeg?sha=e4ff56310d7e71f4" 2646 class="qk-w--100 qk-display--bk qk-hidden--phone qk-hidden--pc" 2647 alt="" 2648 > 2649 2650 2651 2652 2653 <img 2654 src="//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjgzNzg3MDU1X-WFjemBiy3miYvmqZ_niYguanBnLmpwZWciXV0.jpeg?sha=9da5987f49564a20" 2655 class="qk-w--100 qk-display--bk qk-hidden--pc qk-hidden--tablet" 2656 alt="" 2657 > 2658 2659 2660 2661 <div class="advance-rich-text-content-container"> 2662 2663 </div> 2664 </div> 2665 2666 </div> 2667 2668 </div> 2669</section> 2670 2671 2672 2673 2674 <!-- å å ¥è³¼ç©è» --> 2675 2676 <!-- cyb_snippet new_addcart_modal start --> 2677<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vue_product_modal-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 2678 2679<div id="new-addcart-modal" class="container"> 2680 <transition name="modal"> 2681 <product-modal 2682 v-if="showProductModal" 2683 :only-description="onlyDescription" 2684 :product-url="popProductUrl" 2685 :color="color" 2686 :is-collection="isCollection" 2687 :is-show-description="isShowDescription" 2688 :is-quick-buy="isQuickBuy" 2689 :selected-variant-id="selectedVariantId" 2690 :categories="categories" 2691 :call-back="checkoutAddToCartCallback" 2692 ref="productModal" 2693 > 2694 </product-modal> 2695 </transition> 2696</div> 2697 2698<!-- cyb_snippet components/product_modal/product_modal start -->
2699<script type="text/x-template" id="product-modal"> 2700 <div class="modal-mask qk-h--100 qk-w--100 qk-l--0 qk-t--0 qk-pos--fixed" @click="closeModal"> 2701 <div class="modal-content qk-bd--none qk-center qk-bg--theme_bg" :class="{'only-description': onlyDescription}" @click.stop> 2702 <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> 2703 <div class="modal-body custom-scrollbar qk-w--100"> 2704 <div v-if="!isLoading"> 2705 <div id="checkout-product" class="row"> 2706 <div class="col-sm-6 col-xs-4"> 2707 <photo-swiper 2708 :mediaItems="swiperItems" 2709 :current-image-index="currentImageIndex" 2710 :current-variant="currentVariant" 2711 :video-after-image="videoAfterImage" 2712 ></photo-swiper> 2713 </div> 2714 <div class="col-sm-6 col-xs-8"> 2715 <h4 class="qk-fs--hd2 qk-fw--bold qk-text--heading qk-mg--0" v-html="product.title"></h4> 2716 <p class="product_brief qk-text--text qk-fs--body" v-html="product.brief"></p> 2717 <p class="product_slogan qk-text--heading qk-fs--body" v-html="product.slogan"></p> 2718 <div class="swiper_thumbnails" style="margin-bottom: 10px;"> 2719 <swiper-thumbnails 2720 :mediaItems="swiperItems" 2721 :current-image-index="currentImageIndex" 2722 :title="product.title" 2723 @update-current-image-index="(thumbnailIndex) => { currentImageIndex = thumbnailIndex }" 2724 ></swiper-thumbnails> 2725 </div> 2726 2727 <div v-if="!hidePrice" style="margin-bottom: 10px;"> 2728 2729 <span class="price-title qk-fs--body qk-fw--500 qk-text--heading">${ priceTitleTag }</span> 2730 2731 <div> 2732 <span v-html="variantPrice" class="variant-price qk-fs--hd1 qk-fw--bold" :class="[isDiscountPrice ? 'qk-text--discount_price' : 'qk-text--price']"></span> 2733 <del v-html="marketPrice" class="variant-del-price qk-fs--body qk-fw--500 qk-text--text"></del> 2734 </div> 2735 </div> 2736 <div v-if="!onlyDescription" class="controls"> 2737 <div class="variant-quantity qk-display--flex qk-flex--column"> 2738 <div v-if="hasVariant" class="product-variant-options"> 2739 <div v-for="(option, index) in optionInfo" class="product-variant-option" :class="{'product-variant-option--hidden': shouldHideSingleVariantOptions}"> 2740 <div class="advance variant-select-option" v-if="styledShopMenu==='dropDownType'"> 2741 2742 <label>${option.name}</label> 2743 <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> 2744 <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}`)"> 2745 <option value="null" class="select_option-hidden">Please select ${option.name}</option> 2746 <option :style="{ visibility : isMobileSize ? 'hidden' : 'visible' }" v-for="(types) in option.types" :disabled="!types.isValid" :value="types.name">${types.name}</option> 2747 </select> 2748 <span class="select_placeholder-color" v-if="currentOption[`option${index + 1}`] === null" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)">Please select ${option.name}</span>
2749 <span v-else :value="currentOption[`option${index + 1}`]" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)" v-html="currentOption[`option${index + 1}`]"></span> 2750 </div> 2751 <advance-option v-else :option-key="'option' + (index + 1)" :option="option" :current-option="currentOption" :toggle-current-option="toggleCurrentOption"/> 2752 </div> 2753 </div> 2754 <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)"> 2755 <div class="list_block custom-scrollbar qk-of_x--hidden"> 2756 <h4 class="qk-text--heading qk-fs--body">Applicable Promotions 2757 </h4> 2758 <template v-if="displayPeriodicSalesPages"> 2759 <div v-for="salesPage in product.showableSalesPages" class="discount-list"> 2760 <span class="discount-label qk-fs--breadcrumb qk-bd--default qk-bd--accent qk-bg--white qk-display--il_bk qk-text--accent">Subscription 2761 </span> 2762 <a class="discount-title qk-text--accent qk-fs--body" :href="salesPage.path">${ salesPage.title }</a> 2763 </div> 2764 </template> 2765 <template v-for="discounts in discountsList"> 2766 <div v-for="discount in discounts" class="discount-list"> 2767 <a v-if="discount.url" :href="discount.url" class="discount-title qk-text--accent qk-fs--body"> 2768 ${ discount.title } 2769 </a> 2770 <span v-else class="discount-title qk-text--accent qk-fs--body">${ discount.title }</span> 2771 </div> 2772 </template> 2773 </div> 2774 </div> 2775 <div v-if="showPurchaseControls" class="product-quantity qk-bd--product_border" v-show="!isMobileSize"> 2776 <div class="btn-group qk-w--100" role="group" aria-label="First group"> 2777 <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">ï¼</button> 2778 <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"> 2779 <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">ï¼</button> 2780 </div> 2781 </div> 2782 </div> 2783 <div v-if="showPurchaseControls" class="add-button-wrapper"> 2784 <!-- cyb_snippet _product_modal_button start --> 2785<button 2786 class="btn btn-default add-button qk-cursor--pointer qk-w--100 qk-btn--primary" 2787 :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}" 2788 type="button" 2789 :disabled="isHideAddCartBtn" 2790 @click="addProduct" 2791> 2792 ${ addCartText } 2793</button> 2794 2795<!-- cyb_snippet _product_modal_button end --> 2796 </div> 2797 <div class="product-others qk-fs--body"> 2798 <span class="product-love"> 2799 <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"> 2800 <svg 2801 width="15" 2802 height="15"
2803 viewBox="0 0 24 24" 2804 fill="none" 2805 xmlns="http://www.w3.org/2000/svg"> 2806 <path 2807 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" 2808 stroke="currentColor" 2809 stroke-width="2" 2810 stroke-linecap="round" 2811 stroke-linejoin="round" /> 2812 </svg> 2813 Add to Wishlist 2814 </a> 2815 </span> 2816 <span class="product_sold qk-text--text" v-if="false"> 2817 <span>Sold : 2818 ${ product.totalSold } 2819 Item(s) 2820 </span> 2821 </span> 2822 <span class="product_bonus qk-text--text" v-if="true"> 2823 Redeemable credit(s) per item 2824 <span class="val qk-fw--600 qk-fs--hd2" v-if="currentVariant">${currentVariant.maxUsableBonus}</span> 2825 <span class="val qk-fw--600 qk-fs--hd2" v-else>${maxUsableBonus}</span> 2826 credit(s) 2827 <span v-html="bonusToPrice"/> 2828 </span> 2829 </div> 2830 <div class='product_limit_buy qk-fs--body' v-show="product.minBuy > 0 || product.limitBuy > 0"> 2831 ${limitBuyText} 2832 </div> 2833 </div> 2834 </div> 2835 </div> 2836 <div v-if="isShowDescription" class="row"> 2837 <div class="col-sm-12"> 2838 2839 <div v-if="product.bodyHtml"> 2840 <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading"> 2841 Description 2842 </h5> 2843 <div class="ckeditor"> 2844 <div v-html="product.bodyHtml"></div> 2845 </div> 2846 </div> 2847 2848 2849 <div v-if="otherDescriptions['product_description_section_spec']"> 2850 <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading"> 2851 Specification 2852 </h5> 2853 <div class="ckeditor"> 2854 <div v-html="otherDescriptions['product_description_section_spec']"></div> 2855 </div> 2856 </div> 2857 2858 2859 </div> 2860 </div> 2861 </div> 2862 <div v-show="isLoading" style="text-align: center; padding-bottom: 20px;"> 2863 <i class="fas fa-spinner fa-spin fa-fw fa-2x"></i> 2864 </div> 2865 </div> 2866 <!-- cyb_snippet _product_modal_button_mobile start --> 2867 <div 2868 v-if="showPurchaseControls" 2869 v-show="isMobileSize" 2870 class="mobile_footer" 2871 :class="{'mobile_footer-z': variantSize > 1 }"> 2872 <div class="product-quantity"> 2873 <div class="btn-group qk-w--100" role="group" aria-label="First group"> 2874 <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">ï¼</button> 2875 <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"> 2876 <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">ï¼</button> 2877 </div> 2878 </div> 2879 <button 2880 v-if="!isLoading && !onlyDescription" 2881 class="btn btn-mobile add-button qk-btn qk-btn--primary qk-btn--lg" 2882 :class="{selected: isChoose, adding: adding || isHideAddCartBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}" 2883 type="button" 2884 :disabled="isHideAddCartBtn" 2885 @click="addProduct"> 2886 ${ addCartText } 2887 </button> 2888</div> 2889<div 2890 class="mobile-modal" 2891 :class="{ 'modal-open': isModalSelectShow && isMobileSize }"> 2892 <div class="mobile_modal-content"> 2893 <div class="modal_close-button"> 2894 <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> 2895 </div> 2896 2897 <p>Please select ${modalOption.name}</p> 2898 <div class="modal_select-templete qk-display--flex qk-of_y--auto qk-w--100"> 2899 <div class="options-container"> 2900 <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> 2901 </div> 2902 </div> 2903 <div v-if="variantSize > 1" class="modal_select_footer qk-display--flex"> 2904 <button type="button" class="modal_cancel qk-bd--default qk-btn--secondary qk-bd--button qk-text--button" @click="onChangeModalSelect(false,false)">Cancel</button> 2905 <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)">Finish</button> 2906 </div> 2907 </div> 2908</div> 2909 2910<!-- cyb_snippet _product_modal_button_mobile end --> 2911 </div> 2912 </div> 2913</script>
2913 2914 2915<!-- cyb_snippet components/product_modal/color_image_option start -->
2916<script id="color-image-option" type="text/x-template"> 2917 <div class="color-image qk-display--flex qk-flex--wrap qk-align--center"> 2918 <div class="title">Color</div> 2919 <div 2920 v-for="(imageColor, index) in imageColors" 2921 :class="{ 2922 'focus': !currentOption[optionKey] === option.types[index].name && currentImageIndex === index, 2923 'selected': currentOption[optionKey] === option.types[index].name, 2924 'disabled': !option.types[index].isValid 2925 }" 2926 class="image-option img-flex qk-bd--default qk-bd--transparent qk-display--block qk-pos--rel" 2927 @mouseleave="setCurrentImageIndex(index)" 2928 @mouseover="getOptionImageIndex(index)" 2929 @click="setOption(optionKey, index)" 2930 > 2931 <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image"> 2932 <img v-else src="/assets/no-image-large.png" alt="image"> 2933 </div> 2934 </div> 2935</script>
2935 2936
2937<script type="text/javascript"> 2938 $(document).ready(function() { 2939 window.themeHelper.productModalComponents['color-image-option'] = { 2940 template: '#color-image-option', 2941 delimiters: ['${', '}'], 2942 props: { 2943 optionKey: String, 2944 option: Object, 2945 product: Object, 2946 imageColors: Array, 2947 isChoose: Boolean, 2948 currentImageIndex: Number, 2949 setCurrentImageIndex: Function, 2950 getOptionImageIndex: Function, 2951 currentOption: Object, 2952 toggleCurrentOption: Function, 2953 }, 2954 methods: { 2955 setOption: function(optionKey, index) { 2956 const type = this.option.types[index]; 2957 if(type.isValid){ 2958 this.toggleCurrentOption(optionKey, type.name); 2959 } 2960 } 2961 } 2962 }; 2963 }); 2964</script>
2964 2965 2966<!-- cyb_snippet components/product_modal/color_image_option end --> 2967<!-- cyb_snippet components/product_modal/advance_option start -->
2968<script id="advance-option" type="text/x-template"> 2969 <div class="advance"> 2970 <div class="title qk-text--heading qk-fs--body">${option.name}</div> 2971 <div 2972 v-for="type in option.types" 2973 :class="{ 2974 'selected': currentOption[optionKey] === type.name, 2975 'disabled': !type.isValid 2976 }" 2977 @click="setOption(optionKey, type)" 2978 class="option qk-btn qk-bd--button qk-text--button qk-pd_x--1" 2979 > 2980 ${type.name} 2981 </div> 2982 </div> 2983</script>
2983 2984
2985<script type="text/javascript"> 2986 $(document).ready(function() { 2987 window.themeHelper.productModalComponents['advance-option'] = { 2988 template: '#advance-option', 2989 delimiters: ['${', '}'], 2990 props: { 2991 optionKey: String, 2992 option: Object, 2993 product: Object, 2994 currentOption: Object, 2995 toggleCurrentOption: Function, 2996 }, 2997 methods: { 2998 setOption: function(optionKey, type) { 2999 if(type.isValid){ 3000 this.toggleCurrentOption(optionKey, type.name); 3001 } 3002 } 3003 } 3004 }; 3005 }); 3006</script>
3006 3007 3008<!-- cyb_snippet components/product_modal/advance_option end --> 3009 3010<!-- cyb_snippet components/product_modal/photo_swiper start --> 3011 3012
3013<script id="photo-swiper" type="text/x-template"> 3014 <div ref="photoSwiper" id="photo_swiper" class="photos swiper swiper-container"> 3015 <div class="swiper-wrapper"> 3016 <template v-if="hasImage"> 3017 <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 three_to_four_scale"> 3018 <video-player v-if="item.url" :video="item" 3019 :video-poster=" !!mediaItems[firstImageIndex] ? mediaItems[firstImageIndex].large : '//cdn-general.cybassets.com/img_loading.svg' " 3020 > 3021 </video-player> 3022 <img v-else class="qk-center" :src="item.large" alt="image"/> 3023 </div> 3024 </template> 3025 <div v-else class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top three_to_four_scale"> 3026 <img src="//cdn-general.cybassets.com/assets/no-image-large-2b95ea56c455be9ce081d81c14eded925df68bf8fa38809e46f6af8fcdd5f9bc.png" alt="image" /> 3027 </div> 3028 </div> 3029 <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> 3030 <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> 3031 3032 <div class="photo-pagination qk-bd--default qk-bd--body qk-text--center qk-text--body qk-fs--breadcrumb qk-visible-sm"> 3033 <span class="current-index qk-text--default_dark">${currentImageIndex +1 }</span><span class="pagination-slash">/</span> 3034 <span>${mediaItems.length}</span> 3035 </div> 3036 </div> 3037</script>
3037 3038
3039<script> 3040 $(document).ready(function () { 3041 window.themeHelper.productModalComponents['photo-swiper'] = { 3042 template: '#photo-swiper', 3043 delimiters: ['${', '}'], 3044 props: { 3045 mediaItems: Array, 3046 currentImageIndex: Number, 3047 currentVariant: Object, 3048 videoAfterImage: Boolean, 3049 }, 3050 data: function () { 3051 return { 3052 swiper: {}, 3053 swiperOption: { 3054 preventInteractionOnTransition: true, 3055 rewind: true, 3056 spaceBetween: 5, 3057 slidesPerView: 1, 3058 navigation: { 3059 nextEl: '.photo-next', 3060 prevEl: '.photo-prev' 3061 } 3062 }, 3063 showBtn: true, 3064 isVariantReposition: false, 3065 } 3066 }, 3067 mounted: function() { 3068 this.swiper = new Swiper('#photo_swiper', this.swiperOption); 3069 this.swiper.on('slideChange', this.slideOnChange); 3070 }, 3071 watch: { 3072 currentImageIndex: function() { 3073 this.slideToIndex(); 3074 }, 3075 currentVariant: { 3076 immediate: true, 3077 handler: function() { 3078 this.showBtn = this.mediaItems.length > 1; 3079 this.isVariantReposition = true; 3080 this.$nextTick(() => { 3081 if (this.swiper) { 3082 this.swiper.update(); 3083 this.swiper.slideToLoop(this.initialItemIndex) 3084 this.slideOnChange(); 3085 this.isVariantReposition = false; 3086 } 3087 }); 3088 }, 3089 }, 3090 }, 3091 computed: { 3092 hasImage: function() { 3093 return this.mediaItems.length > 0; 3094 }, 3095 hasVideo: function() { 3096 return this.mediaItems.findIndex(item => !!item.url) !== -1; 3097 }, 3098 variantPhotos: function() { 3099 if (this.currentVariant?.photos?.length) { 3100 return this.currentVariant.photos; 3101 } else { 3102 return null; 3103 } 3104 }, 3105 initialItemIndex: function() { 3106 if (this.hasVideo && !this.videoAfterImage) { 3107 // Focus on photo if "variant with photos" selected, video otherwise 3108 return this.variantPhotos?.length ? 1 : 0; 3109 } else { 3110 // Focus on first photo 3111 return 0; 3112 } 3113 }, 3114 }, 3115 methods: { 3116 slideOnChange: function() { 3117 themeHelper.EventBus.$emit('photoOnChange', this.swiper.realIndex, this.isVariantReposition); 3118 }, 3119 slideToIndex: function() { 3120 if(this.swiper.realIndex != this.currentImageIndex) { 3121 this.swiper.slideToLoop(this.currentImageIndex); 3122 this.swiper.update(); 3123 } 3124 }, 3125 } 3126 }; 3127 }); 3128</script>
3128 3129 3130 3131<!-- cyb_snippet components/product_modal/video_player start -->
3132<script id="video-player" type="text/x-template"> 3133 <div class="videoPlayer__wrapper" @click="handleVideoClick"> 3134 <video 3135 id='modal-video' 3136 class="videoPlayer__video qk-cursor--pointer qk-center" 3137 :poster="videoPoster" 3138 loop defaultMuted muted playsinline webkit-playsinline autoplay 3139 > 3140 <source :src="videoUrl" type="video/mp4"> 3141 <p>Your browser does not support HTML 5 video.</p> 3142 </video> 3143 <button id="modal-video-button" class="videoPlayer__pauseButton"></button> 3144 </div> 3145</script>
3145 3146
3147<script> 3148 $(document).ready(function () { 3149 window.themeHelper.productModalComponents['video-player'] = { 3150 template: '#video-player', 3151 delimiters: ['${', '}'], 3152 props: { 3153 video: Object, 3154 videoPoster: String, 3155 }, 3156 data: function() { 3157 return { 3158 videoElement: null, 3159 buttonElement: null, 3160 }; 3161 }, 3162 mounted: function() { 3163 this.videoElement = $('#modal-video')[0]; 3164 this.buttonElement = $('#modal-video-button'); 3165 this.setVideoVolumeZero(); 3166 this.videoElement.addEventListener('canplay', (event) => { 3167 this.sendGtag('play'); 3168 }, { once: true }); 3169 }, 3170 computed: { 3171 videoUrl: function() { 3172 return this.video.url; 3173 } 3174 }, 3175 methods: { 3176 sendGtag: function(action) { 3177 window.productVideoView && productVideoView(action); 3178 }, 3179 setVideoVolumeZero: function() { 3180 this.videoElement.volume = 0; 3181 }, 3182 handleVideoClick: function() { 3183 if (this.videoElement.paused){ 3184 this.videoElement.play(); 3185 this.sendGtag('play'); 3186 } else { 3187 this.videoElement.pause(); 3188 this.sendGtag('paused'); 3189 } 3190 this.handleVideoButtonDisplay(this.buttonElement, this.videoElement); 3191 }, 3192 handleVideoButtonDisplay: function(button, video) { 3193 button.toggleClass('videoPlayer__playButton', video.paused); 3194 button.toggleClass('videoPlayer__pauseButton', !video.paused); 3195 }, 3196 } 3197 }; 3198 }); 3199</script>
3199 3200 3201<!-- cyb_snippet components/product_modal/video_player end --> 3202 3203<!-- cyb_snippet components/product_modal/photo_swiper end --> 3204<!-- cyb_snippet components/product_modal/swiper_thumbnails start -->
3205<script id="swiper-thumbnails" type="text/x-template"> 3206 <div 3207 v-for="(thumbnail, index) in allThumbnails" 3208 :key="index" 3209 class="product-thumbnail img-flex qk-of--hidden qk-display--il_bk qk-cursor--pointer qk-bd--default qk-bd--transparent three_to_four_scale" 3210 :class="{ focus: index === currentImageIndex }" 3211 @mouseover="updateCurrentImageIndex(index)" 3212 > 3213 <template v-if="thumbnail.isVideo"> 3214 <video class="qk-w--100 qk-h--100" :src="thumbnail.url" defaultMuted playsinline></video> 3215 <button class="videoPlayer__playButton"></button> 3216 </template> 3217 <img v-else :src="thumbnail.url" :alt="title" class="qk-w--100 qk-h--100"> 3218 </div> 3219</script>
3219 3220
3221<script type="text/javascript"> 3222 $(document).ready(function () { 3223 window.themeHelper.productModalComponents['swiper-thumbnails'] = { 3224 template: '#swiper-thumbnails', 3225 delimiters: ['${', '}'], 3226 props: { 3227 title: String, 3228 mediaItems: Array, 3229 currentImageIndex: Number, 3230 }, 3231 emits: ['updateCurrentImageIndex'], 3232 methods: { 3233 updateCurrentImageIndex: function(thumbnailIndex) { 3234 if (thumbnailIndex !== this.currentImageIndex ) { 3235 this.$emit('updateCurrentImageIndex', thumbnailIndex); 3236 } 3237 }, 3238 }, 3239 mounted() { 3240 // can be removed after replacing video thumbnail with img 3241 const thumbnailVideo = $('.product-thumbnail video')[0]; 3242 if (!!thumbnailVideo) { 3243 thumbnailVideo.volume = 0; 3244 const promise = thumbnailVideo.play(); 3245 promise.then(() => { 3246 thumbnailVideo.pause(); 3247 }) 3248 } 3249 }, 3250 computed: { 3251 allThumbnails: function() { 3252 return this.mediaItems.map(item => ({ 3253 isVideo: !!item.url, 3254 url: item.url || item.medium 3255 })); 3256 }, 3257 }, 3258 watch: { 3259 allThumbnails: { 3260 handler(){ 3261 this.updateCurrentImageIndex(this.currentImageIndex); 3262 } 3263 } 3264 } 3265 }; 3266 }); 3267</script>
3267 3268 3269<!-- cyb_snippet components/product_modal/swiper_thumbnails end --> 3270 3271 3272<!-- cyb_snippet _product_modal_js start -->
3273<script type="text/javascript"> 3274 $(document).ready(function() { 3275 var categoryLevels = []; 3276 var productCategoryLevels = null; 3277 var pageMainProductId = null; 3278 window.themeHelper.productModalComponents['product-modal'] = { 3279 template: '#product-modal', 3280 delimiters: [ 3281 '${', '}' 3282 ], 3283 props: { 3284 onlyDescription: Boolean, 3285 cartItems: Array, 3286 groupId: Number, 3287 productUrl: String, 3288 color: String, // unused 3289 collectionId: Number, 3290 categories: Array, 3291 // 夿·æ¯å¦æè²ç¥¨å±é 3292 isCollection: { 3293 type: Boolean, 3294 required: false, 3295 default: false, 3296 }, 3297 // 夿·å å ¥è³¼ç©è»çæ¹æ³ 3298 isNnCollection: Boolean, 3299 isNewNnCollection: Boolean, 3300 isBundleDiscount: Boolean, 3301 3302 // 夿·æ¯å¦é¡¯ç¤ºååæè¿° 3303 isShowDescription: { 3304 type: Boolean, 3305 default: true 3306 }, 3307 3308 // 夿·æ¯å¦çºç«å³è³¼è²· 3309 isQuickBuy: { 3310 type: Boolean, 3311 default: false 3312 }, 3313 selectedVariantId: Number, 3314 callBack: Function 3315 }, 3316 data: function() { 3317 return { 3318 styledShopMenu: "dropDownType", 3319 selectOption: '', 3320 selectCurrentStr:'', 3321 isModalSelectShow: false, 3322 modalOption: {}, 3323 adding: false, 3324 currentImageIndex: 0, 3325 _navState: { variantId: null, photoIndex: 0 }, 3326 currentOption: { 3327 option1: null, 3328 option2: null, 3329 option3: null 3330 }, 3331 currentVariant: null, 3332 variantNotifications: null, 3333 currentVariantIndex: null, 3334 product: {}, 3335 isChoose: false, 3336 isLoading: true, 3337 isEmptyClickable: liquidHelper.isEmptyClickable, 3338 quantity: 1, 3339 maxUsableBonus: 0, 3340 isDiscountPrice: false, 3341 displayProductDiscountsList: true, 3342 displayPeriodicSalesPages:true, 3343 discountsList: null, 3344 hasVideoPlugin: true, 3345 videoDisplayLocation: "before", 3346 hasStockNotificationPlugin: true, 3347 isDisplayPriceRange: null, 3348 hasVariantPriceRangePlugin: true, 3349 hasHideSingleVariantOptionsPlugin: false, 3350 } 3351 }, 3352 mounted: function() { 3353 this.getProductDetail(); 3354 $('.custom-scrollbar').addCustomScrollbar(); 3355 themeHelper.EventBus.$on('photoOnChange', this.photoOnChange); 3356 }, 3357 beforeUnmount: function() { 3358 themeHelper.EventBus.$off('photoOnChange', this.photoOnChange); 3359 }, 3360 computed: { 3361 photoUrls: function() { 3362 return this.product.photoUrls.length > 0 3363 ? this.product.photoUrls 3364 : [this.featuredImage]; 3365 }, 3366 photoUrlsMap: function() { 3367 var map = {}; 3368 var urls = this.product.photoUrls; 3369 this.product.photos.forEach(function(photo, index) { 3370 map[photo.photo.id] = urls[index]; 3371 }); 3372 3373 return map; 3374 }, 3375 featuredImage: function() { 3376 return this.product.featuredImage; 3377 }, 3378 swiperPhotos: function() { 3379 if (!this.photoUrls.length) { 3380 return [this.featuredImage]; 3381 } 3382 3383 if (this.currentVariant && this.currentVariant.photos.length) { 3384 var map = this.photoUrlsMap; 3385 return this.currentVariant.photos.map(function(p) { 3386 return map[p.id]; 3387 }); 3388 } 3389 3390 return this.photoUrls; 3391 }, 3392 productVideo: function() { 3393 return this.product.video; 3394 }, 3395 videoAfterImage: function() { 3396 return this.videoDisplayLocation === 'after'; 3397 }, 3398 swiperItems: function() { 3399 const media = [...this.swiperPhotos]; 3400 if ( 3401 this.hasVideoPlugin && this.productVideo.url 3402 ) { 3403 this.videoAfterImage 3404 ? media.push(this.productVideo) 3405 : media.unshift(this.productVideo); 3406 } 3407 return media; 3408 }, 3409 firstImageIndex: function() { 3410 return this.hasVideoPlugin && this.productVideo.url && !this.videoAfterImage 3411 ? 1 3412 : 0 3413 }, 3414 otherDescriptions: function() { 3415 var descriptions = {}; 3416 this.product.otherDescriptions.forEach(function(od) { 3417 descriptions[od.settingName] = od.bodyHtml; 3418 }) 3419 return descriptions 3420 }, 3421 variantOptions: function() { 3422 return themeHelper.variantOptions(this.product); 3423 }, 3424 firstValidVariant: function() { 3425 var self = this; 3426 var result = this.product.variants.find(function(variant) { 3427 // å¢å product modal è¯çµ¡åºå®¶ property 3428 variant.imgUrl = ""; 3429 variant.productTitle = ""; 3430 3431 return variant.available; 3432 }); 3433 3434 return result 3435 ? result 3436 : null; 3437 }, 3438 selectedValidVariant: function() { 3439 var self = this; 3440 var result = this.variantOptions.find(function(variant) { 3441 return variant.id === self.selectedVariantId; 3442 }); 3443 3444 return result 3445 ? result 3446 : null; 3447 }, 3448 totalInventoryQuantity: function(product) { 3449 return themeHelper.totalInventoryQuantity(this.product) 3450 }, 3451 addCartText: function() { 3452 var variants = parseInt(""); 3453 let isRegisteredNotification = this.currentVariant && this.variantNotifications && this.variantNotifications[this.currentVariant.id] 3454 if (this.isNnCollection || this.isBundleDiscount) { 3455 if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) { 3456 if (this.currentVariant.inventoryPolicy === 'continue') { 3457 if (this.isNnCollection) { 3458 return this.isChoose && !this.isNewNnCollection 3459 ? 'Ordered' 3460 : 'Pre-order'; 3461 } 3462 } else { 3463 return 'Sold out'; 3464 } 3465 } 3466 if (this.totalInventoryQuantity === 0) { 3467 return 'Sold out'; 3468 } 3469 return this.isChoose && !this.isNewNnCollection 3470 ? 'Selected' 3471 : 'Select'; 3472 } else { 3473 if (this.isQuickBuy) { 3474 if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) { 3475 if (this.currentVariant.inventoryPolicy === 'continue'){ 3476 return 'Order Now' 3477 } 3478 return this.hasStockNotificationPlugin 3479 ? (isRegisteredNotification 3480 ? 'Notification enabled' 3481 : 'Sold out! Notify me when the product is available.') 3482 : 'Contact Shop' 3483 } 3484 return 'BUY NOW'; 3485 } else { 3486 if (this.currentVariant) { 3487 if (!themeHelper.variantIsAvailable(this.currentVariant)) { 3488 if (this.currentVariant.inventoryPolicy === 'continue'){ 3489 return 'Pre-order' 3490 } 3491 return this.hasStockNotificationPlugin 3492 ? (isRegisteredNotification 3493 ? 'Notification enabled' 3494 : 'Sold out! Notify me when the product is available.') 3495 : 'Contact Shop' 3496 } 3497 } else { 3498 if (this.totalInventoryQuantity === 0) { 3499 return 'Sold out'; 3500 } 3501 } 3502 return 'ADD TO CART'; 3503 } 3504 } 3505 }, 3506 cartItem: function() { 3507 if (!this.currentVariant) { 3508 return null 3509 } 3510 return { 3511 id: this.currentVariant.id, 3512 groupId: this.groupId, 3513 productId: this.product.id, 3514 title: this.product.title, 3515 photo: this.currentVariant.imgUrl || this.featuredImage.large, 3516 quantity: this.quantity, 3517 price: this.currentVariant.price, 3518 variant: this.currentVariant, 3519 product: this.product 3520 } 3521 }, 3522 options: function() { 3523 return this.product.options; 3524 }, 3525 optionTypes: function() { 3526 3527 // å æ ¹æè¨å®çvariantsä¾æåº 3528 var self = this; 3529 3530 var option1 = []; 3531 var option2 = []; 3532 var option3 = [];
3533 this.product.variants.forEach(function(item) { 3534 if (item.option1 !== null) { 3535 option1.push(item.option1); 3536 } 3537 if (item.option2 !== null) { 3538 option2.push(item.option2); 3539 } 3540 if (item.option3 !== null) { 3541 option3.push(item.option3); 3542 } 3543 }) 3544 var filteredOptionTypes = []; 3545 this.product.optionTypes.forEach(function(item, index) { 3546 filteredOptionTypes.push(self.getUniqueVariant(eval('option' + ( 3547 index + 1 3548 ))).join(',')); 3549 }); 3550 return filteredOptionTypes; 3551 }, 3552 optionInfo: function() { 3553 var self = this; 3554 3555 return self.options.map(function(option, index) { 3556 return { 3557 name: option, 3558 types: self.getOptions('option' + ( 3559 index + 1 3560 ), self.optionTypes[index].split(',')) 3561 } 3562 }); 3563 }, 3564 hasVariant: function() { 3565 return this.product.options.length > 0; 3566 }, 3567 shouldHideSingleVariantOptions: function() { 3568 return this.hasHideSingleVariantOptionsPlugin && 3569 this.product.variants && 3570 this.product.variants.length <= 1; 3571 }, 3572 variantSize: function() { 3573 if(this.product.options){ 3574 return this.product.options.length; 3575 } 3576 }, 3577 firstVariant: function() { 3578 return this.product.variants[0]; 3579 }, 3580 firstCheapestVariant: function() { 3581 return this.product.variants.find((v)=> (v.price === this.priceStats.minPrice)); 3582 }, 3583 priceStats: function() { 3584 return this.product.variants.reduce(function(acc, variant) { 3585 return { 3586 minPrice: variant.price < acc.minPrice ? variant.price : acc.minPrice, 3587 maxPrice: variant.price > acc.maxPrice ? variant.price : acc.maxPrice, 3588 }; 3589 }, { 3590 minPrice: this.firstVariant.price, 3591 maxPrice: this.firstVariant.price, 3592 }); 3593 }, 3594 hidePrice: function() { 3595 return this.product && this.product.hidePrice === true; 3596 }, 3597 salesModePurchasable: function() { 3598 return !(this.product && this.product.salesModePurchasable === false); 3599 }, 3600 // - 任鏿æ£ï¼ç´ é ç¶ ï¼ã鏿ãåªæ¯å é²è©¦ç®æ¸ å®ï¼ä¸æç´æ¥ä¸å®ï¼æ åªæèå¹åå 3601 // - å ¶ä»æ å¢ï¼ååé ã群çµé ãå¤å±¤ç´åé¡ãæå°ãé¦é åååå¡ï¼ï¼ä¸å¯è³¼è²·ï¼å«èå¹ï¼å°±æ´çµæ¶æ 3602 showPurchaseControls: function() { 3603 if (this.isNnCollection || this.isBundleDiscount) { 3604 return !this.hidePrice; 3605 } 3606 return this.salesModePurchasable; 3607 }, 3608 variantPrice: function() { 3609 if (this.hidePrice) { 3610 return ''; 3611 } 3612 var from = liquidHelper.defaultCurrency; 3613 if (this.currentVariant) { 3614 return moneySymbol(this.currentVariant.price, from); 3615 } 3616 if (this.product.variants.length === 1) { 3617 return moneySymbol(this.firstVariant.price, from); 3618 } 3619 3620 var minPrice = this.priceStats.minPrice; 3621 var maxPrice = this.priceStats.maxPrice; 3622 3623 if (minPrice !== maxPrice && (!this.hasVariantPriceRangePlugin || this.isDisplayPriceRange)) { 3624 this.isDiscountPrice = false; 3625 return moneySymbol(minPrice, from) + '~' + moneySymbol(maxPrice, from); 3626 } else { 3627 return moneySymbol(minPrice, from); 3628 } 3629 }, 3630 marketPrice: function() { 3631 if (this.hidePrice) { 3632 this.isDiscountPrice = false; 3633 return; 3634 } 3635 var from = liquidHelper.defaultCurrency; 3636 if (this.currentVariant) { 3637 this.isDiscountPrice = false; 3638 if (this.currentVariant.compareAtPrice && this.currentVariant.compareAtPrice > this.currentVariant.price) { 3639 this.isDiscountPrice = true; 3640 return moneySymbol(this.currentVariant.compareAtPrice, from); 3641 } 3642 } else { 3643 if (!_.includes(this.variantPrice, '~')) { 3644 const price = Number(this.variantPrice.replace(/[^0-9.
3644-]/g, "")) 3645 // æªé¸ææ¬¾å¼ä¹ä¸é¡¯ç¤ºåéæï¼é¡¯ç¤ºç¬¬ä¸åæä¾¿å®ç款å¼çå®å¹ 3646 if (this.firstCheapestVariant.compareAtPrice && this.firstCheapestVariant.compareAtPrice > price){ 3647 this.isDiscountPrice = true; 3648 return moneySymbol(this.firstCheapestVariant.compareAtPrice, from); 3649 } 3650 // æªé¸ææ¬¾å¼æè¦æ¹åä¸è¬å¹æ ¼é¡è² 3651 this.isDiscountPrice = false; 3652 } 3653 } 3654 }, 3655 isShowDropdownList: function() { 3656 if (this.product.options.length > 0) { 3657 return true; 3658 } 3659 return this.product.variants.length > 1 3660 }, 3661 priceTitleTag: function() { 3662 return this.marketPrice 3663 ? getDiscountPriceName() 3664 : getDiscountPriceSuggestionName(); 3665 }, 3666 isHideAddCartBtn: function() { 3667 if (this.addCartText === 'Sold out') { 3668 return true; 3669 } 3670 return false; 3671 }, 3672 isSecondaryBtn: function() { 3673 if (this.addCartText === 'Contact Shop') { 3674 return true; 3675 } 3676 return false; 3677 }, 3678 variantsMaxUsableBonus: function() { 3679 var variants = this.product.variants; 3680 var maxUsableBonusArray = variants.map(function(item) { 3681 return item.maxUsableBonus 3682 }); 3683 return Math.max.apply(null, maxUsableBonusArray); 3684 }, 3685 bonusToPrice: function() { 3686 const bonus = this.currentVariant 3687 ? this.currentVariant.maxUsableBonus 3688 : this.maxUsableBonus; 3689 const price = Math.floor(bonus / window.liquidHelper.conversionBonus); 3690 const priceWithMoney = window.themeHelper.productDisplayCurrencyBlock(price); 3691 return "equivalent to value".replace('value', priceWithMoney); 3692 }, 3693 isMobileSize: function() { 3694 return window.innerWidth <= 580 3695 }, 3696 limitBuyText: function () { 3697 const minCount = this.product.minBuy; 3698 const maxCount = this.product.limitBuy; 3699 if (minCount > 0 && maxCount > 0) { 3700 return 'For this product, each order requires a minimum purchase of minCount units and allows a maximum purchase of maxCount units.'.replace('minCount', minCount).replace('maxCount', maxCount); 3701 } 3702 if (minCount > 0) { 3703 return 'This product requires a minimum order of minCount pieces per order'.replace('minCount', minCount); 3704 } 3705 if (maxCount > 0) { 3706 return 'For this product, each order allows a maximum purchase of maxCount units.'.replace('maxCount', maxCount); 3707 } 3708 return ''; 3709 } 3710 }, 3711 methods: { 3712 onClickSelectModal: function(objData, selectOptionStr) { 3713 this.isModalSelectShow = true; 3714 this.modalOption = objData; 3715 this.selectOption = selectOptionStr 3716 this.selectCurrentStr = this.currentOption && (String(this.currentOption[selectOptionStr]) || null) 3717 }, 3718 onChangeModalSelect: function(flag, isSelect) { 3719 if(!isSelect){ 3720 this.setOption(this.selectOption,this.selectCurrentStr,this.modalOption.types) 3721 } 3722 this.isModalSelectShow = flag; 3723 }, 3724 setOption: function(optionKey, type, dataArr) { 3725 let flag = true 3726 dataArr.forEach(item => { 3727 if (item.name === type) { 3728 flag = item.isValid 3729 } 3730 }) 3731 if (flag) { 3732 this.toggleCurrentOption(optionKey, type) 3733 } 3734 }, 3735 addToWishListEvent: function() { 3736 try { 3737 if (appMarketAddToWishListEvent) { 3738 var product = this.product; 3739 var currentVariant = this.currentVariant 3740 var element = $(`.btn[data-id=${product.id}]`); 3741 var index; 3742 var listName; 3743 if (element) { 3744 index = element.data('position') 3745 listName = element.data('list') 3746 } 3747 // sku_properties:é¸ä¸æ¬¾å¼ç option pairs(ç¶åèªç³»),é¡åå zip å¼ 3748 var optionValues = [currentVariant.option1, currentVariant.option2, currentVariant.option3]; 3749 var properties = [];
3750 (product.options || []).forEach(function(optionName, i) { 3751 if (optionName && optionValues[i]) { 3752 properties.push({ name: optionName, value: optionValues[i] }); 3753 } 3754 }); 3755 var dataSet = { 3756 name: product.title, 3757 category: product.productType, 3758 categories: (this.categories && this.categories.length) ? this.categories : (categoryLevels.length ? categoryLevels : (product.id === pageMainProductId ? productCategoryLevels : undefined)), 3759 sku: currentVariant.sku, 3760 price: currentVariant.price, 3761 compare_at_price: currentVariant.compareAtPrice, 3762 properties: properties, 3763 quantity: currentVariant.inventoryQuantity, 3764 variant: currentVariant.title, 3765 listName: listName || null, 3766 productId: product.id, 3767 variantId: currentVariant.id, 3768 index: Number(index) || 0, 3769 } 3770 appMarketAddToWishListEvent(dataSet) 3771 } 3772 } catch (e) { 3773 console.error(e) 3774 } 3775 }, 3776 addWishList: function() { 3777 if (this.currentVariant === null) { 3778 window.msg('Please select product specifications', 'warning').show(); 3779 return; 3780 } 3781 var productVariantId = this.currentVariant.id; 3782 var addToWishListEvent = this.addToWishListEvent 3783 $.ajax({ 3784 method: 'POST', 3785 url: '/tracking_items', 3786 dataType: 'json', 3787 data: { 3788 product_variant_id: productVariantId 3789 }, 3790 success: function(response) { 3791 if (response.message) { 3792 window.msg(response.message, 'success').show(); 3793 addToWishListEvent() 3794 } 3795 3796 if (response.error) { 3797 window.msg(response.error, 'error').show(); 3798 3799 } 3800 if (response.info) { 3801 window.msg(response.info, 'info').show(); 3802 } 3803 if (response.success === false) { 3804 if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) { 3805 window.location = "/" + window.liquidHelper.language.handle + "/account/login"; 3806 } else { 3807 window.location = "/account/login"; 3808 } 3809 } 3810 } 3811 }); 3812 }, 3813 setChoose: function(currentVariant) { 3814 this.maxUsableBonus = 0; 3815 var quantity = 1; 3816 var cartItem = null; 3817 if (!this.isNnCollection && this.cartItems) { 3818 cartItem = this.normalGetChoosenItem(currentVariant); 3819 } 3820 if (this.isNnCollection) { 3821 cartItem = this.nnCollectionGetChoosenItem(currentVariant); 3822 } 3823 this.isChoose = !! cartItem; 3824 if (this.isNewNnCollection) { 3825 return 3826 } 3827 this.quantity = cartItem 3828 ? cartItem.quantity 3829 : this.quantity; 3830 3831 // product modal è¯çµ¡åºå®¶æ å¢ 3832 if (currentVariant) { 3833 var photoIndex = 0; 3834 if (! currentVariant.imgUrl) { 3835 currentVariant.imgUrl = this.swiperPhotos.length > 0 3836 ? (this.swiperPhotos[photoIndex] && this.swiperPhotos[photoIndex].large) 3837 : this.featuredImage.large; 3838 } 3839 currentVariant.productTitle = this.product.title + ' - ' + this.currentVariant.title; 3840 } 3841 }, 3842 normalGetChoosenItem: function(currentVariant) { 3843 return this.cartItems.find(function(cartItem) { 3844 return currentVariant && cartItem.id === currentVariant.id; 3845 }); 3846 }, 3847 nnCollectionGetChoosenItem: function(currentVariant) { 3848 var isSelected = null; 3849 if (! currentVariant) { 3850 return isSelected; 3851 } 3852 if (this.isNewNnCollection) { 3853 var cart = store.get(`SpecialCollectionCart_${this.collectionId}`); 3854 isSelected = cart && cart.find((item) => item.variant_id == currentVariant.id) || null; 3855 } else { 3856 store.each(function(value, key) { 3857 var productId = _.includes(key, 'Pro' + currentVariant.productId); 3858 var variantID = _.includes(key, 'Var' + currentVariant.id); 3859 if (productId && variantID) { 3860 isSelected = store.get(key); 3861 } 3862 }); 3863 } 3864 3865 return isSelected; 3866 }, 3867 // get product detail 3868 getProductDetail: function() { 3869 var self = this; 3870 3871 $.ajax({ 3872 url: self.productUrl + '.json', 3873 type: 'GET', 3874 timeout: 30000, 3875 beforeSend: function() { 3876 self.isLoading = true; 3877 }, 3878 error: function(xhr) { 3879 self.closeModal(); 3880 if (xhr.status === 429) { 3881 window.showAddCartRateLimitModal(5); 3882 return; 3883 } 3884 window.msg('Network error, please try again later', 'error').show(); 3885 } 3886 }).done(function(data) { 3887 if (data.id) { 3888 var productData = [themeHelper.toCamelCase(data)]; 3889 self.product = themeHelper.priceWithDiscount(productData, liquidHelper.hasPriceWithDiscountPlugin)[0]; 3890 self.maxUsableBonus = self.variantsMaxUsableBonus; 3891 if (self.product.variants.length === 1 || liquidHelper.isFirstVariantSelected || self.selectedVariantId) { 3892 self.currentVariant = self.firstValidVariant; 3893 // 妿已ç¶èªé¸ååï¼åååé 䏿»å å ¥è³¼ç©è»é¡¯ç¤ºèªé¸åå 3894 if (self.selectedVariantId) { 3895 self.currentVariant = self.selectedValidVariant; 3896 } 3897 if (self.currentVariant) { 3898 self.setChoose(self.currentVariant); 3899 self.setDefaultOption(); 3900 } 3901 } 3902 if (self.displayProductDiscountsList) { 3903 self.setUpDiscountsTag(data); 3904 } 3905 self.isLoading = false;
3906 if (self.product && self.product.variants) { 3907 self.product.variants.forEach(function(discountedVariant) { 3908 var rawVariant = data.variants.find(function(v) { return v.id === discountedVariant.id; }); 3909 if (rawVariant) { rawVariant.price = discountedVariant.price; } 3910 }); 3911 } 3912 viewItem && viewItem(data, { collectionId: '', collectionName: null, categories: (self.categories && self.categories.length) ? self.categories : (categoryLevels.length ? categoryLevels : (data.id === pageMainProductId ? productCategoryLevels : undefined)) }); 3913 3914 (function() { 3915 // Read login status from cacheable, skip GET /pv_notification if not login. 3916 if (window.store && window.store.get('customer')) { 3917 var cacheableCustomer = window.store.get('customer'); 3918 if (cacheableCustomer.notLogin) { 3919 return; 3920 } 3921 } 3922 $.ajax({ 3923 url: '/pv_notification', 3924 method: 'GET', 3925 dataType: 'json', 3926 data: { 3927 product_id: parseInt(data.id) 3928 }, 3929 success: function(response) { 3930 self.variantNotifications = response.variants; 3931 } 3932 }) 3933 })(); 3934 } else { 3935 window.msg('Network error, please try again later', 'error').show(); 3936 self.closeModal() 3937 } 3938 }) 3939 }, 3940 // product image btn 3941 photoOnChange: function(photoIndex, isVariantReposition) { 3942 var visiblePhotos = (this.currentVariant && this.currentVariant.photos.length) 3943 ? this.currentVariant.photos 3944 : this.product.photos.map(function(p) { return p.photo; }); 3945 var result = themeHelper.buildNavigateItemImagePayload(this._navState, { 3946 product: this.product, 3947 currentVariant: this.currentVariant, 3948 visiblePhotos: visiblePhotos, 3949 slideIndex: photoIndex, 3950 videoOffset: this.firstImageIndex, 3951 }); 3952 this._navState = result.nextState; 3953 if (result.payload && !isVariantReposition) { 3954 window.navigateItemImage(result.payload); 3955 } 3956 this.currentImageIndex = photoIndex; 3957 }, 3958 toggleCurrentOption: function(key, value) { 3959 this.currentOption[key] = 3960 (this.currentOption[key] === value || value === 'null') ? null : value; 3961 var variantIndex = this.getVariantIndex(); 3962 if (variantIndex !== -1) { 3963 this.currentVariant = this.product.variants[variantIndex]; 3964 } else { 3965 this.currentVariant = null; 3966 } 3967 this.setChoose(this.product.variants[variantIndex]); 3968 if (this.currentOption[key] !== null) { 3969 var optionIndex = parseInt(key.replace('option', '')) - 1; 3970 appStoreSelectItemEvent(this.product, this.product.options[optionIndex], this.currentOption[key], this.currentVariant); 3971 } 3972 }, 3973 toggleNotification: function() { 3974 var self = this; 3975 var variantId = this.currentVariant.id; 3976 3977 $.ajax({ 3978 url: '/toggle_pv_notification', 3979 method: 'POST', 3980 dataType: 'json', 3981 data: { 3982 product_variant_id: variantId 3983 }, 3984 success: function(response) { 3985 self.variantNotifications[variantId] = response.notice; 3986 window.msg(response.message, "success").show(); 3987 }, 3988 error: function(xhr) { 3989 var response = xhr.responseJSON; 3990 var msg = response && response.error || "Network error, please try again later"; 3991 window.msg(msg, "error").show(); 3992 } 3993 }) 3994 }, 3995 getOptionImageIndex: function(index) { 3996 this.currentImageIndex = index; 3997 }, 3998 quantityDecrease: function() { 3999 if (this.cartItem) { 4000 themeHelper.EventBus.$emit('quantityDecrease', this.cartItem, false); 4001 this.quantity = this.cartItem.quantity 4002 } else { 4003 window.msg("Please select product specifications", 'warning').show(); 4004 } 4005 }, 4006 quantityIncrease: function() { 4007 if (this.cartItem) { 4008 themeHelper.EventBus.$emit('quantityIncrease', this.cartItem, false); 4009 this.quantity = this.cartItem.quantity 4010 } else { 4011 window.msg("Please select product specifications", 'warning').show(); 4012 } 4013 }, 4014 quantityChange: function(el) { 4015 if (this.cartItem) { 4016 themeHelper.EventBus.$emit('quantityChange', parseInt(el.target.value), this.cartItem, false); 4017 this.quantity = this.cartItem.quantity; 4018 el.target.value = this.cartItem.quantity; 4019 } else { 4020 window.msg("Please select product specifications", 'warning').show(); 4021 } 4022 }, 4023 addProduct: function() { 4024 if (this.addCartText === 'Contact Shop') { 4025 $('#messagebuy-Modal').data('variant', this.currentVariant); 4026 $('#messagebuy-Modal').modal('show'); 4027 $('#messagebuy-Modal').css("background-color", "rgba(0, 0, 0, .6)"); 4028 } else if ( 4029 this.addCartText === 'Notification enabled' ||
4030 this.addCartText === 'Sold out! Notify me when the product is available.' 4031 ) { 4032 this.toggleNotification(); 4033 } else { 4034 if (this.cartItem) { 4035 try { 4036 if (this.isChoose) { 4037 themeHelper.EventBus.$emit('updateStore', 'update', this.cartItem, this.callBack) 4038 } else { 4039 themeHelper.EventBus.$emit('updateStore', 'add', this.cartItem, this.callBack) 4040 } 4041 4042 this.adding = true; 4043 this.closeModal(); 4044 } catch (e) { 4045 window.msg("Unusual product specification; please select again.", 'error').show(); 4046 } 4047 } else { 4048 window.msg("Please select product specifications", 'warning').show(); 4049 } 4050 } 4051 }, 4052 closeModal: function() { 4053 themeHelper.EventBus.$emit('closeProductModal'); 4054 }, 4055 setDefaultOption: function() { 4056 var self = this; 4057 Object.keys(self.currentOption).map(function(optionKey) { 4058 self.currentOption[optionKey] = self.currentVariant[optionKey]; 4059 }); 4060 }, 4061 getVariantIndex: function() { 4062 var self = this; 4063 return self.product.variants.findIndex(function(variant, index) { 4064 var isVariant = true; 4065 Object.keys(self.currentOption).forEach(function(option) { 4066 if (variant[option] !== self.currentOption[option]) { 4067 isVariant = false; 4068 } 4069 }); 4070 return isVariant; 4071 }); 4072 }, 4073 4074 // 篩é¸éè¤åé 4075 getUniqueVariant: function(variants) { 4076 return variants.filter(function(value, index, self) { 4077 return self.indexOf(value) === index; 4078 }); 4079 }, 4080 groupBy(xs, key) { 4081 return xs.reduce(function(rv, x) { 4082 (rv[x[key]] = rv[x[key]] || []).push(x); 4083 return rv; 4084 }, {}); 4085 }, 4086 setUpDiscountsTag(data) { 4087 var self = this; 4088 var languagePrefix = '/' + ((window.shopScriptHelper && window.shopScriptHelper.i18nLocale) || 'zh-TW'); 4089 $.ajax({ 4090 url: languagePrefix + self.productUrl + '/discounts_list', 4091 method: 'GET', 4092 success: function(result) { 4093 if (result.length > 0) { 4094 var discounts_list = self.groupBy(result, 'campaign_type'); 4095 self.discountsList = discounts_list; 4096 } else { 4097 self.discountsList = null; 4098 } 4099 } 4100 }); 4101 }, 4102 getOptions: function(optionKey, optionTypes) { 4103 var self = this; 4104 return optionTypes.map(function(optionType, index) { 4105 var isValid = true; 4106 4107 // é¸åºå å«ç®åtypeçvariant 4108 var matchVariants = self.product.variants.filter(function(variant) { 4109 return variant[optionKey] === optionType; 4110 }); 4111 4112 // 篩é¸å·²å¾é¸type 4113 Object.keys(self.currentOption).forEach(function(currentOptionKey) { 4114 if (currentOptionKey !== optionKey) { 4115 matchVariants = matchVariants.filter(function(variant) { 4116 if (self.currentOption[currentOptionKey]) { 4117 return variant[currentOptionKey] === self.currentOption[currentOptionKey] 4118 } else { 4119 return true; 4120 } 4121 }); 4122 } 4123 }); 4124 if (matchVariants.length === 0) { 4125 isValid = false; 4126 } 4127 if (! self.isEmptyClickable) { 4128 isValid = false; 4129 matchVariants.find(function(item) { 4130 if (item.inventoryQuantity === null || item.inventoryQuantity > 0 || item.inventoryPolicy === 'continue') { 4131 isValid = true; 4132 } 4133 }); 4134 } 4135 return {name: optionType, isValid: isValid} 4136 }); 4137 } 4138 } 4139 }; 4140 }); 4141</script>
4141 4142 4143<!-- cyb_snippet _product_modal_js end --> 4144 4145<!-- cyb_snippet components/product_modal/product_modal end --> 4146 4147<!-- cyb_snippet messagebuy_modal start --> 4148 4149 4150<!-- cyb_snippet messagebuy_modal end --> 4151<!-- cyb_snippet components/rate_limit_modal start --> 4152<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/rate_limit_modal-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 4153 4154<div class="modal fade" id="rate-limit-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false"> 4155 <div class="modal-dialog modal-dialog-centered" role="document"> 4156 <div class="modal-content"> 4157 <div class="modal-body"> 4158 <div class="qk-text--default_dark rate-limit-text"> 4159 <p id="rate-limit-title">High demand right now, please wait</p> 4160 <p class="qk-fs--body qk-fw--500 rate-limit-message"> 4161 <span class="qk-text--error" id="rate-limit-countdown"></span> 4162 <span id="rate-limit-desc"></span> 4163 </p> 4164 <p class="qk-fs--body qk-fw--500 rate-limit-message" id="rate-limit-warn">Leaving this page may increase your wait time.</p> 4165 </div> 4166 <button id="rate-limit-btn" class="btn qk-btn qk-btn--primary" disabled>Re-enter product page</button> 4167 </div> 4168 </div> 4169 </div> 4170</div> 4171
4172<script> 4173 window.showRateLimitModal = function(countdownSec) { 4174 var countdown = countdownSec || 5; 4175 var $modal = $('#rate-limit-modal'); 4176 var $btn = $modal.find('#rate-limit-btn'); 4177 var $countdownEl = $modal.find('#rate-limit-countdown'); 4178 4179 $btn.show(); 4180 $modal.find('#rate-limit-desc').text(language["product_rate_limit_desc"]); 4181 $countdownEl.text(countdown); 4182 $btn.prop('disabled', true); 4183 $modal.modal('show'); 4184 4185 var timer = setInterval(function() { 4186 countdown--; 4187 $countdownEl.text(countdown); 4188 if (countdown <= 0) { 4189 clearInterval(timer); 4190 $btn.prop('disabled', false); 4191 } 4192 }, 1000); 4193 4194 $btn.off('click').on('click', function() { 4195 location.reload(); 4196 }); 4197 } 4198 4199 window.showAddCartRateLimitModal = function(countdownSec) { 4200 var countdown = countdownSec || 5; 4201 var $modal = $('#rate-limit-modal'); 4202 var $countdownEl = $modal.find('#rate-limit-countdown'); 4203 4204 $modal.find('#rate-limit-btn').hide(); 4205 $modal.find('#rate-limit-desc').text(language["addcart_rate_limit_desc"]); 4206 $countdownEl.text(countdown); 4207 $modal.modal('show'); 4208 4209 var timer = setInterval(function() { 4210 countdown--; 4211 $countdownEl.text(countdown); 4212 if (countdown <= 0) { 4213 clearInterval(timer); 4214 $modal.modal('hide'); 4215 } 4216 }, 1000); 4217 } 4218</script>
4218 4219 4220<!-- cyb_snippet components/rate_limit_modal end --> 4221
4222<script> 4223 $(document).ready(function() { 4224 const shouldSkipQuantityCheck = false; 4225 const newAddCartModalApp = new window.themeHelper.LiquidVueHandler({ 4226 componentNames: Object.keys(window.themeHelper.productModalComponents), 4227 mountSelector: '#new-addcart-modal', 4228 autoMount: false, 4229 }); 4230 4231 newAddCartModalApp.createApp({ 4232 el: '#new-addcart-modal', 4233 delimiters: ['${', '}'], 4234 data() { 4235 return { 4236 collectionId: 0, 4237 categories: [], 4238 color: '', // unused 4239 isCollection: true, 4240 productQuantity: 0, 4241 onlyDescription: false, 4242 showProductModal: false, 4243 popProductUrl: '', 4244 loading: false, 4245 }; 4246 }, 4247 mounted: function() { 4248 themeHelper.EventBus.$on('closeProductModal',this.closeProductModal); 4249 themeHelper.EventBus.$on('updateStore', this.addProduct); 4250 themeHelper.EventBus.$on('quantityDecrease', this.quantityDecrease); 4251 themeHelper.EventBus.$on('quantityIncrease', this.quantityIncrease); 4252 themeHelper.EventBus.$on('quantityChange', this.quantityChange); 4253 }, 4254 methods: { 4255 addProduct: function(actionType, productData, checkoutAddToCartCallback){ 4256 var self = this; 4257 var pageViewId = window.CYBERBIZ && window.CYBERBIZ.dis && window.CYBERBIZ.dis.pageViewId; 4258 $.ajax({ 4259 method: 'POST', 4260 url: '/cart/add', 4261 headers: pageViewId ? { 'X-Cyb-Page-View-Id': pageViewId } : {}, 4262 data: { 4263 id: productData.id, 4264 quantity: productData.quantity, 4265 }, 4266 dataType: 'json', 4267 beforeSend: function() { 4268 self.loading = true; 4269 themeHelper.ajaxLoadingMsg('loading'); 4270 $('.shopcart').dropdown('hide') 4271 $('.global-cart-count').hide(); 4272 $('.global-cart-loading').show(); 4273 $('.global-cart-loading').html('<i class="fa fa-spinner fa-pulse" style="vertical-align: middle;"></i>'); 4274 }, 4275 error: function(xhr) { 4276 $('.global-cart-loading').hide(); 4277 $('.global-cart-count').show(); 4278 self.loading = false; 4279 if (xhr.status === 429) { 4280 themeHelper.ajaxLoadingMsg('hide', 0); 4281 self.closeProductModal(); 4282 window.showAddCartRateLimitModal(5); 4283 return; 4284 } 4285 themeHelper.ajaxLoadingMsg('fail', 2000); 4286 } 4287 }).done(function(data, status, request){ 4288 // product modal ç«å³è³¼è²·æé 4289 window.sendAddToCartEvent && sendAddToCartEvent({ 4290 price: productData.price, 4291 quantity: productData.quantity, 4292 id: productData.product.id, 4293 name: productData.product.title, 4294 category: productData.product.productType, 4295 brand: productData.product.vendor, 4296 qc: productData.variant.qc, 4297 variant: { 4298 id: productData.variant.id, 4299 title: productData.variant.title, 4300 sku: productData.variant.sku, 4301 price: productData.variant.price, 4302 qc: productData.variant.qc, 4303 }, 4304 position: "ååå½åºè¦çª", 4305 request, 4306 }) 4307 if (self.isQuickBuy) { 4308 if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) { 4309 window.location = "/" + window.liquidHelper.language.handle + "/cart"; 4310 } else { 4311 window.location = "/cart"; 4312 } 4313 } else { 4314 themeHelper.ajaxLoadingMsg('success'); 4315 pullNavCart(); 4316 $('.shopcart').dropdown('show') 4317 $('.global-cart-loading').hide(); 4318 self.loading = false; 4319 } 4320 if(typeof checkoutAddToCartCallback === 'function'){ 4321 var callbackData = { 4322 id: productData.id, 4323 quantity: productData.quantity, 4324 title: productData.product ? productData.product.title : productData.title || '' 4325 }; 4326 checkoutAddToCartCallback(callbackData) 4327 } 4328 peh.emit('product:add_to_cart', [{ 4329 variantId: productData.id, 4330 quantity: productData.quantity 4331 }], self.collectionId); 4332 }).fail(function(e){ 4333 if (e.status === 429) { 4334 return; 4335 } 4336 let err_msg = e.responseJSON.err_msg; 4337 err_msg && err_msg.length > 0 ? 4338 window.msg(e.responseJSON.err_msg, 'warning').show(): 4339 window.msg("Network error, please try again.", 'warning').show(); 4340 }) 4341 }, 4342 quantityDecrease: function(cartItem, isAdded){ 4343 if (cartItem.quantity > 1) { 4344 cartItem.quantity -= 1; 4345 } else { 4346 window.msg("Quantity must be greater than 0;
4346 please select the amount to purchase.", 'warning').show(); 4347 } 4348 }, 4349 quantityIncrease: function(cartItem, isAdded){ 4350 const limitQuantity = cartItem.variant.inventoryQuantity; 4351 const limitBuy = cartItem.product.limitBuy 4352 if (limitBuy && cartItem.quantity >= limitBuy) { 4353 product_limit_buy = "Limited purchase of this product limitBuy items".replace('limitBuy', limitBuy) 4354 window.msg(product_limit_buy, 'warning').show(); 4355 return; 4356 } else if (cartItem.quantity >= liquidHelper.cartQuantityLimit) { 4357 window.msg("Quantity exceeds shopping cart limit; please remove some items and place the order again.", 'warning').show(); 4358 } else if ( cartItem.quantity < limitQuantity || limitQuantity === null || 4359 cartItem.variant.inventoryPolicy == "continue" || shouldSkipQuantityCheck) { 4360 cartItem.quantity += 1; 4361 } else { 4362 this.showInventoryMessage(limitQuantity); 4363 } 4364 }, 4365 quantityChange: function(quantity, cartItem, isAdded){ 4366 const limitBuy = cartItem.product.limitBuy 4367 var limitQuantity = cartItem.variant.inventoryQuantity; 4368 var inventoryPolicy = cartItem.variant.inventoryPolicy; 4369 if (Number.isInteger(quantity)) { 4370 if (quantity >= 1) { 4371 if (limitBuy && quantity >= limitBuy) { 4372 product_limit_buy = "Limited purchase of this product limitBuy items".replace('limitBuy', limitBuy) 4373 window.msg(product_limit_buy, 'warning').show(); 4374 } else if (quantity > liquidHelper.cartQuantityLimit) { 4375 window.msg("Quantity exceeds shopping cart limit; please remove some items and place the order again.", 'warning').show(); 4376 } else if (quantity <= limitQuantity || limitQuantity === null || inventoryPolicy == "continue" || shouldSkipQuantityCheck) { 4377 cartItem.quantity = quantity; 4378 } else { 4379 cartItem.quantity = limitQuantity; 4380 this.showInventoryMessage(limitQuantity); 4381 } 4382 } else { 4383 window.msg("Quantity must be greater than 0; please select the amount to purchase.", 'warning').show(); 4384 } 4385 } else { 4386 window.msg("Quantity input error", 'warning').show(); 4387 } 4388 }, 4389 popModal: function(productUrl, collectionId, color, isCollection, isShowDescription, isQuickBuy, variantId, checkoutAddToCartCallback, categories){ 4390 this.showProductModal = true; 4391 this.collectionId = collectionId; 4392 this.categories = categories || []; 4393 this.popProductUrl = productUrl; 4394 this.color = color || ''; // unused 4395 this.isCollection = isCollection || false; 4396 this.isShowDescription = isShowDescription != false; 4397 this.isQuickBuy = isQuickBuy || false; 4398 this.selectedVariantId = parseInt(variantId) || undefined; 4399 this.checkoutAddToCartCallback = checkoutAddToCartCallback; 4400 document.body.style.overflow = "hidden"; 4401 }, 4402 closeProductModal: function() { 4403 this.showProductModal = false; 4404 document.body.style.overflow = ""; 4405 }, 4406 showInventoryMessage: function(inventoryQuantity) { 4407 const stockMessage = "Quantity exceeds inventory stock. Remaining count".replace('count', inventoryQuantity || 0); 4408 window.msg(stockMessage, 'warning').show(); 4409 }, 4410 } 4411 }); 4412 4413 for (const componentName in window.themeHelper.productModalComponents) { 4414 newAddCartModalApp.component( 4415 componentName, 4416 window.themeHelper.productModalComponents[componentName], 4417 ); 4418 } 4419 4420 window.new_addcart_modal = newAddCartModalApp.mount(); 4421 }); 4422</script>
4422 4423 4424<!-- cyb_snippet new_addcart_modal end --> 4425
4425<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/new_cart-4a1e7dfec7e41476.js' type='text/javascript'></script>
4425 4426 4427</div> 4428 4429 </div> 4430 4431 <!-- Footer --> 4432 4433 4434 4435 4436 4437 4438 4439<style> 4440 4441 4442 @media(min-width: 991px) { 4443 .display_x .left-content > div { 4444 max-width: calc(100% / 3); 4445 } 4446 } 4447</style> 4448 4449<div id="index-recommendation"></div> 4450 4451<footer id="footer" class="qk-fs--body qk-bg--footer_bg"> 4452 4453 4454 <div class="qk-container display_y"> 4455 <div class="footer_content qk-mg--0 qk-display--flex qk-justify--between"> 4456 <div class="left-content qk-flex--1"> 4457 4458 4459 <div class="item contact qk-text--left"> 4460 4461 <p class="footer_title qk-fs--title qk-text--footer_text">Informations</p> 4462 4463 <ul> 4464 4465 <li class="phone qk-bd_r--default qk-bd--footer_text qk-display--il_bk"> 4466 <span class="qk-text--footer_text">Customer Service Hotline: 09-87654321</span> 4467 </li> 4468 4469 4470 <li class="fax qk-bd_r--default qk-bd--footer_text qk-display--il_bk"> 4471 <span class="qk-text--footer_text">Customer Service Fax: 02-22345678</span> 4472 </li> 4473 4474 4475 <li class="time qk-bd_r--default qk-bd--footer_text qk-display--il_bk"> 4476 <span class="qk-text--footer_text">Customer Service: 10:30am - 6:30pm</span> 4477 </li> 4478 4479 4480 <br> 4481 <li class="mail qk-bd_r--default qk-bd--footer_text qk-cursor--pointer qk-display--il_bk"> 4482 <a class="qk-text--footer_text" href="mailto:[email protected]">Email: [email protected]</a> 4483 </li> 4484 4485 4486 <li class="address qk-bd_r--default qk-bd--footer_text qk-display--il_bk"> 4487 <span class="qk-text--footer_text">Address: Waterloo, IN 46793, United States</span> 4488 </li> 4489 4490 4491 </ul> 4492 </div> 4493 4494 4495 4496 <div class="link-list-container"> 4497 4498 <p class="footer_title qk-fs--title qk-text--footer_text">About Us</p> 4499 4500 <div class="item horizontal qk-text--left"> 4501 <ul class="qk-display--flex qk-flex--wrap"> 4502 4503 4504 <li class="qk-display--il_bk"> 4505 4506 <a 4507 class="qk-text--footer_text" 4508 href="/search" 4509 rel="noopener noreferrer" 4510 target="_blank">æ¥è©¢</a> 4511 4512 </li> 4513 4514 <li class="qk-display--il_bk"> 4515 4516 <a 4517 class="qk-text--footer_text" 4518 href="/pages/about-us" 4519 rel="noopener noreferrer" 4520 target="_blank">éæ¼æå</a> 4521 4522 </li> 4523 4524 <li class="qk-display--il_bk"> 4525 4526 <a 4527 class="qk-text--footer_text" 4528 href="/account/index" 4529 rel="noopener noreferrer" 4530 target="_blank">æç帳æ¶</a> 4531 4532 </li> 4533 4534 <li class="qk-display--il_bk"> 4535 4536 <a 4537 class="qk-text--footer_text" 4538 href="/pages/privacy" 4539 rel="noopener noreferrer" 4540 target="_blank">é±ç§æ¿ç</a> 4541 4542 </li> 4543 4544 <li class="qk-display--il_bk"> 4545 4546 <a 4547 class="qk-text--footer_text" 4548 href="/pages/terms" 4549 rel="noopener noreferrer" 4550 target="_blank">æåæ¢æ¬¾</a> 4551 4552 </li> 4553 4554 4555 </ul> 4556 </div> 4557 </div> 4558 4559 4560 4561 <div id="1680064031226_2" class="rich-text-editor-container qk-text--footer_text item qk-flex--1"> 4562 4563 <p class="footer_title qk-fs--title rich-text-editor-title"></p> 4564 4565 <div class="rich-text-content-container"> 4566 4567 </div> 4568 </div> 4569 4570 4571 </div> 4572 <div class="right-content qk-display--flex qk-flex--column"> 4573 4574 <div class="fb_fanpage qk-hidden--mobile"> 4575 <div class="fb_fans_page_area"> 4576 <div 4577 class="fb-page" 4578 data-href="https://www.facebook.com/168548957238384" 4579 data-width="500" 4580 data-adapt-container-width="true" 4581 data-hide-cover="false" 4582 data-show-facepile="true"> 4583 <blockquote cite="https://www.facebook.com/168548957238384" class="fb-xfbml-parse-ignore"> 4584 <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/168548957238384"></a> 4585 </blockquote> 4586 </div> 4587 </div> 4588 </div> 4589 4590 <div class="media qk-display--il"> 4591 <div class="item social_media qk-h--auto qk-float--l"> 4592 <ul> 4593 4594 <li class="qk-display--il_bk"> 4595 <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/%E5%85%86%E9%B4%BB-%E9%BB%83%E9%87%91%E8%9C%86%E8%9B%8B%E7%99%BD-168548957238384"> 4596 <svg 4597 class="facebook-svg" 4598 xmlns="http://www.w3.org/2000/svg" 4599 width="40" 4600 height="40"
4601 viewBox="0 0 40 40"> 4602 <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" /> 4603 </svg> 4604 </a> 4605 </li> 4606 4607 4608 4609 <li class="qk-display--il_bk"> 4610 <a target="_blank" rel="noopener noreferrer" href="https://liff.line.me/2000447957-RL1l5N7D"> 4611 <svg 4612 class="line-svg" 4613 xmlns="http://www.w3.org/2000/svg" 4614 width="40" 4615 height="40" 4616 viewBox="0 0 40 40"> 4617 <rect class="qk-svg--footer_text" width="40" height="40" rx="20" /> 4618 <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" /> 4619 <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" /> 4620 <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" /> 4621 <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" /> 4622 <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" /> 4623 </svg> 4624 </a> 4625 </li> 4626 4627 4628 </ul> 4629 </div> 4630 </div> 4631 </div> 4632 </div> 4633 </div> 4634 4635 <div class="copyright qk-text--footer_text qk-bd--footer_text qk-text--left qk-bd_t--default"> 4636 <div class="qk-container container qk-fw--500">
4637 <span>Copyright ©</span> 4638 <a class="qk-text--link" href="/"> 4639 <span>å é´»çæè¡ä»½æéå ¬å¸</span> 4640 </a> 4641 <span>All Rights Reserved.</span> 4642 <span>Designed by 4643 </span> 4644 <a 4645 class="qk-text--link" 4646 href="https://www.cyberbiz.io?utm_source=poweredbycyberbiz" 4647 target="_blank" 4648 rel="noopener noreferrer" 4649 title="Designed by CYBERBIZ">CYBERBIZ</a>. 4650 </div> 4651 </div> 4652 4653</footer>
4654<script> 4655 $(document).ready(function() { 4656 let isDynamicLoading = false; 4657 4658 let menusData = { 4659 4660 4661 4662 4663 "footer": { 4664 4665 "type": "items", 4666 "data": [ 4667 4668 4669 4670 { 4671 "title": "æ¥è©¢", 4672 "url": "/search", 4673 "item_type": "search" 4674 }, 4675 4676 { 4677 "title": "éæ¼æå", 4678 "url": "/pages/about-us", 4679 "item_type": "page" 4680 }, 4681 4682 { 4683 "title": "æç帳æ¶", 4684 "url": "/account/index", 4685 "item_type": "http" 4686 }, 4687 4688 { 4689 "title": "é±ç§æ¿ç", 4690 "url": "/pages/privacy", 4691 "item_type": "privacy" 4692 }, 4693 4694 { 4695 "title": "æåæ¢æ¬¾", 4696 "url": "/pages/terms", 4697 "item_type": "terms" 4698 } 4699 4700 4701 ] 4702 4703 }, 4704 4705 4706 4707 4708 }; 4709 4710 if (isDynamicLoading) { 4711 window.DynamicLoading.setupComponent({ 4712 sectionId: '#footer', 4713 callbackData:{ 4714 section: {"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/%E5%85%86%E9%B4%BB-%E9%BB%83%E9%87%91%E8%9C%86%E8%9B%8B%E7%99%BD-168548957238384","display_instagram":false,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://liff.line.me/2000447957-RL1l5N7D","display_youtube":false,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_y","display_facebook_fan_block":true},"block_order":["default_contact_info","default_link_list","1680064031226_2"],"blocks":{"default_link_list":{"type":"link_list_setting","custom_name":"é¸å®","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"About Us","footer_link":"footer"}},"default_contact_info":{"type":"contact_info_setting","custom_name":"è¯çµ¡è³è¨","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"dict_contact_info_block_title":"Informations","display_phone":"true","dict_phone_number":"09-87654321","display_fax_number":true,"dict_shop_fax_number":"02-22345678","display_shop_email":"true","dict_shop_email":"[email protected]","display_shop_address":"true","dict_shop_address":"Waterloo, IN 46793, United States","display_office_time":"true","dict_shop_office_time":"10:30am - 6:30pm"}},"default_link_list_2":{"type":"link_list_setting","custom_name":"é¸å®","visible":true,"settings":{"dict_link_list_block_title":"Menu","footer_link":"main-menu"}},"1680064031226_2":{"type":"rich_text_editor_setting","custom_name":"èªè¨æå","visible":true,"settings":{"dict_rich_text_title":"","dict_rich_text_content":""}}},"custom_name":"é è ³"}, 4715 shop: { 4716 name: 'å é´»çæè¡ä»½æéå ¬å¸', 4717 cyberbiz_link: 'https://www.cyberbiz.io?utm_source=poweredbycyberbiz', 4718 facebook_fan_page: 'https://www.facebook.com/168548957238384', 4719 }, 4720 menus: menusData, 4721 is_display_facebook_fan_block: true 4722 }, 4723 entryName:'renderFooterSection', 4724 source:'//cdn-general.cybassets.com/frontend/shop/footerSection-4a1e7dfec7e41476.js', 4725 }); 4726 } 4727 }); 4728</script>
4728 4729 4730<!-- cyb_snippet _tracking_code start --> 4731
4731<script> 4732 window.fbAsyncInit = function() { 4733 FB.init({ 4734 appId : '1879319405715249', 4735 xfbml : true, 4736 version : 'v24.0', 4737 }); 4738 }; 4739 (function(d, s, id){ 4740 var js, fjs = d.getElementsByTagName(s)[0]; 4741 if (d.getElementById(id)) {return;} 4742 js = d.createElement(s); 4743 js.id = id; 4744 js.src = 'https://connect.facebook.net/zh_TW/sdk.js'; 4745 fjs.parentNode.insertBefore(js, fjs); 4746 }(document, 'script', 'facebook-jssdk')); 4747 </script>
4747 4748 4749
4750<script> 4751 // for scupio 4752 if (document.querySelector("meta[name=\"scupio_mid\"]")) { 4753 mid = document.querySelector("meta[name=\"scupio_mid\"]").content; 4754 } else { 4755 mid = ""; 4756 } 4757 if (!window.is_scupio_sent && mid) { 4758 window._bwtm = window._bwtm || [] 4759 window._bwtm.push({ 4760 "mid": mid, 4761 "uid": "" 4762 }); 4763 } 4764</script>
4764 4765 4766<!-- cyb_snippet _tracking_code end --> 4767
4768<script> 4769 $(document).ready(function(){ 4770 if(window.location.pathname != '' && window.location.pathname != '/' ){ 4771 document.getElementById('index-recommendation').style.display = 'none' 4772 } 4773 }); 4774</script>
4774 4775 4776 4777 4778 <!-- Fast-Events --> 4779 <!-- cyb_snippet fast_events start --> 4780 4781
4782<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/fast_events-4a1e7dfec7e41476.js' type='text/javascript'></script>
4782 4783<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/fast_events-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 4784 4785<!-- cyb_snippet fast_events end --> 4786 4787 <div class="bottom-right qk-pos--fixed"> 4788 <!-- gototop --> 4789 <div id="gototop" class="qk-display--none qk-text--center"> 4790 <a href="javascript:void(0)" class="qk-circle qk-circle--lg qk-pos--relative qk-text--center"> 4791 <i class="fas fa-chevron-up"></i> 4792 </a> 4793 </div> 4794 4795 <!-- popup --> 4796 4797 4798 4799 4800<div id="popup-wrapper" class="qk-display--none"></div> 4801 4802<template id="popup-template"> 4803 <div 4804 :class="status" 4805 v-if="hasContent" 4806 id="popup-section" 4807 > 4808 <transition name="backdrop"> 4809 <div 4810 v-if="shouldShowPopup" 4811 @click.capture="minifyPopup" 4812 id="popup-backdrop" 4813 class="qk-w--100vw qk-h--100vh qk-pos--fixed qk-t--0 qk-l--0 qk-tst" 4814 > 4815 </div> 4816 </transition> 4817 <transition name="onShow"> 4818 <div 4819 @click.self="showPopup" 4820 @transitionstart="updateGameStatus('start', this)" 4821 @transitionend="updateGameStatus('end', this)" 4822 class="popup-content qk-display--flex qk-align--center qk-tst qk-tst_dur--30 qk-tst_timing--ease_o" 4823 > 4824 <div 4825 v-for="block in blocks" 4826 :key="block.id" 4827 :class="[block.type, minifiedBlockClasses, block.settings.icon_size]" 4828 class="block qk-tst qk-tst_dur--30 qk-tst_timing--ease_o qk-of--auto" 4829 > 4830 <div v-if="block.type === 'image'" class="qk-pos--rel"> 4831 <img 4832 v-show="!shouldShowPopup" 4833 :src="block.settings.dict_icon_image_url" 4834 class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o" 4835 alt="popup button" 4836 > 4837 <a 4838 v-show="shouldShowPopup" 4839 :href="block.settings.dict_link" 4840 :target="block.settings.target" 4841 :rel="block.settings.rel" 4842 class="qk-display--flex qk-align--center" 4843 @click="linkClicked" 4844 > 4845 <picture> 4846 <source :srcset="block.settings.dict_mobile_image_url" media="(max-width: 576px)"> 4847 <source :srcset="block.settings.dict_tablet_image_url" media="(max-width: 992px)"> 4848 <img 4849 :src="block.settings.dict_image_url" 4850 class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o" 4851 alt="popup picture" 4852 /> 4853 </picture> 4854 </a> 4855 </div> 4856 <div v-if="block.type === 'video'"> 4857 <iframe 4858 :src="block.settings.dict_video_link" 4859 frameborder="0" 4860 class="qk-center--y qk-w--100 qk-h--100" 4861 ></iframe> 4862 </div> 4863 <div v-if="block.type === 'game'"> 4864 <div v-show="gameStatus === 'show'" :class="{ 'show-game': gameStatus === 'show' }"> 4865 <iframe 4866 class="cb-game-iframe iframe-loading" 4867 :src="getGameIframeSrc(block)" 4868 style="border: none;" 4869 > 4870 Loading 4871 </iframe> 4872 </div> 4873 <div v-show="gameStatus === 'minified'"> 4874 <img 4875 src="//cdn-general.cybassets.com/game_assets/game_minified_new.png" 4876 class="qk-h--100 qk-w--100" 4877 alt="game minified icon" 4878 /> 4879 </div> 4880 </div> 4881 <div 4882 v-if="block.type === 'carousel'" 4883 :id="`popup-carousel-${block.id}`" 4884 > 4885 </div> 4886 </div> 4887 </div> 4888 </transition> 4889 <transition name="backdrop"> 4890 <div 4891 v-if="shouldShowPopup" 4892 @click.capture="minifyPopup" 4893 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" 4894 > 4895 </div> 4896 </transition> 4897 </div> 4898</template> 4899
4900<script> 4901 $(document).ready(function() { 4902 const CDN_HOST = '//cdn-general.cybassets.com'; 4903 const section = {"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_nolli/default_img/popup_image.png","icon_size":"small"},"custom_name":"åç"},"1688357362999_0":{"type":"image","custom_name":"åç","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f","icon_size":"large","dict_link":"https://liff.line.me/2000447957-RL1l5N7D","dict_icon_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE3OTA3L2F0dGFjaGVkX3Bob3Rvcy8xNjk1ODg0NTM1X0xJTkVA5Yqg5YWl5aW95Y-LLnBuZy5wbmciXV0.png?sha=d67e259af8de794f"}}},"block_order":["1688357362999_0"],"settings":{},"custom_name":"å½çªå»£å"}; 4904 var popupSection = Vue.createApp({ 4905 template: '#popup-template', 4906 delimiters: ['${', '}'], 4907 data() { 4908 const isOmniauthPage = ['omniauth_terms_agreement', 'omniauth_mobile/'] 4909 .some(path => location.pathname.includes(path)); 4910 return { 4911 status: 'minified', 4912 gameStatus: 'show', 4913 blocks: isOmniauthPage 4914 ? [] 4915 : section.block_order && section.block_order.reduce( 4916 function(acc, blockId) { 4917 const block = section.blocks[blockId]; 4918 if (block && block.visible) { 4919 acc.push({ 4920 ...block, 4921 id: blockId, 4922 }); 4923 } 4924 return acc; 4925 }, 4926 [], 4927 ), 4928 hasAddedGameScript: false, 4929 }; 4930 }, 4931 computed: { 4932 hasContent: function() { 4933 return !!(this.blocks && this.blocks.length > 0); 4934 }, 4935 minifiedBlockClasses: function() { 4936 return this.status === 'minified' ? 'qk-pointer--none qk-unselectable' : ''; 4937 }, 4938 shouldShowPopup: function() { 4939 return this.status === 'show'; 4940 } 4941 }, 4942 methods: { 4943 unhidePopup: function(storedStatus) { 4944 this.status = storedStatus; 4945 $('#popup-wrapper').removeClass('qk-display--none'); 4946 }, 4947 showPopup: function() { 4948 if (this.status !== 'show') { 4949 this.status = 'show'; 4950 this.saveStatus(this.status); 4951 } 4952 }, 4953 minifyPopup: function() { 4954 this.status = 'minified'; 4955 this.saveStatus('minified'); 4956 }, 4957 loadStatus: function() { 4958 return JSON.parse(localStorage.getItem('popupStatus')); 4959 }, 4960 saveStatus: function(status) { 4961 if (status) { 4962 localStorage.setItem('popupStatus', JSON.stringify({ 4963 status: status, 4964 setTime: new Date().getTime(), 4965 })); 4966 } 4967 }, 4968 linkClicked: function() { 4969 this.saveStatus('minified'); 4970 }, 4971 parseVideoLink: function(settings) { 4972 settings.dict_video_link = themeHelper.parseYtUrl(settings.dict_video_link); 4973 }, 4974 setupImageSrc: function (settings) { 4975 settings.dict_image_url = this.addCdnHost(settings.dict_image_url); 4976 if (settings.dict_tablet_image_url) { 4977 settings.dict_tablet_image_url = this.addCdnHost(settings.dict_tablet_image_url); 4978 } 4979 if (settings.dict_mobile_image_url) { 4980 settings.dict_mobile_image_url = this.addCdnHost(settings.dict_mobile_image_url); 4981 } 4982 settings.dict_icon_image_url = this.addCdnHost(settings.dict_icon_image_url) || settings.dict_image_url; 4983 }, 4984 addCdnHost: function(url) { 4985 if (!url) { 4986 return url; // only add cdn host if url is not empty 4987 } 4988 4989 try { 4990 new URL(url); 4991 return url; // already a valid url, cdn host not needed 4992 } catch { 4993 return `${CDN_HOST}${url}`; 4994 } 4995 }, 4996 initStatus: function() { 4997 let newStatus = 'show'; 4998 const popupStatus = this.loadStatus(); 4999 const currentTime = new Date().getTime(); 5000 const oneDay = 1000 * 60 * 60 * 24; 5001 const hasStoredStatus = popupStatus && currentTime - popupStatus.setTime < oneDay; 5002 const redirectedByGameLogin = !this.hasRedirectUrl() && this.redirectedByGameLogin(); 5003 const isLoggingIn = this.isLoggingIn(); 5004 const isCartPage = window.location.pathname.split('/').includes('carts'); 5005 5006 if (hasStoredStatus && !redirectedByGameLogin) { 5007 newStatus = popupStatus.status; 5008 } 5009 5010 if (isLoggingIn) { 5011 newStatus = 'minified'; 5012 } else { 5013 localStorage.removeItem('redirectedByPopup'); 5014 } 5015 5016 setTimeout(() => { 5017 this.status = newStatus; 5018 this.gameStatus = newStatus; 5019 this.saveStatus(newStatus); 5020 if(!isCartPage){ 5021 this.unhidePopup(newStatus); 5022 } 5023 }, 1000); 5024 }, 5025 initBlocks: function() { 5026 if (this.hasContent) { 5027 this.blocks.forEach(block => { 5028 switch(block.type) { 5029 case 'image': 5030 this.setupImageSrc(block.settings); 5031 5032 const isOpenInNewTab = block.settings.link_open_in_new_tab; 5033 if (isOpenInNewTab) { 5034 block.settings.target = '_blank'; 5035 block.settings.rel = 'noopener noreferrer'; 5036 } 5037 5038 break; 5039 case 'video': 5040 this.parseVideoLink(block.settings); 5041 break; 5042 } 5043 }) 5044 } 5045 }, 5046 getGameIframeSrc: function (block) { 5047 return `/games/${block.settings.dict_game_handle}` 5048 }, 5049 updateGameStatus: function(type, element) { 5050 if ( 5051 (type === 'start' && this.status === 'minified') 5052 || (type === 'end' && this.status === 'show') 5053 ) { 5054 this.gameStatus = this.status; 5055 } 5056 }, 5057 setupGameRedirects: function() { 5058 window.addEventListener('pagehide', () => { 5059 const isGameActive = document.body.getElementsByClassName('show-game').length; 5060 if (isGameActive) { 5061 localStorage.setItem('redirectedByPopup', 'true'); 5062 this.saveStatus('minified'); 5063 } 5064 }); 5065 }, 5066 hasRedirectUrl: function() { 5067 return (new URLSearchParams(location.search)).has('redirect_url'); 5068 }, 5069 redirectedByGameLogin: function() { 5070 return localStorage.getItem('redirectedByPopup'); 5071 }, 5072 isLoggingIn: function() { 5073 const loginRelatedPathnames = [ 5074 'account/signup', 5075 'account/login', 5076 'account/customer/password/new', 5077 'pages/terms' 5078 ]; 5079 return loginRelatedPathnames.some(path => location.pathname.includes(path)); 5080 } 5081 }, 5082 created: function() { 5083 this.initStatus(); 5084 this.initBlocks(); 5085 this.setupGameRedirects(); 5086 }, 5087 mounted: function() { 5088 this.blocks.forEach((block) => { 5089 if (block.type === 'carousel' && block.settings.dict_c
5089arousel) { 5090 renderCarousel(`#popup-carousel-${block.id}`, { 5091 title: block.settings.dict_carousel, 5092 CDN_HOST, 5093 onLinkClick: () => this.linkClicked(), 5094 }); 5095 } 5096 }); 5097 }, 5098 }); 5099 popupSection.mount('#popup-wrapper'); 5100 }); 5101</script>
5101 5102 5103 5104 5105 </div> 5106 5107 <!-- ajaxloading --> 5108 <div id="ajaxloading" class="qk-display--none qk-h--100vh qk-w--100vw qk-l--0 qk-t--0 qk-pos--fixed"> 5109 <div class="ajaxbody qk-pos--abs qk-l--50 qk-t--50 qk-text--center"> 5110 <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"> 5111 <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"/> 5112 <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 "/> 5113 <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"/> 5114 <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"/> 5115 <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"/> 5116 <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"/> 5117 </svg> 5118 <div class="success_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">Added to Cart</div> 5119 <div class="success_update_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">Shopping Cart Updated</div> 5120 <div class="fail_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">Network error, please try again!</div> 5121 </div> 5122 </div> 5123
5123<script src="//cdn-general.cybassets.com/assets/referral-code-trace-5fcbbe026a61c36b5f09a1615a1c168688205205d9d3e7ee854181a66b64a6ed.js"></script>
5123<script> $(function () { 5124 function getCookie(e){for(var t=e+"=",n=decodeURIComponent(document.cookie),o=n.split(";"),i=0;i<o.length;i++){for(var r=o[i];" "==r.charAt(0);)r=r.substring(1);if(0==r.indexOf(t))return r.substring(t.length,r.length)}return""} 5125 var html = '<a href="/admin" style="position:fixed;top:10px;right:10px;z-index:3000;background-color:rgba(0,0,0,0.6);border-radius:3px;color:#eee;padding:10px;font-size:0.85em;line-height:1.3;"><h5 style="margin:0 0 5px 0;color:#66DFFF;font-size:15px;">Back to admin panel</h5>(Only managers can see this message)</a><button id="DontEnterAdmin" class="close" style="right:10px;top:8px;padding:10px 10px 20px 20px;position:fixed;color:#fff;font-size:20px;line-height:12px;z-index:4000;">Ã</button>' 5126 var adminFromCookie = parseInt(getCookie('cyberbiz_admin')) 5127 if (adminFromCookie === 1) { 5128 $(document.body).append($(html)) 5129 $('button#DontEnterAdmin').on('click', function(e) { 5130 e.preventDefault(); 5131 $('a[href="/admin"]').remove() 5132 $('button#DontEnterAdmin').remove() 5133 }) 5134 } else if (adminFromCookie !== 0) { 5135 $.ajax({ 5136 method: 'GET', 5137 url: '/check_admin', 5138 dataType: 'json' 5139 }).done(function(data) { 5140 if (!!data.admin) { 5141 $(document.body).append($(html)) 5142 } 5143 }) 5144 } 5145 }) 5146</script>
5146</body> 5147 5148
5148<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/sub_vendor-4a1e7dfec7e41476.js' type='text/javascript'></script>
5148 5149
5149<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme_helper-4a1e7dfec7e41476.js' type='text/javascript'></script>
5149 5150 5151 <!-- theme assets --> 5152
5152<script src='//cdn-general.cybassets.com/s/files/17907/theme/98525/assets/js/1692861443_a3b80cfa_main.js?1692861443' type='text/javascript'></script>
5152 5153
5153<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme-4a1e7dfec7e41476.js' type='text/javascript'></script>
5153 5154 5155 <!-- for cache --> 5156
5156<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/cacheable-4a1e7dfec7e41476.js' type='text/javascript'></script>
5156 5157</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.