PageSourceSearch

https://www.success.com.tw/products/s5190-20230317094020

html success.com.tw collected 2026-09-30 22:48:15 UTC 326,071 bytes, 6,644 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-TW" style="height:100%;">
3  <head>
4      
4<script>
5        window.dataLayer = window.dataLayer || [];
6      </script>
6
7    
8      <!-- CYBERBIZ Google Tag Manager -->
9      
9<script>
vendor: 345 bytes, lines 9-13
9(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
10      new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
11      j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
12      'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
13      })(window,document,'script','cyb','
13GTM-TXD9LVJ
vendor: 3 bytes, line 13
13');
13</script>
13
14      <!-- End CYBERBIZ Google Tag Manager -->
15    
16    <meta charset="utf-8">
17<meta http-equiv="X-UA-Compatible" content="IE=edge">
18<meta name="viewport" content="width=device-width, initial-scale=1">
19<link rel="icon" href="https://cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY1Mjc2XzQ4LmpwZy5qcGVnIl1d.jpeg?convert=false&sha=ce9aa9d35465a12e">
20<link rel="apple-touch-icon" href="https://cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY1Mjc2XzQ4LmpwZy5qcGVnIl1d.jpeg?convert=false&sha=ce9aa9d35465a12e">
21
22<meta property="og:site_name" content="成功SUCCESS" />
23
24<!-- og tag -->
25
26
27<!-- og image -->
28
29  <meta property="og:image" content="https://cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiNDgweDQ4MCJdXQ.jpeg?sha=e62005be53c4562d" />
30
31
32<title>
33  
34    成功 S5190扶手型臀腿踏步機 成功SUCCESS
35  
36</title>
37
38
39
40<script src='//cdn1-next.cybassets.com/frontend/shop/useSettingsData-3a2e378145f8a165.js' type='text/javascript'></script>
40
41
42
43
44  
44<script>
45    window.setSettingsData({"draggable_sections":{"404":[],"index":["_index_product_banner_2","1686029053702_0","1762478853109_3","1692680896631_1","_index_4_blocks","1669106926578_0","_index_8_blocks","1669107192847_1"],"product":["product_info","product_description","board_comments","related_products"],"collection":[],"category":[],"blog":[],"article":[],"cart":[],"contact":[],"express_delivery":[],"search":[],"combo_product":["combo_product_info","combo_product_desc","board_comments"]},"sections":{"navbar":{"type":"navbar","visible":true,"settings":{"navbar_image_logo_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac","navbar_image_logo_tablet_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac","navbar_image_logo_mobile_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac","main_nav":"main-menu","slider_primary_linklist":"main-menu","slider_primary_linklist_set_open":false,"nav_show_three_dimension":true,"search_enabled":true,"display_only_index":false,"dict_header_banner_image_url":"","dict_header_banner_image_tablet_url":"","dict_header_banner_image_mobile_url":"","dict_header_banner_link":"","display_count_down":true,"navbar_display_style":"rowNav","navbar_background_transparent":false,"header_banner_start":"2023-07-01T10:00:00+08:00","header_banner_end":"2023-07-31T10:00:00+08:00","timer_text_color":"#ffffff","timer_bg_color":"#bd1212","menu_display_style":"two_dimension_menu","link_menu_enabled":false,"link_menu":"undefined","display_banner_type":"imageBanner","header_banner_simple_text_size":"12","header_banner_simple_text_color":"#ffffff","header_banner_simple_bg":"#000000","logo_height":"","mobile_logo_position":"left","navbar_pc_title_font_size_scale":"100","navbar_pc_body_font_size_scale":"100","navbar_mobile_title_font_size_scale":"100","navbar_mobile_body_font_size_scale":"100","breadcrumb_referrer_enabled":false},"custom_name":"導覽列"},"footer":{"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/%E6%88%90%E5%8A%9Fsuccess-102582118310299","display_instagram":true,"shop_instagram":"https://www.instagram.com/success.1959?igsh=MWhuNjc4YTE4cGZjOA%3D%3D\u0026utm_source=qr","display_line":true,"shop_line":"https://page.line.me/success1959","display_youtube":true,"shop_youtube":"https://www.youtube.com/channel/UC_mmdR-71QxAqsVymgFeDIQ","footer_link_arrangement":"display_y","display_facebook_fan_block":true},"block_order":["default_link_list","1669108375663_2","default_contact_info"],"blocks":{"default_link_list":{"type":"link_list_setting","custom_name":"選單","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"","footer_link":"main-menu"}},"default_contact_info":{"type":"contact_info_setting","custom_name":"聯絡資訊","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"contact_info_block_title":"聯絡資訊","display_phone":true,"dict_phone_number":"0800-007-030,分機10或39","display_fax_number":true,"dict_shop_fax_number":"0226957031","display_shop_email":true,"dict_shop_email":"[email protected]","display_shop_address":true,"dict_shop_address":"新北市汐止區康寧街149號2F","display_office_time":true,"dict_shop_office_time":"08:30-17:30","dict_contact_info_block_title":"聯絡資訊"}},"1669108375663_2":{"type":"rich_text_editor_setting","custom_name":"自訂文字","visible":true,"settings":{"dict_rich_text_title":"","dict_rich_text_content":"\u003cp\u003e成功體育文具股份有限公司\u003cbr\u003e統一編號 : 04431071\u003c/p\u003e\n"}}},"custom_name":"頁腳"},"_index_product_banner":{"type":"_index_product_banner","visible":true,"settings":{"dict_link":"/collections/亞伯特-登山杖","dict_image_url":"","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg2MDI0MDE0XzE5MjAt55m75bGx5p2WOTYwLmpwZy5qcGVnIl1d.jpeg?sha=1e0f1867f0a6aa92","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg2MDI0MDU5XzE5MjAt55m75bGx5p2WNDgwLmpwZy5qcGVnIl1d.jpeg?sha=2ffc86c42e056c08","display_cta_btn":false,"cta_btn_display_style":"bottomPosition","cta_btn_text":"SHOP NOW","cta_btn_bg_color":"#ffffff","cta_btn_text_color":"#673131","margin_x":"0","margin_bottom":"8","mobile_margin_x":"0","mobile_margin_bottom":"12"},"custom_name":"橫幅廣告"},"_index_8_blocks":{"type":"_index_8_blocks","visible":true,"settings":{"dict_title":"Hot sale 熱銷商品 ","collection_handle":"新品上市","limit":"8","margin_x":"80","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"48","product_display":"displayAll","product_arrangement":"1","product_alignment":"leftPosition","product_text_align":"center","product_column_for_pc":"4","product_column_for_mobile":"2","product_card_hover_effect":"button","product_image_border_radius":"15"},"custom_name":"商品分類"},"_index_4_blocks":{"type":"_index_4_blocks","visible":true,"blocks":{"display_index_4_block_1":{"type":"image","visible":true,"settings":{"title":"","dict_link":"","dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2Nzc2MzAzX-mWgOaquy3lhY3pgYsxOTIwLmpwZy5qcGVnIl1d.jpeg?sha=26c8c49a04ed3929","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2Nzc2NTA1X-mWgOaquy3lhY3pgYs5NjAuanBnLmpwZWciXV0.jpeg?sha=3a199d1227a911f8","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2Nzc2NTE0X-mWgOaquy3lhY3pgYs0ODAuanBnLmpwZWciXV0.jpeg?sha=2f4bd94830152766","block_propotion":"33","dict_image_description":""},"custom_name":"圖片"},"display_index_4_block_2":{"type":"image","custom_name":"圖片","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2Nzc2NTM1X-mWgOaquy3ku5josrsxOTIwLmpwZy5qcGVnIl1d.jpeg?sha=8b37116df8b78942","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2Nzc2NTUwX-mWgOaquy3ku5josrs5NjAuanBnLmpwZWciXV0.jpeg?sha=96268c1e7ddca6d6","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2Nzc2NTYxX-mWgOaquy3ku5josrs0ODAuanBnLmpwZWciXV0.jpeg?sha=3eeab02e2ba9bd63","dict_link":"","block_propotion":"33","dict_image_description":""}},"display_index_4_block_3":{"type":"image","custom_name":"圖片","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA1NDg0X-acjeWLmS0xOTIwLmpwZy5qcGVnIl1d.jpeg?sha=744112a104b47563","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA1NDg4X-acjeWLmS05NjAuanBnLmpwZWciXV0.jpeg?sha=bb003fd0cfba29f8","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA1NDkxX-acjeWLmS00ODAuanBnLmpwZWciXV0.jpeg?sha=30387837bf4447e6","dict_link":"","block_propotion":"33","dict_image_description":""}}},"block_order":["display_index_4_block_1","display_index_4_block_2","display_index_4_block_3"],"custom_name":"自訂排版設計","settings":{"margin_x":"0","margin_bottom":"48","mobile_margin_x":"0","mobile_margin_bottom":"40","mobile_columns":1,"margin_block":"10","mobile_margin_block":"10","mobile_align":"left"}},"_index_8_blocks_2":{"type":"_index_8_blocks","custom_name":"商品分類","visible":true,"settings":{"dict_title":"Womens","collection_handle":"under-peace-men","limit":"4","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","product_display":"displayPartial"},"blocks":{},"block_order":[]},"_index_product_banner_2":{"type":"_index_product_banner","custom_name":"橫幅廣告","visible":false,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTE3MzM0X-aYpeevgDE5MjAuanBnLmpwZWciXV0.jpeg?sha=bd9905e525ff6bc6","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTE3MzQ1X-aYpeevgDk2MC5qcGcuanBlZyJdXQ.jpeg?sha=2cc97cfc2f006b34","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzM3NTE3MzUxX-aYpeevgDQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=11e07c06f42672f8","dict_link":"","display_cta_btn":false,"cta_btn_display_style":"bottomPosition","cta_btn_text":"Shop Now →","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"5","mobile_margin_x":"0","mobile_margin_bottom":"5"},"blocks":{},"block_order":[]},"_index_product_banner_3":{"type":"_index_product_banner","custom_name":"橫幅廣告","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2NzAwXzE5MjAtYnIxLmpwZy5qcGVnIl1d.jpeg?sha=3b76ccb1b4bc76f9","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2NzkyXzk2MC1icjEuanBnLmpwZWciXV0.jpeg?sha=36b896ee4d8e9eb2","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2Nzk5XzQ4MC1icjEuanBnLmpwZWciXV0.jpeg?sha=4d6f976170517a78","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":"120","margin_bottom":"32","mobile_margin_x":"0","mobile_margin_bottom":"40"},"blocks":{},"block_order":[]},"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_walker/default_img/index_4_blocks_1.png","dict_tablet_image_url":"","dict_mobile_image_url":""}}},"block_order":["express_delivery_display_index_4_block_1"]},"custom_text":{"type":"custom_text","visible":true,"settings":{}},"blog":{"type":"blog","visible":true,"settings":{"article_limit_in_blog_page":"6"},"custom_name":"部落格設定"},"article":{"type":"article","visible":true,"settings":{"display_blog_menu":true,"dict_blog_tags_title":"文章分類","blog_latest_post_limit":"2"}},"category":{"type":"category","visible":true,"settings":{"category_sidebar_set_open":false,"category_product_block_limit":"4","category_product_swiper_item_limit":"
456","category_product_item_limit":"18"}},"shop_setting":{"type":"shop_setting","visible":true,"settings":{"favicon_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY1Mjc2XzQ4LmpwZy5qcGVnIl1d.jpeg?sha=ce9aa9d35465a12e","og_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY1Mjc2XzMwMC5qcGcuanBlZyJdXQ.jpeg?sha=ae8a9f7c07271f83","shop_title":"    ","shop_description":"成功體育文具股份有限公司創始於1959年,累積數十年厚實的專業經營與研發實力,秉持著創新、服務、專業的經營理念,並遵循著能源環保、健康休閒方針,不斷研發抗菌、無毒、環保的產品,來滿足消費者的需求。 成功牌旗下有桌拍類、桌球類、護具類、滾筒類、按摩類、拉力帶類、啞鈴類、路跑用品類、袖套類、運動球類、健身器材、瑜珈器材、跳繩類、泳鏡類、直排輪類、滑板類、蛇板類、羽拍類、羽球類...等等。","shop_keywords":"直排輪,籃球,羽球,桌球,護具,瑜珈,健身,游泳,登山杖,野餐墊,帳篷,文具,辦公用品,白板筆,速乾筆,彩色筆,磁鐵,掛鉤,黏膠","prevent_right_click":false},"custom_name":"全站設定"},"color_settings":{"type":"color_settings","visible":true,"settings":{"button_color":"#00a1a3","button_text_color":"#ffffff","accent_color":"#40c1ac","heading_color":"#000000","text_color":"#9A9EA2","price_color":"#00a1a3","discount_price_color":"#00a1a3","theme_bg_color":"#ffffff","product_border_color":"#00a1a3","nav_logo_bg_color":"#d5f3eb","nav_menu_bg_color":"#d5f3eb","nav_menu_text_color":"#636465","nav_menu_icon_color":"#3e4442","footer_bg_color":"#d5f3eb","footer_text_color":"#636465","checkout_button_color":"#535353","checkout_accent_color":"#00a1a3","tips_text_color":"#0C5460"},"custom_name":"顏色設定"},"popup":{"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzQyX-W9iOi3sy5qcGcuanBlZyJdXQ.jpeg?sha=ed7cd65133fce6f7","icon_size":"small","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzUwX-W9iOi3sy05NjAuanBnLmpwZWciXV0.jpeg?sha=27a1e07ebc1671ea","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzU3X-W9iOi3szQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=e8c5df78cb302b2e","dict_icon_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzYzX-W9iOi3sy0xMDAuanBnLmpwZWciXV0.jpeg?sha=bea2f6df686dba72","dict_link":"/collections/出清特價39元起"},"custom_name":"圖片"}},"block_order":["popup_block_1"],"settings":{},"custom_name":"彈窗廣告"},"product_info":{"type":"product_info","visible":true,"settings":{"display_product_sku":true,"dict_vip_custom_price_text":"","dict_vip_custom_price_href":""},"custom_name":"基本設定"},"product_description":{"type":"product_description","visible":true,"custom_name":"商品介紹"},"board_comments":{"type":"board_comments","visible":true,"settings":{},"custom_name":"商品評論","thumbnail":"list","draggable":false},"related_products":{"type":"related_products","visible":true,"settings":{"display_related_cols":true,"use_custom_related_cols":true,"dict_group_related_cols_related_product":"相關商品","related_products_limit":"4"},"custom_name":"相關商品"},"contact":{"type":"contact","visible":true,"settings":{"show_google_map":true,"show_google_map_iframe":"\u003ciframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3613.6479170127777!2d121.56760821400371!3d25.07991984260527!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3442ac6fbd841bbd%3A0x64e16bcf25e3da31!2zMTE05Y-w5YyX5biC5YWn5rmW5Y2A55Ge5YWJ6LevNTEz5be3MzDomZ8!5e0!3m2!1szh-TW!2stw!4v1485156761267\" width=\"600\" height=\"450\" frameborder=\"0\" style=\"border:0\" allowfullscreen\u003e\u003c/iframe\u003e"}},"collection":{"type":"collection","visible":true,"settings":{"collection_sidebar":"main-menu","collection_sidebar_set_open":false,"collection_pagination_limit":"24"},"custom_name":"商品分類設定"},"404":{"type":"404","visible":true,"settings":{"image_url":"","dict_404_image_url":"","dict_title_text":"抱歉,此頁面不存在或者已經被移除","dict_btn_text":"返回首頁"},"custom_name":"404頁"},"blogs_all":{"type":"blogs_all","visible":true,"settings":{}},"bundle_discounts":{"type":"bundle_discounts","visible":true,"settings":{}},"cart":{"type":"cart","visible":true,"settings":{}},"cart_empty":{"type":"cart_empty","visible":true,"settings":{}},"page":{"type":"page","visible":true,"settings":{}},"search":{"type":"search","visible":true,"settings":{"search_link_list":"main-menu"},"custom_name":"搜尋頁"},"customers/account":{"type":"customers/account","visible":true,"settings":{}},"customers/account_edit":{"type":"customers/account_edit","visible":true,"settings":{}},"customers/activate_account":{"type":"customers/activate_account","visible":true,"settings":{}},"customers/addresses":{"type":"customers/addresses","visible":true,"settings":{}},"customers/bonus_points":{"type":"customers/bonus_points","visible":true,"settings":{}},"customers/cancel":{"type":"customers/cancel","visible":true,"settings":{}},"customers/coupons":{"type":"customers/coupons","visible":true,"settings":{}},"customers/forgot_password":{"type":"customers/forgot_password","visible":true,"settings":{}},"customers/login":{"type":"customers/login","visible":true,"settings":{}},"customers/message":{"type":"customers/message","visible":true,"settings":{}},"customers/messages":{"type":"customers/messages","visible":true,"settings":{}},"customers/modify_password":{"type":"customers/modify_password","visible":true,"settings":{}},"customers/order":{"type":"customers/order","visible":true,"settings":{}},"customers/orders":{"type":"customers/orders","visible":true,"settings":{}},"customers/periodic_order":{"type":"customers/periodic_order","visible":true,"settings":{}},"customers/periodic_orders":{"type":"customers/periodic_orders","visible":true,"settings":{}},"customers/register":{"type":"customers/register","visible":true,"settings":{}},"customers/reset_password":{"type":"customers/reset_password","visible":true,"settings":{}},"customers/return":{"type":"customers/return","visible":true,"settings":{}},"customers/tracking_items":{"type":"customers/tracking_items","visible":true,"settings":{}},"express_delivery-navbar":{"type":"express_delivery-navbar","visible":true,"settings":{}},"express_delivery-content":{"type":"express_delivery-content","visible":true,"settings":{}},"1669106926578_0":{"type":"_main_slider_custom","custom_name":"輪播素材","visible":false,"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","swiper_delay":"3","image_number":"1","image_space":"12","mobile_image_number":"1","mobile_image_space":"8","transition_speed":"0.3"},"blocks":{"1669106926584_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA1OTgxX1M1MTkwLmpwZy5qcGVnIl1d.jpeg?sha=09216c6994a30aab","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2MTY3X1M1MTkwLTk2MC5qcGcuanBlZyJdXQ.jpeg?sha=89398016e821ee52","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2MTc1X1M1MTkwLTQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=4b7bb24703a2a88b","dict_link":"/products/s5190","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1669107082895_0":{"type":"image","custom_name":"素材","visible":false,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2NzAwXzE5MjAtYnIxLmpwZy5qcGVnIl1d.jpeg?sha=3b76ccb1b4bc76f9","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2NzkyXzk2MC1icjEuanBnLmpwZWciXV0.jpeg?sha=36b896ee4d8e9eb2","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2Nzk5XzQ4MC1icjEuanBnLmpwZWciXV0.jpeg?sha=4d6f976170517a78","dict_link":"/products/s5196","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}}},"block_order":["1669106926584_0","1669107082895_0"]},"1669107192847_1":{"type":"_index_product_banner","custom_name":"橫幅廣告","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA4MTcwX-a
45ItuWkli0xOTIwLmpwZy5qcGVnIl1d.jpeg?sha=bdacaa86b33e7acb","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA4MTc4X-aItuWkli05NjAuanBnLmpwZWciXV0.jpeg?sha=7e02a4358f8b8e22","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA4MTg1X-aItuWkli00ODAuanBnLmpwZWciXV0.jpeg?sha=40c6dc69d5832d33","dict_link":"/collections/滑板-蛇板-滑板車","display_cta_btn":true,"cta_btn_display_style":"bottomPosition","cta_btn_text":"了解更多","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24"},"blocks":{},"block_order":[]},"combo_product_info":{"type":"combo_product_info","visible":true,"settings":{}},"combo_product_desc":{"type":"combo_product_desc","visible":true,"settings":{}},"customers/other_valid_orders":{"type":"customers/other_valid_orders","visible":true,"settings":{}},"1686029053702_0":{"type":"_main_slider_custom","custom_name":"輪播素材","visible":true,"settings":{"margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"50","swiper_delay":"3","image_number":"1","image_space":"12","mobile_image_number":"1","mobile_image_space":"8","transition_speed":"0.3"},"blocks":{"1686029053709_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA1OTgxX1M1MTkwLmpwZy5qcGVnIl1d.jpeg?sha=09216c6994a30aab","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2MTY3X1M1MTkwLTk2MC5qcGcuanBlZyJdXQ.jpeg?sha=89398016e821ee52","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY5MTA2MTc1X1M1MTkwLTQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=4b7bb24703a2a88b","dict_link":"https://www.success.com.tw/products/s5190-20230317094020","main_slider_image_alt":"登山杖","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1686029076548_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg2MDMxNjc2XzE5MjAt55m75bGx5p2WMS5qcGcuanBlZyJdXQ.jpeg?sha=3c4f03e0faf6ca16","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg2MDMxNjkyXzk2MC3nmbvlsbHmnZYxLmpwZy5qcGVnIl1d.jpeg?sha=fdabfc685f760bcc","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg2MDMxNjk5XzQ4MC3nmbvlsbHmnZYxLmpwZy5qcGVnIl1d.jpeg?sha=84cac13f78bf5764","dict_link":"/collections/亞伯特-登山杖","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1686032070219_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzMxNDAwMjYzXzE5MjAt5aq956WWLmpwZy5qcGVnIl1d.jpeg?sha=13ed248cf6a8b8cf","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzMxNDAwMjc4Xzk2MC3lqr3npZYuanBnLmpwZWciXV0.jpeg?sha=319e13ea93e32074","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzMxNDAwMjkwXzQ4MC3lqr3npZYuanBnLmpwZWciXV0.jpeg?sha=07dfa0baa079794f","dict_link":"https://www.success.com.tw/products/s5118s5119","main_slider_image_alt":"跳繩","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1695259670388_0":{"type":"image","custom_name":"素材","visible":false,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzcwNjE5ODIwX-aYpeevgDE5MjAuanBnLmpwZWciXV0.jpeg?sha=45f18bcabaf3d60f","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzcwNjE5ODMxX-aYpeevgDk2MC5qcGcuanBlZyJdXQ.jpeg?sha=356fc29267864859","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzcwNjE5ODM5X-aYpeevgDQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=c8c059cf79217b12","dict_link":"https://www.success.com.tw/collections/%E4%BA%9E%E4%BC%AF%E7%89%B9-%E9%87%8E%E9%A4%90%E6%B2%99%E7%81%98%E5%BF%AB%E9%96%8B%E5%B8%B3%E7%AF%B7","main_slider_image_alt":"","slide_contents_display":"left","slide_btn_link":"","slide_title_color":"#000000","slide_content_color":"#000000","slide_btn_bg_color":"#000000","slide_btn_text_color":"#ffffff","dict_slide_btn_link":""}},"1779849970742_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzg1NDY1NzAwX1MyOTA1LTE5MjAuanBnLmpwZWciXV0.jpeg?sha=44a4dd6d239b6965","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzg1NDY1NzEyX1MyOTA1LTk2MC5qcGcuanBlZyJdXQ.jpeg?sha=311f74ca4244a440","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzg1NDY1NzIxX1MyOTA1LTQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=6a9180af6052d9c0","dict_link":"/collections/匹克拍-匹克球","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"}},"1785463752155_0":{"type":"image","custom_name":"素材","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzg1NDYzODU4X1M0ODAwLTE5MjAuanBnLmpwZWciXV0.jpeg?sha=09b7823c08734f1d","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzg1NDYzODc3X1M0ODAwLTk2MC5qcGcuanBlZyJdXQ.jpeg?sha=77ac0db9edbf159d","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzg1NDYzODg1X1M0ODAwLTQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=781b84d68cf3dd48","dict_link":"https://www.success.com.tw/products/s4800","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":["1779849970742_0","1686029053709_0","1686032070219_0","1785463752155_0","1695259670388_0","1686029076548_0"]},"1692680896631_1":{"type":"_index_product_banner","custom_name":"橫幅廣告","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzY3MDYxOTQ2X-aOkueQg-WwkeW5tC0xOTIwIGZpeC5qcGcuanBlZyJdXQ.jpeg?sha=41320efe27ab3d0d","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzY3MDYyMDc1X-aOkueQg-WwkeW5tC05NjAgZml4LmpwZy5qcGVnIl1d.jpeg?sha=85714f3a54a50d7c","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzY3MDYyMDg0X-aOkueQg-WwkeW5tC00ODAgZml4LmpwZy5qcGVnIl1d.jpeg?sha=7ccbb5d998be57ce","dict_link":"/collections/排球少年正版周邊","cta_btn_display_style":"bottomPosition","cta_btn_bg_color":"#000000","cta_btn_text_color":"#ffffff","margin_x":"0","margin_bottom":"50","mobile_margin_x":"0","mobile_margin_bottom":"24","display_cta_btn":false,"dict_cta_btn_text":"趕快報名去"},"blocks":{},"block_order":[]},"1760686730690_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":{"1760686730691_0":{"type":"image","custom_name":"圖片","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNzYwNjg3MTYzX-aOkueQg-WwkeW5tCAtMTkyMC5qcGcuanBlZyJdXQ.jpeg?sha=9f546de29f5b322a","dict_tablet_image_url":"","dict_mobile_image_url":"","dict_image_description":"","dict_link":""}},"1760686730692_1":{"type":"video","custom_name":"影片","visible":true,"settings":{"dict_video_link":""}}},"block_order":["1760686730691_0","1760686730692_1"]},"1762478732613_3":{"type":"_video_editor_section","custom_name":"影片設定","visible":true,"settings":{"video_editor_section_dict_title":"","video_editor_section_dict_video_link":"","margin_x":"0","margin_bottom":"0","mobile_margin_x":"0","mobile_margin_bottom":"0"},"blocks":{},"block_order":[]},"1762478853109_3":{"type":"_video_editor_section","custom_name":"影片設定","visible":false,"settings":{"video_editor_section_dict_title":"","video_editor_section_dict_video_link":"https://www.youtube.com/watch?v=brwjiHcWn7s","margin_x":"0","margin_bottom":"20","mobile_margin_x":"0","mobile_margin_bottom":"0","dict_video_editor_section_title":"","dict_video_editor_section_video_link":"https://www.youtube.com/watch?v=brwjiHcWn7s","auto_play":false,"hide_controls":false,"loop":true},"blocks":{},"block_order":[]},"1762479126564_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":{"1762479126565_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":""}},"1762479126565_1":{"type":"video","custom_name":"影片","visible":true,"settings":{"dict_video_link":"https://www.youtube.com/watch?v=f_XHSsI9wBI\u0026list=RDf_XHSsI9wBI\u0026start_radio=1","block_propotion":""}}},"block_order":["1762479126565_0","1762479126565_1"]},"announcement_bar":{"type":"announcement_bar","visible":true,"blocks":{"announcement_bar_block_1":{"type":"image","visible":true,"settings":{"display_only_index":false,"display_period":"limited","dict_link":"","link_open_in_new_tab":false,"dict_image_url":"","dict_image_tablet_url":"","dict_image_mobile_url":"","image_alt":"","dict_content":"","text_size":"12","text_color":"#ffffff","bg_color":"#000000","timer_text_color":"#ffffff","timer_bg_color":"#bd1212","migrated_from_navbar":true}}},"block_order":["announcement_bar_block_1"],"settings":{"display_mode":"vertical","carousel_interval":"3"}}},"navbar_image_logo":true,"show_default_all_products":true,"one_dimension_limit":"
456","two_dimension_limit":"10","header_banner_display":true,"header_banner_link":"/","display_main_slider":true,"display_phone":true,"phone_number":"0912345678","display_fax_number":true,"shop_fax_number":"0222345678","display_shop_email":true,"shop_email":"[email protected]","display_shop_address":true,"shop_address":"測試地址","display_office_time":true,"shop_office_time":"10:00-17:00","index_event_slider_display":true,"index_event_slider_item_1_display":true,"dict_index_event_slider_item_1_link":"#","index_event_slider_item_2_display":true,"dict_index_event_slider_item_2_title":"2019秋季鞋款新品上市","dict_index_event_slider_item_2_link":"#","index_event_slider_item_3_display":true,"dict_index_event_slider_item_3_title":"全館任選三件結帳再享折扣!!8折!!","dict_index_event_slider_item_3_link":"#","index_event_slider_item_4_display":true,"dict_index_event_slider_item_4_title":"FINAL SALE/夏天熱銷百搭鞋款補貨到店","dict_index_event_slider_item_4_link":"#","index_event_slider_item_5_display":true,"dict_index_event_slider_item_5_title":"熱賣倒數","dict_index_event_slider_item_5_link":"#","index_event_slider_item_6_display":true,"dict_index_event_slider_item_6_title":"現在註冊會員即可享折扣金$50(現折)","dict_index_event_slider_item_6_link":"#","index_event_slider_item_7_display":false,"dict_index_event_slider_item_7_title":"","dict_index_event_slider_item_7_link":"","index_event_slider_item_8_display":false,"dict_index_event_slider_item_8_title":"","dict_index_event_slider_item_8_link":"#","index_event_slider_item_9_display":false,"dict_index_event_slider_item_9_title":"","dict_index_event_slider_item_9_link":"#","index_event_slider_item_10_display":false,"dict_index_event_slider_item_10_title":"","dict_index_event_slider_item_10_link":"#","index_4_slider_display":true,"dict_index_4_slider_title":"Instagram","index_4_slider_item_1_display":true,"dict_index_4_slider_item_1_link":"#","index_4_slider_item_2_display":true,"dict_index_4_slider_item_2_link":"#","index_4_slider_item_3_display":true,"dict_index_4_slider_item_3_link":"#","index_4_slider_item_4_display":true,"dict_index_4_slider_item_4_link":"#","index_4_slider_item_5_display":true,"dict_index_4_slider_item_5_link":"#","index_4_slider_item_6_display":false,"dict_index_4_slider_item_6_link":"#","index_4_slider_item_7_display":false,"dict_index_4_slider_item_7_link":"#","index_4_slider_item_8_display":false,"dict_index_4_slider_item_8_link":"#","index_video_blocks_display":true,"dict_index_video_blocks_title":"Youtube","dict_index_video_blocks_video_link":"https://www.youtube.com/watch?v=3bI4IUIVjCk","collection_sidebar":"main-menu","collection_sidebar_set_open":false,"collection_pagination_limit":"24","product_slogan_display":false,"display_product_total_sold":false,"display_periodic_order_label":false,"cart_quantity_limit":"0","is_empty_clickable":true,"is_first_selected":false,"display_product_images_color":false,"discount_product_images_color_expand":false,"display_product_discounts_list":true,"display_discount_price_name":false,"discount_price_slogan_url":"/theme_src/beta_theme/default_img/onsale_icon.png","dict_discount_price_name":"","display_discount_price_suggestion_name":false,"dict_discount_price_suggestion_name":"","display_product_section_description":true,"dict_product_section_description":"商品介紹","description_section_spec_setting":true,"dict_product_description_section_spec":"規格說明","description_section_shipping_setting":true,"dict_product_description_section_shipping":"運送方式","vip_custom_price_visible":false,"display_global_event_1":false,"dict_show_global_event_1_link":"#","display_global_event_2":false,"dict_show_global_event_2_link":"#","display_global_event_3":false,"dict_show_global_event_3_link":"#","display_contact_address":true,"dict_contact_address":"測試地址","show_google_map":true,"show_google_map_iframe":"\u003ciframe src=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3613.6479170127777!2d121.56760821400371!3d25.07991984260527!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3442ac6fbd841bbd%3A0x64e16bcf25e3da31!2zMTE05Y-w5YyX5biC5YWn5rmW5Y2A55Ge5YWJ6LevNTEz5be3MzDomZ8!5e0!3m2!1szh-TW!2stw!4v1485156761267\" width=\"600\" height=\"450\" frameborder=\"0\" style=\"border:0\" allowfullscreen\u003e\u003c/iframe\u003e","display_selected_blog":true,"selected_blog":"news","product_scale":"three_to_four_scale","google_font":"{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}","styled_shop_menu":"buttonType","display_inventory_policy":true,"display_product_vendor":true,"product_text_align":"center","product_video_display_location":"before","nav_icon_style":"icon_type_default","product_labels":{"items":[{"id":"sale_label","kind":"system","title":"特價標籤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"large"},{"id":"out_of_stock_label","kind":"system","title":"缺貨標籤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"periodic_event_label","kind":"system","title":"定期定額標籤","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"b11f8fdc-8712-4032-8366-eb06318dc34c","kind":"custom","title":"自定義標籤 1","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"f153aace-57df-4c5f-ba5e-e7627979a644","kind":"custom","title":"自定義標籤 2","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"6121256e-21f4-4360-b5fd-bb8e3a171c00","kind":"custom","title":"自定義標籤 3","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"e869aa65-5d19-4155-b12e-e919475bc3a1","kind":"custom","title":"自定義標籤 4","tag":"","display":false,"type":"text","dict_text":{"zh-TW":""},"image":"","image_size":"small"},{"id":"834ce151-66e7-46e9-9a83-886ffcf16070","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"});
46  </script>
46
47
48
49
50
51
52
53
54
55
56
57    <!-- for vendor -->
58    <!-- cyb_snippet _bootstrap start -->
59
60<!-- cyb_snippet _bootstrap end -->
61    <link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/vendor-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
62
63    <!-- common css rulesets -->
64    <link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/common-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
65
66    <!-- for navbar -->
67    <link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/navbar-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
68
69    <!-- for footer -->
70    <link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/footer-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
71
72    <!-- theme assets -->
73    <link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/main-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
74
75    <!-- for vendor -->
76    
76<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/vendor-3a2e378145f8a165.js' type='text/javascript'></script>
76
77
78            
78<script>
79          window.sci = "eyJzaG9wX2lkIjoyMjA4Niwic2hvcF9wbGFuIjoibWFzdGVyIiwiZGltX2Fm\nZmlsaWF0ZSI6bnVsbCwiY3VzdG9tZXJfaWQiOm51bGwsImN1c3RvbWVyX25h\nbWUiOm51bGwsInNob3BfbmFtZSI6IuaIkOWKn1NVQ0NFU1MiLCJzaGFyZV9h\ndHRyaWJ1dGlvbl9lbmFibGVkIjp0cnVlfQ==\n";
80        </script>
80
81
82
83<meta name="csrf-param" content="authenticity_token" />
84<meta name="csrf-token" content="wFW8rsoMPuqD4hHZzWlUKT8lBx6q1v8gnjumOpof0goYJdiLNoH5oR1S-6MfhN49VJlfV7g7TUJJ-77WhFF1Rw" />
85<script>(function () {
86  window.gaConfigurations = {"useProductIdInProductEvents":false};
87})();
88</script>
vendor: 1 bytes, line 88
88
89<script>(function () {
90  window.CYBERBIZ_PageContext = {"page_type":"product"};
91})();
92</script>
92
93<link href="//cdn1-next.cybassets.com/frontend/shop/quark-3a2e378145f8a165.css" rel="stylesheet" type="text/css" media="all" />
94        
94<script>
95          window.shopScriptHelper = {
96            i18nLocale: "zh-TW",
97            i18nLocaleDefault: "zh-TW",
98            availableCurrencies: [],
99            defaultCurrency: "TWD",
100            currenciesInfo: [{"name":"新台幣 (TWD)","html":"NT${{amount_no_decimals}}","money_format":"%u%n","unit":"","decimal_precision":0,"email_unit":"NT${{amount_no_decimals}}","html_unit":"NT${{amount_no_decimals}}","format":"NT${{amount_no_decimals}}","trailing_zeros":false,"code":"TWD","email":"NT${{amount_no_decimals}}","symbol":"NT$"}],
101            vueOverrideTranslations: {"zh-TW":{"vue":{}}},
102            hasI18nInContextEditing: false,
103            shopMultipleCurrenciesCheckout: false,
104            hasLocalizedShopPriceFormat: true,
105          }
106        </script>
106
107
108        
109        
109<script
110          src="//cdn1-next.cybassets.com/frontend/shop/tolgeeIntegration-3a2e378145f8a165.js">
111        </script>
111
112        
112<script defer>
113          /*
114          * Enable in-context translation for Liquid part on the page.
115          * This must be executed last to prevent conflicts with other Vue apps.
116          * So put it to `onload`, which will be executed after DOM ready's app mount
117          */
118          window.onload = function() {
119            if (
120              window.shopScriptHelper &&
121              window.shopScriptHelper.hasI18nInContextEditing
122            ) {
123              window.initTolgeeForLiquid()
124            }
125          }
126        </script>
126
127
128<script> var google_con_event_labels = [{"conversion_id":"10883446473","conversion_event":"account_created","conversion_label":"5PfVCMW0mMkZEMnt0MUo","id":null},{"conversion_id":"10883446473","conversion_event":"add_to_cart","conversion_label":"9RziCOHqpMkZEMnt0MUo","id":null},{"conversion_id":"10883446473","conversion_event":"checkout_page","conversion_label":"lnhMCOTqpMkZEMnt0MUo","id":null},{"conversion_id":"10883446473","conversion_event":"order_created","conversion_label":"hhc5CLiRoskZEMnt0MUo","id":null},{"conversion_id":"10883446473","conversion_event":"all","conversion_label":"XqzPCOrqpMkZEMnt0MUo","id":null},{"conversion_id":"10883446473","conversion_event":"home_page","conversion_label":"DIlRCOfqpMkZEMnt0MUo","id":null}]</script>
vendor: 1 bytes, line 128
128
129<script src="//cdn1-next.cybassets.com/frontend/shop/pageEventHandler-3a2e378145f8a165.js"></script>
vendor: 1 bytes, line 129
129
130<script src="//cdn1-next.cybassets.com/frontend/shop/globalAnalysis-e4c650eb0b.js"></script>
130
131        
131<script>
132          window.c12t = {"customer_id":null,"product":{"id":39906070,"name":"成功 S5190扶手型臀腿踏步機","price":2880.0,"brand":"成功SUCCESS"}};
133        </script>
133
134
135        <meta name="request-id" content="68EB76A2BABD6A93E407EEB22F3A710D"/>
136
137<link rel="canonical" href="https://www.success.com.tw/products/s5190-20230317094020">
138<script src="//cdn1-next.cybassets.com/frontend/shop/carousel-3a2e378145f8a165.js"></script>
138
139          
139<script>
140            window.parent.postMessage({ type: 'previewShopInit', currentUrl: window.location.href }, '*');
141          </script>
141
142
143<script src="//cdn1-next.cybassets.com/frontend/appStoreSDK/main.2798231628aa7fab87a9.js"></script>
vendor: 1 bytes, line 143
143
144<script>window.CYBERBIZ_AppScriptSettings = {"shop_add_ons":"W3sidmVuZG9yX3R5cGUiOiJDWUJFUkJJWiBHb29nbGUgQW5hbHl0aWNzIDQi\nLCJhcHBfaWQiOiJRVWo1WnFvZUlPUjlaM2JaS2trMG44N3l5a0FpOWU0NURE\naDJ0YlFnaUJBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6IkctRjM3SjBNWTI4\nTiwgRy00QjdSSzdGSFdIIn19LHsidmVuZG9yX3R5cGUiOiJHb29nbGUgQW5h\nbHl0aWNzIDQiLCJhcHBfaWQiOiJSYkpWMTVFcVZWOHJ1Umo3NVlmV3Z1RUlD\nRm90Q0FPZm0xSDZtZ3hyNkZBIiwic2V0dGluZ3MiOnsiZ3RhZ19pZCI6Ikct\nRjZUODk0VktaMCJ9fSx7InZlbmRvcl90eXBlIjoiRGlnaXRhbCBJbnRlbGxp\nZ2VuY2UgVHJhY2tlciIsImFwcF9pZCI6IjFiNTBhODZkYzJkMTQxODM4OGZk\nZWRmN2EwZDQzOWFlIiwic2V0dGluZ3MiOnt9fV0=\n"}
145</script>
vendor: 1 bytes, line 145
145
146<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/9d6f4550aad572e9f70abb70ae5a6552482cf617ea5e4d5a32ed4ebbb5d60d54.js"></script>
vendor: 1 bytes, line 146
146
147<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/a810ec58aab67d16f8de1c4adf06fc7cc9f4477ec503b9cb1a998741bc692652.js"></script>
vendor: 1 bytes, line 147
147
148<script src="https://cdn.cybassets.com/appmarket/api/common/attachments/entrypoint/35cd1f36a4a855bacbaa53900f8e17b376d4cab44c73812eef261aef6435163d.js"></script>
vendor: 1 bytes, line 148
148
149<script>window.CYBERBIZ.initializeSDK.initialize();</script>
vendor: 1 bytes, line 149
149
150<script src="//cdn1-next.cybassets.com/frontend/shop/setAffliateCookie-3a2e378145f8a165.js"></script>
vendor: 1 bytes, line 150
150
151<script src="//cdn1-next.cybassets.com/assets/url-share-attribution-087b8170482449a1d92fbb0c92f9ce3ef38a84f35c52016ed831bd3efd8eed8b.js"></script>
151
152
153
154
155
156<meta name="title" content="成功 S5190扶手型臀腿踏步機 | 成功SUCCESS">
157<meta property="og:title" content="成功 S5190扶手型臀腿踏步機 | 成功SUCCESS">
158<meta name="description" content="型號:S5190尺寸:長45.7 x 寬43.3 x 高108.5(含計步器)重量:約8.5kg入數:1台[材質] 鐵、聚丙烯、丁腈橡膠、泡棉、油[高度] 扶手可調3段,高度分別94,99,104cm貼心提醒: 勿連續踩踏超過20分鐘,讓油管液壓降溫20~30分鐘之後再使用,以免造成過度使用損壞,延長油管壽命喔。">
159<meta property="og:description" content="型號:S5190尺寸:長45.7 x 寬43.3 x 高108.5(含計步器)重量:約8.5kg入數:1台[材質] 鐵、聚丙烯、丁腈橡膠、泡棉、油[高度] 扶手可調3段,高度分別94,99,104cm貼心提醒: 勿連續踩踏超過20分鐘,讓油管液壓降溫20~30分鐘之後再使用,以免造成過度使用損壞,延長油管壽命喔。">
160<meta name="keywords" content="成功 S5190扶手型臀腿踏步機">
161<meta property="og:url" content="https://www.success.com.tw/products/s5190-20230317094020">
162<meta property="og:type" content="og:product">
163<script type="application/ld+json">{"@context":"https://schema.org/","@type":"Product","name":"成功 S5190扶手型臀腿踏步機","image":"https://cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiNDgweDQ4MCJdXQ.jpeg?sha=e62005be53c4562d","description":"型號:S5190\n尺寸:長45.7 x 寬43.3 x 高108.5(含計步器)\n重量:約8.5kg\n入數:1台\n[材質] 鐵、聚丙烯、丁腈橡膠、泡棉、油\n[高度] 扶手可調3段,高度分別94,99,104cm\n貼心提醒: 勿連續踩踏超過20分鐘,讓油管液壓降溫20~30分鐘之後再使用,以免造成過度使用損壞,延長油管壽命喔。","brand":"成功SUCCESS","sku":"S5190","offers":[{"@type":"Offer","url":"https://www.success.com.tw/products/s5190-20230317094020","priceCurrency":"TWD","price":"2880.0","availability":"InStock","itemCondition":"https://schema.org/NewCondition","sku":"45826133"}],"productId":39906070}</script>
163
164
165      
165<script>
166        document.addEventListener("DOMContentLoaded", function() {
167          gtag('event', 'view_item', {"items":[{"id":45826133,"name":"成功 S5190扶手型臀腿踏步機","price":2880.0}],"send_to":["cyberbiz","dynamic_remarketing"]});
168        })
169      </script>
169
170    
171      
171<script>
172        document.addEventListener("DOMContentLoaded", function() {
173          gtag('event', 'view_item', {"items":[{"id":"S5190","name":"成功 S5190扶手型臀腿踏步機","price":2880.0}],"send_to":["ecommerce","enhanced_ecommerce"]});
174        })
175      </script>
175
176    
177
178      
178<script>
179        document.addEventListener("DOMContentLoaded", function() {
180          try {
181            var productData = [{"id":"S5190","product_id":39906070,"variant_id":45826133,"sku":"S5190","name":"成功 S5190扶手型臀腿踏步機","price":2880.0,"compare_at_price":3600.0,"currency":"TWD","inventory_quantity_status":"safety","category":null,"categories":["有氧 / 核心健身"],"properties":[],"list_name":""}];
182
183            if (document.referrer.indexOf('collection') !== -1 || document.referrer.indexOf('products') !== -1) {
184              for (var i = 0; i < productData.length; i++) {
185                productData[i].list_name = sessionStorage.getItem("viewedCollection");
186              }
187            }
188
189            window.CYBERBIZ.eventSDK.callEvent("viewItem", productData)
190
191            window.addEventListener("beforeunload", function(event) {
192              var collection = "相關商品";
193              sessionStorage.setItem("viewedCollection", collection);
194            });
195
196          } catch (error) {
197            console.error('Exception catched in appMarketViewItemEvent')
198          }
199        })
200      </script>
200
201    
202
203<script src="//cdn1-next.cybassets.com/frontend/shop/gallery-3a2e378145f8a165.js"></script>
203
204
205    <style id="color_settings">
206  :root {
207    
208      --button: #00a1a3;
209    
210
211    
212      --button_text: #ffffff;
213    
214
215    
216      --accent: #40c1ac;
217    
218
219    
220      --heading: #000000;
221    
222
223    
224      --text: #9A9EA2;
225    
226
227    
228      --price: #00a1a3;
229    
230
231    
232      --discount_price: #00a1a3;
233    
234
235    
236      --theme_bg: #ffffff;
237    
238
239    
240      --nav_logo_bg: #d5f3eb;
241    
242
243    
244      --nav_menu_bg: #d5f3eb;
245    
246
247    
248      --nav_menu_text: #636465;
249    
250
251    
252      --nav_menu_icon: #3e4442;
253    
254
255    
256      --footer_bg: #d5f3eb;
257    
258
259    
260      --footer_text: #636465;
261    
262
263    
264      --checkout_button: #535353;
265    
266
267    
268      --checkout_accent: #00a1a3;
269    
270
271    
272      --product_border: #00a1a3;
273    
274
275    
276      --tips_text: #0C5460;
277    
278
279    
280
281    
282  }
283</style>
284
285
286
287
288  
289        <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 74 bytes, lines 289-290
289
290          <script async src="https://www.googletagmanager.com/gtag/js?id=
290G-F37J0MY28N
vendor: 22 bytes, lines 290-291
290"></script>
291          
291<script>
292            
vendor: 183 bytes, lines 292-297
292window.dataLayer = window.dataLayer || [];
293            function gtag(){dataLayer.push(arguments);}
294            gtag('js', new Date());
295            
296            
297      gtag('config', '
297G-F6T894VKZ0
vendor: 27 bytes, line 297
297', {"groups":"ecommerce"});
297gtag('config', 'AW-10883446473', {"groups":"dynamic_remarketing"});</script>
297
298      
298<script>
299        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
300        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
301        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
302        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
303
304        ga('create', '', 'auto', {'name': 'cyberbiz'});
305        ga('cyberbiz.require', 'displayfeatures');
306        ga('cyberbiz.set', 'dimension1', '22086');
307        ga('cyberbiz.require', 'ec');
308        ga('cyberbiz.send', 'pageview');
309      </script>
309
310    
311      
311<script>
vendor: 426 bytes, lines 311-318
311
312      !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
313      n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
314      n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
315      t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
316      document,'script','//connect.facebook.net/en_US/fbevents.js');
317
318      fbq('init', '
318807846951422007
vendor: 38 bytes, lines 318-319
318', {}, {'agent':'plcyberbiz'});
319      
319fbq('track', "PageView", '', { eventID: "PageView_68EB76A2BABD6A93E407EEB22F3A710D" });
320      var facebook_pixel_id = '807846951422007'</script>
320
321
322    </head>
323
324  <body style="display: flex; flex-direction: column;">
vendor: 74 bytes, lines 324-326
324
325      <noscript><iframe
326      src="//www.googletagmanager.com/ns.html?id=
326GTM-TXD9LVJ
vendor: 117 bytes, lines 326-332
326"
327      height="0"
328      width="0"
329      style="display:none;visibility:hidden">
330      </iframe></noscript>
331    
332    
332<!-- Navigation -->
333    <!-- cyb_snippet liquid_helper start -->
334<script>
335	function getDiscountPriceName() {
336		return "false" === "true" ? "" : "";
337	}
338
339	function getDiscountPriceSuggestionName() {
340		return "false" === "true" ? "" : "";
341	}
342
343  document.addEventListener('DOMContentLoaded', function() {
344    const languageHandle = Cookies.get("language");
345    const defaultLanguage = {"handle":"zh-TW","currency_code":"TWD","title":"繁體中文"};
346    const languages = [];
347    const currency = window.shopScriptHelper.defaultCurrency;
348    const currencies = window.shopScriptHelper.currenciesInfo;
349		window.liquidHelper = {
350			shopInternational: false,
351			defaultLanguage: defaultLanguage,
352			language: languages.find(function(l) {
353				return l.handle === languageHandle;
354			}) || defaultLanguage,
355      shopMultipleCurrenciesCheckout: false,
356			shopMultipleCurrencies: false,
357			defaultCurrencyFormat: "NT${{amount_no_decimals}}",
358			defaultCurrency: currency,
359			getCurrency: function() {
360        const currencyValue = Cookies.get("currencyValue") || currency;
361        return currencies.find(function(c) { return c.code === currencyValue; }
362      )},
363      getDefaultCurrency: function() { return currencies.find(function(c) {
364				return c.code === currency;
365			})},
366      getAvailableCurrencies: function() { return currencies.map(c => c.code) },
367      getCurrencyFormatInfo: function(currency) {
368        const currencyInfo = currencies.find(c => c.code === currency)
369        return _.pick(currencyInfo, [
370          'decimal_precision',
371          'symbol',
372          'money_format',
373          'unit',
374          'trailing_zeros',
375          'html_unit',
376          'code',
377        ]);
378      },
379			cartQuantityLimit: (function() {
380        const limit = Number("0" || undefined);
381        return limit <= 0 || isNaN(limit) ? Number.POSITIVE_INFINITY : limit;
382      })(),
383			isFirstVariantSelected:  false ,
384			isImageColorsUsed:  false ,
385			isEmptyClickable:  true ,
386			hasAddBuyProduct: '' !== "" ? true : false,
387			hasPriceWithDiscountPlugin: 'true' ? true : false,
388      conversionBonus: 1,
389      hasLocalizedShopPriceFormat: true,
390      hasCustomerCartPlugin: true,
391      isCartEnabled: true,
392      cdnHost: '//cdn1-next.cybassets.com',
393      hasShopCustomPasswordRulePlugin: false,
394      hasDisableProductQuantityValidation: false,
395      hasBreadcrumbReferrerEnabled: false,
396		};
397	});
398</script>
398
399
400<!-- cyb_snippet liquid_helper end -->
401
402<script src='//cdn1-next.cybassets.com/frontend/shop/navbarSection-3a2e378145f8a165.js' type='text/javascript'></script>
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419<style>
420  
421    #navbar {
422      --navbar-pc-title-scale: 1.0;
423      --navbar-pc-body-scale: 1.0;
424      --navbar-mobile-title-scale: 1.0;
425      --navbar-mobile-body-scale: 1.0;
426    }
427  
428
429  
430
431  
432</style>
433
434
435  <span id="navbar" class="drawer drawer--left font-size-setting-enabled">
436    <header id="header" class="qk-w--100vw qk-pos--fixed qk-t--0 qk-l--0">
437      
438
439      
440        <div id="announcement-bar"></div>
441      
442
443      
444      
445        
446
447        <div class="computer_nav row_nav qk-hidden--mobile ">
448          <div class="header_logo qk-bg--nav_logo_bg">
449            <div class="qk-pos--rel">
450              <div class="qk-text--center qk-display--flex">
451                <!-- logo start -->
452                
453                
454                  <nav class="logo qk-display--il_bk">
455                    <a href="/" class="qk-w--100">
456                      <img
457                        src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac"
458                        class="qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--pc_logo qk-hidden--mobile"
459                        style="width: auto; height: 52px;"
460                        alt=""
461                        height="52"
462                        width="auto"
463                      >
464                    </a>
465                  </nav>
466                
467                <!-- logo end -->
468                
469                  <div class="header_nav qk-flex--1">
470                    <div class="qk-pos--relative center qk-pd_r--1 qk-w--100">
471                      <!-- main-nav start -->
472                      <nav class="main_nav qk-display--init"></nav>
473                      <!-- main-nav end -->
474                    </div>
475                  </div>
476                
477                <!-- tool-nav start -->
478                
479                  <div style="display: flex; align-items: center; position: relative; top: -12px;">
480                    <!-- cyb_snippet tool_nav start -->
481
482
483
484
485
486
487<nav class="tool-nav qk-pos--rel qk-float--r qk-display--flex">
488  <ul class="link_shelf_top qk-display--flex qk-flex--row qk-justify--end qk-align--center qk-pos--abs qk-r--0">
489    
490    
491    <!-- member -->
492    
493      <li class="customer_account qk-pos--rel qk-pd--05">
494        <div class="dropdown qk-pos--static">
495          <div class="qk-cursor--pointer" data-toggle="dropdown">
496            <div data-icon-type="custom_icon_type_account"></div>
497            <span class="text"></span>
498          </div>
499          <div class="member qk-dropdown_menu dropdown-menu qk-pos--abs qk-r--0 qk-bd--default qk-bd--product_border qk-bg--theme_bg" role="menu">
500            <ul id="customer-logined-menu" style="display: none">
501              <li>
502                <div class="qk-fs--body qk-text--heading">
503                  <p class="customer-name qk-whitespace-break-spaces"></p>
504                  <p>您好!</p>
505                </div>
506              </li>
507            </ul>
508            <ul id="customer-not-login-menu">
509              <li class="button qk-text--center">
510                <a href="/account/login" class="btn-login qk-btn qk-btn--lg qk-btn--primary qk-w--100">會員登入</a>
511              </li>
512              <li class="button qk-text--center">
513                <a href="/account/signup" class="btn-orders qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent">註冊新會員</a>
514              </li>
515            </ul>
516            <span class="menu-bd qk-bd_t--default qk-bd--product_border"></span>
517            <ul class="member-menu qk-bd_t--default qk-bd--product_border">
518              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
519                <a href="/account/index" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">我的帳戶</a>
520              </li>
521              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
522                <a href="/account/orders" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">
522訂單查詢</a>
523              </li>
524              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
525                <a href="/account/coupons" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">專屬優惠券</a>
526              </li>
527              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg">
528                <a href="/account/tracking_items" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">收藏清單</a>
529              </li>
530              <li class="qk-bg--mask_hover qk-tst qk-tst_dur--15 qk-tst_timing--ease_io qk-tst_prop--bg customer-logout-li" style="display: none">
531                <a href="/account/logout" class="qk-fs--body qk-text--heading qk-w--100 qk-display--il_bk">會員登出</a>
532              </li>
533            </ul>
534          </div>
535        </div>
536      </li>
537    
538    <!-- for money symbol -->
539    <div id="money-symbol" data-money-symbol="NT${{amount_no_decimals}}" hidden></div>
540    <!-- cart -->
541    
542      <li class="cart qk-pos--rel qk-pd--05">
543        <!--電腦版的購物車選單-->
544        <div class="dropdown qk-pos--static">
545          <div data-toggle="dropdown" class="shopcart qk-cursor--pointer" >
546            <div data-icon-type="custom_icon_type_cart"></div>
547            <span class="global-cart-count qk-circle qk-circle--sm qk-bg--accent qk-text--white qk-vert--mid qk-pos--abs qk-bd" style="display: none;">0</span>
548            <span class="global-cart-loading"></span>
549          </div>
550          <div class="qk-dropdown_menu dropdown-menu qk-pos--abs qk-r--0 qk-bd--default qk-bd--product_border qk-bg--theme_bg" role="menu">
551            <div class="cart_list global-cart-item-list custom-scrollbar qk-of_x--hidden qk-of_y--scroll qk-of_y--overlay qk-display--flex qk-flex--column qk-justify--between three_to_four_scale"></div>
552            <p class="cart_empty qk-fs--body qk-text--heading qk-text--center">目前的購物車是空的!</p>
553            <ul>
554              <li class="button qk-text--center">
555                <a class="btn-checkout qk-btn qk-btn--lg qk-btn--primary qk-w--100" href="/cart" style="display: none">立即購買</a>
556                <a class="btn-tracking qk-btn qk-btn--lg qk-btn--secondary qk-w--100 qk-bg--transparent" href="/account/tracking_items">前往收藏清單</a>
557              </li>
558            </ul>
559          </div>
560        </div>
561      </li>
562    
563    <!-- search -->
564    
565      <li class="search qk-pos--rel qk-pd--05" id="search-icon">
566        <div class="dropdown qk-pos--static">
567          <div class="qk-cursor--pointer" data-toggle="dropdown">
568            <div data-icon-type="custom_icon_type_search"></div>
569          </div>
570          <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">
571            <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-vert--mid">
572              <form action="/search" class="form-inline qk-search_form qk-display--flex qk-justfify--between qk-align--center qk-flex--1">
573                <input class="search-input form-control qk-inputbox qk-inputbox--lg qk-flex--1 qk-w--100 qk-bg--transparent qk-text--heading" type="search" placeholder="搜尋" aria-label="Search" name="q" value="" />
574                <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">搜尋</button>
575              </form>
576            </div>
577          </div>
578        </div>
579      </li>
580    
581    <!-- express delivery -->
582    
583  </ul>
584</nav>
585
586<!-- cyb_snippet tool_nav end -->
587                  </div>
588                
589                
590                <!-- tool-nav end -->
591              </div>
592            </div>
593          </div>
594        </div>
595      
596      <div class="qk-hidden--pc  ">
597        <!-- mobile-nav start -->
598        <nav class="mobile-nav qk-bg--nav_logo_bg">
599          <ul class="qk-display--flex qk-flex--row qk-justify--between qk-align--center qk-pd_x--05 qk-pd_y--0">
600            <!-- menu -->
601            
602              <li class="sidebar-menu-icon drawer-toggle qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center">
603                <div data-icon-type="custom_icon_type_menu"></div>
604              </li>
605            
606            <!-- logo -->
607            
608              <li class="logo qk-mg_r--auto qk-pd_x--05 qk-pd_y--0">
609                
610                  <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--phone">
611                    <img
612                      src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac"
613                      height="25"
614                      width="auto"
615                      alt=""
616                    >
617                  </a>
618                
619                
620                  <a href="/" class="qk-display--il_flex qk-align--center qk-h--100 qk-hidden--tablet">
621                    <img
622                      src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac"
623                      height="25"
624                      width="auto"
625                      alt=""
626                    >
627                  </a>
628                
629              </li>
630            
631            
632              <!-- search -->
633              
634                <li class="search qk-text--center qk-pd_x--05 qk-pd_y--0 qk-display--flex qk-align--center ">
635                  <div class="dropdown qk-pos--static qk-text--center">
636                    <div class="qk-cursor--pointer" data-toggle="dropdown">
637                      <div data-icon-type="custom_icon_type_search"></div>
638                    </div>
639                    <div
640                      class="qk-dropdown_menu dropdown-menu qk-w--100vw qk-bg--theme_bg qk-bd--default qk-bd--product_border qk-mg--0"
641                      role="menu"
642                    >
643                      <div class="search-area qk-display--flex qk-flex--row qk-justify--start qk-align--center qk-sp_bt--5 qk-w--100">
644                        <form action="/search" class="form-inline qk-display--flex qk-justfify--center qk-flex--1">
645                          <div class="form-inline qk-search_form qk-display--flex qk-justfify--center qk-align--center qk-flex--1">
646                            <input
647                              class="form-control qk-flex--1 qk-inputbox qk-inputbox--lg qk-bg--trans
647parent qk-text--heading"
648                              type="search"
649                              placeholder="搜尋"
650                              aria-label="Search"
651                              name="q"
652                              value=""
653                            >
654                            <button class="search-btn qk-btn qk-btn--lg qk-btn--primary qk-pd--0" type="submit">
655                              搜尋
656                            </button>
657                          </div>
658                        </form>
659                      </div>
660                    </div>
661                  </div>
662                </li>
663              
664              <!-- express delivery -->
665              
666            
667          </ul>
668        </nav>
669        <!-- mobile-nav end -->
670      </div>
671      
672    </header>
673    
674      <!-- Sidebar -->
675      <nav class="drawer-nav drawer-nav_width qk-bg--nav_menu_bg " role="navigation">
676        <div class="drawer-menu">
677          <!-- cyb_snippet side_menu start -->
678
679
680<ul id="index_sidebar_shelf_top" class="sidebar qk-pd_b--1">
681  
682    <li class="logo qk-pos--rel qk-bg--nav_logo_bg qk-pd_x--1 qk-pd_y--05">
683      <a href="/" class="qk-pd--0">
684        <img src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac" height="32" width="auto" alt="logo">
685      </a>
686      <button class="drawer-toggle qk-pos--abs qk-bg--transparent qk-pd--0"></button>
687    </li>
688  
689  
690    
691
692    
693      <!-- cyb_snippet components/side_menu/menu start -->
694
695  <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>
696
697
698  
699  
700  
701    <li class="qk-pos--rel qk-pd--0">
702      
703        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/">首頁</a>
704      
705    </li>
706  
707
708  
709  
710  
711    <li class="qk-pos--rel qk-pd--0">
712      
713        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/pages/about-us">關於我們</a>
714      
715    </li>
716  
717
718  
719  
720  
721    <li class="qk-pos--rel qk-pd--0">
722      <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_3" aria-expanded=" false ">
723        
724          <a class="qk-text--nav_menu_text" href="/collections/frontpage"> 商品列表 </a>
725        
726      </button>
727      <ul id="index_sidebar_shelf_second_3" class="collapse_index_sidebar_3 collapse shelf_second  qk-pd--0">
728        
729          
730          
731          
732            <li class="qk-pos--rel qk-pd--0">
733              
734                <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/排球少年正版周邊">
735                  排球少年正版周邊
736                </a>
737              
738            </li>
739          
740        
741          
742          
743          
744            <li class="qk-pos--rel qk-pd--0">
745              
746                <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/新品上市">
747                  NEW 新品上市
748                </a>
749              
750            </li>
751          
752        
753          
754          
755          
756            <li class="qk-pos--rel qk-pd--0">
757              
758                <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/出清特價39元起">
759                  出清特價39元起
760                </a>
761              
762            </li>
763          
764        
765          
766          
767          
768            <li class="qk-pos--rel qk-pd--0">
769              <button class="qk-fw--500 linklist bt-toggle  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-fs--body qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_3_4" aria-expanded=" false ">
770                
771                  <span class="qk-cursor--pointer qk-text--nav_menu_text"> 亞伯特品牌系列 </span>
772                
773              </button>
774              <ul class="collapse_index_sidebar_3_4 collapse shelf_third qk-pd--0 qk-bd--nav_menu_text">
775                
776                  
777                  <li class="qk-pos--rel qk-pd--0">
778                    
779                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/亞伯特-登山杖">
780                        登山杖
781                      </a>
782                    
783                  </li>
784                
785                  
786                  <li class="qk-pos--rel qk-pd--0">
787                    
788                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/亞伯特-野餐沙灘快開帳篷">
789                        野餐/沙灘快開帳篷
790                      </a>
791                    
792                  </li>
793                
794              </ul>
795            </li>
796          
797        
798          
799          
800          
801            <li class="qk-pos--rel qk-pd--0">
802              
803                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/直排輪">
804                  直排輪
805                </a>
806              
807            </li>
808          
809        
810          
811          
812          
813            <li class="qk-pos--rel qk-pd--0">
814              
815                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/滑板-蛇板-滑板車">
816                  滑板 / 蛇板 / 滑板車
817                </a>
818              
819            </li>
820          
821        
822          
823          
824          
825            <li class="qk-pos--rel qk-pd--0">
826              
827                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/滑輪護具配件">
828                  滑輪護具配件
829                </a>
830              
831            </li>
832          
833        
834          
835          
836          
837            <li class="qk-pos--rel qk-pd--0">
838              
839                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/籃球">
840                  籃球
841                </a>
842              
843            </li>
844          
845        
846          
847          
848          
849            <li class="qk-pos--rel qk-pd--0">
850              
851                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/足球">
852                  足球
853                </a>
854              
855            </li>
856          
857        
858          
859          
860          
861            <li class="qk-pos--rel qk-pd--0">
862              
863                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/排球">
864                  排球
865                </a>
866              
867            </li>
868          
869        
870          
871          
872          
873            <li class="qk-pos--rel qk-pd--0">
874              
875                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/躲避球">
876                  躲避球
877                </a>
878              
879            </li>
880          
881        
882          
883          
884          
885            <li class="qk-pos--rel qk-pd--0">
886              
887                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/打氣筒-球袋-背袋">
888                  打氣筒 / 球袋 / 背袋
889                </a>
890              
891            </li>
892          
893        
894          
895          
896          
897            <li class="qk-pos--rel qk-pd--0">
898              
899                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/其他球類-玩具球-飛盤">
900                  其他球類 / 玩具球 / 飛盤
901                </a>
902              
903            </li>
904          
905        
906          
907          
908          
909            <li class="qk-pos--rel qk-pd--0">
910              
911                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/護具-袖套-腿套">
912                  護具 / 袖套 / 腿套
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/跳繩">
924                  跳繩
925                </a>
926              
927            </li>
928          
929        
930          
931          
932          
933            <li class="qk-pos--rel qk-pd--0">
934              
935                <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/拉力帶-彈力帶-拉筋帶">
936                  拉力帶 / 彈力帶 / 拉筋帶
937                </a>
938              
939            </li>
940          
941        
942          
943          
944          
945            <li class="qk-pos--rel qk-pd--0">
946              
947                <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/握力器">
948                  握力器
949                </a>
950              
951            </li>
952          
953        
954          
955          
956          
957            <li class="qk-pos--rel qk-pd--0">
958              
959                <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/健腹輪-扭腰盤-健身器材">
960                  健腹輪 / 扭腰盤 / 健身器材
961                </a>
962              
963            </li>
964          
965        
966          
967          
968          
969            <li class="qk-pos--rel qk-pd--0">
970              
971                <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/有氧-核心健身">
972                  有氧 / 核心健身
973                </a>
974              
975            </li>
976          
977        
978          
979          
980          
981            <li class="qk-pos--rel qk-pd--0">
982              
983                <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/啞鈴-沙包-拳擊-配件">
984                  啞鈴 / 沙包 / 拳擊 / 配件
985                </a>
986              
987            </li>
988          
989        
990          
991          
992          
993            <li class="qk-pos--rel qk-pd--0">
994              
995                <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/韻律球">
996                  韻律球
997                </a>
998              
999            </li>
1000          
1001        
1002          
1003          
1004          
1005            <li class="qk-pos--rel qk-pd--0">
1006              
1007                <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/瑜珈墊-瑜珈磚-瑜珈圈">
1008                  瑜珈墊 / 瑜珈磚 / 瑜珈圈
1009                </a>
1010              
1011            </li>
1012          
1013        
1014          
1015          
1016          
1017            <li class="qk-pos--rel qk-pd--0">
1018              
1019                <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/滾筒-按摩類-拉筋板">
1020                  滾筒 / 按摩類 / 拉筋板
1021                </a>
1022              
1023            </li>
1024          
1025        
1026          
1027          
1028          
1029            <li class="qk-pos--rel qk-pd--0">
1030              
1031                <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/游泳系列">
1032                  游泳系列
1033                </a>
1034              
1035            </li>
1036          
1037        
1038          
1039          
1040          
1041            <li class="qk-pos--rel qk-pd--0">
1042              
1043                <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/羽球拍系列">
1044                  羽球拍系列
1045                </a>
1046              
1047            </li>
1048          
1049        
1050          
1051          
1052          
1053            <li class="qk-pos--rel qk-pd--0">
1054              
1055                <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/匹克拍-匹克球">
1056                  匹克拍 / 匹克球系列
1057                </a>
1058              
1059            </li>
1060          
1061        
1062          
1063          
1064          
1065            <li class="qk-pos--rel qk-pd--0">
1066              
1067                <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/collections/桌球系列">
1068                  桌球系列
1069                </a>
1070              
1071            </li>
1072          
1073        
1074          
1075          
1076          
1077            <li class="qk-pos--rel qk-pd--0">
1078              
1079                <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/書寫系列">
1080                  書寫系列
1081                </a>
1082              
1083            </li>
1084          
1085        
1086          
1087          
1088          
1089            <li class="qk-pos--rel qk-pd--0">
1090              
1091                <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/板類-板擦-告示架">
1092                  板類 / 板擦 / 告示架
1093                </a>
1094              
1095            </li>
1096          
1097        
1098          
1099          
1100          
1101            <li class="qk-pos--rel qk-pd--0">
1102              
1103                <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/磁鐵用品">
1104                  磁鐵系列
1105                </a>
1106              
1107            </li>
1108          
1109        
1110          
1111          
1112          
1113            <li class="qk-pos--rel qk-pd--0">
1114              <button class="qk-fw--500 linklist bt-toggle  collapsed  qk-display--il_bk qk-w--100 qk-text--left qk-text--nav_menu_text qk-fs--body qk-bg--nav_menu_bg qk-pos--rel" data-toggle="collapse" data-target=".collapse_index_sidebar_3_31" aria-expanded=" false ">
1115                
1116                  <span class="qk-cursor--pointer qk-text--nav_menu_text"> 生活百貨 </span>
1117                
1118              </button>
1119              <ul class="collapse_index_sidebar_3_31 collapse shelf_third qk-pd--0 qk-bd--nav_menu_text">
1120                
1121                  
1122                  <li class="qk-pos--rel qk-pd--0">
1123                    
1124                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/生活百貨-掛鉤">
1125                        掛鉤 / 鐵鉤
1126                      </a>
1127                    
1128                  </li>
1129                
1130                  
1131                  <li class="qk-pos--rel qk-pd--0">
1132                    
1133                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/生活百貨-萬用黏土膠類">
1134                        萬用黏土 / 膠類
1135                      </a>
1136                    
1137                  </li>
1138                
1139                  
1140                  <li class="qk-pos--rel qk-pd--0">
1141                    
1142                      <a class="qk-fw--500 qk-display--il_bk qk-w--100 qk-text--left qk-bg--nav_menu_bg qk-fs--body qk-text--nav_menu_text" href="/collections/生活百貨-膠帶">
1143                        膠帶系列
1144                      </a>
1145                    
1146                  </li>
1147                
1148              </ul>
1149            </li>
1150          
1151        
1152          
1153          
1154          
1155            <li class="qk-pos--rel qk-pd--0">
1156              
1157                <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/幼教樂器">
1158                  幼教樂器
1159                </a>
1160              
1161            </li>
1162          
1163        
1164          
1165          
1166          
1167            <li class="qk-pos--rel qk-pd--0">
1168              
1169                <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/辦公用品">
1170                  辦公用品
1171                </a>
1172              
1173            </li>
1174          
1175        
1176          
1177          
1178          
1179            <li class="qk-pos--rel qk-pd--0">
1180              
1181                <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/授權商品">
1182                  授權商品
1183                </a>
1184              
1185            </li>
1186          
1187        
1188      </ul>
1189    </li>
1190  
1191
1192  
1193  
1194  
1195    <li class="qk-pos--rel qk-pd--0">
1196      
1197        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/blogs/news">影片特輯</a>
1198      
1199    </li>
1200  
1201
1202  
1203  
1204  
1205    <li class="qk-pos--rel qk-pd--0">
1206      
1207        <a class="qk-fw--bold qk-display--il_bk qk-w--100 qk-text--left qk-fs--body qk-bg--nav_menu_bg qk-text--nav_menu_text" href="/contact">客服中心</a>
1208      
1209    </li>
1210  
1211
1212
1213<script>
1214  $('button a').on('click', function(e) {e.stopPropagation()});
1215</script>
1215
1216
1217<!-- cyb_snippet components/side_menu/menu end -->
1218    
1219  
1220  
1221    
1222      <li class="category_account-title qk-bd--nav_menu_text qk-fs--breadcrumb qk-text--nav_menu_text qk-bd_y--default qk-fw--500">帳戶</li>
1223      <li class="qk-pos--rel qk-pd--0">
1224        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
1225          <a href="/account/index" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">我的帳戶</a>
1226        </div>
1227      </li>
1228      <li class="qk-pos--rel qk-pd--0">
1229        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
1230          <a href="/account/orders" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">訂單查詢</a>
1231        </div>
1232      </li>
1233      <li class="qk-pos--rel qk-pd--0">
1234        <div class="customer-logined-menu qk-display--il_bk qk-w--100 qk-text--left" style="display: none">
1235          <a href="/account/logout" class="qk-text--nav_menu_text qk-fw--bold qk-fs--body">會員登出</a>
1236        </div>
1237      </li>
1238      <li class="qk-pos--rel qk-pd--0">
1239        <a href="/account/login">
1240          <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 ">
1241            <span class="qk-text--nav_menu_bg qk-fw--500 qk-fs--body">
1242              會員登入
1243            </span>
1244          </div>
1245        </a>
1246      </li>
1247      <li class="qk-pos--rel qk-pd--0">
1248        <a href="/account/signup">
1249          <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">
1250            <span class="qk-text--nav_menu_text qk-fs--body qk-fw--500">
1251              註冊新會員
1252            </span>
1253          </div>
1254        </a>
1255      </li>
1256    
1257    
1258    
1259    
1260  
1261</ul>
1262
1263<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/sidebar-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
1264
1265<script>
1266  $(document).ready(function(){
1267    // 側邊選單
1268    if ($('.drawer').length){
1269      $('.drawer').drawer();
1270      $('.bt-toggle').click(function(){
1271        setTimeout(function(){
1272          $('.drawer')[0].iScroll.refresh()
1273        },500)
1274      })
1275    }
1276  });
1277</script>
1277
1278
1279
1280<!-- cyb_snippet side_menu end -->
1281
1282        </div>
1283      </nav>
1284      <!-- Bottombar -->
1285      
1286    
1287  </span>
1288
1289<div id="index-popular-tags"></div>
1290
1291<style id="timer_color">
1292  :root {
1293    
1294      --timer_text: #ffffff;
1295    
1296
1297    
1298      --timer_bg: #bd1212;
1299    
1300  }
1301</style>
1302
1303<script>
1304  window.language = {"account_name":"戶名","add_cart_error_try_again":"加入購物車有誤,請重新嘗試","add_to_cart":"加入購物車","addcart_rate_limit_desc":"秒後可再試一次,建議您停留在此頁面。","address1":"詳細退貨地址:路/å··/弄/樓","all_filters":"所有篩選條件","apply_fail":"申請失敗","apply_return":"退貨申請","apply_return_success":"您的退貨申請已成立","apply_success":"申請成功","arrive_soon":"即將到貨","articles_total":"共 {{ totalArticleCounts }} 篇文章","bank_account":"銀行帳號","bank_branch_name":"分行名稱","bonus_redemption":"紅利換購","cancel":"取消","cart_price_total":"結帳金額約","check_order":"訂單查詢","choose_branch_bank":"請選擇分行","choose_return_reason":"請選擇退貨原因","city":"城市","common_price":"定價: ","comply_group_number":"符合 {{comply_group_number}} 組優惠,","confirm":"確認","confirm_return":"申請退貨","confirm_submit":"確定送出","congratulations_for_verify_mobile_success":"恭喜,您已成功驗證您的手機!","contact_form":"聯絡我們","continue_reading":"繼續閱讀","country_placeholder":"請選擇國家","coupon_free_shipping":"免運券折抵","coupon_items":"優惠券折扣項目","date_error":"日期錯誤","default_sort":"預設排序","deliver_error":"寄送商品錯誤","discount_detail":"折扣明細","email":"電子郵件","email_placeholder":"請輸入您的電子郵件,例:[email protected]","enter_account_name":"請輸入戶名","enter_bank_account":"請輸入銀行帳號","enter_return_reason":"請填寫退貨原因...","error_message":"驗證簡訊發生錯誤,請稍後再試。","fail_operation":"操作失敗!","filter_button":"篩選","filter_no_result":"很抱歉,無商品符合篩選條件","free":"免費","gift_price":"加購價","gift_purchase":"滿額/件贈","go_check_email":"請至信箱收取信件","group_percent_discount":"組合內商品打{{discount}}折","has_stock":"尚有庫存 ","include_discount_and_shipping_fee":"含優惠折扣與運費","invalid_email":"這不是有效的電子郵件","invalid_name":"姓名為必填","invalid_phone_number":"聯絡電話為必填","invalid_question_content":"問題內容為必填","keep_shopping":"繼續購物","keyin_address1":"請填寫詳細退貨地址:路/å··/弄/樓","keyin_city":"請輸入城市","keyin_zip":"請輸入郵遞區號","less_then_one":"數量不得少於1","line_item_quantity":"數量:{{ lineItemQuantity }}","literal_points":"點","login_btn":"會員登入","mail_send_fail":"信件寄送失敗","message_confirmation_token_error":"簡訊驗證碼有誤","messenger_error_please_try_again":"簡訊寄送發生錯誤,請稍後再試。","mobile_number_error":"手機號碼有誤","name":"姓名","name_placeholder":"請輸入您的姓名","new_password_is_sent":"已送出新密碼","new_product_defect":"新品瑕疵","nn_collection_save_more_money_title":"可享,買 {{quantity}} ä»¶ {{price}} 元優惠","no_stock":"庫存不足","notification_enabled":"已登記補貨通知","notify_me_when_stock_arrives":"已售完,貨到通知我","onsale":"特價","order_date":"訂購日期","order_number":"訂單編號","order_retrun_confirm":"您確認要申請退貨?","ori_price":"原價","others":"其他","over_cart_limit":"數量超過購買上限","over_product_quantity":"數量超過庫存","over_stock_count":"商品庫存剩餘 {{ count }} ä»¶","over_stock_quantity":"超過庫存數量","phone_number":"聯絡電話","phone_number_placeholder":"請輸入聯絡電話","piece":"{{quantity}} ä»¶","please_choose_bank":"請選擇銀行","please_choose_product":"請選擇商品款式","please_choose_variant":"請選擇商品款式","please_enter_number":"請輸入數字","please_reselect":"請重新輸入篩選","please_send_and_confirm_verify_code":"請先發送並確認簡訊驗證碼","pre_order":"預購商品","price_asc":"價格由低到高","price_desc":"價格由高到低","price_filter":"價格","price_includes_tax":"(內含消費稅:{{ tax }})","product_content_defect":"商品內容不全","product_defect":"商品有缺陷","product_limit_buy":"此商品限購 {{ count }} ä»¶","product_rate_limit_btn":"重新進入商品頁","product_rate_limit_desc":"秒後可重新進入商品頁,建議您停留在此頁面。","product_rate_limit_title":"目前搶購人潮眾多,請耐心等候","product_rate_limit_warn":"若離開此頁面,可能會延長等待時間。","product_sold":"已銷售:{{ productSold }}","products_total":"共 {{ totalProductCounts }} 件商品","quantity":"數量:","quantity_over_product_stock":"數量超過商品庫存","question_content":"問題å
1304…§å®¹","question_content_placeholder":"請輸入問題內容","question_submit_fail":"發生問題,請稍後再試","question_submit_success":"問題已成功送出,我們將盡快與您聯繫","question_type":"問題類型","reached_favorable":"已達優惠","recent_days_sold_desc":"本週熱賣","reenter_password_still_error":"重複輸入密碼有誤","refund":"退款金額","refund_account":"退款帳戶","refund_info":"退款資訊","refund_invoice_check":"本人同意發票作廢或「營業人銷貨退回進貨退出貨或折讓證明單」將全權由{{ envoiceCompanyName }}處理,以利加速退款作業。如有退貨/折讓,將直接開立折讓單上傳至財政部電子發票整合服務平台存證。","resend_verify_code":"重發驗證碼","reset_all_filters":"清除所有篩選","reset_filter_button":"清除篩選","return":"返回","return_address":"退貨地址","return_email_notification":"退貨申請信已寄至您的信箱","return_info":"退貨資訊","return_instruction":"退貨說明","return_msg_Australia":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_Japan":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_Japan_to_Taiwan":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_SEA":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_msg_Taiwan":"1. 收到商品後如有發現瑕疵或破損狀況,需要辦理或換貨,請於收到貨後7天內登入『我的帳戶』頁面點選『申請退貨』。\u003cbr\u003e 2. 收到商品後可享有7天免費鑑è³
1304žæœŸï¼ˆå«ä¾‹å‡æ—¥ï¼‰ã€‚退換貨時請保持原包裝商品的完整(包含購買商品,附件,贈品等)。\u003cbr\u003e 3. 收到申請後,我們將與您聯繫取回商品。若有任何退貨問題,您可以在『訂單明細』中,點選『我要詢問』,請勿自行寄回商品。\u003cbr\u003e 4. 當你申請退貨後,請列印本申請單隨商品一起寄回。\u003cbr\u003e 5. 收到您的退貨商品並審查通過後,將於7個工作天內退款至你的退款帳戶。\u003cbr\u003e","return_msg_USA":"1. 如收到商品後,發現有瑕疵或破損,需要申請換貨或退款,請盡速至【我的帳戶】,點擊【訂單查詢】,在選擇欲申請退貨的訂單中,點擊【申請退貨】。\u003cbr\u003e 2. 收到退貨申請後,我們會聯繫您,並啟動退貨流程。如果您有任何退貨問題,您可以在【訂單查詢】,在選擇欲申請退貨的訂單明細,留下問答紀錄。 請不要自行退貨。\u003cbr\u003e 3. 退換貨時,請保持原包裝完整(包括購買的商品、配件、贈品等)。\u003cbr\u003e 4. 符合退貨資格後,商店會再依照您的付款方式退款。\u003cbr\u003e 5. 詳細的退貨規定與流程說明,請參閱本店的退貨政策。\u003cbr\u003e","return_product":"退貨商品","return_reason":"退貨原因","save_more_money_discount":"可享 {{discount}} 折優惠","save_more_money_dollar":"可省 {{dollar}}","search_article_label":"文章搜尋結果 ({{ totalArticleCounts }})","search_no_result":"很抱歉,找不到 {{ queryString }} 請重新輸入搜尋。","search_product_label":"商品搜尋結果 ({{ totalProductCounts }})","search_total":"搜尋 {{ queryString }} 結果共 {{ totalSearchCount }} 筆","select_sort_by":"選擇排序方式","sell_from_asc":"上市日期舊到新","sell_from_desc":"上市日期新到舊","send_too_many_times_try_again_later":"發送次數過多,請稍後再試","sending_msg_few_minutes_get":"簡訊發送中,幾分鐘後您將收到驗證碼","shipping_fee":"運費","sold_out":"已售完","state_placeholder":"請選擇州/省","submit":"送出","subtotal":"小計","success_operation":"操作成功!","successfully_copy_tracking_number":"已成功複製你的物流單號","system_busy_try_again":"系統忙碌,請稍後再試","tax":"稅額","thanks_for_advise":"謝謝您的å¯
1304¶è²´æ„è¦‹","thanks_you_have_signed_up":"謝謝您已註冊","total_bonus_redemption":"總紅利換購點數","tw_city_placeholder":"請選擇縣市","tw_district_placeholder":"請選擇鄉鎮市區","unreach_favorable":"未達優惠","verification_error_please_correct":"驗證有誤請修正","verify_success":"驗證碼確認成功","view_product":"查看商品","vip_shipping_free":"VIP免運費","zip":"郵遞區號","suggested_range":"建議區間:","periodic_order_label":"定期定額"}
1305  $(document).ready(function(){
1306    if(window.location.pathname != '' && window.location.pathname != '/' ){
1307      document.getElementById('index-popular-tags').style.display = 'none'
1308    }
1309    // 倒數計時
1310    
1311      var leftDay = $('.left_day');
1312      var leftHour = $('.left_hour');
1313      var leftMin = $('.left_min');
1314      var leftSec = $('.left_sec');
1315      var nowTime = '' * 1;
1316      var startTime = '' ? '' * 1 : nowTime;
1317      var endTime = '' * 1;
1318
1319      function paddedFormat(num) {
1320        return num < 10 ? "0" + num : num;
1321      };
1322
1323      function startCountDown(duration) {
1324        var left_day, left_hour, left_min, left_sec = 0;
1325        var countInterval = setInterval(function () {
1326          leftDay.html(paddedFormat(parseInt(duration / 3600 / 24)));
1327          leftHour.html(paddedFormat(parseInt(duration / 3600) % 24));
1328          leftMin.html(paddedFormat(parseInt(duration / 60) % 60));
1329          leftSec.html(paddedFormat(parseInt(duration) % 60));
1330          duration = duration - 1;
1331          if (duration < 0) {
1332            clearInterval(countInterval);
1333          };
1334        }, 1000);
1335      };
1336
1337      if (startTime <= nowTime && endTime > nowTime) {
1338        startTime = nowTime;
1339        startCountDown(endTime - startTime);
1340      }
1341    
1342
1343    function adjustContentTop() {
1344      
1345      const isNavbarTransparent = false;
1346      let headerHeight = $("#header").outerHeight();
1347      if (isNavbarTransparent && $('#template').width() >= 992) {
1348        headerHeight -= $('.computer_nav').height();
1349      }
1350      const floatFilterHeight = $('#float-filter').innerHeight() || 0;
1351      $("body").css({
1352        "padding-top": (headerHeight - floatFilterHeight) + "px",
1353      });
1354    }
1355
1356    window.adjustContentTop = adjustContentTop;
1357
1358    // navbar設定透明
1359    
1360
1361    // Call it first once DOM is ready to prevent CLS
1362    adjustContentTop();
1363
1364    // 延遲初始化,等待 app banner 初始化完成
1365    $(window).on("resize", adjustContentTop);
1366
1367    // 使用 setTimeout 確保 banner 狀態已經確定
1368    $(window).on("load", function() {
1369      setTimeout(function() {
1370        adjustContentTop();
1371      }, 200); // 給 banner 足夠時間初始化
1372    });
1373
1374    $('img.header_banner').on('load', adjustContentTop);
1375
1376    window.renderNavbarSection('.main_nav', {
1377        navbarCollections: null,
1378        navbarItems: [{"id":641096,"title":"首頁","url":"/","item_type":"frontpage","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":641099,"title":"關於我們","url":"/pages/about-us","item_type":"page","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897297,"title":"商品列表","url":"/collections/frontpage","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":[{"id":1816669,"title":"排球少年正版周邊","url":"/collections/排球少年正版周邊","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":989142,"title":"NEW 新品上市","url":"/collections/新品上市","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1022589,"title":"出清特價39元起","url":"/collections/出清特價39元起","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":916508,"title":"亞伯特品牌系列","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":916532,"title":"登山杖","url":"/collections/亞伯特-登山杖","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":916534,"title":"野餐/沙灘快開帳篷","url":"/collections/亞伯特-野餐沙灘快開帳篷","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":897299,"title":"直排輪","url":"/collections/直排輪","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897312,"title":"滑板 / 蛇板 / 滑板車","url":"/collections/滑板-蛇板-滑板車","
1378item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":953248,"title":"滑輪護具配件","url":"/collections/滑輪護具配件","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897320,"title":"籃球","url":"/collections/籃球","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897321,"title":"足球","url":"/collections/足球","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897332,"title":"排球","url":"/collections/排球","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897333,"title":"躲避球","url":"/collections/躲避球","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897340,"title":"打氣筒 / 球袋 / 背袋","url":"/collections/打氣筒-球袋-背袋","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897347,"title":"其他球類 / 玩具球 / 飛盤","url":"/collections/其他球類-玩具球-飛盤","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897348,"title":"護具 / 袖套 / 腿套","url":"/collections/護具-袖套-腿套","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897371,"title":"跳繩","url":"/collections/跳繩","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897381,"title":"拉力帶 / 彈力帶 / 拉筋帶","url":"/collections/拉力帶-彈力帶-拉筋帶","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897382,"title":"握力器","url":"/collections/握力器","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897393,"title":"健腹輪 / 扭腰盤 / 健身器材","url":"/collections/健腹輪-扭腰盤-健身器材","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897406,"title":"有氧 / 核心健身","url":"/collections/有氧-核心健身","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897407,"title":"啞鈴 / 沙包 / 拳擊 / 配件","url":"/collections/啞鈴-沙包-拳擊-配件","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897408,"title":"韻律球","url":"/collections/韻律球","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897422,"title":"瑜珈墊 / 瑜珈磚 / 瑜珈圈","url":"/collections/瑜珈墊-瑜珈磚-瑜珈圈","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897423,"title":"滾筒 / 按摩類 / 拉筋板","url":"/collections/滾筒-按摩類-拉筋板","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897455,"title":"游泳系列","url":"/collections/游泳系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897456,"title":"羽球拍系列","url":"/collections/羽球拍系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1840070,"title":"匹克拍 / 匹克球系列","url":"/collections/匹克拍-匹克球","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897457,"title":"桌球系列","url":"/collections/桌球系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":897458,"title":"書寫系列","url":"/collections/書寫系列","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":934932,"title":"板類 / 板擦 / 告示架","url":"/collections/板類-板擦-告示架","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":955341,"title":"磁鐵系列","url":"/collections/磁鐵用品","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":985776,"title":"生活百貨","url":"","item_type":"linklist","subtitle":null,"icon_image_url":null,"menuItems":[{"id":985777,"title":"掛鉤 / 鐵鉤","url":"/collections/生活百貨-掛鉤","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":985778,"title":"萬用黏土 / 膠類","url":"/collections/生活百貨-萬用黏土膠類","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":1307309,"title":"膠帶系列","url":"/collections/生活百貨-膠帶","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":986429,"title":"幼教樂器","url":"/collections/幼教樂器","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":987184,"title":"辦公用品","url":"/collections/辦公用品","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":987500,"title":"授權商品","url":"/collections/授權商品","item_type":"custom_collection","subtitle":null,"icon_image_url":null,"menuItems":null}]},{"id":872368,"title":"影片特輯","url":"/blogs/news","item_type":"blog","subtitle":null,"icon_image_url":null,"menuItems":null},{"id":641100,"title":"客服中心","url":"/contact","item_type":"contact","subtitle":null,"icon_image_url":null,"menuItems":null}],
1379        settings: {
1380          menuDisplayStyle: "two_dimension_menu",
1381          pcLogoImgUrl: "//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac",
1382          mobileLogoImgUrl: "//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjY2NzY0MTM2X2xvZ28o55m95qGG6KGh5Y675a2XKS5wbmcucG5nIl1d.png?sha=2339a9b00a8564ac",
1383          navbarDisplayStyle: "rowNav",
1384        }
1385      }
1386    );
1387
1388
1389    // for link menu
1390    const linkMenuElement = document.querySelector('.link-nav');
1391    const data = []
1392    data.forEach((item) => {
1393      const wrapper = document.createElement('a');
1394      const link = document.createElement('ul');
1395
1396      wrapper.href = item.url;
1397      link.textContent = item.title;
1398      link.classList.add('link-item');
1399
1400      wrapper.appendChild(link);
1401      linkMenuElement.appendChild(wrapper);
1402    });
1403
1404    // for safe-area space on iOS devices
1405    const userAgent = navigator.userAgent;
1406    const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;
1407    const isLiff = /Line\/[\d.]+/i.test(userAgent);
1408    const $mobileBottomBar = $('#mobile-bottom-bar');
1409
1410    if ($mobileBottomBar.length && isIOS && isLiff) {
1411      $mobileBottomBar.addClass('is-ios-liff');
1412    }
1413  });
1414  document.addEventListener('DOMContentLoaded', function() {
1415    window.getCartAmount = function() {
1416      return parseInt($('.global-cart-count').html());
1417    };
1418  });
1419</script>
1419
1420
1421<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/navbar-3a2e378145f8a165.js' type='text/javascript'></script>
vendor: 1 bytes, line 1421
1421
1422<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/currencies-3a2e378145f8a165.js' type='text/javascript'></script>
1422
1423<!-- cyb_snippet i18n_modal start -->
1424
1425
1426<!-- cyb_snippet i18n_modal end -->
1427<!-- cyb_snippet _load_fonts start -->
1428<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/load_fonts-3a2e378145f8a165.js' type='text/javascript'></script>
vendor: 1 bytes, line 1428
1428
1429<script>
1430  document.addEventListener('DOMContentLoaded', function() {
1431    window.loadFontSetting("{'ja':{'value':'Noto Sans JP'},'zh-TW':{'value':'Noto Sans TC'},'en':{'value':'Noto Sans TC'},'zh-CN':{'value':'Noto Sans TC'}}")
1432  })
1433</script>
1433
1434
1435<!-- cyb_snippet _load_fonts end -->
1436<!-- cyb_snippet _custom_icon start -->
1437<script src='//cdn1-next.cybassets.com/frontend/shop/navIcon-3a2e378145f8a165.js' type='text/javascript'></script>
1437
1438
1439<script>
1440  (function() {
1441    const iconUrlMap = new Map([
1442      ['custom_icon_type_home', null],
1443      ['custom_icon_type_tracking_items', null],
1444      ['custom_icon_type_account', null],
1445      ['custom_icon_type_cart', null],
1446      ['custom_icon_type_search', null],
1447      ['custom_icon_type_menu', null]
1448    ]);
1449    const elements = document.querySelectorAll('[data-icon-type]');
1450    elements.forEach((element, index) => {
1451      const iconAttributes = element.getAttribute('data-icon-type');
1452
1453      const uniqueId = `icon_${iconAttributes}_${index}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
1454      element.id = uniqueId;
1455      window.renderNavCustomIcon(`#${uniqueId}`, {
1456        navIconStyle: "icon_type_default",
1457        customIconUrl: iconUrlMap.get(iconAttributes) || '',
1458        iconAttributes: iconAttributes,
1459        currentTemplate: "product",
1460      });
1461    });
1462  })();
1463</script>
1463
1464
1465<!-- cyb_snippet _custom_icon end -->
1466
1467
1468
1469    
1470  
1471    
1471<script src='//cdn1-next.cybassets.com/frontend/shop/announcementBar-3a2e378145f8a165.js' type='text/javascript'></script>
1471
1472
1473    
1474
1475    
1476
1477    
1477<script>
1478      $(document).ready(function() {
1479        window.renderAnnouncementBar('#announcement-bar', {
1480          sectionId: "announcement_bar",
1481          isIndex: false,
1482        });
1483      });
1484    </script>
1484
1485  
1486
1487
1488
1489
1490
1491    <!-- template -->
1492    <div id="template" style="flex:1 0 auto; background-color: var(--theme_bg);">
1493      <!-- cyb_snippet breadcrumb start -->
1494
1495<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/breadcrumb-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
1496
1497
1498<div id="site_path" class="qk-bd_b--default qk-bd--product_border">
1499  <!-- mobile: toggle button (hidden on PC) -->
1500  <div class="qk-container qk-hidden--pc">
1501    <div class="breadcrumb qk-bg--theme_bg qk-pd_x--0 qk-mg--0 qk-fs--breadcrumb">
1502      <button
1503        class="bt-toggle qk-bg--theme_bg qk-pd_x--0 qk-w--100 qk-text--left qk-bd--none qk-pos--rel collapsed"
1504        data-toggle="collapse"
1505        data-target=".breadcrumb-content"
1506      >
1507        <a href="/" class="qk-text--text">
1508          <i class="fas fa-home"></i>
1509        </a>
1510      </button>
1511    </div>
1512  </div>
1513  <!-- breadcrumb nav: single DOM, PC always visible, mobile as collapse dropdown -->
1514  <div class="breadcrumb-content qk-bg--theme_bg collapse">
1515    <div class="qk-container">
1516      <!-- cyb_snippet breadcrumb_nav start -->
1517<!-- 主題版型麵包屑 -->
1518<nav aria-label="breadcrumb">
1519  <ol
1520    class="breadcrumb qk-bg--theme_bg qk-pd_x--0 qk-mg--0 qk-fs--breadcrumb"
1521    itemscope
1522    itemtype="http://schema.org/BreadcrumbList"
1523  >
1524    
1525      <li
1526        class="breadcrumb-item
1527        
1528        "
1529        itemprop="itemListElement"
1530        itemscope itemtype="http://schema.org/ListItem">
1531        <!-- home -->
1532        
1533          <a href="/" class="qk-text--text" itemprop="item">
1534            <i class="fas fa-home"></i>
1535            <span class="qk-display--none" itemprop="name">首頁</span>
1536          </a>
1537        <!-- account -->
1538        
1539        <meta itemprop="position" content="1"/>
1540      </li>
1541    
1542      <li
1543        class="breadcrumb-item
1544        
1545        "
1546        itemprop="itemListElement"
1547        itemscope itemtype="http://schema.org/ListItem">
1548        <!-- home -->
1549        
1550          
1551            <a href="#" itemprop="item" style="display: none;">
1552              <span itemprop="name">商品</span>
1553            </a>
1554          
1555          
1556            <span class="qk-text--text" data-breadcrumb-links>
1557              <a href='/collections/有氧-核心健身' class='qk-text--text' itemprop='item'><span itemprop='name'>有氧 / 核心健身</span></a>
1558            </span>
1559          
1560        <!-- product -->
1561        
1562        <meta itemprop="position" content="2"/>
1563      </li>
1564    
1565      <li
1566        class="breadcrumb-item
1567        
1568         active "
1569        itemprop="itemListElement"
1570        itemscope itemtype="http://schema.org/ListItem">
1571        <!-- home -->
1572        
1573          <a href="/products/s5190-20230317094020" class="qk-text--text" itemprop="item">
1574            <span itemprop="name">成功 S5190扶手型臀腿踏步機</span>
1575          </a>
1576        <!-- search -->
1577        
1578        <meta itemprop="position" content="3"/>
1579      </li>
1580    
1581  </ol>
1582</nav>
1583<script>
1584  $(document).ready(function () {
1585    if (!window.liquidHelper || !window.liquidHelper.hasBreadcrumbReferrerEnabled) return;
1586
1587    var $collections = $('[data-breadcrumb-links]');
1588    if (!$collections.length) return;
1589
1590    var refMatch = document.referrer.match(/\/collections\/([^/?#]+)/);
1591    if (!refMatch || refMatch[1] === 'all') return;
1592
1593    var referrerHandle = decodeURIComponent(refMatch[1]);
1594
1595    function getCollectionHandle(url) {
1596      if (!url) return null;
1597      try {
1598        var pathname = new URL(url, location.origin).pathname;
1599        var parts = pathname.split('/');
1600        var idx = parts.indexOf('collections');
1601        if (idx === -1 || !parts[idx + 1]) return null;
1602        return decodeURIComponent(parts[idx + 1]);
1603      } catch (e) {
1604        return null;
1605      }
1606    }
1607
1608    var $link = $collections.find('a').filter(function () {
1609      return getCollectionHandle(this.href) === referrerHandle;
1610    });
1611
1612    if ($link.length) {
1613      $collections.siblings('a.qk-text--accent[href="#"]').remove();
1614      $collections.empty().append($link);
1615    }
1616  });
1617</script>
1617
1618
1619<!-- cyb_snippet breadcrumb_nav end -->
1620    </div>
1621  </div>
1622</div>
1623
1624
1625<!-- cyb_snippet breadcrumb end -->
1626
1627
1628<div id="img"></div>
1629
1630
1631
1632
1633
1634<script>
1635  var gallery_img = undefined;
1636  document.addEventListener("DOMContentLoaded", function(){
1637    gallery_img = renderGallery(
1638      '#img',
1639      {
1640        urls: ["//cdn-general.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiMjA0OHgyMDQ4Il1d.jpeg?sha=e9ad710c55df74f2","//cdn-general.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfMjA4OTIxMjljZDMzY2EyZjI3YzIuanBlZyJdLFsicCIsInRodW1iIiwiMjA0OHgyMDQ4Il1d.jpeg?sha=4b1b91e28f3b5e77"],
1641        onSwiperGalleryChange: function (payload) {
1642          var eventPayload = Object.assign({ galleryName: "img" }, payload);
1643          $(document).trigger('swiper-gallery-change', [eventPayload]);
1644        },
1645      },
1646    );
1647  });
1648</script>
1648
1649
1650<div id="product" class="product">
1651  <div class="qk-container">
1652    
1653
1654
1655
1656
1657
1658
1659 
1660
1661<div id="product_info" class="product_info qk-display--grid" data-purchase-eligibility='{"required":false,"eligible":true,"status":"eligible"}' data-hide-price="false" data-sales-mode-purchasable="true">
1662  <!-- product image start -->
1663  <div id="variant_photos" class="variant_photos">
1664    
1665    
1666    
1667    
1668    <variant-photos-block
1669      :product-photos-json="'[{\'id\':9681634,\'imageUrl\':\'//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=f05a30c3e658b150\',\'imageMaxUrl\':\'//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiMjA0OHgyMDQ4Il1d.jpeg?sha=e9ad710c55df74f2\'}, {\'id\':9681635,\'imageUrl\':\'//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfMjA4OTIxMjljZDMzY2EyZjI3YzIuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e4fa23d9c07b1dcd\',\'imageMaxUrl\':\'//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfMjA4OTIxMjljZDMzY2EyZjI3YzIuanBlZyJdLFsicCIsInRodW1iIiwiMjA0OHgyMDQ4Il1d.jpeg?sha=4b1b91e28f3b5e77\'}]'"
1670      :display-product-images-color=false
1671      :product-id="39906070"
1672      product-title="成功 S5190扶手型臀腿踏步機"
1673      
1674    />
1675  </div>
1676  <!-- product image end -->
1677  <!-- product content start -->
1678  <div id="product_content" class="product_content qk-display--flex" data-tracking-variant-ids="null">
1679    
1680    <!-- 標題 -->
1681    <div class="product_title">
1682      <h1 class="qk-text--heading qk-fs--hd1 qk-fw--bold qk-mg--0">成功 S5190扶手型臀腿踏步機</h1>
1683    </div>
1684    
1685    <!-- ç°¡è¿° -->
1686    
1687      <div class="product_brief qk-text--text qk-fs--body">
1688        型號:S5190<br>尺寸:長45.7 x 寬43.3 x 高108.5(含計步器)<br>重量:約8.5kg<br>入數:1台<br>[材質] 鐵、聚丙烯、丁腈橡膠、泡棉、油<br>[高度] 扶手可調3段,高度分別94,99,104cm<br>貼心提醒: 勿連續踩踏超過20分鐘,讓油管液壓降溫20~30分鐘之後再使用,以免造成過度使用損壞,延長油ç®
1688¡å£½å‘½å–”。
1689      </div>
1690    
1691    <!-- 廠商,標語 -->
1692    <div class="product_vendor_slogan qk-display--il_bk qk-align--center">
1693      
1694      
1695        <span class="product_slogan qk-text--heading qk-fs--body">核心機能強化,提臀訓練</span>
1696      
1697    </div>
1698    <!-- 商品售價 -->
1699    
1700    
1701    
1702    <div
1703      class="product_price"
1704      id="price_title"
1705      data-discount-price-name=""
1706      data-discount-price-suggestion-name="">
1707      <!-- 價格title -->
1708      
1709        
1710      
1711
1712      <!-- 商品價格 -->
1713      <div class="qk-display--il_bk">
1714        <span class="qk-text--discount_price price qk-fs--hd1 qk-fw--bold qk-display--il_bk qk-vert--mid"><span class="money_tag" data-currency-from="TWD" data-amount="2880.0">NT$2,880</span></span>
1715      </div>
1716      <del class="qk-text--text qk-fs--body qk-pd_l--05 qk-display--il_bk qk-vert--mid"><span class="money_tag" data-currency-from="TWD" data-amount="3600.0">NT$3,600</span></del>
1717
1718      <!--會員可見價-->
1719      
1720    </div>
1721    
1722    <!-- 商品sku -->
1723    
1724      <div class="product_sku qk-text--heading qk-fs--body">
1725        <span>商品編號:
1726        </span>
1727        <span class="val">S5190</span>
1728      </div>
1729    
1730    <!-- 供貨狀況 -->
1731    
1732      <div class="product_inventory_policy qk-text--heading qk-fs--body">
1733        <span>供貨狀況:
1734        </span>
1735        <span class="val">尚有庫存</span>
1736      </div>
1737    
1738
1739    <!-- 商品款式 -->
1740    <div id="variant_options" class="variant_options">
1741      <variant-options-block
1742        :product-api-url="'/products/s5190-20230317094020'"
1743        :sku="sku"
1744        :auto-select-variant-by-sku="false"
1745        :hide-other-variants-by-sku="false"
1746        :hide-single-variant-options="false"
1747        :sales-mode-purchasable="true"
1748        default-price="NT$2,880"
1749        default-compare-price="NT$3,600"
1750        :default-discounted="true"
1751        @set-choose="getSelectedDatas"
1752        @get-option-image="getCurrentImage"></variant-options-block>
1753    </div>
1754
1755    <div id="product-tags"></div>
1756
1757    <!-- product discounts_list start -->
1758    <div class="product_discounts_list force-show-scrollbar hide qk-bd--default qk-bd--product_border qk-pd--1 qk-of_y--auto qk-of_x--hidden ">
1759      <div class="list_block custom-scrollbar qk-of_x--hidden">
1760        <p class="qk-text--heading qk-fs--body qk-mg_b--05">此商品參與的優惠活動</p>
1761        
1762      </div>
1763    </div>
1764    <!-- product discounts_list end -->
1765
1766    <!-- 規格,數量 -->
1767    
1768      <div class="product_variant_quantity">
1769        <span class="product_quantity">
1770          <div
1771            class="btn-group"
1772            role="group"
1773            aria-label="First group">
1774            <button class="btn add-down qk-bd--product_border" type="button"></button>
1775            <input
1776              class="btn item-quantity qk-text--heading qk-bd--product_border"
1777              type="text"
1778              name="quantity"
1779              value="1"
1780              data-old-value="1">
1781            <button class="btn add-up qk-bd--product_border" type="button"></button>
1782          </div>
1783        </span>
1784      </div>
1785
1786    <!-- 購買按鈕 -->
1787      <div class="product_button qk-display--flex qk-hidden--mobile">
1788        <!-- cyb_snippet _product_info_button start -->
1789<button class="btn addToCart btn_to_cart qk-btn qk-text--button qk-bd--button qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button"
1790  data-brand=""
1791  data-id="39906070"
1792  data-category=""
1793  data-list="單產品細覽"
1794  data-name="成功 S5190扶手型臀腿踏步機"
1795  data-quantity="1"
1796  data-position="全頁"
1797  
1798  data-ga-custom-dimension=""
1799  data-ga-custom-value=""
1800  data-sku="S5190">加入購物車</button>
1801<button class="btn addToCart btn-quick_buy qk-btn qk-btn--primary qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button" data-buy="quick_buy"
1802  data-brand=""
1803  data-id="39906070"
1804  data-category=""
1805  data-list="單產品細覽"
1806  data-name="成功 S5190扶手型臀腿踏步機"
1807  data-quantity="1"
1808  data-position="全頁"
1809  
1810  data-ga-custom-dimension=""
1811  data-ga-custom-value=""
1812  data-sku="S5190"><span>立即購買</span></button>
1813
1814<!-- cyb_snippet _product_info_button end -->
1815        <!-- cyb_snippet _product_info_status_button start -->
1816<button class="btn btn_not_sale hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1817  尚未開賣
1818</button>
1819<button class="btn btn_login_to_view hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1820  登入查看資格
1821</button>
1822<button class="btn btn_not_eligible hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1823  購買資格不符
1824</button>
1825<!-- cyb_snippet _product_info_status_button end -->
1826        
1827          <button class="btn btn_notice hidden qk-btn qk-btn--primary qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1828            已售完,貨到通知我
1829          </button>
1830        
1831        <button class="btn btn_soldout hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1832          已售完
1833        </button>
1834        <button
1835          class="btn buy-together hidden qk-btn qk-text--button qk-bd--button qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title"
1836          type="button"
1837          data-brand=""
1838          data-id="39906070"
1839          data-category=""
1840          data-list="單產品細覽"
1841          data-name="成功 S5190扶手型臀腿踏步機"
1842          data-quantity="1"
1843          data-position="全頁"
1844          
1845          data-ga-custom-dimension=""
1846          data-ga-custom-value=""
1847          data-sku="S5190">同時加購物車</button>
1848        <button
1849          class="btn buy-together hidden qk-btn qk-btn--primary qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title"
1850          type="button"
1851          data-buy="quick_buy"
1852          data-brand=""
1853          data-id="39906070"
1854          data-category=""
1855          data-list="單產品細覽"
1856          data-name="成功 S5190扶手型臀腿踏步機"
1857          data-quantity="1"
1858          data-position="全頁"
1859          
1860          data-ga-custom-dimension=""
1861          data-ga-custom-value=""
1862          data-sku="S5190">同時購買</button>
1863      </div>
1864    
1865      <div class="product_button_mobile qk-display--flex qk-align--center qk-hidden--pc">
1866        <span class="product_love_mobile qk-display--il_bk">
1867          <input
1868            type="hidden"
1869            class="product-variant-id"
1870            value="45826133"
1871            data-sku="S5190"
1872            data-price="2880.0"
1873            data-compare_at_price="3600.0"
1874            data-variant=""
1875            data-inventory_quantity="20">
1876          <a
1877            class="btn_love scupio-add-wishlist qk-text--text qk-fs--body qk-cursor--pointer"
1878            data-itemid="S5190"
1879            
1880          >
1881          <div data-icon-type="custom_icon_type_tracking_items" ></div>
1882
1883          </a>
1884        </span>
1885        
1886          <div class="cart qk-text--center qk-pd_x--05 qk-pd_y--0">
1887            <a href="/cart" class="qk-display--il_flex qk-flex--row qk-justify--center qk-align--center qk-vert--mid qk-pos--rel">
1888              <div data-icon-type="custom_icon_type_cart" ></div>
1889
1890              <span 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" style="display: none;">0</span>
1891            </a>
1892          </div>
1893          <!-- cyb_snippet _product_info_button_mobile start -->
1894<button
1895  class="btn addToCart_mobile btn_to_cart_mobile open_product_modal qk-btn qk-flex--1 qk-fs--title qk-text-truncate qk-bd--button qk-text--button"
1896  data-handle="s5190-20230317094020">
1897  加入購物車</button>
1898<button
1899  class="btn addToCart_mobile btn_quick_buy_mobile open_quick_buy_modal qk-btn qk-btn--primary qk-flex--1 qk-fs--title qk-text-truncate"
1900  data-handle="s5190-20230317094020">
1901  立即購買</button>
1902
1903<!-- cyb_snippet _product_info_button_mobile end -->
1904          <!-- cyb_snippet _product_info_status_button start -->
1905<button class="btn btn_not_sale hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1906  尚未開賣
1907</button>
1908<button class="btn btn_login_to_view hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1909  登入查看資格
1910</button>
1911<button class="btn btn_not_eligible hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1912  購買資格不符
1913</button>
1914<!-- cyb_snippet _product_info_status_button end -->
1915          
1916            <button class="btn btn_notice btn_notice_mobile hidden qk-btn qk-btn--primary qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1917              已售完,貨到通知我
1918            </button>
1919          
1920          <button class="btn btn_soldout hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-flex--1 qk-fs--title" type="button">
1921            已售完
1922          </button>
1923          <button
1924            class="btn buy-together hidden qk-btn qk-flex--1 qk-fs--title qk-bd--button qk-text--button"
1925            type="button"
1926            data-brand=""
1927            data-id="39906070"
1928            data-category=""
1929            data-list="單產品細覽"
1930            data-name="成功 S5190扶手型臀腿踏步機"
1931            data-quantity="1"
1932            data-position="全頁"
1933            
1934            data-sku="S5190">同時加購物車</button>
1935          <button
1936            class="btn buy-together hidden qk-btn qk-btn--primary qk-flex--1 qk-fs--title"
1937            type="button"
1938            data-buy="quick_buy"
1939            data-brand=""
1940            data-id="39906070"
1941            data-category=""
1942            data-list="單產品細覽"
1943            data-name="成功 S5190扶手型臀腿踏步機"
1944            data-quantity="1"
1945            data-position="全頁"
1946            
1947            data-sku="S5190">同時購買</button>
1948        
1949      </div>
1950      
1951      
1952      
1953      
1954      
1955    <!-- 加入最愛,銷售數量,紅利折抵 -->
1956    <div class="product_others qk-display--flex qk-flex--wrap qk-align--center">
1957      <span class="product_love qk-display--il_bk qk-hidden--phone">
1958        <input
1959          type="hidden"
1960          class="product-variant-id"
1961          value="45826133"
1962          data-sku="S5190"
1963          data-price="2880.0"
1964          data-compare_at_price="3600.0"
1965          data-variant=""
1966          data-inventory_quantity="20">
1967        <a
1968          class="btn_love scupio-add-wishlist qk-text--text qk-fs--body qk-bd--default qk-bd--product_border qk-cursor--pointer qk-display--flex qk-align--center"
1969          data-itemid="S5190"
1970          
1971        >
1972          <svg
1973            width="15"
1974            height="15"
1975            viewBox="0 0 24 24"
1976            fill="none"
1977            xmlns="http://www.w3.org/2000/svg">
1978            <path
1979              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"
1980              stroke="currentColor"
1981              stroke-width="2"
1982              stroke-linecap="round"
1983              stroke-linejoin="round" />
1984          </svg>
1985          加入最愛
1986        </a>
1987      </span>
1988      
1989      <span
1990        class="product_bonus qk-text--text qk-fs--body qk-display--il_bk"
1991        >
1992        此商品 「 最高 」可以折抵紅利
1993        <span class="val">2880</span>
1994        點
1995        
1996        (約等於 <span class="money_tag" data-currency-from="TWD" data-amount="2880">NT$2,880</span> )
1997      </span>
1998    </div>
1999  </div>
2000  <!-- product content end -->
2001</div>
2002<div class="add-buy-products-container">
2003  <!-- cyb_snippet add_buy_products start -->
2004
2005
2006
2007
2008<!-- cyb_snippet add_buy_products end -->
2009
2010</div>
2011
2012<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/cart-3a2e378145f8a165.js' type='text/javascript'></script>
vendor: 1 bytes, line 2012
2012
2013<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/product_variant-3a2e378145f8a165.js' type='text/javascript'></script>
2013
2014<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/product-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
2015<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/product_info-3a2e378145f8a165.js' type='text/javascript'></script>
2015
2016
2017<!-- cyb_snippet new_addcart_modal start -->
2018<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/vue_product_modal-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
2019
2020<div id="new-addcart-modal" class="container">
2021  <transition name="modal">
2022    <product-modal
2023      v-if="showProductModal"
2024      :only-description="onlyDescription"
2025      :product-url="popProductUrl"
2026      :color="color"
2027      :is-collection="isCollection"
2028      :is-show-description="isShowDescription"
2029      :is-quick-buy="isQuickBuy"
2030      :selected-variant-id="selectedVariantId"
2031      :categories="categories"
2032      :call-back="checkoutAddToCartCallback"
2033      ref="productModal"
2034    >
2035    </product-modal>
2036  </transition>
2037</div>
2038
2039<!-- cyb_snippet components/product_modal/product_modal start -->
2040<script type="text/x-template" id="product-modal">
2041  <div class="modal-mask qk-h--100 qk-w--100 qk-l--0 qk-t--0 qk-pos--fixed" @click="closeModal">
2042    <div class="modal-content qk-bd--none qk-center qk-bg--theme_bg" :class="{'only-description': onlyDescription}" @click.stop>
2043      <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>
2044      <div class="modal-body custom-scrollbar qk-w--100">
2045        <div v-if="!isLoading">
2046          <div id="checkout-product" class="row">
2047            <div class="col-sm-6 col-xs-4">
2048              <photo-swiper
2049                :mediaItems="swiperItems"
2050                :current-image-index="currentImageIndex"
2051                :current-variant="currentVariant"
2052                :video-after-image="videoAfterImage"
2053              ></photo-swiper>
2054            </div>
2055            <div class="col-sm-6 col-xs-8">
2056              <h4 class="qk-fs--hd2 qk-fw--bold qk-text--heading qk-mg--0" v-html="product.title"></h4>
2057              <p class="product_brief qk-text--text qk-fs--body" v-html="product.brief"></p>
2058              <p class="product_slogan qk-text--heading qk-fs--body" v-html="product.slogan"></p>
2059              <div class="swiper_thumbnails" style="margin-bottom: 10px;">
2060                <swiper-thumbnails
2061                  :mediaItems="swiperItems"
2062                  :current-image-index="currentImageIndex"
2063                  :title="product.title"
2064                  @update-current-image-index="(thumbnailIndex) => { currentImageIndex = thumbnailIndex }"
2065                ></swiper-thumbnails>
2066              </div>
2067              
2068              <div v-if="!hidePrice" style="margin-bottom: 10px;">
2069                
2070                <span class="price-title qk-fs--body qk-fw--500 qk-text--heading">${ priceTitleTag }</span>
2071                
2072                <div>
2073                  <span v-html="variantPrice" class="variant-price qk-fs--hd1 qk-fw--bold" :class="[isDiscountPrice ? 'qk-text--discount_price' : 'qk-text--price']"></span>
2074                  <del v-html="marketPrice" class="variant-del-price qk-fs--body qk-fw--500 qk-text--text"></del>
2075                </div>
2076              </div>
2077              <div v-if="!onlyDescription" class="controls">
2078                <div class="variant-quantity qk-display--flex qk-flex--column">
2079                  <div v-if="hasVariant" class="product-variant-options">
2080                    <div v-for="(option, index) in optionInfo" class="product-variant-option" :class="{'product-variant-option--hidden': shouldHideSingleVariantOptions}">
2081                      <div class="advance variant-select-option" v-if="styledShopMenu==='dropDownType'">
2082                      
2083                        <label>${option.name}</label>
2084                        <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>
2085                        <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}`)">
2086                          <option value="null" class="select_option-hidden">請選擇${option.name}</option>
2087                          <option :style="{ visibility : isMobileSize ? 'hidden' : 'visible' }" v-for="(types) in option.types" :disabled="!types.isValid" :value="types.name">${types.name}</option>
2088                        </select>
2089                        <span class="select_placeholder-color" v-if="currentOption[`option${index + 1}`] === null" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)">請選擇${option.name}</span>
2090                        <span v-else :value="currentOption[`option${index + 1}`]" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)" v-html="currentOption[`option${index + 1}`]"></span>
2091                      </div>
2092                      <advance-option v-else :option-key="'option' + (index + 1)" :option="option" :current-option="currentOption" :toggle-current-option="toggleCurrentOption"/>
2093                    </div>
2094                  </div>
2095                  <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)">
2096                    <div class="list_block custom-scrollbar qk-of_x--hidden">
2097                      <h4 class="qk-text--heading qk-fs--body">此商品參與的優惠活動
2098                      </h4>
2099                      <template v-if="displayPeriodicSalesPages">
2100                        <div v-for="salesPage in product.showableSalesPages" class="discount-list">
2101                          <span class="discount-label qk-fs--breadcrumb qk-bd--default qk-bd--accent qk-bg--white qk-display--il_bk qk-text--accent">定期定額
2102                          </span>
2103                          <a class="discount-title qk-text--accent qk-fs--body" :href="salesPage.path">${ salesPage.title }</a>
2104                        </div>
2105                      </template>
2106                      <template v-for="discounts in discountsList">
2107                        <div v-for="discount in discounts" class="discount-list">
2108                          <a v-if="discount.url" :href="discount.url" class="discount-title qk-text--accent qk-fs--body">
2109                            ${ discount.title }
2110                          </a>
2111                          <span v-else class="discount-title qk-text--accent qk-fs--body">${ discount.title }</span>
2112                        </div>
2113                      </template>
2114                    </div>
2115                  </div>
2116                  <div v-if="showPurchaseControls" class="product-quantity qk-bd--product_border" v-show="!isMobileSize">
2117                    <div class="btn-group qk-w--100" role="group" aria-label="First group">
2118                      <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">-</button>
2119                      <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">
2120                      <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">+</button>
2121                    </div>
2122                  </div>
2123                </div>
2124                <div v-if="showPurchaseControls" class="add-button-wrapper">
2125                  <!-- cyb_snippet _product_modal_button start -->
2126<button
2127  class="btn btn-default add-button qk-cursor--pointer qk-w--100 qk-btn--primary"
2128  :class="{selected: isChoose, adding: adding || isHideAddCartBtn, secondary: isSecondaryBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}"
2129  type="button"
2130  :disabled="isHideAddCartBtn"
2131  @click="addProduct"
2132>
2133  ${ addCartText }
2134</button>
2135
2136<!-- cyb_snippet _product_modal_button end -->
2137                </div>
2138                <div class="product-others qk-fs--body">
2139                  <span class="product-love">
2140                    <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">
2141                      <svg
2142                        width="15"
2143                        height="15"
2144                        viewBox="0 0 24 24"
2145                        fill="none"
2146                        xmlns="http://www.w3.org/2000/svg">
2147                        <path
2148                          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"
2149                          stroke="currentColor"
2150                          stroke-width="2"
2151                          stroke-linecap="round"
2152                          stroke-linejoin="round" />
2153                      </svg>
2154                      加入最愛
2155                    </a>
2156                  </span>
2157                  <span class="product_sold qk-text--text" v-if="false">
2158                    <span>已銷售:
2159                      ${ product.totalSold }
2160                      ä»¶
2161                    </span>
2162                  </span>
2163                  <span class="product_bonus qk-text--text" v-if="true">
2164                    此商品 「 最高 」可以折抵紅利
2165                    <span class="val qk-fw--600 qk-fs--hd2" v-if="currentVariant">${currentVariant.maxUsableBonus}</span>
2166                    <span class="val qk-fw--600 qk-fs--hd2" v-else>${maxUsableBonus}</span>
2167                    點
2168                    <span v-html="bonusToPrice"/>
2169                  </span>
2170                </div>
2171                <div class='product_limit_buy qk-fs--body' v-show="product.minBuy > 0 || product.limitBuy > 0">
2172                  ${limitBuyText}
2173                </div>
2174              </div>
2175            </div>
2176          </div>
2177          <div v-if="isShowDescription" class="row">
2178            <div class="col-sm-12">
2179              
2180                <div v-if="product.bodyHtml">
2181                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2182                    商品介紹
2183                  </h5>
2184                  <div class="ckeditor">
2185                    <div v-html="product.bodyHtml"></div>
2186                  </div>
2187                </div>
2188              
2189              
2190                <div v-if="otherDescriptions['product_description_section_spec']">
2191                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2192                    規格說明
2193                  </h5>
2194                  <div class="ckeditor">
2195                    <div v-html="otherDescriptions['product_description_section_spec']"></div>
2196                  </div>
2197                </div>
2198              
2199              
2200                <div v-if="otherDescriptions['product_description_section_shipping']">
2201                  <h5 class="section-heading qk-bd--heading qk-fs--hd2 qk-text--heading">
2202                    運送方式
2203                  </h5>
2204                  <div class="ckeditor">
2205                    <div v-html="otherDescriptions['product_description_section_shipping']"></div>
2206                  </div>
2207                </div>
2208              
2209            </div>
2210          </div>
2211        </div>
2212        <div v-show="isLoading" style="text-align: center; padding-bottom: 20px;">
2213          <i class="fas fa-spinner fa-spin fa-fw fa-2x"></i>
2214        </div>
2215      </div>
2216        <!-- cyb_snippet _product_modal_button_mobile start -->
2217 <div
2218  v-if="showPurchaseControls"
2219  v-show="isMobileSize"
2220  class="mobile_footer"
2221  :class="{'mobile_footer-z': variantSize > 1 }">
2222        <div class="product-quantity">
2223          <div class="btn-group qk-w--100" role="group" aria-label="First group">
2224            <button class="btn add-down qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityDecrease">-</button>
2225            <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">
2226            <button class="btn add-up qk-bd--default qk-bd--border qk-text--text" type="button" @click="quantityIncrease">+</button>
2227          </div>
2228        </div>
2229        <button
2230          v-if="!isLoading && !onlyDescription"
2231          class="btn btn-mobile add-button qk-btn qk-btn--primary qk-btn--lg"
2232          :class="{selected: isChoose, adding: adding || isHideAddCartBtn, 'qk-btn--disabled': isHideAddCartBtn && isNewNnCollection, 'qk-bd--none': isHideAddCartBtn && isNewNnCollection}"
2233          type="button"
2234          :disabled="isHideAddCartBtn"
2235          @click="addProduct">
2236            ${ addCartText }
2237        </button>
2238</div>
2239<div
2240  class="mobile-modal"
2241  :class="{ 'modal-open': isModalSelectShow && isMobileSize }">
2242        <div class="mobile_modal-content">
2243          <div class="modal_close-button">
2244            <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>
2245          </div>
2246          
2247          <p>請選擇${modalOption.name}</p>
2248          <div class="modal_select-templete qk-display--flex qk-of_y--auto qk-w--100">
2249            <div class="options-container">
2250              <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>
2251            </div>
2252          </div>
2253          <div v-if="variantSize > 1" class="modal_select_footer qk-display--flex">
2254            <button type="button" class="modal_cancel qk-bd--default qk-btn--secondary qk-bd--button qk-text--button" @click="onChangeModalSelect(false,false)">取消</button>
2255            <button type="button" class="qk-btn qk-btn--primary qk-btn--lg qk-fs--body qk-bd--button qk-test--button_text" @click="onChangeModalSelect(false,true)">完成</button>
2256          </div>
2257        </div>
2258</div>
2259
2260<!-- cyb_snippet _product_modal_button_mobile end -->
2261    </div>
2262  </div>
2263</script>
2263
2264
2265<!-- cyb_snippet components/product_modal/color_image_option start -->
2266<script id="color-image-option" type="text/x-template">
2267  <div class="color-image qk-display--flex qk-flex--wrap qk-align--center">
2268    <div class="title">顏色</div>
2269    <div
2270      v-for="(imageColor, index) in imageColors"
2271      :class="{
2272        'focus': !currentOption[optionKey] === option.types[index].name && currentImageIndex === index,
2273        'selected': currentOption[optionKey] === option.types[index].name,
2274        'disabled': !option.types[index].isValid
2275      }"
2276      class="image-option img-flex qk-bd--default qk-bd--transparent qk-display--block qk-pos--rel"
2277      @mouseleave="setCurrentImageIndex(index)"
2278      @mouseover="getOptionImageIndex(index)"
2279      @click="setOption(optionKey, index)"
2280    >
2281      <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image">
2282      <img v-else src="/assets/no-image-large.png" alt="image">
2283    </div>
2284  </div>
2285</script>
2285
2286
2287<script type="text/javascript">
2288  $(document).ready(function() {
2289    window.themeHelper.productModalComponents['color-image-option'] = {
2290      template: '#color-image-option',
2291      delimiters: ['${', '}'],
2292      props: {
2293        optionKey: String,
2294        option: Object,
2295        product: Object,
2296        imageColors: Array,
2297        isChoose: Boolean,
2298        currentImageIndex: Number,
2299        setCurrentImageIndex: Function,
2300        getOptionImageIndex: Function,
2301        currentOption: Object,
2302        toggleCurrentOption: Function,
2303      },
2304      methods: {
2305        setOption: function(optionKey, index) {
2306          const type = this.option.types[index];
2307          if(type.isValid){
2308            this.toggleCurrentOption(optionKey, type.name);
2309          }
2310        }
2311      }
2312    };
2313  });
2314</script>
2314
2315
2316<!-- cyb_snippet components/product_modal/color_image_option end -->
2317<!-- cyb_snippet components/product_modal/advance_option start -->
2318<script id="advance-option" type="text/x-template">
2319  <div class="advance">
2320    <div class="title qk-text--heading qk-fs--body">${option.name}</div>
2321    <div
2322      v-for="type in option.types"
2323      :class="{
2324        'selected': currentOption[optionKey] === type.name,
2325        'disabled': !type.isValid
2326      }"
2327      @click="setOption(optionKey, type)"
2328      class="option qk-btn  qk-bd--button qk-text--button qk-pd_x--1"
2329    >
2330      ${type.name}
2331    </div>
2332  </div>
2333</script>
2333
2334
2335<script type="text/javascript">
2336  $(document).ready(function() {
2337    window.themeHelper.productModalComponents['advance-option'] = {
2338      template: '#advance-option',
2339      delimiters: ['${', '}'],
2340      props: {
2341        optionKey: String,
2342        option: Object,
2343        product: Object,
2344        currentOption: Object,
2345        toggleCurrentOption: Function,
2346      },
2347      methods: {
2348        setOption: function(optionKey, type) {
2349          if(type.isValid){
2350            this.toggleCurrentOption(optionKey, type.name);
2351          }
2352        }
2353      }
2354    };
2355  });
2356</script>
2356
2357
2358<!-- cyb_snippet components/product_modal/advance_option end -->
2359
2360<!-- cyb_snippet components/product_modal/photo_swiper start -->
2361
2362
2363<script id="photo-swiper" type="text/x-template">
2364  <div ref="photoSwiper" id="photo_swiper" class="photos swiper swiper-container">
2365    <div class="swiper-wrapper">
2366      <template v-if="hasImage">
2367        <div v-for="(item, index) in mediaItems" :key="index" class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top three_to_four_scale">
2368          <video-player v-if="item.url" :video="item"
2369            :video-poster=" !!mediaItems[firstImageIndex] ? mediaItems[firstImageIndex].large : '//cdn1-next.cybassets.com/img_loading.svg' "
2370          >
2371          </video-player>
2372          <img v-else class="qk-center" :src="item.large" alt="image"/>
2373        </div>
2374      </template>
2375      <div v-else class="photo swiper-slide qk-align--center qk-display--flex qk-justify--center qk-vert--text_top three_to_four_scale">
2376        <img src="//cdn1-next.cybassets.com/assets/no-image-large-2b95ea56c455be9ce081d81c14eded925df68bf8fa38809e46f6af8fcdd5f9bc.png" alt="image" />
2377      </div>
2378    </div>
2379    <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>
2380    <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>
2381
2382    <div class="photo-pagination qk-bd--default qk-bd--body qk-text--center qk-text--body qk-fs--breadcrumb qk-visible-sm">
2383        <span class="current-index qk-text--default_dark">${currentImageIndex +1 }</span><span class="pagination-slash">/</span>
2384        <span>${mediaItems.length}</span>
2385      </div>
2386  </div>
2387</script>
2387
2388
2389<script>
2390  $(document).ready(function () {
2391    window.themeHelper.productModalComponents['photo-swiper'] = {
2392      template: '#photo-swiper',
2393      delimiters: ['${', '}'],
2394      props: {
2395        mediaItems: Array,
2396        currentImageIndex: Number,
2397        currentVariant: Object,
2398        videoAfterImage: Boolean,
2399      },
2400      data: function () {
2401        return {
2402          swiper: {},
2403          swiperOption: {
2404            preventInteractionOnTransition: true,
2405            rewind: true,
2406            spaceBetween: 5,
2407            slidesPerView: 1,
2408            navigation: {
2409              nextEl: '.photo-next',
2410              prevEl: '.photo-prev'
2411            }
2412          },
2413          showBtn: true,
2414          isVariantReposition: false,
2415        }
2416      },
2417      mounted: function() {
2418        this.swiper = new Swiper('#photo_swiper', this.swiperOption);
2419        this.swiper.on('slideChange', this.slideOnChange);
2420      },
2421      watch: {
2422        currentImageIndex: function() {
2423          this.slideToIndex();
2424        },
2425        currentVariant: {
2426          immediate: true,
2427          handler: function() {
2428            this.showBtn = this.mediaItems.length > 1;
2429            this.isVariantReposition = true;
2430            this.$nextTick(() => {
2431              if (this.swiper) {
2432                this.swiper.update();
2433                this.swiper.slideToLoop(this.initialItemIndex)
2434                this.slideOnChange();
2435                this.isVariantReposition = false;
2436              }
2437            });
2438          },
2439        },
2440      },
2441      computed: {
2442        hasImage: function() {
2443          return this.mediaItems.length > 0;
2444        },
2445        hasVideo: function() {
2446          return this.mediaItems.findIndex(item => !!item.url) !== -1;
2447        },
2448        variantPhotos: function() {
2449          if (this.currentVariant?.photos?.length) {
2450            return this.currentVariant.photos;
2451          } else  {
2452            return null;
2453          }
2454        },
2455        initialItemIndex: function() {
2456          if (this.hasVideo && !this.videoAfterImage) {
2457            // Focus on photo if "variant with photos" selected, video otherwise
2458            return this.variantPhotos?.length ? 1 : 0;
2459          } else {
2460            // Focus on first photo
2461            return 0;
2462          }
2463        },
2464      },
2465      methods: {
2466        slideOnChange: function() {
2467          themeHelper.EventBus.$emit('photoOnChange', this.swiper.realIndex, this.isVariantReposition);
2468        },
2469        slideToIndex: function() {
2470          if(this.swiper.realIndex != this.currentImageIndex) {
2471            this.swiper.slideToLoop(this.currentImageIndex);
2472            this.swiper.update();
2473          }
2474        },
2475      }
2476    };
2477  });
2478</script>
2478
2479
2480
2481<!-- cyb_snippet components/product_modal/video_player start -->
2482<script id="video-player" type="text/x-template">
2483  <div class="videoPlayer__wrapper" @click="handleVideoClick">
2484    <video 
2485      id='modal-video'
2486      class="videoPlayer__video qk-cursor--pointer qk-center" 
2487      :poster="videoPoster"
2488      loop defaultMuted muted playsinline webkit-playsinline autoplay
2489    >
2490      <source :src="videoUrl" type="video/mp4">
2491      <p>你的瀏覽器不支援 HTML 5 video</p>
2492    </video>
2493    <button id="modal-video-button" class="videoPlayer__pauseButton"></button>
2494  </div>
2495</script>
2495
2496
2497<script>
2498  $(document).ready(function () {
2499    window.themeHelper.productModalComponents['video-player'] = {
2500      template: '#video-player',
2501      delimiters: ['${', '}'],
2502      props: {
2503        video: Object,
2504        videoPoster: String,
2505      },
2506      data: function() {
2507        return {
2508          videoElement: null,
2509          buttonElement: null,
2510        };
2511      },
2512      mounted: function() {
2513        this.videoElement = $('#modal-video')[0];
2514        this.buttonElement = $('#modal-video-button');
2515        this.setVideoVolumeZero();
2516        this.videoElement.addEventListener('canplay', (event) => {
2517          this.sendGtag('play');
2518        }, { once: true });
2519      },
2520      computed: {
2521        videoUrl: function() {
2522          return this.video.url;
2523        }
2524      },
2525      methods: {
2526        sendGtag: function(action) {
2527          window.productVideoView && productVideoView(action);
2528        },
2529        setVideoVolumeZero: function() {
2530          this.videoElement.volume = 0;
2531        },
2532        handleVideoClick: function() {
2533          if (this.videoElement.paused){
2534            this.videoElement.play();
2535            this.sendGtag('play');
2536          } else {
2537            this.videoElement.pause();
2538            this.sendGtag('paused');
2539          }
2540          this.handleVideoButtonDisplay(this.buttonElement, this.videoElement);
2541        },
2542        handleVideoButtonDisplay: function(button, video) {
2543          button.toggleClass('videoPlayer__playButton', video.paused);
2544          button.toggleClass('videoPlayer__pauseButton', !video.paused);
2545        },
2546      }
2547    };
2548  });
2549</script>
2549
2550
2551<!-- cyb_snippet components/product_modal/video_player end -->
2552
2553<!-- cyb_snippet components/product_modal/photo_swiper end -->
2554<!-- cyb_snippet components/product_modal/swiper_thumbnails start -->
2555<script id="swiper-thumbnails" type="text/x-template">
2556  <div
2557    v-for="(thumbnail, index) in allThumbnails"
2558    :key="index"
2559    class="product-thumbnail img-flex qk-of--hidden qk-display--il_bk qk-cursor--pointer qk-bd--default qk-bd--transparent three_to_four_scale"
2560    :class="{ focus: index === currentImageIndex }"
2561    @mouseover="updateCurrentImageIndex(index)"
2562  >
2563    <template v-if="thumbnail.isVideo">
2564      <video class="qk-w--100 qk-h--100" :src="thumbnail.url" defaultMuted playsinline></video>
2565      <button class="videoPlayer__playButton"></button>
2566    </template>
2567    <img v-else :src="thumbnail.url" :alt="title" class="qk-w--100 qk-h--100">
2568  </div>
2569</script>
2569
2570
2571<script type="text/javascript">
2572  $(document).ready(function () {
2573    window.themeHelper.productModalComponents['swiper-thumbnails'] = {
2574      template: '#swiper-thumbnails',
2575      delimiters: ['${', '}'],
2576      props: {
2577        title: String,
2578        mediaItems: Array,
2579        currentImageIndex: Number,
2580      },
2581      emits: ['updateCurrentImageIndex'],
2582      methods: {
2583        updateCurrentImageIndex: function(thumbnailIndex) {
2584          if (thumbnailIndex !== this.currentImageIndex ) {
2585            this.$emit('updateCurrentImageIndex', thumbnailIndex);
2586          }
2587        },
2588      },
2589      mounted() {
2590        // can be removed after replacing video thumbnail with img
2591        const thumbnailVideo = $('.product-thumbnail video')[0];
2592        if (!!thumbnailVideo) {
2593          thumbnailVideo.volume = 0;
2594          const promise = thumbnailVideo.play();
2595          promise.then(() => {
2596            thumbnailVideo.pause();
2597          })
2598        }
2599      },
2600      computed: {
2601        allThumbnails: function() {
2602          return this.mediaItems.map(item => ({
2603            isVideo: !!item.url,
2604            url: item.url || item.medium
2605          }));
2606        },
2607      },
2608      watch: {
2609        allThumbnails: {
2610          handler(){
2611            this.updateCurrentImageIndex(this.currentImageIndex);
2612          }
2613        }
2614      }
2615    };
2616  });
2617</script>
2617
2618
2619<!-- cyb_snippet components/product_modal/swiper_thumbnails end -->
2620
2621
2622<!-- cyb_snippet _product_modal_js start -->
2623<script type="text/javascript">
2624  $(document).ready(function() {
2625    var categoryLevels = [];
2626    var productCategoryLevels = ["有氧 / 核心健身"];
2627    var pageMainProductId = 39906070;
2628    window.themeHelper.productModalComponents['product-modal'] = {
2629      template: '#product-modal',
2630      delimiters: [
2631        '${', '}'
2632      ],
2633      props: {
2634        onlyDescription: Boolean,
2635        cartItems: Array,
2636        groupId: Number,
2637        productUrl: String,
2638        color: String, // unused
2639        collectionId: Number,
2640        categories: Array,
2641        // 判斷是否有色票展開
2642        isCollection: {
2643          type: Boolean,
2644          required: false,
2645          default: false,
2646        },
2647        // 判斷加入購物車的方法
2648        isNnCollection: Boolean,
2649        isNewNnCollection: Boolean,
2650        isBundleDiscount: Boolean,
2651
2652        // 判斷是否顯示商品描述
2653        isShowDescription: {
2654          type: Boolean,
2655          default: true
2656        },
2657
2658        // 判斷是否為立即購買
2659        isQuickBuy: {
2660          type: Boolean,
2661          default: false
2662        },
2663        selectedVariantId: Number,
2664        callBack: Function
2665      },
2666      data: function() {
2667        return {
2668          styledShopMenu: "buttonType",
2669          selectOption: '',
2670          selectCurrentStr:'',
2671          isModalSelectShow: false,
2672          modalOption: {},
2673          adding: false,
2674          currentImageIndex: 0,
2675          _navState: { variantId: null, photoIndex: 0 },
2676          currentOption: {
2677            option1: null,
2678            option2: null,
2679            option3: null
2680          },
2681          currentVariant: null,
2682          variantNotifications: null,
2683          currentVariantIndex: null,
2684          product: {},
2685          isChoose: false,
2686          isLoading: true,
2687          isEmptyClickable: liquidHelper.isEmptyClickable,
2688          quantity: 1,
2689          maxUsableBonus: 0,
2690          isDiscountPrice: false,
2691          displayProductDiscountsList: true,
2692          displayPeriodicSalesPages:false,
2693          discountsList: null,
2694          hasVideoPlugin: false,
2695          videoDisplayLocation: "before",
2696          hasStockNotificationPlugin: true,
2697          isDisplayPriceRange: null,
2698          hasVariantPriceRangePlugin: true,
2699          hasHideSingleVariantOptionsPlugin: false,
2700        }
2701      },
2702      mounted: function() {
2703        this.getProductDetail();
2704        $('.custom-scrollbar').addCustomScrollbar();
2705        themeHelper.EventBus.$on('photoOnChange', this.photoOnChange);
2706      },
2707      beforeUnmount: function() {
2708        themeHelper.EventBus.$off('photoOnChange', this.photoOnChange);
2709      },
2710      computed: {
2711        photoUrls: function() {
2712          return this.product.photoUrls.length > 0
2713            ? this.product.photoUrls
2714            : [this.featuredImage];
2715        },
2716        photoUrlsMap: function() {
2717          var map = {};
2718          var urls = this.product.photoUrls;
2719          this.product.photos.forEach(function(photo, index) {
2720            map[photo.photo.id] = urls[index];
2721          });
2722
2723          return map;
2724        },
2725        featuredImage: function() {
2726          return this.product.featuredImage;
2727        },
2728        swiperPhotos: function() {
2729          if (!this.photoUrls.length) {
2730            return [this.featuredImage];
2731          }
2732
2733          if (this.currentVariant && this.currentVariant.photos.length) {
2734            var map = this.photoUrlsMap;
2735            return this.currentVariant.photos.map(function(p) {
2736              return map[p.id];
2737            });
2738          }
2739
2740          return this.photoUrls;
2741        },
2742        productVideo: function() {
2743          return this.product.video;
2744        },
2745        videoAfterImage: function() {
2746          return this.videoDisplayLocation === 'after';
2747        },
2748        swiperItems: function() {
2749          const media = [...this.swiperPhotos];
2750          if (
2751            this.hasVideoPlugin && this.productVideo.url
2752          ) {
2753            this.videoAfterImage
2754              ? media.push(this.productVideo)
2755              : media.unshift(this.productVideo);
2756          }
2757          return media;
2758        },
2759        firstImageIndex: function() {
2760          return this.hasVideoPlugin && this.productVideo.url && !this.videoAfterImage
2761            ? 1
2762            : 0
2763        },
2764        otherDescriptions: function() {
2765          var descriptions = {};
2766          this.product.otherDescriptions.forEach(function(od) {
2767            descriptions[od.settingName] = od.bodyHtml;
2768          })
2769          return descriptions
2770        },
2771        variantOptions: function() {
2772          return themeHelper.variantOptions(this.product);
2773        },
2774        firstValidVariant: function() {
2775          var self = this;
2776          var result = this.product.variants.find(function(variant) {
2777            // 增加 product modal 聯絡店家 property
2778            variant.imgUrl = "";
2779            variant.productTitle = "";
2780
2781            return variant.available;
2782          });
2783
2784          return result
2785            ? result
2786            : null;
2787        },
2788        selectedValidVariant: function() {
2789          var self = this;
2790          var result = this.variantOptions.find(function(variant) {
2791            return variant.id === self.selectedVariantId;
2792          });
2793
2794          return result
2795            ? result
2796            : null;
2797        },
2798        totalInventoryQuantity: function(product) {
2799          return themeHelper.totalInventoryQuantity(this.product)
2800        },
2801        addCartText: function() {
2802          var variants = parseInt("0");
2803          let isRegisteredNotification = this.currentVariant && this.variantNotifications && this.variantNotifications[this.currentVariant.id]
2804          if (this.isNnCollection || this.isBundleDiscount) {
2805            if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) {
2806              if (this.currentVariant.inventoryPolicy === 'continue') {
2807                if (this.isNnCollection) {
2808                  return this.isChoose && !this.isNewNnCollection
2809                    ? '已預購'
2810                    : '預購商品';
2811                }
2812              } else {
2813                return '已售完';
2814              }
2815            }
2816            if (this.totalInventoryQuantity === 0) {
2817              return '已售完';
2818            }
2819            return this.isChoose && !this.isNewNnCollection
2820              ? '已選購'
2821              : '選購';
2822          } else {
2823            if (this.isQuickBuy) {
2824              if (this.currentVariant && !themeHelper.variantIsAvailable(this.currentVariant)) {
2825                if (this.currentVariant.inventoryPolicy === 'continue'){
2826                  return '立即預購'
2827                }
2828                return this.hasStockNotificationPlugin
2829                  ? (isRegisteredNotification
2830                    ? '已登記補貨通知'
2831                    : '已售完,貨到通知我')
2832                  : '聯絡店家'
2833              }
2834              return '立即購買';
2835            } else {
2836              if (this.currentVariant) {
2837                if (!themeHelper.variantIsAvailable(this.currentVariant)) {
2838                  if (this.currentVariant.inventoryPolicy === 'continue'){
2839                    return '預購商品'
2840                  }
2841                  return this.hasStockNotificationPlugin
2842                    ? (isRegisteredNotification
2843                      ? '已登記補貨通知'
2844                      : '已售完,貨到通知我')
2845                    : '聯絡店家'
2846                }
2847              } else {
2848                if (this.totalInventoryQuantity === 0) {
2849                  return '已售完';
2850                }
2851              }
2852              return '加入購物車';
2853            }
2854          }
2855        },
2856        cartItem: function() {
2857          if (!this.currentVariant) {
2858            return null
2859          }
2860          return {
2861            id: this.currentVariant.id,
2862            groupId: this.groupId,
2863            productId: this.product.id,
2864            title: this.product.title,
2865            photo: this.currentVariant.imgUrl || this.featuredImage.large,
2866            quantity: this.quantity,
2867            price: this.currentVariant.price,
2868            variant: this.currentVariant,
2869            product: this.product
2870          }
2871        },
2872        options: function() {
2873          return this.product.options;
2874        },
2875        optionTypes: function() {
2876
2877          // 先根據設定的variants來排序
2878          var self = this;
2879
2880          var option1 = [];
2881          var option2 = [];
2882          var option3 = [];
2883          this.product.variants.forEach(function(item) {
2884            if (item.option1 !== null) {
2885              option1.push(item.option1);
2886            }
2887            if (item.option2 !== null) {
2888              option2.push(item.option2);
2889            }
2890            if (item.option3 !== null) {
2891              option3.push(item.option3);
2892            }
2893          })
2894          var filteredOptionTypes = [];
2895          this.product.optionTypes.forEach(function(item, index) {
2896            filteredOptionTypes.push(self.getUniqueVariant(eval('option' + (
2897              index + 1
2898            ))).join(','));
2899          });
2900          return filteredOptionTypes;
2901        },
2902        optionInfo: function() {
2903          var self = this;
2904
2905          return self.options.map(function(option, index) {
2906            return {
2907              name: option,
2908              types: self.getOptions('option' + (
2909                index + 1
2910              ), self.optionTypes[index].split(','))
2911            }
2912          });
2913        },
2914        hasVariant: function() {
2915          return this.product.options.length > 0;
2916        },
2917        shouldHideSingleVariantOptions: function() {
2918          return this.hasHideSingleVariantOptionsPlugin &&
2919                 this.product.variants &&
2920                 this.product.variants.length <= 1;
2921        },
2922        variantSize: function() {
2923          if(this.product.options){
2924          return this.product.options.length;
2925          }
2926        },
2927        firstVariant: function() {
2928          return this.product.variants[0];
2929        },
2930        firstCheapestVariant: function() {
2931          return this.product.variants.find((v)=> (v.price === this.priceStats.minPrice));
2932        },
2933        priceStats: function() {
2934          return this.product.variants.reduce(function(acc, variant) {
2935            return {
2936              minPrice: variant.price < acc.minPrice ? variant.price : acc.minPrice,
2937              maxPrice: variant.price > acc.maxPrice ? variant.price : acc.maxPrice,
2938            };
2939          }, {
2940            minPrice: this.firstVariant.price,
2941            maxPrice: this.firstVariant.price,
2942          });
2943        },
2944        hidePrice: function() {
2945          return this.product && this.product.hidePrice === true;
2946        },
2947        salesModePurchasable: function() {
2948          return !(this.product && this.product.salesModePurchasable === false);
2949        },
2950         // - 任選折扣/紅配綠:「選擇」只是加進試算清單,不會直接下單,故只擋藏價商品
2951        // - 其他情境(商品頁、群組頁、多層級分類、搜尋、首頁商品區塊):不可購買(含藏價)就整組收掉
2952        showPurchaseControls: function() {
2953          if (this.isNnCollection || this.isBundleDiscount) {
2954            return !this.hidePrice;
2955          }
2956          return this.salesModePurchasable;
2957        },
2958        variantPrice: function() {
2959          if (this.hidePrice) {
2960            return '';
2961          }
2962          var from = liquidHelper.defaultCurrency;
2963          if (this.currentVariant) {
2964            return moneySymbol(this.currentVariant.price, from);
2965          }
2966          if (this.product.variants.length === 1) {
2967            return moneySymbol(this.firstVariant.price, from);
2968          }
2969
2970          var minPrice = this.priceStats.minPrice;
2971          var maxPrice = this.priceStats.maxPrice;
2972
2973          if (minPrice !== maxPrice && (!this.hasVariantPriceRangePlugin || this.isDisplayPriceRange)) {
2974            this.isDiscountPrice = false;
2975            return moneySymbol(minPrice, from) + '~' + moneySymbol(maxPrice, from);
2976          } else {
2977            return moneySymbol(minPrice, from);
2978          }
2979        },
2980        marketPrice: function() {
2981          if (this.hidePrice) {
2982            this.isDiscountPrice = false;
2983            return;
2984          }
2985          var from = liquidHelper.defaultCurrency;
2986          if (this.currentVariant) {
2987            this.isDiscountPrice = false;
2988            if (this.currentVariant.compareAtPrice && this.currentVariant.compareAtPrice > this.currentVariant.price) {
2989              this.isDiscountPrice = true;
2990              return moneySymbol(this.currentVariant.compareAtPrice, from);
2991            }
2992          } else {
2993            if (!_.includes(this.variantPrice, '~')) {
2994              const price =  Number(this.variantPrice.replace(/[^0-9.
2994-]/g, ""))
2995              // 未選擇款式也不顯示區間時,顯示第一個最便宜的款式的定價
2996              if (this.firstCheapestVariant.compareAtPrice && this.firstCheapestVariant.compareAtPrice > price){
2997                this.isDiscountPrice = true;
2998                return moneySymbol(this.firstCheapestVariant.compareAtPrice, from);
2999              }
3000              // 未選擇款式時要改回一般價格顏色
3001              this.isDiscountPrice = false;
3002            }
3003          }
3004        },
3005        isShowDropdownList: function() {
3006          if (this.product.options.length > 0) {
3007            return true;
3008          }
3009          return this.product.variants.length > 1
3010        },
3011        priceTitleTag: function() {
3012          return this.marketPrice
3013            ? getDiscountPriceName()
3014            : getDiscountPriceSuggestionName();
3015        },
3016        isHideAddCartBtn: function() {
3017          if (this.addCartText === '已售完') {
3018            return true;
3019          }
3020          return false;
3021        },
3022        isSecondaryBtn: function() {
3023          if (this.addCartText === '聯絡店家') {
3024            return true;
3025          }
3026          return false;
3027        },
3028        variantsMaxUsableBonus: function() {
3029          var variants = this.product.variants;
3030          var maxUsableBonusArray = variants.map(function(item) {
3031            return item.maxUsableBonus
3032          });
3033          return Math.max.apply(null, maxUsableBonusArray);
3034        },
3035        bonusToPrice: function() {
3036          const bonus = this.currentVariant
3037            ? this.currentVariant.maxUsableBonus
3038            : this.maxUsableBonus;
3039          const price = Math.floor(bonus / window.liquidHelper.conversionBonus);
3040          const priceWithMoney = window.themeHelper.productDisplayCurrencyBlock(price);
3041          return "(約等於 value )".replace('value', priceWithMoney);
3042        },
3043        isMobileSize: function() {
3044          return window.innerWidth <= 580
3045        },
3046        limitBuyText: function () {
3047          const minCount = this.product.minBuy;
3048          const maxCount = this.product.limitBuy;
3049          if (minCount > 0 && maxCount > 0) {
3050            return '此商品每筆訂單最少需購買 minCount 件,最多可購買 maxCount 件'.replace('minCount', minCount).replace('maxCount', maxCount);
3051          }
3052          if (minCount > 0) {
3053            return '此商品每筆訂單最少需購買 minCount 件'.replace('minCount', minCount);
3054          }
3055          if (maxCount > 0) {
3056            return '此商品每筆訂單最多可購買 maxCount 件'.replace('maxCount', maxCount);
3057          }
3058          return '';
3059        }
3060      },
3061      methods: {
3062        onClickSelectModal: function(objData, selectOptionStr) {
3063          this.isModalSelectShow = true;
3064          this.modalOption = objData;
3065          this.selectOption = selectOptionStr
3066          this.selectCurrentStr = this.currentOption && (String(this.currentOption[selectOptionStr]) || null)
3067        },
3068        onChangeModalSelect: function(flag, isSelect) {
3069          if(!isSelect){
3070            this.setOption(this.selectOption,this.selectCurrentStr,this.modalOption.types)
3071          }
3072          this.isModalSelectShow = flag;
3073        },
3074        setOption: function(optionKey, type, dataArr) {
3075          let flag = true
3076          dataArr.forEach(item => {
3077            if (item.name === type) {
3078              flag = item.isValid
3079            }
3080          })
3081          if (flag) {
3082            this.toggleCurrentOption(optionKey, type)
3083          }
3084        },
3085        addToWishListEvent: function() {
3086          try {
3087            if (appMarketAddToWishListEvent) {
3088              var product = this.product;
3089              var currentVariant = this.currentVariant
3090              var element = $(`.btn[data-id=${product.id}]`);
3091              var index;
3092              var listName;
3093              if (element) {
3094                index = element.data('position')
3095                listName = element.data('list')
3096              }
3097              // sku_properties:選中款式的 option pairs(當前語系),類型名 zip 值
3098              var optionValues = [currentVariant.option1, currentVariant.option2, currentVariant.option3];
3099              var properties = [];
3100              (product.options || []).forEach(function(optionName, i) {
3101                if (optionName && optionValues[i]) {
3102                  properties.push({ name: optionName, value: optionValues[i] });
3103                }
3104              });
3105              var dataSet = {
3106                name: product.title,
3107                category: product.productType,
3108                categories: (this.categories && this.categories.length) ? this.categories : (categoryLevels.length ? categoryLevels : (product.id === pageMainProductId ? productCategoryLevels : undefined)),
3109                sku: currentVariant.sku,
3110                price: currentVariant.price,
3111                compare_at_price: currentVariant.compareAtPrice,
3112                properties: properties,
3113                quantity: currentVariant.inventoryQuantity,
3114                variant: currentVariant.title,
3115                listName: listName || null,
3116                productId: product.id,
3117                variantId: currentVariant.id,
3118                index: Number(index) || 0,
3119              }
3120              appMarketAddToWishListEvent(dataSet)
3121            }
3122          } catch (e) {
3123            console.error(e)
3124          }
3125        },
3126        addWishList: function() {
3127          if (this.currentVariant === null) {
3128            window.msg('請選擇商品款式', 'warning').show();
3129            return;
3130          }
3131          var productVariantId = this.currentVariant.id;
3132          var addToWishListEvent = this.addToWishListEvent
3133          $.ajax({
3134            method: 'POST',
3135            url: '/tracking_items',
3136            dataType: 'json',
3137            data: {
3138              product_variant_id: productVariantId
3139            },
3140            success: function(response) {
3141              if (response.message) {
3142                window.msg(response.message, 'success').show();
3143                addToWishListEvent()
3144              }
3145
3146              if (response.error) {
3147                window.msg(response.error, 'error').show();
3148
3149              }
3150              if (response.info) {
3151                window.msg(response.info, 'info').show();
3152              }
3153              if (response.success === false) {
3154                if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) {
3155                  window.location = "/" + window.liquidHelper.language.handle + "/account/login";
3156                } else {
3157                  window.location = "/account/login";
3158                }
3159              }
3160            }
3161          });
3162        },
3163        setChoose: function(currentVariant) {
3164          this.maxUsableBonus = 0;
3165          var quantity = 1;
3166          var cartItem = null;
3167          if (!this.isNnCollection && this.cartItems) {
3168            cartItem = this.normalGetChoosenItem(currentVariant);
3169          }
3170          if (this.isNnCollection) {
3171            cartItem = this.nnCollectionGetChoosenItem(currentVariant);
3172          }
3173          this.isChoose = !! cartItem;
3174          if (this.isNewNnCollection) {
3175            return
3176          }
3177          this.quantity = cartItem
3178            ? cartItem.quantity
3179            : this.quantity;
3180
3181          // product modal 聯絡店家情境
3182          if (currentVariant) {
3183            var photoIndex = 0;
3184            if (! currentVariant.imgUrl) {
3185              currentVariant.imgUrl = this.swiperPhotos.length > 0
3186                ? (this.swiperPhotos[photoIndex] && this.swiperPhotos[photoIndex].large)
3187                : this.featuredImage.large;
3188            }
3189            currentVariant.productTitle = this.product.title + ' - ' + this.currentVariant.title;
3190          }
3191        },
3192        normalGetChoosenItem: function(currentVariant) {
3193          return this.cartItems.find(function(cartItem) {
3194            return currentVariant && cartItem.id === currentVariant.id;
3195          });
3196        },
3197        nnCollectionGetChoosenItem: function(currentVariant) {
3198          var isSelected = null;
3199          if (! currentVariant) {
3200            return isSelected;
3201          }
3202          if (this.isNewNnCollection) {
3203            var cart = store.get(`SpecialCollectionCart_${this.collectionId}`);
3204            isSelected = cart && cart.find((item) => item.variant_id == currentVariant.id) || null;
3205          } else {
3206            store.each(function(value, key) {
3207              var productId = _.includes(key, 'Pro' + currentVariant.productId);
3208              var variantID = _.includes(key, 'Var' + currentVariant.id);
3209              if (productId && variantID) {
3210                isSelected = store.get(key);
3211              }
3212            });
3213          }
3214
3215          return isSelected;
3216        },
3217        // get product detail
3218        getProductDetail: function() {
3219          var self = this;
3220
3221          $.ajax({
3222            url: self.productUrl + '.json',
3223            type: 'GET',
3224            timeout: 30000,
3225            beforeSend: function() {
3226              self.isLoading = true;
3227            },
3228            error: function(xhr) {
3229              self.closeModal();
3230              if (xhr.status === 429) {
3231                window.showAddCartRateLimitModal(5);
3232                return;
3233              }
3234              window.msg('網路連線異常,請重新整理', 'error').show();
3235            }
3236          }).done(function(data) {
3237            if (data.id) {
3238              var productData = [themeHelper.toCamelCase(data)];
3239              self.product = themeHelper.priceWithDiscount(productData, liquidHelper.hasPriceWithDiscountPlugin)[0];
3240              self.maxUsableBonus = self.variantsMaxUsableBonus;
3241              if (self.product.variants.length === 1 || liquidHelper.isFirstVariantSelected || self.selectedVariantId) {
3242                self.currentVariant = self.firstValidVariant;
3243                // 如果已經自選商品,則商品頁下滑加入購物車顯示自選商品
3244                if (self.selectedVariantId) {
3245                  self.currentVariant = self.selectedValidVariant;
3246                }
3247                if (self.currentVariant) {
3248                  self.setChoose(self.currentVariant);
3249                  self.setDefaultOption();
3250                }
3251              }
3252              if (self.displayProductDiscountsList) {
3253                self.setUpDiscountsTag(data);
3254              }
3255              self.isLoading = false;
3256              if (self.product && self.product.variants) {
3257                self.product.variants.forEach(function(discountedVariant) {
3258                  var rawVariant = data.variants.find(function(v) { return v.id === discountedVariant.id; });
3259                  if (rawVariant) { rawVariant.price = discountedVariant.price; }
3260                });
3261              }
3262              viewItem && viewItem(data, { collectionId: '', collectionName: null, categories: (self.categories && self.categories.length) ? self.categories : (categoryLevels.length ? categoryLevels : (data.id === pageMainProductId ? productCategoryLevels : undefined)) });
3263
3264              (function() {
3265                // Read login status from cacheable, skip GET /pv_notification if not login.
3266                if (window.store && window.store.get('customer')) {
3267                  var cacheableCustomer = window.store.get('customer');
3268                  if (cacheableCustomer.notLogin) {
3269                    return;
3270                  }
3271                }
3272                $.ajax({
3273                  url: '/pv_notification',
3274                  method: 'GET',
3275                  dataType: 'json',
3276                  data: {
3277                    product_id: parseInt(data.id)
3278                  },
3279                  success: function(response) {
3280                    self.variantNotifications = response.variants;
3281                  }
3282                })
3283              })();
3284            } else {
3285              window.msg('網路連線異常,請重新整理', 'error').show();
3286              self.closeModal()
3287            }
3288          })
3289        },
3290        // product image btn
3291        photoOnChange: function(photoIndex, isVariantReposition) {
3292          var visiblePhotos = (this.currentVariant && this.currentVariant.photos.length)
3293            ? this.currentVariant.photos
3294            : this.product.photos.map(function(p) { return p.photo; });
3295          var result = themeHelper.buildNavigateItemImagePayload(this._navState, {
3296            product: this.product,
3297            currentVariant: this.currentVariant,
3298            visiblePhotos: visiblePhotos,
3299            slideIndex: photoIndex,
3300            videoOffset: this.firstImageIndex,
3301          });
3302          this._navState = result.nextState;
3303          if (result.payload && !isVariantReposition) {
3304            window.navigateItemImage(result.payload);
3305          }
3306          this.currentImageIndex = photoIndex;
3307        },
3308        toggleCurrentOption: function(key, value) {
3309          this.currentOption[key] =
3310            (this.currentOption[key] === value || value === 'null') ? null : value;
3311          var variantIndex = this.getVariantIndex();
3312          if (variantIndex !== -1) {
3313            this.currentVariant = this.product.variants[variantIndex];
3314          } else {
3315            this.currentVariant = null;
3316          }
3317          this.setChoose(this.product.variants[variantIndex]);
3318          if (this.currentOption[key] !== null) {
3319            var optionIndex = parseInt(key.replace('option', '')) - 1;
3320            appStoreSelectItemEvent(this.product, this.product.options[optionIndex], this.currentOption[key], this.currentVariant);
3321          }
3322        },
3323        toggleNotification: function() {
3324          var self = this;
3325          var variantId = this.currentVariant.id;
3326
3327          $.ajax({
3328            url: '/toggle_pv_notification',
3329            method: 'POST',
3330            dataType: 'json',
3331            data: {
3332              product_variant_id: variantId
3333            },
3334            success: function(response) {
3335              self.variantNotifications[variantId] = response.notice;
3336              window.msg(response.message, "success").show();
3337            },
3338            error: function(xhr) {
3339              var response = xhr.responseJSON;
3340              var msg = response && response.error || "網路連線異常,請重新整理";
3341              window.msg(msg, "error").show();
3342            }
3343          })
3344        },
3345        getOptionImageIndex: function(index) {
3346          this.currentImageIndex = index;
3347        },
3348        quantityDecrease: function() {
3349          if (this.cartItem) {
3350            themeHelper.EventBus.$emit('quantityDecrease', this.cartItem, false);
3351            this.quantity = this.cartItem.quantity
3352          } else {
3353            window.msg("請選擇商品款式", 'warning').show();
3354          }
3355        },
3356        quantityIncrease: function() {
3357          if (this.cartItem) {
3358            themeHelper.EventBus.$emit('quantityIncrease', this.cartItem, false);
3359            this.quantity = this.cartItem.quantity
3360          } else {
3361            window.msg("請選擇商品款式", 'warning').show();
3362          }
3363        },
3364        quantityChange: function(el) {
3365          if (this.cartItem) {
3366            themeHelper.EventBus.$emit('quantityChange', parseInt(el.target.value), this.cartItem, false);
3367            this.quantity = this.cartItem.quantity;
3368            el.target.value = this.cartItem.quantity;
3369          } else {
3370            window.msg("請選擇商品款式", 'warning').show();
3371          }
3372        },
3373        addProduct: function() {
3374          if (this.addCartText === '聯絡店家') {
3375            $('#messagebuy-Modal').data('variant', this.currentVariant);
3376            $('#messagebuy-Modal').modal('show');
3377            $('#messagebuy-Modal').css("background-color", "rgba(0, 0, 0, .6)");
3378          } else if (
3379            this.addCartText === '已登記補貨通知' ||
3380            this.addCartText === '已售完,貨到通知我'
3381          ) {
3382              this.toggleNotification();
3383          } else {
3384            if (this.cartItem) {
3385              try {
3386                if (this.isChoose) {
3387                  themeHelper.EventBus.$emit('updateStore', 'update', this.cartItem, this.callBack)
3388                } else {
3389                  themeHelper.EventBus.$emit('updateStore', 'add', this.cartItem, this.callBack)
3390                }
3391
3392                this.adding = true;
3393                this.closeModal();
3394              } catch (e) {
3395                window.msg("商品款式異常", 'error').show();
3396              }
3397            } else {
3398              window.msg("請選擇商品款式", 'warning').show();
3399            }
3400          }
3401        },
3402        closeModal: function() {
3403          themeHelper.EventBus.$emit('closeProductModal');
3404        },
3405        setDefaultOption: function() {
3406          var self = this;
3407          Object.keys(self.currentOption).map(function(optionKey) {
3408            self.currentOption[optionKey] = self.currentVariant[optionKey];
3409          });
3410        },
3411        getVariantIndex: function() {
3412          var self = this;
3413          return self.product.variants.findIndex(function(variant, index) {
3414            var isVariant = true;
3415            Object.keys(self.currentOption).forEach(function(option) {
3416              if (variant[option] !== self.currentOption[option]) {
3417                isVariant = false;
3418              }
3419            });
3420            return isVariant;
3421          });
3422        },
3423
3424        // 篩選重複品項
3425        getUniqueVariant: function(variants) {
3426          return variants.filter(function(value, index, self) {
3427            return self.indexOf(value) === index;
3428          });
3429        },
3430        groupBy(xs, key) {
3431          return xs.reduce(function(rv, x) {
3432            (rv[x[key]] = rv[x[key]] || []).push(x);
3433            return rv;
3434          }, {});
3435        },
3436        setUpDiscountsTag(data) {
3437          var self = this;
3438          var languagePrefix = '/' + ((window.shopScriptHelper && window.shopScriptHelper.i18nLocale) || 'zh-TW');
3439          $.ajax({
3440            url: languagePrefix + self.productUrl + '/discounts_list',
3441            method: 'GET',
3442            success: function(result) {
3443              if (result.length > 0) {
3444                var discounts_list = self.groupBy(result, 'campaign_type');
3445                self.discountsList = discounts_list;
3446              } else {
3447                self.discountsList = null;
3448              }
3449            }
3450          });
3451        },
3452        getOptions: function(optionKey, optionTypes) {
3453          var self = this;
3454          return optionTypes.map(function(optionType, index) {
3455            var isValid = true;
3456
3457            // 選出包含目前type的variant
3458            var matchVariants = self.product.variants.filter(function(variant) {
3459              return variant[optionKey] === optionType;
3460            });
3461
3462            // 篩選已勾選type
3463            Object.keys(self.currentOption).forEach(function(currentOptionKey) {
3464              if (currentOptionKey !== optionKey) {
3465                matchVariants = matchVariants.filter(function(variant) {
3466                  if (self.currentOption[currentOptionKey]) {
3467                    return variant[currentOptionKey] === self.currentOption[currentOptionKey]
3468                  } else {
3469                    return true;
3470                  }
3471                });
3472              }
3473            });
3474            if (matchVariants.length === 0) {
3475              isValid = false;
3476            }
3477            if (! self.isEmptyClickable) {
3478              isValid = false;
3479              matchVariants.find(function(item) {
3480                if (item.inventoryQuantity === null || item.inventoryQuantity > 0 || item.inventoryPolicy === 'continue') {
3481                  isValid = true;
3482                }
3483              });
3484            }
3485            return {name: optionType, isValid: isValid}
3486          });
3487        }
3488      }
3489    };
3490  });
3491</script>
3491
3492
3493<!-- cyb_snippet _product_modal_js end -->
3494
3495<!-- cyb_snippet components/product_modal/product_modal end -->
3496
3497<!-- cyb_snippet messagebuy_modal start -->
3498
3499
3500<!-- cyb_snippet messagebuy_modal end -->
3501<!-- cyb_snippet components/rate_limit_modal start -->
3502<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/rate_limit_modal-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
3503
3504<div class="modal fade" id="rate-limit-modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
3505  <div class="modal-dialog modal-dialog-centered" role="document">
3506    <div class="modal-content">
3507      <div class="modal-body">
3508        <div class="qk-text--default_dark rate-limit-text">
3509          <p id="rate-limit-title">目前搶購人潮眾多,請耐心等候</p>
3510          <p class="qk-fs--body qk-fw--500 rate-limit-message">
3511            <span class="qk-text--error" id="rate-limit-countdown"></span>
3512            <span id="rate-limit-desc"></span>
3513          </p>
3514          <p class="qk-fs--body qk-fw--500 rate-limit-message" id="rate-limit-warn">若離開此頁面,可能會延長等待時間。</p>
3515        </div>
3516        <button id="rate-limit-btn" class="btn qk-btn qk-btn--primary" disabled>重新進入商品頁</button>
3517      </div>
3518    </div>
3519  </div>
3520</div>
3521
3522<script>
3523  window.showRateLimitModal = function(countdownSec) {
3524    var countdown = countdownSec || 5;
3525    var $modal = $('#rate-limit-modal');
3526    var $btn = $modal.find('#rate-limit-btn');
3527    var $countdownEl = $modal.find('#rate-limit-countdown');
3528
3529    $btn.show();
3530    $modal.find('#rate-limit-desc').text(language["product_rate_limit_desc"]);
3531    $countdownEl.text(countdown);
3532    $btn.prop('disabled', true);
3533    $modal.modal('show');
3534
3535    var timer = setInterval(function() {
3536      countdown--;
3537      $countdownEl.text(countdown);
3538      if (countdown <= 0) {
3539        clearInterval(timer);
3540        $btn.prop('disabled', false);
3541      }
3542    }, 1000);
3543
3544    $btn.off('click').on('click', function() {
3545      location.reload();
3546    });
3547  }
3548
3549  window.showAddCartRateLimitModal = function(countdownSec) {
3550    var countdown = countdownSec || 5;
3551    var $modal = $('#rate-limit-modal');
3552    var $countdownEl = $modal.find('#rate-limit-countdown');
3553
3554    $modal.find('#rate-limit-btn').hide();
3555    $modal.find('#rate-limit-desc').text(language["addcart_rate_limit_desc"]);
3556    $countdownEl.text(countdown);
3557    $modal.modal('show');
3558
3559    var timer = setInterval(function() {
3560      countdown--;
3561      $countdownEl.text(countdown);
3562      if (countdown <= 0) {
3563        clearInterval(timer);
3564        $modal.modal('hide');
3565      }
3566    }, 1000);
3567  }
3568</script>
3568
3569
3570<!-- cyb_snippet components/rate_limit_modal end -->
3571
3572<script>
3573  $(document).ready(function() {
3574    const shouldSkipQuantityCheck = false;
3575    const newAddCartModalApp = new window.themeHelper.LiquidVueHandler({
3576      componentNames: Object.keys(window.themeHelper.productModalComponents),
3577      mountSelector: '#new-addcart-modal',
3578      autoMount: false,
3579    });
3580
3581    newAddCartModalApp.createApp({
3582      el: '#new-addcart-modal',
3583      delimiters: ['${', '}'],
3584      data() {
3585        return {
3586          collectionId: 0,
3587          categories: [],
3588          color: '', // unused
3589          isCollection: true,
3590          productQuantity: 0,
3591          onlyDescription: false,
3592          showProductModal: false,
3593          popProductUrl: '',
3594          loading: false,
3595        };
3596      },
3597      mounted: function() {
3598        themeHelper.EventBus.$on('closeProductModal',this.closeProductModal);
3599        themeHelper.EventBus.$on('updateStore', this.addProduct);
3600        themeHelper.EventBus.$on('quantityDecrease', this.quantityDecrease);
3601        themeHelper.EventBus.$on('quantityIncrease', this.quantityIncrease);
3602        themeHelper.EventBus.$on('quantityChange', this.quantityChange);
3603      },
3604      methods: {
3605        addProduct: function(actionType, productData, checkoutAddToCartCallback){
3606          var self = this;
3607          var pageViewId = window.CYBERBIZ && window.CYBERBIZ.dis && window.CYBERBIZ.dis.pageViewId;
3608          $.ajax({
3609            method: 'POST',
3610            url: '/cart/add',
3611            headers: pageViewId ? { 'X-Cyb-Page-View-Id': pageViewId } : {},
3612            data: {
3613              id: productData.id,
3614              quantity: productData.quantity,
3615            },
3616            dataType: 'json',
3617            beforeSend: function() {
3618              self.loading = true;
3619              themeHelper.ajaxLoadingMsg('loading');
3620              $('.shopcart').dropdown('hide')
3621              $('.global-cart-count').hide();
3622              $('.global-cart-loading').show();
3623              $('.global-cart-loading').html('<i class="fa fa-spinner fa-pulse" style="vertical-align: middle;"></i>');
3624            },
3625            error: function(xhr) {
3626              $('.global-cart-loading').hide();
3627              $('.global-cart-count').show();
3628              self.loading = false;
3629              if (xhr.status === 429) {
3630                themeHelper.ajaxLoadingMsg('hide', 0);
3631                self.closeProductModal();
3632                window.showAddCartRateLimitModal(5);
3633                return;
3634              }
3635              themeHelper.ajaxLoadingMsg('fail', 2000);
3636            }
3637          }).done(function(data, status, request){
3638            // product modal 立即購買按鈕
3639            window.sendAddToCartEvent && sendAddToCartEvent({
3640              price: productData.price,
3641              quantity: productData.quantity,
3642              id: productData.product.id,
3643              name: productData.product.title,
3644              category: productData.product.productType,
3645              brand: productData.product.vendor,
3646              qc: productData.variant.qc,
3647              variant: {
3648                id: productData.variant.id,
3649                title: productData.variant.title,
3650                sku: productData.variant.sku,
3651                price: productData.variant.price,
3652                qc: productData.variant.qc,
3653              },
3654              position: "商品彈出視窗",
3655              request,
3656            })
3657            if (self.isQuickBuy) {
3658              if (window.liquidHelper && window.liquidHelper.language && window.liquidHelper.language.handle) {
3659                window.location = "/" + window.liquidHelper.language.handle + "/cart";
3660              } else {
3661                window.location = "/cart";
3662              }
3663            } else {
3664              themeHelper.ajaxLoadingMsg('success');
3665              pullNavCart();
3666              $('.shopcart').dropdown('show')
3667              $('.global-cart-loading').hide();
3668              self.loading = false;
3669            }
3670            if(typeof checkoutAddToCartCallback === 'function'){
3671              var callbackData = {
3672                id: productData.id,
3673                quantity: productData.quantity,
3674                title: productData.product ? productData.product.title : productData.title || ''
3675              };
3676              checkoutAddToCartCallback(callbackData)
3677            }
3678            peh.emit('product:add_to_cart', [{
3679              variantId: productData.id,
3680              quantity: productData.quantity
3681            }], self.collectionId);
3682          }).fail(function(e){
3683            if (e.status === 429) {
3684              return;
3685            }
3686            let err_msg = e.responseJSON.err_msg;
3687            err_msg && err_msg.length > 0 ?
3688              window.msg(e.responseJSON.err_msg, 'warning').show():
3689              window.msg("加入購物車有誤,請重新嘗試", 'warning').show();
3690          })
3691        },
3692        quantityDecrease: function(cartItem, isAdded){
3693          if (cartItem.quantity > 1) {
3694            cartItem.quantity -= 1;
3695          } else {
3696            window.msg("數量不得為低於 1", 'warning').show();
3697          }
3698        },
3699        quantityIncrease: function(cartItem, isAdded){
3700          const limitQuantity = cartItem.variant.inventoryQuantity;
3701          const limitBuy = cartItem.product.limitBuy
3702          if (limitBuy && cartItem.quantity >= limitBuy) {
3703            product_limit_buy = "此商品限購 limitBuy 件".replace('limitBuy', limitBuy)
3704            window.msg(product_limit_buy, 'warning').show();
3705            return;
3706          } else if (cartItem.quantity >= liquidHelper.cartQuantityLimit) {
3707            window.msg("數量超過購買上限", 'warning').show();
3708          } else if ( cartItem.quantity < limitQuantity || limitQuantity === null ||
3709            cartItem.variant.inventoryPolicy == "continue" || shouldSkipQuantityCheck) {
3710            cartItem.quantity += 1;
3711          } else {
3712            this.showInventoryMessage(limitQuantity);
3713          }
3714        },
3715        quantityChange: function(quantity, cartItem, isAdded){
3716          const limitBuy = cartItem.product.limitBuy
3717          var limitQuantity = cartItem.variant.inventoryQuantity;
3718          var inventoryPolicy = cartItem.variant.inventoryPolicy;
3719          if (Number.isInteger(quantity)) {
3720            if (quantity >= 1) {
3721              if (limitBuy && quantity >= limitBuy) {
3722                product_limit_buy = "此商品限購 limitBuy 件".replace('limitBuy', limitBuy)
3723                window.msg(product_limit_buy, 'warning').show();
3724              } else if (quantity > liquidHelper.cartQuantityLimit) {
3725                window.msg("數量超過購買上限", 'warning').show();
3726              } else if (quantity <= limitQuantity || limitQuantity === null || inventoryPolicy == "continue" || shouldSkipQuantityCheck) {
3727                cartItem.quantity = quantity;
3728              } else {
3729                cartItem.quantity = limitQuantity;
3730                this.showInventoryMessage(limitQuantity);
3731              }
3732            } else {
3733              window.msg("數量不得為低於 1", 'warning').show();
3734            }
3735          } else {
3736            window.msg("數量輸入錯誤", 'warning').show();
3737          }
3738        },
3739        popModal: function(productUrl, collectionId, color, isCollection, isShowDescription, isQuickBuy, variantId, checkoutAddToCartCallback, categories){
3740          this.showProductModal = true;
3741          this.collectionId = collectionId;
3742          this.categories = categories || [];
3743          this.popProductUrl = productUrl;
3744          this.color = color || ''; // unused
3745          this.isCollection = isCollection || false;
3746          this.isShowDescription = isShowDescription != false;
3747          this.isQuickBuy = isQuickBuy || false;
3748          this.selectedVariantId = parseInt(variantId) || undefined;
3749          this.checkoutAddToCartCallback = checkoutAddToCartCallback;
3750          document.body.style.overflow = "hidden";
3751        },
3752        closeProductModal: function() {
3753          this.showProductModal = false;
3754          document.body.style.overflow = "";
3755        },
3756        showInventoryMessage: function(inventoryQuantity) {
3757          const stockMessage = "商品庫存剩餘 count 件".replace('count', inventoryQuantity || 0);
3758          window.msg(stockMessage, 'warning').show();
3759        },
3760      }
3761    });
3762
3763    for (const componentName in window.themeHelper.productModalComponents) {
3764      newAddCartModalApp.component(
3765        componentName,
3766        window.themeHelper.productModalComponents[componentName],
3767      );
3768    }
3769
3770    window.new_addcart_modal = newAddCartModalApp.mount();
3771  });
3772</script>
3772
3773
3774<!-- cyb_snippet new_addcart_modal end -->
3775<!-- cyb_snippet components/variant_options/variant_photos_block start -->
3776<script type="text/x-template" id="variant-photos-block">
3777  <div class="product_photos qk-w--100">
3778    <!-- 有色票 -->
3779    <div class="product_photo img-flex qk-text--center" v-if="displayProductImagesColor">
3780      <img id="photo_with_images_color" class="img-lazy" :src="imgLoadingImage" data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=f05a30c3e658b150" alt="成功 S5190扶手型臀腿踏步機" width="450" height="450">
3781    </div>
3782    <!-- 沒色票 -->
3783    <div class="swiper swiper-container product_img_swiper" v-else>
3784      <ul class="swiper-wrapper qk-pd--0 qk-mg--0">
3785        <video-display
3786          v-if="shouldShowVideo && !videoAfterImage"
3787          :poster="!!showPhotos.length ? showPhotos[0].imageUrl : imgLoadingImage"
3788          :videoUrl="videoUrl"
3789        ></video-display>
3790        <li class="swiper-slide product_photo img-flex qk-text--center qk-of--hidden three_to_four_scale"
3791          v-for="photo in showPhotos"
3792          :key="photo.id"
3793        >
3794          <img
3795            :data-src="photo.imageUrl"
3796            width="450"
3797            height="450"
3798            class="swiper-lazy"
3799            alt="成功 S5190扶手型臀腿踏步機"
3800            @click="onEnlargePhotos()"
3801          />
3802          <div class="swiper-lazy-preloader"></div>
3803        </li>
3804        <li v-if="showDefault" class="swiper-slide product_photo img-flex qk-text--center qk-of--hidden three_to_four_scale">
3805          <img :src="imgLoadingImage" data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=f05a30c3e658b150" alt="成功 S5190扶手型臀腿踏步機" width="450" height="450" class="swiper-lazy">
3806        </li>
3807        <video-display
3808          v-if="shouldShowVideo && videoAfterImage"
3809          :poster="!!showPhotos.length ? showPhotos[0].imageUrl : imgLoadingImage"
3810          :videoUrl="videoUrl"
3811        ></video-display>
3812      </ul>
3813      <!-- Add Arrows -->
3814      <div class="photo-swiper-next qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v1 qk-swiper_btn--next qk-hidden--mobile"></div>
3815      <div class="photo-swiper-prev qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v1 qk-swiper_btn--prev qk-hidden--mobile"></div>
3816      <div class="photo-pagination qk-bd--default qk-bd--body qk-text--center qk-text--body qk-fs--breadcrumb qk-visible-sm">
3817        <span class="current-index qk-text--default_dark">${activePhotoIndex + 1}</span><span class="pagination-slash">/</span>
3818        <span>${shouldShowVideo ? (showPhotos.length ? showPhotos.length + 1 : 2) : showPhotos.length || 1}</span>
3819      </div>
3820    </div>
3821    <!-- 圖片頁碼 -->
3822    <div v-if="showThumbnails" class="thumb qk-of--auto qk-hidden--phone">
3823      <ul class="thumb-container qk-display--il_flex">
3824        <video-thumbnail
3825          v-if="shouldShowVideo && !videoAfterImage"
3826          :active="isVideoActive"
3827          :video-url="videoUrl"
3828          @click="onClickThumbnail(videoIndex)"
3829        ></video-thumbnail>
3830        <li class="img-flex qk-bd--default qk-bd--border qk-cursor--pointer qk-of--hidden qk-display--il_flex"
3831          :class="{active: (shouldShowVideo && !videoAfterImage ? index + 1 : index) === activePhotoIndex}"
3832          v-for="(photo, index) in showPhotos"
3833          :key="photo.id"
3834          @click="onClickThumbnail(shouldShowVideo && !videoAfterImage ? index + 1 : index)"
3835        >
3836          <img class="img-lazy" :src="imgLoadingImage" :data-src="photo.imageUrl" alt="成功 S5190扶手型臀腿踏步機" width="50" height="50">
3837        </li>
3838        <li v-if="showDefault"
3839          class="img-flex qk-bd--default qk-bd--border qk-of--hidden qk-display--il_flex"
3840          :class="{active: (shouldShowVideo && !videoAfterImage ? 1 : 0) === activePhotoIndex}"
3841        >
3842          <img class="img-lazy" :src="imgLoadingImage" data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzkwLzE2NjEzMTM2MTdfNWE5MjBiYjM1NGFlYWQ5ODIyNTMuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=f05a30c3e658b150" alt="成功 S5190扶手型臀腿踏步機" width="50" height="50">
3843        </li>
3844        <video-thumbnail
3845          v-if="shouldShowVideo && videoAfterImage"
3846          :active="isVideoActive"
3847          :video-url="videoUrl"
3848          @click="onClickThumbnail(videoIndex)"
3849        ></video-thumbnail>
3850      </ul>
3851    </div>
3852  </div>
3853</script>
3853
3854
3855<script type="text/javascript">
3856  $(document).ready(function() {
3857    var autoSelectVariantBySku = false;
3858
3859    themeHelper.variantPhotosBlock.component('variant-photos-block', {
3860      template: '#variant-photos-block',
3861      delimiters: ['${', '}'],
3862      data: function() {
3863        return {
3864          variantPhotos: null,
3865          productPhotosMap: {},
3866          productPhotos: [],
3867          manualSelectedVariant: false,
3868          activePhotoIndex: 0,
3869          _navState: { variantId: null, photoIndex: 0 },
3870          suppressNavigateEvent: false,
3871          currentVariantForEvent: null,
3872          swiperPhotos: null,
3873          swiperGalleryChangeHandler: null,
3874          showDefault: true,
3875          videoUrl: '',
3876          videoAfterImage: false,
3877          imgLoadingImage:"//cdn1-next.cybassets.com/img_loading.svg",
3878          thumbScrollHandler: null,
3879          thumbScrollTimeout: null,
3880          showThumbnails: false,
3881        }
3882      },
3883      props: {
3884        displayProductImagesColor: Boolean,
3885        productPhotosJson: String,
3886        productVideo: Object,
3887        videoDisplayLocation: String,
3888        productId: [String, Number],
3889        productTitle: String,
3890      },
3891      mounted: async function() {
3892        this.productPhotos = JSON.parse(this.productPhotosJson.replace(/'/g, '"'));
3893        this.productPhotosMap =
3894          this.productPhotos.reduce((acc, cur) => {
3895            acc[cur.id] = cur;
3896            return acc;
3897          }, {});
3898        this.videoUrl = !!this.productVideo && this.productVideo.url;
3899        this.showDefault = !this.showPhotos.length;
3900        this.videoAfterImage = this.videoDisplayLocation === 'after';
3901        themeHelper.EventBus.$on('updatePhotos', this.onUpdatePhotos);
3902        this.swiperGalleryChangeHandler = (_event, payload) => this.onSwiperGalleryChange(payload);
3903        $(document).on('swiper-gallery-change', this.swiperGalleryChangeHandler);
3904
3905        var sku = window.getURLParameter('sku');
3906
3907        if (sku && autoSelectVariantBySku) {
3908          themeHelper.EventBus.$on('skuReady', this.onSkuReady);
3909        } else {
3910          this.showThumbnails = true;
3911          await this.initPhotosUI();
3912        }
3913      },
3914      beforeUnmount: function() {
3915        this.removeThumbScrollListener();
3916        if (this.swiperGalleryChangeHandler) {
3917          $(document).off('swiper-gallery-change', this.swiperGalleryChangeHandler);
3918        }
3919      },
3920      methods: {
3921        navigateItemImagePayload: function(state, slideIndex, videoOffset) {
3922          return themeHelper.buildNavigateItemImagePayload(state, {
3923            product: { id: this.productId, title: this.productTitle },
3924            currentVariant: this.currentVariantForEvent,
3925            visiblePhotos: this.showPhotos,
3926            slideIndex: slideIndex,
3927            videoOffset: videoOffset,
3928          });
3929        },
3930        initPhotosUI: async function() {
3931          await this.$nextTick();
3932          this.initSwiper();
3933
3934          this._navState = this.navigateItemImagePayload(this._navState, this.initialItemIndex, this.videoOffset).nextState;
3935
3936          // 初始化縮圖滾動監聽
3937          this.initThumbScrollListener();
3938
3939          const videoElement = $('.product_video.swiper-slide-active video')[0];
3940          if (videoElement) {
3941            videoElement.addEventListener('canplay', (event) => {
3942              this.sendGtag('play');
3943            }, { once: true });
3944          }
3945        },
3946        onSkuReady: async function() {
3947          await this.initPhotosUI();
3948          this.showThumbnails = true;
3949          await this.$nextTick();
3950          imgLazyLoad.update();
3951          themeHelper.EventBus.$emit('skuPhotosReady');
3952        },
3953        initThumbScrollListener: function() {
3954          const thumbScrollContainer = this.$el.querySelector('.thumb');
3955
3956          if (thumbScrollContainer) {
3957            this.removeThumbScrollListener();
3958            this.thumbScrollHandler = () => {
3959              clearTimeout(this.thumbScrollTimeout);
3960              this.thumbScrollTimeout = setTimeout(() => {
3961                if (window.imgLazyLoad) {
3962                  imgLazyLoad.update();
3963                }
3964              }, 100);
3965            };
3966            thumbScrollContainer.addEventListener('scroll', this.thumbScrollHandler);
3967          }
3968        },
3969        removeThumbScrollListener: function() {
3970          const thumbScrollContainer = this.$el.querySelector('.thumb');
3971
3972          if (thumbScrollContainer && this.thumbScrollHandler) {
3973            thumbScrollContainer.removeEventListener('scroll', this.thumbScrollHandler);
3974            clearTimeout(this.thumbScrollTimeout);
3975            this.thumbScrollHandler = null;
3976          }
3977        },
3978        sendGtag: function(action){
3979          window.productVideoView && productVideoView(action);
3980        },
3981        handleVideoClick: function() {
3982          const video = $('.product_video.swiper-slide-active video')[0];
3983          const button = $('.product_video.swiper-slide-active button');
3984          if (video.paused){
3985            video.play();
3986            this.sendGtag('play');
3987          } else {
3988            video.pause();
3989            this.sendGtag('paused');
3990          }
3991          this.handleVideoButtonDisplay(button, video);
3992        },
3993        handleVideoButtonDisplay: function(button, video) {
3994          button.toggleClass('videoPlayer__playButton', video.paused);
3995          button.toggleClass('videoPlayer__pauseButton', !video.paused);
3996        },
3997        onUpdatePhotos: async function(currentVariant) {
3998          this.suppressNavigateEvent = true;
3999          this.currentVariantForEvent = currentVariant && currentVariant.variant
4000            ? { id: currentVariant.variant.id, sku: currentVariant.variant.sku }
4001            : null;
4002          if (this.swiperPhotos) {
4003            this.swiperPhotos.destroy(true, true);
4004          }
4005          $('.product_img_swiper .swiper-slide-duplicate').remove();
4006          $('.product_img_swiper .swiper-lazy-loading').removeClass('swiper-lazy-loading');
4007          this.manualSelectedVariant = currentVariant ? currentVariant.withSpecificVariant : false;
4008          if (currentVariant && currentVariant.photos.length) {
4009            this.variantPhotos = currentVariant.photos.map(p => this.productPhotosMap[p.id]);
4010          } else  {
4011            this.variantPhotos = null;
4012          }
4013
4014          this.activePhotoIndex = this.initialItemIndex;
4015
4016          this._navState = this.navigateItemImagePayload(this._navState, this.activePhotoIndex, this.videoOffset).nextState;
4017          await this.$nextTick();
4018          imgLazyLoad.update();
4019          this.initSwiper();
4020          this.suppressNavigateEvent = false;
4021        },
4022        onEnlargePhotos: function() {
4023          gallery_img.updateImgs(this.maxPhotos);
4024          gallery_img.toggleGallery(true, {
4025            index: this.swiperPhotos.realIndex - this.videoOffset
4026          });
4027        },
4028        onSwiperGalleryChange: function(payload) {
4029          if (!payload || payload.galleryName !== 'img') return;
4030
4031          var result = this.navigateItemImagePayload(
4032            {
4033              variantId: this.currentVariantForEvent ? this.currentVariantForEvent.id : null,
4034              photoIndex: payload.fromIndex,
4035            },
4036            payload.toIndex,
4037            0
4038          );
4039
4040          if (result.payload && !this.suppressNavigateEvent) {
4041            window.navigateItemImage(result.payload);
4042          }
4043        },
4044        onClickThumbnail: function(index) {
4045          this.activePhotoIndex = index;
4046          this.swiperPhotos.slideTo(index + 1, 500);
4047        },
4048        setVideosVolumeZero: function() {
4049          // video duplication because of swiper loop mode
4050          const videos = $('.product_video video');
4051          videos.each((_index, el)=> {
4052              el.volume = 0;
4053          });
4054        },
4055        initSwiper: function() {
4056          var self = this;
4057          this.swiperPhotos = new Swiper('.product_img_swiper', {
4058            preloadImages: false,
4059            lazy: {
4060              loadPrevNext: true,
4061            },
4062            loop: true,
4063            navigation: {
4064              nextEl: '.photo-swiper-next',
4065              prevEl: '.photo-swiper-prev',
4066            },
4067            initialSlide: this.initialItemIndex,
4068          });
4069          if (self.videoUrl) {
4070            self.setVideosVolumeZero();
4071          }
4072          this.swiperPhotos.on('touchEnd', function () {
4073            setTimeout(function() {
4074              self.activePhotoIndex = self.swiperPhotos.realIndex;
4075            }, 300);
4076          });
4077          this.swiperPhotos.on('activeIndexChange', function() {
4078            self.activePhotoIndex = self.swiperPhotos.realIndex;
4079          });
4080          this.swiperPhotos.on('click', function () {
4081            if (self.isVideoActive) {
4082              self.handleVideoClick()
4083            }
4084          });
4085          this.swiperPhotos.on('transitionEnd', function () {
4086            if (self.isVideoActive) {
4087              const video = $('.product_video.swiper-slide-active video')[0];
4088              const button = $('.product_video.swiper-slide-active button');
4089              self.handleVideoButtonDisplay(button, video);
4090            }
4091          });
4092        }
4093      },
4094      computed: {
4095        shouldShowVideo: function() {
4096          return !!this.videoUrl;
4097        },
4098        initialItemIndex: function() {
4099          if (this.shouldShowVideo && !this.videoAfterImage) {
4100            // Focus on photo if "variant with photos" selected, video otherwise
4101            return (this.manualSelectedVariant && !!this.variantPhotos?.length) ? 1 : 0;
4102          } else {
4103            // Focus on first photo
4104            return 0;
4105          }
4106        },
4107        isVideoActive: function() {
4108          return this.shouldShowVideo && this.activePhotoIndex === this.videoIndex;
4109        },
4110        showPhotos: function() {
4111          return this.variantPhotos || this.productPhotos;
4112        },
4113        maxPhotos: function() {
4114          return this.showPhotos.map(p => p.imageMaxUrl);
4115        },
4116        videoIndex: function(){
4117          return this.videoAfterImage
4118            ? this.manualSelectedVariant && !!this.variantPhotos?.length
4119              ? this.variantPhotos?.length
4120              : this.showPhotos.length || 1
4121            : 0
4122        },
4123        videoOffset: function() {
4124          return (this.shouldShowVideo && !this.videoAfterImage) ? 1 : 0;
4125        },
4126      },
4127      watch: {
4128        activePhotoIndex: function(newIndex) {
4129          var result = this.navigateItemImagePayload(this._navState, newIndex, this.videoOffset);
4130          this._navState = result.nextState;
4131          if (result.payload && !this.suppressNavigateEvent) {
4132            window.navigateItemImage(result.payload);
4133          }
4134        },
4135      }
4136    });
4137  })
4138</script>
4138
4139
4140<!-- cyb_snippet components/variant_options/video_display start -->
4141<script type="text/x-template" id="video-display">
4142  <li
4143    class="swiper-slide product_video img-flex qk-text--center qk-of--hidden three_to_four_scale">
4144    <div class="videoPlayer__wrapper qk-of--hidden">
4145      <video
4146        class="videoPlayer__video qk-cursor--pointer"
4147        :poster="poster"
4148        loop defaultMuted muted playsinline webkit-playsinline autoplay
4149      >
4150        <source :src="videoUrl" type="video/mp4">
4151        <p>你的瀏覽器不支援 HTML 5 video</p>
4152      </video>
4153      <button class="videoPlayer__pauseButton"></button>
4154    </div>
4155  </li>
4156</script>
4156
4157
4158<script type="text/javascript">
4159  $(document).ready(function() {
4160    themeHelper.variantPhotosBlock.component('video-display', {
4161      template: '#video-display',
4162      delimiters: ['${', '}'],
4163      data: function() {
4164        return {
4165          imgLoadingImage:"//cdn1-next.cybassets.com/img_loading.svg",
4166        }
4167      },
4168      props: {
4169        poster: String,
4170        showPhotos: Object,
4171        videoUrl: String,
4172      },
4173    });
4174  })
4175</script>
4175
4176
4177<!-- cyb_snippet components/variant_options/video_display end -->
4178<!-- cyb_snippet components/variant_options/video_thumbnail start -->
4179<script type="text/x-template" id="video-thumbnail">
4180  <li
4181    :class="{active}"
4182    class="img-flex qk-bd--default qk-bd--border qk-cursor--pointer qk-of--hidden qk-display--il_flex"
4183    @click="click"
4184  >
4185    <video width="50" height="50">
4186      <source :src="videoUrl" type="video/mp4">
4187    </video>
4188    <button class="videoPlayer__playButton"></button>
4189  </li>
4190</script>
4190
4191
4192<script type="text/javascript">
4193  $(document).ready(function() {
4194    themeHelper.variantPhotosBlock.component('video-thumbnail', {
4195      template: '#video-thumbnail',
4196      delimiters: ['${', '}'],
4197      props: {
4198        active: Boolean,
4199        click: Function,
4200        videoUrl: String,
4201      },
4202    });
4203  })
4204</script>
4204
4205
4206<!-- cyb_snippet components/variant_options/video_thumbnail end -->
4207
4208<!-- cyb_snippet components/variant_options/variant_photos_block end -->
4209<!-- cyb_snippet components/variant_options/variant_options_block start -->
4210<script type="text/x-template" id="variant-options-block">
4211  <div>
4212    <div v-for="(option, index) in optionInfo" class="product-variant-option" :class="{'product-variant-option--hidden': shouldHideSingleVariantOptions}">
4213        <p></p>
4214        <color-option
4215          v-if="isImageColor && option.name === '顏色'"
4216          :option-key="'option' + (index + 1)"
4217          :option="option"
4218          :image-colors="imageColors"
4219          :current-image-index="currentImageIndex"
4220          :set-current-image-index="setCurrentImageIndex"
4221          :get-option-image-index="getOptionImageIndex"
4222          :current-option="currentOption"
4223        />
4224        <div class="advance variant-select-option" v-else-if="styledShopMenu==='dropDownType'">
4225          
4226          <label>${option.name}</label>
4227          <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>
4228          <select v-show="!isMobileSize" class="qk-bg--theme_bg" :class="{'select_placeholder-color': currentOption[`option${index + 1}`] === null}" :value="String(currentOption[`option${index + 1}`])" @change="setOption(`option${index + 1}`, $event.target.value, option.types )" >
4229            <option value="null" class="select_option-hidden">請選擇${option.name}</option>
4230            <option  v-for="(types) in option.types" :disabled="!types.isValid" :value="types.name">${types.name}</option>
4231          </select>
4232          <span class="select_placeholder-color" v-if="currentOption[`option${index + 1}`] === null" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)">請選擇${option.name}</span>
4233          <span v-else :value="currentOption[`option${index + 1}`]" v-show="isMobileSize" @click="onClickSelectModal(option,`option${index + 1}`)" v-html="currentOption[`option${index + 1}`]"></span>
4234        </div>
4235        <advance-variant-option
4236          v-else
4237          :option-key="'option' + (index + 1)"
4238          :option="option"
4239          :current-option="currentOption"
4240        />
4241      </div>
4242    <div class="mobile-modal" :class="{ 'modal-open': isModalSelectShow && isMobileSize }">
4243        <div class="mobile_modal-content">
4244          
4245          <div class="modal_close-button">
4246            <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>
4247          </div>
4248          <p>請選擇${modalOption.name}</p>
4249          <div class="modal_select-templete qk-display--flex qk-of_y--auto qk-w--100">
4250            <div class="options-container">
4251              <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>
4252            </div>
4253          </div>
4254          <div v-if="isCartEnabled && salesModePurchasable" class="modal_select_footer qk-display--flex qk-hidden--pc">
4255            <div v-show="variantSize === 1" class="qk-display--flex qk-w--100">
4256              <div class="product_variant_quantity">
4257                <span class="product_quantity">
4258                  <div v-if="isModalSelectShow && isMobileSize" class="btn-group" role="group" aria-label="First group">
4259                    <button class="btn add-down qk-bd--product_border" type="button" @click="quantityChange(false)" ></button>
4260                    <input class="btn item-quantity qk-text--heading qk-bd--product_border" type="text" name="quantity" value="1" data-old-value="1">
4261                    <button class="btn add-up qk-bd--product_border" type="button" @click="quantityChange(true)"></button>
4262                  </div>
4263                </span>
4264              </div>
4265              <button
4266                class="btn addToCart_mobile btn_to_cart_mobile open_product_modal qk-btn qk-btn--secondary qk-flex--1 qk-fs--breadcrumb qk-text-truncate"
4267                data-handle="s5190-20230317094020">
4268                加入購物車</button>
4269            </div>
4270            <div v-show="variantSize > 1" class="qk-display--flex qk-w--100">
4271              <button type="button" class="modal_cancel qk-w--50 qk-bd--default qk-btn--secondary qk-bd--button qk-text--button" @click="onChangeModalSelect(false,false)">取消</button>
4272              <button type="button" class="qk-btn qk-w--50 qk-btn--primary qk-btn--lg qk-fs--body qk-bd--button qk-test--button_text" @click="onChangeModalSelect(false,true)">完成</button>
4273            </div>
4274          </div>
4275        </div>
4276    </div>
4277  </div>
4278</script>
4278
4279
4280<!-- cyb_snippet components/variant_options/color_image_option start -->
4281<script id="color-option" type="text/x-template">
4282  <div class="option color_option">
4283    <span class="title qk-text--heading">商品顏色:</span>
4284    <label
4285      v-for="(imageColor, index) in imageColors"
4286      :class="{
4287        'image-option': true,
4288        'selected': selectedClass(index),
4289        'disabled': disabledClass(index),
4290      }"
4291      @mouseleave="setCurrentImageIndex(index)"
4292      @mouseover="getOptionImageIndex(index)"
4293      @click="setOption(optionKey, index)"
4294      class="qk-bd--default qk-bd--border"
4295    >
4296      <span class="img-flex qk-display--il_bk">
4297        <img v-if="imageColor !== 'noColorImage'" :src="imageColor.large" alt="image">
4298        <img v-else src="/assets/no-image-large.png" alt="image">
4299      </span>
4300    </label>
4301  </div>
4302</script>
4302
4303
4304<script type="text/javascript">
4305  $(document).ready(function () {
4306    themeHelper.variantOptionsBlock.component('color-option', {
4307      template: '#color-option',
4308      delimiters: ['${', '}'],
4309      props: {
4310        optionKey: String,
4311        option: Object,
4312        imageColors: Array,
4313        setCurrentImageIndex: Function,
4314        getOptionImageIndex: Function,
4315        currentOption: Object,
4316      },
4317      methods: {
4318        setOption: function(optionKey, index) {
4319          var type = this.option.types[index];
4320          if (type.isValid) {
4321            themeHelper.EventBus.$emit('toggleCurrentOption', optionKey, type.name);
4322          }
4323        },
4324        selectedClass: function(index) {
4325          return this.currentOption[this.optionKey] === this.option.types[index].name;
4326        },
4327        disabledClass: function(index) {
4328          return !this.option.types[index].isValid;
4329        },
4330      },
4331    });
4332  });
4333</script>
4333
4334
4335<!-- cyb_snippet components/variant_options/color_image_option end -->
4336<!-- cyb_snippet components/variant_options/advance_option start -->
4337<script id="advance-variant-option" type="text/x-template">
4338  <div class="advance">
4339    <div class="option_title qk-text--heading">${option.name}</div>
4340    <label
4341      v-for="type in option.types"
4342      :class="{
4343        'selected': selectedClass(type),
4344        'disabled': disabledClass(type),
4345      }"
4346      @click="setOption(optionKey, type)"
4347      class="option qk-btn qk-btn--md qk-bd--button qk-text--button qk-text--center qk-pd_x--1"
4348    >
4349      <span class="text">${type.name}</span>
4350    </label>
4351  </div>
4352</script>
4352
4353
4354<script type="text/javascript">
4355  $(document).ready(function() {
4356    themeHelper.variantOptionsBlock.component('advance-variant-option', {
4357      template: '#advance-variant-option',
4358      delimiters: ['${', '}'],
4359      props: {
4360        optionKey: String,
4361        option: Object,
4362        currentOption: Object,
4363      },
4364      methods: {
4365        setOption: function(optionKey, type) {
4366          if(type.isValid){
4367            themeHelper.EventBus.$emit('toggleCurrentOption', optionKey, type.name);
4368          }
4369        },
4370        selectedClass: function(type) {
4371          return this.currentOption[this.optionKey] === type.name;
4372        },
4373        disabledClass: function(type) {
4374          return !type.isValid;
4375        },
4376      }
4377    });
4378  });
4379</script>
4379
4380
4381<!-- cyb_snippet components/variant_options/advance_option end -->
4382
4383
4384<!-- cyb_snippet _variant_options_block_js start -->
4385<script type="text/javascript">
4386  $(document).ready(function() {
4387    themeHelper.variantOptionsBlock.component('variant-options-block', {
4388      template: '#variant-options-block',
4389      delimiters: ['${', '}'],
4390      props: {
4391        productApiUrl: String,
4392        sku: String,
4393        autoSelectVariantBySku: Boolean,
4394        hideOtherVariantsBySku: Boolean,
4395        hideSingleVariantOptions: Boolean,
4396        salesModePurchasable: Boolean,
4397        defaultPrice: String,
4398        defaultComparePrice: String,
4399        defaultDiscounted: Boolean,
4400      },
4401      data: function() {
4402        return {
4403          styledShopMenu: "buttonType",
4404          currentImageIndex: 0,
4405          isModalSelectShow: false,
4406          selectOption: '',
4407          selectCurrentStr:'',
4408          modalOption: {},
4409          currentOption: {
4410            option1: null,
4411            option2: null,
4412            option3: null,
4413          },
4414          currentVariant: null,
4415          product: {},
4416          isLoading: true,
4417          isImageColorsUsed: liquidHelper.isImageColorsUsed,
4418          isEmptyClickable: liquidHelper.isEmptyClickable,
4419          hasPriceWithDiscountPlugin: liquidHelper.hasPriceWithDiscountPlugin,
4420          isCartEnabled: liquidHelper.isCartEnabled,
4421        }
4422      },
4423      mounted: function() {
4424        this.getProductDetail();
4425        themeHelper.EventBus.$on('toggleCurrentOption',this.toggleCurrentOption);
4426      },
4427      computed: {
4428        imageColors: function() {
4429          //色票一定成對
4430          var self = this;
4431          var images = this.photoUrls.slice(0);
4432          var imageColorNum = this.colorOption.length;
4433          for(var i = imageColorNum; i < imageColorNum * 2; i++) {
4434            if(!images[i]) {
4435              images.push('noColorImage');
4436            }
4437          }
4438          return images.slice(imageColorNum, imageColorNum * 2);
4439        },
4440        photoUrls: function() {
4441          return this.product.photoUrls.length > 0 ? this.product.photoUrls : [this.featuredImage];
4442        },
4443        featuredImage: function() {
4444          return this.product.featuredImage;
4445        },
4446        swiperPhotos: function() {
4447          if(this.isImageColor) {
4448            return this.photoUrls.slice(0, this.colorOption.length);
4449          }
4450          return this.photoUrls.length > 0 ? this.photoUrls : [this.featuredImage];
4451        },
4452        firstValidVariant: function() {
4453          var self = this;
4454          var result = this.product.variants.find(function(variant) {
4455            return variant.available;
4456          });
4457
4458          return result ? result : null;
4459        },
4460        shouldHideOtherVariants: function() {
4461          return this.hideOtherVariantsBySku &&
4462                 this.sku &&
4463                 this.currentVariant &&
4464                 this.currentVariant.sku === this.sku;
4465        },
4466        shouldHideSingleVariantOptions: function() {
4467          return this.hideSingleVariantOptions &&
4468                 this.product.variants &&
4469                 this.product.variants.length <= 1;
4470        },
4471        options: function() {
4472          return this.product.options;
4473        },
4474        optionTypes: function() {
4475          // 先根據設定的variants來排序
4476          var self = this;
4477
4478          var option1 = [];
4479          var option2 = [];
4480          var option3 = [];
4481          this.product.variants.forEach(function(item) {
4482            if (item.option1 !== null) option1.push(item.option1);
4483            if (item.option2 !== null) option2.push(item.option2);
4484            if (item.option3 !== null) option3.push(item.option3);
4485          })
4486
4487          var filteredOptionTypes = [];
4488          this.product.optionTypes.forEach(function(item, index) {
4489            filteredOptionTypes.push(self.getUniqueVariant(eval('option' + (index + 1))).join(','));
4490          });
4491
4492          return filteredOptionTypes;
4493        },
4494        optionInfo: function() {
4495          var self = this;
4496
4497          if (self.options) {
4498            return self.options.map(function(option, index) {
4499              return {
4500                name: option,
4501                types: self.getOptions('option' + (index + 1), self.optionTypes[index].split(','))
4502              }
4503            });
4504          }
4505        },
4506        colorOptionIndex: function() {
4507          return this.options.findIndex(function(option) {
4508            return option === '顏色';
4509          });
4510        },
4511        colorOption: function() {
4512          var optionIndex = this.colorOptionIndex
4513          return optionIndex === -1 ? null : this.optionTypes[optionIndex].split(',');
4514        },
4515        isImageColor: function() {
4516          return this.isImageColorsUsed && _.includes(this.product.options, '顏色');
4517        },
4518        isMobileSize: function() {
4519          return window.innerWidth <= 580
4520        },
4521        variantSize: function() {
4522          if(this.product.options){
4523          return this.product.options.length;
4524          }
4525        },
4526        isAutoSelectVariantBySku: function() {
4527          return this.sku && this.autoSelectVariantBySku;
4528        },
4529      },
4530      methods: {
4531        onClickSelectModal: function(objData, selectOptionStr) {
4532          this.isModalSelectShow = true;
4533          this.modalOption = objData;
4534          this.selectOption = selectOptionStr
4535        },
4536        onChangeModalSelect: function(flag, isSelect) {
4537          if(!isSelect){
4538            this.setOption(this.selectOption,this.selectCurrentStr,this.modalOption.types)
4539          }
4540          this.isModalSelectShow = flag;
4541        },
4542        setOption: function(optionKey, type, dataArr) {
4543          let flag = true
4544          dataArr.forEach(item => {
4545            if (item.name === type) {
4546              flag = item.isValid
4547            }
4548          })
4549          if (flag) {
4550            this.toggleCurrentOption(optionKey, type)
4551          }
4552        },
4553        setChoose: function(currentVariant) {
4554          var currentVariantData = {};
4555          if (currentVariant) {
4556            currentVariantData = {
4557              id: this.currentVariant.id,
4558              bonus: this.currentVariant.maxUsableBonus,
4559              name: this.currentVariant.title,
4560              inventoryPolicy: this.currentVariant.inventoryPolicy,
4561              compareAtPrice: this.currentVariant.compareAtPrice,
4562              imgUrl: this.currentVariant.imgUrl,
4563              inventoryQuantity: this.currentVariant.inventoryQuantity,
4564              option1: this.currentVariant.option1,
4565              option2: this.currentVariant.option2,
4566              option3: this.currentVariant.option3,
4567              price: this.currentVariant.price,
4568              productId: this.currentVariant.productId,
4569              sku: this.currentVariant.sku,
4570              qc: this.currentVariant.qc,
4571              hidePrice: this.product.hidePrice === true,
4572            };
4573          } else {
4574            currentVariantData = {
4575              price: this.defaultPrice,
4576              compareAtPrice: this.defaultComparePrice,
4577              isDiscounted: this.defaultDiscounted,
4578              hidePrice: this.product.hidePrice === true,
4579            }
4580          }
4581          const isUpcomingProduct = this.isSellTimeAfterNow(this.product.sellFrom);
4582          this.$emit('set-choose', currentVariantData, isUpcomingProduct);
4583        },
4584        onError: function() {
4585          window.msg("", 'error').show();
4586        },
4587        showRateLimitPopup: function() {
4588          showRateLimitModal(5);
4589        },
4590
4591        // get product detail
4592        getProductDetail: function() {
4593          var self = this;
4594          $.ajax({
4595            url: self.productApiUrl + '.json',
4596            type: 'GET',
4597            timeout: 30000,
4598            beforeSend: function() {
4599              self.isLoading = true;
4600            },
4601            error: function(xhr){
4602              if (xhr.status === 429) {
4603                self.isLoading = false;
4604                self.showRateLimitPopup();
4605              } else {
4606                self.onError();
4607              }
4608            }
4609          }).done(function(data){
4610            if (!data.id) {
4611              self.onError();
4612              return;
4613            }
4614
4615            var productData = [themeHelper.toCamelCase(data)];
4616            self.product = themeHelper.priceWithDiscount(productData, self.hasPriceWithDiscountPlugin)[0];
4617
4618            var shouldSkipAutoSelected = false;
4619
4620            if (self.isAutoSelectVariantBySku) {
4621              var skuVariant = self.product.variants.find(function(variant) {
4622                return variant.sku === self.sku;
4623              });
4624
4625              if (skuVariant) {
4626                if (self.isEmptyClickable ||
4627                  skuVariant.inventoryPolicy === "continue" ||
4628                  skuVariant.inventoryQuantity > 0) {
4629                  self.applyVariant(skuVariant, true);
4630                  themeHelper.EventBus.$emit('skuReady');
4631                  self.isLoading = false;
4632                  return;
4633                } else {
4634                  // 若 sku 存在但不可購買,則跳過第一個款式選擇
4635                  shouldSkipAutoSelected = true;
4636                }
4637              } else {
4638                // 若 sku 不存在,則跳過第一個款式選擇
4639                shouldSkipAutoSelected = true;
4640              }
4641              themeHelper.EventBus.$emit('skuReady');
4642            }
4643
4644            if (
4645              !shouldSkipAutoSelected && (
4646              self.product.variants.length === 1 ||
4647              liquidHelper.isFirstVariantSelected
4648            )) {
4649              var variant = self.product.variants.length === 1 ? self.product.variants[0] : self.firstValidVariant;
4650              if (!variant) {
4651                self.isLoading = false;
4652                return;
4653              }
4654
4655              if (
4656                !self.isEmptyClickable &&
4657                variant.inventoryPolicy === "deny" &&
4658                variant.inventoryQuantity === 0
4659              ) {
4660                self.isLoading = false;
4661                return;
4662              }
4663
4664              self.applyVariant(variant, false);
4665              if (self.isImageColorsUsed) { // 若有顯示色票且有預選第一個款式的更換圖片
4666                var firstValidColorIndex = self.colorOption.findIndex(function(item) {
4667                  return item === variant.option1
4668                });
4669                self.$emit('get-option-image', self.photoUrls[firstValidColorIndex].grande);
4670              }
4671            }
4672
4673            self.isLoading = false;
4674          })
4675        },
4676        applyVariant: function(variant, waitPhotosReady) {
4677          var self = this;
4678          this.currentVariant = variant;
4679          this.setChoose(variant);
4680          this.setDefaultOption();
4681
4682          if (waitPhotosReady) {
4683            themeHelper.EventBus.$on('skuPhotosReady', function () {
4684              if (variant.photos && variant.photos.length > 0) {
4685                self.setVariantPhotos();
4686              }
4687            });
4688          } else {
4689            this.setVariantPhotos();
4690          }
4691        },
4692        toggleCurrentOption: function(key, value) {
4693          if (this.product.variants.length === 1) {
4694            return;
4695          }
4696
4697          if (this.shouldHideOtherVariants) {
4698            return;
4699          }
4700
4701          this.currentOption[key] =
4702            (this.currentOption[key] === value || value === 'null') ? null : value;
4703          var variantIndex = this.getVariantIndex();
4704          if(variantIndex !== -1) {
4705            this.currentVariant = this.product.variants[variantIndex];
4706          } else {
4707            this.currentVariant = null;
4708          }
4709          this.setChoose(this.product.variants[variantIndex]);
4710          if (this.currentOption[key] !== null) {
4711            var optionIndex = parseInt(key.replace('option', '')) - 1;
4712            appStoreSelectItemEvent(this.product, this.product.options[optionIndex], this.currentOption[key], this.currentVariant);
4713          }
4714          if (Object.values(this.currentOption).every(v => v === null) || this.currentVariant) {
4715            this.setVariantPhotos();
4716          }
4717        },
4718        setCurrentImageIndex: function(index) {
4719          this.currentImageIndex = this.getSelectedColorIndex();
4720          if (this.currentImageIndex > -1) {
4721            var currentImageIndex = this.currentImageIndex;
4722          } else {
4723            var currentImageIndex = 0;
4724          }
4725
4726          this.$emit('get-option-image', this.photoUrls[currentImageIndex].grande);
4727        },
4728        getOptionImageIndex: function(index) {
4729          this.currentImageIndex = index;
4730          this.$emit('get-option-image', this.photoUrls[index].grande);
4731        },
4732        setDefaultOption: function() {
4733          var self = this;
4734          Object.keys(self.currentOption).forEach(function(optionKey) {
4735            self.currentOption[optionKey] = self.currentVariant[optionKey];
4736          });
4737        },
4738        getVariantIndex: function() {
4739          var self = this;
4740          return self.product.variants.findIndex(function(variant, index) {
4741            var isVariant = true;
4742            Object.keys(self.currentOption).forEach(function(option) {
4743              if(variant[option] !== self.currentOption[option]){
4744                isVariant = false;
4745              }
4746            });
4747            return isVariant;
4748          });
4749        },
4750        // 篩選重複品項
4751        getUniqueVariant: function(variants) {
4752          return variants.filter(function(value, index, self) {
4753            return self.indexOf(value) === index;
4754          });
4755        },
4756        // 取得已選取的color index
4757        getSelectedColorIndex: function() {
4758          var self = this;
4759          var optionIndex = _.indexOf(self.options, '顏色') + 1;
4760          var color = self.currentOption['option' + optionIndex];
4761
4762          return _.indexOf(self.colorOption, color);
4763        },
4764        getOptions: function(optionKey, optionTypes) {
4765          var self = this;
4766
4767          // 透過 sku 預選且有對應的 variant,則只顯示該 variant 的 option
4768          if (this.shouldHideOtherVariants) {
4769            var currentOptionValue = this.currentVariant[optionKey];
4770            var isValid = true;
4771
4772            if (!this.isEmptyClickable) {
4773              isValid = this.currentVariant.inventoryQuantity === null ||
4774                        this.currentVariant.inventoryQuantity > 0 ||
4775                        this.currentVariant.inventoryPolicy === 'continue';
4776            }
4777
4778            return [{
4779              name: currentOptionValue,
4780              isValid: isValid
4781            }];
4782          }
4783
4784          return optionTypes.map(function(optionType, index) {
4785            var isValid = true;
4786
4787            // 選出包含目前type的variant
4788            var matchVariants = self.product.variants.filter(function(variant) {
4789              return variant[optionKey] === optionType;
4790            });
4791            // 篩選已勾選type
4792            Object.keys(self.currentOption).forEach(function(currentOptionKey) {
4793              if(currentOptionKey !== optionKey){
4794                matchVariants = matchVariants.filter(function(variant) {
4795                  if(self.currentOption[currentOptionKey]) {
4796                    return variant[currentOptionKey] === self.currentOption[currentOptionKey]
4797                  } else {
4798                    return true;
4799                  }
4800                });
4801              }
4802            });
4803            // 無variant代表此type不可選
4804            if(matchVariants.length === 0) {
4805              isValid = false;
4806            }
4807
4808            if (!self.isEmptyClickable) {
4809              isValid = false;
4810              matchVariants.find(function(item) {
4811                if (item.inventoryQuantity === null || item.inventoryQuantity > 0 || item.inventoryPolicy === 'continue') {
4812                  isValid = true;
4813                }
4814              });
4815            }
4816
4817            return {
4818              name: optionType,
4819              isValid: isValid
4820            }
4821          });
4822        },
4823        getVariantPhotos: function() {
4824          if (!this.currentVariant) {
4825            return null;
4826          }
4827
4828          if (!this.currentVariant.photos || this.currentVariant.photos.length === 0) {
4829            return {
4830              withSpecificVariant: !!this.currentVariant.option1,
4831              photos: [],
4832              variant: {
4833                id: this.currentVariant.id,
4834                sku: this.currentVariant.sku
4835              },
4836            };
4837          }
4838
4839          var sortedPhotos = this.currentVariant.photos.sort(function(prev, next) {
4840            return prev.position - next.position;
4841          });
4842
4843          return {
4844            withSpecificVariant: !!this.currentVariant.option1,
4845            photos: sortedPhotos,
4846            variant: {
4847              id: this.currentVariant.id,
4848              sku: this.currentVariant.sku
4849            },
4850          };
4851        },
4852        setVariantPhotos: function() {
4853          themeHelper.EventBus.$emit('updatePhotos', this.getVariantPhotos());
4854        },
4855        cartQuantityCheck({quantity, limitQuantity, cartLimit, inventoryPolicy}){
4856          if(quantity < 1){
4857            return 'less_then_1';
4858          }
4859          if(quantity > limitQuantity && limitQuantity !== null && inventoryPolicy !== "continue") {
4860            return 'over_product_quantity';
4861          }
4862          if(quantity > cartLimit){
4863            return 'over_cart_limit';
4864          }
4865          if(isNaN(quantity)){
4866            return 'not_a_number';
4867          }
4868          return '';
4869        },
4870        changeQuantity({elType, errType, quantity, addToCart, quantityInput, limitQuantity, cartLimit}){
4871          if(errType === ''){
4872            if(elType === 'btn'){
4873              quantityInput.val(quantity);
4874              quantityInput.trigger('change');
4875            }
4876            var old = quantityInput.data("old-value");
4877            if(quantity === old){
4878              quantityInput.data("old-value", quantity);
4879            }
4880            // for GA
4881            addToCart.data("quantity", quantity);
4882          } else {
4883            var old_value = quantityInput.data("old-value");
4884            if(elType === 'input'){
4885              switch(errType){
4886                case 'less_then_1':
4887                  quantityInput.val(1);
4888                  break;
4889                case 'over_product_quantity':
4890                  quantityInput.val(limitQuantity);
4891                  break;
4892                case 'over_cart_limit':
4893                  quantityInput.val(cartLimit);
4894                  break;
4895                default:
4896                  quantityInput.val(old_value);
4897                  break;
4898              }
4899            }
4900            this.cartQuantityMessage(errType)
4901          }
4902        },
4903        cartQuantityMessage(errType) {
4904          switch(errType){
4905            case 'less_then_1':
4906              window.msg(language["less_then_one"], 'warning').show();
4907              break;
4908            case 'over_product_quantity':
4909              window.msg(language["over_product_quantity"], 'warning').show();
4910              break;
4911            case 'over_cart_limit':
4912              window.msg(language["over_cart_limit"], 'warning').show();
4913              break;
4914            case 'not_a_number':
4915              window.msg(language["please_enter_number"], 'warning').show();
4916              break;
4917            default:
4918              break;
4919          }
4920        },
4921        quantityChange(isPluSquantity){
4922          if (!this.findVariant()) {
4923            return;
4924          }
4925          let errType           = '';
4926          let el                = $('#product');
4927          let cartLimit         = this.getCartQuantityLimit(el);
4928          let limitQuantity     = selectedVariant.inventoryQuantity;
4929          let inventoryPolicy   = selectedVariant.inventoryPolicy;
4930          let quantityInput     = el.find(".product_quantity input");
4931          let quantity          = parseInt($(quantityInput).val());
4932          let addToCart         = el.find('.addToCart');
4933          isPluSquantity ? quantity += 1: quantity -= 1
4934          errType = this.cartQuantityCheck({quantity, limitQuantity, cartLimit, inventoryPolicy});
4935          this.changeQuantity({ elType: 'btn', errType, quantity, addToCart, quantityInput, limitQuantity, cartLimit});
4936        },
4937        findVariant() {
4938          if (typeof selectedVariant === 'undefined' || !$.isNumeric(selectedVariant.id)) {
4939            window.msg(language["please_choose_product"], 'info').show();
4940            return false;
4941          } else {
4942            return true;
4943          }
4944        },
4945        getCartQuantityLimit(el) {
4946          return el.data('cart_quantity_limit');
4947        },
4948        isSellTimeAfterNow(sellTime) {
4949          if (!sellTime) return false;
4950          const saleTime = new Date(sellTime);
4951          const now = new Date();
4952          return saleTime > now;
4953        },
4954      }
4955    });
4956  });
4957</script>
4957
4958
4959<!-- cyb_snippet _variant_options_block_js end -->
4960
4961<!-- cyb_snippet components/variant_options/variant_options_block end -->
4962<!-- cyb_snippet _custom_icon start -->
4963<script src='//cdn1-next.cybassets.com/frontend/shop/navIcon-3a2e378145f8a165.js' type='text/javascript'></script>
4963
4964
4965<script>
4966  (function() {
4967    const iconUrlMap = new Map([
4968      ['custom_icon_type_home', null],
4969      ['custom_icon_type_tracking_items', null],
4970      ['custom_icon_type_account', null],
4971      ['custom_icon_type_cart', null],
4972      ['custom_icon_type_search', null],
4973      ['custom_icon_type_menu', null]
4974    ]);
4975    const elements = document.querySelectorAll('[data-icon-type]');
4976    elements.forEach((element, index) => {
4977      const iconAttributes = element.getAttribute('data-icon-type');
4978
4979      const uniqueId = `icon_${iconAttributes}_${index}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
4980      element.id = uniqueId;
4981      window.renderNavCustomIcon(`#${uniqueId}`, {
4982        navIconStyle: "icon_type_default",
4983        customIconUrl: iconUrlMap.get(iconAttributes) || '',
4984        iconAttributes: iconAttributes,
4985        currentTemplate: "product",
4986      });
4987    });
4988  })();
4989</script>
4989
4990
4991<!-- cyb_snippet _custom_icon end -->
4992
4993<script>
4994  // 設定款式資訊/顯示款式資訊
4995  function getURLParameter(name) {
4996    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [null, ''])[1].replace(/\+/g, '%20')) || null;
4997  }
4998  // sku_properties:各款式的 option pairs(當前語系,後端 drop 已翻譯),事件用 variantId 查表
4999  var variantProperties = {
5000    "45826133": []
5001  };
5002  function addToWishListEvent(id, data) {
5003    try {
5004      if (appMarketAddToWishListEvent && data) {
5005        var dataSet = {
5006          name: "成功 S5190扶手型臀腿踏步機",
5007          category: null,
5008          categories: ["有氧 / 核心健身"],
5009          sku: data.sku,
5010          price: data.price,
5011          compare_at_price: data.compare_at_price,
5012          properties: variantProperties[id] || [],
5013          quantity: data.inventory_quantity,
5014          variant: data.variant,
5015          listName: "單產品細覽" || null,
5016          productId: 39906070,
5017          variantId: id,
5018        }
5019        appMarketAddToWishListEvent(dataSet)
5020      }
5021    } catch (e) {
5022      console.error(e);
5023    }
5024  }
5025  function removeFromWishListEvent(id, data) {
5026    try {
5027      if (appMarketRemoveFromWishListEvent && data) {
5028        var dataSet = {
5029          name: "成功 S5190扶手型臀腿踏步機",
5030          category: null,
5031          categories: ["有氧 / 核心健身"],
5032          sku: data.sku,
5033          price: data.price,
5034          compare_at_price: data.compare_at_price,
5035          properties: variantProperties[id] || [],
5036          quantity: data.inventory_quantity,
5037          variant: data.variant,
5038          listName: "單產品細覽" || null,
5039          productId: 39906070,
5040          variantId: id,
5041        }
5042        appMarketRemoveFromWishListEvent(dataSet)
5043      }
5044    } catch (e) {
5045      console.error(e);
5046    }
5047  }
5048  function isSellTimeAfterNow(sellTime) {
5049    if (!sellTime) return false;
5050    const saleTime = new Date(sellTime);
5051    const now = new Date();
5052    return saleTime > now;
5053  }
5054  $(document).ready(function() {
5055  var ProductInfoObject =  new ProductInfo()
5056    ProductInfoObject.init({
5057      additionalPrice: "加購價",
5058      sellFrom: "" ,
5059      productId:"39906070",
5060      productTitle: "成功 S5190扶手型臀腿踏步機",
5061      productPreOrder: "預購商品",
5062      productExistingVariantsFirstId: '45826133',
5063      productNotificationEnabled: '已登記補貨通知',
5064      productNotifyMeWhenStockArrives: '已售完,貨到通知我',
5065      productOptionsSize: "0",
5066      productPleaseChooseProduct: "請選擇商品款式",
5067      generalInternetError: "網路連線異常,請重新整理",
5068      productVariantsInfo: "45826133,S5190,2880.0,20,3600.0,deny,2880.0,,成功 S5190扶手型臀腿踏步機 - ,cyberbiz,1",
5069      productLimitBuy:  null,
5070      purchaseEligibility: {"required":false,"eligible":true,"status":"eligible"},
5071      salesModePurchasable: true,
5072    });
5073    // 商品款式
5074    var isUpcomingProduct = isSellTimeAfterNow("") && null;
5075    // 初始化,取得消費者所有品項的通知設定
5076    var variantNotifications = {};
5077    
5078      ProductInfoObject.initVariantNotifications();
5079    
5080    // 初始化,檢查所有商品的庫存,判斷購物車按鈕和庫存顯示狀態
5081    ProductInfoObject.checkButtonStatus(isUpcomingProduct);
5082    // 加入購物車 open product modal
5083    ProductInfoObject.initOpenProductModal();
5084    // 立即購買 mobile product modal
5085    ProductInfoObject.initMobileProductModal()
5086    // 聯絡商家
5087    ProductInfoObject.initContactTheMerchant()
5088    // 貨到通知
5089    ProductInfoObject.initGoodsArrivalNotification();
5090    ProductInfoObject.checkInWishList(window.$('.product-variant-id').val())
5091    
5092      ProductInfoObject.setUpDiscountsTag();
5093    
5094    
5095    })
5096
5097    const userAgent = navigator.userAgent;
5098    const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;
5099    const isLiff = /Line\/[\d.]+/i.test(userAgent);
5100    const $productButtonMobile = $('.product_button_mobile');
5101
5102    if ($productButtonMobile.length && isIOS && isLiff) {
5103      $productButtonMobile.addClass('is-ios-liff');
5104    }
5105</script>
5105
5106
5107
5108<div id="product_description" class="product_description">
5109  <div class="desc_sections">
5110    <ul class="qk-bg--theme_bg qk-display--flex qk-mg--0 qk-pd--0 qk-bd--default qk-bd--product_border qk-bd_r--none">
5111      <!-- 商品介紹 -->
5112      
5113        <li class="qk-flex--1">
5114          <a href="#desc_section_1" class="scroll active qk-text--text qk-fs--title qk-display--il_bk qk-text--center qk-w--100 qk-vert--bottom">
5115            商品介紹
5116          </a>
5117        </li>
5118      
5119      <!-- 規格說明 -->
5120      
5121        <li class="qk-flex--1 qk-bd--product_border">
5122          <a href="#desc_section_2" class="scroll qk-text--text qk-fs--title qk-display--il_bk qk-text--center qk-w--100 qk-vert--bottom">
5123            <div>規格說明</div>
5124          </a>
5125        </li>
5126      
5127      <!-- 運送方式 -->
5128      
5129        <li class="qk-flex--1 qk-bd--product_border">
5130          <a href="#desc_section_3" class="scroll qk-text--text qk-fs--title qk-display--il_bk qk-text--center qk-w--100 qk-vert--bottom">
5131            <div>運送方式</div>
5132          </a>
5133        </li>
5134      
5135      <!-- 票券注意事項 -->
5136      
5137      <!-- 加入購物車modal -->
5138      
5139        <li class="add-to-cart-container qk-flex--1 qk-bd--product_border">
5140          <a
5141            href="#"
5142            id="add_to_cart"
5143            class="open_product_modal qk-btn qk-btn--primary qk-btn--lg qk-pos--abs qk-r--0 qk-display--il_bk qk-text--center qk-w--100"
5144            data-id="39906070"
5145            data-handle="s5190-20230317094020">
5146            <div>加入購物車</div>
5147          </a>
5148          <button class="btn btn_not_sale hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-fs--title qk-pos--abs qk-r--0" type="button">
5149            尚未開賣
5150          </button>
5151          <button class="btn btn_login_to_view hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-fs--title qk-pos--abs qk-r--0" type="button">
5152            登入查看資格
5153          </button>
5154          <button class="btn btn_not_eligible hidden qk-btn qk-btn--soldout qk-btn--lg qk-pd--0 qk-fs--title qk-pos--abs qk-r--0" type="button">
5155            購買資格不符
5156          </button>
5157          
5158            <a
5159              href="#"
5160              id="notice_to_buy"
5161              class="btn_notice qk-btn qk-btn--primary qk-btn--lg qk-pos--abs qk-r--0 qk-display--il_bk qk-text--center qk-w--100">
5162              <div>已售完,貨到通知我</div>
5163            </a>
5164          
5165        </li>
5166      
5167    </ul>
5168  </div>
5169  <div class="desc_body">
5170    <div id="ckeditor">
5171      
5172        <div id="desc_section_1" class="desc_section qk-pd_t--2">
5173          <h5 class="section-heading qk-text--heading qk-fs--hd2 qk-bd_l--default qk-bd--heading qk-pd_l--05">商品介紹</h5>
5174          <div class="ckeditor qk-mg_t--1"><p style="text-align: center;"><iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/xmxvm_pn_bY" width="640"></iframe></p>
5175
5176<p>&nbsp;</p>
5177
5178<p style="text-align:center"><img alt="" src="//cdn1-next.cybassets.com/s/files/22086/ckeditor/pictures/content_839ef198-b05a-40d8-9557-094b8393b31f.jpg"></p>
5179
5180<p style="text-align:center"><img alt="" src="//cdn1-next.cybassets.com/s/files/22086/ckeditor/pictures/content_d1d42e43-2825-48e0-9c4a-8fb152cf6e5a.jpg"></p>
5181
5182<p style="text-align:center"><img alt="" src="//cdn1-next.cybassets.com/s/files/22086/ckeditor/pictures/content_30908f46-4483-4b96-ae76-b8036338176e.jpg"></p>
5183
5184<p style="text-align:center"><img alt="" src="//cdn1-next.cybassets.com/s/files/22086/ckeditor/pictures/content_369f3c86-8de2-4dc6-b11c-5bc52e2d7e28.jpg"></p>
5185
5186<p style="text-align:center"><img alt="" src="//cdn1-next.cybassets.com/s/files/22086/ckeditor/pictures/content_a897e7ad-6edf-425d-a193-2c0a7ea97beb.jpg"></p>
5187
5188<p><iframe allowfullscreen="" frameborder="0" height="360" src="https://www.youtube.com/embed/ki0I9fE8Spw" width="640"></iframe></p>
5189</div>
5190        </div>
5191      
5192      
5193        <div id="desc_section_2" class="desc_section qk-pd_t--2">
5194          <h5 class="section-heading qk-text--heading qk-fs--hd2 qk-bd_l--default qk-bd--heading qk-pd_l--05">規格說明</h5>
5195          <div class="ckeditor qk-mg_t--1"><p> </p>
5196
5197<div class="embed-responsive embed-responsive-16by9"> </div>
5198
5199<p>
5199 </p>
5200</div>
5201        </div>
5202      
5203      
5204        <div id="desc_section_3" class="desc_section qk-pd_t--2">
5205          <h5 class="section-heading qk-text--heading qk-fs--hd2 qk-bd_l--default qk-bd--heading qk-pd_l--05">運送方式</h5>
5206          <div class="ckeditor qk-mg_t--1"><p>【7-11 / 全家門市取貨】<br>
5207當您在網站購買商品時,可利用7-11或全家門市取貨的服務,將訂購的商品送至您所指定的門市,待商品送達門市後會以電子郵件及簡訊通知您,請於指定期間內完成取貨付款。</p>
5208
5209<p>※<strong>超過材積限制還請宅配方式配送。</strong></p>
5210
5211<p>【新竹貨運】<br>
5212限台灣本島。<br>
5213當您在網站上完成訂單購買程序並完成付款,本公司在確認訂單後,會盡快將商品送達指定配送定點,安全又方便。<br>
5214<strong>※請務必留下可連絡之通訊電話,以利貨運公司連繫。</strong></p>
5215</div>
5216        </div>
5217      
5218      
5219    </div>
5220  </div>
5221  <div id="product-recommendation"></div>
5222</div>
5223
5224<script>
5225  $(document).ready(function() {
5226    // 商品說明介紹標籤
5227    $(".desc_sections li").on('click', function() {
5228      $(this).children().addClass('active');
5229      $(this).siblings().children().removeClass('active');
5230    });
5231
5232    // 滑動設置
5233    var prevScrollPos = window.pageYOffset;
5234    var prevScrollInformationPos = window.pageYOffset;
5235    $(window).on('scroll load resize', function(e) {
5236      var headerHeight = $("#header").height()
5237      var desc_sections = $(".desc_sections");
5238      var desc_section_list = $(".desc_section");
5239      var descSectionHeight = $(".desc_sections").height()
5240      var descSectionTop = $(".desc_sections").offset().top - headerHeight
5241      var product_window = $(this);
5242      var currentScrollPos = window.pageYOffset;
5243
5244      // 滑動固定產品說明
5245      if (product_window.scrollTop() > descSectionTop) {
5246        desc_sections.find("ul").css({"top": 0});
5247        if (currentScrollPos > prevScrollPos && product_window.scrollTop() > descSectionTop + headerHeight) {
5248          desc_sections
5249            .stop()
5250            .addClass("desc_sections_hold")
5251            .css({"min-height": descSectionHeight})
5252            .find("ul")
5253            .css({"top": 0});
5254        } else if (prevScrollPos > currentScrollPos) {
5255          desc_sections
5256            .stop()
5257            .addClass("desc_sections_hold")
5258            .css({"min-height": descSectionHeight})
5259            .find("ul")
5260            .css({"top": headerHeight});
5261        } else {
5262          prevScrollPos = 0;
5263        } prevScrollPos = currentScrollPos;
5264        if ($(window).width() < 768) {
5265          $("body").css("padding-bottom", "68px");
5266        }
5267      } else {
5268        prevScrollPos = 0;
5269        desc_sections.stop().removeClass("desc_sections_hold")
5270        if ($(window).width() < 768) {
5271          $("body").css("padding-bottom", "68px");
5272        }
5273      }
5274
5275      // 點選產品說明滑動
5276      $(".desc_sections a.scroll").bind("click", function(event) {
5277        var targetScrollTop = parseInt($($(this).attr("href")).offset().top - descSectionHeight + 1);
5278        if (targetScrollTop > window.scrollY + 1) {
5279          $("html, body").stop().animate({
5280            scrollTop: targetScrollTop
5281          }, 300);
5282        } else {
5283          $("html, body").stop().animate({
5284            scrollTop: targetScrollTop - headerHeight
5285          }, 300);
5286        }
5287      });
5288
5289      // 顯示當前產品說明
5290      if (currentScrollPos > prevScrollInformationPos) {
5291        $.each(desc_section_list, function(index, desc_section) {
5292          var desc_sectionTop = $(desc_section).offset().top - descSectionHeight - 1
5293          var desc_sectionHeight = $(desc_section).height()
5294          var current_desc_section = $("a.scroll[href$='" + $(desc_section).attr("id") + "']");
5295          if (product_window.scrollTop() > desc_sectionTop || index === 0) {
5296            current_desc_section
5297              .stop()
5298              .addClass('active')
5299              .parent()
5300              .siblings()
5301              .find("a")
5302              .removeClass('active');
5303          } else {
5304            current_desc_section.removeClass('active');
5305          } prevScrollInformationPos = currentScrollPos;
5306        });
5307      } else {
5308        $.each(desc_section_list, function(index, desc_section) {
5309          var desc_sectionTop = $(desc_section).offset().top - descSectionHeight - 1
5310          var desc_sectionHeight = $(desc_section).height()
5311          var current_desc_section = $("a.scroll[href$='" + $(desc_section).attr("id") + "']");
5312          if (product_window.scrollTop() + headerHeight > desc_sectionTop) {
5313            current_desc_section
5314              .stop()
5315              .addClass('active')
5316              .parent()
5317              .siblings()
5318              .find("a")
5319              .removeClass('active');
5320          } else {
5321            current_desc_section.removeClass('active');
5322          }
5323        });
5324        prevScrollInformationPos = currentScrollPos;
5325      }
5326    });
5327  })
5328</script>
5328
5329
5330
5331
5332
5333
5334<div id="related-products" class="qk-pos--rel">
5335  
5336  
5337  
5338    
5339  
5340  
5341    <h5 class="section-heading qk-text--heading qk-fs--hd2 qk-bd_l--default qk-bd--heading qk-pd_l--05">相關商品</h5>
5342    
5343    <!-- cyb_snippet swiper_product start -->
5344<div id="swiper_products" class="qk-pos--rel">
5345  <div class="swiper swiper-container swiper_products GTM-area">
5346    <div class="swiper-wrapper">
5347      
5348      
5349        
5350        
5351        
5352        
5353        <div class="swiper-slide product qk-text--center" data-sold-out="false" data-sales-mode-purchasable="true">
5354          
5355          <div class="product_image three_to_four_scale">
5356            <div class="product_mask"></div>
5357            <a class="productClick img-flex GTM-info qk-h--100 qk-display--flex qk-justify--center qk-align--center"
5358              href="/products/s4766"
5359              data-brand=""
5360              data-category=""
5361              data-collection_id=""
5362              data-id="37859368"
5363              data-variant-id="43091011"
5364              data-list="相關商品"
5365              data-name="成功 S4766仰臥起坐輔助器(特價出清)"
5366              data-position="1"
5367              data-price="169.0">
5368              <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzY4LzE2NjEzMTMwMjVfMjY3YTQyZjcxMTNmZWJlOTA1YjIuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=ed51e76943c3b85f"
5369                alt="成功 S4766仰臥起坐輔助器(特價出清)" class="swiper-lazy feature-image" />
5370              
5371                
5372              
5373              <div class="swiper-lazy-preloader-white"></div>
5374            </a>
5375          </div>
5376          
5377          <div class="product_title qk-of--hidden">
5378            <a class="qk-text--heading"
5379              href="/products/s4766">
5380              成功 S4766仰臥起坐輔助器(特價出清)
5381            </a>
5382          </div>
5383          
5384            
5385          
5386          
5387            <div class="product_price qk-text--price qk-fs--title"><span class="money_tag" data-currency-from="TWD" data-amount="169.0">NT$169</span></div>
5388          
5389          
5390            <div class="product_btn qk-text--center">
5391              
5392                <button
5393                  type="button"
5394                  class="btn btn-cart qk-btn qk-btn--primary qk-btn--lg"
5395                  data-handle="s4766"
5396                  data-collection=""
5397                  data-brand=""
5398                  data-category=""
5399                  data-collection_id=""
5400                  data-id="37859368"
5401                  data-list="相關商品"
5402                  data-name="成功 S4766仰臥起坐輔助器(特價出清)"
5403                  data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODU5MzY4LzE2NjEzMTMwMjVfMjY3YTQyZjcxMTNmZWJlOTA1YjIuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=ed51e76943c3b85f"
5404                  data-price="169.0"
5405                  data-position="1"
5406                  data-spread-size="43091011,S4766,169.0,199,400.0,deny,320.0,,成功 S4766仰臥起坐輔助器(特價出清) - ,cyberbiz,1"
5407                  
5408                  data-sku="S4766"
5409                  
5410                  
5411                >
5412                  <span class="text">加入購物車</span>
5413                </button>
5414              
5415              <button type="button" class="btn btn_not_sale hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5416                <span class="text">尚未開賣</span>
5417              </button>
5418              <button type="button" class="btn btn_login_to_view hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5419                <span class="text">登入查看</span>
5420              </button>
5421              <button type="button" class="btn btn_not_eligible hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5422                <span class="text">資格不符</span>
5423              </button>
5424            </div>
5425          
5426        </div>
5427      
5428        
5429        
5430        
5431        
5432        <div class="swiper-slide product qk-text--center" data-sold-out="false" data-sales-mode-purchasable="true">
5433          
5434          <div class="product_image three_to_four_scale">
5435            <div class="product_mask"></div>
5436            <a class="productClick img-flex GTM-info qk-h--100 qk-display--flex qk-justify--center qk-align--center"
5437              href="/products/s5237"
5438              data-brand=""
5439              data-category=""
5440              data-collection_id=""
5441              data-id="37866986"
5442              data-variant-id="43101680"
5443              data-list="相關商品"
5444              data-name="成功 S5237核心訓練滑步墊(特價出清)"
5445              data-position="2"
5446              data-price="439.0">
5447              <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODY2OTg2LzE2NjEzOTQwODVfYmZiZTFlZjdjMmNjODMxNzE4MzguanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=39ac6290a79a7a97"
5448                alt="成功 S5237核心訓練滑步墊(特價出清)" class="swiper-lazy feature-image" />
5449              
5450                
5451              
5452              <div class="swiper-lazy-preloader-white"></div>
5453            </a>
5454          </div>
5455          
5456          <div class="product_title qk-of--hidden">
5457            <a class="qk-text--heading"
5458              href="/products/s5237">
5459              成功 S5237核心訓練滑步墊(特價出清)
5460            </a>
5461          </div>
5462          
5463            
5464          
5465          
5466            <div class="product_price qk-text--price qk-fs--title"><span class="money_tag" data-currency-from="TWD" data-amount="439.0">NT$439</span></div>
5467          
5468          
5469            <div class="product_btn qk-text--center">
5470              
5471                <button
5472                  type="button"
5473                  class="btn btn-cart qk-btn qk-btn--primary qk-btn--lg"
5474                  data-handle="s5237"
5475                  data-collection=""
5476                  data-brand=""
5477                  data-category=""
5478                  data-collection_id=""
5479                  data-id="37866986"
5480                  data-list="相關商品"
5481                  data-name="成功 S5237核心訓練滑步墊(特價出清)"
5482                  data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzM3ODY2OTg2LzE2NjEzOTQwODVfYmZiZTFlZjdjMmNjODMxNzE4MzguanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=39ac6290a79a7a97"
5483                  data-price="439.0"
5484                  data-position="2"
5485                  data-spread-size="43101680,S5237,439.0,36,1200.0,deny,960.0,,成功 S5237核心訓練滑步墊(特價出清) - ,cyberbiz,1"
5486                  
5487                  data-sku="S5237"
5488                  
5489                  
5490                >
5491                  <span class="text">加入購物車</span>
5492                </button>
5493              
5494              <button type="button" class="btn btn_not_sale hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5495                <span class="text">尚未開賣</span>
5496              </button>
5497              <button type="button" class="btn btn_login_to_view hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5498                <span class="text">登入查看</span>
5499              </button>
5500              <button type="button" class="btn btn_not_eligible hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5501                <span class="text">資格不符</span>
5502              </button>
5503            </div>
5504          
5505        </div>
5506      
5507        
5508        
5509        
5510        
5511        <div class="swiper-slide product qk-text--center" data-sold-out="false" data-sales-mode-purchasable="true">
5512          
5513          <div class="product_image three_to_four_scale">
5514            <div class="product_mask"></div>
5515            <a class="productClick img-flex GTM-info qk-h--100 qk-display--flex qk-justify--center qk-align--center"
5516              href="/products/s5189"
5517              data-brand=""
5518              data-category=""
5519              data-collection_id=""
5520              data-id="59232921"
5521              data-variant-id="71938378"
5522              data-list="相關商品"
5523              data-name="&lt; 新上市 &gt; 成功 S5189側滑美腿核心訓練機(6代)"
5524              data-position="3"
5525              data-price="1100.0">
5526              <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzU5MjMyOTIxLzE3ODE1MTIzNzhfN2UwMGFlNmNhMGM0OWMyMGEzMTguanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e6dbfac95e4e1595"
5527                alt="&lt; 新上市 &gt; 成功 S5189側滑美腿核心訓練機(6代)" class="swiper-lazy feature-image" />
5528              
5529                
5530              
5531              <div class="swiper-lazy-preloader-white"></div>
5532            </a>
5533          </div>
5534          
5535          <div class="product_title qk-of--hidden">
5536            <a class="qk-text--heading"
5537              href="/products/s5189">
5538              < 新上市 > 成功 S5189側滑美腿核心訓練機(6代)
5539            </a>
5540          </div>
5541          
5542            
5543          
5544          
5545            <div class="product_price qk-text--price qk-fs--title"><span class="money_tag" data-currency-from="TWD" data-amount="1100.0">NT$1,100</span></div>
5546          
5547          
5548            <div class="product_btn qk-text--center">
5549              
5550                <button
5551                  type="button"
5552                  class="btn btn-cart qk-btn qk-btn--primary qk-btn--lg"
5553                  data-handle="s5189"
5554                  data-collection=""
5555                  data-brand=""
5556                  data-category=""
5557                  data-collection_id=""
5558                  data-id="59232921"
5559                  data-list="相關商品"
5560                  data-name="&lt; 新上市 &gt; 成功 S5189側滑美腿核心訓練機(6代)"
5561                  data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzU5MjMyOTIxLzE3ODE1MTIzNzhfN2UwMGFlNmNhMGM0OWMyMGEzMTguanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=e6dbfac95e4e1595"
5562                  data-price="1100.0"
5563                  data-position="3"
5564                  data-spread-size="71938378,S5189,1100.0,28,1380.0,deny,1100.0,,< 新上市 > 成功 S5189側滑美腿核心訓練機(6代) - ,cyberbiz,1"
5565                  
5566                  data-sku="S5189"
5567                  
5568                  
5569                >
5570                  <span class="text">加入購物車</span>
5571                </button>
5572              
5573              <button type="button" class="btn btn_not_sale hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5574                <span class="text">尚未開賣</span>
5575              </button>
5576              <button type="button" class="btn btn_login_to_view hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5577                <span class="text">登入查看</span>
5578              </button>
5579              <button type="button" class="btn btn_not_eligible hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5580                <span class="text">資格不符</span>
5581              </button>
5582            </div>
5583          
5584        </div>
5585      
5586        
5587        
5588        
5589        
5590        <div class="swiper-slide product qk-text--center" data-sold-out="false" data-sales-mode-purchasable="true">
5591          
5592          <div class="product_image three_to_four_scale">
5593            <div class="product_mask"></div>
5594            <a class="productClick img-flex GTM-info qk-h--100 qk-display--flex qk-justify--center qk-align--center"
5595              href="/products/s5258"
5596              data-brand=""
5597              data-category=""
5598              data-collection_id=""
5599              data-id="68786939"
5600              data-variant-id="83730721"
5601              data-list="相關商品"
5602              data-name="&lt;新上市&gt; 成功 S5258核心訓練滑步盤(附收納袋)"
5603              data-position="4"
5604              data-price="240.0">
5605              <img data-src="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzY4Nzg2OTM5LzE3ODE1MDMyMjVfMmFlMmU5OGIyYjJkNDg2NTQxYjkuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=94db3a909c3d086e"
5606                alt="&lt;新上市&gt; 成功 S5258核心訓練滑步盤(附收納袋)" class="swiper-lazy feature-image" />
5607              
5608                
5609              
5610              <div class="swiper-lazy-preloader-white"></div>
5611            </a>
5612          </div>
5613          
5614          <div class="product_title qk-of--hidden">
5615            <a class="qk-text--heading"
5616              href="/products/s5258">
5617              <新上市> 成功 S5258核心訓練滑步盤(附收納袋)
5618            </a>
5619          </div>
5620          
5621            
5622          
5623          
5624            <div class="product_price qk-text--price qk-fs--title"><span class="money_tag" data-currency-from="TWD" data-amount="240.0">NT$240</span></div>
5625          
5626          
5627            <div class="product_btn qk-text--center">
5628              
5629                <button
5630                  type="button"
5631                  class="btn btn-cart qk-btn qk-btn--primary qk-btn--lg"
5632                  data-handle="s5258"
5633                  data-collection=""
5634                  data-brand=""
5635                  data-category=""
5636                  data-collection_id=""
5637                  data-id="68786939"
5638                  data-list="相關商品"
5639                  data-name="&lt;新上市&gt; 成功 S5258核心訓練滑步盤(附收納袋)"
5640                  data-photo="//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L3Byb2R1Y3RzLzY4Nzg2OTM5LzE3ODE1MDMyMjVfMmFlMmU5OGIyYjJkNDg2NTQxYjkuanBlZyJdLFsicCIsInRodW1iIiwiNjAweDYwMCJdXQ.jpeg?sha=94db3a909c3d086e"
5641                  data-price="240.0"
5642                  data-position="4"
5643                  data-spread-size="83730721,S5258,240.0,30,300.0,deny,240.0,,<新上市> 成功 S5258核心訓練滑步盤(附收納袋) - ,cyberbiz,1"
5644                  
5645                  data-sku="S5258"
5646                  
5647                  
5648                >
5649                  <span class="text">加入購物車</span>
5650                </button>
5651              
5652              <button type="button" class="btn btn_not_sale hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5653                <span class="text">尚未開賣</span>
5654              </button>
5655              <button type="button" class="btn btn_login_to_view hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5656                <span class="text">登入查看</span>
5657              </button>
5658              <button type="button" class="btn btn_not_eligible hidden qk-btn qk-btn--lg qk-btn--soldout qk-bg--background qk-mg_x--auto" disabled>
5659                <span class="text">資格不符</span>
5660              </button>
5661            </div>
5662          
5663        </div>
5664      
5665    </div>
5666  </div>
5667  <div class="swiper-products-next qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v1 qk-swiper_btn--next"></div>
5668  <div class="swiper-products-prev qk-swiper_btn qk-swiper_btn--lg qk-swiper_btn--v1 qk-swiper_btn--prev"></div>
5669</div>
5670
5671<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/swiper_product-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
5672
5673
5674<!-- cyb_snippet _combo_product_related_items_modal start --><!-- cyb_snippet _combo_product_related_items_modal end -->
5675
5676<script>
5677  $(document).ready(function(){
5678    var slideCount = $(".swiper_products .swiper-slide").length
5679    if (slideCount >= 4){
5680      var autoLoop = true
5681    }else{
5682      var autoLoop = false
5683    }
5684    var SwiperProducts = new Swiper('.swiper_products', {
5685      // Disable preloading of all images
5686      preloadImages: false,
5687      // Enable lazy loading
5688      lazy: {
5689        loadPrevNext: true,
5690      },
5691      loop: autoLoop,
5692      slidesPerView: 1,
5693      spaceBetween: 30,
5694      navigation: {
5695        nextEl: '.swiper-products-next',
5696        prevEl: '.swiper-products-prev',
5697      },
5698      breakpoints: {
5699        '@0.75': {
5700          slidesPerView: 2,
5701          spaceBetween: 20,
5702        },
5703        '@1.00': {
5704          slidesPerView: 3,
5705          spaceBetween: 40,
5706        },
5707        '@1.50': {
5708          slidesPerView: 4,
5709          spaceBetween: 50,
5710        },
5711      }
5712    });
5713
5714    $('#swiper_products .productClick').click(function() {
5715      try {
5716        if (window.appStoreClickItemEvent) {
5717          var $el = $(this);
5718          window.appStoreClickItemEvent({
5719            product_id: String($el.data('id')),
5720            variant_id: String($el.data('variant-id')),
5721            name: $el.data('name'),
5722            price: Number($el.data('price')),
5723            currency: getCurrency(),
5724            category: $el.data('category'),
5725            list_name: 'product',
5726            list_position: Number($el.data('position')),
5727          });
5728        }
5729      } catch (e) {
5730        console.error(e);
5731      }
5732    });
5733
5734    
5735    // new pop modal
5736    $('#swiper_products .btn-cart').click(function() {
5737      var comboProductInfo = $(this).data('comboProductInfo');
5738      if (comboProductInfo) {
5739        window.themeHelper.EventBus.$emit('showRelatedItemsSelectModal', comboProductInfo);
5740      } else {
5741        var productHandle = '/products/' + $(this).data('handle');
5742        var collectionId = $(this).data('collection');
5743        new_addcart_modal.popModal(productHandle, collectionId);
5744      }
5745    });
5746    
5747
5748    const isUpcomingProductsEnabled = null;
5749    // 狀態切換只處理可購買的卡片
5750    $('#swiper_products .product').not('[data-sales-mode-purchasable="false"]').each(function(index) {
5751      const soldOut = $(this).data('sold-out');
5752      const $upcomingText = $(this).find('.upcoming-product-text');
5753      const sellTime = $upcomingText.data('sell-from');
5754      const purchaseRequired = $upcomingText.data('purchase-required');
5755      const purchaseEligible = $upcomingText.data('purchase-eligible');
5756      const purchaseStatus = $upcomingText.data('purchase-status');
5757
5758      const isUpcoming = isUpcomingProductsEnabled && sellTime && new Date(sellTime) > new Date();
5759
5760      const formattedDate = sellTime ? new Date(sellTime).toLocaleString('zh-TW', {
5761        year: 'numeric',
5762        month: '2-digit',
5763        day: '2-digit',
5764        hour: '2-digit',
5765        minute: '2-digit',
5766        hour12: false
5767      }).replace(/\//g, '-').replace(',', '') : '';
5768
5769      let labelText = '';
5770      let buttonClass = '';
5771
5772      if (purchaseRequired && !isUpcoming) {
5773        labelText = '部分會員限定';
5774
5775        if (!purchaseEligible) {
5776          if (!soldOut) {
5777            if (purchaseStatus === 'not_logged_in') {
5778              buttonClass = '.btn_login_to_view';
5779            } else if (purchaseStatus === 'non_eligible') {
5780              buttonClass = '.btn_not_eligible';
5781            }
5782          } else {
5783            buttonClass = '.btn-soldout';
5784          }
5785        }
5786      }
5787      else if (!purchaseRequired && isUpcoming) {
5788        labelText = ' 開賣'.replace('', formattedDate);
5789        buttonClass = '.btn_not_sale';
5790      }
5791      else if (purchaseRequired && isUpcoming) {
5792        const isMobile = window.innerWidth <= 580;
5793        const separator = isMobile ? '\n' : ' ';
5794        labelText = '[部分會員限定]' + separator + ' 開賣'.replace('', formattedDate);
5795        buttonClass = '.btn_not_sale';
5796      } else if (soldOut) {
5797        buttonClass = '.btn-soldout';
5798      }
5799
5800      if (labelText) {
5801        $upcomingText.text(labelText);
5802        $(this).find('.upcoming-product-text').show();
5803      } else {
5804        $upcomingText.hide();
5805      }
5806
5807      if (buttonClass) {
5808        $(this).find('.product_mask').addClass('lift');
5809        // Hide all buttons first
5810        $(this).find('.btn-cart').hide();
5811        $(this).find('.btn-soldout').hide();
5812        $(this).find('.btn_not_sale').hide();
5813        $(this).find('.btn_login_to_view').hide();
5814        $(this).find('.btn_not_eligible').hide();
5815
5816        // Show the appropriate button
5817        $(this).find(buttonClass).removeClass('hidden').show();
5818      }
5819    });
5820
5821    // for GTM
5822    $.each($('.GTM-area'),function(){
5823      var gtm_product = []
5824      $.each($(this).find('.GTM-info'),function(index,product){
5825        productInfo = {
5826          'brand':    $(product).data('brand'),
5827          'category': $(product).data('category'),
5828          'id':       $ (product).data('id'),
5829          'list':     'Collection: '+ $(product).data('list'),
5830          'name':     $(product).data('name'),
5831          'position': $(product).data('position'),
5832          'price':    $ (product).data('price'),
5833          'variant':  ''
5834        }
5835        if(typeof google_analytics_id != "undefined" && window.enable_ga_ee == true){
5836          ga('ec:addImpression', productInfo);
5837        }
5838        if(typeof google_tag_manager_id != 'undefined' || typeof cyb != 'undefined'){
5839          gtm_product.push(productInfo)
5840        }
5841      })
5842      if(typeof google_analytics_id != 'undefined' && window.enable_ga_ee == true){
5843          ga('send', 'event', {'nonInteraction': true});
5844      }
5845      if(typeof google_tag_manager_id != 'undefined' && gtm_product.length > 0){
5846        dataLayer.push({
5847          'event': 'productImpressions',
5848          'ecommerce':{
5849            'impressions': gtm_product
5850          }
5851        });
5852      }
5853      if(typeof cyb != "undefined" && gtm_product.length > 0){
5854        cyb.push({
5855          'event': 'productImpressions',
5856          'impressions': gtm_product
5857        });
5858      }
5859    })
5860  })
5861</script>
5861
5862
5863<!-- cyb_snippet swiper_product end -->
5864  
5865</div>
5866
5867
5868
5869  </div>
5870</div>
5871
5872    </div>
5873
5874    <!-- Footer -->
5875    
5876
5877
5878
5879
5880
5881
5882<style>
5883  
5884  
5885  @media(min-width: 991px) {
5886    .display_x .left-content > div {
5887      max-width: calc(100% / 3);
5888    }
5889  }
5890</style>
5891
5892<div id="index-recommendation"></div>
5893
5894<footer id="footer" class="qk-fs--body qk-bg--footer_bg">
5895  
5896    
5897    <div class="qk-container display_y">
5898      <div class="footer_content qk-mg--0 qk-display--flex qk-justify--between">
5899        <div class="left-content qk-flex--1">
5900          
5901            
5902              <div class="link-list-container">
5903                
5904                  <p class="footer_title qk-fs--title qk-text--footer_text"></p>
5905                
5906                <div class="item horizontal qk-text--left">
5907                  <ul class="qk-display--flex qk-flex--wrap">
5908                    
5909                      
5910                        <li class="qk-display--il_bk">
5911                          
5912                            <a
5913                              class="qk-text--footer_text"
5914                              href="/"
5915                              rel="noopener noreferrer"
5916                              target="_blank">首頁</a>
5917                          
5918                        </li>
5919                      
5920                        <li class="qk-display--il_bk">
5921                          
5922                            <a
5923                              class="qk-text--footer_text"
5924                              href="/pages/about-us"
5925                              rel="noopener noreferrer"
5926                              target="_blank">關於我們</a>
5927                          
5928                        </li>
5929                      
5930                        <li class="qk-display--il_bk">
5931                          
5932                            <a
5933                              class="qk-text--footer_text"
5934                              href="/collections/frontpage"
5935                              rel="noopener noreferrer"
5936                              target="_blank">商品列表</a>
5937                          
5938                        </li>
5939                      
5940                        <li class="qk-display--il_bk">
5941                          
5942                            <a
5943                              class="qk-text--footer_text"
5944                              href="/blogs/news"
5945                              rel="noopener noreferrer"
5946                              target="_blank">影片特輯</a>
5947                          
5948                        </li>
5949                      
5950                        <li class="qk-display--il_bk">
5951                          
5952                            <a
5953                              class="qk-text--footer_text"
5954                              href="/contact"
5955                              rel="noopener noreferrer"
5956                              target="_blank">客服中心</a>
5957                          
5958                        </li>
5959                      
5960                    
5961                  </ul>
5962                </div>
5963              </div>
5964              
5965          
5966            
5967              <div id="1669108375663_2" class="rich-text-editor-container qk-text--footer_text item qk-flex--1">
5968                
5969                  <p class="footer_title qk-fs--title rich-text-editor-title"></p>
5970                
5971                <div class="rich-text-content-container">
5972                  <p>成功體育文具股份有限公司<br>統一編號 : 04431071</p>
5973
5974                </div>
5975              </div>
5976            
5977          
5978            
5979              <div class="item contact qk-text--left">
5980                
5981                  <p class="footer_title qk-fs--title qk-text--footer_text">聯絡資訊</p>
5982                
5983                <ul>
5984                  
5985                    <li class="phone qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
5986                      <span class="qk-text--footer_text">客服專線:0800-007-030,分機10或39</span>
5987                    </li>
5988                  
5989                  
5990                    <li class="fax qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
5991                      <span class="qk-text--footer_text">客服傳真:0226957031</span>
5992                    </li>
5993                  
5994                  
5995                    <li class="time qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
5996                      <span class="qk-text--footer_text">客服時間:08:30-17:30</span>
5997                    </li>
5998                  
5999                  
6000                    <br>
6001                    <li class="mail qk-bd_r--default qk-bd--footer_text qk-cursor--pointer qk-display--il_bk">
6002                      <a class="qk-text--footer_text" href="mailto:[email protected]">信箱:[email protected]</a>
6003                    </li>
6004                  
6005                  
6006                    <li class="address qk-bd_r--default qk-bd--footer_text qk-display--il_bk">
6007                      <span class="qk-text--footer_text">地址:新北市汐止區康寧街149號2F</span>
6008                    </li>
6009                  
6010                  
6011                </ul>
6012              </div>
6013              
6014          
6015        </div>
6016        <div class="right-content qk-display--flex qk-flex--column">
6017          
6018            <div class="fb_fanpage qk-hidden--mobile">
6019              <div class="fb_fans_page_area">
6020                <div
6021                  class="fb-page"
6022                  data-href="https://www.facebook.com/102582118310299"
6023                  data-width="500"
6024                  data-adapt-container-width="true"
6025                  data-hide-cover="false"
6026                  data-show-facepile="true">
6027                  <blockquote cite="https://www.facebook.com/102582118310299" class="fb-xfbml-parse-ignore">
6028                    <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/102582118310299"></a>
6029                  </blockquote>
6030                </div>
6031              </div>
6032            </div>
6033          
6034          <div class="media qk-display--il">
6035            <div class="item social_media qk-h--auto qk-float--l">
6036              <ul>
6037                
6038                  <li class="qk-display--il_bk">
6039                    <a target="_blank" rel="noopener noreferrer" href="https://www.facebook.com/%E6%88%90%E5%8A%9Fsuccess-102582118310299">
6040                      <svg
6041                        class="facebook-svg"
6042                        xmlns="http://www.w3.org/2000/svg"
6043                        width="40"
6044                        height="40"
6045                        viewBox="0 0 40 40">
6046                        <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" />
6047                      </svg>
6048                    </a>
6049                  </li>
6050                
6051                
6052                  <li class="qk-display--il_bk">
6053                    <a target="_blank" rel="noopener noreferrer" href="https://www.instagram.com/success.1959?igsh=MWhuNjc4YTE4cGZjOA%3D%3D&utm_source=qr">
6054                      <svg
6055                        class="instagram-svg"
6056                        xmlns="http://www.w3.org/2000/svg"
6057                        width="40"
6058                        height="40"
6059                        viewBox="0 0 40 40">
6060                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
6061                        <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 11.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" />
6062                      </svg>
6063                    </a>
6064                  </li>
6065                
6066                
6067                  <li class="qk-display--il_bk">
6068                    <a target="_blank" rel="noopener noreferrer" href="https://page.line.me/success1959">
6069                      <svg
6070                        class="line-svg"
6071                        xmlns="http://www.w3.org/2000/svg"
6072                        width="40"
6073                        height="40"
6074                        viewBox="0 0 40 40">
6075                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
6076                        <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" />
6077                        <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" />
6078                        <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" />
6079                        <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" />
6080                        <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" />
6081                      </svg>
6082                    </a>
6083                  </li>
6084                
6085                
6086                  <li class="qk-display--il_bk">
6087                    <a target="_blank" rel="noopener noreferrer" href="https://www.youtube.com/channel/UC_mmdR-71QxAqsVymgFeDIQ">
6088                      <svg
6089                        class="youtube-svg"
6090                        xmlns="http://www.w3.org/2000/svg"
6091                        width="40"
6092                        height="40"
6093                        viewBox="0 0 40 40">
6094                        <rect class="qk-svg--footer_text" width="40" height="40" rx="20" />
6095                        <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" />
6096                      </svg>
6097                    </a>
6098                  </li>
6099                
6100              </ul>
6101            </div>
6102          </div>
6103        </div>
6104      </div>
6105    </div>
6106    
6107  <div class="copyright qk-text--footer_text qk-bd--footer_text qk-text--left qk-bd_t--default">
6108    <div class="qk-container container qk-fw--500">
6109      <span>Copyright ©</span>
6110      <a class="qk-text--link" href="/">
6111        <span>成功SUCCESS</span>
6112      </a>
6113      <span>All Rights Reserved.</span>
6114      <span>Designed by
6115      </span>
6116      <a
6117        class="qk-text--link"
6118        href="https://www.cyberbiz.io?utm_source=poweredbycyberbiz"
6119        target="_blank"
6120        rel="noopener noreferrer"
6121        title="Designed by CYBERBIZ">CYBERBIZ</a>.
6122    </div>
6123  </div>
6124  
6125</footer>
6126<script>
6127  $(document).ready(function() {
6128    let isDynamicLoading = false;
6129
6130    let menusData = {
6131      
6132        
6133          "main-menu": {
6134            
6135              "type": "items",
6136              "data": [
6137                
6138                
6139                  
6140                    {
6141                      "title": "首頁",
6142                      "url": "/",
6143                      "item_type": "frontpage"
6144                    },
6145                  
6146                    {
6147                      "title": "關於我們",
6148                      "url": "/pages/about-us",
6149                      "item_type": "page"
6150                    },
6151                  
6152                    {
6153                      "title": "商品列表",
6154                      "url": "/collections/frontpage",
6155                      "item_type": "custom_collection"
6156                    },
6157                  
6158                    {
6159                      "title": "影片特輯",
6160                      "url": "/blogs/news",
6161                      "item_type": "blog"
6162                    },
6163                  
6164                    {
6165                      "title": "客服中心",
6166                      "url": "/contact",
6167                      "item_type": "contact"
6168                    }
6169                  
6170                
6171              ]
6172            
6173          },
6174        
6175      
6176        
6177      
6178        
6179      
6180    };
6181
6182    if (isDynamicLoading) {
6183      window.DynamicLoading.setupComponent({
6184          sectionId: '#footer',
6185          callbackData:{
6186            section: {"type":"footer","visible":true,"settings":{"footer_link":"footer","display_facebook":true,"shop_facebook":"https://www.facebook.com/%E6%88%90%E5%8A%9Fsuccess-102582118310299","display_instagram":true,"shop_instagram":"https://www.instagram.com/success.1959?igsh=MWhuNjc4YTE4cGZjOA%3D%3D\u0026utm_source=qr","display_line":true,"shop_line":"https://page.line.me/success1959","display_youtube":true,"shop_youtube":"https://www.youtube.com/channel/UC_mmdR-71QxAqsVymgFeDIQ","footer_link_arrangement":"display_y","display_facebook_fan_block":true},"block_order":["default_link_list","1669108375663_2","default_contact_info"],"blocks":{"default_link_list":{"type":"link_list_setting","custom_name":"選單","thumbnail":"list","draggable":true,"visible":true,"settings":{"dict_link_list_block_title":"","footer_link":"main-menu"}},"default_contact_info":{"type":"contact_info_setting","custom_name":"聯絡資訊","thumbnail":"contactInfo","draggable":true,"visible":true,"settings":{"contact_info_block_title":"聯絡資訊","display_phone":"true","dict_phone_number":"0800-007-030,分機10或39","display_fax_number":"true","dict_shop_fax_number":"0226957031","display_shop_email":"true","dict_shop_email":"[email protected]","display_shop_address":"true","dict_shop_address":"新北市汐止區康寧街149號2F","display_office_time":"true","dict_shop_office_time":"08:30-17:30","dict_contact_info_block_title":"聯絡資訊"}},"1669108375663_2":{"type":"rich_text_editor_setting","custom_name":"自訂文字","visible":true,"settings":{"dict_rich_text_title":"","dict_rich_text_content":"\u003cp\u003e成功體育文具股份有限公司\u003cbr\u003e統一編號 : 04431071\u003c/p\u003e\n"}}},"custom_name":"頁腳"},
6187            shop: {
6188              name: '成功SUCCESS',
6189              cyberbiz_link: 'https://www.cyberbiz.io?utm_source=poweredbycyberbiz',
6190              facebook_fan_page: 'https://www.facebook.com/102582118310299',
6191            },
6192            menus: menusData,
6193            is_display_facebook_fan_block: true
6194            },
6195          entryName:'renderFooterSection',
6196          source:'//cdn1-next.cybassets.com/frontend/shop/footerSection-3a2e378145f8a165.js',
6197        });
6198    }
6199  });
6200</script>
6200
6201
6202<!-- cyb_snippet _tracking_code start -->
6203      
6203<script>
6204        window.fbAsyncInit = function() {
6205          FB.init({
6206          appId : '',
6207          xfbml : true,
6208          version : 'v24.0',
6209          });
6210        };
6211        (function(d, s, id){
6212          var js, fjs = d.getElementsByTagName(s)[0];
6213          if (d.getElementById(id)) {return;}
6214          js = d.createElement(s);
6215          js.id = id;
6216          js.src = 'https://connect.facebook.net/zh_TW/sdk.js';
6217          fjs.parentNode.insertBefore(js, fjs);
6218        }(document, 'script', 'facebook-jssdk'));
6219      </script>
6219
6220
6221
6222<script>
6223  // for scupio
6224  if (document.querySelector("meta[name=\"scupio_mid\"]")) {
6225    mid = document.querySelector("meta[name=\"scupio_mid\"]").content;
6226  } else {
6227    mid = "";
6228  }
6229  if (!window.is_scupio_sent && mid) {
6230    window._bwtm = window._bwtm || []
6231    window._bwtm.push({
6232      "mid": mid,
6233      "uid": ""
6234    });
6235  }
6236</script>
6236
6237
6238<!-- cyb_snippet _tracking_code end -->
6239
6240<script>
6241  $(document).ready(function(){
6242    if(window.location.pathname != '' && window.location.pathname != '/' ){
6243      document.getElementById('index-recommendation').style.display = 'none'
6244    }
6245  });
6246</script>
6246
6247
6248
6249
6250    <!-- Fast-Events -->
6251    <!-- cyb_snippet fast_events start -->
6252
6253
6254<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/fast_events-3a2e378145f8a165.js' type='text/javascript'></script>
6254
6255<link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/fast_events-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
6256
6257<!-- cyb_snippet fast_events end -->
6258
6259    <div class="bottom-right qk-pos--fixed">
6260      <!-- gototop -->
6261      <div id="gototop" class="qk-display--none qk-text--center">
6262        <a href="javascript:void(0)" class="qk-circle qk-circle--lg qk-pos--relative qk-text--center">
6263          <i class="fas fa-chevron-up"></i>
6264        </a>
6265      </div>
6266
6267      <!-- popup -->
6268      
6269  <link href='//cdn1-next.cybassets.com/frontend/shop/beta_theme/css/popup-3a2e378145f8a165.css' rel='stylesheet' type='text/css' media='all' />
6270
6271
6272
6273  
6274
6275
6276<div id="popup-wrapper" class="qk-display--none"></div>
6277
6278<template id="popup-template">
6279  <div
6280    :class="status"
6281    v-if="hasContent"
6282    id="popup-section"
6283  >
6284    <transition name="backdrop">
6285      <div
6286        v-if="shouldShowPopup"
6287        @click.capture="minifyPopup"
6288        id="popup-backdrop"
6289        class="qk-w--100vw qk-h--100vh qk-pos--fixed qk-t--0 qk-l--0 qk-tst"
6290      >
6291      </div>
6292    </transition>
6293    <transition name="onShow">
6294      <div
6295        @click.self="showPopup"
6296        @transitionstart="updateGameStatus('start', this)"
6297        @transitionend="updateGameStatus('end', this)"
6298        class="popup-content qk-display--flex qk-align--center qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
6299      >
6300        <div
6301          v-for="block in blocks"
6302          :key="block.id"
6303          :class="[block.type, minifiedBlockClasses, block.settings.icon_size]"
6304          class="block qk-tst qk-tst_dur--30 qk-tst_timing--ease_o qk-of--auto"
6305        >
6306          <div v-if="block.type === 'image'" class="qk-pos--rel">
6307            <img
6308              v-show="!shouldShowPopup"
6309              :src="block.settings.dict_icon_image_url"
6310              class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
6311              alt="popup button"
6312            >
6313            <a
6314              v-show="shouldShowPopup"
6315              :href="block.settings.dict_link"
6316              :target="block.settings.target"
6317              :rel="block.settings.rel"
6318              class="qk-display--flex qk-align--center"
6319              @click="linkClicked"
6320            >
6321              <picture>
6322                <source :srcset="block.settings.dict_mobile_image_url" media="(max-width: 576px)">
6323                <source :srcset="block.settings.dict_tablet_image_url" media="(max-width: 992px)">
6324                <img
6325                  :src="block.settings.dict_image_url"
6326                  class="qk-tst qk-tst_dur--30 qk-tst_timing--ease_o"
6327                  alt="popup picture"
6328                />
6329              </picture>
6330            </a>
6331          </div>
6332          <div v-if="block.type === 'video'">
6333            <iframe
6334              :src="block.settings.dict_video_link"
6335              frameborder="0"
6336              class="qk-center--y qk-w--100 qk-h--100"
6337            ></iframe>
6338          </div>
6339          <div v-if="block.type === 'game'">
6340            <div v-show="gameStatus === 'show'" :class="{ 'show-game': gameStatus === 'show' }">
6341              <iframe
6342                class="cb-game-iframe iframe-loading"
6343                :src="getGameIframeSrc(block)"
6344                style="border: none;"
6345              >
6346                Loading
6347              </iframe>
6348            </div>
6349            <div v-show="gameStatus === 'minified'">
6350              <img
6351                src="//cdn1-next.cybassets.com/game_assets/game_minified_new.png"
6352                class="qk-h--100 qk-w--100"
6353                alt="game minified icon"
6354              />
6355            </div>
6356          </div>
6357          <div
6358            v-if="block.type === 'carousel'"
6359            :id="`popup-carousel-${block.id}`"
6360          >
6361          </div>
6362        </div>
6363      </div>
6364    </transition>
6365    <transition name="backdrop">
6366      <div
6367        v-if="shouldShowPopup"
6368        @click.capture="minifyPopup"
6369        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"
6370      >
6371      </div>
6372    </transition>
6373  </div>
6374</template>
6375
6376<script>
6377  $(document).ready(function() {
6378    const CDN_HOST = '//cdn1-next.cybassets.com';
6379    const section = {"type":"popup","visible":true,"blocks":{"popup_block_1":{"type":"image","visible":true,"settings":{"dict_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzQyX-W9iOi3sy5qcGcuanBlZyJdXQ.jpeg?sha=ed7cd65133fce6f7","icon_size":"small","dict_tablet_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzUwX-W9iOi3sy05NjAuanBnLmpwZWciXV0.jpeg?sha=27a1e07ebc1671ea","dict_mobile_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzU3X-W9iOi3szQ4MC5qcGcuanBlZyJdXQ.jpeg?sha=e8c5df78cb302b2e","dict_icon_image_url":"//cdn1-next.cybassets.com/media/W1siZiIsIjIyMDg2L2F0dGFjaGVkX3Bob3Rvcy8xNjg4NDM5MzYzX-W9iOi3sy0xMDAuanBnLmpwZWciXV0.jpeg?sha=bea2f6df686dba72","dict_link":"/collections/出清特價39元起"},"custom_name":"圖片"}},"block_order":["popup_block_1"],"settings":{},"custom_name":"彈窗廣告"};
6380    var popupSection = Vue.createApp({
6381      template: '#popup-template',
6382      delimiters: ['${', '}'],
6383      data() {
6384        const isOmniauthPage = ['omniauth_terms_agreement', 'omniauth_mobile/']
6385          .some(path => location.pathname.includes(path));
6386        return {
6387          status: 'minified',
6388          gameStatus: 'show',
6389          blocks: isOmniauthPage
6390            ? []
6391            : section.block_order && section.block_order.reduce(
6392                function(acc, blockId) {
6393                  const block = section.blocks[blockId];
6394                  if (block && block.visible) {
6395                    acc.push({
6396                      ...block,
6397                      id: blockId,
6398                    });
6399                  }
6400                  return acc;
6401                },
6402                [],
6403              ),
6404          hasAddedGameScript: false,
6405        };
6406      },
6407      computed: {
6408        hasContent: function() {
6409          return !!(this.blocks && this.blocks.length > 0);
6410        },
6411        minifiedBlockClasses: function() {
6412          return this.status === 'minified' ? 'qk-pointer--none qk-unselectable' : '';
6413        },
6414        shouldShowPopup: function() {
6415          return this.status === 'show';
6416        }
6417      },
6418      methods: {
6419        unhidePopup: function(storedStatus) {
6420          this.status = storedStatus;
6421          $('#popup-wrapper').removeClass('qk-display--none');
6422        },
6423        showPopup: function() {
6424          if (this.status !== 'show') {
6425            this.status = 'show';
6426            this.saveStatus(this.status);
6427          }
6428        },
6429        minifyPopup: function() {
6430          this.status = 'minified';
6431          this.saveStatus('minified');
6432        },
6433        loadStatus: function() {
6434          return JSON.parse(localStorage.getItem('popupStatus'));
6435        },
6436        saveStatus: function(status) {
6437          if (status) {
6438            localStorage.setItem('popupStatus', JSON.stringify({
6439              status: status,
6440              setTime: new Date().getTime(),
6441            }));
6442          }
6443        },
6444        linkClicked: function() {
6445          this.saveStatus('minified');
6446        },
6447        parseVideoLink: function(settings) {
6448          settings.dict_video_link = themeHelper.parseYtUrl(settings.dict_video_link);
6449        },
6450        setupImageSrc: function (settings) {
6451          settings.dict_image_url = this.addCdnHost(settings.dict_image_url);
6452          if (settings.dict_tablet_image_url) {
6453            settings.dict_tablet_image_url = this.addCdnHost(settings.dict_tablet_image_url);
6454          }
6455          if (settings.dict_mobile_image_url) {
6456            settings.dict_mobile_image_url = this.addCdnHost(settings.dict_mobile_image_url);
6457          }
6458          settings.dict_icon_image_url = this.addCdnHost(settings.dict_icon_image_url) || settings.dict_image_url;
6459        },
6460        addCdnHost: function(url) {
6461          if (!url) {
6462            return url; // only add cdn host if url is not empty
6463          }
6464
6465          try {
6466            new URL(url);
6467            return url; // already a valid url, cdn host not needed
6468          } catch {
6469            return `${CDN_HOST}${url}`;
6470          }
6471        },
6472        initStatus: function() {
6473          let newStatus = 'show';
6474          const popupStatus = this.loadStatus();
6475          const currentTime = new Date().getTime();
6476          const oneDay = 1000 * 60 * 60 * 24;
6477          const hasStoredStatus = popupStatus && currentTime - popupStatus.setTime < oneDay;
6478          const redirectedByGameLogin = !this.hasRedirectUrl() && this.redirectedByGameLogin();
6479          const isLoggingIn = this.isLoggingIn();
6480          const isCartPage = window.location.pathname.split('/').includes('carts');
6481
6482          if (hasStoredStatus && !redirectedByGameLogin) {
6483            newStatus = popupStatus.status;
6484          }
6485
6486          if (isLoggingIn) {
6487            newStatus = 'minified';
6488          } else {
6489            localStorage.removeItem('redirectedByPopup');
6490          }
6491
6492          setTimeout(() => {
6493            this.status = newStatus;
6494            this.gameStatus = newStatus;
6495            this.saveStatus(newStatus);
6496            if(!isCartPage){
6497              this.unhidePopup(newStatus);
6498            }
6499          }, 1000);
6500        },
6501        initBlocks: function() {
6502          if (this.hasContent) {
6503            this.blocks.forEach(block => {
6504              switch(block.type) {
6505                case 'image':
6506                  this.setupImageSrc(block.settings);
6507
6508                  const isOpenInNewTab = block.settings.link_open_in_new_tab;
6509                  if (isOpenInNewTab) {
6510                    block.settings.target = '_blank';
6511                    block.settings.rel = 'noopener noreferrer';
6512                  }
6513
6514                  break;
6515                case 'video':
6516                  this.parseVideoLink(block.settings);
6517                  break;
6518              }
6519            })
6520          }
6521        },
6522        getGameIframeSrc: function (block) {
6523          return `/games/${block.settings.dict_game_handle}`
6524        },
6525        updateGameStatus: function(type, element) {
6526          if (
6527            (type === 'start' && this.status === 'minified')
6528            || (type === 'end' && this.status === 'show')
6529          ) {
6530            this.gameStatus = this.status;
6531          }
6532        },
6533        setupGameRedirects: function() {
6534          window.addEventListener('pagehide', () => {
6535            const isGameActive = document.body.getElementsByClassName('show-game').length;
6536            if (isGameActive) {
6537              localStorage.setItem('redirectedByPopup', 'true');
6538              this.saveStatus('minified');
6539            }
6540          });
6541        },
6542        hasRedirectUrl: function() {
6543          return (new URLSearchParams(location.search)).has('redirect_url');
6544        },
6545        redirectedByGameLogin: function() {
6546          return localStorage.getItem('redirectedByPopup');
6547        },
6548        isLoggingIn: function() {
6549          const loginRelatedPathnames = [
6550            'account/signup',
6551            'account/login',
6552            'account/customer/password/new',
6553            'pages/terms'
6554          ];
6555          return loginRelatedPathnames.some(path => location.pathname.includes(path));
6556        }
6557      },
6558      created: function() {
6559        this.initStatus();
6560        this.initBlocks();
6561        this.setupGameRedirects();
6562      },
6563      mounted: function() {
6564        this.blocks.forEach((block) => {
6565          if (block.type === 'carousel' && block.settings.dict_c
6565arousel) {
6566            renderCarousel(`#popup-carousel-${block.id}`, {
6567              title: block.settings.dict_carousel,
6568              CDN_HOST,
6569              onLinkClick: () => this.linkClicked(),
6570            });
6571          }
6572        });
6573      },
6574    });
6575    popupSection.mount('#popup-wrapper');
6576  });
6577</script>
6577
6578
6579
6580
6581    </div>
6582
6583    <!-- ajaxloading -->
6584    <div id="ajaxloading" class="qk-display--none qk-h--100vh qk-w--100vw qk-l--0 qk-t--0 qk-pos--fixed">
6585      <div class="ajaxbody qk-pos--abs qk-l--50 qk-t--50 qk-text--center">
6586        <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">
6587          <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"/>
6588          <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 "/>
6589          <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"/>
6590          <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"/>
6591          <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"/>
6592          <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"/>
6593        </svg>
6594        <div class="success_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">已加入購物車</div>
6595        <div class="success_update_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">已更新購物車</div>
6596        <div class="fail_msg title qk-display--none qk-pos--abs qk-l--0 qk-w--100 qk-text--center">網路異常,請重新整理</div>
6597      </div>
6598    </div>
6599  
6600      
6600<script>
6601        if (typeof(check_order_token_cookie) !== 'function' || check_order_token_cookie()) {
6602          gtag('event', 'conversion', {"send_to":"AW-10883446473/XqzPCOrqpMkZEMnt0MUo"});
6603        }
6604      </script>
6604
6605    
6605<script src="//cdn1-next.cybassets.com/assets/referral-code-trace-5fcbbe026a61c36b5f09a1615a1c168688205205d9d3e7ee854181a66b64a6ed.js"></script>
6605
6606      
6606<script>
6607      cyb.push({
6608        'event': 'productDetails',
6609        'ecommerce': {
6610          'currencyCode': 'TWD',
6611          'detail': {
6612            'products': [{"id":39906070,"name":"成功 S5190扶手型臀腿踏步機","price":2880.0,"brand":null,"category":null,"variant":""}]
6613           }
6614         }
6615      });
6616      </script>
6616
6617    
6618      
6618<script>
6619        if (window.fbq) {
6620          fbq("track", "ViewContent", {
6621            content_name: "成功 S5190扶手型臀腿踏步機",
6622            content_ids: "45826133",
6623            content_type: "product",
6624            value: 2880.0,
6625            currency: "TWD",
6626            contents: [{"id":45826133,"price":2880.0,"quantity":20}],
6627            content_category: null
6628          },{
6629            eventID: "ViewContent_68EB76A2BABD6A93E407EEB22F3A710D"
6630          });
6631        }
6632      </script>
6632
6633    </body>
6634
6635  
6635<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/sub_vendor-3a2e378145f8a165.js' type='text/javascript'></script>
6635
6636  
6636<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/theme_helper-3a2e378145f8a165.js' type='text/javascript'></script>
6636
6637
6638  <!-- theme assets -->
6639  
6639<script src='//cdn1-next.cybassets.com/s/files/22086/theme/87365/assets/js/1666762367_b450dde3_main.js?1666762368' type='text/javascript'></script>
6639
6640  
6640<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/theme-3a2e378145f8a165.js' type='text/javascript'></script>
6640
6641
6642  <!-- for cache -->
6643  
6643<script src='//cdn1-next.cybassets.com/frontend/shop/beta_theme/js/cacheable-3a2e378145f8a165.js' type='text/javascript'></script>
6643
6644</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.