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-WDZNN7G
vendor: 3 bytes, line 12
12');
12</script>
12 13 14
14<script>
vendor: 375 bytes, lines 14-18
14(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 15 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 16 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 17 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 18 })(window,document,'script','dataLayer','
18GTM-W4482X4
vendor: 3 bytes, line 18
18');
18</script>
18 19 20
20<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 21 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 22 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 23 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 24 })(window,document,'script','dataLayer','AW-18038378516');</script>
24 25
25<script>var google_tag_manager_id = 'GTM-WDZNN7G';</script>
25 26<!-- End Google Tag Manager --> 27 <!-- CYBERBIZ Google Tag Manager --> 28
28<script>
vendor: 345 bytes, lines 28-32
28(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 29 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 30 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 31 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 32 })(window,document,'script','cyb','
32GTM-TXD9LVJ
vendor: 3 bytes, line 32
32');
32</script>
32 33 <!-- End CYBERBIZ Google Tag Manager --> 34 35
35<script> 36 function getUserFromCookie(){ 37 if(localStorage.customer && localStorage.customer != '{"notLogin":true}'){ 38 return JSON.parse(localStorage.customer).id; 39 }else{ 40 return ""; 41 } 42 } 43 cyb = [{ 44 'shop': "19123-åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®", 45 'shop_plan': "enterprise", 46 'userId': getUserFromCookie() 47 }]; 48 </script>
48 49 50 <!-- CYBERBIZ Google Tag Manager --> 51
51<script>
vendor: 345 bytes, lines 51-55
51(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 52 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 53 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 54 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 55 })(window,document,'script','cyb','
55GTM-P7528MQ
vendor: 3 bytes, line 55
55');
55</script>
55 56 <!-- End CYBERBIZ Google Tag Manager --> 57 58 <meta charset="utf-8"> 59<meta http-equiv="X-UA-Compatible" content="IE=edge"> 60<meta name="viewport" content="width=device-width, initial-scale=1"> 61<link rel="icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzI5MTUzX-e2suermUxPR08tNDhweF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?convert=false&sha=9373337cfc63f02e"> 62<link rel="apple-touch-icon" href="https://cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzI5MTUzX-e2suermUxPR08tNDhweF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?convert=false&sha=9373337cfc63f02e"> 63 64<meta property="og:site_name" content="åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®" /> 65 66<!-- og tag --> 67 68 69<!-- og image --> 70 71 72 <meta property="og:image" content="https://cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzI5MTUzX-e2suermUxPR08tNDhweF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?sha=9373337cfc63f02e" /> 73 74 75 76<title> 77 78 All Items åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦® 79 80</title> 81 82 83
84<script src='//cdn-general.cybassets.com/frontend/shop/useSettingsData-4a1e7dfec7e41476.js' type='text/javascript'></script>
84 85 86 87 88
88<script> 89 window.setSettingsData({"draggable_sections":{"404":[],"index":["1784872606193_0","1761013335454_0","1762138750168_8","1761887142104_5","1761888635800_8","1762132608049_5","1761018575429_4"],"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/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b","navbar_image_logo_tablet_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b","navbar_image_logo_mobile_url":"","main_nav":"æ¹","slider_primary_linklist":"æ¹","slider_primary_linklist_set_open":false,"nav_show_three_dimension":true,"search_enabled":true,"display_only_index":false,"dict_header_banner_image_url":"/theme_src/i18n_shesay/default_img/header_banner_image.png","dict_header_banner_image_tablet_url":"","dict_header_banner_image_mobile_url":"","dict_header_banner_link":"","display_count_down":false,"navbar_display_style":"rowCenterNav","menu_display_style":"three_dimension_menu","header_banner_start":"","header_banner_end":"","timer_text_color":"#c39d6f","timer_bg_color":"#2b2b6e","logo_height":"","link_menu_enabled":false,"link_menu":"undefined","display_banner_type":"imageBanner","header_banner_simple_text_size":"25","header_banner_simple_text_color":"#ffffff","header_banner_simple_bg":"#000000","mobile_logo_position":"center","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/","display_instagram":true,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://line.me/zh-hant/","display_youtube":true,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_x","display_facebook_fan_block":true},"block_order":["default_contact_info","default_link_list","default_link_list_2"],"blocks":{"default_link_list":{"type":"link_list_setting","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"About Us","footer_link":"footer"},"custom_name":"é¸å®"},"default_contact_info":{"type":"contact_info_setting","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"dict_contact_info_block_title":"Contact Info","display_phone":true,"dict_phone_number":"0912345678","display_fax_number":false,"dict_shop_fax_number":"0222345678","display_shop_email":true,"dict_shop_email":"[email protected]","display_shop_address":false,"dict_shop_address":"Shop Address","display_office_time":true,"dict_shop_office_time":"10:00-17:00"},"custom_name":"è¯çµ¡è³è¨"},"default_link_list_2":{"type":"link_list_setting","visible":true,"settings":{"dict_link_list_block_title":"Help","footer_link":"main-menu"},"custom_name":"é¸å®"}},"custom_name":"é è ³"},"_index_product_banner":{"type":"_index_product_banner","visible":false,"settings":{"dict_link":"","dict_image_url":"/theme_src/i18n_shesay/default_img/index_product_banner.png","dict_tablet_image_url":"","dict_mobile_image_url":"","cta_btn_display_style":"topPosition","cta_btn_text":"äºè§£æ´å¤","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"24","mobile_margin_x":"0","mobile_margin_bottom":"24"},"custom_name":"æ©«å¹ å»£å"},"_index_product_banner_2":{"type":"_index_product_banner","visible":false,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_product_banner_2.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","display_cta_btn":true,"cta_btn_display_style":"bottomPosition","cta_btn_text":"Shop Now","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"80","margin_bottom":"48","mobile_margin_x":"16","mobile_margin_bottom":"24"},"custom_name":"æ©«å¹ å»£å"},"_index_4_blocks":{"type":"_index_4_blocks","visible":false,"settings":{"margin_x":"24","margin_bottom":"48","mobile_margin_x":"16","mobile_margin_bottom":"24","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10"},"blocks":{"display_index_4_block_1":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_1.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","dict_image_description":""},"custom_name":"åç"},"display_index_4_block_1_2":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_1_2.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","dict_image_description":""},"custom_name":"åç"},"display_index_4_block_1_3":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_1_3.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","dict_image_description":""},"custom_name":"åç"}},"block_order":["display_index_4_block_1","display_index_4_block_1_2","display_index_4_block_1_3"],"custom_name":"èªè¨æçè¨è¨"},"_index_4_blocks_2":{"type":"_index_4_blocks","visible":false,"blocks":{"display_index_4_block_2":{"type":"video","visible":true,"settings":{"dict_video_link":"https://www.youtube.com/watch?v=Jy6Kxf_hQi8","block_propotion":"100"},"custom_name":"å½±ç"},"1761024105592_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxODgyNTEzXzE3Mzc0NDU5OTJfMTAwZy0yX-S_ri5qcGcuanBlZyJdXQ.jpeg?sha=bc45b86c41bd5ed6","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzM3NDQ1OTkyXzEwMGctMi5qcGcuanBlZyJdXQ.jpeg?sha=0a02c31d19561854","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzM3NDQ1OTkyXzEwMGctMi5qcGcuanBlZyJdXQ.jpeg?sha=0a02c31d19561854","dict_image_description":"\u003cp\u003e\u003c/p\u003e\n","dict_link":"/collections/nougat200g56","dict_image_title":"","block_propotion":"40"}},"1761024180239_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxODgyNTAzXzE3Mzc0NDU5NjlfMTAwZy0xX-S_ri5qcGcuanBlZyJdXQ.jpeg?sha=99623f9722796ffc","dict_tablet_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxODgyNTAzXzE3Mzc0NDU5NjlfMTAwZy0xX-S_ri5qcGcuanBlZyJdXQ.jpeg?sha=99623f9722796ffc","dict_mobile_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxODgyNTAzXzE3Mzc0NDU5NjlfMTAwZy0xX-S_ri5qcGcuanBlZyJdXQ.jpeg?sha=99623f9722796ffc","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003c/p\u003e\n","dict_link":"/collections/nougat100g56","block_propotion":"40"}},"1761886678026_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":"","block_propotion":"10"}},"1761886679751_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":"","block_propotion":"10"}}},"block_order":["1761886678026_0","1761024105592_0","1761024180239_0","1761886679751_0"],"settings":{"margin_x":"100","margin_bottom":"58","mobile_margin_x":"50","mobile_margin_bottom":"40","mobile_columns":1,"margin_block":"100","mobile_margin_block":"10","mobile_align":"left"},"custom_name":"èªè¨æçè¨è¨"},"_index_4_blocks_3":{"type":"_index_4_blocks","visible":false,"settings":{"margin_x":"120","margin_bottom":"24","mobile_margin_x":"0","mobile_margin_bottom":"16","mobile_columns":2,"margin_block":"10","mobile_margin_block":"10"},"blocks":{"display_index_4_block_3":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_3.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","block_propotion":"33.3","dict_image_description":""},"custom_name":"åç"},"display_index_4_block_3_2":{"type":"image","visible":true,"settings":{"dict_image_url":"/theme_src/i18n_shesay/default_img/index_4_blocks_3_2.png","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","block_propotion":"66.6","dict_image_description":""},"custom_name":"åç"}},"block_order":["display_index_4_block_3","display_index_4_block_3_2"],"custom_name":"èªè¨æçè¨è¨"},"_index_8_blocks":{"type":"_index_8_blocks","visible":false,"settings":{"dict_title":"New Arrivals","collection_handle":"salted-egg-yolk-nougat","limit":"48","margin_x":"0","margin_bottom":"48","mobile_margin_x":"0","mobile_margin_bottom":"24","product_display":"displayDefault","product_arrangement":"1","product_column_for_pc":"4","product_alignment":"leftPosition","product_text_align":"center"},"custom_name":"åååé¡"},"express_delivery_index_4_blocks":{"type":"_index_4_blocks","visible":false,"blocks":{"express_delivery_display_index_4_block_1":{"type":"image","visible":true,"settings":{"title":"","dict_link":"","dict_image_url":"/theme_src/i18n_shoestore/default_img/index_4_blocks_1.jpg","dict_tablet_image_url":"","dict_mobile_image_url":""}}},"block_order":["express_delivery_display_index_4_block_1"]},"custom_text":{"type":"custom_text","visible":true,"settings":{}},"blog":{"type":"blog","visible":true,"settings":{"article_limit_in_blog_page":"6"}},"article":{"type":"article","visible":true,"settings":{"display_blog_menu":true,"dict_blog_tags_title":"Categories","blog_latest_post_limit":"2"}},"category":{"type":"category","visible":true,"settings":{"category_sidebar_set_open":false,"category_product_block_limit":"4","category_product_swiper_item_limit":"
896","category_product_item_limit":"18"}},"shop_setting":{"type":"shop_setting","visible":true,"settings":{"favicon_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzI5MTUzX-e2suermUxPR08tNDhweF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?sha=9373337cfc63f02e","og_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzI5MTUzX-e2suermUxPR08tNDhweF_lt6XkvZzljYDln58gMS5qcGcuanBlZyJdXQ.jpeg?sha=9373337cfc63f02e","shop_title":"ç¶²ç«æ¨é¡","shop_description":"ç¶²ç«ç°¡è¿°","shop_keywords":"ç¶²ç«ééµå"},"custom_name":"å
¨ç«è¨å®"},"color_settings":{"type":"color_settings","visible":true,"settings":{"button_color":"#7c6767","button_text_color":"#FFFFFF","accent_color":"#f86f69","heading_color":"#000000","text_color":"#9A9EA2","price_color":"#f86f69","discount_price_color":"#f86f69","theme_bg_color":"#FFFFFF","product_border_color":"#E2E2E2","nav_logo_bg_color":"#FFFFFF","nav_menu_bg_color":"#FFFFFF","nav_menu_text_color":"#000000","nav_menu_icon_color":"#7c6767","footer_bg_color":"#ffffff","footer_text_color":"#9a9ea2","checkout_button_color":"#000000","checkout_accent_color":"#f86f69","tips_text_color":"#0C5460"},"custom_name":"é¡è²è¨å®"},"popup":{"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":false,"settings":{"dict_image_url":"/theme_src/i18n_shoestore/default_img/popup_default.jpg","icon_size":"small"},"custom_name":"åç"}},"block_order":["popup_block_1"],"settings":{},"custom_name":"å½çªå»£å"},"product_info":{"type":"product_info","visible":true,"settings":{"display_product_sku":false,"dict_vip_custom_price_text":"","dict_vip_custom_price_href":""},"custom_name":"åºæ¬è¨å®"},"product_description":{"type":"product_description","visible":true,"custom_name":"ååä»ç´¹"},"board_comments":{"type":"board_comments","visible":true,"settings":{},"thumbnail":"list","draggable":false},"related_products":{"type":"related_products","visible":true,"settings":{"display_related_cols":true,"use_custom_related_cols":true,"dict_group_related_cols_related_product":"Related Products","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":"æ¹å·¦é","collection_sidebar_set_open":false,"collection_pagination_limit":"24","product_column_for_pc":"4","is_infinite_scroll":false},"custom_name":"åååé¡è¨å®"},"404":{"type":"404","visible":true,"settings":{"image_url":"/theme_src/i18n_shesay/default_img/404_img.png","dict_404_image_url":"/theme_src/i18n_shesay/default_img/404_img.png","dict_title_text":"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/other_valid_orders":{"type":"customers/other_valid_orders","visible":true,"settings":{}},"customers/register":{"type":"customers/register","visible":true,"settings":{}},"customers/reset_password":{"type":"customers/reset_password","visible":true,"settings":{}},"customers/return":{"type":"customers/return","visible":true,"settings":{}},"customers/tracking_items":{"type":"customers/tracking_items","visible":true,"settings":{}},"express_delivery-navbar":{"type":"express_delivery-navbar","visible":true,"settings":{}},"express_delivery-content":{"type":"express_delivery-content","visible":true,"settings":{}},"1761013335454_0":{"type":"_main_slider_custom","custom_name":"輪æç´ æ","visible":true,"settings":{"swiper_delay":"3","margin_x":"0","margin_bottom":"50","image_number":"1","image_space":"3","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_image_number":"1","mobile_image_space":"10","transition_speed":"0.3"},"blocks":{"1761013335455_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI0MTI2NzYxX-WumOe2si3nsbPlhbbmnpcuanBnLmpwZWciXV0.jpeg?sha=1cac94dce7cd9279","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/michelin-nougat-gift-box","slide_contents_display":"center","dict_slide_btn_link":"/collections/michelin-nougat-gift-box","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}},"1761013425994_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzE3MDYwOTg3X-adj-S7geezlmJhbm5lci5qcGcuanBlZyJdXQ.jpeg?sha=e39afcfdf8d78a12","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/milk-caramel","slide_contents_display":"left","dict_slide_btn_link":"/products/tm1017","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}},"1761013494450_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxMTgxMDE5XzE2OTUyNzQ1OTdf5Y2X5qOX5qC45qGD57OVX-S_ruWwjzIuanBnLmpwZWciXV0.jpeg?sha=79d3e6be039bb2ee","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/chinese-date-walnut-candy","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"}},"1762391413616_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYyODQyNzczXzE3MzA5NjMzNTRf5pS5MS3pm5kxMeWumOe2si3pppblnJZf5L-uMi5qcGcuanBlZyJdXQ.jpeg?sha=65be4ad62312413e","dict_tablet_image_url":"","dict_mobile_image_url":"","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","main_slider_image_alt":""}},"1763514537152_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYzNTE2MDU1X-apq-W5hV_nsbPlhbbmnpfniZvou4st5ben6YWlLmpwZy5qcGVnIl1d.jpeg?sha=44b118f858bded25","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/tc1133","slide_contents_display":"left","dict_slide_btn_link":"/products/tc1134","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}},"1763514538864_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYzNTE2NjE1X-apq-W5hV_nmofps7PphaUuanBnLmpwZWciXV0.jpeg?sha=eaf55111f295e3db","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/tb1060-20251020102054","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"}},"1763517165746_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYzNTE3NTU0X-apq-W5hV_nlJzkuI3ovqPlsI8uanBnLmpwZWciXV0.jpeg?sha=084009749ae35fe4","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/ts3402","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"}},"1765503678784_0":{"type":"image","custom_name":"ç´ æ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzY1NTAzNjkzX-apq-W5hV_nsbPlhbbmnpfniZvou4vns5Yt6IGW6KqV56-ALmpwZy5qcGVnIl1d.jpeg?sha=922a6c11d35f8b0c","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/20240101","
89slide_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"}},"1766978992579_0":{"type":"image","custom_name":"ç´ æ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzY2OTk0ODQwX-WumOe2si3nsbPlhbbmnpcuanBnLmpwZWciXV0.jpeg?sha=e6dc727b3f94eb8f","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/michelin-nougat-gift-box","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"}},"1767061697044_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzY4MjcyMDIwX-apq-W5hV_lhavlr7bnm5Jf5Yqg57SF5YyFLmpwZy5qcGVnIl1d.jpeg?sha=b041d0825ac368fd","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/tb1066","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"}},"1768457004350_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzY4NDU3MjAxX-apq-W5hV_ng4_prZrlrZAuanBnLmpwZWciXV0.jpeg?sha=ce0f86bf3a23bccc","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/tg1077","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"}},"1772767018733_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzcyNzY3MDI3X-apq-W5hV_nsbPlhbbmnpfniZvou4st5ben6YWlLeWUkOWvp-iMtl8wMzA45aWz56We56-ALmpwZy5qcGVnIl1d.jpeg?sha=00416752f41ca3be","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","slide_contents_display":"left","dict_slide_btn_link":"/products/38","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}},"1775020957669_0":{"type":"image","custom_name":"ç´ æ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzc2MjE0MDQ2X-apq-W5hV_mr43opqrnr4Dnpq7nm5JfTE9HTy5qcGcuanBlZyJdXQ.jpeg?sha=2e639f1a04223657","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/æ¯è¦ªç¯ç¦®ç","slide_contents_display":"left","dict_slide_btn_link":"/products/æ¯è¦ªç¯ç¦®ç","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","main_slider_image_alt":""}},"1780456425652_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzgwNDU2NDQ2X-apq-W5hV_nq6_ljYjphqzmlpnmtLvli5UuanBnLmpwZWciXV0.jpeg?sha=41b605f36ad6d04b","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/tg1003","slide_contents_display":"left","dict_slide_btn_link":"/products/tg1003","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}},"1781485480873_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzg0Mjc3NzI3X-apq-W5hV_lronlv4PlhazlkYouanBnLmpwZWciXV0.jpeg?sha=e0d35233e607ce8c","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","slide_contents_display":"left","dict_slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}},"1784858994532_0":{"type":"image","custom_name":"ç´ æ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzg0ODU5MDE1X-apq-W5hV_lhazniYjooovmtLvli5UuanBnLmpwZWciXV0.jpeg?sha=b86adac05adab4a8","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/collections/tangshop99","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"}},"1785745237325_0":{"type":"image","custom_name":"ç´ æ","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzg1NzQ1MjUyX-WUkOmLquWtkOS4reeni-emruebki1iYW5uZXIuanBnLmpwZWciXV0.jpeg?sha=fce29393adccdc8b","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"/products/box","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"}},"1789520192245_0":{"type":"image","custom_name":"ç´ æ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzg5NTIwMjAwX-apq-W5hV_lrpjntrLpmY3lg7kuanBnLmpwZWciXV0.jpeg?sha=baa6f293d655756d","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"","slide_contents_display":"left","dict_slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff"}}},"block_order":["1789520192245_0","1785745237325_0","1766978992579_0"]},"1761018682297_9":{"type":"_flagship_product","custom_name":"主æåå","visible":false,"settings":{"margin_x":"80","margin_bottom":"50","mobile_margin_x":"16","mobile_margin_bottom":"24","product_image_position":"leftSide"},"blocks":{"1761018682298_0":{"type":"title","custom_name":"å忍é¡","visible":false,"settings":{"dict_size":"24","enable_product_title_link":true,"product_title_link_open_in_new_tab":true}},"1761018682299_1":{"type":"price","custom_name":"广 ¼","visible":false,"settings":{"price_disabled_edit":""}},"1761018682299_2":{"type":"type_selector","custom_name":"款å¼é¸å®","visible":true,"settings":{"type_selector_disabled_edit":""}},"1761018682300_3":{"type":"quantity_selector","custom_name":"æ¸é鏿å¨","visible":true,"settings":{"quantity_selector_disabled_edit":""}},"1761018682300_4":{"type":"button","custom_name":"購買æé","visible":true,"settings":{"display_buy_n
89ow_button":true}}},"block_order":["1761018682298_0","1761018682299_1","1761018682299_2","1761018682300_3","1761018682300_4"]},"1761018726083_2":{"type":"_index_8_blocks","custom_name":"åååé¡","visible":false,"settings":{"dict_title":"ç¶å
¸çè»ç³ç³»å","collection_handle":"classic-nougat","limit":"3","product_arrangement":"1","product_column_for_pc":"3","product_alignment":"midPosition","product_text_align":"center","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_display":"displayDefault","product_column_for_mobile":"2","product_card_hover_effect":"button","product_image_border_radius":"15"},"blocks":{},"block_order":[]},"1761018575429_4":{"type":"_index_4_blogs","custom_name":"åé é 籤","visible":true,"settings":{"dict_title":"","margin_x":"","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","article_columns":"4"},"blocks":{"1761018575431_0":{"type":"blog","custom_name":"é¨è½æ ¼","visible":true,"settings":{"blog_handle":"åèåæå享"}},"1762152881395_0":{"type":"blog","custom_name":"é¨è½æ ¼","visible":true,"settings":{"blog_handle":"ååä»ç´¹"}},"1763452678569_0":{"type":"blog","custom_name":"é¨è½æ ¼","visible":true,"settings":{"blog_handle":"ååä»ç´¹"}},"1763452688603_0":{"type":"blog","custom_name":"é¨è½æ ¼","visible":true,"settings":{"blog_handle":"ååä»ç´¹"}}},"block_order":["1761018575431_0","1762152881395_0","1763452678569_0","1763452688603_0"]},"1761018630882_7":{"type":"_custom_html","custom_name":"èªè¨HTML","visible":false,"settings":{"margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0"},"blocks":{},"block_order":[]},"1761024069645_5":{"type":"_index_4_blocks","custom_name":"èªè¨æçè¨è¨","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","margin_block":"10","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_columns":1,"mobile_margin_block":"10"},"blocks":{"1761024069646_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_image_description":"","dict_link":""}},"1761024069647_1":{"type":"video","custom_name":"å½±ç","visible":true,"settings":{"dict_video_link":""}}},"block_order":["1761024069646_0","1761024069647_1"]},"1761033534812_5":{"type":"_index_4_blocks","custom_name":"èªè¨æçè¨è¨","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","margin_block":"10","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_columns":1,"mobile_margin_block":"10"},"blocks":{"1761033534813_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzQ1NzgyMjEyXzUwLnBuZy5wbmciXV0.png?sha=97ee5787a95f269d","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":""}},"1761033534813_1":{"type":"video","custom_name":"å½±ç","visible":true,"settings":{"dict_video_link":""}}},"block_order":["1761033534813_0","1761033534813_1"]},"1761033662883_2":{"type":"_index_8_blocks","custom_name":"åååé¡","visible":true,"settings":{"dict_title":"","collection_handle":"618","limit":12,"product_arrangement":"1","product_column_for_pc":"4","product_alignment":"leftPosition","product_text_align":"center","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_display":"displayDefault"},"blocks":{},"block_order":[]},"1761033842131_4":{"type":"_index_4_blogs","custom_name":"åé é 籤","visible":true,"settings":{"dict_title":"","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50"},"blocks":{"1761033842132_0":{"type":"blog","custom_name":"é¨è½æ ¼","visible":true,"settings":{"blog_handle":"ååä»ç´¹"}}},"block_order":["1761033842132_0"]},"1761880418242_8":{"type":"_text_editor_section","custom_name":"æå編輯","visible":false,"settings":{"margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_advanced_rich_text_content":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"color: rgb(0,0,0);background-color: rgb(255,255,255);font-size: 64px;
89\"\u003e\u003cstrong\u003eåªæ æ´»å\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003c/p\u003e\n"},"blocks":{},"block_order":[]},"1761887142104_5":{"type":"_index_4_blocks","custom_name":"èªè¨æçè¨è¨","visible":true,"settings":{"margin_x":"40","margin_bottom":"50","margin_block":"100","mobile_margin_x":"50","mobile_margin_bottom":"50","mobile_columns":2,"mobile_margin_block":"15","mobile_align":"left"},"blocks":{"1761887142105_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxODg5MjY1X-WOn-WRs-eJm-i7i-ezluaDheWig18yX-Wck-W9oi5wbmcucG5nIl1d.png?sha=605365b80b757bac","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:justify;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003e Almond Nougats\u003c/strong\u003e\u003c/span\u003e\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n","dict_link":"/collections/classic-nougat","block_propotion":"25"}},"1761887166251_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxOTAwMzM2XzA2MTTntq3lloZUODc2OV_lnJPlvaIucG5nLnBuZyJdXQ.png?sha=cf4f364811802657","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003eNougat with Biscuits\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n","dict_link":"/collections/snowflake-nougat","block_propotion":"25"}},"1761887168138_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxOTAwMzM1X-WOn-WRsybpubnom4vpu4Nf5ZyT5b2iLnBuZy5wbmciXV0.png?sha=f7586f6ee173c106","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003eNutty Toffee\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n","dict_link":"/collections/original-toffee-cashew-crisp","custom_block_image_alt":"","block_propotion":"25"}},"1761887169482_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYyMTUyNzkzX-WUkOmLquWtkGxvZ29f5ZyT5b2iLnBuZy5wbmciXV0.png?sha=1a1091e8290eb6c6","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003eCollaboration Collection\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n","dict_link":"/collections/ovaltine_fuyuan","block_propotion":"25"}},"1761887171241_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxOTAwMzM1X-WNl-ajl-aguOahg-ezlS0gKDEpX-Wck-W9oi5wbmcucG5nIl1d.png?sha=b6f781e6d4a9db23","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003eBlack Date \u0026amp; Walnut\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003e Soft Candy\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n","dict_link":"/collections/walnut-cake","block_propotion":"25"}},"1761887172515_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxOTAwMzM1X-aWsOW5tOemruebkjRf5ZyT5b2iLnBuZy5wbmciXV0.png?sha=8efa063499b330fe","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003eGift Box\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n","dict_link":"/collections/20240101","block_propotion":"25"}},"1761887177891_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxOTAwMzM1XzIwMjIt5ZSQ6IiW5a2Q6Yas5paZ56au55uS5oOF5aKD54WnMl_lnJPlvaIucG5nLnBuZyJdXQ.png?sha=18206a35a798af46","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 15px;\"\u003e\u003cstrong\u003eAdditional Products\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n","dict_link":"/collections/appetizers_sauce","block_propotion":"25"}},"1761898673209_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYxOTAyMDQ1X0lNR180MzE2X-Wck-W9oi5wbmcucG5nIl1d.png?sha=a268dcbd1589ab3c","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 10px;\"\u003e \u003cstrong\u003eFudge - Caramel - Milk Candy\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n","dict_link":"/collections/milk-caramel","block_propotion":"25"}}},"block_order":["1761887142105_0","1761898673209_0","1761887166251_0","1761887168138_0","1761887171241_0","1761887172515_0","1761887177891_0","1761887169482_0"]},"1761888635800_8":{"type":"_text_editor_section","custom_name":"æå編輯","visible":true,"settings":{"margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_advanced_rich_text_content":"\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n"},"blocks":{},"block_order":[]},"1762132608049_5":{"type":"_index_4_blocks","custom_name":"èªè¨æçè¨è¨","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","margin_block":"0","mobile_margin_x":"0","mobile_margin_bottom":"50","mobile_columns":1,"mobile_margin_block":"10","mobile_align":"left"},"blocks":{"1762132608050_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNjk4ODA5MTIxX-WUkOmLquWtkF_pm5kxMeWwj-S4ieWcliAoMikuanBnLmpwZWciXV0.jpeg?sha=6af15595e9fe5862","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"\u003cp\u003e\u003c/p\u003e\n","dict_link":"https://www.tangshop.com.tw/zh-TW/collections/all"}},"1762132619621_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNjk4ODA5MTIxX-WUkOmLquWtkF_pm5kxMeWwj-S4ieWcliAoMykuanBnLmpwZWciXV0.jpeg?sha=92cdb0eeeca72e56","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":"https://www.tangshop.com.tw/zh-TW/collections/classic-nougat"}},"1762132621141_0":{"type":"image","custom_name":"åç","visible":false,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYzNTE0NDU5X-WFjemBiy5qcGcuanBlZyJdXQ.jpeg?sha=584c3ebc261b528f","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":"https://www.tangshop.com.tw/zh-TW/account/signup"}},"1762132622581_0":{"type":"image","custom_name":"åç","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzYzNTE0NDc4
89X0xJTkUuanBnLmpwZWciXV0.jpeg?sha=73d799a1a92f299f","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":"https://page.line.me/589iqdvk?oat_content=url\u0026openQrModal=true"}}},"block_order":["1762132608050_0","1762132619621_0","1762132621141_0","1762132622581_0"]},"1762138750168_8":{"type":"_text_editor_section","custom_name":"æå編輯","visible":true,"settings":{"margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_advanced_rich_text_content":"\u003cp style=\"text-align:center;\"\u003e\u003cspan style=\"font-size: 32px;\"\u003e\u003cstrong\u003eAll Products\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n"},"blocks":{},"block_order":[]},"1784872606193_0":{"type":"_main_slider_custom","custom_name":"輪æç´ æ","visible":false,"settings":{"swiper_delay":"3","transition_speed":"0.3","margin_x":"0","margin_bottom":"0","image_number":"1","image_space":"12","mobile_margin_x":"0","mobile_margin_bottom":"0","mobile_image_number":"1","mobile_image_space":"8"},"blocks":{"1784872606195_0":{"type":"image","custom_name":"ç´ æ","visible":true,"settings":{"dict_image_url":"//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzg0Mjc3NzI3X-apq-W5hV_lronlv4PlhazlkYouanBnLmpwZWciXV0.jpeg?sha=e0d35233e607ce8c","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_link":"https://www.tangshop.com.tw/zh-TW/pages/promise","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":["1784872606195_0"]},"announcement_bar":{"type":"announcement_bar","visible":true,"blocks":{"announcement_bar_block_1":{"type":"image","visible":true,"settings":{"display_only_index":false,"display_period":"always","dict_link":"","link_open_in_new_tab":false,"dict_image_url":"/theme_src/i18n_shesay/default_img/header_banner_image.png","dict_image_tablet_url":"","dict_image_mobile_url":"","image_alt":"","dict_content":"","text_size":"25","text_color":"#ffffff","bg_color":"#000000","timer_text_color":"#c39d6f","timer_bg_color":"#2b2b6e","migrated_from_navbar":true},"custom_name":"åç"}},"block_order":["announcement_bar_block_1"],"settings":{"display_mode":"vertical","carousel_interval":"3"},"custom_name":"ç½®é å ¬å"}},"navbar_image_logo":true,"show_default_all_products":true,"one_dimension_limit":"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":"","index_event_slider_item_8_display":false,"dict_index_event_slider_item_8_title":"","dict_index_event_slider_item_8_link":"#","index_event_slider_item_9_display":false,"dict_index_event_slider_item_9_title":"","dict_index_event_slider_item_9_link":"#","index_event_slider_item_10_display":false,"dict_index_event_slider_item_10_title":"","dict_index_event_slider_item_10_link":"#","index_4_slider_display":true,"dict_index_4_slider_title":"Instagram","index_4_slider_item_1_display":true,"dict_index_4_slider_item_1_link":"#","index_4_slider_item_2_display":true,"dict_index_4_slider_item_2_link":"#","index_4_slider_item_3_display":true,"dict_index_4_slider_item_3_link":"#","index_4_slider_item_4_display":true,"dict_index_4_slider_item_4_link":"#","index_4_slider_item_5_display":true,"dict_index_4_slider_item_5_link":"#","index_4_slider_item_6_display":false,"dict_index_4_slider_item_6_link":"#","index_4_slider_item_7_display":false,"dict_index_4_slider_item_7_link":"#","index_4_slider_item_8_display":false,"dict_index_4_slider_item_8_link":"#","index_video_blocks_display":true,"dict_index_video_blocks_title":"Youtube","dict_index_video_blocks_video_link":"https://www.youtube.com/watch?v=3bI4IUIVjCk","collection_sidebar":"main-menu","collection_sidebar_set_open":false,"collection_pagination_limit":"24","product_slogan_display":false,"display_product_total_sold":false,"display_periodic_order_label":false,"cart_quantity_limit":"0","is_empty_clickable":true,"is_first_selected":false,"display_product_images_color":false,"discount_product_images_color_expand":false,"display_product_discounts_list":true,"display_discount_price_name":false,"discount_price_slogan_url":"/theme_src/beta_theme/default_img/onsale_icon.png","dict_discount_price_name":"","display_discount_price_suggestion_name":false,"dict_discount_price_suggestion_name":"","display_product_section_description":true,"dict_product_section_description":"Product Description","description_section_spec_setting":true,"dict_product_description_section_spec":"Specifications","description_section_shipping_setting":true,"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":"Shop Address","show_google_map":true,"show_google_map_iframe":"\u003ciframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3613.6479170127777!2d121.56760821400371!3d25.07991984260527!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3442ac6fbd841bbd%3A0x64e16bcf25e3da31!2zMTE05Y-w5YyX5biC5YWn5rmW5Y2A55Ge5YWJ6LevNTEz5be3MzDomZ8!5e0!3m2!1szh-TW!2stw!4v1485156761267\" width=\"600\" height=\"450\" frameborder=\"0\" style=\"border:0\" allowfullscreen\u003e\u003c/iframe\u003e","display_selected_blog":true,"selected_blog":"news","display_inventory_policy":true,"display_product_vendor":true,"nav_icon_style":"icon_type_default","google_font":"{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}","product_text_align":"start","styled_shop_menu":"buttonType","product_video_display_location":"before","product_scale":"default_scale","product_labels":{"items":[{"id":"sale_label","kind":"system","title":"ç¹å¹æ¨ç±¤","display":true,"type":"image","dict_text":{"zh-TW":""},"image":"/theme_src/beta_theme/default_img/onsale_icon.png","image_size":"large"},{"id":"out_of_stock_label","kind":"system","title":"缺貨æ¨ç±¤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"periodic_event_label","kind":"system","title":"宿å®é¡æ¨ç±¤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"6a351562-f9f3-450d-abdc-5502de04537e","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 1","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"6714fdf6-631e-4129-970a-681e114d13c5","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 2","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"96f28b38-3cb7-4da5-9734-dd6b68190100","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 3","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"f8c139fb-ff96-4630-bd3c-2f42fbfd74cb","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 4","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"75f5cd30-c6af-4931-9f8a-29afa516cfae","kind":"custom","title":"èªå®ç¾©æ¨ç±¤ 5","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"}]},"product_card_hover_effect":"button","product_image_border_radius":"0"}); 90 </script>
90 91 92 93 94 95 96 97 98 99 100 101 <!-- for vendor --> 102 <!-- cyb_snippet _bootstrap start --> 103 104<!-- cyb_snippet _bootstrap end --> 105 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vendor-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 106 107 <!-- common css rulesets --> 108 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/common-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 109 110 <!-- for navbar --> 111 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/navbar-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 112 113 <!-- for footer --> 114 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/footer-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 115 116 <!-- theme assets --> 117 <link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/main-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 118 119 <!-- for vendor --> 120
120<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/vendor-4a1e7dfec7e41476.js' type='text/javascript'></script>
120 121 122
122<script> 123 window.sci = "eyJzaG9wX2lkIjoxOTEyMywic2hvcF9wbGFuIjoiZW50ZXJwcmlzZSIsImRp\nbV9hZmZpbGlhdGUiOm51bGwsImN1c3RvbWVyX2lkIjpudWxsLCJjdXN0b21l\ncl9uYW1lIjpudWxsLCJzaG9wX25hbWUiOiLllJDoiJblrZAgfCDnsbPlhbbm\nnpcy5pif54mb6LuL57OWIHwg5Lq65rCj5Ly05omL56auIiwic2hhcmVfYXR0\ncmlidXRpb25fZW5hYmxlZCI6ZmFsc2V9\n"; 124 </script>
124 125 126 127<meta name="csrf-param" content="authenticity_token" /> 128<meta name="csrf-token" content="XNmp351zPFp6g5eXCqPs4gl21nqGq5KrpJI8sOXP_TMrBP4Wn1ZpkqglUXiMcbT7VfEBpNsqCaTOK4W9XXgnGw" />
129<script>(function () { 130 window.gaConfigurations = {"useProductIdInProductEvents":false}; 131})(); 132</script>
vendor: 1 bytes, line 132
132
133<script>(function () { 134 window.CYBERBIZ_PageContext = {"page_type":"collection"}; 135})(); 136</script>
136 137<link href="//cdn-general.cybassets.com/frontend/shop/quark-4a1e7dfec7e41476.css" rel="stylesheet" type="text/css" media="all" /> 138
138<script> 139 window.shopScriptHelper = { 140 i18nLocale: "en", 141 i18nLocaleDefault: "zh-TW", 142 availableCurrencies: ["TWD"], 143 defaultCurrency: "TWD", 144 currenciesInfo: [{"html_unit":"NT${{amount_no_decimals}}","name":"æ°å°å¹£ (TWD)","html":"NT${{amount_no_decimals}}","unit":"","trailing_zeros":false,"decimal_precision":0,"money_format":"%u%n","format":"NT${{amount_no_decimals}}","email_unit":"NT${{amount_no_decimals}}","code":"TWD","symbol":"NT$","email":"NT${{amount_no_decimals}}"}], 145 vueOverrideTranslations: {"en":{"vue":{"bonus_mall":{"add_to_cart":"Add to Cart","already_added_to_cart":"Added to Cart","available_bonus_and_used":"Total bonus points: {customerRemainPoints} points, using {usedBonusPoints} points.","bonus_points":"{points} points","bonus_points_verbose":"{points} bonus points","bonus_price":"Bonus Price","bonus_price_asc":"Sort by Low to High Points","bonus_price_desc":"Sort by High to Low Points","bonus_redemption_price":"{price} Bonus Redemption points","countdown":"Sale starts in","days":"days","default_sort":"Recommended","exceed_buy_limit":"Quantity exceeds purchase limit.","exceed_stock_quantity":"Quantity exceeds available stock.","hours":"hours","insufficient_points":"Insufficient Points","loading_error":"Error loading shopping cart data.","minutes":"minutes","need_to_buy_something":"Quantity must be at least 1.","not_on_sale_yet":"Coming soon","points":"Points","proceed_to_checkout":"Proceed to Checkout","product_count":"A Total Of {totalCount} Items","quantity":"Quantity","recent_days_sold_asc":"Sort by Low to High Sales Volume","recent_days_sold_desc":"Bestselling","seconds":"seconds","select_itmes_count":"You have selected {quantity} bonus items.","sell_from_asc":"Listing date, old to new","sell_from_desc":"Listing date, new to old","sold_out":"Out of Stock","subtotal":"Subtotal","wrong_quantity":"Invalid quantity input."},"common":{"add_to_cart":"Add to Cart","buy_at_least_one":"Purchase Quantity Must Be at Least 1","buy_now":"BUY NOW","cancel":"Cancel","confirm_submit":"Submit","contact_merchant":"Contact Shop","corona":{"confirm_no":"Cancel","confirm_yes":"Confirm","default_sort":"Store Recommendations","price_asc":"Price Low To High","price_desc":"Price High To Low","price_filter":"Price","recent_days_sold_desc":"Best Seller","select_page":"Select Page","select_sort_by":"Sort By","sell_from_asc":"Listing date, old to new","sell_from_desc":"Listing date, new to old","suggested_range":"Suggested Range"},"default_sort":"Store Recommendations","exceed_stock_quantity":"Exceeds Stock Quantity","exceed_upper_limit":"Exceeds Purchase Limit","failed_to_update_cart":"Failed to Update Shopping Cart","onsale":"On Sale","periodic_order_label":"Subscription","pre_order":"Pre-order","price_asc":"Price Low To High","price_desc":"Price High To Low","price_label":"Price","product_description":"Product Description","product_name":"Product Name","product_sold":"Sold {productSold} products","product_status_label":{"login_to_view":"Login to view","login_to_view_full":"Log in to check eligibility","member_exclusive":"For Selected Members Only","not_eligible":"Not eligible","not_eligible_full":"Not eligible for purchase","upcoming_product_with_time":"Sale starts on {time}"},"recent_days_sold_desc":"Best Seller","return":"Return","see_more":"See More","select_option":"Please select {option}","sell_from_asc":"Listing date, old to new","sell_from_desc":"Listing date, new to old","sold_out":"Out of Stock","subtotal":"Subtotal","system_busy_try_again":"System busy; please try again later.","theme":{"choose_specification":"Please Select Specifications","wrong_date":"Wrong Date"},"video_not_supported":"Your browser does not support HTML 5 video.","wrong_quantity":"Quantity Input Error"},"eticket_orders":{"category_all":"All Tickets","category_available":"Available","category_pending":"Unpaid","category_used":"Used up","eticket_orders_branch_stores_address":"Store Address","eticket_orders_branch_stores_name":"Store Name","eticket_orders_branch_stores_phone":"Store Phone","eticket_orders_branch_stores_show":"Show Redeemable Branch Stores","eticket_orders_cancel_order":"Cancel Order","eticket_orders_cancel_order_announcement":"I agree that the invalidation of the invoice or the \"businessman''s sales return, purchase, withdrawal or discount certificate\" will be fully handled by CYBERBIZ Corp. to facilitate the expediting of the refund process. If there is a return/discount, a discount order will be issued directly and uploaded to the Ministry of Finance''s electronic invoice integration service platform for storage. ","eticket_orders_cancel_order_cancel":"Cancel operation","eticket_orders_cancel_order_title":"Are you sure you want to cancel this order?","eticket_orders_canceled":"Canceled","eticket_orders_discounted_price":"Discounted Price","eticket_orders_eticket_notice":"E-ticket Notice","eticket_orders_go_to_payments":"Go to Payments","eticket_orders_invoice_infos":"Invoice Information","eticket_orders_invoice_number":"Invoice Number","eticket_orders_invoice_status":"Invoice Status","eticket_orders_order_date":"Order Date","eticket_orders_order_details":"Order Details","eticket_orders_order_established":"Order Established","eticket_orders_order_no_query_records":"No query records for this order at the moment","eticket_orders_order_notes":"Order Notes","eticket_orders_order_number":"Order Number","eticket_orders_order_query_records":"Query Records","eticket_orders_payment_infos":"Payment Information","eticket_orders_payment_method":"Payment Method","eticket_orders_payment_status":"Payment Status","eticket_orders_qrcode_download":"Download","eticket_orders_qrcode_not_used":"Not Used","eticket_orders_qrcode_quantity":"Quantity: {quantity}","eticket_orders_qrcode_share":"Share","eticket_orders_qrcode_share_text":"This is your e-ticket. Please keep it safe:\n{ title }-{ variantTitle }\nTicket number: { ticketNumber }","eticket_orders_qrcode_ticket_number":"ticket number: {ticket_number}","eticket_orders_qrcode_used":"Used","eticket_orders_qrcode_used_status":"Already used: {used} / Not yet used: {not_used}","eticket_orders_quantity":"Quantity: {quantity}","eticket_orders_send_etickets":"Send E-tickets","eticket_orders_send_message_to_shop":"Send Message to Shop","eticket_orders_separate_etickets":"Separate Etickets","eticket_orders_separate_etickets_cancel":"Cancel operation","eticket_orders_separate_etickets_confirm":"Confirm separate tickets","eticket_orders_separate_etickets_description":"Please note that you are about to go through the ticket splitting process. After splitting, each ticket will have an independent verification code QR Code (the original verification code QR Code will not be used). You can share screenshots of different verification codes with multiple people Use, this operation cannot be restored.","eticket_orders_submit":"Submit","eticket_orders_subtotal":"Subtotal","eticket_orders_title":"Eticket Order Inquiry","eticket_orders_total_price":"Total Price","eticket_orders_unused":"Unused: {quantity}","eticket_orders_usage_status":"Usage Status","eticket_orders_used":"Used: {quantity}","eticket_orders_view_order_details":"View Order Details","eticket_term_of_service":"CYBERBIZ E-Ticket Terms of Service","failed_to_send_message":"Message Sending Failed","order_empty_note":"No Information Available","payment_status_failed":"Payment Failed, Please Contact Customer Service","payment_status_pending":"Authorization Pending","payment_status_success":"Payment Successful","show_eticket_button_qr_code":"Display Ticket QR Code","show_eticket_button_used":"Ticket Already Used","usage_status_partial_used":"Partially Used","usage_status_used":"Fully Used"},"express_delivery":{"add_to_cart":"Add to Cart","add_to_cart_error":"Failed to Add to Cart.","address_incomplete":"Incomplete address entered.","address_incomplete_hint":"Your address is incomplete. Please input the correct address before adding to cart.","back_to_product_list":"Back to Product List","business_hours":"Business Hours","cancel":"Cancel","change":"Change","change_address":"Change Address","choose_store":"Select Delivery Store","cyberbiz_now":"CYBERBIZ NOW","default_sort":"Recommended","delivery_address":"Delivery Address","delivery_address_detail":"Floor or Unit Number","delivery_address_detail_hint":"Enter Floor or Unit Number","delivery_address_hint":"Enter Delivery Address","delivery_address_separate_tips":"Please enter floor or room number information separately","empty_collection":"This category currently has no products.","exit":"Confirm","exit_prompt":"Are you sure you want to exit Express Delivery?","express_delivery":"CYBERBIZ NOW","get_position_error_internal":"Error: Please enable browser access to location permissions.","get_position_error_no_permission":"Error: Please enable your web browser's location service.","get_position_error_require_https":"Error: HTTPS required.","get_position_error_timeout":"Error: Request timeout.","more_info":"More Information","not_search_stores_yet":"Please Click 'Search'","phone":"Contact Phone Number","please_select_specifications":"Please select specifications.","pre_order":"Pre-order","price_asc":"Price Low To High","price_desc":"Price High To Low","product_count":"A Total Of {totalCount}
145 Items","recent_days_sold_desc":"Bestselling","sales_start_info":"Sales Start on {time}","sales_start_info_verbose":"Sales Start on {day} {time}","search_failed":"Store search unsuccessful.","search_product_count":"You have searched for {selectedStoreName}'s products, totaling {count} items.","search_stores":"Search","sell_from_asc":"Listing date, old to new","sell_from_desc":"Listing date, new to old","service_description":"CYBERBIZ NOW Express Delivery Service Details:","service_description_detail":"This shopping service is provided by the CYBERBIZ system. We collaborate with third-party partners to offer delivery services, ensuring a faster shopping experience for you.","service_hours":"Available Time: {day} {time}","service_is_available":"The address you entered supports \"CYBERBIZ NOW Express Delivery\".","service_not_available_in_the_region":"We're sorry, the \"CYBERBIZ NOW Express Delivery\" service is currently not available in your area.","sold_out":"Out of Stock","store_address":"Store Address","store_address_info":"Address: {address}","store_is_closed":"Currently not accepting service","view_products":"View Products"},"express_delivery_with_regularly_used_address":{"address":"Delivery Address","address_detail":"Floor or Unit Number","address_detail_placeholder":"Enter Floor or Unit Number","address_incomplete_hint":"Please enter a complete delivery address","address_invalid_content":"Delivery address is required","address_placeholder":"Please enter a delivery address","button_create":"Add Address","button_save":"Save","button_save_as_regular":"Save as frequently used","cancel":"Cancel","create_address":"Add New Address","delete":"Delete","delete_failed":"Deletion failed","delete_hint":"Once the address is removed, it cannot be recovered.","delete_message":"Are you sure you want to delete this address?","delete_success":"Successfully deleted","edit":"Edit","empty_lists":"No frequently used delivery address","empty_lists_hint":"There are no addresses saved; please click [Add New Address] to create and set a default address.","limit_hint":"You can save up to 5 frequently used addresses. The system will automatically remove the earliest saved address.","name":"Name","name_invalid_content":"Name is required","name_placeholder":"Please enter a name","return":"Keep","save_as_regular":"Save as frequently used","save_success":"Success saved","search_failed":"No delivery stores available for this address. Please use a different delivery address.","select_address":"Select a frequently used delivery address","site":"Address","site_invalid_content":"Address is required","site_placeholder":"Please enter an address","title_address_lists":"Frequently used address saved","title_delete_address":"Are you sure you want to delete this address?","title_edit_address":"Edit delivery address","title_save_as_regular":"Save as frequently used"},"i18n_setting":{"currency":"Currency","language":"Language","language_currency_setting":"Language / Currency Settings"},"line_group_buy":{"add_to_cart":"Add to Cart","go_checkout":"Proceed to Checkout","product_description":"Description","product_shipping":"Shipping Method","product_spec":"Product Specifications"},"menu":{"fourDimensionMenu":{"account":"My Account","cart":"My Cart","help":"Help \u0026 Contact","locator":"Store Locator","wishlist":"My Wishlist"}},"omniauth_mobile":{"agree_label":"By proceeding with verification and completing membership registration, you agree to","and":"and","check_account":"Please fill in your mobile number for identity verification.","confirm_account_information":"Is the account information below belongs to you?","confirm_submit":" Submit","cyb_ToS_and_privacy_policy":"Terms of Service \u0026 Privacy Policy","enter_mobile_number":"Please enter your mobile number.","merge":"Yes, please merge my account.","mobile_number":"Mobile number","phone_validation":"Phone verification","reconfirm":"No, I want to verify again.","registered":"Already have an account ?","resend":" Resend","resend_with_timer":"({ timer } second) Resend","retry_later_error":"Reached system operation limit, please refresh and try again.","return_login":"Back to log in page","send_confirmation_token":"The verification code has been sent to your phone.","send_message":"Send Verification Code","shop_ToS":"Terms of Use","submit_btn":"Sign up","verification_code":"4-digit verification code"},"repurchase":{"alcohol_all_cannot_repurchase":"Products cannot be inquired again.","all_cannot_repurchase":"Products cannot be bought again.","comma":",","lense_all_cannot_repurchase":"Products cannot be delivered again.","partial_cannot_repurchase":"{ reasonList }please refer to your shopping cart.","quote_product_name":"{ productName }","reason_combo_product_changed":"changes for combo product(s)","reason_exceed_the_stock":"Out of stock item(s)","reason_product_is_discontinued":"unpublished item(s)","reason_product_not_found":"deleted item(s)","separator":","},"theme_pages":{"branch_store":{"get_store_empty":"No stores available","get_store_error":"An error occurred while loading store information","options_all_cities":"All Cities","search_stores":"Search","store_address":"Address: { address }","store_open_time":"Business Hours: { openingHours }
145","store_phone":"Phone: { phone }"},"collection":{"all_filters":"All Filters","failed_to_add_to_cart_contact_shop":"Failed to add to cart, please contact the shop","filter_button":"Filter","filter_no_result":"Sorry, no results","not_on_sale_yet":"Coming soon","please_reselect":"Try removing some filters to see more items","product_sold_out":"Sold Out","products_total":"Total of {totalProductCounts} Products","reset_all_filters":"Reset All Filters","reset_filter_button":"Reset Filter","suggested_range":"Suggested Range","view_product":"View Product"},"combo_product":{"add_cart_error_try_again":"Network error, please try again.","arrive_soon":"Arriving Soon","contact_shop":"Contact Shop","discount_bonus":"Redeemable credit(s) per item","has_stock":"In Stock","insufficient_selected_quantity":"Insufficient quantity, {count} more pieces required","inventory_status":"Inventory Status","less_than_count":"Quantity selected must be greater than {count}","limit_reached":"limit reached","no_stock":"Out of Stock","notification_enabled":"Notification Enabled","notify_me_when_stock_arrives":"Sold out! Notify me when the product is available.","over_cart_limit":"Quantity exceeds shopping cart limit; please remove some items and place the order again.","over_stock_quantity":"The quantity entered exceeds the stock quantity. Please decrease your order.","point_equal":"equivalent to","points":"credit(s)","pre_order":"Pre-order Goods","quantity_over_combo_product_limit":"Quantity exceeded required pieces","related_item_name":"Item Name","related_item_quantity":"Quantity","select_optional_combo_product_items":"Select Items","selectable_count":"{count} pieces required, ","selected_count":"{count} selected"},"contact":{"contact_form":"Contact Form","email":"Email Address","email_placeholder":"'Enter your email, e.g.: [email protected]'","fail_operation":"Something went wrong; please try again later!","invalid_email":"Invalid Email","invalid_name":"Name required","invalid_phone_number":"Phone Number Required","invalid_question_content":"Please enter your message","name":"Name","name_placeholder":"Enter your name","phone_number":"Phone Number","phone_number_placeholder":"Enter your phone number","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","success_operation":"Message Sent!"},"customer_coupon":{"customer_coupons_product_name":"Gift","customers_coupons_available_used":"Redeemable / Redeemed: ","customers_coupons_available_used_already_used":"{availableUsed} Coupon(s) / {alreadyUsed} Coupon(s)","customers_coupons_coupon":"Discount Coupon","customers_coupons_days":"Days","customers_coupons_discount":"% Off","customers_coupons_end_date":"End Date: ","customers_coupons_end_date_msg_1":"No expiration starting from {start_date}","customers_coupons_end_date_msg_2":"From Today to End Date {end_date}","customers_coupons_end_date_msg_3":"Available once order {name} is completed","customers_coupons_end_date_msg_4":"No Expiration","customers_coupons_expired":"Expired","customers_coupons_free_shipping":"FREE Shipping","customers_coupons_gift_coupon":"Gift Coupon","customers_coupons_left":"Left","customers_coupons_list_div":", ","customers_coupons_lookup_suit_product":"View products","customers_coupons_method":"Applicable Orders: ","customers_coupons_no_coupons_msg":"Sorry, no coupons available for your account!","customers_coupons_no_end_date":"No Expiration","customers_coupons_no_start_use":"Not Enabled","customers_coupons_not_suit":"Not combined with","customers_coupons_product_deleted":"The free gift product has been deleted.","customers_coupons_serial_number":"Code","customers_coupons_still_available":"{timesLeft} Coupon(s)","customers_coupons_suit_any_discount":"All promotions","customers_coupons_suit_any_product":"All products","customers_coupons_suit_discount":"Applicable Promotions: ","customers_coupons_suit_product":"Applicable Products: ","customers_coupons_unlimited":"Unlimited coupons","customers_coupons_unlimited_already_used":"Unlimited coupons / {alreadyUsed} Coupon(s)","threshold_hint":"Orders exceeding { price }"},"footer":{"about_us":"About Us","shop_address":"Address: ","shop_email":"Email: ","shop_fax":"Customer Service Fax: ","shop_phone":"Customer Service Hotline: ","shop_time":"Customer service hour: ","tax_id":"Tax ID: "},"order_return":{"account_name":"Bank Account Name","address1":"Return Address","all_return":"Return all","apply_fail":"Application Failed","apply_return":"Return Application","apply_return_success":"Refund Request Sent","apply_success":"Successful Application","bank_account":"Bank Account","bank_branch_name":"Name of Branch","bonus_redemption":"Exchange Credit Point(s)","check_account_length":"Please check the length of the bank account number","check_order":"My Order(s)","choose_branch_bank":"Select Bank Branch","choose_return_reason":"Select Return Reason","city":"City","confirm_return":"Apply Refund","country_placeholder":"Select country","coupon_free_shipping":"Free Shipping Coupon","deliver_error":"Delivery Error","discount_detail":"Discount Details","enter_account_name":"Enter bank account name","enter_return_reason":"Please specify the return reason","estimated_refund_amount":"Estimated refund amount","free":"Free","gift_price":"Add-on Price","gift_purchase":"Gift with purchase","include_discount_and_shipping_fee":"Including discount and shipping fee","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","line_item_quantity":"Quantity: {lineItemQuantity}","literal_points":"point(s)","new_product_defect":"Defect on New Product","order_date":"Order Date","order_number":"Order Number","order_retrun_confirm":"Are you sure you want to request a refund?","others":"Others","please_choose_bank":"Select Bank","please_select_country":"Select Bank Country","price_includes_tax":"(includes consumption tax of {tax})","product_content_defect":"Wrong Product or Incomplete Product","product_defect":"Defective Product","refund":"Refund Amount","refund_account":"Refund Account","refund_info":"Refund Information","refund_instruction":"Excluding discounts and shipping fees, the actual refund will be as per the system amount.","refund_invoice_check":"I agree to the cancellation of the invoice or the \"Tax Payment Certificate\", and g
145ive consent to {envoiceCompanyName} to be handled at discretion in order to expedite the refund process.","related_item":"{ name } x{ quantity }","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_item_error":"Please select at least one item to return.","return_msg_Taiwan_shop":"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_not_Taiwan_shop":"1. If you find any defects or breakages upon receiving the goods and wish to apply for an exchange or refund, please log in to \"My Account\", locate your order, and click on \"My Order(s)\". Then select \"Apply Refund\". For detailed information and guidance, refer to the shop's return policy.\u003cbr\u003e 2. When returning or exchanging goods, please ensure that the original packaging is intact, including the purchased items, accessories, gifts, etc.\u003cbr\u003e 3. After receiving your refund application, we will contact you to arrange the retrieval of the goods. If you have any questions about the return, click \"Message Shop\" on the \"My Order(s)\" page. Please do not return the goods on your own.\u003cbr\u003e 4. Print this application form and include it with the returned goods.\u003cbr\u003e Once your returned item is received and reviewed, a refund will be issued to your original payment method or bank account. It may take 7 to 14 days for the refund to appear on your bank statement.","return_product":"Return Product","return_quantity":"Return quantity","return_reason":"Return Reason","shipping_fee":"Shipping Fee","state_placeholder":"Select state / province","tax":"Tax","total_bonus_redemption":"Total Credit Point(s) Redemption","tw_city_placeholder":"County / City","tw_district_placeholder":"District","vip_shipping_free":"Free Shipping For Members","zip":"ZIP / Postcode"},"product_collection":{"check_product":"View"},"product_list":{"must_confirmed":"Please \u003ca href=\"/account\"\u003evalidate your account\u003c/a\u003e to checkout.","must_sign_up":"Please \u003ca href=\"/account/login?{ path }\"\u003elog in\u003c/a\u003e or \u003ca href=\"/account/signup?{ path }\"\u003esign up \u003c/a\u003e to checkout."},"search":{"articles_total":"Total of { totalArticleCounts } Articles","continue_reading":"Continue Reading","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"},"special_collection":{"already_choose_and_buy_more":"Selected {quantity} items, buy {quantity_more} more","buy_more_promotion":"to save more!","buy_quatity":"Buy {quantity} ","need_diopter":"Fill out the lens prescription first","need_login":"Login first","not_choose_items_yet":"No Item Selected Yet","not_choose_yet":"No Item","origin_price":"Original Price:","over_cart_limit":"Quantity exceeds shopping cart limit; please remove some items and place the order again.","over_stock":"Quantity exceeds inventory stock; please decrease the quantity selected","over_stock_count":"Quantity exceeds inventory stock. Remaining { count }","sales_price":"Price","select":"Select","selected":"Selected","special_collection_discount_per":"get every item for {price} off","special_collection_discount_pirce":"get discount of {price}","special_collection_discount_quatity1":"for {price}","special_collection_divided_by_ten":"get {percentage} % off"}},"validation":{"auth_to_add_notification":"Please login or register to register for notifications","check_email_immediately":"Check your mailbox","click_to_resend_validate_email":"Didn't receive the email? Please check spam or","click_to_resend_validate_sms":"Didn't receive the text message? Please click to resend","go_to_member":"Go to Member Center","resend_too_frequently":"Sent too frequently, please try again in a minute.","resend_validation_email_success":"Account verification letter has been resent","resend_validation_msg_failed":"Failed to resend the account verification message, please try again later.","resend_validation_sms_success":"Account verification SMS has been resent","second":"s","select_variant":"Please select the product style","send_valid_email_again":"Resend","send_validation_email1":"We have sent an email to your mailbox { customerEmail }","send_validation_email2":"Please follow the instructions in the email to activate your account","send_validation_sms1":"We have sent a text message to your mobile phone { customerMobile }","send_validation_sms2":"Please follow the text message prompts to complete account activation","validate_your_account":"Just one more step, complete the verification to activate your account.","wait_to_send_valid_email":"Resend after ({ seconds }s)"}}}}, 146 hasI18nInContextEditing: false, 147 shopMultipleCurrenciesCheckout: false, 148 hasLocalizedShopPriceFormat: true, 149 } 150 </script>
150 151 152 153
153<script 154 src="//cdn-general.cybassets.com/frontend/shop/tolgeeIntegration-4a1e7dfec7e41476.js"> 155 </script>
155 156
156<script defer> 157 /* 158 * Enable in-context translation for Liquid part on the page. 159 * This must be executed last to prevent conflicts with other Vue apps. 160 * So put it to `onload`, which will be executed after DOM ready's app mount 161 */ 162 window.onload = function() { 163 if ( 164 window.shopScriptHelper && 165 window.shopScriptHelper.hasI18nInContextEditing 166 ) { 167 window.initTolgeeForLiquid() 168 } 169 } 170 </script>
170 171
172<script> var google_con_event_labels = [{"conversion_id":"18038378516","conversion_event":"order_created","conversion_label":"5dszCO_m144cEJSgr5lD","id":null},{"conversion_id":" 18038378516","conversion_event":"add_to_cart","conversion_label":" j5O5CJfDt90cEJSgr5lD","id":null},{"conversion_id":"18038378516","conversion_event":"checkout_page","conversion_label":" h9jWCKOWp90cEJSgr5lD","id":null}]</script>
vendor: 1 bytes, line 172
172
173<script src="//cdn-general.cybassets.com/frontend/shop/pageEventHandler-4a1e7dfec7e41476.js"></script>
vendor: 1 bytes, line 173
173
174<script src="//cdn-general.cybassets.com/frontend/shop/globalAnalysis-e4c650eb0b.js"></script>
174 175
175<script> 176 window.c12t = {"customer_id":null,"impressions":[{"name":"åå³å·§é ¥-600g享ç¦å ","id":"69730530","price":"650.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":1},{"name":"ãOvaltineãChocolate Malt Pearl Milk Candy 50 g","id":"46834","price":"99.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":2},{"name":"ãOvaltineãChocolate Malt Nougat With Biscuit 50 g","id":"46830","price":"99.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":3},{"name":"Michelin Strawberry Flavor Nougat - 50 g","id":"46822","price":"99.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":4},{"name":"Fuyuan Peanut Snow Q Cake (150g)","id":"30675","price":"160.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":5},{"name":"Fuyuan Peanut Snow Q Cake (150g)-copy","id":"77761","price":"99.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":6},{"name":"Nougat With Biscuit-Pineapple 120g ","id":"12600","price":"150.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":7},{"name":"Taiwanese Tempura ( Fish Cake )","id":"47993","price":"150.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":8},{"name":"Almond Fudge (caramel flavor) 100g","id":"30676","price":"180.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":9},{"name":"Almond Fudge (original flavor) 100g","id":"30677","price":"180.0","brand":"åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®","category":"All Items","list":"default","position":10}]}; 177 </script>
177 178 179 <meta name="request-id" content="1A7CB598CE5893AB70BED94305AB57B1"/> 180 181<link rel="canonical" href="https://www.tangshop.com.tw/en/collections/all-product"> 182<link rel="alternate" hreflang="zh-TW" href="https://www.tangshop.com.tw/zh-TW/collections/all-product"> 183<link rel="alternate" hreflang="en" href="https://www.tangshop.com.tw/en/collections/all-product"> 184<link rel="alternate" hreflang="x-default" href="https://www.tangshop.com.tw/zh-TW/collections/all-product">
185<script src="//cdn-general.cybassets.com/frontend/shop/carousel-4a1e7dfec7e41476.js"></script>
185 186
186<script> 187 window.parent.postMessage({ type: 'previewShopInit', currentUrl: window.location.href }, '*'); 188 </script>
188 189
190<script src="//cdn-general.cybassets.com/frontend/appStoreSDK/main.2798231628aa7fab87a9.js"></script>
vendor: 1 bytes, line 190
190
191<script>window.CYBERBIZ_AppScriptSettings = {"shop_add_ons":"W3sidmVuZG9yX3R5cGUiOiJDWUJFUkJJWiBHb29nbGUgQW5hbHl0aWNzIDQi\nLCJhcHBfaWQiOiJRVWo1WnFvZUlPUjlaM2JaS2trMG44N3l5a0FpOWU0NURE\naDJ0YlFnaUJBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IkctUDM2WUhQM0dW\nRiwgRy00QjdSSzdGSFdIIn19LHsidmVuZG9yX3R5cGUiOiJHb29nbGUgQW5h\nbHl0aWNzIDQiLCJhcHBfaWQiOiJSYkpWMTVFcVZWOHJ1Umo3NVlmV3Z1RUlD\nRm90Q0FPZm0xSDZtZ3hyNkZBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6Ikct\nMjNTUDkyOUpGQ++8jEctNEJIVEwzRUc0Tu+8jEctRTVYS0IxRUxDNCJ9fSx7\nInZlbmRvcl90eXBlIjoiQ2hhdCBCb3giLCJhcHBfaWQiOiJjOWQ4M2YwOTk2\nMTc0ZmJiYTg2ZWJhMDQxYWU4OThhMiIsInNldHRpbmdzIjp7IndpZGdldF9r\nZXkiOiJqdHl3aEdzbmcyZWFHNDFBIn19LHsidmVuZG9yX3R5cGUiOiJEaWdp\ndGFsIEludGVsbGlnZW5jZSBUcmFja2VyIiwiYXBwX2lkIjoiMWI1MGE4NmRj\nMmQxNDE4Mzg4ZmRlZGY3YTBkNDM5YWUiLCJzZXR0aW5ncyI6e319XQ==\n"} 192</script>
vendor: 1 bytes, line 192
192
193<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/9d6f4550aad572e9f70abb70ae5a6552482cf617ea5e4d5a32ed4ebbb5d60d54.js"></script>
vendor: 1 bytes, line 193
193
194<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/a810ec58aab67d16f8de1c4adf06fc7cc9f4477ec503b9cb1a998741bc692652.js"></script>
vendor: 1 bytes, line 194
194
195<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/8766542902afa60f4adda3c555c06025d2c27771ea85a6fc657a91cddbe5c59f.js"></script>
vendor: 1 bytes, line 195
195
196<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/35cd1f36a4a855bacbaa53900f8e17b376d4cab44c73812eef261aef6435163d.js"></script>
vendor: 1 bytes, line 196
196
197<script>window.CYBERBIZ.initializeSDK.initialize();</script>
vendor: 1 bytes, line 197
197
198<script src="//cdn-general.cybassets.com/frontend/shop/setAffliateCookie-4a1e7dfec7e41476.js"></script>
198 199 200 201 202 203 204 205<meta name="title" content="ææåå | åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®"> 206<meta property="og:title" content="ææåå | åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®"> 207<meta name="description" content="åå³å·§é ¥-600g享ç¦å é¿è¯ç°å·§å å麥è½é¢¨å³çç ç奶ç³-50g é¿è¯ç°å·§å å麥è½å·§é ¥-50g ç±³å ¶æèèçè»ç³-50g"> 208<meta property="og:description" content="åå³å·§é ¥-600g享ç¦å é¿è¯ç°å·§å å麥è½é¢¨å³çç ç奶ç³-50g é¿è¯ç°å·§å å麥è½å·§é ¥-50g ç±³å ¶æèèçè»ç³-50g"> 209<meta name="keywords" content="ææåå"> 210<meta property="og:url" content="https://www.tangshop.com.tw/en/collections/all-product"> 211<meta property="og:type" content="og:product"> 212 213 214 215
215<script src='//cdn-general.cybassets.com/frontend/shop/collectionPage-4a1e7dfec7e41476.js' type='text/javascript'></script>
215 216 217 218 219 220 <style id="color_settings"> 221 :root { 222 223 --button: #7c6767; 224 225 226 227 --button_text: #FFFFFF; 228 229 230 231 --accent: #f86f69; 232 233 234 235 --heading: #000000; 236 237 238 239 --text: #9A9EA2; 240 241 242 243 --price: #f86f69; 244 245 246 247 --discount_price: #f86f69; 248 249 250 251 --theme_bg: #FFFFFF; 252 253 254 255 --nav_logo_bg: #FFFFFF; 256 257 258 259 --nav_menu_bg: #FFFFFF; 260 261 262 263 --nav_menu_text: #000000; 264 265 266 267 --nav_menu_icon: #7c6767; 268 269 270 271 --footer_bg: #ffffff; 272 273 274 275 --footer_text: #9a9ea2; 276 277 278 279 --checkout_button: #000000; 280 281 282 283 --checkout_accent: #f86f69; 284 285 286 287 --product_border: #E2E2E2; 288 289 290 291 --tips_text: #0C5460; 292 293 294 295 296 297 } 298</style> 299 300 301 302 303 304 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 74 bytes, lines 304-305
304 305 <script async src="https://www.googletagmanager.com/gtag/js?id=
305G-P36YHP3GVF
vendor: 22 bytes, lines 305-306
305"></script> 306
306<script> 307
vendor: 183 bytes, lines 307-312
307window.dataLayer = window.dataLayer || []; 308 function gtag(){dataLayer.push(arguments);} 309 gtag('js', new Date()); 310 311 312 gtag('config', '
312G-23SP929JFC
vendor: 27 bytes, line 312
312', {"groups":"ecommerce"});
312gtag('config', 'AW-9355679060', {"groups":"dynamic_remarketing"});gtag('config', 'AW-9355679060', {'allow_enhanced_conversions':true});</script>
312 313
313<script> 314 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 315 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 316 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 317 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 318 319 ga('create', '', 'auto', {'name': 'cyberbiz'}); 320 ga('cyberbiz.require', 'displayfeatures'); 321 ga('cyberbiz.set', 'dimension1', '19123'); 322 ga('cyberbiz.require', 'ec'); 323 ga('cyberbiz.send', 'pageview'); 324 </script>
324 325 326
326<script>
vendor: 426 bytes, lines 326-333
326 327 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 328 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 329 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 330 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 331 document,'script','//connect.facebook.net/en_US/fbevents.js'); 332 333 fbq('init', '
333841571876731294
vendor: 38 bytes, lines 333-334
333', {}, {'agent':'plcyberbiz'}); 334
334fbq('track', "PageView", '', { eventID: "PageView_1A7CB598CE5893AB70BED94305AB57B1" }); 335 var facebook_pixel_id = '841571876731294'</script>
335 336 337 </head> 338 339 <body style="display: flex; flex-direction: column;"><!-- Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 339-340
339 340 <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
340GTM-WDZNN7G
vendor: 179 bytes, lines 340-343
340" 341 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 342 343 <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
343GTM-W4482X4
vendor: 118 bytes, lines 343-346
343" 344 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 345 346
346<noscript><iframe src="//www.googletagmanager.com/ns.html?id=AW-18038378516" 347 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 348 <!-- End Google Tag Manager (noscript) -->
vendor: 74 bytes, lines 348-350
348 349 <noscript><iframe 350 src="//www.googletagmanager.com/ns.html?id=
350GTM-TXD9LVJ
vendor: 186 bytes, lines 350-357
350" 351 height="0" 352 width="0" 353 style="display:none;visibility:hidden"> 354 </iframe></noscript> 355 356 <noscript><iframe 357 src="//www.googletagmanager.com/ns.html?id=
357GTM-P7528MQ
vendor: 117 bytes, lines 357-363
357" 358 height="0" 359 width="0" 360 style="display:none;visibility:hidden"> 361 </iframe></noscript> 362 363
363<!-- Navigation --> 364 <!-- cyb_snippet liquid_helper start -->
365<script> 366 function getDiscountPriceName() { 367 return "false" === "true" ? "" : ""; 368 } 369 370 function getDiscountPriceSuggestionName() { 371 return "false" === "true" ? "" : ""; 372 } 373 374 document.addEventListener('DOMContentLoaded', function() { 375 const languageHandle = Cookies.get("language"); 376 const defaultLanguage = {"handle":"zh-TW","title":"ç¹é«ä¸æ","currency_code":"TWD"}; 377 const languages = [{"handle":"zh-TW","title":"ç¹é«ä¸æ","currency_code":"TWD"},{"handle":"en","title":"English","currency_code":"USD"}]; 378 const currency = window.shopScriptHelper.defaultCurrency; 379 const currencies = window.shopScriptHelper.currenciesInfo; 380 window.liquidHelper = { 381 shopInternational: true, 382 defaultLanguage: defaultLanguage, 383 language: languages.find(function(l) { 384 return l.handle === languageHandle; 385 }) || defaultLanguage, 386 shopMultipleCurrenciesCheckout: false, 387 shopMultipleCurrencies: true, 388 defaultCurrencyFormat: "NT${{amount_no_decimals}}", 389 defaultCurrency: currency, 390 getCurrency: function() { 391 const currencyValue = Cookies.get("currencyValue") || currency; 392 return currencies.find(function(c) { return c.code === currencyValue; } 393 )}, 394 getDefaultCurrency: function() { return currencies.find(function(c) { 395 return c.code === currency; 396 })}, 397 getAvailableCurrencies: function() { return currencies.map(c => c.code) },
398 getCurrencyFormatInfo: function(currency) { 399 const currencyInfo = currencies.find(c => c.code === currency) 400 return _.pick(currencyInfo, [ 401 'decimal_precision', 402 'symbol', 403 'money_format', 404 'unit', 405 'trailing_zeros', 406 'html_unit', 407 'code', 408 ]); 409 }, 410 cartQuantityLimit: (function() { 411 const limit = Number("0" || undefined); 412 return limit <= 0 || isNaN(limit) ? Number.POSITIVE_INFINITY : limit; 413 })(), 414 isFirstVariantSelected: false , 415 isImageColorsUsed: false , 416 isEmptyClickable: true , 417 hasAddBuyProduct: '' !== "" ? true : false, 418 hasPriceWithDiscountPlugin: 'true' ? true : false, 419 conversionBonus: 1, 420 hasLocalizedShopPriceFormat: true, 421 hasCustomerCartPlugin: true, 422 isCartEnabled: true, 423 cdnHost: '//cdn-general.cybassets.com', 424 hasShopCustomPasswordRulePlugin: false, 425 hasDisableProductQuantityValidation: false, 426 hasBreadcrumbReferrerEnabled: false, 427 }; 428 }); 429</script>
429 430 431<!-- cyb_snippet liquid_helper end --> 432
433<script src='//cdn-general.cybassets.com/frontend/shop/navbarSection-4a1e7dfec7e41476.js' type='text/javascript'></script>
433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450<style> 451 452 #navbar { 453 --navbar-pc-title-scale: 1.0; 454 --navbar-pc-body-scale: 1.0; 455 --navbar-mobile-title-scale: 1.0; 456 --navbar-mobile-body-scale: 1.0; 457 } 458 459 460 461 462 463</style> 464 465 466 <span id="navbar" class="drawer drawer--left font-size-setting-enabled"> 467 <header id="header" class="qk-w--100vw qk-pos--fixed qk-t--0 qk-l--0"> 468 469 470 471 <div id="announcement-bar"></div> 472 473 474 475 476 477 478 <div class="computer_nav row_nav qk-hidden--mobile "> 479 <div class="header_logo qk-bg--nav_logo_bg"> 480 <div class="qk-pos--rel"> 481 <div class="qk-text--center qk-display--flex"> 482 <!-- logo start --> 483 484 485 <nav class="logo qk-display--il_bk"> 486 <a href="/" class="qk-w--100"> 487 <img 488 src="//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b" 489 class="qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--pc_logo qk-hidden--mobile" 490 style="width: auto; height: 52px;" 491 alt="" 492 height="52" 493 width="auto" 494 > 495 </a> 496 </nav> 497 498 <!-- logo end --> 499 500 <div class="header_nav qk-flex--1"> 501 <div class="qk-pos--relative center qk-pd_r--1 qk-w--100"> 502 <!-- main-nav start --> 503 <nav class="main_nav qk-display--init"> 504 <!-- cyb_snippet _main_nav_skeleton start --><ul 505 class="main_nav_skeleton link_shelf_top qk-display--flex qk-flex--row qk-flex--wrap qk-justify--center qk-align--center qk-body" 506 style="justify-content: center; visibility: hidden;" 507 aria-hidden="true" 508 ><span> 509 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/all-product" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">All Products</a></li> 510 </span><span> 511 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/classic-nougat" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Almond Nougat Series</a></li> 512 </span><span> 513 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/snowflake-nougat" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Nougat With Biscuits</a></li> 514 </span><span> 515 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/milk-caramel" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Fudge / Caramel / Milk Candy</a></li> 516 </span><span> 517 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/original-toffee-cashew-crisp" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Nutty Toffee</a></li> 518 </span><span> 519 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/walnut-cake" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Black Date & Walnut Soft Candy</a></li> 520 </span><span> 521 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/20240101" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Gift Box</a></li> 522 </span><span> 523 <li class="dropdown qk-dropdown_wrapper qk-pos--rel"><a href="/collections/ovaltine_fuyuan" class="qk-display--bk qk-fs--body qk-text--nav_menu_text qk-text--accent_hover qk-cursor--pointer">Collaboration Collection</a></li> 524 </span><span> 525 <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">Additional Products</a></li> 526 </span><span> 527 <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">Our Stores</a></li> 528 </span></ul><!-- cyb_snippet _main_nav_skeleton end --> 529 </nav>
530 <!-- main-nav end --> 531 </div> 532 </div> 533 534 <!-- tool-nav start --> 535 536 <div style="display: flex; align-items: center; position: relative; top: -12px;"> 537 <!-- cyb_snippet tool_nav start --> 538 539 540 541 542 543 544<nav class="tool-nav qk-pos--rel qk-float--r qk-display--flex"> 545 <ul class="link_shelf_top qk-display--flex qk-flex--row qk-justify--end qk-align--center qk-pos--abs qk-r--0"> 546 547 548 549 <li class="i18n-selector qk-fs--body qk-text--nav_menu_icon qk-bd--nav_menu_icon qk-btn"></li> 550 551 <!-- member --> 552 553 <li class="customer_account qk-pos--rel qk-pd--05"> 554 <div class="dropdown qk-pos--static"> 555 <div class="qk-cursor--pointer" data-toggle="dropdown"> 556 <div data-icon-type="custom_icon_type_account"></div> 557 <span class="text"></span> 558 </div> 559 <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"> 560 <ul id="customer-logined-menu" style="display: none"> 561 <li> 562 <div class="qk-fs--body qk-text--heading"> 563 <p class="customer-name qk-whitespace-break-spaces"></p> 564 <p>Welcome!</p> 565 </div> 566 </li> 567 </ul> 568 <ul id="customer-not-login-menu"> 569 <li class="button qk-text--center"> 570 <a href="/en/account/login" class="btn-login qk-btn qk-btn--lg qk-btn--primary qk-w--100">Log in</a> 571 </li> 572 <li class="button qk-text--center"> 573 <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> 574 </li> 575 </ul> 576 <span class="menu-bd qk-bd_t--default qk-bd--product_border"></span> 577 <ul class="member-menu qk-bd_t--default qk-bd--product_border"> 578 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 579 <a href="/en/account/index" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Account</a> 580 </li> 581 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 582 <a href="/en/account/orders" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Order(s)</a> 583 </li> 584 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 585 <a href="/en/account/coupons" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Coupon(s)</a> 586 </li> 587 <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg"> 588 <a href="/en/account/tracking_items" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">My Wishlist</a> 589 </li> 590 <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"> 591 <a href="/en/account/logout" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">Logout</a> 592 </li> 593 </ul> 594 </div> 595 </div> 596 </li> 597 598 <!-- for money symbol --> 599 <div id="money-symbol" data-money-symbol="NT${{amount_no_decimals}}" hidden></div> 600 <!-- cart --> 601 602 <li class="cart qk-pos--rel qk-pd--05"> 603 <!--é»è ¦ççè³¼ç©è»é¸å®--> 604 <div class="dropdown qk-pos--static"> 605 <div data-toggle="dropdown" class="shopcart qk-cursor--pointer" > 606 <div data-icon-type="custom_icon_type_cart"></div> 607 <span class="global-cart-count qk-circle qk-circle--sm qk-bg--accent qk-text--white qk-vert--mid qk-pos--abs qk-bd" style="display: none;">0</span> 608 <span class="global-cart-loading"></span> 609 </div> 610 <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"> 611 <div class="cart_list global-cart-item-list custom-scrollbar qk-of_x--hidden qk-of_y--scroll qk-of_y--overlay qk-display--flex qk-flex--column qk-justify--between default_scale"></div> 612 <p class="cart_empty qk-fs--body qk-text--heading qk-text--center">There are no items in your cart.</p> 613 <ul> 614 <li class="button qk-text--center"> 615 <a class="btn-checkout qk-btn qk-btn--lg qk-btn--primary qk-w--100" href="/en/cart" style="display: none">BUY NOW</a> 616 <a class="btn-tracking qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--trans
616parent" href="/en/account/tracking_items">Go to Wishlist</a> 617 </li> 618 </ul> 619 </div> 620 </div> 621 </li> 622 623 <!-- search --> 624 625 <li class="search qk-pos--rel qk-pd--05" id="search-icon"> 626 <div class="dropdown qk-pos--static"> 627 <div class="qk-cursor--pointer" data-toggle="dropdown"> 628 <div data-icon-type="custom_icon_type_search"></div> 629 </div> 630 <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"> 631 <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-vert--mid"> 632 <form action="/search" class="form-inline qk-search_form qk-display--flex qk-justfify--between qk-align--center qk-flex--1"> 633 <input class="search-input form-control qk-inputbox qk-inputbox--lg qk-flex--1 qk-w--100 qk-bg--transparent qk-text--heading" type="search" placeholder="Search" aria-label="Search" name="q" value="" /> 634 <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">Search</button> 635 </form> 636 </div> 637 </div> 638 </div> 639 </li> 640 641 <!-- express delivery --> 642 643 </ul> 644</nav> 645 646<!-- cyb_snippet tool_nav end --> 647 </div> 648 649 650 <!-- tool-nav end --> 651 </div> 652 </div> 653 </div> 654 </div> 655 656 <div class="qk-hidden--pc "> 657 <!-- mobile-nav start --> 658 <nav class="mobile-nav qk-bg--nav_logo_bg"> 659 <ul class="qk-display--flex qk-flex--row qk-justify--between qk-align--center qk-pd_x--05 qk-pd_y--0"> 660 <!-- menu --> 661 662 <li class="sidebar-menu-icon drawer-toggle qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center"> 663 <div data-icon-type="custom_icon_type_menu"></div> 664 </li> 665 666 <!-- logo --> 667 668 <li class="logo qk-pos--abs qk-center--x qk-pd_y--0"> 669 670 <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--phone"> 671 <img 672 src="//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b" 673 height="25" 674 width="auto" 675 alt="" 676 > 677 </a> 678 679 680 <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--tablet"> 681 <img 682 src="//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b" 683 height="25" 684 width="auto" 685 alt="" 686 > 687 </a> 688 689 </li> 690 691 692 <!-- search --> 693 694 <li class="search qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center qk-mg_l--auto"> 695 <div class="dropdown qk-pos--static qk-text--center"> 696 <div class="qk-cursor--pointer" data-toggle="dropdown"> 697 <div data-icon-type="custom_icon_type_search"></div> 698 </div> 699 <div 700 class="qk-dropdown_menu dropdown-menu qk-w--100vw qk-bg--theme_bg qk-bd--default qk-bd--product_border qk-mg--0" 701 role="menu" 702 > 703 <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-sp_bt--5 qk-w--100"> 704 <form action="/search" class="form-inline qk-display--flex qk-justfify--center qk-flex--1"> 705 <div class="form-inline qk-search_form qk-display--flex qk-justfify--center qk-align--center qk-flex--1"> 706 <input 707 class="form-control qk-flex--1 qk-inputbox qk-inputbox--lg qk-bg--trans
707parent qk-text--heading" 708 type="search" 709 placeholder="Search" 710 aria-label="Search" 711 name="q" 712 value="" 713 > 714 <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit"> 715 Search 716 </button> 717 </div> 718 </form> 719 </div> 720 </div> 721 </div> 722 </li> 723 724 <!-- express delivery --> 725 726 727 </ul> 728 </nav> 729 <!-- mobile-nav end --> 730 </div> 731 732 </header>
732<script> 733 (function () { 734 var isNavbarTransparent = false; 735 736 function measureHeaderOffset() { 737 var header = document.getElementById('header'); 738 if (!header) return null; 739 740 var headerHeight = header.getBoundingClientRect().height; 741 742 if (isNavbarTransparent && window.matchMedia('(min-width: 992px)').matches) { 743 var computerNav = document.querySelector('.computer_nav'); 744 if (computerNav) { 745 headerHeight -= computerNav.getBoundingClientRect().height; 746 } 747 } 748 749 var floatFilter = document.getElementById('float-filter'); 750 var floatFilterHeight = floatFilter 751 ? floatFilter.getBoundingClientRect().height 752 : 0; 753 754 return headerHeight - floatFilterHeight; 755 } 756 757 window.measureHeaderOffset = measureHeaderOffset; 758 759 var offset = measureHeaderOffset(); 760 if (offset !== null) { 761 document.body.style.paddingTop = offset + 'px'; 762 } 763 })(); 764 </script>
764 765 766 <!-- Sidebar --> 767 <nav class="drawer-nav drawer-nav_width qk-bg--nav_menu_bg " role="navigation"> 768 <div class="drawer-menu"> 769 <!-- cyb_snippet side_menu start --> 770 771 772<ul id="index_sidebar_shelf_top" class="sidebar qk-pd_b--1"> 773 774 <li class="logo qk-pos--rel qk-bg--nav_logo_bg qk-pd_x--1 qk-pd_y--05"> 775 <a href="/" class="qk-pd--0"> 776 <img src="//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b" height="32" width="auto" alt="logo"> 777 </a> 778 <button class="drawer-toggle qk-pos--abs qk-bg--transparent qk-pd--0"></button> 779 </li> 780 781 782 783 784 785 <!-- cyb_snippet components/side_menu/menu start --> 786 787 <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> 788 789 790 791 792 793 <li class="qk-pos--rel qk-pd--0"> 794 795 <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/all-product">All Products</a> 796 797 </li> 798 799 800 801 802 803 <li class="qk-pos--rel qk-pd--0"> 804 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--nav_menu_text qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_2" aria-expanded=" false "> 805 806 <a class="qk-text--nav_menu_text" href="/collections/classic-nougat"> Almond Nougat Series </a> 807 808 </button> 809 <ul id="index_sidebar_shelf_second_2" class="collapse_index_sidebar_2 collapse shelf_second qk-pd--0"> 810 811 812 813 814 <li class="qk-pos--rel qk-pd--0"> 815 816 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/originalnougat"> 817 Original Flavor Nougat 818 </a> 819 820 </li> 821 822 823 824 825 826 <li class="qk-pos--rel qk-pd--0"> 827 828 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/strawberry-nougat"> 829 Strawberry Flavor Nougat 830 </a> 831 832 </li> 833 834 835 836 837 838 <li class="qk-pos--rel qk-pd--0"> 839 840 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/pineapple-nougat"> 841 Pineapple Flavor Nougat 842 </a> 843 844 </li> 845 846 847 848 849 850 <li class="qk-pos--rel qk-pd--0"> 851 852 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/sesamenougat"> 853 Black Sesame Flavor Nougat 854 </a> 855 856 </li> 857 858 859 860 861 862 <li class="qk-pos--rel qk-pd--0"> 863 864 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/salted-egg-yolk-nougat"> 865 Salted Yolk Nougat 866 </a> 867 868 </li> 869 870 871 </ul> 872 </li> 873 874 875 876 877 878 <li class="qk-pos--rel qk-pd--0"> 879 880 <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/snowflake-nougat">Nougat With Biscuits</a> 881 882 </li> 883 884 885 886 887 888 <li class="qk-pos--rel qk-pd--0"> 889 890 <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/milk-caramel">Fudge / Caramel / Milk Candy</a> 891 892 </li> 893 894 895 896 897 898 <li class="qk-pos--rel qk-pd--0"> 899 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--nav_menu_text qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_5" aria-expanded=" false "> 900 901 <a class="qk-text--nav_menu_text" href="/collections/original-toffee-cashew-crisp"> Nutty Toffee </a> 902 903 </button> 904 <ul id="index_sidebar_shelf_second_5" class="collapse_index_sidebar_5 collapse shelf_second qk-pd--0"> 905 906 907 908 909 <li class="qk-pos--rel qk-pd--0"> 910 911 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/è °æ"> 912 Nutty Toffee ( Bag Size) 913 </a> 914 915 </li> 916 917 918 919 920 921 <li class="qk-pos--rel qk-pd--0"> 922 923 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/æ¸meé ¥"> 924 Nutty Toffee (Box Size) 925 </a> 926 927 </li> 928 929 930 </ul> 931 </li> 932 933 934 935 936 937 <li class="qk-pos--rel qk-pd--0"> 938 939 <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/walnut-cake">Black Date & Walnut Soft Candy</a> 940 941 </li> 942 943 944 945 946 947 <li class="qk-pos--rel qk-pd--0"> 948 949 <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/20240101">Gift Box</a> 950 951 </li> 952 953 954 955 956 957 <li class="qk-pos--rel qk-pd--0"> 958 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--nav_menu_text qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_8" aria-expanded=" false "> 959 960 <a class="qk-text--nav_menu_text" href="/collections/ovaltine_fuyuan"> Collaboration Collection </a> 961 962 </button> 963 <ul id="index_sidebar_shelf_second_8" class="collapse_index_sidebar_8 collapse shelf_second qk-pd--0"> 964 965 966 967 968 <li class="qk-pos--rel qk-pd--0"> 969 970 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/ovaltine_co-branded-series"> 971 Ovaltine Series 972 </a> 973 974 </li> 975 976 977 978 979 980 <li class="qk-pos--rel qk-pd--0"> 981 982 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/fuyuan-peanut-butter_co-branded-series"> 983 Fuyuan Peanut Butter Series 984 </a> 985 986 </li> 987 988 989 </ul> 990 </li> 991 992 993 994 995 996 <li class="qk-pos--rel qk-pd--0"> 997 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--nav_menu_text qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_9" aria-expanded=" false "> 998 999 <a class="qk-text--nav_menu_text" href="/collections/å ¶ä»åå"> Additional Products </a> 1000 1001 </button> 1002 <ul id="index_sidebar_shelf_second_9" class="collapse_index_sidebar_9 collapse shelf_second qk-pd--0"> 1003 1004 1005 1006 1007 <li class="qk-pos--rel qk-pd--0"> 1008 1009 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/appetizers_sauce"> 1010 Appetizer Sauce 1011 </a> 1012 1013 </li> 1014 1015 1016 1017 1018 1019 <li class="qk-pos--rel qk-pd--0"> 1020 1021 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/products/ts2001"> 1022 Sesame Crisps 1023 </a> 1024 1025 </li> 1026 1027 1028 1029 1030 1031 <li class="qk-pos--rel qk-pd--0"> 1032 1033 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/products/ts3402"> 1034 Taiwanese Tempura ( Fish Cake ) 1035 </a> 1036 1037 </li> 1038 1039 1040 1041 1042 1043 <li class="qk-pos--rel qk-pd--0"> 1044 1045 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/brown-sugar"> 1046 é»ç³å¡ 1047 </a> 1048 1049 </li> 1050 1051 1052 </ul> 1053 </li> 1054 1055 1056 1057 1058 1059 <li class="qk-pos--rel qk-pd--0"> 1060 1061 <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/é叿é»">Our Stores</a> 1062 1063 </li> 1064 1065 1066
1067<script> 1068 $('button a').on('click', function(e) {e.stopPropagation()}); 1069</script>
1069 1070 1071<!-- cyb_snippet components/side_menu/menu end --> 1072 1073 1074 1075 1076 <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> 1077 <li class="qk-pos--rel qk-pd--0"> 1078 <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none"> 1079 <a href="/en/account/index" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">My Account</a> 1080 </div> 1081 </li> 1082 <li class="qk-pos--rel qk-pd--0"> 1083 <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none"> 1084 <a href="/en/account/orders" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">My Order(s)</a> 1085 </div> 1086 </li> 1087 <li class="qk-pos--rel qk-pd--0"> 1088 <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none"> 1089 <a href="/en/account/logout" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">Logout</a> 1090 </div> 1091 </li> 1092 <li class="qk-pos--rel qk-pd--0"> 1093 <a href="/en/account/login"> 1094 <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 "> 1095 <span class="qk-text--nav_menu_bg qk-fw--500 qk-fs--body"> 1096 Log in 1097 </span> 1098 </div> 1099 </a> 1100 </li> 1101 <li class="qk-pos--rel qk-pd--0"> 1102 <a href="/en/account/signup"> 1103 <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"> 1104 <span class="qk-text--nav_menu_text qk-fs--body qk-fw--500"> 1105 Sign up 1106 </span> 1107 </div> 1108 </a> 1109 </li> 1110 1111 1112 1113 1114 <li class="category_title qk-bd--nav_menu_text qk-fs--breadcrumb qk-text--nav_menu_text qk-bd_y--default qk-fw--500"> 1115 1116 Language 1117 1118 1119 ï½ 1120 1121 1122 Currency 1123 1124 </li> 1125 <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"> 1126 </li> 1127 1128 1129</ul> 1130 1131<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/sidebar-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 1132
1133<script> 1134 $(document).ready(function(){ 1135 // å´éé¸å® 1136 if ($('.drawer').length){ 1137 $('.drawer').drawer(); 1138 $('.bt-toggle').click(function(){ 1139 setTimeout(function(){ 1140 $('.drawer')[0].iScroll.refresh() 1141 },500) 1142 }) 1143 } 1144 }); 1145</script>
1145 1146
1147<script> 1148 $(document).ready(function(){ 1149 const languageSize = 2 1150 const currencySize = 1 1151 1152 const initLanguageAndCurrency = ({language,code})=> { 1153 const contentSelector = $("#side-menu-modal__button"); 1154 let content = '' 1155 const isMutipleCurrencies = true 1156 const isMultiLanguages = true 1157 if ( isMultiLanguages && languageSize > 1 ) content = language || (liquidHelper.language && liquidHelper.language.title) 1158 if ( isMutipleCurrencies && (code && content === '')) content = code 1159 else if (isMutipleCurrencies && (code && content !=='')) content = `${content}ï½${code}` 1160 contentSelector.text(content) 1161 } 1162 1163 let code = '' 1164 let language = '' 1165 if (liquidHelper.language) language = liquidHelper.language 1166 if (liquidHelper.getCurrency()) code = liquidHelper.getCurrency().code 1167 1168 initLanguageAndCurrency({ language:language.title, code }) 1169 1170 $("#side-menu-modal__button").click(function() { 1171 const clickable = languageSize > 1 || currencySize > 1 1172 if (clickable) { 1173 $('.drawer').drawer('close'); 1174 const event = new CustomEvent("i18n_selector_clicked"); 1175 document.dispatchEvent(event); 1176 } 1177 }); 1178 1179 document.addEventListener('i18n_modal_confirmed', (e) => { 1180 const { languageTitle, currency } = e.detail; 1181 initLanguageAndCurrency({ language: languageTitle, code: currency }); 1182 }); 1183 }); 1184 1185</script>
1185 1186 1187 1188<!-- cyb_snippet side_menu end --> 1189 1190 </div> 1191 </nav> 1192 <!-- Bottombar --> 1193 1194 <div 1195 id="mobile-bottom-bar" 1196 class="qk-display--flex qk-justify--around qk-bg--nav_logo_bg qk-w--100vw qk-pos--fixed qk-b--0 qk-hidden--pc" 1197 > 1198 <!-- home --> 1199 <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"> 1200 <a id="home-nav-icon" href="/"> 1201 <div data-icon-type="custom_icon_type_home"></div> 1202 </a> 1203 </div> 1204 <!-- tracking items --> 1205 <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"> 1206 <a href="/en/account/tracking_items"> 1207 <div data-icon-type="custom_icon_type_tracking_items" c></div> 1208 </a> 1209 </div> 1210 <!-- cart --> 1211 1212 <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"> 1213 <a 1214 href="/en/cart" 1215 class="qk-display--il_flex qk-flex--row qk-justify--center qk-align--center qk-vert--mid qk-pos--rel" 1216 > 1217 <div data-icon-type="custom_icon_type_cart"></div> 1218 <span 1219 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" 1220 style="display: none;" 1221 >0</span 1222 > 1223 </a> 1224 </div> 1225 1226 <!-- member --> 1227 1228 <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"> 1229 <a id="customer-phone-nav-icon" href="/en/account/login"> 1230 <div data-icon-type="custom_icon_type_account"></div> 1231 </a> 1232 </div> 1233 1234 </div> 1235 1236 1237 </span> 1238 1239<div id="index-popular-tags"></div> 1240 1241<style id="timer_color"> 1242 :root { 1243 1244 --timer_text: #c39d6f; 1245 1246 1247 1248 --timer_bg: #2b2b6e; 1249 1250 } 1251</style> 1252
1253<script> 1254 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":"Add-on 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 specifications","please_enter_number":"Please enter a number.","please_reselect":"Try removing some filters to
1254see 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 {{ envoiceCompanyName }} 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
1254ontact 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":"Listing date, old to new","sell_from_desc":"Listing date, new to old","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"} 1255 $(document).ready(function(){ 1256 if(window.location.pathname != '' && window.location.pathname != '/' ){ 1257 document.getElementById('index-popular-tags').style.display = 'none' 1258 } 1259 // åæ¸è¨æ 1260 1261 1262 function adjustContentTop() { 1263 const offset = window.measureHeaderOffset(); 1264 if (offset === null) return; 1265 $("body").css({ "padding-top": offset + "px" }); 1266 } 1267 1268 window.adjustContentTop = adjustContentTop; 1269 1270 // navbarè¨å®éæ 1271 1272 1273 // Call it first once DOM is ready to prevent CLS 1274 adjustContentTop(); 1275 1276 // å»¶é²åå§åï¼çå¾ app banner åå§å宿 1277 $(window).on("resize", adjustContentTop); 1278 1279 // ä½¿ç¨ setTimeout ç¢ºä¿ banner çæ å·²ç¶ç¢ºå® 1280 $(window).on("load", function() { 1281 setTimeout(function() { 1282 adjustContentTop(); 1283 }, 200); // 給 banner è¶³å¤ æéåå§å 1284 }); 1285 1286 $('img.header_banner').on('load', adjustContentTop); 1287 1288 window.renderNavbarSection('.main_nav', {
1289 navbarCollections: null, 1290 navbarItems: [{"id":1834432,"title":"All Products","url":"/collections/all-product","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1831261,"title":"Almond Nougat Series","url":"/collections/classic-nougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1832459,"title":"Original Flavor Nougat","url":"/collections/originalnougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1832460,"title":"Strawberry Flavor Nougat","url":"/collections/strawberry-nougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1832461,"title":"Pineapple Flavor Nougat","url":"/collections/pineapple-nougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1832462,"title":"Black Sesame Flavor Nougat","url":"/collections/sesamenougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1832463,"title":"Salted Yolk Nougat","url":"/collections/salted-egg-yolk-nougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1831263,"title":"Nougat With Biscuits","url":"/collections/snowflake-nougat","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1831262,"title":"Fudge / Caramel / Milk Candy","url":"/collections/milk-caramel","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1831468,"title":"Nutty Toffee","url":"/collections/original-toffee-cashew-crisp","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1836036,"title":"Nutty Toffee ( Bag Size)","url":"/collections/è °æ","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1836037,"title":"Nutty Toffee (Box Size)","url":"/collections/æ¸meé ¥","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1831465,"title":"Black Date \u0026 Walnut Soft Candy","url":"/collections/walnut-cake","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1831469,"title":"Gift Box","url":"/collections/20240101","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1831467,"title":"Collaboration Collection","url":"/collections/ovaltine_fuyuan","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1831470,"title":"Ovaltine Series","url":"/collections/ovaltine_co-branded-series","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1831471,"title":"Fuyuan Peanut Butter Series","url":"/collections/fuyuan-peanut-butter_co-branded-series","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1849636,"title":"Additional Products","url":"/collections/å ¶ä»åå","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1849638,"title":"Appetizer Sauce","url":"/collections/appetizers_sauce","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1849639,"title":"Sesame Crisps","url":"/products/ts2001","item_type":"product","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1849650,"title":"Taiwanese Tempura ( Fish Cake )","url":"/products/ts3402","item_type":"product","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1879149,"title":"é»ç³å¡","url":"/collections/brown-sugar","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":1837452,"title":"Our Stores","url":"/pages/é叿é»","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null}], 1291 settings: { 1292 menuDisplayStyle: "three_dimension_menu", 1293 pcLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b", 1294 mobileLogoImgUrl: "//cdn-general.cybassets.com/media/W1siZiIsIjE5MTIzL2F0dGFjaGVkX3Bob3Rvcy8xNzI3MzIyNzAyX-e2suermeaWsExPR08t5ZSQ6IiW5a2QMTAwcHhf5bel5L2c5Y2A5Z-fIDEgKDEpLmpwZy5qcGVnIl1d.jpeg?sha=f2f010d7aa3eaf8b", 1295 navbarDisplayStyle: "rowCenterNav", 1296 } 1297 } 1298 ); 1299 1300 1301 // for link menu 1302 const linkMenuElement = document.querySelector('.link-nav'); 1303 const data = [] 1304 data.forEach((item) => { 1305 const wrapper = document.createElement('a'); 1306 const link = document.createElement('ul'); 1307 1308 wrapper.href = item.url; 1309 link.textContent = item.title; 1310 link.classList.add('link-item'); 1311 1312 wrapper.appendChild(link); 1313 linkMenuElement.appendChild(wrapper); 1314 }); 1315 1316 // for safe-area space on iOS devices 1317 const userAgent = navigator.userAgent; 1318 const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream; 1319 const isLiff = /Line\/[\d.]+/i.test(userAgent); 1320 const $mobileBottomBar = $('#mobile-bottom-bar'); 1321 1322 if ($mobileBottomBar.length && isIOS && isLiff) { 1323 $mobileBottomBar.addClass('is-ios-liff'); 1324 } 1325 }); 1326 document.addEventListener('DOMContentLoaded', function() { 1327 window.getCartAmount = function() { 1328 return parseInt($('.global-cart-count').html()); 1329 }; 1330 }); 1331</script>
1331 1332
1333<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/navbar-4a1e7dfec7e41476.js' type='text/javascript'></script>
vendor: 1 bytes, line 1333
1333
1334<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/currencies-4a1e7dfec7e41476.js' type='text/javascript'></script>
1334 1335<!-- cyb_snippet i18n_modal start --> 1336 1337
1337<script src='//cdn-general.cybassets.com/frontend/shop/i18nSetting-4a1e7dfec7e41476.js' type='text/javascript'></script>
1337 1338
1338<script type="text/javascript"> 1339 $(document).ready(function() { 1340 const props = { 1341 isMultiLanguages: true, 1342 isMultiCurrencies: true, 1343 } 1344 1345 props.languageOptions = [{"handle":"zh-TW","title":"ç¹é«ä¸æ","currency_code":"TWD"},{"handle":"en","title":"English","currency_code":"USD"}] 1346 1347 1348 props.currencyOptions = [{"html_unit":"NT${{amount_no_decimals}}","name":"æ°å°å¹£ (TWD)","html":"NT${{amount_no_decimals}}","unit":"","trailing_zeros":false,"decimal_precision":0,"money_format":"%u%n","format":"NT${{amount_no_decimals}}","email_unit":"NT${{amount_no_decimals}}","code":"TWD","symbol":"NT$","email":"NT${{amount_no_decimals}}"}] 1349 1350 window.renderI18nSetting('.i18n-selector', props) 1351 }) 1352 </script>
1352 1353 1354 1355<!-- cyb_snippet i18n_modal end --> 1356<!-- cyb_snippet _load_fonts start -->
1357<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/load_fonts-4a1e7dfec7e41476.js' type='text/javascript'></script>
vendor: 1 bytes, line 1357
1357
1358<script> 1359 document.addEventListener('DOMContentLoaded', function() { 1360 window.loadFontSetting("{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}") 1361 }) 1362</script>
1362 1363 1364<!-- cyb_snippet _load_fonts end --> 1365<!-- cyb_snippet _custom_icon start -->
1366<script src='//cdn-general.cybassets.com/frontend/shop/navIcon-4a1e7dfec7e41476.js' type='text/javascript'></script>
1366 1367
1368<script> 1369 (function() { 1370 const iconUrlMap = new Map([ 1371 ['custom_icon_type_home', null], 1372 ['custom_icon_type_tracking_items', null], 1373 ['custom_icon_type_account', null], 1374 ['custom_icon_type_cart', null], 1375 ['custom_icon_type_search', null], 1376 ['custom_icon_type_menu', null] 1377 ]); 1378 const elements = document.querySelectorAll('[data-icon-type]'); 1379 elements.forEach((element, index) => { 1380 const iconAttributes = element.getAttribute('data-icon-type'); 1381 1382 const uniqueId = `icon_${iconAttributes}_${index}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; 1383 element.id = uniqueId; 1384 window.renderNavCustomIcon(`#${uniqueId}`, { 1385 navIconStyle: "icon_type_default", 1386 customIconUrl: iconUrlMap.get(iconAttributes) || '', 1387 iconAttributes: iconAttributes, 1388 currentTemplate: "collection", 1389 }); 1390 }); 1391 })(); 1392</script>
1392 1393 1394<!-- cyb_snippet _custom_icon end --> 1395 1396 1397 1398 1399 1400
1400<script src='//cdn-general.cybassets.com/frontend/shop/announcementBar-4a1e7dfec7e41476.js' type='text/javascript'></script>
1400 1401 1402 1403 1404 1405 1406
1406<script> 1407 $(document).ready(function() { 1408 window.renderAnnouncementBar('#announcement-bar', { 1409 sectionId: "announcement_bar", 1410 isIndex: false, 1411 }); 1412 }); 1413 </script>
1413 1414 1415 1416 1417 1418 1419 1420 <!-- template --> 1421 <div id="template" style="flex:1 0 auto; background-color: var(--theme_bg);"> 1422 1423 1424 1425<!-- cyb_snippet breadcrumb start --> 1426 1427<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/breadcrumb-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 1428 1429 1430<div id="site_path" class="qk-bd_b--default qk-bd--product_border"> 1431 <!-- mobile: toggle button (hidden on PC) --> 1432 <div class="qk-container qk-hidden--pc"> 1433 <div class="breadcrumb qk-bg--theme_bg qk-pd_x--0 qk-mg--0 qk-fs--breadcrumb"> 1434 <button 1435 class="bt-toggle qk-bg--theme_bg qk-pd_x--0 qk-w--100 qk-text--left qk-bd--none qk-pos--rel collapsed" 1436 data-toggle="collapse" 1437 data-target=".breadcrumb-content" 1438 > 1439 <a href="/" class="qk-text--text"> 1440 <i class="fas fa-home"></i> 1441 </a> 1442 </button> 1443 </div> 1444 </div> 1445 <!-- breadcrumb nav: single DOM, PC always visible, mobile as collapse dropdown --> 1446 <div class="breadcrumb-content qk-bg--theme_bg collapse"> 1447 <div class="qk-container"> 1448 <!-- cyb_snippet breadcrumb_nav start --> 1449<!-- 主é¡çå麵å å± --> 1450<nav aria-label="breadcrumb"> 1451 <ol 1452 class="breadcrumb qk-bg--theme_bg qk-pd_x--0 qk-mg--0 qk-fs--breadcrumb" 1453 itemscope 1454 itemtype="http://schema.org/BreadcrumbList" 1455 > 1456 1457 <li 1458 class="breadcrumb-item 1459 1460 " 1461 itemprop="itemListElement" 1462 itemscope itemtype="http://schema.org/ListItem"> 1463 <!-- home --> 1464 1465 <a href="/" class="qk-text--text" itemprop="item"> 1466 <i class="fas fa-home"></i> 1467 <span class="qk-display--none" itemprop="name">Home</span> 1468 </a> 1469 <!-- account --> 1470 1471 <meta itemprop="position" content="1"/> 1472 </li> 1473 1474 <li 1475 class="breadcrumb-item 1476 1477 active " 1478 itemprop="itemListElement" 1479 itemscope itemtype="http://schema.org/ListItem"> 1480 <!-- home --> 1481 1482 <a href="/collections/all-product" class="qk-text--text" itemprop="item"> 1483 <span itemprop="name">All Items</span> 1484 </a> 1485 <!-- bundle discount --> 1486 1487 <meta itemprop="position" content="2"/> 1488 </li> 1489 1490 </ol> 1491</nav>
1492<script> 1493 $(document).ready(function () { 1494 if (!window.liquidHelper || !window.liquidHelper.hasBreadcrumbReferrerEnabled) return; 1495 1496 var $collections = $('[data-breadcrumb-links]'); 1497 if (!$collections.length) return; 1498 1499 var refMatch = document.referrer.match(/\/collections\/([^/?#]+)/); 1500 if (!refMatch || refMatch[1] === 'all') return; 1501 1502 var referrerHandle = decodeURIComponent(refMatch[1]); 1503 1504 function getCollectionHandle(url) { 1505 if (!url) return null; 1506 try { 1507 var pathname = new URL(url, location.origin).pathname; 1508 var parts = pathname.split('/'); 1509 var idx = parts.indexOf('collections'); 1510 if (idx === -1 || !parts[idx + 1]) return null; 1511 return decodeURIComponent(parts[idx + 1]); 1512 } catch (e) { 1513 return null; 1514 } 1515 } 1516 1517 var $link = $collections.find('a').filter(function () { 1518 return getCollectionHandle(this.href) === referrerHandle; 1519 }); 1520 1521 if ($link.length) { 1522 $collections.siblings('a.qk-text--accent[href="#"]').remove(); 1523 $collections.empty().append($link); 1524 } 1525 }); 1526</script>
1526 1527 1528<!-- cyb_snippet breadcrumb_nav end --> 1529 </div> 1530 </div> 1531</div> 1532 1533 1534<!-- cyb_snippet breadcrumb end --> 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544<div id="collection" class="qk-mg_t--3"> 1545 <div class="qk-container"> 1546 <div class="row qk-mg_x--0" > 1547 1548 <!-- ä¸è¬ç¾¤çµé --> 1549 <!-- 群çµç°¡è¿° start --> 1550 1551 <!-- 群çµç°¡è¿° end --> 1552 <!-- å´éå表 start --> 1553 1554 <div class="col-md-3 qk-hidden--mobile"> 1555 1556 <!-- cyb_snippet side_menu start --> 1557 1558 1559<ul id="collection_menu_shelf_top" class="sidebar qk-pd_b--1"> 1560 1561 1562 1563 1564 1565 <!-- cyb_snippet components/side_menu/menu start --> 1566 1567 1568 1569 1570 1571 <li class="qk-pos--rel qk-pd--0"> 1572 1573 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--accent" href="/collections/all-product">All Products</a> 1574 1575 </li> 1576 1577 1578 1579 1580 1581 <li class="qk-pos--rel qk-pd--0"> 1582 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_2" aria-expanded=" false "> 1583 1584 <a class="qk-text--heading" href="/collections/classic-nougat"> Almond Nougat Series </a> 1585 1586 </button> 1587 <ul id="collection_menu_shelf_second_2" class="collapse_collection_menu_2 collapse shelf_second qk-pd--0"> 1588 1589 1590 1591 1592 <li class="qk-pos--rel qk-pd--0"> 1593 1594 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/strawberry-nougat"> 1595 Strawberry Flavor Nougat 1596 </a> 1597 1598 </li> 1599 1600 1601 1602 1603 1604 <li class="qk-pos--rel qk-pd--0"> 1605 1606 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/originalnougat"> 1607 Original Flavor Nougat 1608 </a> 1609 1610 </li> 1611 1612 1613 1614 1615 1616 <li class="qk-pos--rel qk-pd--0"> 1617 1618 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/pineapple-nougat"> 1619 Pineapple Flavor Nougat 1620 </a> 1621 1622 </li> 1623 1624 1625 1626 1627 1628 <li class="qk-pos--rel qk-pd--0"> 1629 1630 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/sesamenougat"> 1631 Black Sesame Flavor Nougat 1632 </a> 1633 1634 </li> 1635 1636 1637 1638 1639 1640 <li class="qk-pos--rel qk-pd--0"> 1641 1642 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/salted-egg-yolk-nougat"> 1643 Salted Yolk Nougat 1644 </a> 1645 1646 </li> 1647 1648 1649 </ul> 1650 </li> 1651 1652 1653 1654 1655 1656 <li class="qk-pos--rel qk-pd--0"> 1657 1658 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/snowflake-nougat">Nougat With Biscuits</a> 1659 1660 </li> 1661 1662 1663 1664 1665 1666 <li class="qk-pos--rel qk-pd--0"> 1667 1668 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/milk-caramel">Fudge / Caramel / Milk Candy</a> 1669 1670 </li> 1671 1672 1673 1674 1675 1676 <li class="qk-pos--rel qk-pd--0"> 1677 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_5" aria-expanded=" false "> 1678 1679 <a class="qk-text--heading" href="/collections/original-toffee-cashew-crisp"> Nutty Toffee </a> 1680 1681 </button> 1682 <ul id="collection_menu_shelf_second_5" class="collapse_collection_menu_5 collapse shelf_second qk-pd--0"> 1683 1684 1685 1686 1687 <li class="qk-pos--rel qk-pd--0"> 1688 1689 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/è °æ"> 1690 Nutty Toffee ( Bag Size) 1691 </a> 1692 1693 </li> 1694 1695 1696 1697 1698 1699 <li class="qk-pos--rel qk-pd--0"> 1700 1701 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/æ¸meé ¥"> 1702 Nutty Toffee (Box Size) 1703 </a> 1704 1705 </li> 1706 1707 1708 </ul> 1709 </li> 1710 1711 1712 1713 1714 1715 <li class="qk-pos--rel qk-pd--0"> 1716 1717 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/walnut-cake">Black Date & Walnut Soft Candy</a> 1718 1719 </li> 1720 1721 1722 1723 1724 1725 <li class="qk-pos--rel qk-pd--0"> 1726 1727 <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/20240101">Gift Box</a> 1728 1729 </li> 1730 1731 1732 1733 1734 1735 <li class="qk-pos--rel qk-pd--0"> 1736 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_8" aria-expanded=" false "> 1737 1738 <a class="qk-text--heading" href="/collections/ovaltine_fuyuan"> Collaboration Collection </a> 1739 1740 </button> 1741 <ul id="collection_menu_shelf_second_8" class="collapse_collection_menu_8 collapse shelf_second qk-pd--0"> 1742 1743 1744 1745 1746 <li class="qk-pos--rel qk-pd--0"> 1747 1748 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/ovaltine_co-branded-series"> 1749 Ovaltine Series 1750 </a> 1751 1752 </li> 1753 1754 1755 1756 1757 1758 <li class="qk-pos--rel qk-pd--0"> 1759 1760 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/fuyuan-peanut-butter_co-branded-series"> 1761 Fuyuan Peanut Butter Series 1762 </a> 1763 1764 </li> 1765 1766 1767 </ul> 1768 </li> 1769 1770 1771 1772 1773 1774 <li class="qk-pos--rel qk-pd--0"> 1775 <button class="linklist bt-toggle qk-fw--bold collapsed qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-text--heading qk-bg--theme_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_collection_menu_9" aria-expanded=" false "> 1776 1777 <a class="qk-text--heading" href="/collections/å ¶ä»åå"> Additional Products </a> 1778 1779 </button> 1780 <ul id="collection_menu_shelf_second_9" class="collapse_collection_menu_9 collapse shelf_second qk-pd--0"> 1781 1782 1783 1784 1785 <li class="qk-pos--rel qk-pd--0"> 1786 1787 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/appetizers_sauce"> 1788 Appetizer Sauce 1789 </a> 1790 1791 </li> 1792 1793 1794 1795 1796 1797 <li class="qk-pos--rel qk-pd--0"> 1798 1799 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/products/ts3402"> 1800 Taiwanese Tempura ( Fish Cake ) 1801 </a> 1802 1803 </li> 1804 1805 1806 1807 1808 1809 <li class="qk-pos--rel qk-pd--0"> 1810 1811 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/collections/brown-sugar"> 1812 é»ç³å¡ 1813 </a> 1814 1815 </li> 1816 1817 1818 1819 1820 1821 <li class="qk-pos--rel qk-pd--0"> 1822 1823 <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--theme_bg qk-text--heading" href="/products/ts2001"> 1824 è麻èé¤ 1825 </a> 1826 1827 </li> 1828 1829 1830 </ul> 1831 </li> 1832 1833 1834
1835<script> 1836 $('button a').on('click', function(e) {e.stopPropagation()}); 1837</script>
1837 1838 1839<!-- cyb_snippet components/side_menu/menu end --> 1840 1841 1842 1843</ul> 1844 1845<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/sidebar-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 1846
1847<script> 1848 $(document).ready(function(){ 1849 // å´éé¸å® 1850 if ($('.drawer').length){ 1851 $('.drawer').drawer(); 1852 $('.bt-toggle').click(function(){ 1853 setTimeout(function(){ 1854 $('.drawer')[0].iScroll.refresh() 1855 },500) 1856 }) 1857 } 1858 }); 1859</script>
1859 1860
1861<script> 1862 $(document).ready(function(){ 1863 const languageSize = 2 1864 const currencySize = 1 1865 1866 const initLanguageAndCurrency = ({language,code})=> { 1867 const contentSelector = $("#side-menu-modal__button"); 1868 let content = '' 1869 const isMutipleCurrencies = true 1870 const isMultiLanguages = true 1871 if ( isMultiLanguages && languageSize > 1 ) content = language || (liquidHelper.language && liquidHelper.language.title) 1872 if ( isMutipleCurrencies && (code && content === '')) content = code 1873 else if (isMutipleCurrencies && (code && content !=='')) content = `${content}ï½${code}` 1874 contentSelector.text(content) 1875 } 1876 1877 let code = '' 1878 let language = '' 1879 if (liquidHelper.language) language = liquidHelper.language 1880 if (liquidHelper.getCurrency()) code = liquidHelper.getCurrency().code 1881 1882 initLanguageAndCurrency({ language:language.title, code }) 1883 1884 $("#side-menu-modal__button").click(function() { 1885 const clickable = languageSize > 1 || currencySize > 1 1886 if (clickable) { 1887 $('.drawer').drawer('close'); 1888 const event = new CustomEvent("i18n_selector_clicked"); 1889 document.dispatchEvent(event); 1890 } 1891 }); 1892 1893 document.addEventListener('i18n_modal_confirmed', (e) => { 1894 const { languageTitle, currency } = e.detail; 1895 initLanguageAndCurrency({ language: languageTitle, code: currency }); 1896 }); 1897 }); 1898 1899</script>
1899 1900 1901 1902<!-- cyb_snippet side_menu end --> 1903 1904 1905 </div> 1906 1907 <!-- å´éå表 end --> 1908 <!-- 群çµåå start --> 1909 <div id="collection-content" class="col-lg-9"> 1910 <!-- for SEO:CLS, will be replaced by Vue component --> 1911 <div style="height: 100vh"></div> 1912 </div> 1913 <!-- 群çµåå end --> 1914 1915 </div> 1916 </div> 1917</div> 1918 1919 1920 1921 1922 <!-- cyb_snippet _combo_product_related_items_modal start -->
1922<script src='//cdn-general.cybassets.com/frontend/shop/standaloneRelatedItemsSelectModal-4a1e7dfec7e41476.js' type='text/javascript'></script>
1922 1923
1923<script> 1924 if (!$('#related-items-select-modal').length) { 1925 $('body').append('<div id="related-items-select-modal"></div>'); 1926 document.addEventListener('DOMContentLoaded', function() { 1927 window.renderRelatedItemsSelectModal('#related-items-select-modal', { 1928 hasStockNotificationPlugin: true, 1929 displayProductDiscountsList: true, 1930 }); 1931 }); 1932 } 1933 </script>
1933<!-- cyb_snippet _combo_product_related_items_modal end --> 1934 <!-- cyb_snippet new_addcart_modal start --> 1935<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/vue_product_modal-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 1936 1937<div id="new-addcart-modal" class="container"> 1938 <transition name="modal"> 1939 <product-modal 1940 v-if="showProductModal" 1941 :only-description="onlyDescription" 1942 :product-url="popProductUrl" 1943 :color="color" 1944 :is-collection="isCollection" 1945 :is-show-description="isShowDescription" 1946 :is-quick-buy="isQuickBuy" 1947 :selected-variant-id="selectedVariantId" 1948 :categories="categories" 1949 :call-back="checkoutAddToCartCallback" 1950 ref="productModal" 1951 > 1952 </product-modal> 1953 </transition> 1954</div> 1955 1956<!-- cyb_snippet components/product_modal/product_modal start -->
1957<script type="text/x-template" id="product-modal"> 1958 <div class="modal-mask qk-h--100 qk-w--100 qk-l--0 qk-t--0 qk-pos--fixed" @click="closeModal"> 1959 <div class="modal-content qk-bd--none qk-center qk-bg--theme_bg" :class="{'only-description': onlyDescription}" @click.stop> 1960 <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> 1961 <div class="modal-body custom-scrollbar qk-w--100"> 1962 <div v-if="!isLoading"> 1963 <div id="checkout-product" class="row"> 1964 <div class="col-sm-6 col-xs-4"> 1965 <photo-swiper 1966 :mediaItems="swiperItems" 1967 :current-image-index="currentImageIndex" 1968 :current-variant="currentVariant" 1969 :video-after-image="videoAfterImage" 1970 ></photo-swiper> 1971 </div> 1972 <div class="col-sm-6 col-xs-8"> 1973 <h4 class="qk-fs--hd2 qk-fw--bold qk-text--heading qk-mg--0" v-html="product.title"></h4> 1974 <p class="product_brief qk-text--text qk-fs--body" v-html="product.brief"></p> 1975 <p class="product_slogan qk-text--heading qk-fs--body" v-html="product.slogan"></p> 1976 <div class="swiper_thumbnails" style="margin-bottom: 10px;"> 1977 <swiper-thumbnails 1978 :mediaItems="swiperItems" 1979 :current-image-index="currentImageIndex" 1980 :title="product.title" 1981 @update-current-image-index="(thumbnailIndex) => { currentImageIndex = thumbnailIndex }" 1982 ></swiper-thumbnails> 1983 </div> 1984 1985 <div v-if="!hidePrice" style="margin-bottom: 10px;"> 1986 1987 <span class="price-title qk-fs--body qk-fw--500 qk-text--heading">${ priceTitleTag }</span> 1988 1989 <div> 1990 <span v-html="variantPrice" class="variant-price qk-fs--hd1 qk-fw--bold" :class="[isDiscountPrice ? 'qk-text--discount_price' : 'qk-text--price']"></span> 1991 <del v-html="marketPrice" class="variant-del-price qk-fs--body qk-fw--500 qk-text--text"></del> 1992 </div> 1993 </div> 1994 <div v-if="!onlyDescription" class="controls"> 1995 <div class="variant-quantity qk-display--flex qk-flex--column"> 1996 <div v-if="hasVariant" class="product-variant-options"> 1997 <div v-for="(option, index) in optionInfo" class="product-variant-option" :class="{'product-variant-option--hidden': shouldHideSingleVariantOptions}"> 1998 <div class="advance variant-select-option" v-if="styledShopMenu==='dropDownType'"> 1999 2000 <label>${option.name}</label> 2001 <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> 2002 <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}`)"> 2003 <option value="null" class="select_option-hidden">Please select ${option.name}</option> 2004 <option :style="{ visibility : isMobileSize ? 'hidden' : 'visible' }" v-for="(types) in option.types" :disabled="!types.isValid" :value="types.name">${types.name}</option> 2005 </select> 2006 <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>
2007 <span v-else :value="currentOption[`option${index + 1}`]" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)" v-html="currentOption[`option${index + 1}`]"></span> 2008 </div> 2009 <advance-option v-else :option-key="'option' + (index + 1)" :option="option" :current-option="currentOption" :toggle-current-option="toggleCurrentOption"/> 2010 </div> 2011 </div> 2012 <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)"> 2013 <div class="list_block custom-scrollbar qk-of_x--hidden"> 2014 <h4 class="qk-text--heading qk-fs--body">Applicable Promotions 2015 </h4> 2016 <template v-if="displayPeriodicSalesPages"> 2017 <div v-for="salesPage in product.showableSalesPages" class="discount-list"> 2018 <span class="discount-label qk-fs--breadcrumb qk-bd--default qk-bd--accent qk-bg--white qk-display--il_bk qk-text--accent">Subscription 2019 </span> 2020 <a class="discount-title qk-text--accent qk-fs--body" :href="salesPage.path">${ salesPage.title }</a> 2021 </div> 2022 </template> 2023 <template v-for="discounts in discountsList"> 2024 <div v-for="discount in discounts" class="discount-list"> 2025 <a v-if="discount.url" :href="discount.url" class="discount-title qk-text--accent qk-fs--body"> 2026 ${ discount.title } 2027 </a> 2028 <span v-else class="discount-title qk-text--accent qk-fs--body">${ discount.title }</span> 2029 </div> 2030 </template> 2031 </div> 2032 </div> 2033 <div v-if="showPurchaseControls" class="product-quantity qk-bd--product_border" v-show="!isMobileSize"> 2034 <div class="btn-group qk-w--100" role="group" aria-label="First group"> 2035 <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">ï¼</button> 2036 <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"> 2037 <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">ï¼</button> 2038 </div> 2039 </div> 2040 </div> 2041 <div v-if="showPurchaseControls" class="add-button-wrapper"> 2042 <!-- cyb_snippet _product_modal_button start --> 2043<button 2044 class="btn btn-default add-button qk-cursor--pointer qk-w--100 qk-btn--primary" 2045 :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}" 2046 type="button" 2047 :disabled="isHideAddCartBtn" 2048 @click="addProduct" 2049> 2050 ${ addCartText } 2051</button> 2052 2053<!-- cyb_snippet _product_modal_button end --> 2054 </div> 2055 <div class="product-others qk-fs--body"> 2056 <span class="product-love"> 2057 <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"> 2058 <svg 2059 width="15" 2060 height="15"
2061 viewBox="0 0 24 24" 2062 fill="none" 2063 xmlns="http://www.w3.org/2000/svg"> 2064 <path 2065 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" 2066 stroke="currentColor" 2067 stroke-width="2" 2068 stroke-linecap="round" 2069 stroke-linejoin="round" /> 2070 </svg> 2071 Add to Wishlist 2072 </a> 2073 </span> 2074 <span class="product_sold qk-text--text" v-if="false"> 2075 <span>Sold : 2076 ${ product.totalSold } 2077 Item(s) 2078 </span> 2079 </span> 2080 <span class="product_bonus qk-text--text" v-if="true"> 2081 Redeemable credit(s) per item 2082 <span class="val qk-fw--600 qk-fs--hd2" v-if="currentVariant">${currentVariant.maxUsableBonus}</span> 2083 <span class="val qk-fw--600 qk-fs--hd2" v-else>${maxUsableBonus}</span> 2084 credit(s) 2085 <span v-html="bonusToPrice"/> 2086 </span> 2087 </div> 2088 <div class='product_limit_buy qk-fs--body' v-show="product.minBuy > 0 || product.limitBuy > 0"> 2089 ${limitBuyText} 2090 </div> 2091 </div> 2092 </div> 2093 </div> 2094 <div v-if="isShowDescription" class="row"> 2095 <div class="col-sm-12"> 2096 2097 <div v-if="product.bodyHtml"> 2098 <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading"> 2099 Product Description 2100 </h5> 2101 <div class="ckeditor"> 2102 <div v-html="product.bodyHtml"></div> 2103 </div> 2104 </div> 2105 2106 2107 <div v-if="otherDescriptions['product_description_section_spec']"> 2108 <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading"> 2109 Specifications 2110 </h5> 2111 <div class="ckeditor"> 2112 <div v-html="otherDescriptions['product_description_section_spec']"></div> 2113 </div> 2114 </div> 2115 2116 2117 <div v-if="otherDescriptions['product_description_section_shipping']"> 2118 <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading"> 2119 Shipping Method 2120 </h5> 2121 <div class="ckeditor"> 2122 <div v-html="otherDescriptions['product_description_section_shipping']"></div> 2123 </div> 2124 </div> 2125 2126 </div> 2127 </div> 2128 </div> 2129 <div v-show="isLoading" style="text-align: center; padding-bottom: 20px;"> 2130 <i class="fas fa-spinner fa-spin fa-fw fa-2x"></i> 2131 </div> 2132 </div> 2133 <!-- cyb_snippet _product_modal_button_mobile start --> 2134 <div 2135 v-if="showPurchaseControls" 2136 v-show="isMobileSize" 2137 class="mobile_footer" 2138 :class="{'mobile_footer-z': variantSize > 1 }"> 2139 <div class="product-quantity"> 2140 <div class="btn-group qk-w--100" role="group" aria-label="First group"> 2141 <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">ï¼</button> 2142 <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"> 2143 <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">ï¼</button> 2144 </div> 2145 </div> 2146 <button 2147 v-if="!isLoading && !onlyDescription" 2148 class="btn btn-mobile add-button qk-btn qk-btn--primary qk-btn--lg" 2149 :class="{selected: isChoose, adding: adding || isHideAddCartBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}" 2150 type="button" 2151 :disabled="isHideAddCartBtn" 2152 @click="addProduct"> 2153 ${ addCartText } 2154 </button> 2155</div> 2156<div 2157 class="mobile-modal" 2158 :class="{ 'modal-open': isModalSelectShow && isMobileSize }"> 2159 <div class="mobile_modal-content"> 2160 <div class="modal_close-button"> 2161 <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> 2162 </div> 2163 2164 <p>Please select ${modalOption.name}</p> 2165 <div class="modal_select-templete qk-display--flex qk-of_y--auto qk-w--100"> 2166 <div class="options-container"> 2167 <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> 2168 </div> 2169 </div> 2170 <div v-if="variantSize > 1" class="modal_select_footer qk-display--flex"> 2171 <button type="button" class="modal_cancel qk-bd--default qk-btn--secondary qk-bd--button qk-text--button" @click="onChangeModalSelect(false,false)">Cancel</button> 2172 <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> 2173 </div> 2174 </div> 2175</div> 2176 2177<!-- cyb_snippet _product_modal_button_mobile end --> 2178 </div> 2179 </div> 2180</script>
2180 2181 2182<!-- cyb_snippet components/product_modal/color_image_option start -->
2183<script id="color-image-option" type="text/x-template"> 2184 <div class="color-image qk-display--flex qk-flex--wrap qk-align--center"> 2185 <div class="title">Color</div> 2186 <div 2187 v-for="(imageColor, index) in imageColors" 2188 :class="{ 2189 'focus': !currentOption[optionKey] === option.types[index].name && currentImageIndex === index, 2190 'selected': currentOption[optionKey] === option.types[index].name, 2191 'disabled': !option.types[index].isValid 2192 }" 2193 class="image-option img-flex qk-bd--default qk-bd--transparent qk-display--block qk-pos--rel" 2194 @mouseleave="setCurrentImageIndex(index)" 2195 @mouseover="getOptionImageIndex(index)" 2196 @click="setOption(optionKey, index)" 2197 > 2198 <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image"> 2199 <img v-else src="/assets/no-image-large.png" alt="image"> 2200 </div> 2201 </div> 2202</script>
2202 2203
2204<script type="text/javascript"> 2205 $(document).ready(function() { 2206 window.themeHelper.productModalComponents['color-image-option'] = { 2207 template: '#color-image-option', 2208 delimiters: ['${', '}'], 2209 props: { 2210 optionKey: String, 2211 option: Object, 2212 product: Object, 2213 imageColors: Array, 2214 isChoose: Boolean, 2215 currentImageIndex: Number, 2216 setCurrentImageIndex: Function, 2217 getOptionImageIndex: Function, 2218 currentOption: Object, 2219 toggleCurrentOption: Function, 2220 }, 2221 methods: { 2222 setOption: function(optionKey, index) { 2223 const type = this.option.types[index]; 2224 if(type.isValid){ 2225 this.toggleCurrentOption(optionKey, type.name); 2226 } 2227 } 2228 } 2229 }; 2230 }); 2231</script>
2231 2232 2233<!-- cyb_snippet components/product_modal/color_image_option end --> 2234<!-- cyb_snippet components/product_modal/advance_option start -->
2235<script id="advance-option" type="text/x-template"> 2236 <div class="advance"> 2237 <div class="title qk-text--heading qk-fs--body">${option.name}</div> 2238 <div 2239 v-for="type in option.types" 2240 :class="{ 2241 'selected': currentOption[optionKey] === type.name, 2242 'disabled': !type.isValid 2243 }" 2244 @click="setOption(optionKey, type)" 2245 class="option qk-btn qk-bd--button qk-text--button qk-pd_x--1" 2246 > 2247 ${type.name} 2248 </div> 2249 </div> 2250</script>
2250 2251
2252<script type="text/javascript"> 2253 $(document).ready(function() { 2254 window.themeHelper.productModalComponents['advance-option'] = { 2255 template: '#advance-option', 2256 delimiters: ['${', '}'], 2257 props: { 2258 optionKey: String, 2259 option: Object, 2260 product: Object, 2261 currentOption: Object, 2262 toggleCurrentOption: Function, 2263 }, 2264 methods: { 2265 setOption: function(optionKey, type) { 2266 if(type.isValid){ 2267 this.toggleCurrentOption(optionKey, type.name); 2268 } 2269 } 2270 } 2271 }; 2272 }); 2273</script>
2273 2274 2275<!-- cyb_snippet components/product_modal/advance_option end --> 2276 2277<!-- cyb_snippet components/product_modal/photo_swiper start --> 2278 2279
2280<script id="photo-swiper" type="text/x-template"> 2281 <div ref="photoSwiper" id="photo_swiper" class="photos swiper swiper-container"> 2282 <div class="swiper-wrapper"> 2283 <template v-if="hasImage"> 2284 <div v-for="(item, index) in mediaItems" :key="index" class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top default_scale"> 2285 <video-player v-if="item.url" :video="item" 2286 :video-poster=" !!mediaItems[firstImageIndex] ? mediaItems[firstImageIndex].large : '//cdn-general.cybassets.com/img_loading.svg' " 2287 > 2288 </video-player> 2289 <img v-else class="qk-center" :src="item.large" alt="image"/> 2290 </div> 2291 </template> 2292 <div v-else class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top default_scale"> 2293 <img src="//cdn-general.cybassets.com/assets/no-image-large-2b95ea56c455be9ce081d81c14eded925df68bf8fa38809e46f6af8fcdd5f9bc.png" alt="image" /> 2294 </div> 2295 </div> 2296 <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> 2297 <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> 2298 2299 <div class="photo-pagination qk-bd--default qk-bd--body qk-text--center qk-text--body qk-fs--breadcrumb qk-visible-sm"> 2300 <span class="current-index qk-text--default_dark">${currentImageIndex +1 }</span><span class="pagination-slash">/</span> 2301 <span>${mediaItems.length}</span> 2302 </div> 2303 </div> 2304</script>
2304 2305
2306<script> 2307 $(document).ready(function () { 2308 window.themeHelper.productModalComponents['photo-swiper'] = { 2309 template: '#photo-swiper', 2310 delimiters: ['${', '}'], 2311 props: { 2312 mediaItems: Array, 2313 currentImageIndex: Number, 2314 currentVariant: Object, 2315 videoAfterImage: Boolean, 2316 }, 2317 data: function () { 2318 return { 2319 swiper: {}, 2320 swiperOption: { 2321 preventInteractionOnTransition: true, 2322 rewind: true, 2323 spaceBetween: 5, 2324 slidesPerView: 1, 2325 navigation: { 2326 nextEl: '.photo-next', 2327 prevEl: '.photo-prev' 2328 } 2329 }, 2330 showBtn: true, 2331 isVariantReposition: false, 2332 } 2333 }, 2334 mounted: function() { 2335 this.swiper = new Swiper('#photo_swiper', this.swiperOption); 2336 this.swiper.on('slideChange', this.slideOnChange); 2337 }, 2338 watch: { 2339 currentImageIndex: function() { 2340 this.slideToIndex(); 2341 }, 2342 currentVariant: { 2343 immediate: true, 2344 handler: function() { 2345 this.showBtn = this.mediaItems.length > 1; 2346 this.isVariantReposition = true; 2347 this.$nextTick(() => { 2348 if (this.swiper) { 2349 this.swiper.update(); 2350 this.swiper.slideToLoop(this.initialItemIndex) 2351 this.slideOnChange(); 2352 this.isVariantReposition = false; 2353 } 2354 }); 2355 }, 2356 }, 2357 }, 2358 computed: { 2359 hasImage: function() { 2360 return this.mediaItems.length > 0; 2361 }, 2362 hasVideo: function() { 2363 return this.mediaItems.findIndex(item => !!item.url) !== -1; 2364 }, 2365 variantPhotos: function() { 2366 if (this.currentVariant?.photos?.length) { 2367 return this.currentVariant.photos; 2368 } else { 2369 return null; 2370 } 2371 }, 2372 initialItemIndex: function() { 2373 if (this.hasVideo && !this.videoAfterImage) { 2374 // Focus on photo if "variant with photos" selected, video otherwise 2375 return this.variantPhotos?.length ? 1 : 0; 2376 } else { 2377 // Focus on first photo 2378 return 0; 2379 } 2380 }, 2381 }, 2382 methods: { 2383 slideOnChange: function() { 2384 themeHelper.EventBus.$emit('photoOnChange', this.swiper.realIndex, this.isVariantReposition); 2385 }, 2386 slideToIndex: function() { 2387 if(this.swiper.realIndex != this.currentImageIndex) { 2388 this.swiper.slideToLoop(this.currentImageIndex); 2389 this.swiper.update(); 2390 } 2391 }, 2392 } 2393 }; 2394 }); 2395</script>
2395 2396 2397 2398<!-- cyb_snippet components/product_modal/video_player start -->
2399<script id="video-player" type="text/x-template"> 2400 <div class="videoPlayer__wrapper" @click="handleVideoClick"> 2401 <video 2402 id='modal-video' 2403 class="videoPlayer__video qk-cursor--pointer qk-center" 2404 :poster="videoPoster" 2405 loop defaultMuted muted playsinline webkit-playsinline autoplay 2406 > 2407 <source :src="videoUrl" type="video/mp4"> 2408 <p>Your browser does not support HTML 5 video.</p> 2409 </video> 2410 <button id="modal-video-button" class="videoPlayer__pauseButton"></button> 2411 </div> 2412</script>
2412 2413
2414<script> 2415 $(document).ready(function () { 2416 window.themeHelper.productModalComponents['video-player'] = { 2417 template: '#video-player', 2418 delimiters: ['${', '}'], 2419 props: { 2420 video: Object, 2421 videoPoster: String, 2422 }, 2423 data: function() { 2424 return { 2425 videoElement: null, 2426 buttonElement: null, 2427 }; 2428 }, 2429 mounted: function() { 2430 this.videoElement = $('#modal-video')[0]; 2431 this.buttonElement = $('#modal-video-button'); 2432 this.setVideoVolumeZero(); 2433 this.videoElement.addEventListener('canplay', (event) => { 2434 this.sendGtag('play'); 2435 }, { once: true }); 2436 }, 2437 computed: { 2438 videoUrl: function() { 2439 return this.video.url; 2440 } 2441 }, 2442 methods: { 2443 sendGtag: function(action) { 2444 window.productVideoView && productVideoView(action); 2445 }, 2446 setVideoVolumeZero: function() { 2447 this.videoElement.volume = 0; 2448 }, 2449 handleVideoClick: function() { 2450 if (this.videoElement.paused){ 2451 this.videoElement.play(); 2452 this.sendGtag('play'); 2453 } else { 2454 this.videoElement.pause(); 2455 this.sendGtag('paused'); 2456 } 2457 this.handleVideoButtonDisplay(this.buttonElement, this.videoElement); 2458 }, 2459 handleVideoButtonDisplay: function(button, video) { 2460 button.toggleClass('videoPlayer__playButton', video.paused); 2461 button.toggleClass('videoPlayer__pauseButton', !video.paused); 2462 }, 2463 } 2464 }; 2465 }); 2466</script>
2466 2467 2468<!-- cyb_snippet components/product_modal/video_player end --> 2469 2470<!-- cyb_snippet components/product_modal/photo_swiper end --> 2471<!-- cyb_snippet components/product_modal/swiper_thumbnails start -->
2472<script id="swiper-thumbnails" type="text/x-template"> 2473 <div 2474 v-for="(thumbnail, index) in allThumbnails" 2475 :key="index" 2476 class="product-thumbnail img-flex qk-of--hidden qk-display--il_bk qk-cursor--pointer qk-bd--default qk-bd--transparent default_scale" 2477 :class="{ focus: index === currentImageIndex }" 2478 @mouseover="updateCurrentImageIndex(index)" 2479 > 2480 <template v-if="thumbnail.isVideo"> 2481 <video class="qk-w--100 qk-h--100" :src="thumbnail.url" defaultMuted playsinline></video> 2482 <button class="videoPlayer__playButton"></button> 2483 </template> 2484 <img v-else :src="thumbnail.url" :alt="title" class="qk-w--100 qk-h--100"> 2485 </div> 2486</script>
2486 2487
2488<script type="text/javascript"> 2489 $(document).ready(function () { 2490 window.themeHelper.productModalComponents['swiper-thumbnails'] = { 2491 template: '#swiper-thumbnails', 2492 delimiters: ['${', '}'], 2493 props: { 2494 title: String, 2495 mediaItems: Array, 2496 currentImageIndex: Number, 2497 }, 2498 emits: ['updateCurrentImageIndex'], 2499 methods: { 2500 updateCurrentImageIndex: function(thumbnailIndex) { 2501 if (thumbnailIndex !== this.currentImageIndex ) { 2502 this.$emit('updateCurrentImageIndex', thumbnailIndex); 2503 } 2504 }, 2505 }, 2506 mounted() { 2507 // can be removed after replacing video thumbnail with img 2508 const thumbnailVideo = $('.product-thumbnail video')[0]; 2509 if (!!thumbnailVideo) { 2510 thumbnailVideo.volume = 0; 2511 const promise = thumbnailVideo.play(); 2512 promise.then(() => { 2513 thumbnailVideo.pause(); 2514 }) 2515 } 2516 }, 2517 computed: { 2518 allThumbnails: function() { 2519 return this.mediaItems.map(item => ({ 2520 isVideo: !!item.url, 2521 url: item.url || item.medium 2522 })); 2523 }, 2524 }, 2525 watch: { 2526 allThumbnails: { 2527 handler(){ 2528 this.updateCurrentImageIndex(this.currentImageIndex); 2529 } 2530 } 2531 } 2532 }; 2533 }); 2534</script>
2534 2535 2536<!-- cyb_snippet components/product_modal/swiper_thumbnails end --> 2537 2538 2539<!-- cyb_snippet _product_modal_js start -->
2540<script type="text/javascript"> 2541 $(document).ready(function() { 2542 var categoryLevels = []; 2543 var productCategoryLevels = null; 2544 var pageMainProductId = null; 2545 window.themeHelper.productModalComponents['product-modal'] = { 2546 template: '#product-modal', 2547 delimiters: [ 2548 '${', '}' 2549 ], 2550 props: { 2551 onlyDescription: Boolean, 2552 cartItems: Array, 2553 groupId: Number, 2554 productUrl: String, 2555 color: String, // unused 2556 collectionId: Number, 2557 categories: Array, 2558 // 夿·æ¯å¦æè²ç¥¨å±é 2559 isCollection: { 2560 type: Boolean, 2561 required: false, 2562 default: false, 2563 }, 2564 // 夿·å å ¥è³¼ç©è»çæ¹æ³ 2565 isNnCollection: Boolean, 2566 isNewNnCollection: Boolean, 2567 isBundleDiscount: Boolean, 2568 2569 // 夿·æ¯å¦é¡¯ç¤ºååæè¿° 2570 isShowDescription: { 2571 type: Boolean, 2572 default: true 2573 }, 2574 2575 // 夿·æ¯å¦çºç«å³è³¼è²· 2576 isQuickBuy: { 2577 type: Boolean, 2578 default: false 2579 }, 2580 selectedVariantId: Number, 2581 callBack: Function 2582 }, 2583 data: function() { 2584 return { 2585 styledShopMenu: "buttonType", 2586 selectOption: '', 2587 selectCurrentStr:'', 2588 isModalSelectShow: false, 2589 modalOption: {}, 2590 adding: false, 2591 currentImageIndex: 0, 2592 _navState: { variantId: null, photoIndex: 0 }, 2593 currentOption: { 2594 option1: null, 2595 option2: null, 2596 option3: null 2597 }, 2598 currentVariant: null, 2599 variantNotifications: null, 2600 currentVariantIndex: null, 2601 product: {}, 2602 isChoose: false, 2603 isLoading: true, 2604 isEmptyClickable: liquidHelper.isEmptyClickable, 2605 quantity: 1, 2606 maxUsableBonus: 0, 2607 isDiscountPrice: false, 2608 displayProductDiscountsList: true, 2609 displayPeriodicSalesPages:true, 2610 discountsList: null, 2611 hasVideoPlugin: true, 2612 videoDisplayLocation: "before", 2613 hasStockNotificationPlugin: true, 2614 isDisplayPriceRange: null, 2615 hasVariantPriceRangePlugin: true, 2616 hasHideSingleVariantOptionsPlugin: false, 2617 } 2618 }, 2619 mounted: function() { 2620 this.getProductDetail(); 2621 $('.custom-scrollbar').addCustomScrollbar(); 2622 themeHelper.EventBus.$on('photoOnChange', this.photoOnChange); 2623 }, 2624 beforeUnmount: function() { 2625 themeHelper.EventBus.$off('photoOnChange', this.photoOnChange); 2626 }, 2627 computed: { 2628 photoUrls: function() { 2629 return this.product.photoUrls.length > 0 2630 ? this.product.photoUrls 2631 : [this.featuredImage]; 2632 }, 2633 photoUrlsMap: function() { 2634 var map = {}; 2635 var urls = this.product.photoUrls; 2636 this.product.photos.forEach(function(photo, index) { 2637 map[photo.photo.id] = urls[index]; 2638 }); 2639 2640 return map; 2641 }, 2642 featuredImage: function() { 2643 return this.product.featuredImage; 2644 }, 2645 swiperPhotos: function() { 2646 if (!this.photoUrls.length) { 2647 return [this.featuredImage]; 2648 } 2649 2650 if (this.currentVariant && this.currentVariant.photos.length) { 2651 var map = this.photoUrlsMap; 2652 return this.currentVariant.photos.map(function(p) { 2653 return map[p.id]; 2654 }); 2655 } 2656 2657 return this.photoUrls; 2658 }, 2659 productVideo: function() { 2660 return this.product.video; 2661 }, 2662 videoAfterImage: function() { 2663 return this.videoDisplayLocation === 'after'; 2664 }, 2665 swiperItems: function() { 2666 const media = [...this.swiperPhotos]; 2667 if ( 2668 this.hasVideoPlugin && this.productVideo.url 2669 ) { 2670 this.videoAfterImage 2671 ? media.push(this.productVideo) 2672 : media.unshift(this.productVideo); 2673 } 2674 return media; 2675 }, 2676 firstImageIndex: function() { 2677 return this.hasVideoPlugin && this.productVideo.url && !this.videoAfterImage 2678 ? 1 2679 : 0 2680 }, 2681 otherDescriptions: function() { 2682 var descriptions = {}; 2683 this.product.otherDescriptions.forEach(function(od) { 2684 descriptions[od.settingName] = od.bodyHtml; 2685 }) 2686 return descriptions 2687 }, 2688 variantOptions: function() { 2689 return themeHelper.variantOptions(this.product); 2690 }, 2691 firstValidVariant: function() { 2692 var self = this; 2693 var result = this.product.variants.find(function(variant) { 2694 // å¢å product modal è¯çµ¡åºå®¶ property 2695 variant.imgUrl = ""; 2696 variant.productTitle = ""; 2697 2698 return variant.available; 2699 }); 2700 2701 return result 2702 ? result 2703 : null; 2704 }, 2705 selectedValidVariant: function() { 2706 var self = this; 2707 var result = this.variantOptions.find(function(variant) { 2708 return variant.id === self.selectedVariantId; 2709 }); 2710 2711 return result 2712 ? result 2713 : null; 2714 }, 2715 totalInventoryQuantity: function(product) { 2716 return themeHelper.totalInventoryQuantity(this.product) 2717 }, 2718 addCartText: function() { 2719 var variants = parseInt(""); 2720 let isRegisteredNotification = this.currentVariant && this.variantNotifications && this.variantNotifications[this.currentVariant.id] 2721 if (this.isNnCollection || this.isBundleDiscount) { 2722 if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) { 2723 if (this.currentVariant.inventoryPolicy === 'continue') { 2724 if (this.isNnCollection) { 2725 return this.isChoose && !this.isNewNnCollection 2726 ? 'Ordered' 2727 : 'Pre-order'; 2728 } 2729 } else { 2730 return 'Sold out'; 2731 } 2732 } 2733 if (this.totalInventoryQuantity === 0) { 2734 return 'Sold out'; 2735 } 2736 return this.isChoose && !this.isNewNnCollection 2737 ? 'Selected' 2738 : 'Select'; 2739 } else { 2740 if (this.isQuickBuy) { 2741 if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) { 2742 if (this.currentVariant.inventoryPolicy === 'continue'){ 2743 return 'Order Now' 2744 } 2745 return this.hasStockNotificationPlugin 2746 ? (isRegisteredNotification
2747 ? 'Notification Enabled' 2748 : 'Sold out! Notify me when the product is available.') 2749 : 'Contact Shop' 2750 } 2751 return 'BUY NOW'; 2752 } else { 2753 if (this.currentVariant) { 2754 if (!themeHelper.variantIsAvailable(this.currentVariant)) { 2755 if (this.currentVariant.inventoryPolicy === 'continue'){ 2756 return 'Pre-order' 2757 } 2758 return this.hasStockNotificationPlugin 2759 ? (isRegisteredNotification 2760 ? 'Notification Enabled' 2761 : 'Sold out! Notify me when the product is available.') 2762 : 'Contact Shop' 2763 } 2764 } else { 2765 if (this.totalInventoryQuantity === 0) { 2766 return 'Sold out'; 2767 } 2768 } 2769 return 'ADD TO CART'; 2770 } 2771 } 2772 }, 2773 cartItem: function() { 2774 if (!this.currentVariant) { 2775 return null 2776 } 2777 return { 2778 id: this.currentVariant.id, 2779 groupId: this.groupId, 2780 productId: this.product.id, 2781 title: this.product.title, 2782 photo: this.currentVariant.imgUrl || this.featuredImage.large, 2783 quantity: this.quantity, 2784 price: this.currentVariant.price, 2785 variant: this.currentVariant, 2786 product: this.product 2787 } 2788 }, 2789 options: function() { 2790 return this.product.options; 2791 }, 2792 optionTypes: function() { 2793 2794 // å æ ¹æè¨å®çvariantsä¾æåº 2795 var self = this; 2796 2797 var option1 = []; 2798 var option2 = []; 2799 var option3 = [];
2800 this.product.variants.forEach(function(item) { 2801 if (item.option1 !== null) { 2802 option1.push(item.option1); 2803 } 2804 if (item.option2 !== null) { 2805 option2.push(item.option2); 2806 } 2807 if (item.option3 !== null) { 2808 option3.push(item.option3); 2809 } 2810 }) 2811 var filteredOptionTypes = []; 2812 this.product.optionTypes.forEach(function(item, index) { 2813 filteredOptionTypes.push(self.getUniqueVariant(eval('option' + ( 2814 index + 1 2815 ))).join(',')); 2816 }); 2817 return filteredOptionTypes; 2818 }, 2819 optionInfo: function() { 2820 var self = this; 2821 2822 return self.options.map(function(option, index) { 2823 return { 2824 name: option, 2825 types: self.getOptions('option' + ( 2826 index + 1 2827 ), self.optionTypes[index].split(',')) 2828 } 2829 }); 2830 }, 2831 hasVariant: function() { 2832 return this.product.options.length > 0; 2833 }, 2834 shouldHideSingleVariantOptions: function() { 2835 return this.hasHideSingleVariantOptionsPlugin && 2836 this.product.variants && 2837 this.product.variants.length <= 1; 2838 }, 2839 variantSize: function() { 2840 if(this.product.options){ 2841 return this.product.options.length; 2842 } 2843 }, 2844 firstVariant: function() { 2845 return this.product.variants[0]; 2846 }, 2847 firstCheapestVariant: function() { 2848 return this.product.variants.find((v)=> (v.price === this.priceStats.minPrice)); 2849 }, 2850 priceStats: function() { 2851 return this.product.variants.reduce(function(acc, variant) { 2852 return { 2853 minPrice: variant.price < acc.minPrice ? variant.price : acc.minPrice, 2854 maxPrice: variant.price > acc.maxPrice ? variant.price : acc.maxPrice, 2855 }; 2856 }, { 2857 minPrice: this.firstVariant.price, 2858 maxPrice: this.firstVariant.price, 2859 }); 2860 }, 2861 hidePrice: function() { 2862 return this.product && this.product.hidePrice === true; 2863 }, 2864 salesModePurchasable: function() { 2865 return !(this.product && this.product.salesModePurchasable === false); 2866 }, 2867 // - 任鏿æ£ï¼ç´ é ç¶ ï¼ã鏿ãåªæ¯å é²è©¦ç®æ¸ å®ï¼ä¸æç´æ¥ä¸å®ï¼æ åªæèå¹åå 2868 // - å ¶ä»æ å¢ï¼ååé ã群çµé ãå¤å±¤ç´åé¡ãæå°ãé¦é åååå¡ï¼ï¼ä¸å¯è³¼è²·ï¼å«èå¹ï¼å°±æ´çµæ¶æ 2869 showPurchaseControls: function() { 2870 if (this.isNnCollection || this.isBundleDiscount) { 2871 return !this.hidePrice; 2872 } 2873 return this.salesModePurchasable; 2874 }, 2875 variantPrice: function() { 2876 if (this.hidePrice) { 2877 return ''; 2878 } 2879 var from = liquidHelper.defaultCurrency; 2880 if (this.currentVariant) { 2881 return moneySymbol(this.currentVariant.price, from); 2882 } 2883 if (this.product.variants.length === 1) { 2884 return moneySymbol(this.firstVariant.price, from); 2885 } 2886 2887 var minPrice = this.priceStats.minPrice; 2888 var maxPrice = this.priceStats.maxPrice; 2889 2890 if (minPrice !== maxPrice && (!this.hasVariantPriceRangePlugin || this.isDisplayPriceRange)) { 2891 this.isDiscountPrice = false; 2892 return moneySymbol(minPrice, from) + '~' + moneySymbol(maxPrice, from); 2893 } else { 2894 return moneySymbol(minPrice, from); 2895 } 2896 }, 2897 marketPrice: function() { 2898 if (this.hidePrice) { 2899 this.isDiscountPrice = false; 2900 return; 2901 } 2902 var from = liquidHelper.defaultCurrency; 2903 if (this.currentVariant) { 2904 this.isDiscountPrice = false; 2905 if (this.currentVariant.compareAtPrice && this.currentVariant.compareAtPrice > this.currentVariant.price) { 2906 this.isDiscountPrice = true; 2907 return moneySymbol(this.currentVariant.compareAtPrice, from); 2908 } 2909 } else { 2910 if (!_.includes(this.variantPrice, '~')) { 2911 const price = Number(this.variantPrice.replace(/[^0-9.
2911-]/g, "")) 2912 // æªé¸ææ¬¾å¼ä¹ä¸é¡¯ç¤ºåéæï¼é¡¯ç¤ºç¬¬ä¸åæä¾¿å®ç款å¼çå®å¹ 2913 if (this.firstCheapestVariant.compareAtPrice && this.firstCheapestVariant.compareAtPrice > price){ 2914 this.isDiscountPrice = true; 2915 return moneySymbol(this.firstCheapestVariant.compareAtPrice, from); 2916 } 2917 // æªé¸ææ¬¾å¼æè¦æ¹åä¸è¬å¹æ ¼é¡è² 2918 this.isDiscountPrice = false; 2919 } 2920 } 2921 }, 2922 isShowDropdownList: function() { 2923 if (this.product.options.length > 0) { 2924 return true; 2925 } 2926 return this.product.variants.length > 1 2927 }, 2928 priceTitleTag: function() { 2929 return this.marketPrice 2930 ? getDiscountPriceName() 2931 : getDiscountPriceSuggestionName(); 2932 }, 2933 isHideAddCartBtn: function() { 2934 if (this.addCartText === 'Sold out') { 2935 return true; 2936 } 2937 return false; 2938 }, 2939 isSecondaryBtn: function() { 2940 if (this.addCartText === 'Contact Shop') { 2941 return true; 2942 } 2943 return false; 2944 }, 2945 variantsMaxUsableBonus: function() { 2946 var variants = this.product.variants; 2947 var maxUsableBonusArray = variants.map(function(item) { 2948 return item.maxUsableBonus 2949 }); 2950 return Math.max.apply(null, maxUsableBonusArray); 2951 }, 2952 bonusToPrice: function() { 2953 const bonus = this.currentVariant 2954 ? this.currentVariant.maxUsableBonus 2955 : this.maxUsableBonus; 2956 const price = Math.floor(bonus / window.liquidHelper.conversionBonus); 2957 const priceWithMoney = window.themeHelper.productDisplayCurrencyBlock(price); 2958 return "equivalent to value".replace('value', priceWithMoney); 2959 }, 2960 isMobileSize: function() { 2961 return window.innerWidth <= 580 2962 }, 2963 limitBuyText: function () { 2964 const minCount = this.product.minBuy; 2965 const maxCount = this.product.limitBuy; 2966 if (minCount > 0 && maxCount > 0) { 2967 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); 2968 } 2969 if (minCount > 0) { 2970 return 'This product requires a minimum order of minCount pieces per order'.replace('minCount', minCount); 2971 } 2972 if (maxCount > 0) { 2973 return 'For this product, each order allows a maximum purchase of maxCount units.'.replace('maxCount', maxCount); 2974 } 2975 return ''; 2976 } 2977 }, 2978 methods: { 2979 onClickSelectModal: function(objData, selectOptionStr) { 2980 this.isModalSelectShow = true; 2981 this.modalOption = objData; 2982 this.selectOption = selectOptionStr 2983 this.selectCurrentStr = this.currentOption && (String(this.currentOption[selectOptionStr]) || null) 2984 }, 2985 onChangeModalSelect: function(flag, isSelect) { 2986 if(!isSelect){ 2987 this.setOption(this.selectOption,this.selectCurrentStr,this.modalOption.types) 2988 } 2989 this.isModalSelectShow = flag; 2990 }, 2991 setOption: function(optionKey, type, dataArr) { 2992 let flag = true 2993 dataArr.forEach(item => { 2994 if (item.name === type) { 2995 flag = item.isValid 2996 } 2997 }) 2998 if (flag) { 2999 this.toggleCurrentOption(optionKey, type) 3000 } 3001 }, 3002 addToWishListEvent: function() { 3003 try { 3004 if (appMarketAddToWishListEvent) { 3005 var product = this.product; 3006 var currentVariant = this.currentVariant 3007 var element = $(`.btn[data-id=${product.id}]`); 3008 var index; 3009 var listName; 3010 if (element) { 3011 index = element.data('position') 3012 listName = element.data('list') 3013 } 3014 // sku_properties:é¸ä¸æ¬¾å¼ç option pairs(ç¶åèªç³»),é¡åå zip å¼ 3015 var optionValues = [currentVariant.option1, currentVariant.option2, currentVariant.option3]; 3016 var properties = [];
3017 (product.options || []).forEach(function(optionName, i) { 3018 if (optionName && optionValues[i]) { 3019 properties.push({ name: optionName, value: optionValues[i] }); 3020 } 3021 }); 3022 var dataSet = { 3023 name: product.title, 3024 category: product.productType, 3025 categories: (this.categories && this.categories.length) ? this.categories : (categoryLevels.length ? categoryLevels : (product.id === pageMainProductId ? productCategoryLevels : undefined)), 3026 sku: currentVariant.sku, 3027 price: currentVariant.price, 3028 compare_at_price: currentVariant.compareAtPrice, 3029 properties: properties, 3030 quantity: currentVariant.inventoryQuantity, 3031 variant: currentVariant.title, 3032 listName: listName || null, 3033 productId: product.id, 3034 variantId: currentVariant.id, 3035 index: Number(index) || 0, 3036 } 3037 appMarketAddToWishListEvent(dataSet) 3038 } 3039 } catch (e) { 3040 console.error(e) 3041 } 3042 }, 3043 addWishList: function() { 3044 if (this.currentVariant === null) { 3045 window.msg('Please select product specifications', 'warning').show(); 3046 return; 3047 } 3048 var productVariantId = this.currentVariant.id; 3049 var addToWishListEvent = this.addToWishListEvent 3050 $.ajax({ 3051 method: 'POST', 3052 url: '/tracking_items', 3053 dataType: 'json', 3054 data: { 3055 product_variant_id: productVariantId 3056 }, 3057 success: function(response) { 3058 if (response.message) { 3059 window.msg(response.message, 'success').show(); 3060 addToWishListEvent() 3061 } 3062 3063 if (response.error) { 3064 window.msg(response.error, 'error').show(); 3065 3066 } 3067 if (response.info) { 3068 window.msg(response.info, 'info').show(); 3069 } 3070 if (response.success === false) { 3071 if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) { 3072 window.location = "/" + window.liquidHelper.language.handle + "/account/login"; 3073 } else { 3074 window.location = "/account/login"; 3075 } 3076 } 3077 } 3078 }); 3079 }, 3080 setChoose: function(currentVariant) { 3081 this.maxUsableBonus = 0; 3082 var quantity = 1; 3083 var cartItem = null; 3084 if (!this.isNnCollection && this.cartItems) { 3085 cartItem = this.normalGetChoosenItem(currentVariant); 3086 } 3087 if (this.isNnCollection) { 3088 cartItem = this.nnCollectionGetChoosenItem(currentVariant); 3089 } 3090 this.isChoose = !! cartItem; 3091 if (this.isNewNnCollection) { 3092 return 3093 } 3094 this.quantity = cartItem 3095 ? cartItem.quantity 3096 : this.quantity; 3097 3098 // product modal è¯çµ¡åºå®¶æ å¢ 3099 if (currentVariant) { 3100 var photoIndex = 0; 3101 if (! currentVariant.imgUrl) { 3102 currentVariant.imgUrl = this.swiperPhotos.length > 0 3103 ? (this.swiperPhotos[photoIndex] && this.swiperPhotos[photoIndex].large) 3104 : this.featuredImage.large; 3105 } 3106 currentVariant.productTitle = this.product.title + ' - ' + this.currentVariant.title; 3107 } 3108 }, 3109 normalGetChoosenItem: function(currentVariant) { 3110 return this.cartItems.find(function(cartItem) { 3111 return currentVariant && cartItem.id === currentVariant.id; 3112 }); 3113 }, 3114 nnCollectionGetChoosenItem: function(currentVariant) { 3115 var isSelected = null; 3116 if (! currentVariant) { 3117 return isSelected; 3118 } 3119 if (this.isNewNnCollection) { 3120 var cart = store.get(`SpecialCollectionCart_${this.collectionId}`); 3121 isSelected = cart && cart.find((item) => item.variant_id == currentVariant.id) || null; 3122 } else { 3123 store.each(function(value, key) { 3124 var productId = _.includes(key, 'Pro' + currentVariant.productId); 3125 var variantID = _.includes(key, 'Var' + currentVariant.id); 3126 if (productId && variantID) { 3127 isSelected = store.get(key); 3128 } 3129 }); 3130 } 3131 3132 return isSelected; 3133 }, 3134 // get product detail 3135 getProductDetail: function() { 3136 var self = this; 3137 3138 $.ajax({ 3139 url: self.productUrl + '.json', 3140 type: 'GET', 3141 timeout: 30000, 3142 beforeSend: function() { 3143 self.isLoading = true; 3144 }, 3145 error: function(xhr) { 3146 self.closeModal(); 3147 if (xhr.status === 429) { 3148 window.showAddCartRateLimitModal(5); 3149 return; 3150 } 3151 window.msg('Network error, please try again later', 'error').show(); 3152 } 3153 }).done(function(data) { 3154 if (data.id) { 3155 var productData = [themeHelper.toCamelCase(data)]; 3156 self.product = themeHelper.priceWithDiscount(productData, liquidHelper.hasPriceWithDiscountPlugin)[0]; 3157 self.maxUsableBonus = self.variantsMaxUsableBonus; 3158 if (self.product.variants.length === 1 || liquidHelper.isFirstVariantSelected || self.selectedVariantId) { 3159 self.currentVariant = self.firstValidVariant; 3160 // 妿已ç¶èªé¸ååï¼åååé 䏿»å å ¥è³¼ç©è»é¡¯ç¤ºèªé¸åå 3161 if (self.selectedVariantId) { 3162 self.currentVariant = self.selectedValidVariant; 3163 } 3164 if (self.currentVariant) { 3165 self.setChoose(self.currentVariant); 3166 self.setDefaultOption(); 3167 } 3168 } 3169 if (self.displayProductDiscountsList) { 3170 self.setUpDiscountsTag(data); 3171 } 3172 self.isLoading = false;
3173 if (self.product && self.product.variants) { 3174 self.product.variants.forEach(function(discountedVariant) { 3175 var rawVariant = data.variants.find(function(v) { return v.id === discountedVariant.id; }); 3176 if (rawVariant) { rawVariant.price = discountedVariant.price; } 3177 }); 3178 } 3179 viewItem && viewItem(data, { collectionId: '187926', collectionName: "All Items", categories: (self.categories && self.categories.length) ? self.categories : (categoryLevels.length ? categoryLevels : (data.id === pageMainProductId ? productCategoryLevels : undefined)) }); 3180 3181 (function() { 3182 // Read login status from cacheable, skip GET /pv_notification if not login. 3183 if (window.store && window.store.get('customer')) { 3184 var cacheableCustomer = window.store.get('customer'); 3185 if (cacheableCustomer.notLogin) { 3186 return; 3187 } 3188 } 3189 $.ajax({ 3190 url: '/pv_notification', 3191 method: 'GET', 3192 dataType: 'json', 3193 data: { 3194 product_id: parseInt(data.id) 3195 }, 3196 success: function(response) { 3197 self.variantNotifications = response.variants; 3198 } 3199 }) 3200 })(); 3201 } else { 3202 window.msg('Network error, please try again later', 'error').show(); 3203 self.closeModal() 3204 } 3205 }) 3206 }, 3207 // product image btn 3208 photoOnChange: function(photoIndex, isVariantReposition) { 3209 var visiblePhotos = (this.currentVariant && this.currentVariant.photos.length) 3210 ? this.currentVariant.photos 3211 : this.product.photos.map(function(p) { return p.photo; }); 3212 var result = themeHelper.buildNavigateItemImagePayload(this._navState, { 3213 product: this.product, 3214 currentVariant: this.currentVariant, 3215 visiblePhotos: visiblePhotos, 3216 slideIndex: photoIndex, 3217 videoOffset: this.firstImageIndex, 3218 }); 3219 this._navState = result.nextState; 3220 if (result.payload && !isVariantReposition) { 3221 window.navigateItemImage(result.payload); 3222 } 3223 this.currentImageIndex = photoIndex; 3224 }, 3225 toggleCurrentOption: function(key, value) { 3226 this.currentOption[key] = 3227 (this.currentOption[key] === value || value === 'null') ? null : value; 3228 var variantIndex = this.getVariantIndex(); 3229 if (variantIndex !== -1) { 3230 this.currentVariant = this.product.variants[variantIndex]; 3231 } else { 3232 this.currentVariant = null; 3233 } 3234 this.setChoose(this.product.variants[variantIndex]); 3235 if (this.currentOption[key] !== null) { 3236 var optionIndex = parseInt(key.replace('option', '')) - 1; 3237 appStoreSelectItemEvent(this.product, this.product.options[optionIndex], this.currentOption[key], this.currentVariant); 3238 } 3239 }, 3240 toggleNotification: function() { 3241 var self = this; 3242 var variantId = this.currentVariant.id; 3243 3244 $.ajax({ 3245 url: '/toggle_pv_notification', 3246 method: 'POST', 3247 dataType: 'json', 3248 data: { 3249 product_variant_id: variantId 3250 }, 3251 success: function(response) { 3252 self.variantNotifications[variantId] = response.notice; 3253 window.msg(response.message, "success").show(); 3254 }, 3255 error: function(xhr) { 3256 var response = xhr.responseJSON; 3257 var msg = response && response.error || "Network error, please try again later"; 3258 window.msg(msg, "error").show(); 3259 } 3260 }) 3261 }, 3262 getOptionImageIndex: function(index) { 3263 this.currentImageIndex = index; 3264 }, 3265 quantityDecrease: function() { 3266 if (this.cartItem) { 3267 themeHelper.EventBus.$emit('quantityDecrease', this.cartItem, false); 3268 this.quantity = this.cartItem.quantity 3269 } else { 3270 window.msg("Please select product specifications", 'warning').show(); 3271 } 3272 }, 3273 quantityIncrease: function() { 3274 if (this.cartItem) { 3275 themeHelper.EventBus.$emit('quantityIncrease', this.cartItem, false); 3276 this.quantity = this.cartItem.quantity 3277 } else { 3278 window.msg("Please select product specifications", 'warning').show(); 3279 } 3280 }, 3281 quantityChange: function(el) { 3282 if (this.cartItem) { 3283 themeHelper.EventBus.$emit('quantityChange', parseInt(el.target.value), this.cartItem, false); 3284 this.quantity = this.cartItem.quantity; 3285 el.target.value = this.cartItem.quantity; 3286 } else { 3287 window.msg("Please select product specifications", 'warning').show(); 3288 } 3289 }, 3290 addProduct: function() { 3291 if (this.addCartText === 'Contact Shop') { 3292 $('#messagebuy-Modal').data('variant', this.currentVariant); 3293 $('#messagebuy-Modal').modal('show'); 3294 $('#messagebuy-Modal').css("background-color", "rgba(0, 0, 0, .6)"); 3295 } else if (
3296 this.addCartText === 'Notification Enabled' || 3297 this.addCartText === 'Sold out! Notify me when the product is available.' 3298 ) { 3299 this.toggleNotification(); 3300 } else { 3301 if (this.cartItem) { 3302 try { 3303 if (this.isChoose) { 3304 themeHelper.EventBus.$emit('updateStore', 'update', this.cartItem, this.callBack) 3305 } else { 3306 themeHelper.EventBus.$emit('updateStore', 'add', this.cartItem, this.callBack) 3307 } 3308 3309 this.adding = true; 3310 this.closeModal(); 3311 } catch (e) { 3312 window.msg("Unusual product specification; please select again.", 'error').show(); 3313 } 3314 } else { 3315 window.msg("Please select product specifications", 'warning').show(); 3316 } 3317 } 3318 }, 3319 closeModal: function() { 3320 themeHelper.EventBus.$emit('closeProductModal'); 3321 }, 3322 setDefaultOption: function() { 3323 var self = this; 3324 Object.keys(self.currentOption).map(function(optionKey) { 3325 self.currentOption[optionKey] = self.currentVariant[optionKey]; 3326 }); 3327 }, 3328 getVariantIndex: function() { 3329 var self = this; 3330 return self.product.variants.findIndex(function(variant, index) { 3331 var isVariant = true; 3332 Object.keys(self.currentOption).forEach(function(option) { 3333 if (variant[option] !== self.currentOption[option]) { 3334 isVariant = false; 3335 } 3336 }); 3337 return isVariant; 3338 }); 3339 }, 3340 3341 // 篩é¸éè¤åé 3342 getUniqueVariant: function(variants) { 3343 return variants.filter(function(value, index, self) { 3344 return self.indexOf(value) === index; 3345 }); 3346 }, 3347 groupBy(xs, key) { 3348 return xs.reduce(function(rv, x) { 3349 (rv[x[key]] = rv[x[key]] || []).push(x); 3350 return rv; 3351 }, {}); 3352 }, 3353 setUpDiscountsTag(data) { 3354 var self = this; 3355 var languagePrefix = '/' + ((window.shopScriptHelper && window.shopScriptHelper.i18nLocale) || 'zh-TW'); 3356 $.ajax({ 3357 url: languagePrefix + self.productUrl + '/discounts_list', 3358 method: 'GET', 3359 success: function(result) { 3360 if (result.length > 0) { 3361 var discounts_list = self.groupBy(result, 'campaign_type'); 3362 self.discountsList = discounts_list; 3363 } else { 3364 self.discountsList = null; 3365 } 3366 } 3367 }); 3368 }, 3369 getOptions: function(optionKey, optionTypes) { 3370 var self = this; 3371 return optionTypes.map(function(optionType, index) { 3372 var isValid = true; 3373 3374 // é¸åºå å«ç®åtypeçvariant 3375 var matchVariants = self.product.variants.filter(function(variant) { 3376 return variant[optionKey] === optionType; 3377 }); 3378 3379 // 篩é¸å·²å¾é¸type 3380 Object.keys(self.currentOption).forEach(function(currentOptionKey) { 3381 if (currentOptionKey !== optionKey) { 3382 matchVariants = matchVariants.filter(function(variant) { 3383 if (self.currentOption[currentOptionKey]) { 3384 return variant[currentOptionKey] === self.currentOption[currentOptionKey] 3385 } else { 3386 return true; 3387 } 3388 }); 3389 } 3390 }); 3391 if (matchVariants.length === 0) { 3392 isValid = false; 3393 } 3394 if (! self.isEmptyClickable) { 3395 isValid = false; 3396 matchVariants.find(function(item) { 3397 if (item.inventoryQuantity === null || item.inventoryQuantity > 0 || item.inventoryPolicy === 'continue') { 3398 isValid = true; 3399 } 3400 }); 3401 } 3402 return {name: optionType, isValid: isValid} 3403 }); 3404 } 3405 } 3406 }; 3407 }); 3408</script>
3408 3409 3410<!-- cyb_snippet _product_modal_js end --> 3411 3412<!-- cyb_snippet components/product_modal/product_modal end --> 3413 3414<!-- cyb_snippet messagebuy_modal start --> 3415 3416 3417<!-- cyb_snippet messagebuy_modal end --> 3418<!-- cyb_snippet components/rate_limit_modal start --> 3419<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/rate_limit_modal-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 3420 3421<div class="modal fade" id="rate-limit-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false"> 3422 <div class="modal-dialog modal-dialog-centered" role="document"> 3423 <div class="modal-content"> 3424 <div class="modal-body"> 3425 <div class="qk-text--default_dark rate-limit-text"> 3426 <p id="rate-limit-title">High demand right now, please wait</p> 3427 <p class="qk-fs--body qk-fw--500 rate-limit-message"> 3428 <span class="qk-text--error" id="rate-limit-countdown"></span> 3429 <span id="rate-limit-desc"></span> 3430 </p> 3431 <p class="qk-fs--body qk-fw--500 rate-limit-message" id="rate-limit-warn">Leaving this page may increase your wait time.</p> 3432 </div> 3433 <button id="rate-limit-btn" class="btn qk-btn qk-btn--primary" disabled>Re-enter product page</button> 3434 </div> 3435 </div> 3436 </div> 3437</div> 3438
3439<script> 3440 window.showRateLimitModal = function(countdownSec) { 3441 var countdown = countdownSec || 5; 3442 var $modal = $('#rate-limit-modal'); 3443 var $btn = $modal.find('#rate-limit-btn'); 3444 var $countdownEl = $modal.find('#rate-limit-countdown'); 3445 3446 $btn.show(); 3447 $modal.find('#rate-limit-desc').text(language["product_rate_limit_desc"]); 3448 $countdownEl.text(countdown); 3449 $btn.prop('disabled', true); 3450 $modal.modal('show'); 3451 3452 var timer = setInterval(function() { 3453 countdown--; 3454 $countdownEl.text(countdown); 3455 if (countdown <= 0) { 3456 clearInterval(timer); 3457 $btn.prop('disabled', false); 3458 } 3459 }, 1000); 3460 3461 $btn.off('click').on('click', function() { 3462 location.reload(); 3463 }); 3464 } 3465 3466 window.showAddCartRateLimitModal = function(countdownSec) { 3467 var countdown = countdownSec || 5; 3468 var $modal = $('#rate-limit-modal'); 3469 var $countdownEl = $modal.find('#rate-limit-countdown'); 3470 3471 $modal.find('#rate-limit-btn').hide(); 3472 $modal.find('#rate-limit-desc').text(language["addcart_rate_limit_desc"]); 3473 $countdownEl.text(countdown); 3474 $modal.modal('show'); 3475 3476 var timer = setInterval(function() { 3477 countdown--; 3478 $countdownEl.text(countdown); 3479 if (countdown <= 0) { 3480 clearInterval(timer); 3481 $modal.modal('hide'); 3482 } 3483 }, 1000); 3484 } 3485</script>
3485 3486 3487<!-- cyb_snippet components/rate_limit_modal end --> 3488
3489<script> 3490 $(document).ready(function() { 3491 const shouldSkipQuantityCheck = false; 3492 const newAddCartModalApp = new window.themeHelper.LiquidVueHandler({ 3493 componentNames: Object.keys(window.themeHelper.productModalComponents), 3494 mountSelector: '#new-addcart-modal', 3495 autoMount: false, 3496 }); 3497 3498 newAddCartModalApp.createApp({ 3499 el: '#new-addcart-modal', 3500 delimiters: ['${', '}'], 3501 data() { 3502 return { 3503 collectionId: 0, 3504 categories: [], 3505 color: '', // unused 3506 isCollection: true, 3507 productQuantity: 0, 3508 onlyDescription: false, 3509 showProductModal: false, 3510 popProductUrl: '', 3511 loading: false, 3512 }; 3513 }, 3514 mounted: function() { 3515 themeHelper.EventBus.$on('closeProductModal',this.closeProductModal); 3516 themeHelper.EventBus.$on('updateStore', this.addProduct); 3517 themeHelper.EventBus.$on('quantityDecrease', this.quantityDecrease); 3518 themeHelper.EventBus.$on('quantityIncrease', this.quantityIncrease); 3519 themeHelper.EventBus.$on('quantityChange', this.quantityChange); 3520 }, 3521 methods: { 3522 addProduct: function(actionType, productData, checkoutAddToCartCallback){ 3523 var self = this; 3524 var pageViewId = window.CYBERBIZ && window.CYBERBIZ.dis && window.CYBERBIZ.dis.pageViewId; 3525 $.ajax({ 3526 method: 'POST', 3527 url: '/cart/add', 3528 headers: pageViewId ? { 'X-Cyb-Page-View-Id': pageViewId } : {}, 3529 data: { 3530 id: productData.id, 3531 quantity: productData.quantity, 3532 }, 3533 dataType: 'json', 3534 beforeSend: function() { 3535 self.loading = true; 3536 themeHelper.ajaxLoadingMsg('loading'); 3537 $('.shopcart').dropdown('hide') 3538 $('.global-cart-count').hide(); 3539 $('.global-cart-loading').show(); 3540 $('.global-cart-loading').html('<i class="fa fa-spinner fa-pulse" style="vertical-align: middle;"></i>'); 3541 }, 3542 error: function(xhr) { 3543 $('.global-cart-loading').hide(); 3544 $('.global-cart-count').show(); 3545 self.loading = false; 3546 if (xhr.status === 429) { 3547 themeHelper.ajaxLoadingMsg('hide', 0); 3548 self.closeProductModal(); 3549 window.showAddCartRateLimitModal(5); 3550 return; 3551 } 3552 themeHelper.ajaxLoadingMsg('fail', 2000); 3553 } 3554 }).done(function(data, status, request){ 3555 // product modal ç«å³è³¼è²·æé 3556 window.sendAddToCartEvent && sendAddToCartEvent({ 3557 price: productData.price, 3558 quantity: productData.quantity, 3559 id: productData.product.id, 3560 name: productData.product.title, 3561 category: productData.product.productType, 3562 brand: productData.product.vendor, 3563 qc: productData.variant.qc, 3564 variant: { 3565 id: productData.variant.id, 3566 title: productData.variant.title, 3567 sku: productData.variant.sku, 3568 price: productData.variant.price, 3569 qc: productData.variant.qc, 3570 }, 3571 position: "ååå½åºè¦çª", 3572 request, 3573 }) 3574 if (self.isQuickBuy) { 3575 if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) { 3576 window.location = "/" + window.liquidHelper.language.handle + "/cart"; 3577 } else { 3578 window.location = "/cart"; 3579 } 3580 } else { 3581 themeHelper.ajaxLoadingMsg('success'); 3582 pullNavCart(); 3583 $('.shopcart').dropdown('show') 3584 $('.global-cart-loading').hide(); 3585 self.loading = false; 3586 } 3587 if(typeof checkoutAddToCartCallback === 'function'){ 3588 var callbackData = { 3589 id: productData.id, 3590 quantity: productData.quantity, 3591 title: productData.product ? productData.product.title : productData.title || '' 3592 }; 3593 checkoutAddToCartCallback(callbackData) 3594 } 3595 peh.emit('product:add_to_cart', [{ 3596 variantId: productData.id, 3597 quantity: productData.quantity 3598 }], self.collectionId); 3599 }).fail(function(e){ 3600 if (e.status === 429) { 3601 return; 3602 } 3603 let err_msg = e.responseJSON.err_msg; 3604 err_msg && err_msg.length > 0 ? 3605 window.msg(e.responseJSON.err_msg, 'warning').show(): 3606 window.msg("Network error, please try again.", 'warning').show(); 3607 }) 3608 }, 3609 quantityDecrease: function(cartItem, isAdded){ 3610 if (cartItem.quantity > 1) { 3611 cartItem.quantity -= 1; 3612 } else { 3613 window.msg("Quantity must be greater than 0;
3613 please select the amount to purchase.", 'warning').show(); 3614 } 3615 }, 3616 quantityIncrease: function(cartItem, isAdded){ 3617 const limitQuantity = cartItem.variant.inventoryQuantity; 3618 const limitBuy = cartItem.product.limitBuy 3619 if (limitBuy && cartItem.quantity >= limitBuy) { 3620 product_limit_buy = "Limited purchase of this product limitBuy items".replace('limitBuy', limitBuy) 3621 window.msg(product_limit_buy, 'warning').show(); 3622 return; 3623 } else if (cartItem.quantity >= liquidHelper.cartQuantityLimit) { 3624 window.msg("Quantity exceeds shopping cart limit; please remove some items and place the order again.", 'warning').show(); 3625 } else if ( cartItem.quantity < limitQuantity || limitQuantity === null || 3626 cartItem.variant.inventoryPolicy == "continue" || shouldSkipQuantityCheck) { 3627 cartItem.quantity += 1; 3628 } else { 3629 this.showInventoryMessage(limitQuantity); 3630 } 3631 }, 3632 quantityChange: function(quantity, cartItem, isAdded){ 3633 const limitBuy = cartItem.product.limitBuy 3634 var limitQuantity = cartItem.variant.inventoryQuantity; 3635 var inventoryPolicy = cartItem.variant.inventoryPolicy; 3636 if (Number.isInteger(quantity)) { 3637 if (quantity >= 1) { 3638 if (limitBuy && quantity >= limitBuy) { 3639 product_limit_buy = "Limited purchase of this product limitBuy items".replace('limitBuy', limitBuy) 3640 window.msg(product_limit_buy, 'warning').show(); 3641 } else if (quantity > liquidHelper.cartQuantityLimit) { 3642 window.msg("Quantity exceeds shopping cart limit; please remove some items and place the order again.", 'warning').show(); 3643 } else if (quantity <= limitQuantity || limitQuantity === null || inventoryPolicy == "continue" || shouldSkipQuantityCheck) { 3644 cartItem.quantity = quantity; 3645 } else { 3646 cartItem.quantity = limitQuantity; 3647 this.showInventoryMessage(limitQuantity); 3648 } 3649 } else { 3650 window.msg("Quantity must be greater than 0; please select the amount to purchase.", 'warning').show(); 3651 } 3652 } else { 3653 window.msg("Quantity input error", 'warning').show(); 3654 } 3655 }, 3656 popModal: function(productUrl, collectionId, color, isCollection, isShowDescription, isQuickBuy, variantId, checkoutAddToCartCallback, categories){ 3657 this.showProductModal = true; 3658 this.collectionId = collectionId; 3659 this.categories = categories || []; 3660 this.popProductUrl = productUrl; 3661 this.color = color || ''; // unused 3662 this.isCollection = isCollection || false; 3663 this.isShowDescription = isShowDescription != false; 3664 this.isQuickBuy = isQuickBuy || false; 3665 this.selectedVariantId = parseInt(variantId) || undefined; 3666 this.checkoutAddToCartCallback = checkoutAddToCartCallback; 3667 document.body.style.overflow = "hidden"; 3668 }, 3669 closeProductModal: function() { 3670 this.showProductModal = false; 3671 document.body.style.overflow = ""; 3672 }, 3673 showInventoryMessage: function(inventoryQuantity) { 3674 const stockMessage = "Quantity exceeds inventory stock. Remaining count".replace('count', inventoryQuantity || 0); 3675 window.msg(stockMessage, 'warning').show(); 3676 }, 3677 } 3678 }); 3679 3680 for (const componentName in window.themeHelper.productModalComponents) { 3681 newAddCartModalApp.component( 3682 componentName, 3683 window.themeHelper.productModalComponents[componentName], 3684 ); 3685 } 3686 3687 window.new_addcart_modal = newAddCartModalApp.mount(); 3688 }); 3689</script>
3689 3690 3691<!-- cyb_snippet new_addcart_modal end --> 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703
3703<script> 3704 document.addEventListener('DOMContentLoaded', function() { 3705 window.renderCollectionPage('#collection-content', { 3706 collection: { 3707 id: Number('187926') || undefined, 3708 title: "All Items", 3709 className: 'CustomCollection', 3710 handle: "all-product" 3711 }, 3712 currentTags: null || '', 3713 containerClass: 'col-lg-9', 3714 cartEnabled: true, 3715 showPeriodicLabel: false, 3716 trackingVariantIds: null, 3717 useVanillaFilter: true, 3718 filterNotASearch: null, 3719 settingsData: { 3720 displayProductTotalSold: false, 3721 productScale: "default_scale", 3722 displayPeriodicOrderLabel: false, 3723 discountPriceSloganUrl: '/theme_src/beta_theme/default_img/onsale_icon.png', 3724 productSloganDisplay: false, 3725 collectionPaginationLimit: Number(24) || 24, 3726 isInfiniteScroll: false, 3727 isUpcomingProductsEnabled: false, 3728 productTextAlign: "start", 3729 displayProductVariantThumbnail: null, 3730 hasIntegratedProductLabelsPlugin: true, 3731 productColumnForPc: "4", 3732 isDisplayPriceRange: null, 3733 productCardHoverEffect: "button", 3734 productImageBorderRadius:0 3735 } 3736 }); 3737 }); 3738 </script>
3738 3739 3740
3740<script> 3741 $('#collection .collection_products').on('click', ".btn-cart", function(event) { 3742 event.preventDefault(); 3743 var comboProductInfo = $(this).data('comboProductInfo'); 3744 if (comboProductInfo) { 3745 window.themeHelper.EventBus.$emit('showRelatedItemsSelectModal', comboProductInfo); 3746 } else { 3747 var productHandle = '/products/' + $(this).data('handle'); 3748 var collectionId = $(this).data('collection'); 3749 var color = $(this).data('color'); 3750 var isCollection = true; 3751 new_addcart_modal.popModal(productHandle, collectionId, color, isCollection); 3752 } 3753 }); 3754 3755 // ç¡éä¸æè½æç追蹤 3756 window.gtIds = dataLayer.reduce(function(acc, curr) { 3757 if (curr[2] && curr[2].custom_map && curr[2].custom_map.dimension3 === 'infinite_scroll') { 3758 acc.push(curr[1]); 3759 } 3760 return acc; 3761 }, []); 3762 gtag('set', 'dimension3', 'behavior_test_normal'); 3763 window.gtIds.forEach(function(g) { 3764 gtag('event', 'normal_collection_page_load', {send_to: g}) 3765 }); 3766 </script>
3766 3767 3768 3769 3770 3771 3772 3773 3774 </div> 3775 3776 <!-- Footer --> 3777 3778 3779 3780 3781 3782 3783 3784<style> 3785 3786 3787 @media(min-width: 991px) { 3788 .display_x .left-content > div { 3789 max-width: calc(100% / 3); 3790 } 3791 } 3792</style> 3793 3794<div id="index-recommendation"></div> 3795 3796<footer id="footer" class="qk-fs--body qk-bg--footer_bg"> 3797 3798 3799 <div class="qk-container display_x"> 3800 <div class="footer_content qk-mg--0 qk-display--flex qk-justify--between"> 3801 <div class="left-content qk-flex--1"> 3802 3803 3804 <div class="item contact qk-text--left"> 3805 3806 <p class="footer_title qk-fs--title qk-text--footer_text">Contact Info</p> 3807 3808 <ul> 3809 3810 <li class="phone qk-bd_r--default qk-bd--footer_text qk-display--il_bk"> 3811 <span class="qk-text--footer_text">Customer Service Hotline: 0912345678</span> 3812 </li> 3813 3814 3815 3816 <li class="time qk-bd_r--default qk-bd--footer_text qk-display--il_bk"> 3817 <span class="qk-text--footer_text">Customer service hour: 10:00-17:00</span> 3818 </li> 3819 3820 3821 <br> 3822 <li class="mail qk-bd_r--default qk-bd--footer_text qk-cursor--pointer qk-display--il_bk"> 3823 <a class="qk-text--footer_text" href="mailto:[email protected]">Email: [email protected]</a> 3824 </li> 3825 3826 3827 3828 </ul> 3829 </div> 3830 3831 3832 3833 <div class="link-list-container"> 3834 3835 <p class="footer_title qk-fs--title qk-text--footer_text">About Us</p> 3836 3837 <div class="item horizontal qk-text--left"> 3838 <ul class="qk-display--flex qk-flex--wrap"> 3839 3840 3841 <li class="qk-display--il_bk"> 3842 3843 <a 3844 class="qk-text--footer_text" 3845 href="/pages/about-us" 3846 rel="noopener noreferrer" 3847 target="_blank">About Us</a> 3848 3849 </li> 3850 3851 <li class="qk-display--il_bk"> 3852 3853 <a 3854 class="qk-text--footer_text" 3855 href="/account/index" 3856 rel="noopener noreferrer" 3857 target="_blank">My Account</a> 3858 3859 </li> 3860 3861 <li class="qk-display--il_bk"> 3862 3863 <a 3864 class="qk-text--footer_text" 3865 href="/pages/鿬¾æ¿ç" 3866 rel="noopener noreferrer" 3867 target="_blank">鿬¾æ¿ç</a> 3868 3869 </li> 3870 3871 <li class="qk-display--il_bk"> 3872 3873 <a 3874 class="qk-text--footer_text" 3875 href="/pages/privacy" 3876 rel="noopener noreferrer" 3877 target="_blank">Privacy</a> 3878 3879 </li> 3880 3881 <li class="qk-display--il_bk"> 3882 3883 <a 3884 class="qk-text--footer_text" 3885 href="/pages/terms" 3886 rel="noopener noreferrer" 3887 target="_blank">Terms of Service</a> 3888 3889 </li> 3890 3891 <li class="qk-display--il_bk"> 3892 3893 <a 3894 class="qk-text--footer_text" 3895 href="/pages/ç´ å©èåªæ å¸" 3896 rel="noopener noreferrer" 3897 target="_blank">æå¡ç´ å©èåªæ </a> 3898 3899 </li> 3900 3901 <li class="qk-display--il_bk"> 3902 3903 <a 3904 class="qk-text--footer_text" 3905 href="https://www.tangshop.com.tw/pages/%E9%98%B2%E8%A9%90%E9%A8%99%E5%AE%A3%E5%B0%8E%E8%B3%87%E8%A8%8A" 3906 rel="noopener noreferrer" 3907 target="_blank">Scam Prevention Information</a> 3908 3909 </li> 3910 3911 3912 </ul> 3913 </div> 3914 </div> 3915 3916 3917 3918 <div class="link-list-container"> 3919 3920 <p class="footer_title qk-fs--title qk-text--footer_text">Help</p> 3921 3922 <div class="item horizontal qk-text--left"> 3923 <ul class="qk-display--flex qk-flex--wrap"> 3924 3925 3926 <li class="qk-display--il_bk"> 3927 3928 <a 3929 class="qk-text--footer_text" 3930 href="/" 3931 rel="noopener noreferrer" 3932 target="_blank">Home</a> 3933 3934 </li> 3935 3936 <li class="qk-display--il_bk"> 3937 3938 <a 3939 class="qk-text--footer_text" 3940 href="/collections/all" 3941 rel="noopener noreferrer" 3942 target="_blank">Product List</a> 3943 3944 </li> 3945 3946 <li class="qk-display--il_bk"> 3947 3948 <a 3949 class="qk-text--footer_text" 3950 href="/pages/about-us" 3951 rel="noopener noreferrer" 3952 target="_blank">About Us</a> 3953 3954 </li> 3955 3956 <li class="qk-display--il_bk"> 3957 3958 <a 3959 class="qk-text--footer_text" 3960 href="/contact" 3961 rel="noopener noreferrer" 3962 target="_blank">Customer Service Center</a> 3963 3964 </li> 3965 3966 <li class="qk-display--il_bk"> 3967 3968 <a 3969 class="qk-text--footer_text" 3970 href="/blogs/åèåæå享" 3971 rel="noopener noreferrer" 3972 target="_blank">ååà¹ç§å¯åºå°ð</a> 3973 3974 </li> 3975 3976 <li class="qk-display--il_bk"> 3977 3978 <a 3979 class="qk-text--footer_text" 3980 href="https://www.facebook.com/%E5%94%90%E8%88%96%E5%AD%90-Tangshop-100291115638938" 3981 rel="noopener noreferrer" 3982 target="_blank">Fan Page</a> 3983 3984 </li> 3985 3986 3987 </ul> 3988 </div> 3989 </div> 3990 3991 3992 </div> 3993 <div class="right-content qk-display--flex qk-flex--column"> 3994 3995 <div class="fb_fanpage qk-hidden--mobile"> 3996 <div class="fb_fans_page_area"> 3997 <div 3998 class="fb-page" 3999 data-href="https://www.facebook.com/100291115638938" 4000 data-width="500" 4001 data-adapt-container-width="true" 4002 data-hide-cover="false" 4003 data-show-facepile="true"> 4004 <blockquote cite="https://www.facebook.com/100291115638938" class="fb-xfbml-parse-ignore"> 4005 <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/100291115638938"></a> 4006 </blockquote> 4007 </div> 4008 </div> 4009 </div> 4010 4011 <div class="media qk-display--il"> 4012 <div class="item social_media qk-h--auto qk-float--l"> 4013 <ul> 4014 4015 <li class="qk-display--il_bk"> 4016 <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/"> 4017 <svg 4018 class="facebook-svg" 4019 xmlns="http://www.w3.org/2000/svg" 4020 width="40" 4021 height="40"
4022 viewBox="0 0 40 40"> 4023 <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" /> 4024 </svg> 4025 </a> 4026 </li> 4027 4028 4029 <li class="qk-display--il_bk"> 4030 <a target="_blank" rel="noopener noreferrer" href="https://www.instagram.com/?hl=zh-tw"> 4031 <svg 4032 class="instagram-svg" 4033 xmlns="http://www.w3.org/2000/svg" 4034 width="40" 4035 height="40" 4036 viewBox="0 0 40 40"> 4037 <rect class="qk-svg--footer_text" width="40" height="40" rx="20" /> 4038 <path class="qk-svg--footer_bg" d="M15.0302 8.08393C13.7534 8.14417 12.8814 8.34793 12.1192 8.64745C11.3303 8.95489 10.6616 9.36745 9.99636 10.0351C9.33107 10.7028 8.92139 11.3719 8.61611 12.162C8.32066 12.9259 8.1205 13.7986 8.0641 15.0761C8.0077 16.3536 7.99522 16.7643 8.00146 20.023C8.0077 23.2817 8.0221 23.6902 8.08402 24.9704C8.14498 26.2469 8.34802 27.1186 8.64755 27.8811C8.95547 28.67 9.36755 29.3384 10.0355 30.0039C10.7034 30.6694
403811.3721 31.0782 12.1641 31.3839C12.9273 31.6789 13.8002 31.88 15.0775 31.9359C16.3547 31.9918 16.7659 32.0048 20.0237 31.9986C23.2815 31.9923 23.6916 31.9779 24.9716 31.9172C26.2515 31.8565 27.1186 31.652 27.8813 31.3539C28.6702 31.0453 29.3391 30.6339 30.0042 29.9658C30.6692 29.2976 31.0787 28.628 31.3837 27.8374C31.6794 27.0742 31.8803 26.2013 31.9357 24.925C31.9916 23.6441 32.0048 23.2352 31.9986 19.9769C31.9923 16.7187 31.9777 16.3102 31.917 15.0305C31.8563 13.7508 31.653 12.8818 31.3537 12.1188C31.0453 11.3299 30.6337 10.662 29.966 9.99601C29.2983 9.33001 28.6282 8.92081 27.8379 8.61649C27.0742 8.32105 26.2018 8.11969 24.9245 8.06449C23.6472 8.00929 23.2361 7.99513 19.9771 8.00137C16.7181 8.00761 16.3101 8.02153 15.0302 8.08393ZM15.1703 29.7771C14.0003 29.7262 13.365 29.5318 12.9417 29.3691C12.381 29.1531 11.9817 28.892 11.5597 28.4742C11.1378 28.0563 10.8786 27.6555 10.6597 27.0961C10.4953 26.6727 10.2973 26.0381 10.2426 24.8681C10.1831 23.6036 10.1706 23.2239 10.1636 20.0201C10.1567 16.8164 10.1689 16.4372 10.2244 15.1721C10.2743 14.0031 10.4699 13.3671 10.6324 12.9439C10.8484 12.3826 11.1085 11.9839 11.5273 11.5623C11.9461 11.1406 12.3457 10.8809 12.9057 10.662C13.3286 10.4969 13.9631 10.3006 15.1327 10.2449C16.3982 10.1849 16.7774 10.1729 19.9807 10.1659C23.184 10.159 23.5642 10.171 24.8302 10.2267C25.9992 10.2775 26.6355 10.4712 27.0581 10.6347C27.619 10.8507 28.0181 11.1101 28.4398 11.5296C28.8615 11.9491 29.1214 12.3473 29.3403 12.9084C29.5057 13.3301 29.702 13.9644 29.7572 15.1347C29.8174 16.4002 29.8311 16.7796 29.8369 19.9827C29.8426 23.1857 29.8314 23.5661 29.7759 24.8307C29.7248 26.0007 29.5309 26.6362 29.3679 27.0601C29.1519 27.6205 28.8915 28.0201 28.4725 28.4415C28.0534 28.863 27.6543 29.1226 27.0941 29.3415C26.6717 29.5064 26.0364 29.7032 24.8679 29.7589C23.6023 29.8184 23.2231 29.8309 20.0186 29.8378C16.8141 29.8448 16.4361 29.8318 15.1706 29.7771M24.9531 13.5864C24.9535 13.8713 25.0385 14.1495 25.1971 14.3861C25.3558 14.6226 25.581 14.8068 25.8443 14.9154C26.1077 15.0239 26.3973 15.0519 26.6765 14.9959C26.9558 14.9398 27.2122 14.8022 27.4132 14.6004C27.6142 14.3986 27.7509 14.1418 27.806 13.8623C27.861 13.5828 27.8319 13.2933 27.7224 13.0304C27.6129 12.7675 27.4279 12.5429 27.1908 12.3851C26.9536 12.2274 26.675 12.1435 26.3902 12.144C26.0084 12.1448 25.6425 12.2972 25.373 12.5677C25.1035 12.8381 24.9524 13.2046 24.9531 13.5864ZM13.8386 20.012C13.8453 23.4152 16.6091 26.1677 20.0117 26.1613C23.4142 26.1548 26.1687 23.3912 26.1622 19.988C26.1557 16.5848 23.3911 13.8315 19.9881 13.8382C16.5851 13.8449 13.8321 16.6092 13.8386 20.012ZM16 20.0076C15.9985 19.2165 16.2315 18.4427 16.6698 17.784C17.108 17.1253 17.7317 16.6114 18.462 16.3072C19.1924 16.003 19.9965 15.9222 20.7727 16.075C21.549 16.2278 22.2625 16.6073 22.823 17.1656C23.3836 17.724 23.766 18.436 23.9218 19.2116C24.0777 19.9872 24.0001 20.7917 23.6988 21.5232C23.3975 22.2547 22.886 22.8804 22.2291 23.3213C21.5721 23.7621 20.7992 23.9983 20.0081 23.9998C19.4827 24.0009 18.9623 23.8985 18.4766 23.6985C17.9909 23.4985 17.5493 23.2047 17.1771 22.834C16.8049 22.4632 16.5094 22.0228 16.3074 21.5379C16.1054 21.0529 16.001 20.533 16 20.0076Z" /> 4039 </svg> 4040 </a> 4041 </li> 4042 4043 4044 <li class="qk-display--il_bk"> 4045 <a target="_blank" rel="noopener noreferrer" href="https://line.me/zh-hant/"> 4046 <svg 4047 class="line-svg" 4048 xmlns="http://www.w3.org/2000/svg" 4049 width="40" 4050 height="40"
4051 viewBox="0 0 40 40"> 4052 <rect class="qk-svg--footer_text" width="40" height="40" rx="20" /> 4053 <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" /> 4054 <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" /> 4055 <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" /> 4056 <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" /> 4057 <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" /> 4058 </svg> 4059 </a> 4060 </li> 4061 4062 4063 <li class="qk-display--il_bk"> 4064 <a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/"> 4065 <svg 4066 class="youtube-svg" 4067 xmlns="http://www.w3.org/2000/svg" 4068 width="40" 4069 height="40"
4070 viewBox="0 0 40 40"> 4071 <rect class="qk-svg--footer_text" width="40" height="40" rx="20" /> 4072 <path class="qk-svg--footer_bg" d="M27.3078 11H12.6922C9.82462 11 7.5 13.3653 7.5 16.283V23.717C7.5 26.6347 9.82462 29 12.6922 29H27.3078C30.1754 29 32.5 26.6347 32.5 23.717V16.283C32.5 13.3653 30.1754 11 27.3078 11ZM23.7964 20.3617L16.9602 23.6792C16.778 23.7676 16.5676 23.6324 16.5676 23.4271V16.5848C16.5676 16.3766 16.7835 16.2416 16.9661 16.3357L23.8023 19.8606C24.0055 19.9653 24.002 20.2619 23.7964 20.3617Z" /> 4073 </svg> 4074 </a> 4075 </li> 4076 4077 </ul> 4078 </div> 4079 </div> 4080 </div> 4081 </div> 4082 </div> 4083 4084 <div class="copyright qk-text--footer_text qk-bd--footer_text qk-text--left qk-bd_t--default"> 4085 <div class="qk-container container qk-fw--500"> 4086 <span>Copyright ©</span> 4087 <a class="qk-text--link" href="/"> 4088 <span>åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®</span> 4089 </a> 4090 <span>All Rights Reserved.</span> 4091 <span>Designed by 4092 </span> 4093 <a 4094 class="qk-text--link" 4095 href="https://www.cyberbiz.io?utm_source=poweredbycyberbiz" 4096 target="_blank" 4097 rel="noopener noreferrer" 4098 title="Designed by CYBERBIZ">CYBERBIZ</a>. 4099 </div> 4100 </div> 4101 4102</footer>
4103<script> 4104 $(document).ready(function() { 4105 let isDynamicLoading = false; 4106 4107 let menusData = { 4108 4109 4110 4111 4112 "footer": { 4113 4114 "type": "items", 4115 "data": [ 4116 4117 4118 4119 { 4120 "title": "About Us", 4121 "url": "/pages/about-us", 4122 "item_type": "page" 4123 }, 4124 4125 { 4126 "title": "My Account", 4127 "url": "/account/index", 4128 "item_type": "http" 4129 }, 4130 4131 { 4132 "title": "鿬¾æ¿ç", 4133 "url": "/pages/鿬¾æ¿ç", 4134 "item_type": "page" 4135 }, 4136 4137 { 4138 "title": "Privacy", 4139 "url": "/pages/privacy", 4140 "item_type": "privacy" 4141 }, 4142 4143 { 4144 "title": "Terms of Service", 4145 "url": "/pages/terms", 4146 "item_type": "terms" 4147 }, 4148 4149 { 4150 "title": "æå¡ç´ å©èåªæ ", 4151 "url": "/pages/ç´ å©èåªæ å¸", 4152 "item_type": "page" 4153 }, 4154 4155 { 4156 "title": "Scam Prevention Information", 4157 "url": "https://www.tangshop.com.tw/pages/%E9%98%B2%E8%A9%90%E9%A8%99%E5%AE%A3%E5%B0%8E%E8%B3%87%E8%A8%8A", 4158 "item_type": "http" 4159 } 4160 4161 4162 ] 4163 4164 }, 4165 4166 4167 4168 "main-menu": { 4169 4170 "type": "items", 4171 "data": [ 4172 4173 4174 4175 { 4176 "title": "Home", 4177 "url": "/", 4178 "item_type": "frontpage" 4179 }, 4180 4181 { 4182 "title": "Product List", 4183 "url": "/collections/all", 4184 "item_type": "collections_all" 4185 }, 4186 4187 { 4188 "title": "About Us", 4189 "url": "/pages/about-us", 4190 "item_type": "page" 4191 }, 4192 4193 { 4194 "title": "Customer Service Center", 4195 "url": "/contact", 4196 "item_type": "contact" 4197 }, 4198 4199 { 4200 "title": "ååà¹ç§å¯åºå°ð", 4201 "url": "/blogs/åèåæå享", 4202 "item_type": "blog" 4203 }, 4204 4205 { 4206 "title": "Fan Page", 4207 "url": "https://www.facebook.com/%E5%94%90%E8%88%96%E5%AD%90-Tangshop-100291115638938", 4208 "item_type": "http" 4209 } 4210 4211 4212 ] 4213 4214 } 4215 4216 4217 }; 4218 4219 if (isDynamicLoading) { 4220 window.DynamicLoading.setupComponent({ 4221 sectionId: '#footer', 4222 callbackData:{ 4223 section: {"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/","display_instagram":true,"shop_instagram":"https://www.instagram.com/?hl=zh-tw","display_line":true,"shop_line":"https://line.me/zh-hant/","display_youtube":true,"shop_youtube":"https://www.youtube.com/","footer_link_arrangement":"display_x","display_facebook_fan_block":true},"block_order":["default_contact_info","default_link_list","default_link_list_2"],"blocks":{"default_link_list":{"type":"link_list_setting","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"About Us","footer_link":"footer"},"custom_name":"é¸å®"},"default_contact_info":{"type":"contact_info_setting","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"dict_contact_info_block_t
4223itle":"Contact Info","display_phone":"true","dict_phone_number":"0912345678","display_fax_number":false,"dict_shop_fax_number":"0222345678","display_shop_email":"true","dict_shop_email":"[email protected]","display_shop_address":false,"dict_shop_address":"Shop Address","display_office_time":"true","dict_shop_office_time":"10:00-17:00"},"custom_name":"è¯çµ¡è³è¨"},"default_link_list_2":{"type":"link_list_setting","visible":true,"settings":{"dict_link_list_block_title":"Help","footer_link":"main-menu"},"custom_name":"é¸å®"}},"custom_name":"é è ³"}, 4224 shop: { 4225 name: 'åèå | ç±³å ¶æ2æçè»ç³ | 人氣伴æç¦®', 4226 cyberbiz_link: 'https://www.cyberbiz.io?utm_source=poweredbycyberbiz', 4227 facebook_fan_page: 'https://www.facebook.com/100291115638938', 4228 }, 4229 menus: menusData, 4230 is_display_facebook_fan_block: true 4231 }, 4232 entryName:'renderFooterSection', 4233 source:'//cdn-general.cybassets.com/frontend/shop/footerSection-4a1e7dfec7e41476.js', 4234 }); 4235 } 4236 }); 4237</script>
4237 4238 4239<!-- cyb_snippet _tracking_code start --> 4240
4240<script> 4241 window.fbAsyncInit = function() { 4242 FB.init({ 4243 appId : '', 4244 xfbml : true, 4245 version : 'v24.0', 4246 }); 4247 }; 4248 (function(d, s, id){ 4249 var js, fjs = d.getElementsByTagName(s)[0]; 4250 if (d.getElementById(id)) {return;} 4251 js = d.createElement(s); 4252 js.id = id; 4253 js.src = 'https://connect.facebook.net/zh_TW/sdk.js'; 4254 fjs.parentNode.insertBefore(js, fjs); 4255 }(document, 'script', 'facebook-jssdk')); 4256 </script>
4256 4257 4258
4259<script> 4260 // for scupio 4261 if (document.querySelector("meta[name=\"scupio_mid\"]")) { 4262 mid = document.querySelector("meta[name=\"scupio_mid\"]").content; 4263 } else { 4264 mid = ""; 4265 } 4266 if (!window.is_scupio_sent && mid) { 4267 window._bwtm = window._bwtm || [] 4268 window._bwtm.push({ 4269 "mid": mid, 4270 "uid": "" 4271 }); 4272 } 4273</script>
4273 4274 4275<!-- cyb_snippet _tracking_code end --> 4276
4277<script> 4278 $(document).ready(function(){ 4279 if(window.location.pathname != '' && window.location.pathname != '/' ){ 4280 document.getElementById('index-recommendation').style.display = 'none' 4281 } 4282 }); 4283</script>
4283 4284 4285 4286 4287 <!-- Fast-Events --> 4288 <!-- cyb_snippet fast_events start --> 4289 4290
4291<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/fast_events-4a1e7dfec7e41476.js' type='text/javascript'></script>
4291 4292<link href='//cdn-general.cybassets.com/frontend/shop/beta_theme/css/fast_events-4a1e7dfec7e41476.css' rel='stylesheet' type='text/css' media='all' /> 4293 4294<!-- cyb_snippet fast_events end --> 4295 4296 <div class="bottom-right qk-pos--fixed"> 4297 <!-- gototop --> 4298 <div id="gototop" class="qk-display--none qk-text--center"> 4299 <a href="javascript:void(0)" class="qk-circle qk-circle--lg qk-pos--relative qk-text--center"> 4300 <i class="fas fa-chevron-up"></i> 4301 </a> 4302 </div> 4303 4304 <!-- popup --> 4305 4306 4307 4308 4309<div id="popup-wrapper" class="qk-display--none"></div> 4310 4311<template id="popup-template"> 4312 <div 4313 :class="status" 4314 v-if="hasContent" 4315 id="popup-section" 4316 > 4317 <transition name="backdrop"> 4318 <div 4319 v-if="shouldShowPopup" 4320 @click.capture="minifyPopup" 4321 id="popup-backdrop" 4322 class="qk-w--100vw qk-h--100vh qk-pos--fixed qk-t--0 qk-l--0 qk-tst" 4323 > 4324 </div> 4325 </transition> 4326 <transition name="onShow"> 4327 <div 4328 @click.self="showPopup" 4329 @transitionstart="updateGameStatus('start', this)" 4330 @transitionend="updateGameStatus('end', this)" 4331 class="popup-content qk-display--flex qk-align--center qk-tst qk-tst_dur--30 qk-tst_timing--ease_o" 4332 > 4333 <div 4334 v-for="block in blocks" 4335 :key="block.id" 4336 :class="[block.type, minifiedBlockClasses, block.settings.icon_size]" 4337 class="block qk-tst qk-tst_dur--30 qk-tst_timing--ease_o qk-of--auto" 4338 > 4339 <div v-if="block.type === 'image'" class="qk-pos--rel"> 4340 <img 4341 v-show="!shouldShowPopup" 4342 :src="block.settings.dict_icon_image_url" 4343 class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o" 4344 alt="popup button" 4345 > 4346 <a 4347 v-show="shouldShowPopup" 4348 :href="block.settings.dict_link" 4349 :target="block.settings.target" 4350 :rel="block.settings.rel" 4351 class="qk-display--flex qk-align--center" 4352 @click="linkClicked" 4353 > 4354 <picture> 4355 <source :srcset="block.settings.dict_mobile_image_url" media="(max-width: 576px)"> 4356 <source :srcset="block.settings.dict_tablet_image_url" media="(max-width: 992px)"> 4357 <img 4358 :src="block.settings.dict_image_url" 4359 class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o" 4360 alt="popup picture" 4361 /> 4362 </picture> 4363 </a> 4364 </div> 4365 <div v-if="block.type === 'video'"> 4366 <iframe 4367 :src="block.settings.dict_video_link" 4368 frameborder="0" 4369 class="qk-center--y qk-w--100 qk-h--100" 4370 ></iframe> 4371 </div> 4372 <div v-if="block.type === 'game'"> 4373 <div v-show="gameStatus === 'show'" :class="{ 'show-game': gameStatus === 'show' }"> 4374 <iframe 4375 class="cb-game-iframe iframe-loading" 4376 :src="getGameIframeSrc(block)" 4377 style="border: none;" 4378 > 4379 Loading 4380 </iframe> 4381 </div> 4382 <div v-show="gameStatus === 'minified'"> 4383 <img 4384 src="//cdn-general.cybassets.com/game_assets/game_minified_new.png" 4385 class="qk-h--100 qk-w--100" 4386 alt="game minified icon" 4387 /> 4388 </div> 4389 </div> 4390 <div 4391 v-if="block.type === 'carousel'" 4392 :id="`popup-carousel-${block.id}`" 4393 > 4394 </div> 4395 </div> 4396 </div> 4397 </transition> 4398 <transition name="backdrop"> 4399 <div 4400 v-if="shouldShowPopup" 4401 @click.capture="minifyPopup" 4402 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" 4403 > 4404 </div> 4405 </transition> 4406 </div> 4407</template> 4408
4409<script> 4410 $(document).ready(function() { 4411 const CDN_HOST = '//cdn-general.cybassets.com'; 4412 const section = {"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":false,"settings":{"dict_image_url":"/theme_src/i18n_shoestore/default_img/popup_default.jpg","icon_size":"small"},"custom_name":"åç"}},"block_order":["popup_block_1"],"settings":{},"custom_name":"å½çªå»£å"}; 4413 var popupSection = Vue.createApp({ 4414 template: '#popup-template', 4415 delimiters: ['${', '}'], 4416 data() { 4417 const isOmniauthPage = ['omniauth_terms_agreement', 'omniauth_mobile/'] 4418 .some(path => location.pathname.includes(path)); 4419 return { 4420 status: 'minified', 4421 gameStatus: 'show', 4422 blocks: isOmniauthPage 4423 ? [] 4424 : section.block_order && section.block_order.reduce( 4425 function(acc, blockId) { 4426 const block = section.blocks[blockId]; 4427 if (block && block.visible) { 4428 acc.push({ 4429 ...block, 4430 id: blockId, 4431 }); 4432 } 4433 return acc; 4434 }, 4435 [], 4436 ), 4437 hasAddedGameScript: false, 4438 }; 4439 }, 4440 computed: { 4441 hasContent: function() { 4442 return !!(this.blocks && this.blocks.length > 0); 4443 }, 4444 minifiedBlockClasses: function() { 4445 return this.status === 'minified' ? 'qk-pointer--none qk-unselectable' : ''; 4446 }, 4447 shouldShowPopup: function() { 4448 return this.status === 'show'; 4449 } 4450 }, 4451 methods: { 4452 unhidePopup: function(storedStatus) { 4453 this.status = storedStatus; 4454 $('#popup-wrapper').removeClass('qk-display--none'); 4455 }, 4456 showPopup: function() { 4457 if (this.status !== 'show') { 4458 this.status = 'show'; 4459 this.saveStatus(this.status); 4460 } 4461 }, 4462 minifyPopup: function() { 4463 this.status = 'minified'; 4464 this.saveStatus('minified'); 4465 }, 4466 loadStatus: function() { 4467 return JSON.parse(localStorage.getItem('popupStatus')); 4468 }, 4469 saveStatus: function(status) { 4470 if (status) { 4471 localStorage.setItem('popupStatus', JSON.stringify({ 4472 status: status, 4473 setTime: new Date().getTime(), 4474 })); 4475 } 4476 }, 4477 linkClicked: function() { 4478 this.saveStatus('minified'); 4479 }, 4480 parseVideoLink: function(settings) { 4481 settings.dict_video_link = themeHelper.parseYtUrl(settings.dict_video_link); 4482 }, 4483 setupImageSrc: function (settings) { 4484 settings.dict_image_url = this.addCdnHost(settings.dict_image_url); 4485 if (settings.dict_tablet_image_url) { 4486 settings.dict_tablet_image_url = this.addCdnHost(settings.dict_tablet_image_url); 4487 } 4488 if (settings.dict_mobile_image_url) { 4489 settings.dict_mobile_image_url = this.addCdnHost(settings.dict_mobile_image_url); 4490 } 4491 settings.dict_icon_image_url = this.addCdnHost(settings.dict_icon_image_url) || settings.dict_image_url; 4492 }, 4493 addCdnHost: function(url) { 4494 if (!url) { 4495 return url; // only add cdn host if url is not empty 4496 } 4497 4498 try { 4499 new URL(url); 4500 return url; // already a valid url, cdn host not needed 4501 } catch { 4502 return `${CDN_HOST}${url}`; 4503 } 4504 }, 4505 initStatus: function() { 4506 let newStatus = 'show'; 4507 const popupStatus = this.loadStatus(); 4508 const currentTime = new Date().getTime(); 4509 const oneDay = 1000 * 60 * 60 * 24; 4510 const hasStoredStatus = popupStatus && currentTime - popupStatus.setTime < oneDay; 4511 const redirectedByGameLogin = !this.hasRedirectUrl() && this.redirectedByGameLogin(); 4512 const isLoggingIn = this.isLoggingIn(); 4513 const isCartPage = window.location.pathname.split('/').includes('carts'); 4514 4515 if (hasStoredStatus && !redirectedByGameLogin) { 4516 newStatus = popupStatus.status; 4517 } 4518 4519 if (isLoggingIn) { 4520 newStatus = 'minified'; 4521 } else { 4522 localStorage.removeItem('redirectedByPopup'); 4523 } 4524 4525 setTimeout(() => { 4526 this.status = newStatus; 4527 this.gameStatus = newStatus; 4528 this.saveStatus(newStatus); 4529 if(!isCartPage){ 4530 this.unhidePopup(newStatus); 4531 } 4532 }, 1000); 4533 }, 4534 initBlocks: function() { 4535 if (this.hasContent) { 4536 this.blocks.forEach(block => { 4537 switch(block.type) { 4538 case 'image': 4539 this.setupImageSrc(block.settings); 4540 4541 const isOpenInNewTab = block.settings.link_open_in_new_tab; 4542 if (isOpenInNewTab) { 4543 block.settings.target = '_blank'; 4544 block.settings.rel = 'noopener noreferrer'; 4545 } 4546 4547 break; 4548 case 'video': 4549 this.parseVideoLink(block.settings); 4550 break; 4551 } 4552 }) 4553 } 4554 }, 4555 getGameIframeSrc: function (block) { 4556 return `/games/${block.settings.dict_game_handle}` 4557 }, 4558 updateGameStatus: function(type, element) { 4559 if ( 4560 (type === 'start' && this.status === 'minified') 4561 || (type === 'end' && this.status === 'show') 4562 ) { 4563 this.gameStatus = this.status; 4564 } 4565 }, 4566 setupGameRedirects: function() { 4567 window.addEventListener('pagehide', () => { 4568 const isGameActive = document.body.getElementsByClassName('show-game').length; 4569 if (isGameActive) { 4570 localStorage.setItem('redirectedByPopup', 'true'); 4571 this.saveStatus('minified'); 4572 } 4573 }); 4574 }, 4575 hasRedirectUrl: function() { 4576 return (new URLSearchParams(location.search)).has('redirect_url'); 4577 }, 4578 redirectedByGameLogin: function() { 4579 return localStorage.getItem('redirectedByPopup'); 4580 }, 4581 isLoggingIn: function() { 4582 const loginRelatedPathnames = [ 4583 'account/signup', 4584 'account/login', 4585 'account/customer/password/new', 4586 'pages/terms' 4587 ]; 4588 return loginRelatedPathnames.some(path => location.pathname.includes(path)); 4589 } 4590 }, 4591 created: function() { 4592 this.initStatus(); 4593 this.initBlocks(); 4594 this.setupGameRedirects(); 4595 }, 4596 mounted: function() { 4597 this.blocks.forEach((block) => { 4598 if (block.type === 'carousel' && block.settings.dict_c
4598arousel) { 4599 renderCarousel(`#popup-carousel-${block.id}`, { 4600 title: block.settings.dict_carousel, 4601 CDN_HOST, 4602 onLinkClick: () => this.linkClicked(), 4603 }); 4604 } 4605 }); 4606 }, 4607 }); 4608 popupSection.mount('#popup-wrapper'); 4609 }); 4610</script>
4610 4611 4612 4613 4614 </div> 4615 4616 <!-- ajaxloading --> 4617 <div id="ajaxloading" class="qk-display--none qk-h--100vh qk-w--100vw qk-l--0 qk-t--0 qk-pos--fixed"> 4618 <div class="ajaxbody qk-pos--abs qk-l--50 qk-t--50 qk-text--center"> 4619 <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"> 4620 <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"/> 4621 <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 "/> 4622 <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"/> 4623 <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"/> 4624 <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"/> 4625 <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"/> 4626 </svg> 4627 <div class="success_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">Added to Cart</div> 4628 <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> 4629 <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> 4630 </div> 4631 </div> 4632
4632<script src="//cdn-general.cybassets.com/assets/referral-code-trace-5fcbbe026a61c36b5f09a1615a1c168688205205d9d3e7ee854181a66b64a6ed.js"></script>
4632 4633
4633<script> 4634 cyb.push({ 4635 'event': 'productImpressions', 4636 'ecommerce':{ 4637 'currencyCode': 'TWD', 4638 'impressions':[{"id":69730530,"name":"åå³å·§é ¥-600g享ç¦å ","price":650.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":1},{"id":60642684,"name":"é¿è¯ç°å·§å å麥è½é¢¨å³çç ç奶ç³-50g","price":99.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":2},{"id":60642605,"name":"é¿è¯ç°å·§å å麥è½å·§é ¥-50g","price":99.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":3},{"id":60641370,"name":"ç±³å ¶æèèçè»ç³-50g","price":99.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":4},{"id":51110248,"name":"ç¦æºè±çèé¬éªQé¤ -150g","price":160.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":5},{"id":72645839,"name":"ç¦æºè±çéªQé¤ -150g","price":99.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":6},{"id":34245313,"name":"æ³å¼çè»é ¥-鳳梨å£å³120g çè£","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":7},{"id":61503856,"name":"çä¸è¾£-æ¤é¹½é¢¨å³","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":8},{"id":46513311,"name":"æä»ç奶ç³(ç¦ç³å£å³)100g","price":180.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":9},{"id":46513220,"name":"æä»ç奶ç³(åå³)100g","price":180.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":10},{"id":40893118,"name":"åæ£æ ¸æ¡ç³100g","price":180.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":11},{"id":40892747,"name":"åå³çè»ç³-100g","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":12},{"id":40878187,"name":"é¹¹èé»çè»ç³-100g","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":13},{"id":40087237,"name":"æ³å¼çè»é ¥-èæ120g","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":14},{"id":38546480,"name":"ç¼è²¡é»ç³-èèæ¯","price":175.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":15},{"id":38546312,"name":"ç¼è²¡é»ç³-æ¡åç´ æ£","price":175.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":16},{"id":38546124,"name":"ç¼è²¡é»ç³-åå³","price":175.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":17},{"id":36460098,"name":"ç¦æºå¥½äºè±çéªè±é¤ ä¹¾-150g","price":180.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":18},{"id":34335440,"name":"é¿è¯ç°å·§å å麥è½é¢¨å³çç çå¥¶ç³ 80g","price":130.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":19},{"id":34302910,"name":"èæçè»ç³-100g","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":20},{"id":34302909,"name":"鳳梨çè»ç³-100g","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":21},{"id":34245314,"name":"æ³å¼çè»é ¥-é¹¹èé»120g","price":150.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":22},{"id":53590935,"name":"太å¦è °æé ¥ç³-åå³100g","price":180.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":23},{"id":34245327,"name":"太å¦è °æé ¥-é»è¡æ¤100g","price":180.0,"brand":null,"category":null,"variant":"","list":"Collection: ææåå","position":24}] 4639 } 4640 }) 4641 </script>
4641 4642 </body> 4643 4644
4644<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/sub_vendor-4a1e7dfec7e41476.js' type='text/javascript'></script>
4644 4645
4645<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme_helper-4a1e7dfec7e41476.js' type='text/javascript'></script>
4645 4646 4647 <!-- theme assets --> 4648
4648<script src='//cdn-general.cybassets.com/s/files/19123/theme/124804/assets/js/1761013117_fa65aa2e_main.js?1761013117' type='text/javascript'></script>
4648 4649
4649<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/theme-4a1e7dfec7e41476.js' type='text/javascript'></script>
4649 4650 4651 <!-- for cache --> 4652
4652<script src='//cdn-general.cybassets.com/frontend/shop/beta_theme/js/cacheable-4a1e7dfec7e41476.js' type='text/javascript'></script>
4652 4653</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.