1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <!-- prefetch dns --> 5<meta http-equiv="x-dns-prefetch-control" content="on"> 6<link rel="dns-prefetch" href="https://cdn.shoplineapp.com"> 7<link rel="preconnect" href="https://cdn.shoplineapp.com" crossorigin> 8<link rel="dns-prefetch" href="https://shoplineimg.com"> 9<link rel="preconnect" href="https://shoplineimg.com"> 10<link rel="dns-prefetch" href="https://shoplineimg.com"> 11 12<link rel="preconnect" href="https://shoplineimg.com" title="image-service-origin"> 13 14 15 <link rel="preload" href="https://cdn.shoplineapp.com/s/javascripts/currencies.js" as="script"> 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <link rel="preload" as="image" href="https://shoplineimg.com/6576a1830ee9d100760d043d/6ab37ddf376ab931829295cc/800x.webp?source_format=jpg" media="(max-height: 950px)"> 33 34 35 36 37 38 39 40 41 42 43 44 <title ng-non-bindable>ãMargot&TitaãAdvent Calendar 2026 - Limited quantity</title> 45 46<meta name="description" content="Margot&Tita 2026 Advent Calendar features 24 fragrances to discover, wear, and layer according to your mood and occasion. A beautifully curated Christmas gift for fragrance lovers."> 47 48 49 <meta name="keywords" content="忏ææ,åæ¸æ¥æ,èèªææ"> 50 51 52 53 54<link rel="alternate" type="text/plain" href="https://www.anelet.com/llms.txt"> 55<link rel="alternate" type="text/plain" href="https://www.anelet.com/llms-full.txt"> 56 57 58 59 60 61 62 63 64 65 66 67 68 <meta property="og:title" content="ãMargot&TitaãAdvent Calendar 2026 - Limited quantity"> 69 70<meta property="og:type" content="product"/> 71 72 73 <meta property="og:url" content="https://www.anelet.com/products/mt-advent-calendar-2026"> 74 <link rel="canonical" href="https://www.anelet.com/products/mt-advent-calendar-2026"> 75 76<meta property="og:description" content="Margot&Tita 2026 Advent Calendar features 24 fragrances to discover, wear, and layer according to your mood and occasion. A beautifully curated Christmas gift for fragrance lovers."> 77 78 79 <meta property="og:image" content="https://img.shoplineapp.com/media/image_clips/6ab37ddf376ab931829295cc/original.jpg?1790148063=&owner_id=6576a1830ee9d100760d043d"> 80 <meta name="thumbnail" content="https://img.shoplineapp.com/media/image_clips/6ab37ddf376ab931829295cc/original.jpg?1790148063=&owner_id=6576a1830ee9d100760d043d"> 81 82 83 84 85 86 87 88
88<script type="application/ld+json"> 89 {"@context":"https://schema.org","@type":"WebSite","name":"Anelet義æ³é¦åBARé¦åµé å°åç","url":"https://www.anelet.com"} 90 </script>
90 91 92 93 94 95
96<script type="application/ld+json"> 97 {"@context": "https://schema.org","@type": "Organization","name": "Anelet義æ³é¦åBARé¦åµé å°åç","url": "https://www.anelet.com","logo": "https://img.shoplineapp.com/media/image_clips/6576ee9491ffba18a0c992b8/original.png?1702293140"} 98</script>
98 99 100 101 102 103 104 105 106 <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> 107 108<meta name="mobile-web-app-capable" content="yes"> 109<meta name="format-detection" content="telephone=no" /> 110<meta name="google" value="notranslate"> 111 112 113 114 <link rel="shortcut icon" type="image/png" href="https://img.shoplineapp.com/media/image_clips/6576e9197585543b99776d58/original.png?1702291737"> 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 <meta name="google-site-verification" content="W3Wn20X00bFliJC7uOkvb4WEb0jRDwDC9lA4IUOHdiA"> 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 <link rel="stylesheet" href="/assets/common-898e3d282d673c037e3500beff4d8e9de2ee50e01c27252b33520348e0b17da0.css" media="all" onload=""> 170 171 172 173 174 175 176 177 <link rel="stylesheet" href="/assets/theme_kingsman_v2-c960f9542773c7880a404b0a05ccb6f1711b0461f71bea7eef2b7f00e711aeda.css" media="all" onload=""> 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 <link media="all" rel="stylesheet" href="https://cdn.shoplineapp.com/packs/css/intl_tel_input-0d9daf73.chunk.css" /> 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
227<script type="text/javascript"> 228 window.mainConfig = JSON.parse('{\"sessionId\":\"\",\"merchantId\":\"6576a1830ee9d100760d043d\",\"appCoreHost\":\"shoplineapp.com\",\"assetHost\":\"https://cdn.shoplineapp.com/packs/\",\"apiBaseUrl\":\"http://shoplineapp.com\",\"eventTrackApi\":\"https://events.shoplytics.com/api\",\"frontCommonsApi\":\"https://front-commons.shoplineapp.com/api\",\"appendToUrl\":\"\",\"env\":\"production\",\"merchantData\":{\"_id\":\"6576a1830ee9d100760d043d\",\"addon_limit_enabled\":true,\"base_country_code\":\"TW\",\"base_currency\":{\"id\":\"twd\",\"iso_code\":\"TWD\",\"alternate_symbol\":\"NT\$\",\"name\":\"New Taiwan Dollar\",\"symbol_first\":true,\"subunit_to_unit\":1},\"base_currency_code\":\"TWD\",\"beta_feature_keys\":[],\"brand_home_url\":\"https://www.anelet.com\",\"checkout_setting\":{\"enable_membership_autocheck\":true,\"enable_subscription_autocheck\":false,\"enforce_user_login_on_checkout\":true,\"enable_sc_fast_checkout\":false,\"enable_lock_cart_sc_product\":true,\"multi_checkout\":{\"enabled\":false}},\"current_plan_key\":\"basket\",\"current_theme_key\":\"kingsman_v2\",\"delivery_option_count\":11,\"enabled_stock_reminder\":false,\"handle\":\"anelet\",\"identifier\":\"\",\"instagram_access_token\":\"\",\"instagram_id\":\"\",\"invoice_activation\":\"active\",\"mobile_logo_media_url\":\"https://img.shoplineapp.com/media/image_clips/6576e9147585543c92776937/original.png?1702291731\",\"name\":\"Anelet義æ³é¦åBARé¦åµé å°åç\",\"order_setting\":{\"invoice_activation\":\"active\",\"current_invoice_service_provider\":\"tradevan\",\"short_message_activation\":\"inactive\",\"default_out_of_stock_reminder\":true,\"auto_cancel_expired_orders\":true,\"auto_revert_credit\":true,\"enabled_order_auth_expiry\":true,\"enable_order_split_einvoice_reissue\":true,\"no_duplicate_uniform_invoice\":true,\"hourly_auto_invoice\":true,\"enabled_location_id\":true,\"enabled_sf_hidden_product_name\":false,\"slp_auto_refund\":false,\"customer_return_order\":{\"enabled\":false,\"available_return_days\":\"7\"},\"customer_cancel_order\":{\"enabled\":true,\"auto_revert_credit\":true},\"custom_fields\":[{\"type\":\"textarea\",\"label\":\"æ¬åºæ¯æ´ line pay 仿¬¾ï¼æ¡è¿ä½¿ç¨ line pay é²è¡çµå¸³\",\"display_type\":\"text_field\",\"name_translations\":{\"zh-hant\":\"æ¬åºæ¯æ´ LINE Pay 仿¬¾ï¼æ¡è¿ä½¿ç¨ LINE Pay é²è¡çµå¸³\"},\"hint_translations\":{\"en\":\"\",\"zh-hant\":\"\",\"zh-hk\":\"\",\"zh-cn\":\"\",\"zh-tw\":\"\",\"vi\":\"\",\"ms\":\"\",\"ja\":\"\",\"th\":\"\",\"id\":\"\",\"de\":\"\",\"fr\":\"\"}},{\"type\":\"text\",\"label\":\"é禮å è£ï½å¦éè´ç¦®è«æ¼é¸å®å¾é¸\",\"display_type\":\"dropdown\",\"dropdown_options\":[{\"zh-hant\":\"åçæè¢\"},{\"zh-hant\":\"åç禮å¡ï¼æè¢\"}],\"name_translations\":{\"zh-hant\":\"é禮å è£ï½å¦éè´ç¦®è«æ¼é¸å®å¾é¸\"},\"hint_translations\":{\"zh-hant\":\"\"},\"field_id\":\"67568a24f06b45000ea817af\"},{\"type\":\"text\",\"label\":\"30mlæ·¡é¦ç²¾äºã䏿¯éå®ï½éåç´çºäºæä¸å ¥ç¦®çè£è«å註\",\"display_type\":\"text_field\",\"name_translations\":{\"zh-hant\":\"30mlæ·¡é¦ç²¾äºã䏿¯éå®ï½éåç´çºäºæä¸å ¥ç¦®çè£è«å註\"},\"field_id\":\"67568a24f06b45000ea817b0\"}],\"invoice\":{\"tax_id\":\"\",\"tax_type\":\"1\"},\"invoice_tradevan\":{\"tax_id\":\"28307396\",\"oversea_tax_type\":\"1\",\"tax_type\":\"1\",\"zero_tax_reason\":\"\",\"n_p_o_b_a_n\":{\"name\":\"è²¡åæ³äººä¸è¯æ°åå ç«¥ççåºéæ\",\"code\":\"88888\",\"short_name\":\"å çåºéæ\",\"tax_id\":\"04140854\",\"county\":\"èºåå¸\"},\"source\":{\"business_group_code\":\"SL28307396\",\"business_type_code\":\"SLEC1\"}},\"facebook_messenging\":{\"status\":\"active\"},\"status_update_sms\":{\"status\":\"deactivated\"},\"private_info_handle\":{\"enabled\":true,\"custom_fields_enabled\":false}},\"payment_method_count\":10,\"product_setting\":{\"enabled_show_member_price\":true,\"enabled_product_review\":true,\"variation_display\":\"dropdown\",\"price_range_enabled\":true,\"enabled_pos_product_customized_price\":false,\"enabled_pos_product_price_tier\":false,\"preorder_add_to_cart_button_display\":\"depend_on_stock\",\"enabled_pos_pinned_product\":false},\"promotion_setting\":{\"show_promotion_reminder\":true,\"show_coupon\":true,\"multi_order_discount_strategy\":\"order_or_tier_promotion\",\"order_promotions_ignore_exclude_product\":true,\"order_gift_exclude_credit_and_point\":true,\"order_gift_threshold_mode\":\"after_all_discounts\",\"order_free_shipping_threshold_mode\":\"after_all_discounts\",\"category_item_gift_threshold_mode\":\"before_discounts\",\"category_item_free_shipping_threshold_mode\":\"before_discounts\"},\"rollout_keys\":[\"2026_pdp_revamp_mobile_addon_products\",\"3_layer_category\",\"3_layer_navigation\",\"3_layer_variation\",\"711_CB_13countries\",\"711_CB_pickup_TH\",\"711_c2b_report_v2\",\"711_cross_delivery\",\"AdminCancelRecurringSubscription_V1\",\"MC_WA_Template_Management\",\"MC_manual_order\",\"MO_Apply_Coupon_Code\",\"StaffCanBeDeleted_V1\",\"SummaryStatement_V1\",\"UTM_export\",\"UTM_register\",\"abandoned_cart_notification\",\"add_system_fontstyle\",\"add_to_cart_revamp\",\"addon_products_limit_10\",\"addon_products_limit_unlimited\",\"addon_quantity\",\"address_format_batch2\",\"address_format_jp\",\"address_format_my\",\"address_format_us\",\"address_format_vn\",\"admin_app_extension\",\"admin_clientele_profile\",\"admin_custom_domain\",\"admin_image_service\",\"admin_js_revamp_action_logs\",\"admin_js_upgrade_SL-32913\",\"admin_js_upgrade_SL-45990\",\"admin_logistic_bank_account\",\"admin_manual_order\",\"admin_realtime\",\"admin_search_crawl_setting\",\"admin_vietnam_dong\",\"admin_whitelist_ip\",\"adminapp_order_form\",\"adminapp_wa_contacts_list\",\"ads_system_new_tab\",\"advanced_menu_app\",\"advanced_menu_app_availability\",\"adyen_my_sc\",\"affiliate_by_product\",\"affiliate_dashboard\",\"affiliate_kol_report\",\"affiliate_kol_report_appstore\",\"affiliate_multiple_promotion\",\"affiliate_product_level_attribution\",\"alipay_hk_sc\",\"android_pos_agent_clockin_n_out\",\"android_pos_purchase_order_partial_in_storage\",\"android_pos_save_send_receipt\",\"android_pos_v2_force_upgrade_version_1-50-0_date_2025-08-30\",\"app_categories_filtering\",\"app_multiplan\",\"app_subscription_prorated_billing\",\"apply_multi_order_discount\",\"apps_store\",\"apps_store_blog\",\"apps_store_fb_comment\",\"apps_store_wishlist\",\"appstore_free_trial\",\"archive_order_data\",\"archive_order_ui\",\"assign_products_to_category\",\"auth_flow_revamp\",\"auto_credit\",\"auto_credit_notify\",\"auto_credit_percentage\",\"auto_credit_recurring\",\"auto_reply_comment\",\"auto_reply_fb\",\"auto_save_sf_plus_address\",\"availability_buy_online_pickup_instore\",\"availability_preview_buy_online_pickup_instore\",\"back_in_stock_appstore\",\"back_in_stock_notify\",\"basket_comparising_link_CNY\",\"basket_comparising_link_HKD\",\"basket_comparising_link_TWD\",\"basket_invoice_field\",\"basket_pricing_page_cny\",\"basket_pricing_page_hkd\",\"basket_pricing_page_myr\",\"basket_pricing_page_sgd\",\"basket_pricing_page_thb\",\"basket_pricing_page_twd\",\"basket_pricing_page_usd\",\"basket_pricing_page_vnd\",\"basket_subscription_coupon\",\"basket_subscription_email\",\"bianco_setting\",\"bidding_select_product\",\"bing_ads\",\"birthday_format_v2\",\"block_gtm_for_lighthouse\",\"blog\",\"blog_app\",\"blog_revamp_admin\",\"blog_revamp_admin_category\",\"blog_revamp_doublewrite\",\"blog_revamp_related_products\",\"blog_revamp_shop_category\",\"blog_revamp_singleread\",\"breadcrumb\",\"broadcast_addfilter\",\"broadcast_advanced_filters\",\"broadcast_analytics\",\"broadcast_center\",\"broadcast_clone\",\"broadcast_email_html\",\"broadcast_facebook_template\",\"broadcast_line_template\",\"broadcast_preset_time\",\"broadcast_to_unsubscribers_sms\",\"broadcast_unsubscribe_email\",\"bulk_action_customer\",\"bulk_action_product\",\"bulk_assign_point\",\"bulk_import_multi_lang\",\"bulk_payment_delivery_setting\",\"bulk_printing_labels_711C2C\",\"bulk_update_dynamic_fields\",\"bulk_update_job\",\"bulk_update_new_fields\",\"bulk_update_product_download_with_filter\",\"bulk_update_tag\",\"bulk_update_tag_enhancement\",\"bundle_add_type\",\"bundle_group\",\"bundle_page\",\"bundle_pricing\",\"bundle_promotion_apply_enhancement\",\"bundle_stackable\",\"buy_button\",\"buy_now_button\",\"buyandget_promotion\",\"callback_service\",\"cancel_order_by_customer\",\"cancel_order_by_customer_v2\",\"cart_addon\",\"cart_addon_condition\",\"cart_addon_limit\",\"cart_use_product_service\",\"cart_uuid\",\"category_banner_multiple\",\"category_limit_unlimited\",\"category_sorting\",\"channel_fb\",\"channel_integration\",\"channel_line\",\"charge_shipping_fee_by_product_qty\",\"chat_widget\",\"chat_widget_facebook\",\"chat_widget_ig\",\"chat_widget_line\",\"chat_widget_livechat\",\"chat_widget_whatsapp\",\"chatbot_card_carousel\",\"chatbot_card_template\",\"chatbot_image_widget\",\"chatbot_keywords_matching\",\"chatbot_welcome_template\",\"checkout_membercheckbox_toggle\",\"checkout_revamp_checkout_page_v2024\",\"checkout_revamp_v2024\",\"checkout_setting\",\"cn_pricing_page_2019\",\"cod_not_pickup_blacklist\",\"combine_orders_app\",\"comment_list_export\",\"component_h1_tag\",\"connect_new_facebookpage\",\"consolidated_billing\",\"contact_us_mobile\",\"cookie_consent\",\"country_code\",\"coupon_center_back_to_cart\",\"coupon_center_enhancement_phase1\",\"coupon_notification\",\"coupon_v2\",\"create_staff_revamp\",\"credit_amount_condition_hidden\",\"credit_campaign\",\"credit_condition_5_tier_ec\",\"credit_installment_payment_fee_hidden\",\"credit_point_report\",\"credit_point_triggerpoint\",\"crm_email_custom\",\"crm_notify_preview\",\"crm_sms_custom\",\"crm_sms_notify\",\"cross_shop_tracker\",\"custom_css\",\"custom_home_delivery_tw\",\"custom_notification_shorten_url\",\"custom_notify\",\"custom_order_export\",\"customer_advanced_filter\",\"customer_coupon\",\"customer_custom_field_limit_5\",\"customer_data_secure\",\"customer_edit\",\"customer_export_v2\",\"customer_group\",\"customer_group_analysis\",\"customer_group_broadcast\",\"customer_group_customer_spend_period\",\"customer_group_filter_p2\",\"customer_group_filter_p3\",\"customer_group_regenerate\",\"customer_group_sendcoupon\",\"customer_group_smartrfm_filter\",\"customer_import_50000_failure_report\",\"customer_import_v2\",\"customer_import_v3\",\"customer_list\",\"customer_new_report\",\"customer_referral\",\"customer_referral_notify\",\"customer_search_match\",\"customer_tag\",\"dashboard_v2\",\"dashboard_v2_revamp\",\"date_picker_v2\",\"deep_link_support_linepay\",\"deep_link_support_payme\",\"deep_search\",\"default_theme_ultrachic\",\"delivery_time\",\"delivery_time_with_quantity\",\"design_submenu\",\"dev_center_app_store\",\"disable_footer_brand\",\"disable_old_upgrade_reminder\",\"domain_applicable\",\"doris_bien_setting\",\"dusk_setting\",\"dynamic_
228shipping_rate_refactor\",\"ec_order_unlimit\",\"ecpay_expirydate\",\"ecpay_payment_gateway\",\"einvoice_bulk_update\",\"einvoice_edit\",\"einvoice_list_by_day\",\"einvoice_newlogic\",\"einvoice_tradevan\",\"email_credit_expire_notify\",\"email_custom\",\"email_member_forget_password_notify\",\"email_member_register_notify\",\"email_order_notify\",\"email_verification\",\"enable_body_script\",\"enable_calculate_api_promotion_apply\",\"enable_calculate_api_promotion_filter\",\"enable_cart_api\",\"enable_cart_service\",\"enable_corejs_splitting\",\"enable_lazysizes_image_tag\",\"enable_new_css_bundle\",\"enable_order_revamp_transfer_order\",\"enable_order_revamp_update_order\",\"enable_order_status_callback_revamp_for_promotion\",\"enable_order_status_callback_revamp_for_storefront\",\"enable_promotion_usage_record\",\"enable_shopjs_splitting\",\"enhanced_catalog_feed\",\"exclude_product\",\"exclude_product_v2\",\"execute_shipment_permission\",\"export_inventory_report_v2\",\"express_cart\",\"express_checkout_pages\",\"extend_reminder\",\"external_redeem_coupon\",\"facebook_ads\",\"facebook_dia\",\"facebook_line_promotion_notify\",\"facebook_login\",\"facebook_messenger_subscription\",\"facebook_notify\",\"facebook_oauth_pages_utility_messaging\",\"facebook_pixel_manager\",\"fb_1on1_chat\",\"fb_broadcast\",\"fb_broadcast_sc\",\"fb_broadcast_sc_p2\",\"fb_entrance_optimization\",\"fb_feed_unlimit\",\"fb_group\",\"fb_menu\",\"fb_messenger_onetime_notification\",\"fb_multi_category_feed\",\"fb_offline_conversions_api\",\"fb_pixel_matching\",\"fb_pixel_v2\",\"fb_post_management\",\"fb_product_set\",\"fb_quick_signup_link\",\"fb_shop_now_button\",\"fb_ssapi\",\"fb_sub_button\",\"fb_welcome_msg\",\"fbe_oe\",\"fbe_shop\",\"fbe_v2\",\"fbe_v2_edit\",\"feature_alttag_phase1\",\"feature_alttag_phase2\",\"flash_price_campaign\",\"fm_order_receipt\",\"fmt_c2c_newlabel\",\"fmt_revision\",\"footer_brand\",\"footer_builder\",\"footer_builder_new\",\"form_builder\",\"form_builder_access\",\"form_builder_user_management\",\"form_builder_v2_elements\",\"form_builder_v2_receiver\",\"form_builder_v2_report\",\"freeshipping_promotion_condition\",\"get_coupon\",\"get_promotions_by_cart\",\"gift_promotion_condition\",\"gift_shipping_promotion_discount_condition\",\"gifts_limit_10\",\"gifts_limit_unlimited\",\"godaddy\",\"google_ads_api\",\"google_ads_manager\",\"google_analytics_4\",\"google_analytics_manager\",\"google_dynamic_remarketing_tag\",\"google_enhanced_conversions\",\"google_merchant_api\",\"google_preorder_feed\",\"google_product_category_3rdlayer\",\"google_recaptcha\",\"google_remarketing_manager\",\"google_signup_login\",\"google_tag_manager\",\"gp_tw_sc\",\"group_url_bind_post_live\",\"h2_tag_phase1\",\"hct_logistics_bills_report\",\"hidden_product\",\"hidden_product_p2\",\"hide_credit_point_record_balance\",\"hk_pricing_page_2019\",\"hkd_pricing_page_disabled_2020\",\"ig_browser_notify\",\"ig_live\",\"ig_login_entrance\",\"ig_new_api\",\"image_gallery\",\"image_gallery_p2\",\"image_host_by_region\",\"image_limit_100000\",\"image_limit_30000\",\"image_widget_mobile\",\"inbox_manual_order\",\"inbox_send_cartlink\",\"increase_variation_limit\",\"instagram_create_post\",\"instagram_post_sales\",\"instant_order_form\",\"integrated_label_711\",\"integrated_sfexpress\",\"integration_one\",\"inventory_change_reason\",\"inventory_search_v2\",\"invtransfer_purchaseorder_picker_use_product_service\",\"job_api_products_export\",\"job_api_user_export\",\"job_product_import\",\"jquery_v3\",\"kingsman_v2_setting\",\"layout_engine_service_kingsman_blogs\",\"layout_engine_service_kingsman_layout\",\"layout_engine_service_kingsman_member_center\",\"layout_engine_service_kingsman_pdp\",\"layout_engine_service_kingsman_plp\",\"layout_engine_service_kingsman_promotions\",\"layout_engine_service_varm_blogs\",\"layout_engine_service_varm_member_center\",\"layout_engine_service_varm_pdp\",\"layout_engine_service_varm_plp\",\"layout_engine_service_varm_promotions\",\"line_1on1_chat\",\"line_abandon_notification\",\"line_ads_tag\",\"line_broadcast\",\"line_in_chat_shopping\",\"line_live\",\"line_login\",\"line_login_mobile\",\"line_point_cpa_tag\",\"line_shopping_new_fields\",\"line_signup\",\"live_after_keyword\",\"live_ai_tag_comments\",\"live_announce_bids\",\"live_announce_buyer\",\"live_bidding\",\"live_broadcast_v2\",\"live_bulk_checkoutlink\",\"live_bulk_edit\",\"live_checkout_notification\",\"live_checkout_notification_all\",\"live_checkout_notification_message\",\"live_comment_discount\",\"live_comment_robot\",\"live_create_product_v2\",\"live_crosspost\",\"live_dashboard_product\",\"live_event_discount\",\"live_exclusive_price\",\"live_fb_group\",\"live_fhd_video\",\"live_general_settings\",\"live_group_event\",\"live_host_panel\",\"live_ig_messenger_broadcast\",\"live_ig_product_recommend\",\"live_im_switch\",\"live_keyword_switch\",\"live_line_broadcast\",\"live_line_management\",\"live_line_multidisplay\",\"live_luckydraw_enhancement\",\"live_messenger_broadcast\",\"live_order_block\",\"live_print_advanced\",\"live_product_auto_order_tag\",\"live_product_recommend\",\"live_shopline_announcement\",\"live_shopline_beauty_filter\",\"live_shopline_keyword\",\"live_shopline_product_card\",\"live_shopline_view\",\"live_shopline_view_marquee\",\"live_show_storefront_facebook\",\"live_show_storefront_shopline\",\"live_stream_settings\",\"locale_revamp\",\"lock_cart_sc_product\",\"logistic_bill_v2_711_b2c\",\"logistic_bill_v2_711_c2c\",\"logistic_bill_v2_fmt_b2c\",\"logistic_bill_v2_fmt_c2c\",\"logistic_bill_v2_fmt_frozen\",\"logistics_kyc_application_entrance\",\"logo_favicon\",\"luckydraw_products\",\"luckydraw_qualification\",\"manual_activation\",\"manual_order\",\"manual_order_7-11\",\"manual_order_ec_to_sc\",\"manually_bind_post\",\"marketing_affiliate\",\"marketing_affiliate_p2\",\"marketing_sms_subscribed\",\"mc-history-instant\",\"mc_711crossborder\",\"mc_ad_tag\",\"mc_assign_message\",\"mc_auto_bind_member\",\"mc_autoreply_cotent\",\"mc_autoreply_question\",\"mc_autoreply_trigger\",\"mc_broadcast\",\"mc_broadcast_v2\",\"mc_bulk_read\",\"mc_chatbot_template\",\"mc_delete_message\",\"mc_edit_cart\",\"mc_history_instant\",\"mc_history_post\",\"mc_im\",\"mc_inbox_autoreply\",\"mc_input_status\",\"mc_instant_notifications\",\"mc_invoicetitle_optional\",\"mc_keyword_autotagging\",\"mc_line_broadcast\",\"mc_line_broadcast_all_friends\",\"mc_line_cart\",\"mc_logistics_hct\",\"mc_logistics_tcat\",\"mc_manage_blacklist\",\"mc_mark_todo\",\"mc_new_menu\",\"mc_phone_tag\",\"mc_reminder_unpaid\",\"mc_reply_pic\",\"mc_setting_message\",\"mc_setting_orderform\",\"mc_shop_message_refactor\",\"mc_smart_advice\",\"mc_sort_waitingtime\",\"mc_sort_waitingtime_new\",\"mc_tw_invoice\",\"media_gcp_upload\",\"member_center_profile_revamp\",\"member_import_notify\",\"member_info_reward\",\"member_info_reward_subscription\",\"member_join_notice\",\"member_password_setup_notify\",\"member_points\",\"member_points_expiry_enhancement\",\"member_points_notify\",\"member_price\",\"membership_tier_double_write\",\"membership_tier_logic_revamp\",\"membership_tier_notify\",\"membership_tiers\",\"memebr_center_point_credit_revamp\",\"menu_limit_100\",\"menu_limit_unlimited\",\"merchant_automatic_payment_setting\",\"merchant_bills_credits\",\"message_center_v3\",\"message_revamp\",\"mo_remove_discount\",\"mobile_and_email_signup\",\"mobile_signup_p2\",\"modularize_address_format\",\"molpay_credit_card\",\"multi_lang\",\"multicurrency\",\"my_pricing_page_2019\",\"myapp_reauth_alert\",\"myr_pricing_page_disabled_2020\",\"new_app_subscription\",\"new_layout_for_mobile_and_pc\",\"new_onboarding_flow\",\"new_return_management\",\"new_settings_apply_all_promotion\",\"new_signup_flow\",\"new_sinopac_3d\",\"notification_custom_sending_time\",\"npb_theme_philia\",\"npb_widget_font_size_color\",\"ob_revamp\",\"ob_sgstripe\",\"ob_twecpay\",\"oceanpay\",\"old_fbe_removal\",\"onboarding_basketplan\",\"onboarding_handle\",\"one_new_filter\",\"one_page_store\",\"one_page_store_1000\",\"one_page_store_checkout\",\"one_page_store_clone\",\"one_page_store_login\",\"one_page_store_product_set\",\"one_page_store_promotion_checkbox\",\"online_credit_redemption_toggle\",\"online_store_design\",\"online_store_design_setup_guide_basketplan\",\"opb_bank_transfer_deprecation_consent\",\"opb_combine_payment\",\"opb_invoice\",\"opb_single_checkout_revamp\",\"opb_tw_virtual_acct\",\"order_add_to_cart\",\"order_archive_calculation_revamp_crm_amount\",\"order_archive_calculation_revamp_crm_member\",\"order_archive_product_testing\",\"order_archive_testing\",\"order_archive_testing_crm\",\"order_archive_testing_order_details\",\"order_archive_testing_return_order\",\"order_confirmation_slip_upload\",\"order_custom_field_limit_5\",\"order_custom_notify\",\"order_decoupling_product_revamp\",\"order_discount_stackable\",\"order_export_366day\",\"order_export_v2\",\"order_filter_shipped_date\",\"order_message_broadcast\",\"order_new_source\",\"order_promotion_split\",\"order_search_custom_field\",\"order_search_sku\",\"order_select_across_pages\",\"order_slp_auto_refund\",\"order_sms_notify\",\"order_split\",\"order_status_non_automation\",\"order_status_tag_color\",\"order_tag\",\"orderemail_new_logic\",\"other_
228custom_notify\",\"out_of_stock_order\",\"page_builder_revamp\",\"page_builder_revamp_theme_setting\",\"page_builder_revamp_theme_setting_initialized\",\"page_builder_section_cache_enabled\",\"page_builder_widget_accordion\",\"page_builder_widget_blog\",\"page_builder_widget_category\",\"page_builder_widget_collage\",\"page_builder_widget_countdown\",\"page_builder_widget_custom_liquid\",\"page_builder_widget_instagram\",\"page_builder_widget_product_text\",\"page_builder_widget_subscription\",\"page_builder_widget_video\",\"page_limit_unlimited\",\"page_use_product_service\",\"page_view_cache\",\"pakpobox\",\"partial_free_shipping\",\"payme\",\"payment_condition\",\"payment_fee_config\",\"payment_image\",\"payment_slip_notify\",\"paypal_upgrade\",\"pdp_image_lightbox\",\"pdp_image_lightbox_icon\",\"pdp_product_sold_count\",\"pending_subscription\",\"philia_setting\",\"pickup_remember_store\",\"pickup_remember_store_checkout_revamp_v2024\",\"plp_label_wording\",\"plp_product_seourl\",\"plp_variation_selector\",\"plp_wishlist\",\"point_campaign\",\"point_redeem_to_cash\",\"point_tier_expiration_notify\",\"pos_only_product_settings\",\"pos_retail_store_price\",\"pos_setup_guide_basketplan\",\"post_cancel_connect\",\"post_commerce_stack_comment\",\"post_fanpage_luckydraw\",\"post_fb_group\",\"post_general_setting\",\"post_lock_pd\",\"post_sales_dashboard\",\"postsale_auto_reply\",\"postsale_create_post\",\"postsale_ig_auto_reply\",\"postsales_connect_multiple_posts\",\"preorder_limit\",\"preset_publish\",\"price_discount_label_plp\",\"product_available_time\",\"product_cost_permission\",\"product_feed_info\",\"product_feed_manager_availability\",\"product_feed_revamp\",\"product_index_v2\",\"product_info\",\"product_limit_1000\",\"product_limit_unlimited\",\"product_log_v2\",\"product_page_limit_10\",\"product_quantity_update\",\"product_recommendation_abtesting\",\"product_revamp_doublewrite\",\"product_revamp_singleread\",\"product_review_bulk_export_import\",\"product_review_import\",\"product_review_import_installable\",\"product_review_plp\",\"product_review_reward\",\"product_review_reward_conditions\",\"product_search\",\"product_set_revamp\",\"product_set_show_out_of_stock\",\"product_set_v2_enhancement\",\"product_set_with_member_price\",\"product_subscription_applied_credits\",\"product_summary\",\"promotion_blacklist\",\"promotion_filter_by_date\",\"promotion_first_purchase\",\"promotion_first_purchase_channel\",\"promotion_hour\",\"promotion_limit_10\",\"promotion_limit_100\",\"promotion_limit_unlimited\",\"promotion_minitem\",\"promotion_page\",\"promotion_page_reminder\",\"promotion_page_seo_button\",\"promotion_product_picker_v2\",\"promotion_record_archive_test\",\"promotion_reminder\",\"promotion_revamp_phase1-1\",\"promotion_revamp_phase1-2\",\"purchase_limit_campaign\",\"quick_answer\",\"recaptcha_reset_pw\",\"redirect_301_settings\",\"rejected_bill_reminder\",\"remove_fblike_sc\",\"rep_download_log_ip_identity\",\"repay_cookie\",\"replace_janus_interface\",\"replace_lms_old_oa_interface\",\"reports\",\"revert_credit\",\"revert_credit_p2\",\"revert_credit_status\",\"reward_campaign_copy\",\"reward_campaign_exclude_product\",\"sales_dashboard\",\"sangria_setting\",\"sc_advanced_keyword\",\"sc_ai_chat_analysis\",\"sc_ai_suggested_reply\",\"sc_alipay_standard\",\"sc_atm\",\"sc_auto_bind_member\",\"sc_autodetect_address\",\"sc_autodetect_paymentslip\",\"sc_autoreply_icebreaker\",\"sc_broadcast_permissions\",\"sc_clearcart\",\"sc_clearcart_all\",\"sc_comment_label\",\"sc_comment_list\",\"sc_conversations_statistics_sunset\",\"sc_download_adminapp\",\"sc_facebook_broadcast\",\"sc_facebook_live\",\"sc_fb_ig_subscription\",\"sc_gpt_chatsummary\",\"sc_gpt_content_generator\",\"sc_gpt_knowledge_base\",\"sc_group_pm_commentid\",\"sc_group_webhook\",\"sc_intercom\",\"sc_keywords\",\"sc_line_live_pl\",\"sc_list_search\",\"sc_live_line\",\"sc_lock_inventory\",\"sc_manual_order\",\"sc_mc_settings\",\"sc_mo_711emap\",\"sc_order_unlimit\",\"sc_outstock_msg\",\"sc_overall_statistics\",\"sc_overall_statistics_api_v3\",\"sc_overall_statistics_v2\",\"sc_pickup\",\"sc_post_feature\",\"sc_product_set\",\"sc_product_variation\",\"sc_sidebar\",\"sc_similar_question_replies\",\"sc_slp_subscription_promotion\",\"sc_standard\",\"sc_store_pickup\",\"sc_wa_contacts_list\",\"sc_wa_message_report\",\"sc_wa_permissions\",\"scheduled_home_page\",\"search_function_image_gallery\",\"security_center\",\"select_all_customer\",\"select_all_inventory\",\"send_coupon_notification\",\"sensitive_operation_email_notify\",\"session_expiration_period\",\"setup_guide_basketplan\",\"sfexpress_centre\",\"sfexpress_eflocker\",\"sfexpress_service\",\"sfexpress_store\",\"sg_onboarding_currency\",\"share_cart_link\",\"shop_builder_plp\",\"shop_category_filter\",\"shop_category_filter_bulk_action\",\"shop_product_search_rate_limit\",\"shop_related_recaptcha\",\"shop_template_advanced_setting\",\"shopback_cashback\",\"shopline_captcha\",\"shopline_email_captcha\",\"shopline_product_reviews\",\"shoplytics_api_ordersales_v4\",\"shoplytics_api_psa_wide_table\",\"shoplytics_benchmark\",\"shoplytics_broadcast_api_v3\",\"shoplytics_channel_store_permission\",\"shoplytics_credit_analysis\",\"shoplytics_credit_analysis_reward_birthday_breakdown\",\"shoplytics_customer_refactor_api_v3\",\"shoplytics_date_picker_v2\",\"shoplytics_event_realtime_refactor_api_v3\",\"shoplytics_events_api_v3\",\"shoplytics_export_flex\",\"shoplytics_homepage_v2\",\"shoplytics_invoices_api_v3\",\"shoplytics_lite\",\"shoplytics_membership_tier_growth\",\"shoplytics_online_order_source\",\"shoplytics_orders_api_v3\",\"shoplytics_ordersales_v3\",\"shoplytics_payments_api_v3\",\"shoplytics_pro\",\"shoplytics_product_revamp_api_v3\",\"shoplytics_promotions_api_v3\",\"shoplytics_psa_multi_stores_export\",\"shoplytics_psa_sub_categories\",\"shoplytics_rfim_enhancement_v3\",\"shoplytics_session_metrics\",\"shoplytics_staff_api_v3\",\"shoplytics_to_hd\",\"shoplytics_tracker_first_party\",\"shopping_session_enabled\",\"signin_register_revamp\",\"sitemap_cache_6hr\",\"sitemap_enhance_lang\",\"skya_setting\",\"sl_admin_inventory_count\",\"sl_admin_inventory_transfer\",\"sl_admin_purchase_order\",\"sl_admin_supplier\",\"sl_inventory_transfer_by_warehouse\",\"sl_logistics_bulk_action\",\"sl_logistics_fmt_freeze\",\"sl_logistics_modularize\",\"sl_payment_alipay\",\"sl_payment_cc\",\"sl_payment_standard_v2\",\"sl_payment_type_check\",\"sl_payments_apple_pay\",\"sl_payments_cc_promo\",\"sl_payments_my_cc\",\"sl_payments_my_fpx\",\"sl_payments_sg_cc\",\"sl_payments_tw_cc\",\"sl_pos\",\"sl_pos_SHOPLINE_Payments_tw\",\"sl_pos_admin\",\"sl_pos_admin_cancel_order\",\"sl_pos_admin_delete_order\",\"sl_pos_admin_inventory_transfer\",\"sl_pos_admin_order_archive_testing\",\"sl_pos_admin_purchase_order\",\"sl_pos_admin_register_shift\",\"sl_pos_admin_staff\",\"sl_pos_agent_by_channel\",\"sl_pos_agent_clockin_n_out\",\"sl_pos_agent_performance\",\"sl_pos_android_A4_printer\",\"sl_pos_android_check_cart_items_with_local_db\",\"sl_pos_android_order_reduction\",\"sl_pos_android_receipt_enhancement\",\"sl_pos_app_order_archive_testing\",\"sl_pos_app_transaction_filter_enhance\",\"sl_pos_apps_store\",\"sl_pos_bugfender_log_reduction\",\"sl_pos_bulk_import_update_enhancement\",\"sl_pos_check_duplicate_create_order\",\"sl_pos_claim_coupon\",\"sl_pos_convert_order_to_cart_by_snapshot\",\"sl_pos_credit_redeem\",\"sl_pos_customerID_duplicate_check\",\"sl_pos_customer_info_by_search\",\"sl_pos_customer_info_enhancement\",\"sl_pos_customer_product_preference\",\"sl_pos_customized_price\",\"sl_pos_disable_touchid_unlock\",\"sl_pos_discount\",\"sl_pos_einvoice_alert\",\"sl_pos_einvoice_refactor\",\"sl_pos_feature_permission\",\"sl_pos_force_upgrade_1-109-0\",\"sl_pos_force_upgrade_1-110-1\",\"sl_pos_free_gifts_promotion\",\"sl_pos_from_Swift_to_OC\",\"sl_pos_
228iOS_A4_printer\",\"sl_pos_iOS_app_transaction_filter_enhance\",\"sl_pos_iOS_cashier_revamp_cart\",\"sl_pos_iOS_cashier_revamp_product_list\",\"sl_pos_iPadOS_version_upgrade_remind_16_0_0\",\"sl_pos_initiate_couchbase\",\"sl_pos_inventory_count\",\"sl_pos_inventory_count_difference_reason\",\"sl_pos_inventory_count_for_selected_products\",\"sl_pos_inventory_feature_module\",\"sl_pos_inventory_transfer_app_can_create_note_date\",\"sl_pos_inventory_transfer_insert_enhancement\",\"sl_pos_inventory_transfer_request\",\"sl_pos_invoice_carrier_scan\",\"sl_pos_invoice_product_name_filter\",\"sl_pos_invoice_swiftUI_revamp\",\"sl_pos_invoice_toast_show\",\"sl_pos_ios_receipt_info_enhancement\",\"sl_pos_ios_small_label_enhancement\",\"sl_pos_ios_version_upgrade_remind\",\"sl_pos_itc\",\"sl_pos_logo_terms_and_condition\",\"sl_pos_member_points\",\"sl_pos_member_price\",\"sl_pos_multiple_payments\",\"sl_pos_new_report_customer_analysis\",\"sl_pos_new_report_daily_payment_methods\",\"sl_pos_new_report_overview\",\"sl_pos_new_report_product_preorder\",\"sl_pos_new_report_transaction_detail\",\"sl_pos_no_minimum_age\",\"sl_pos_one_einvoice_setting\",\"sl_pos_order_reduction\",\"sl_pos_order_refactor_admin\",\"sl_pos_order_upload_using_pos_service\",\"sl_pos_partial_return\",\"sl_pos_password_setting_refactor\",\"sl_pos_payment\",\"sl_pos_payment_method_picture\",\"sl_pos_payment_method_prioritized_and_hidden\",\"sl_pos_payoff_preorder\",\"sl_pos_pin_products\",\"sl_pos_price_by_channel\",\"sl_pos_product_add_to_cart_refactor\",\"sl_pos_product_list_ui_revamp\",\"sl_pos_product_set\",\"sl_pos_product_variation_ui\",\"sl_pos_promotion\",\"sl_pos_promotion_by_channel\",\"sl_pos_purchase_order_onlinestore\",\"sl_pos_purchase_order_partial_in_storage\",\"sl_pos_receipt_enhancement\",\"sl_pos_receipt_information\",\"sl_pos_receipt_preorder_return_enhancement\",\"sl_pos_receipt_setting_by_channel\",\"sl_pos_receipt_swiftUI_revamp\",\"sl_pos_register_shift\",\"sl_pos_report_shoplytics_psi\",\"sl_pos_revert_credit\",\"sl_pos_save_send_receipt\",\"sl_pos_shopline_payment_invoice_new_flow\",\"sl_pos_show_coupon\",\"sl_pos_stock_refactor\",\"sl_pos_supplier_refactor\",\"sl_pos_terminal_bills\",\"sl_pos_terminal_settlement\",\"sl_pos_terminal_tw\",\"sl_pos_toast_revamp\",\"sl_pos_transaction_conflict\",\"sl_pos_transaction_view_admin\",\"sl_pos_transfer_onlinestore\",\"sl_pos_user_permission\",\"sl_pos_variation_setting_refactor\",\"sl_purchase_order_by_warehouse\",\"sl_purchase_order_search_create_enhancement\",\"slp_bank_promotion\",\"slp_product_subscription\",\"slp_remember_credit_card\",\"slp_swap\",\"smart_omo_appstore\",\"smart_omo_credits\",\"smart_omo_customer_tag_note\",\"smart_omo_express_cart\",\"smart_omo_points\",\"smart_omo_redeem_coupon\",\"smart_omo_send_coupon\",\"smart_omo_show_coupon\",\"smart_product_recommendation\",\"smart_product_recommendation_plus\",\"smart_product_recommendation_plus_cart\",\"smart_product_recommendation_regular\",\"smart_recommended_related_products\",\"sms_broadcast\",\"sms_custom\",\"sms_with_shop_name\",\"social_channel_revamp\",\"social_channel_user\",\"social_name_in_order\",\"sort_out_of_stock_products_last\",\"split_order_applied_creditpoint\",\"sso_lang_th\",\"sso_lang_vi\",\"staff_elasticsearch\",\"staff_limit_5\",\"staff_limit_unlimited\",\"staff_service_migration\",\"static_resource_host_by_region\",\"stop_slp_approvedemail\",\"store_crm_pwa\",\"store_pick_up\",\"store_referral_export_import\",\"store_referral_setting\",\"storefront_app_extension\",\"storefront_return\",\"stripe_3d_secure\",\"stripe_3ds_cny\",\"stripe_3ds_hkd\",\"stripe_3ds_myr\",\"stripe_3ds_sgd\",\"stripe_3ds_thb\",\"stripe_3ds_usd\",\"stripe_3ds_vnd\",\"stripe_google_pay\",\"stripe_payment_intents\",\"stripe_radar\",\"stripe_subscription_my_account\",\"structured_data\",\"studio_livestream\",\"sub_sgstripe\",\"subscription_config_edit\",\"subscription_config_edit_delivery_payment\",\"subscription_currency\",\"subscription_order_expire_notify\",\"subscription_order_notify\",\"subscription_product\",\"subscription_promotion\",\"subscription_tw_virtual_acct\",\"tappay_3D_secure\",\"tappay_sdk_v2_3_2\",\"tappay_sdk_v3\",\"tax_inclusive_setting\",\"taxes_settings\",\"tcat_711pickup_sl_logisitics\",\"tcat_logistics_bills_report\",\"tcat_newlabel\",\"tcat_sftp\",\"th_pricing_page_2020\",\"thb_pricing_page_disabled_2020\",\"theme_bianco\",\"theme_doris_bien\",\"theme_kingsman_v2\",\"theme_level_3\",\"theme_sangria\",\"theme_ultrachic\",\"tier_birthday_credit\",\"tier_member_points\",\"tier_member_price\",\"tier_reward_app_availability\",\"tier_reward_app_installation\",\"tier_reward_app_p2\",\"tier_reward_credit\",\"tnc-checkbox\",\"toggle_mobile_category\",\"tw_app_shopback_cashback\",\"tw_fm_sms\",\"tw_pricing_page_2019\",\"tw_stripe_subscription\",\"twd_pricing_page_disabled_2020\",\"uc_integration\",\"uc_v2_endpoints\",\"ultra_setting\",\"unified_admin\",\"use_ngram_for_order_search\",\"user_center_social_channel\",\"user_credits\",\"user_credits_revamp_double_read\",\"validate_password_complexity\",\"variant_image_selector\",\"variant_saleprice_cost_weight\",\"variation_label_swatches\",\"varm_setting\",\"vn_pricing_page_2020\",\"vnd_pricing_page_disabled_2020\",\"wa_broadcast_customer_group\",\"wa_system_template\",\"wa_template_custom_content\",\"whatsapp_accept_marketing\",\"whatsapp_catalog\",\"whatsapp_extension\",\"whatsapp_order_form\",\"whatsapp_orderstatus_toggle\",\"wishlist_app\",\"yahoo_dot\",\"zotabox\",\"zotabox_installable\"],\"shop_default_home_url\":\"https://anelet.shoplineapp.com\",\"shop_status\":\"open\",\"show_sold_out\":true,\"sl_payment_merchant_id\":\"2620371809908959232\",\"supported_languages\":[\"en\",\"zh-hant\"],\"tags\":[\"cosmetic\"],\"time_zone\":\"Asia/Taipei\",\"updated_at\":\"2026-10-07T07:45:16.687Z\",\"user_setting\":{\"_id\":\"6576a183e2f261000eaf0a8c\",\"created_at\":\"2023-12-11T05:43:31.444Z\",\"data\":{\"general_fields\":[{\"type\":\"gender\",\"options\":{\"order\":{\"include\":\"false\",\"required\":\"false\"},\"signup\":{\"include\":\"true\",\"required\":\"true\"},\"profile\":{\"include\":\"true\",\"required\":\"true\"}}},{\"type\":\"birthday\",\"options\":{\"order\":{\"include\":\"false\",\"required\":\"false\"},\"signup\":{\"include\":\"true\",\"required\":\"true\"},\"profile\":{\"include\":\"true\",\"required\":\"true\"}}}],\"minimum_age_limit\":13,\"custom_fields\":[],\"signup_method\":\"email_and_mobile\",\"sms_verification\":{\"status\":\"true\",\"supported_countries\":[\"HK\",\"TW\",\"CN\",\"TH\",\"MY\",\"SG\",\"JP\",\"KR\",\"ID\",\"MO\"]},\"facebook_login\":{\"status\":\"active\",\"app_id\":\"6943808995717026\"},\"google_login\":{\"status\":\"inactive\",\"client_id\":\"\",\"client_secret\":\"\"},\"enable_facebook_comment\":null,\"facebook_comment\":null,\"line_login\":{\"status\":\"active\"},\"recaptcha_signup\":{\"status\":\"true\",\"site_key\":\"6LdXuMspAAAAAOq6CWV8J2I49kmGJoGxnZ2qvhcb\"},\"email_verification\":{\"status\":\"true\"},\"login_with_verification\":{\"status\":\"true\"},\"upgrade_reminder\":{\"status\":\"active\"}
228,\"enable_member_point\":true,\"enable_user_credit\":true,\"birthday_format\":\"YYYY/MM/DD\",\"send_birthday_credit_period\":\"monthly\",\"member_info_reward\":{\"enabled\":false,\"reward_on\":[],\"subscription_reward_on\":[],\"coupons\":{\"enabled\":false,\"promotion_ids\":[]}},\"login_lambda_callback_function_name\":null,\"enable_age_policy\":true,\"force_complete_info\":false,\"membership_promo_banner\":{\"text\":{\"display\":\"default\",\"custom_content\":{\"en\":{\"title\":\"\",\"content\":\"\"},\"zh-hant\":{\"title\":\"\",\"content\":\"\"}}},\"image\":{\"display\":\"hidden\",\"custom_content\":{\"en\":\"\",\"zh-hant\":\"\"}}},\"user_credit_expired\":{\"sms\":{\"status\":\"inactive\"},\"email\":{\"status\":\"active\"},\"line_mes_api\":{\"status\":\"inactive\"}}},\"item_type\":\"\",\"key\":\"users\",\"name\":null,\"owner_id\":\"6576a1830ee9d100760d043d\",\"owner_type\":\"Merchant\",\"publish_status\":\"published\",\"status\":\"active\",\"updated_at\":\"2026-03-10T07:37:47.451Z\",\"value\":null},\"price_range_preview\":false},\"localeData\":{\"loadedLanguage\":{\"name\":\"English\",\"code\":\"en\"},\"supportedLocales\":[{\"name\":\"English\",\"code\":\"en\"},{\"name\":\"ç¹é«ä¸æ\",\"code\":\"zh-hant\"}]},\"currentUser\":null,\"themeSettings\":{\"hide_language_selector\":false,\"is_multicurrency_enabled\":true,\"messages_enabled\":true,\"hide_languages\":[],\"page_background\":\"ffffff\",\"page_text\":\"282210\",\"page_text_link\":\"282210\",\"announcement_background\":\"f7f3ee\",\"announcement_text\":\"282210\",\"header_background\":\"ffffff\",\"header_text\":\"332d27\",\"header_icon\":\"332d27\",\"primary_background\":\"a68a49\",\"primary_text\":\"ffffff\",\"buy_now_background\":\"a68a49\",\"buy_now_text\":\"ffffff\",\"product_promotion_label_background\":\"f7f3ee\",\"product_promotion_label_text\":\"282210\",\"footer_background\":\"f7f3ee\",\"footer_text\":\"282210\",\"footer_icon\":\"282210\",\"copyright_background\":\"f7f3ee\",\"copyright_text\":\"282210\",\"anti_fraud_background\":\"f7f3ee\",\"anti_fraud_text\":\"282210\",\"font_title\":\"Noto Sans\",\"font_size_title\":\"1.2\",\"font_paragraph\":\"Noto Sans\",\"font_size_paragraph\":\"1\",\"mobile_categories_collapsed\":true,\"mobile_categories_removed\":true,\"categories_collapsed\":false,\"image_fill\":false,\"variation_image_style\":\"square\",\"variation_image_size\":\"md\",\"plp_variation_selector\":{\"enabled\":false,\"show_variation\":\"1\"},\"variation_image_selector_enabled\":false,\"variation_image_selector_variation\":\"1\",\"product_name_align\":\"center\",\"product_custom_label_style\":\"rounded-rectangle\",\"show_products_total\":false,\"category_page\":\"24\",\"hide_share_buttons\":true,\"goto_top\":false,\"enable_gdpr_cookies_banner\":false,\"updated_with_new_page_builder\":true,\"enabled_quick_cart\":true,\"opens_in_new_tab\":false,\"plp_wishlist\":true,\"buy_now_button\":{\"enabled\":true},\"enabled_sort_by_sold\":true,\"plp_variation_display\":{\"type\":\"hidden\",\"show_variation\":\"1\"},\"plp_variation_display_type\":\"hidden\",\"plp_variation_display_variation\":\"1\",\"show_promotions_on_product\":true,\"secondary_color\":\"282210\",\"email_button_background\":\"f7f3ee\",\"email_button_text\":\"282210\"},\"isMultiCurrencyEnabled\":true,\"features\":{\"plans\":{\"free\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":false,\"membership\":false,\"shopline_logo\":true,\"user_credit\":{\"manaul\":false,\"auto\":false},\"variant_image_selector\":false},\"standard\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":false,\"membership\":false,\"shopline_logo\":true,\"user_credit\":{\"manaul\":false,\"auto\":false},\"variant_image_selector\":false},\"starter\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":false,\"membership\":false,\"shopline_logo\":true,\"user_credit\":{\"manaul\":false,\"auto\":false},\"variant_image_selector\":false},\"pro\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":false,\"membership\":false,\"shopline_logo\":false,\"user_credit\"
228:{\"manaul\":false,\"auto\":false},\"variant_image_selector\":false},\"business\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":true,\"membership\":true,\"shopline_logo\":false,\"user_credit\":{\"manaul\":false,\"auto\":false},\"facebook_comments_plugin\":true,\"variant_image_selector\":false},\"basic\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":false,\"membership\":false,\"shopline_logo\":false,\"user_credit\":{\"manaul\":false,\"auto\":false},\"variant_image_selector\":false},\"basic2018\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":false,\"membership\":false,\"shopline_logo\":true,\"user_credit\":{\"manaul\":false,\"auto\":false},\"variant_image_selector\":false},\"sc\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":true,\"membership\":false,\"shopline_logo\":true,\"user_credit\":{\"manaul\":false,\"auto\":false},\"facebook_comments_plugin\":true,\"facebook_chat_plugin\":true,\"variant_image_selector\":false},\"advanced\":{\"member_price\":false,\"cart_addon\":false,\"google_analytics_ecommerce\":true,\"membership\":false,\"shopline_logo\":false,\"user_credit\":{\"manaul\":false,\"auto\":false},\"facebook_comments_plugin\":true,\"facebook_chat_plugin\":true,\"variant_image_selector\":false},\"premium\":{\"member_price\":true,\"cart_addon\":true,\"google_analytics_ecommerce\":true,\"membership\":true,\"shopline_logo\":false,\"user_credit\":{\"manaul\":true,\"auto\":true},\"google_dynamic_remarketing\":true,\"facebook_comments_plugin\":true,\"facebook_chat_plugin\":true,\"wish_list\":true,\"facebook_messenger_subscription\":true,\"product_feed\":true,\"express_checkout\":true,\"variant_image_selector\":true},\"enterprise\":{\"member_price\":true,\"cart_addon\":true,\"google_analytics_ecommerce\":true,\"membership\":true,\"shopline_logo\":false,\"user_credit\":{\"manaul\":true,\"auto\":true},\"google_dynamic_remarketing\":true,\"facebook_comments_plugin\":true,\"facebook_chat_plugin\":true,\"wish_list\":true,\"facebook_messenger_subscription\":true,\"product_feed\":true,\"express_checkout\":true,\"variant_image_selector\":true},\"crossborder\":{\"member_price\":true,\"cart_addon\":true,\"google_analytics_ecommerce\":true,\"membership\":true,\"shopline_logo\":false,\"user_credit\":{\"manaul\":true,\"auto\":true},\"google_dynamic_remarketing\":true,\"facebook_comments_plugin\":true,\"facebook_chat_plugin\":true,\"wish_list\":true,\"facebook_messenger_subscription\":true,\"product_feed\":true,\"express_checkout\":true,\"variant_image_selector\":true},\"o2o\":{\"member_price\":true,\"cart_addon\":true,\"google_analytics_ecommerce\":true,\"membership\":true,\"shopline_logo\":false,\"user_credit\":{\"manaul\":true,\"auto\":true},\"google_dynamic_remarketing\":true,\"facebook_comments_plugin\":true,\"facebook_chat_plugin\":true,\"wish_list\":true,\"facebook_messenger_subscription\":true,\"product_feed\":true,\"express_checkout\":true,\"subscription_product\":true,\"variant_image_selector\":true}}},\"requestCountry\":\"US\",\"trackerEventData\":{\"Product ID\":\"6aa36e90de77e200134fb066\"},\"isRecaptchaEnabled\":true,\"isRecaptchaEnterprise\":false,\"recaptchaEnterpriseSiteKey\":\"6LeMcv0hAAAAADjAJkgZLpvEiuc6migO0KyLEadr\",\"recaptchaEnterpriseCheckboxSiteKey\":\"6LfQVEEoAAAAAAzllcvUxDYhfywH7-aY52nsJ2cK\",\"recaptchaSiteKey\":\"6LdXuMspAAAAAOq6CWV8J2I49kmGJoGxnZ2qvhcb\",\"currencyData\":{\"supportedCurrencies\":[{\"name\":\"\$ HKD\",\"symbol\":\"\$\",\"iso_code\":\"hkd\"},{\"name\":\"P MOP\",\"symbol\":\"P\",\"iso_code\":\"mop\"},{\"name\":\"Â¥ CNY\",\"symbol\":\"Â¥\",\"iso_code\":\"cny\"},{\"name\":\"\$ TWD\",\"symbol\":\"\$\",\"iso_code\":\"twd\"},{\"name\":\"\$ USD\",\"symbol\":\"\$\",\"iso_code\":\"usd\"},{\"name\":\"\$ SGD\",\"symbol\":\"\$\",\"iso_code\":\"sgd\"},{\"name\":\"⬠EUR\",\"symbol\":\"â¬\",\"iso_code\":\"eur\"},{\"name\":\"\$ AUD\",\"symbol\":\"\$\",\"iso_code\":\"aud\"},{\"name\":\"£ GBP\",\"symbol\":\"£\",\"iso_code\":\"gbp\"},{\"name\":\"â± PHP\",\"symbol\":\"â±\",\"iso_code\":\"php\"},{\"name\":\"RM MYR\",\"symbol\":\"RM\",\"iso_code\":\"myr\"},{\"name\":\"฿ THB\",\"symbol\":\"฿\",\"iso_code\":\"thb\"},{\"name\":\"د.Ø¥ AED\",\"symbol\":\"د.Ø¥\",\"iso_code\":\"aed\"},{\"name\":\"Â¥ JPY\",\"symbol\":\"Â¥\",\"iso_code\":\"jpy\"},{\"name\":\"\$ BND\",\"symbol\":\"\$\",\"iso_code\":\"bnd\"},{\"name\":\"â© KRW\",\"symbol\":\"â©\",\"iso_code\":\"krw\"},{\"name\":\"Rp IDR\",\"symbol\":\"Rp\",\"iso_code\":\"idr\"},{\"name\":\"â« VND\",\"symbol\":\"â«\",\"iso_code\":\"vnd\"},{\"name\":\"\$ CAD\",\"symbol\":\"\$\",\"iso_code\":\"cad\"}],\"requestCountryCurrencyCode\":\"TWD\"},\"previousUrl\":\"\",\"checkoutLandingPath\":\"/cart\",\"webpSupported\":65,\"pageType\":\"products-show\",\"paypalCnCl
228ientId\":\"AYVtr8kMzEyRCw725vQM_-hheFyo1FuWeaup4KPSvU1gg44L-NG5e2PNcwGnMo2MLCzGRg4eVHJhuqBP\",\"efoxPayVersion\":\"1.0.60\",\"universalPaymentSDKUrl\":\"https://cdn.myshopline.com\",\"shoplinePaymentCashierSDKUrl\":\"https://cdn.myshopline.com/pay/paymentElement/1.7.1/index.js\",\"shoplinePaymentV2Env\":\"prod\",\"shoplinePaymentGatewayEnv\":\"prod\",\"shoplinePaymentsIntegratedEnv\":\"production\",\"currentPath\":\"/products/mt-advent-calendar-2026\",\"isExceedCartLimitation\":null,\"familyMartEnv\":\"prod\",\"familyMartConfig\":{\"cvsname\":\"familymart.shoplineapp.com\"},\"familyMartFrozenConfig\":{\"cvsname\":\"familymartfreeze.shoplineapp.com\",\"cvslink\":\"https://familymartfreeze.shoplineapp.com/familymart_freeze_callback\",\"emap\":\"https://ecmfme.map.com.tw/ReceiveOrderInfo.aspx\"},\"pageIdentifier\":\"product_detail\",\"staticResourceHost\":\"https://static.shoplineapp.com/\",\"facebookAppId\":\"467428936681900\",\"facebookSdkVersion\":\"v2.7\",\"criteoAccountId\":null,\"criteoEmail\":null,\"shoplineCaptchaEnv\":\"prod\",\"shoplineCaptchaPublicKey\":\"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUXpOVJR72RcVR8To9lTILfKJnfTp+f69D2azJDN5U9FqcZhdYfrBegVRKxuhkwdn1uu6Er9PWV4Tp8tRuHYnlU+U72NRpb0S3fmToXL3KMKw/4qu2B3EWtxeh/6GPh3leTvMteZpGRntMVmJCJdS8PY1CG0w6QzZZ5raGKXQc2QIDAQAB\",\"defaultBlockedSmsCountries\":\"PS,MG,KE,AO,KG,UG,AZ,ZW,TJ,NG,GT,DZ,BD,BY,AF,LK,MA,EH,MM,EG,LV,OM,LT,UA,RU,KZ,KH,LY,ML,MW,IR,EE\",\"featureEnabledList\":{\"smartProductRecommendation\":{\"cartSidebarEnabled\":true,\"cartProductsEnabled\":true}}}'); 229</script>
229 230 231 232 233 234 235
235<script 236 src="https://browser.sentry-cdn.com/6.8.0/bundle.tracing.min.js" 237 integrity="sha384-PEpz3oi70IBfja8491RPjqj38s8lBU9qHRh+tBurFb6XNetbdvlRXlshYnKzMB0U" 238 crossorigin="anonymous" 239 defer 240 ></script>
240 241
241<script 242 src="https://browser.sentry-cdn.com/6.8.0/captureconsole.min.js" 243 integrity="sha384-FJ5n80A08NroQF9DJzikUUhiCaQT2rTIYeJyHytczDDbIiejfcCzBR5lQK4AnmVt" 244 crossorigin="anonymous" 245 defer 246 ></script>
246 247 248 249
250<script> 251 function sriOnError (event) { 252 if (window.Sentry) window.Sentry.captureException(event); 253 254 var script = document.createElement('script'); 255 var srcDomain = new URL(this.src).origin; 256 script.src = this.src.replace(srcDomain, ''); 257 if (this.defer) script.setAttribute("defer", "defer"); 258 document.getElementsByTagName('head')[0].insertBefore(script, null); 259 } 260</script>
260 261 262 263
264<script> 265window.lazySizesConfig = {} 266Object.assign(window.lazySizesConfig, { 267 lazyClass: 'sl-lazy', 268 loadingClass: 'sl-lazyloading', 269 loadedClass: 'sl-lazyloaded', 270 preloadClass: 'sl-lazypreload', 271 errorClass: 'sl-lazyerror', 272 iframeLoadMode: '1', 273 loadHidden: false 274}) 275</script>
275 276 277
278<script> 279/*! lazysizes - v5.3.2 */ 280(function(window, factory) { 281 var lazySizes = factory(window, window.document, Date); 282 window.lazySizes = lazySizes; 283 if(typeof module == 'object' && module.exports){ 284 module.exports = lazySizes; 285 } 286}(typeof window != 'undefined' ? 287 window : {}, 288/** 289 * @typedef { import("./types/global
vendor: 8,338 bytes, lines 289-674
289").LazySizesConfigPartial } LazySizesConfigPartial 290 */ 291function l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost 292 'use strict'; 293 /*jshint eqnull:true */ 294 295 var lazysizes, 296 /** 297 * @type { LazySizesConfigPartial } 298 */ 299 lazySizesCfg; 300 301 (function(){ 302 var prop; 303 304 var lazySizesDefaults = { 305 lazyClass: 'lazyload', 306 loadedClass: 'lazyloaded', 307 loadingClass: 'lazyloading', 308 preloadClass: 'lazypreload', 309 errorClass: 'lazyerror', 310 //strictClass: 'lazystrict', 311 autosizesClass: 'lazyautosizes', 312 fastLoadedClass: 'ls-is-cached', 313 iframeLoadMode: 0, 314 srcAttr: 'data-src', 315 srcsetAttr: 'data-srcset', 316 sizesAttr: 'data-sizes', 317 //preloadAfterLoad: false, 318 minSize: 40, 319 customMedia: {}, 320 init: true, 321 expFactor: 1.5, 322 hFac: 0.8, 323 loadMode: 2, 324 loadHidden: true, 325 ricTimeout: 0, 326 throttleDelay: 125, 327 }; 328 329 lazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {}; 330 331 for(prop in lazySizesDefaults){ 332 if(!(prop in lazySizesCfg)){ 333 lazySizesCfg[prop] = lazySizesDefaults[prop]; 334 } 335 } 336 })(); 337 338 if (!document || !document.getElementsByClassName) { 339 return { 340 init: function () {}, 341 /** 342 * @type { LazySizesConfigPartial } 343 */ 344 cfg: lazySizesCfg, 345 /** 346 * @type { true } 347 */ 348 noSupport: true, 349 }; 350 } 351 352 var docElem = document.documentElement; 353 354 var supportPicture = window.HTMLPictureElement; 355 356 var _addEventListener = 'addEventListener'; 357 358 var _getAttribute = 'getAttribute'; 359 360 /** 361 * Update to bind to window because 'this' becomes null during SSR 362 * builds. 363 */ 364 var addEventListener = window[_addEventListener].bind(window); 365 366 var setTimeout = window.setTimeout; 367 368 var requestAnimationFrame = window.requestAnimationFrame || setTimeout; 369 370 var requestIdleCallback = window.requestIdleCallback; 371 372 var regPicture = /^picture$/i; 373 374 var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded']; 375 376 var regClassCache = {}; 377 378 var forEach = Array.prototype.forEach; 379 380 /** 381 * @param ele {Element} 382 * @param cls {string} 383 */ 384 var hasClass = function(ele, cls) { 385 if(!regClassCache[cls]){ 386 regClassCache[cls] = new RegExp('(\\s|^)'+cls+'(\\s|$)'); 387 } 388 return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls]; 389 }; 390 391 /** 392 * @param ele {Element} 393 * @param cls {string} 394 */ 395 var addClass = function(ele, cls) { 396 if (!hasClass(ele, cls)){ 397 ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls); 398 } 399 }; 400 401 /** 402 * @param ele {Element} 403 * @param cls {string} 404 */ 405 var removeClass = function(ele, cls) { 406 var reg; 407 if ((reg = hasClass(ele,cls))) { 408 ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' ')); 409 } 410 }; 411 412 var addRemoveLoadEvents = function(dom, fn, add){ 413 var action = add ? _addEventListener : 'removeEventListener'; 414 if(add){ 415 addRemoveLoadEvents(dom, fn); 416 } 417 loadEvents.forEach(function(evt){ 418 dom[action](evt, fn); 419 }); 420 }; 421 422 /** 423 * @param elem { Element } 424 * @param name { string } 425 * @param detail { any } 426 * @param noBubbles { boolean } 427 * @param noCancelable { boolean } 428 * @returns { CustomEvent } 429 */ 430 var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){ 431 var event = document.createEvent('Event'); 432 433 if(!detail){ 434 detail = {}; 435 } 436 437 detail.instance = lazysizes; 438 439 event.initEvent(name, !noBubbles, !noCancelable); 440 441 event.detail = detail; 442 443 elem.dispatchEvent(event); 444 return event; 445 }; 446 447 var updatePolyfill = function (el, full){ 448 var polyfill; 449 if( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){ 450 if(full && full.src && !el[_getAttribute]('srcset')){ 451 el.setAttribute('srcset', full.src); 452 } 453 polyfill({reevaluate: true, elements: [el]}); 454 } else if(full && full.src){ 455 el.src = full.src; 456 } 457 }; 458 459 var getCSS = function (elem, style){ 460 return (getComputedStyle(elem, null) || {})[style]; 461 }; 462 463 /** 464 * 465 * @param elem { Element } 466 * @param parent { Element } 467 * @param [width] {number} 468 * @returns {number} 469 */ 470 var getWidth = function(elem, parent, width){ 471 width = width || elem.offsetWidth; 472 473 while(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){ 474 width = parent.offsetWidth; 475 parent = parent.parentNode; 476 } 477 478 return width; 479 }; 480 481 var rAF = (function(){ 482 var running, waiting; 483 var firstFns = []; 484 var secondFns = []; 485 var fns = firstFns; 486 487 var run = function(){ 488 var runFns = fns; 489 490 fns = firstFns.length ? secondFns : firstFns; 491 492 running = true; 493 waiting = false; 494 495 while(runFns.length){ 496 runFns.shift()(); 497 } 498 499 running = false; 500 }; 501 502 var rafBatch = function(fn, queue){ 503 if(running && !queue){ 504 fn.apply(this, arguments); 505 } else { 506 fns.push(fn); 507 508 if(!waiting){ 509 waiting = true; 510 (document.hidden ? setTimeout : requestAnimationFrame)(run); 511 } 512 } 513 }; 514 515 rafBatch._lsFlush = run; 516 517 return rafBatch; 518 })(); 519 520 var rAFIt = function(fn, simple){ 521 return simple ? 522 function() { 523 rAF(fn); 524 } : 525 function(){ 526 var that = this; 527 var args = arguments; 528 rAF(function(){ 529 fn.apply(that, args); 530 }); 531 } 532 ; 533 }; 534 535 var throttle = function(fn){ 536 var running; 537 var lastTime = 0; 538 var gDelay = lazySizesCfg.throttleDelay; 539 var rICTimeout = lazySizesCfg.ricTimeout; 540 var run = function(){ 541 running = false; 542 lastTime = Date.now(); 543 fn(); 544 }; 545 var idleCallback = requestIdleCallback && rICTimeout > 49 ? 546 function(){ 547 requestIdleCallback(run, {timeout: rICTimeout}); 548 549 if(rICTimeout !== lazySizesCfg.ricTimeout){ 550 rICTimeout = lazySizesCfg.ricTimeout; 551 } 552 } : 553 rAFIt(function(){ 554 setTimeout(run); 555 }, true) 556 ; 557 558 return function(isPriority){ 559 var delay; 560 561 if((isPriority = isPriority === true)){ 562 rICTimeout = 33; 563 } 564 565 if(running){ 566 return; 567 } 568 569 running = true; 570 571 delay = gDelay - (Date.now() - lastTime); 572 573 if(delay < 0){ 574 delay = 0; 575 } 576 577 if(isPriority || delay < 9){ 578 idleCallback(); 579 } else { 580 setTimeout(idleCallback, delay); 581 } 582 }; 583 }; 584 585 //based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html 586 var debounce = function(func) { 587 var timeout, timestamp; 588 var wait = 99; 589 var run = function(){ 590 timeout = null; 591 func(); 592 }; 593 var later = function() { 594 var last = Date.now() - timestamp; 595 596 if (last < wait) { 597 setTimeout(later, wait - last); 598 } else { 599 (requestIdleCallback || run)(run); 600 } 601 }; 602 603 return function() { 604 timestamp = Date.now(); 605 606 if (!timeout) { 607 timeout = setTimeout(later, wait); 608 } 609 }; 610 }; 611 612 var loader = (function(){ 613 var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started; 614 615 var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden; 616 617 var regImg = /^img$/i; 618 var regIframe = /^iframe$/i; 619 620 var supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent)); 621 622 var shrinkExpand = 0; 623 var currentExpand = 0; 624 625 var isLoading = 0; 626 var lowRuns = -1; 627 628 var resetPreloading = function(e){ 629 isLoading--; 630 if(!e || isLoading < 0 || !e.target){ 631 isLoading = 0; 632 } 633 }; 634 635 var isVisible = function (elem) { 636 if (isBodyHidden == null) { 637 isBodyHidden = getCSS(document.body, 'visibility') == 'hidden'; 638 } 639 640 return isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden'); 641 }; 642 643 var isNestedVisible = function(elem, elemExpand){ 644 var outerRect; 645 var parent = elem; 646 var visible = isVisible(elem); 647 648 eLtop -= elemExpand; 649 eLbottom += elemExpand; 650 eLleft -= elemExpand; 651 eLright += elemExpand; 652 653 while(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){ 654 visible = ((getCSS(parent, 'opacity') || 1) > 0); 655 656 if(visible && getCSS(parent, 'overflow') != 'visible'){ 657 outerRect = parent.getBoundingClientRect(); 658 visible = eLright > outerRect.left && 659 eLleft < outerRect.right && 660 eLbottom > outerRect.top - 1 && 661 eLtop < outerRect.bottom + 1 662 ; 663 } 664 } 665 666 return visible; 667 }; 668 669 var checkElements = function() { 670 var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, 671 beforeExpandVal, defaultExpand, preloadExpand, hFac; 672 var lazyloadElems = lazysizes.elements; 673 674
674// Modify the lazysizes source codeï¼ to extend support for lazy loading of shadow dom internal elements 675 // In order not to affect all merchants, conditional judgments are added to only affect incremental merchants. 676 // Triggering conditions: 677 // 1ãfeature key 'enable_shadow_dom' is on 678 // 2ãuse filter 'rich_content_format' to output content 679 if (lazysizes.extraElements && lazysizes.extraElements.length > 0) { 680 lazyloadElems = Array.from(lazyloadElems).concat(lazysizes.extraElements); 681 }
vendor: 11,323 bytes, lines 681-1101
681 682 683 if((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){ 684 685 i = 0; 686 687 lowRuns++; 688 689 for(; i < eLlen; i++){ 690 691 if(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;} 692 693 if(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;} 694 695 if(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){ 696 elemExpand = currentExpand; 697 } 698 699 if (!defaultExpand) { 700 defaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ? 701 docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 : 702 lazySizesCfg.expand; 703 704 lazysizes._defEx = defaultExpand; 705 706 preloadExpand = defaultExpand * lazySizesCfg.expFactor; 707 hFac = lazySizesCfg.hFac; 708 isBodyHidden = null; 709 710 if(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){ 711 currentExpand = preloadExpand; 712 lowRuns = 0; 713 } else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){ 714 currentExpand = defaultExpand; 715 } else { 716 currentExpand = shrinkExpand; 717 } 718 } 719 720 if(beforeExpandVal !== elemExpand){ 721 eLvW = innerWidth + (elemExpand * hFac); 722 elvH = innerHeight + elemExpand; 723 elemNegativeExpand = elemExpand * -1; 724 beforeExpandVal = elemExpand; 725 } 726 727 rect = lazyloadElems[i].getBoundingClientRect(); 728 729 if ((eLbottom = rect.bottom) >= elemNegativeExpand && 730 (eLtop = rect.top) <= elvH && 731 (eLright = rect.right) >= elemNegativeExpand * hFac && 732 (eLleft = rect.left) <= eLvW && 733 (eLbottom || eLright || eLleft || eLtop) && 734 (lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) && 735 ((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){ 736 unveilElement(lazyloadElems[i]); 737 loadedSomething = true; 738 if(isLoading > 9){break;} 739 } else if(!loadedSomething && isCompleted && !autoLoadElem && 740 isLoading < 4 && lowRuns < 4 && loadMode > 2 && 741 (preloadElems[0] || lazySizesCfg.preloadAfterLoad) && 742 (preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){ 743 autoLoadElem = preloadElems[0] || lazyloadElems[i]; 744 } 745 } 746 747 if(autoLoadElem && !loadedSomething){ 748 unveilElement(autoLoadElem); 749 } 750 } 751 }; 752 753 var throttledCheckElements = throttle(checkElements); 754 755 var switchLoadingClass = function(e){ 756 var elem = e.target; 757 758 if (elem._lazyCache) { 759 delete elem._lazyCache; 760 return; 761 } 762 763 resetPreloading(e); 764 addClass(elem, lazySizesCfg.loadedClass); 765 removeClass(elem, lazySizesCfg.loadingClass); 766 addRemoveLoadEvents(elem, rafSwitchLoadingClass); 767 triggerEvent(elem, 'lazyloaded'); 768 }; 769 var rafedSwitchLoadingClass = rAFIt(switchLoadingClass); 770 var rafSwitchLoadingClass = function(e){ 771 rafedSwitchLoadingClass({target: e.target}); 772 }; 773 774 var changeIframeSrc = function(elem, src){ 775 var loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode; 776 777 // loadMode can be also a string! 778 if (loadMode == 0) { 779 elem.contentWindow.location.replace(src); 780 } else if (loadMode == 1) { 781 elem.src = src; 782 } 783 }; 784 785 var handleSources = function(source){ 786 var customMedia; 787 788 var sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr); 789 790 if( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){ 791 source.setAttribute('media', customMedia); 792 } 793 794 if(sourceSrcset){ 795 source.setAttribute('srcset', sourceSrcset); 796 } 797 }; 798 799 var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){ 800 var src, srcset, parent, isPicture, event, firesLoad; 801 802 if(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){ 803 804 if(sizes){ 805 if(isAuto){ 806 addClass(elem, lazySizesCfg.autosizesClass); 807 } else { 808 elem.setAttribute('sizes', sizes); 809 } 810 } 811 812 srcset = elem[_getAttribute](lazySizesCfg.srcsetAttr); 813 src = elem[_getAttribute](lazySizesCfg.srcAttr); 814 815 if(isImg) { 816 parent = elem.parentNode; 817 isPicture = parent && regPicture.test(parent.nodeName || ''); 818 } 819 820 firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture)); 821 822 event = {target: elem}; 823 824 addClass(elem, lazySizesCfg.loadingClass); 825 826 if(firesLoad){ 827 clearTimeout(resetPreloadingTimer); 828 resetPreloadingTimer = setTimeout(resetPreloading, 2500); 829 addRemoveLoadEvents(elem, rafSwitchLoadingClass, true); 830 } 831 832 if(isPicture){ 833 forEach.call(parent.getElementsByTagName('source'), handleSources); 834 } 835 836 if(srcset){ 837 elem.setAttribute('srcset', srcset); 838 } else if(src && !isPicture){ 839 if(regIframe.test(elem.nodeName)){ 840 changeIframeSrc(elem, src); 841 } else { 842 elem.src = src; 843 } 844 } 845 846 if(isImg && (srcset || isPicture)){ 847 updatePolyfill(elem, {src: src}); 848 } 849 } 850 851 if(elem._lazyRace){ 852 delete elem._lazyRace; 853 } 854 removeClass(elem, lazySizesCfg.lazyClass); 855 856 rAF(function(){ 857 // Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015) 858 var isLoaded = elem.complete && elem.naturalWidth > 1; 859 860 if( !firesLoad || isLoaded){ 861 if (isLoaded) { 862 addClass(elem, lazySizesCfg.fastLoadedClass); 863 } 864 switchLoadingClass(event); 865 elem._lazyCache = true; 866 setTimeout(function(){ 867 if ('_lazyCache' in elem) { 868 delete elem._lazyCache; 869 } 870 }, 9); 871 } 872 if (elem.loading == 'lazy') { 873 isLoading--; 874 } 875 }, true); 876 }); 877 878 /** 879 * 880 * @param elem { Element } 881 */ 882 var unveilElement = function (elem){ 883 if (elem._lazyRace) {return;} 884 var detail; 885 886 var isImg = regImg.test(elem.nodeName); 887 888 //allow using sizes="auto", but don't use. it's invalid. Use data-sizes="auto" or a valid value for sizes instead (i.e.: sizes="80vw") 889 var sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes')); 890 var isAuto = sizes == 'auto'; 891 892 if( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;} 893 894 detail = triggerEvent(elem, 'lazyunveilread').detail; 895 896 if(isAuto){ 897 autoSizer.updateElem(elem, true, elem.offsetWidth); 898 } 899 900 elem._lazyRace = true; 901 isLoading++; 902 903 lazyUnveil(elem, detail, isAuto, sizes, isImg); 904 }; 905 906 var afterScroll = debounce(function(){ 907 lazySizesCfg.loadMode = 3; 908 throttledCheckElements(); 909 }); 910 911 var altLoadmodeScrollListner = function(){ 912 if(lazySizesCfg.loadMode == 3){ 913 lazySizesCfg.loadMode = 2; 914 } 915 afterScroll(); 916 }; 917 918 var onload = function(){ 919 if(isCompleted){return;} 920 if(Date.now() - started < 999){ 921 setTimeout(onload, 999); 922 return; 923 } 924 925 926 isCompleted = true; 927 928 lazySizesCfg.loadMode = 3; 929 930 throttledCheckElements(); 931 932 addEventListener('scroll', altLoadmodeScrollListner, true); 933 }; 934 935 return { 936 _: function(){ 937 started = Date.now(); 938 939 lazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass); 940 preloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass); 941 942 addEventListener('scroll', throttledCheckElements, true); 943 944 addEventListener('resize', throttledCheckElements, true); 945 946 addEventListener('pageshow', function (e) { 947 if (e.persisted) { 948 var loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass); 949 950 if (loadingElements.length && loadingElements.forEach) { 951 requestAnimationFrame(function () { 952 loadingElements.forEach( function (img) { 953 if (img.complete) { 954 unveilElement(img); 955 } 956 }); 957 }); 958 } 959 } 960 }); 961 962 if(window.MutationObserver){ 963 new MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} ); 964 } else { 965 docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true); 966 docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true); 967 setInterval(throttledCheckElements, 999); 968 } 969 970 addEventListener('hashchange', throttledCheckElements, true); 971 972 //, 'fullscreenchange' 973 ['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){ 974 document[_addEventListener](name, throttledCheckElements, true); 975 }); 976 977 if((/d$|^c/.test(document.readyState))){ 978 onload(); 979 } else { 980 addEventListener('load', onload); 981 document[_addEventListener]('DOMContentLoaded', throttledCheckElements); 982 setTimeout(onload, 20000); 983 } 984 985 if(lazysizes.elements.length){ 986 checkElements(); 987 rAF._lsFlush(); 988 } else { 989 throttledCheckElements(); 990 } 991 }, 992 checkElems: throttledCheckElements, 993 unveil: unveilElement, 994 _aLSL: altLoadmodeScrollListner, 995 }; 996 })(); 997 998 999 var autoSizer = (function(){ 1000 var autosizesElems; 1001 1002 var sizeElement = rAFIt(function(elem, parent, event, width){ 1003 var sources, i, len; 1004 elem._lazysizesWidth = width; 1005 width += 'px'; 1006 1007 elem.setAttribute('sizes', width); 1008 1009 if(regPicture.test(parent.nodeName || '')){ 1010 sources = parent.getElementsByTagName('source'); 1011 for(i = 0, len = sources.length; i < len; i++){ 1012 sources[i].setAttribute('sizes', width); 1013 } 1014 } 1015 1016 if(!event.detail.dataAttr){ 1017 updatePolyfill(elem, event.detail); 1018 } 1019 }); 1020 /** 1021 * 1022 * @param elem {Element} 1023 * @param dataAttr 1024 * @param [width] { number } 1025 */ 1026 var getSizeElement = function (elem, dataAttr, width){ 1027 var event; 1028 var parent = elem.parentNode; 1029 1030 if(parent){ 1031 width = getWidth(elem, parent, width); 1032 event = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr}); 1033 1034 if(!event.defaultPrevented){ 1035 width = event.detail.width; 1036 1037 if(width && width !== elem._lazysizesWidth){ 1038 sizeElement(elem, parent, event, width); 1039 } 1040 } 1041 } 1042 }; 1043 1044 var updateElementsSizes = function(){ 1045 var i; 1046 var len = autosizesElems.length; 1047 if(len){ 1048 i = 0; 1049 1050 for(; i < len; i++){ 1051 getSizeElement(autosizesElems[i]); 1052 } 1053 } 1054 }; 1055 1056 var debouncedUpdateElementsSizes = debounce(updateElementsSizes); 1057 1058 return { 1059 _: function(){ 1060 autosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass); 1061 addEventListener('resize', debouncedUpdateElementsSizes); 1062 }, 1063 checkElems: debouncedUpdateElementsSizes, 1064 updateElem: getSizeElement 1065 }; 1066 })(); 1067 1068 var init = function(){ 1069 if(!init.i && document.getElementsByClassName){ 1070 init.i = true; 1071 autoSizer._(); 1072 loader._(); 1073 } 1074 }; 1075 1076 setTimeout(function(){ 1077 if(lazySizesCfg.init){ 1078 init(); 1079 } 1080 }); 1081 1082 lazysizes = { 1083 /** 1084 * @type { LazySizesConfigPartial } 1085 */ 1086 cfg: lazySizesCfg, 1087 autoSizer: autoSizer, 1088 loader: loader, 1089 init: init, 1090 uP: updatePolyfill, 1091 aC: addClass, 1092 rC: removeClass, 1093 hC: hasClass, 1094 fire: triggerEvent, 1095 gW: getWidth, 1096 rAF: rAF, 1097 }; 1098 1099 return lazysizes; 1100} 1101));
1102</script>
1102 1103 1104 1105 1106 1107
1108<script> 1109(function(createShadowDom) { 1110 window.slShadowDomCreate = window.slShadowDomCreate ? window.slShadowDomCreate : createShadowDom; 1111}( 1112function() { 1113 'use strict'; 1114 1115 var DATA_SHADOW_STATUS = 'data-shadow-status'; 1116 var SHADOW_CONTENT_TAG_NAME = 'SL-SHADOW-CONTENT'; 1117 var SHADOW_STATUS = { 1118 init: 'init', 1119 complete: 'complete', 1120 } 1121 1122 var eventDelegate = function($dom, eventName, fn) { 1123 if (!$dom) { 1124 return; 1125 } 1126 var triFunction = function(event) { 1127 if (!event || (!event.target || !event.srcElement)) { 1128 return 1129 } 1130 var target = event.target || event.srcElement; 1131 var currentTarget = event.currentTarget; 1132 1133 while (target !== currentTarget) { 1134 if (target.matches('a')) { 1135 var sTarget = target; 1136 event.delegateTarget = sTarget; 1137 fn.apply(sTarget, [event]); 1138 } 1139 1140 target = target.parentNode; 1141 } 1142 } 1143 $dom.addEventListener(eventName, triFunction); 1144 } 1145 // prevent link in page builder preview 1146 var preventLinkForPreview = function(ele) { 1147 var isPreview = window.location.href.includes('is_preview=2'); 1148 if (isPreview) { 1149 eventDelegate(ele, 'click', function(event) { 1150 event.preventDefault(); 1151 }) 1152 } 1153 } 1154 1155 var createShadowDom = function (root) { 1156 if (!(root instanceof HTMLElement)) { 1157 console.warn('SL shadow dom warning: The root is not HTMLElement'); 1158 return; 1159 } 1160 1161 var isShadowDomRoot = !!root.shadowRoot; 1162 var shadowContent = root.previousElementSibling; 1163 var shadowContentTagName = shadowContent && shadowContent.tagName; 1164 var shadowStatus = root.getAttribute(DATA_SHADOW_STATUS); 1165 1166 if (shadowStatus) { 1167 return; 1168 } 1169 1170 if (shadowContentTagName != SHADOW_CONTENT_TAG_NAME) { 1171 console.warn('SL shadow dom warning: The shadow content does not match shadow tag name'); 1172 return; 1173 } 1174 1175 if (isShadowDomRoot) { 1176 console.warn('SL shadow dom warning: The root is aready shadow root'); 1177 return; 1178 } 1179 1180 root.setAttribute(DATA_SHADOW_STATUS, SHADOW_STATUS.init); 1181 var shadowRoot = root.attachShadow({ mode: 'open' }); 1182 shadowRoot.appendChild(shadowContent); 1183 preventLinkForPreview(shadowContent); 1184 // Extend lazysizes for shadow dom 1185 root.slUpdateLazyExtraElements && root.slUpdateLazyExtraElements(); 1186 root.setAttribute(DATA_SHADOW_STATUS, SHADOW_STATUS.complete); 1187 }; 1188 1189 try { 1190 document.querySelectorAll('sl-shadow-root').forEach(function (shadowDomRoot) { 1191 createShadowDom(shadowDomRoot); 1192 }); 1193 } catch (e) { 1194 console.warn('createShadowDom warning:', e) 1195 } 1196} 1197)) 1198</script>
1198 1199 1200
1201<script> 1202/** 1203 * lazySizes does not support lazy loading of shadow dom internal elementsï¼We can be extended by extending the HTML prototype method LazySizes.extraElements 1204 * HTMLElement.slUpdateLazyExtraElements trigger conditionï¼ 1205 * 1ãfeature key 'enable_shadow_dom' is on 1206 * 2ãuse filter 'rich_content_format' to output content 1207 */ 1208(function(){ 1209 if (!window.lazySizes) { 1210 console.warn('Lazysizes warning: window.lazySizes is undefined'); 1211 return; 1212 } 1213 var lazyClass = window.lazySizesConfig ? window.lazySizesConfig.lazyClass : 'sl-lazy'; 1214 var lazySelector = '.' + lazyClass; 1215 if (typeof window.lazySizes.extraElements === 'undefined') { 1216 window.lazySizes.extraElements = []; 1217 } 1218 HTMLElement.prototype.slUpdateLazyExtraElements = function updateLazyExtraElements() { 1219 var elements = []; 1220 if (this.shadowRoot) { 1221 elements = Array.from(this.shadowRoot.querySelectorAll(lazySelector)); 1222 } 1223 elements = elements.concat(Array.from(this.querySelectorAll(lazySelector))); 1224 var extraElements = window.lazySizes.extraElements; 1225 if (elements.length === 0) { 1226 return elements; 1227 } 1228 1229 if (extraElements && extraElements.length > 0) { 1230 window.lazySizes.extraElements = extraElements.concat(elements); 1231 } else { 1232 window.lazySizes.extraElements = elements; 1233 } 1234 window.lazySizes.loader.checkElems(); 1235 1236 // Use event delegation to listen to the lazyloaded event of lazy loading elements 1237 // When the lazy loading elements are loaded, update lazySizes.extraElements 1238 this.shadowRoot.addEventListener('lazyloaded', function(event) { 1239 var extraElements = window.lazySizes.extraElements; 1240 if (extraElements && extraElements.length > 0) { 1241 var newExtraElements = extraElements.filter(function(item) { 1242 return item !== event.target; 1243 }); 1244 if (newExtraElements.length > 0) { 1245 window.lazySizes.extraElements = newExtraElements; 1246 } else { 1247 delete window.lazySizes.extraElements; 1248 } 1249 } 1250 }); 1251 1252 return elements; 1253 }; 1254}()) 1255</script>
1255 1256 1257 1258 1259 1260 1261
1261<script src="https://cdn.shoplineapp.com/s/javascripts/currencies.js" defer></script>
1261 1262 1263 1264 1265 1266 1267 1268 1269 1270
1271<script> 1272 function generateGlobalSDKObserver(variableName, options = {}) { 1273 const { isLoaded = (sdk) => !!sdk } = options; 1274 return { 1275 [variableName]: { 1276 funcs: [], 1277 notify: function() { 1278 while (this.funcs.length > 0) { 1279 const func = this.funcs.shift(); 1280 func(window[variableName]); 1281 } 1282 }, 1283 subscribe: function(func) { 1284 if (isLoaded(window[variableName])) { 1285 func(window[variableName]); 1286 } else { 1287 this.funcs.push(func); 1288 } 1289 const unsubscribe = function () { 1290 const index = this.funcs.indexOf(func); 1291 if (index > -1) { 1292 this.funcs.splice(index, 1); 1293 } 1294 }; 1295 return unsubscribe.bind(this); 1296 }, 1297 }, 1298 }; 1299 } 1300 1301 window.globalSDKObserver = Object.assign( 1302 {}, 1303 generateGlobalSDKObserver('grecaptcha', { isLoaded: function(sdk) { return sdk && sdk.render }}), 1304 generateGlobalSDKObserver('FB'), 1305 ); 1306</script>
1306 1307 1308 1309 1310 1311 1312 1313 1314 1315
1315<script defer="defer" integrity="sha256-Qb6FmL3YT6tJXI+iy3eliOSBYLI80ZEbaaS9/VwFA5A=" src="https://cdn.shoplineapp.com/assets/common-41be8598bdd84fab495c8fa2cb77a588e48160b23cd1911b69a4bdfd5c050390.js" onerror="sriOnError.call(this, event)" crossorigin="anonymous"></script>
1315 1316
1316<script src="https://cdn.shoplineapp.com/assets/ng_common-c3830effc84c08457126115db49c6c892f342863b5dc72000d3ef45831d97155.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-w4MO/8hMCEVxJhFdtJxsiS80KGO13HIADT70WDHZcVU="></script>
1316 1317 1318 1319 1320 1321 1322
1322<script src="https://r2cdn.myshopline.com/static/rs/adff/prod/latest/bundle.iife.js" defer></script>
1322 1323 1324 1325 1326 1327 1328 1329 1330
1330<script integrity="sha256-X514esAI3IqHQH6NVwihfDB6F+mMWKbAdRILeQLusLc=" src="https://cdn.shoplineapp.com/packs/js/runtime~shop-fd4657bd4045e1a444eb.js" crossorigin="anonymous" defer="defer" onerror="sriOnError.call(this, event)"></script>
vendor: 1 bytes, line 1330
1330
1331<script src="https://cdn.shoplineapp.com/packs/js/shared~38c579ec-012f556dd93892b25387.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-lrRMNxsgfVtjX7VGkF5BUfRSkznDlo2znYRv8/JWGcc="></script>
vendor: 1 bytes, line 1331
1331
1332<script defer="defer" integrity="sha256-3rQUFoKt1nnQ/vihJwT2q5mbdmAtd6x5eq+2OJOITc8=" src="https://cdn.shoplineapp.com/packs/js/shared~74eb226d-b2ac25db5761420970e8.chunk.js" onerror="sriOnError.call(this, event)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1332
1332
1333<script src="https://cdn.shoplineapp.com/packs/js/shared~0e7b4f31-9b6e9e6c2394fac35fc1.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-PUS072JptM/CIgmLqb+7vaFN9psSRKVlhYt4KaqfXIs="></script>
vendor: 1 bytes, line 1333
1333
1334<script integrity="sha256-bLBbIA3rj/qkdJQqaRM44YCBZQKdhgv3w1ydQPQ3x+w=" src="https://cdn.shoplineapp.com/packs/js/shared~e64cb4ed-7fe78d650b1d274c4ff6.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1334
1334
1335<script defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-IIY3qGGHi1YJ1yZLA1as4+mkl05wFUZ+/TjI6kodYkw=" src="https://cdn.shoplineapp.com/packs/js/shared~479d7c7d-03af887c4f77c6e88f9d.chunk.js"></script>
vendor: 1 bytes, line 1335
1335
1336<script crossorigin="anonymous" integrity="sha256-2u6JjFXv2trTPlgunioIp09lWrz3tcYE86/4c6vwOzw=" src="https://cdn.shoplineapp.com/packs/js/shared~29a769ad-393664929447bc9fa70f.chunk.js" defer="defer" onerror="sriOnError.call(this, event)"></script>
vendor: 1 bytes, line 1336
1336
1337<script onerror="sriOnError.call(this, event)" crossorigin="anonymous" defer="defer" integrity="sha256-ci5Q0TcaCsM5T2eooRSMLVBRzAKpRpSBgcmy1CNr+Us=" src="https://cdn.shoplineapp.com/packs/js/shared~74bff3d6-22d5c66502aec0ec0d1d.chunk.js"></script>
vendor: 1 bytes, line 1337
1337
1338<script src="https://cdn.shoplineapp.com/packs/js/shared~81bba2e3-14ad7178e73b4d4fa1a6.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-pwToiIHTsLYuK0d7WT0PcjpM4THLJHZupttZW/3Vb88="></script>
vendor: 1 bytes, line 1338
1338
1339<script src="https://cdn.shoplineapp.com/packs/js/shared~ecf1c238-9450a105774984d7fab1.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-17+PAKdgJ2Kx7rDjlfr/rw54cYDggOkVhHqub227A9M="></script>
vendor: 1 bytes, line 1339
1339
1340<script integrity="sha256-Om+G2g1jthPhBVbzOe/9deNzAOhAIsY3gnr75vIxKMg=" src="https://cdn.shoplineapp.com/packs/js/shared~9cb81af4-eec2034514eceae2deee.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1340
1340
1341<script src="https://cdn.shoplineapp.com/packs/js/shared~f8ef5884-1e6a6d8227eb7dfe6e40.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-8GI3edURZ60na0xugmWiykL/J64mTHiuUTjWSihwe7A="></script>
vendor: 1 bytes, line 1341
1341
1342<script defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-5Fn52MSbPqCXjTWsGua4ZEEVV4IfgTzIMX0m//C5kPY=" src="https://cdn.shoplineapp.com/packs/js/shared~ea9a1e23-3f60007f64092ec80c98.chunk.js"></script>
vendor: 1 bytes, line 1342
1342
1343<script integrity="sha256-+hBELJkyaD3Cl77ntKZehLWIJwYq9jcsapqQ6BnZdhs=" src="https://cdn.shoplineapp.com/packs/js/shared~dbe7acde-ac6d4c382bfcf6d00e32.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1343
1343
1344<script src="https://cdn.shoplineapp.com/packs/js/shared~d54d7c1c-ed042a14f96f9e557937.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-A8+e89sdHaO2r9+8JlOFQSsjpRG0+pdp/ijri/RXQGk="></script>
vendor: 1 bytes, line 1344
1344
1345<script integrity="sha256-R10cnkedmTvof3N9k1kYh/ow3sAJ7PFS84Hcrd87zYU=" src="https://cdn.shoplineapp.com/packs/js/shared~200bedfd-01e29ef13f7d96fbbc59.chunk.js" crossorigin="anonymous" defer="defer" onerror="sriOnError.call(this, event)"></script>
vendor: 1 bytes, line 1345
1345
1346<script src="https://cdn.shoplineapp.com/packs/js/vendors~shop-aeef42d0a65bef64c557.chunk.js" crossorigin="anonymous" defer="defer" onerror="sriOnError.call(this, event)" integrity="sha256-H/dxEGsgNbcv3E+/Ew7bAzajf0vxbUCpqnbobPMkiAY="></script>
vendor: 1 bytes, line 1346
1346
1347<script onerror="sriOnError.call(this, event)" crossorigin="anonymous" defer="defer" integrity="sha256-px0hwHLmr6HSfZJ4VYXXfdAQlNARtrXH9zmQjZDIxUg=" src="https://cdn.shoplineapp.com/packs/js/shop-409620e91cc0532d117b.chunk.js"></script>
1347 1348 1349 1350 1351 1352
1352<script defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-TPO40JBlTeqRTsn6af9xC6Zy1dH62szDWtPmAsRS8GU=" src="https://cdn.shoplineapp.com/packs/js/runtime~ng-module/main-6c63fad529b3d3ce95ab.js"></script>
vendor: 1 bytes, line 1352
1352
1353<script onerror="sriOnError.call(this, event)" crossorigin="anonymous" defer="defer" integrity="sha256-0cK+KKphGet+feZEkUelI81vvgjhnlVSEjfdGeDgdx0=" src="https://cdn.shoplineapp.com/packs/js/shared~5c85c39c-6c175d18ade3adbce7a8.chunk.js"></script>
vendor: 1 bytes, line 1353
1353
1354<script src="https://cdn.shoplineapp.com/packs/js/shared~9ee0282b-4f6ab278c4980134da4e.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-/PO0ruocBQbO9LKW9u2X9ZrQk8GHsgSR/N3Jyvh0n4A="></script>
vendor: 1 bytes, line 1354
1354
1355<script src="https://cdn.shoplineapp.com/packs/js/ng-module/main-1624a4b036ed7140973e.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-SeYg54rAc9kDWjwN4pRnbh5dY6ETyJrmbWRKLfZhg34="></script>
1355 1356 1357 1358 1359
1359<script integrity="sha256-V2Jc8Nn4o2yK5be6F3It+hOZaYQqlif6vGQIAn1CZCc=" src="https://cdn.shoplineapp.com/packs/js/runtime~ng-locale/en-9dccac0e252dbd4355df.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1359
1359
1360<script onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-UxtD5LCsz+DQhUlVsHPagWxxIBMgrWkmqYOPtMTrDbI=" src="https://cdn.shoplineapp.com/packs/js/ng-locale/en-6301cfb7135ace17fdac.chunk.js" defer="defer"></script>
1360 1361 1362 1363
1363<script src="https://cdn.shoplineapp.com/packs/js/runtime~sdk-f522c86ff158d2d89237.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-PLwTi4I2V3opwEpyMqpevxbRq/3i+kPkB3M2MaILiCU="></script>
vendor: 1 bytes, line 1363
1363
1364<script src="https://cdn.shoplineapp.com/packs/js/shared~360be618-84ff916e0c6be5d560f3.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-Oj07c7babUAedq0zKPc4+LJ0uo1lRdF+jXZBKK9uhWs="></script>
vendor: 1 bytes, line 1364
1364
1365<script defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-vdS7l3OT4pNUq6OD7xLtXcYznH2Ry+s1Z8QLk1i9dng=" src="https://cdn.shoplineapp.com/packs/js/shared~789f1c9c-3956bc45f72f3366a289.chunk.js"></script>
vendor: 1 bytes, line 1365
1365
1366<script onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-LaLq+3A/5ZXnJHQzUtOzA53oPOuGYzUi+aFnUKjJzxM=" src="https://cdn.shoplineapp.com/packs/js/sdk-bf552ac290e8189cdf12.chunk.js" defer="defer"></script>
1366 1367 1368 1369 1370
1370<script src="https://cdn.shoplineapp.com/packs/js/runtime~app_extension_sdk-149384e324bcb048ef13.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-jdz3nZXyEIqcTxX7IJ9pESoYgrpE8sJ2jOPp3wETZwU="></script>
vendor: 1 bytes, line 1370
1370
1371<script src="https://cdn.shoplineapp.com/packs/js/app_extension_sdk-6c1b77cc085ed77d6b11.chunk.js" defer="defer" onerror="sriOnError.call(this, event)" crossorigin="anonymous" integrity="sha256-eM9xe26mETfquqKtFBktklBl6lnlIaulvfTlHeFQoXQ="></script>
1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383
1383<script crossorigin="anonymous" integrity="sha256-APrRC4EF/GiMwSzPV1G7I/7ovnk6OuTPA+uvrTQicpA=" src="https://cdn.shoplineapp.com/packs/js/runtime~intl_tel_input-6ceb7ec3b81909f77141.js" defer="defer" onerror="sriOnError.call(this, event)"></script>
vendor: 1 bytes, line 1383
1383
1384<script crossorigin="anonymous" integrity="sha256-GgZ72/9MkAbYdrr40Hq/OM9YcTojft/UC87qZrPqS0E=" src="https://cdn.shoplineapp.com/packs/js/intl_tel_input-8f500d7b0d66e9dcf73b.chunk.js" defer="defer" onerror="sriOnError.call(this, event)"></script>
1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397<style> 1398 :root { 1399 --announcement-background: #f7f3ee; 1400 --announcement-background-h: 33; 1401 --announcement-background-s: 36%; 1402 --announcement-background-l: 95%; 1403 --announcement-text: #282210; 1404 --announcement-text-h: 45; 1405 --announcement-text-s: 43%; 1406 --announcement-text-l: 11%; 1407 --anti-fraud-background: #f7f3ee; 1408 --anti-fraud-background-h: 33; 1409 --anti-fraud-background-s: 36%; 1410 --anti-fraud-background-l: 95%; 1411 --anti-fraud-text: #282210; 1412 --anti-fraud-text-h: 45; 1413 --anti-fraud-text-s: 43%; 1414 --anti-fraud-text-l: 11%; 1415 --buy-now-background: #a68a49; 1416 --buy-now-background-h: 42; 1417 --buy-now-background-s: 39%; 1418 --buy-now-background-l: 47%; 1419 --buy-now-text: #ffffff; 1420 --buy-now-text-h: 0; 1421 --buy-now-text-s: 0%; 1422 --buy-now-text-l: 100%; 1423 --category-page: 24; 1424 --copyright-background: #f7f3ee; 1425 --copyright-background-h: 33; 1426 --copyright-background-s: 36%; 1427 --copyright-background-l: 95%; 1428 --copyright-text: #282210; 1429 --copyright-text-h: 45; 1430 --copyright-text-s: 43%; 1431 --copyright-text-l: 11%; 1432 --email-button-background: #f7f3ee; 1433 --email-button-background-h: 33; 1434 --email-button-background-s: 36%; 1435 --email-button-background-l: 95%; 1436 --email-button-text: #282210; 1437 --email-button-text-h: 45; 1438 --email-button-text-s: 43%; 1439 --email-button-text-l: 11%; 1440 --font-paragraph: "Noto Sans TC", var(--system-sans); 1441 --font-size-paragraph: 1; 1442 --font-size-title: 1.2; 1443 --font-title: "Noto Sans TC", var(--system-sans); 1444 --footer-background: #f7f3ee; 1445 --footer-background-h: 33; 1446 --footer-background-s: 36%; 1447 --footer-background-l: 95%; 1448 --footer-icon: #282210; 1449 --footer-icon-h: 45; 1450 --footer-icon-s: 43%; 1451 --footer-icon-l: 11%; 1452 --footer-text: #282210; 1453 --footer-text-h: 45; 1454 --footer-text-s: 43%; 1455 --footer-text-l: 11%; 1456 --header-background: #ffffff; 1457 --header-background-h: 0; 1458 --header-background-s: 0%; 1459 --header-background-l: 100%; 1460 --header-icon: #332d27; 1461 --header-icon-h: 30; 1462 --header-icon-s: 13%; 1463 --header-icon-l: 18%; 1464 --header-text: #332d27; 1465 --header-text-h: 30; 1466 --header-text-s: 13%; 1467 --header-text-l: 18%; 1468 --page-background: #ffffff; 1469 --page-background-h: 0; 1470 --page-background-s: 0%; 1471 --page-background-l: 100%; 1472 --page-text: #282210; 1473 --page-text-h: 45; 1474 --page-text-s: 43%; 1475 --page-text-l: 11%; 1476 --page-text-link: #282210; 1477 --page-text-link-h: 45; 1478 --page-text-link-s: 43%; 1479 --page-text-link-l: 11%; 1480 --primary-background: #a68a49; 1481 --primary-background-h: 42; 1482 --primary-background-s: 39%; 1483 --primary-background-l: 47%; 1484 --primary-text: #ffffff; 1485 --primary-text-h: 0; 1486 --primary-text-s: 0%; 1487 --primary-text-l: 100%; 1488 --product-promotion-label-background: #f7f3ee; 1489 --product-promotion-label-background-h: 33; 1490 --product-promotion-label-background-s: 36%; 1491 --product-promotion-label-background-l: 95%; 1492 --product-promotion-label-text: #282210; 1493 --product-promotion-label-text-h: 45; 1494 --product-promotion-label-text-s: 43%; 1495 --product-promotion-label-text-l: 11%; 1496 --secondary-color: #282210; 1497 --secondary-color-h: 45; 1498 --secondary-color-s: 43%; 1499 --secondary-color-l: 11%; 1500 --cookie-consent-popup-z-index: 1000; 1501} 1502</style> 1503
1504<script type="text/javascript"> 1505 1506 1507 1508 1509var shoplyticsTrackerSrc = window.location.origin + '/event/assets/js/shoplytics-tracker/latest/shoplytics-tracker.js'; 1510 1511(function(e,t,s,c,n,o,p){e.shoplytics||((p=e.shoplytics=function(){ 1512p.exec?p.exec.apply(p,arguments):p.q.push(arguments) 1513}).v='2.0',p.q=[],(n=t.createElement(s)).async=!0, 1514n.src=c,(o=t.getElementsByTagName(s)[0]).parentNode.insertBefore(n,o)) 1515})(window,document,'script',shoplyticsTrackerSrc); 1516 1517window.SHOPLYTICS_TRACKER_REGISTER = {"language":"en","merchant_id":"6576a1830ee9d100760d043d","user_id":""}; 1518 1519shoplytics('init', 'shop', { 1520 register: window.SHOPLYTICS_TRACKER_REGISTER 1521}); 1522 1523 1524 1525// for facebook login redirect 1526if (location.hash === '#_=_') { 1527 history.replaceState(null, document.title, location.toString().replace(/#_=_$/, '')); 1528} 1529 1530 1531function SidrOptions(options) { 1532 if (options === undefined) { options = {}; } 1533 this.side = options.side || 'left'; 1534 this.speed = options.speed || 200; 1535 this.name = options.name; 1536 this.onOpen = options.onOpen || angular.noop; 1537 this.onClose = options.onClose || angular.noop; 1538} 1539window.SidrOptions = SidrOptions; 1540 1541 1542window.resizeImages = function(element) { 1543 var images = (element || document).getElementsByClassName("sl-lazy-image") 1544 var styleRegex = /background\-image:\ *url\(['"]?(https\:\/\/(shoplineimg.com)\/[^'"\)]*)+['"]?\)/ 1545 1546 for (var i = 0; i < images.length; i++) { 1547 var image = images[i] 1548 try { 1549 var src = image.getAttribute('src') || image.getAttribute('style').match(styleRegex)[1] 1550 } catch(e) { 1551 continue; 1552 } 1553 var setBySrc, head, tail, width, height; 1554 try { 1555 if (!src) { throw 'Unknown source' } 1556 1557 setBySrc = !!image.getAttribute('src') // Check if it's setting the image url by "src" or "style" 1558 var urlParts = src.split("?"); // Fix issue that the size pattern can be in external image url 1559 var result = urlParts[0].match(/(.*)\/(\d+)?x?(\d+)?(.*)/) // Extract width and height from url (e.g. 1000x1000), putting the rest into head and tail for repackaging back 1560 head = result[1] 1561 tail = result[4] 1562 width = parseInt(result[2], 10); 1563 height = parseInt(result[3], 10); 1564 1565 if (!!((width || height) && head != '') !== true) { throw 'Invalid image source'; } 1566 } catch(e) { 1567 if (typeof e !== 'string') { console.error(e) } 1568 continue; 1569 } 1570 1571 var segment = parseInt(image.getAttribute('data-resizing-segment') || 200, 10) 1572 var scale = window.devicePixelRatio > 1 ? 2 : 1 1573 1574 // Resize by size of given element or image itself 1575 var refElement = image; 1576 if (image.getAttribute('data-ref-element')) { 1577 var selector = image.getAttribute('data-ref-element'); 1578 if (selector.indexOf('.') === 0) { 1579 refElement = document.getElementsByClassName(image.getAttribute('data-ref-element').slice(1))[0] 1580 } else { 1581 refElement = document.getElementById(image.getAttribute('data-ref-element')) 1582 } 1583 } 1584 var offsetWidth = refElement.offsetWidth; 1585 var offsetHeight = refElement.offsetHeight; 1586 var refWidth = image.getAttribute('data-max-width') ? Math.min(parseInt(image.getAttribute('data-max-width')), offsetWidth) : offsetWidth; 1587 var refHeight = image.getAttribute('data-max-height') ? Math.min(parseInt(image.getAttribute('data-max-height')), offsetHeight) : offsetHeight; 1588 1589 // Get desired size based on view, segment and screen scale 1590 var resizedWidth = isNaN(width) === false ? Math.ceil(refWidth * scale / segment) * segment : undefined 1591 var resizedHeight = isNaN(height) === false ? Math.ceil(refHeight * scale / segment) * segment : undefined 1592 1593 if (resizedWidth || resizedHeight) { 1594 var newSrc = head + '/' + ((resizedWidth || '') + 'x' + (resizedHeight || '')) + (tail || '') + '?'; 1595 for (var j = 1; j < urlParts.length; j++) { newSrc += urlParts[j]; } 1596 if (newSrc !== src) { 1597 if (setBySrc) { 1598 image.setAttribute('src', newSrc); 1599 } else { 1600 image.setAttribute('style', image.getAttribute('style').replace(styleRegex, 'background-image:url('+newSrc+')')); 1601 } 1602 image.dataset.size = (resizedWidth || '') + 'x' + (resizedHeight || ''); 1603 } 1604 } 1605 } 1606} 1607let createDeferredPromise = function() { 1608 let deferredRes, deferredRej; 1609 let deferredPromise = new Promise(function(res, rej) { 1610 deferredRes = res; 1611 deferredRej = rej; 1612 }); 1613 deferredPromise.resolve = deferredRes; 1614 deferredPromise.reject = deferredRej; 1615 return deferredPromise; 1616} 1617 1618// For app extension sdk 1619window.APP_EXTENSION_SDK_ANGULAR_JS_LOADED = createDeferredPromise(); 1620 1621 1622 window.runTaskInIdle = function runTaskInIdle(task) { 1623 try { 1624 if (!task) return; 1625 task(); 1626 } catch (err) { 1627 console.error(err); 1628 } 1629 } 1630 1631 1632window.runTaskQueue = function runTaskQueue(queue) { 1633 if (!queue || queue.length === 0) return; 1634 1635 const task = queue.shift(); 1636 window.runTaskInIdle(task); 1637 1638 window.runTaskQueue(queue); 1639} 1640 1641 1642window.addEventListener('DOMContentLoaded', function() { 1643 1644app.value('mainConfig', window.mainConfig); 1645 1646 1647 var appExtensionSdkData = JSON.parse('{\"merchantId\":\"6576a1830ee9d100760d043d\",\"cookieConsent\":null,\"loadedCurrency\":\"twd\",\"pageIdentifier\":\"product_detail\",\"themeKey\":\"kingsman_v2\",\"loadedLanguage\":{\"name\":\"English\",\"code\":\"en\"},\"appExtensionData\":{\"appIds\":[\"63a2b2930064c0001dd692f9\",\"61162030bc1390001da5cede\"]},\"pdpProduct\":{\"id\":\"6aa36e90de77e200134fb066\",\"variation_keys\":[],\"main_product_id\":\"6aa36e90de77e200134fb066\",\"category_ids\":[\"6576a18539088e1747f312e7\",\"65e1e198ec746f00174f55b1\",\"657aa87ede10d2001acc4a9e\",\"657aaaac2e3708001498029a\",\"65e1d71be61a7200179e743f\"],\"tags\":\"忏ææ,margot\\u0026tita\",\"variation_rendered\":false,\"variation_ids\":null,\"default_variation_id\":null,\"addon_product_rendered\":false,\"addon_product_ids\":null}}'); 1648app.value('appExtensionSdkData', appExtensionSdkData); 1649 1650 1651 1652app.value('flash', {}); 1653 1654app.value('flash_data', {}); 1655app.constant('imageServiceEndpoint', "https://shoplineimg.com/") 1656app.constant('staticImageHost', 'static.shoplineapp.com/web') 1657app.constant('staticResourceHost', 'https://static.shoplineapp.com/') 1658app.constant('FEATURES_LIMIT', JSON.parse('{"disable_image_service":false,"product_variation_limit":400,"paypal_spb_checkout":false,"mini_fast_checkout":false,"fast_checkout_qty":false,"buynow_checkout":false,"blog_category":false,"blog_post_page_limit":false,"shop_category_filter":true,"stripe_card_hk":false,"bulk_update_tag":true,"dynamic_
1658shipping_rate_refactor":true,"promotion_reminder":true,"promotion_page_reminder":true,"modularize_address_format":true,"point_redeem_to_cash":true,"fb_login_integration":false,"product_summary":true,"plp_wishlist":true,"ec_order_unlimit":true,"sc_order_unlimit":true,"inventory_search_v2":true,"sc_lock_inventory":true,"crm_notify_preview":true,"plp_variation_selector":true,"category_banner_multiple":true,"order_confirmation_slip_upload":true,"tier_upgrade_v2":false,"plp_label_wording":true,"order_search_custom_field":true,"ig_browser_notify":true,"ig_browser_disabled":false,"send_product_tag_to_shop":false,"ads_system_new_tab":true,"payment_image":true,"sl_logistics_bulk_action":true,"disable_orderconfirmation_mail":false,"payment_slip_notify":true,"product_set_child_products_limit":20,"product_set_limit":-1,"sl_payments_hk_promo":false,"domain_redirect_ec2":false,"affiliate_kol_report":true,"applepay_newebpay":false,"atm_newebpay":false,"cvs_newebpay":false,"ec_fast_checkout":false,"checkout_setting":true,"omise_payment":false,"member_password_setup_notify":true,"membership_tier_notify":true,"auto_credit_notify":true,"customer_referral_notify":true,"member_points_notify":true,"member_import_notify":true,"crm_sms_custom":true,"crm_email_custom":true,"customer_group":true,"app_checkout_page_v2":false,"cart_api_slp_payment_callback":false,"restricted_product_risk_center_integration":false,"mask_check_stock_api_quantity":false,"tier_auto_downgrade":false,"scheduled_home_page":true,"sc_wa_contacts_list":true,"broadcast_to_unsubscribers_sms":true,"sc_post_feature":true,"google_product_category_3rdlayer":true,"purchase_limit_campaign":true,"order_item_name_edit":false,"block_analytics_request":false,"subscription_order_notify":true,"fb_domain_verification":false,"disable_html5mode":false,"einvoice_edit":true,"order_search_sku":true,"cancel_order_by_customer_v2":true,"storefront_pdp_enhancement":false,"storefront_plp_enhancement":false,"storefront_adv_enhancement":false,"product_cost_permission":true,"promotion_first_purchase":true,"block_gtm_for_lighthouse":true,"use_critical_css_liquid":false,"flash_price_campaign":true,"inventory_change_reason":true,"ig_login_entrance":true,"contact_us_mobile":true,"sl_payment_hk_alipay":false,"3_layer_variation":true,"einvoice_tradevan":true,"tradevan_multi_tax_product_set":false,"order_add_to_cart":true,"order_new_source":true,"einvoice_bulk_update":true,"molpay_alipay_tng":false,"fastcheckout_add_on":false,"plp_product_seourl":true,"country_code":true,"sc_keywords":true,"bulk_printing_labels_711C2C":true,"search_function_image_gallery":true,"social_channel_user":true,"sc_overall_statistics":true,"product_main_images_limit":12,"order_custom_notify":true,"new_settings_apply_all_promotion":true,"new_order_label_711b2c":false,"payment_condition":true,"store_pick_up":true,"other_custom_notify":true,"crm_sms_notify":true,"sms_custom":true,"product_set_revamp":true,"charge_shipping_fee_by_product_qty":true,"whatsapp_extension":true,"new_live_selling":false,"tier_member_points":true,"fb_broadcast_sc_p2":true,"fb_entrance_optimization":true,"shopback_cashback":true,"bundle_add_type":true,"google_ads_api":true,"google_analytics_4":true,"customer_group_smartrfm_filter":true,"shopper_app_entrance":false,"enable_cart_service":true,"store_crm_pwa":true,"store_referral_export_import":true,"store_referral_setting":true,"delivery_time_with_quantity":true,"tier_reward_app_installation":true,"tier_reward_app_availability":true,"stop_slp_approvedemail":true,"google_content_api":false,"buy_online_pickup_instore":false,"subscription_order_expire_notify":true,"payment_octopus":false,"payment_hide_hk":false,"line_ads_tag":true,"get_coupon":true,"coupon_notification":true,"payme_single_key_migration":false,"fb_bdapi":false,"mc_sort_waitingtime_new":true,"disable_itc":false,"sl_payment_alipay":true,"sl_pos_sg_gst_on_receipt":false,"buyandget_promotion":true,"line_login_mobile":true,"vulnerable_js_upgrade":false,"replace_janus_interface":true,"enable_calculate_api_promotion_filter":true,"combine_orders":false,"tier_reward_app_p2":true,"slp_remember_credit_card":true,"subscription_promotion":true,"lock_cart_sc_product":true,"extend_reminder":true,"customer_search_match":true,"slp_product_subscription":true,"customer_group_sendcoupon":true,"sl_payments_apple_pay":true,"apply_multi_order_discount":true,"enable_calculate_api_promotion_apply":true,"product_revamp_doublewrite":true,"tcat_711pickup_emap":false,"page_builder_widget_blog":true,"page_builder_widget_accordion":true,"page_builder_widget_category":true,"page_builder_widget_instagram":true,"page_builder_widget_custom_liquid":true,"page_builder_widget_product_text":true,"page_builder_widget_subscription":true,"page_builder_widget_video":true,"page_builder_widget_collage":true,"npb_theme_sangria":false,"npb_theme_philia":true,"npb_theme_bianco":false,"line_point_cpa_tag":true,"affiliate_by_product":true,"order_select_across_pages":true,"page_builder_widget_count_down":false,"deep_link_support_payme":true,"deep_link_support_linepay":true,"split_order_applied_creditpoint":true,"product_review_reward":true,"rounding_to_one_decimal":false,"disable_image_service_lossy_compression":false,"order_status_non_automation":true,"member_info_reward":true,"order_discount_stackable":true,"enable_cart_api":true,"product_revamp_singleread":true,"deep_search":true,"new_plp_initialized":false,"shop_builder_plp":true,"old_fbe_removal":true,"fbig_shop_disabled":false,"repay_cookie":true,"gift_promotion_condition":true,"blog_revamp_singleread":true,"blog_revamp_doublewrite":true,"credit_condition_tier_limit":5,"credit_condition_5_tier_ec":true,"credit_condition_50_tier_ec":false,"return_order_revamp":false,"expand_sku_on_plp":false,"sl_pos_shopline_payment_invoice_new_flow":true,"credit_campaign_tier":{"active_campaign_limit":-1,"condition_limit":3},"promotion_page":true,"bundle_page":true,"bulk_update_tag_enhancement":true,"use_ngram_for_order_search":true,"notification_custom_sending_time":true,"promotion_by_platform":false,"promotion_gift_multi_numbers":false,"product_feed_revamp":true,"one_page_store":true,"one_page_store_limit":1000,"one_page_store_clone":true,"one_page_store_checkout_v2":false,"header_content_security_policy":false,"product_set_child_products_required_quantity_limit":50,"blog_revamp_admin":true,"blog_revamp_posts_limit":3000,"blog_revamp_admin_category":true,"blog_revamp_shop_category":true,"blog_revamp_categories_limit":10,"blog_revamp_related_products":true,"product_feed_manager":false,"product_feed_manager_availability":true,"checkout_membercheckbox_toggle":true,"youtube_accounting_linking":false,"crowdfunding_app":false,"prevent_duplicate_orders_tempfix":false,"product_review_plp":true,"product_attribute_tag_awoo":false,"sl_pos_customer_info_enhancement":true,"sl_pos_customer_product_preference":true,"sl_pos_payment_method_prioritized_and_hidden":true,"sl_pos_payment_method_picture":true,"facebook_line_promotion_notify":true,"sl_admin_purchase_order":true,"sl_admin_inventory_transfer":true,"sl_admin_supplier":true,"sl_admin_inventory_count":true,"shopline_captcha":true,"shopline_email_captcha":true,"layout_engine_service_kingsman_plp":true,"layout_engine_service_kingsman_pdp":true,"layout_engine_service_kingsman_promotions":true,"layout_engine_service_kingsman_blogs":true,"layout_engine_service_kingsman_member_center"
1658:true,"layout_engine_service_kingsman_npb":false,"layout_engine_service_kingsman_layout":true,"layout_engine_service_kingsman_one_page_stores":false,"layout_engine_service_varm_plp":true,"layout_engine_service_varm_pdp":true,"layout_engine_service_varm_promotions":true,"layout_engine_service_varm_blogs":true,"layout_engine_service_varm_member_center":true,"layout_engine_service_philia_plp":false,"layout_engine_service_philia_pdp":false,"layout_engine_service_philia_promotions":false,"layout_engine_service_philia_blogs":false,"layout_engine_service_philia_member_center":false,"2026_pdp_revamp_mobile_abtesting":false,"2026_pdp_revamp_mobile_addon_products":true,"2026_pdp_revamp_mobile_product_set":false,"pdp_revamp_admin_entrypoint":false,"smart_product_recommendation":true,"one_page_store_product_set":true,"page_use_product_service":true,"price_discount_label_plp":true,"pdp_image_lightbox":true,"advanced_menu_app":true,"smart_product_recommendation_plus":true,"sitemap_cache_6hr":true,"sitemap_enhance_lang":true,"smart_product_recommendation_plus_more_placements":false,"smart_product_recommendation_plus_cart":true,"smart_product_recommendation_plus_blog":false,"bulk_update_redirect_301_limit_20w":false,"pdp_product_sold_count":true,"edit_pdp_product_sold_count":false,"dynamic_
1658shipping_rate_refactor_jp":false,"sl_cashback":false,"sl_cashback_app_avaliable":false,"admin_search_crawl_setting":true,"blog_revamp_multi_lang":false,"sl_payment_integrated":false,"slp_repay_same_method":false,"slp_repay_credit_card_shop":false,"shoplytics_tracker_first_party":true,"checkout_revamp_checkout_page_v2024":true,"security_center":true,"freeshipping_promotion_condition":true,"gift_shipping_promotion_discount_condition":true,"promotion_first_purchase_channel":true,"enable_shopjs_splitting":true,"enable_body_script":true,"enable_corejs_splitting":true,"member_info_reward_subscription":true,"session_expiration_period":true,"point_campaign":true,"online_credit_redemption_toggle":true,"shoplytics_payments_api_v3":true,"shoplytics_staff_api_v3":true,"shoplytics_invoices_api_v3":true,"shoplytics_broadcast_api_v3":true,"enable_promotion_usage_record":true,"archive_order_ui":true,"archive_order_data":true,"order_archive_calculation_revamp_crm_amount":true,"order_archive_calculation_revamp_crm_member":true,"subscription_config_edit_delivery_payment":true,"one_page_store_checkout":true,"cart_use_product_service":true,"order_export_366day":true,"promotion_record_archive_test":true,"order_archive_testing_return_order":true,"order_archive_testing_order_details":true,"order_archive_testing":true,"promotion_page_seo_button":true,"order_archive_testing_crm":true,"order_archive_product_testing":true,"shoplytics_customer_refactor_api_v3":true,"shoplytics_session_metrics":true,"checkout_revamp_v2024":true,"product_set_v2_enhancement":true,"customer_import_50000_failure_report":true,"manual_order_ec_to_sc":true,"group_url_bind_post_live":true,"shoplytics_product_revamp_api_v3":true,"shoplytics_event_realtime_refactor_api_v3":true,"shoplytics_ordersales_v3":true,"payment_fee_config":true,"subscription_config_edit":true,"affiliate_dashboard":true,"export_inventory_report_v2":true,"fb_offline_conversions_api":true,"member_center_profile_revamp":true,"enable_new_css_bundle":true,"broadcast_preset_time":true,"email_custom":true,"social_channel_revamp":true,"memebr_center_point_credit_revamp":true,"customer_data_secure":true,"coupon_v2":true,"tcat_711pickup_sl_logisitics":true,"customer_export_v2":true,"shoplytics_channel_store_permission":true,"customer_group_analysis":true,"slp_bank_promotion":true,"admin_js_upgrade_SL-32913":true,"google_preorder_feed":true,"replace_lms_old_oa_interface":true,"bulk_update_job":true,"custom_home_delivery_tw":true,"birthday_format_v2":true,"preorder_limit":true,"mobile_and_email_signup":true,"exclude_product_v2":true,"smart_omo_customer_tag_note":true,"credit_point_report":true,"sl_payments_cc_promo":true,"user_center_social_channel":true,"enable_lazysizes_image_tag":true,"whatsapp_accept_marketing":true,"line_live":true,"smart_omo_points":true,"smart_omo_credits":true,"credit_campaign":true,"credit_point_triggerpoint":true,"smart_omo_redeem_coupon":true,"smart_omo_send_coupon":true,"smart_omo_show_coupon":true,"send_coupon_notification":true,"external_redeem_coupon":true,"711_CB_pickup_TH":true,"cookie_consent":true,"smart_omo_express_cart":true,"customer_group_regenerate":true,"customer_group_filter_p3":true,"customer_group_filter_p2":true,"page_builder_revamp_theme_setting_initialized":true,"page_builder_revamp_theme_setting":true,"page_builder_revamp":true,"customer_group_broadcast":true,"partial_free_shipping":true,"broadcast_addfilter":true,"social_name_in_order":true,"admin_app_extension":true,"fb_group":true,"fb_broadcast_sc":true,"711_CB_13countries":true,"sl_payment_type_check":true,"sl_payment_standard_v2":true,"shop_category_filter_bulk_action":true,"einvoice_list_by_day":true,"bulk_action_product":true,"bulk_action_customer":true,"pos_only_product_settings":true,"tax_inclusive_setting":true,"one_new_filter":true,"order_tag":true,"out_of_stock_order":true,"cross_shop_tracker":true,"sl_logistics_modularize":true,"fbe_shop":true,"sc_manual_order":true,"sc_sidebar":true,"fb_multi_category_feed":true,"credit_amount_condition_hidden":true,"credit_installment_payment_fee_hidden":true,"sc_facebook_live":true,"category_sorting":true,"dashboard_v2_revamp":true,"customer_tag":true,"customer_coupon":true,"bulk_assign_point":true,"zotabox":true,"locale_revamp":true,"facebook_notify":true,"stripe_payment_intents":true,"customer_edit":true,"fbe_v2_edit":true,"payment":{"oceanpay":true,"sl_payment":true,"payme":true,"sl_logistics_fmt_freeze":true,"stripe_google_pay":true},"fb_pixel_v2":true,"fb_feed_unlimit":true,"customer_referral":true,"fb_product_set":true,"message_center_v3":true,"email_credit_expire_notify":true,"enhanced_catalog_feed":true,"theme_level":3,"chatbot_keywords_matching":true,"dusk_setting":true,"varm_setting":true,"skya_setting":true,"philia_setting":true,"theme_doris_bien":true,"theme_bianco":true,"theme_sangria":true,"preset_publish":true,"membership_tiers":5,"cart_addon_condition":true,"chatbot_image_widget":true,"chatbot_card_carousel":true,"uc_v2_endpoints":true,"uc_integration":true,"member_price":true,"revert_credit":true,"buy_n
1658ow_button":true,"blog":true,"reports":true,"custom_css":true,"multicurrency":true,"chatbot_welcome_template":true,"smart_recommended_related_products":true,"order_custom_field_limit":5,"sl_payments_my_cc":true,"sl_payments_tw_cc":true,"sl_payments_sg_cc":true,"sl_payments_my_fpx":true,"sl_payment_cc":true,"express_cart":true,"chatbot_card_template":true,"customer_custom_field_limit":5,"sfexpress_centre":true,"sfexpress_store":true,"sfexpress_service":true,"sfexpress_eflocker":true,"product_page_limit":-1,"gifts_limit":-1,"disable_old_upgrade_reminder":true,"image_limit":100000,"domain_applicable":true,"share_cart_link":true,"exclude_product":true,"cancel_order_by_customer":true,"storefront_return":true,"admin_manual_order":true,"fbe_v2":true,"promotion_limit":-1,"th_pricing_page_2020":true,"shoplytics_to_hd":true,"stripe_subscription_my_account":true,"user_credit":{"manual":true},"google_recaptcha":true,"product_feed_info":true,"disable_footer_brand":true,"footer_brand":true,"design":{"logo_favicon":true,"shop_template_advanced_setting":true},"fb_ssapi":true,"user_settings":{"facebook_login":true},"fb_quick_signup_link":true,"design_submenu":true,"vn_pricing_page_2020":true,"line_signup":true,"google_signup_login":true,"toggle_mobile_category":true,"online_store_design":true,"tcat_newlabel":true,"auto_reply_fb":true,"ig_new_api":true,"google_ads_manager":true,"facebook_pixel_manager":true,"bing_ads":true,"google_remarketing_manager":true,"google_analytics_manager":true,"yahoo_dot":true,"google_tag_manager":true,"order_split":true,"line_in_chat_shopping":true,"cart_addon":true,"enable_cart_addon_item":true,"studio_livestream":true,"fb_shop_now_button":true,"dashboard_v2":true,"711_cross_delivery":true,"product_log_v2":true,"integration_one":true,"fb_1on1_chat":true,"line_1on1_chat":true,"admin_custom_domain":true,"facebook_ads":true,"product_info":true,"hidden_product_p2":true,"channel_integration":true,"sl_logistics_fmt_freeze":true,"sl_pos_admin_order_archive_testing":true,"sl_pos_receipt_preorder_return_enhancement":true,"sl_pos_receipt_setting_by_channel":true,"sl_pos_purchase_order_onlinestore":true,"sl_pos_inventory_count_for_selected_products":true,"sl_pos_credit_redeem":true,"sl_pos_receipt_information":true,"sl_pos_android_A4_printer":true,"sl_pos_iOS_A4_printer":true,"sl_pos_pin_products":true,"sl_pos_price_by_channel":true,"sl_pos_terminal_bills":true,"sl_pos_promotion_by_channel":true,"sl_pos_bulk_import_update_enhancement":true,"sl_pos_free_gifts_promotion":true,"sl_pos_transfer_onlinestore":true,"sl_pos_new_report_daily_payment_methods":true,"sl_pos_new_report_overview":true,"sl_pos_new_report_transaction_detail":true,"sl_pos_new_report_product_preorder":true,"sl_pos_new_report_customer_analysis":true,"sl_pos_terminal_tw":true,"sl_pos_SHOPLINE_Payments_tw":true,"sl_pos_user_permission":true,"sl_pos_feature_permission":true,"sl_pos_report_shoplytics_psi":true,"sl_pos_einvoice_refactor":true,"sl_pos_member_points":true,"sl_pos_product_set":true,"pos_retail_store_price":true,"sl_pos_save_send_receipt":true,"sl_pos_partial_return":true,"sl_pos_variation_setting_refactor":true,"sl_pos_password_setting_refactor":true,"sl_pos_supplier_refactor":true,"sl_pos_admin_staff":true,"sl_pos_customized_price":true,"sl_pos_member_price":true,"sl_pos_admin_register_shift":true,"sl_pos_logo_terms_and_condition":true,"sl_pos_inventory_transfer_request":true,"sl_pos_admin_inventory_transfer":true,"sl_pos_inventory_count":true,"sl_pos_transaction_conflict":true,"sl_pos_transaction_view_admin":true,"sl_pos_admin_delete_order":true,"sl_pos_admin_cancel_order":true,"sl_pos_order_refactor_admin":true,"sl_pos_purchase_order_partial_in_storage":true,"sl_pos_admin_purchase_order":true,"sl_pos_promotion":true,"sl_pos_payment":true,"sl_pos_discount":true,"email_member_forget_password_notify":true,"sl_pos_admin":true,"sl_pos":true,"subscription_currency":true,"subscription_product":true,"broadcast_center":true,"bundle_pricing":true,"bundle_group":true,"unified_admin":true,"email_member_register_notify":true,"shopline_product_reviews":true,"tier_member_price":true,"email_order_notify":true,"custom_notify":true,"marketing_affiliate_p2":true,"member_points":true,"blog_app":true,"wishlist_app":true,"hidden_product":true,"product_quantity_update":true,"line_shopping_new_fields":true,"staff_limit":-1,"broadcast_unsubscribe_email":true,"menu_limit":-1,"revert_credit_p2":true,"new_sinopac_3d":true,"category_limit":-1,"image_gallery_p2":true,"taxes_settings":true,"customer_advanced_filter":true,"membership":{"index":true,"export":true,"import":true,"view_user":true,"blacklist":true},"marketing_affiliate":true,"addon_products_limit":-1,"order_filter_shipped_date":true,"variant_image_selector":true,"variant_saleprice_cost_weight":true,"variation_label_swatches":true,"image_widget_mobile":true,"fmt_revision":true,"back_
1658in_stock_notify":true,"ecpay_expirydate":true,"product_available_time":true,"select_all_customer":true,"operational_bill":true,"product_limit":-1,"auto_credit":true,"page_limit":-1,"abandoned_cart_notification":true,"currency":{"vietnam_dong":true}}')) 1659app.constant('RESOLUTION_LIST', JSON.parse('[200,400,600,800,1000,1200,1400,1600,1800,2000]')) 1660app.constant('NEW_RESOLUTION_LIST', JSON.parse('[375,540,720,900,1080,1296,1512,2160,2960,3260,3860]')) 1661 1662 1663app.config(function (AnalyticsProvider) { 1664 1665 1666 AnalyticsProvider.startOffline(true); 1667 1668}); 1669 1670app.value('fbPixelSettings', [{"single_variation":false,"trackingCode":"2098034467214410","unique_ids":true}]); 1671 1672<!-- translation for angular --> 1673app.constant('ANGULAR_LOCALE', { 1674 ...{"DATETIME_FORMATS":{"AMPMS":"[\"am\", \"pm\"]","DAY":"[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]","MONTH":"[\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]","SHORTDAY":"[\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]","SHORTMONTH":"[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]","fullDate":"EEEE, MMMM d, y","longDate":"MMMM d, y","medium":"MMM d, y h:mm:ss a","mediumDate":"MMM d, y","mediumTime":"h:mm:ss a","short":"M/d/yy h:mm a","shortDate":"M/d/yy","shortTime":"h:mm a"},"NUMBER_FORMATS":{"CURRENCY_SYM":"$","DECIMAL_SEP":".","GROUP_SEP":",","PATTERNS":[{"gSize":3,"lgSize":3,"maxFrac":3,"minFrac":0,"minInt":1,"negPre":"-","negSuf":"","posPre":"","posSuf":""},{"gSize":3,"lgSize":3,"maxFrac":2,"minFrac":2,"minInt":1,"negPre":"-¤","negSuf":"","posPre":"¤","posSuf":""}]},"id":"en"}, 1675 pluralCat: function(n, opt_precision) { 1676 if (['ja'].indexOf('en') >= 0) { return PLURAL_CATEGORY.OTHER; } 1677 var i = n | 0; 1678 var vf = getVF(n, opt_precision); 1679 if (i == 1 && vf.v == 0) { 1680 return PLURAL_CATEGORY.ONE; 1681 } 1682 return PLURAL_CATEGORY.OTHER; 1683 } 1684}); 1685 1686 1687 1688 1689 1690app.value('product', {"_id":"6aa36e90de77e200134fb066","owner_id":"6576a1830ee9d100760d043d","field_titles":[],"hide_price":false,"same_price":false,"location_id":"","sku":"mtbox15*24_Calenda_2026\u0000_1","brand":"Margot Tita","mpn":"","gtin":"301185188398","summary_translations":{"zh-hant":"ã»æ³å馿°´ä¹é½æ ¼ææ¯è£½é \nã»èå«90%å¤©ç¶æåçç´ç´ 馿°´\nã»ä¾¿æå¼å®¹éå¯é¨æè£å 馿°£\nã»æ ¹æå好èªç±æ··é¦ï¼æé å°å±¬é¦å³\nã»å §å«20款15mlè¿·ä½ æ·¡é¦ç²¾ã2款髮é¦å´é§ã1æ¬¾èº«é«æ²¹ã1æ¬¾å®¤å §å´é§","en":"ã»French Eau de Parfum made in Grasse\nã»Long-lasting fragrance\nã»Layerable with our other fragrances\nã»15 ml format to take anywhere\nã»+90% naturally-derived ingredients"},"title_translations":{"zh-hant":"ãMargot\u0026Titaã2026 ééèèªåæ¸ææ","en":"ãMargot\u0026TitaãAdvent Calendar 2026 - Limited quantity"},"unlimited_quantity":false,"out_of_stock_orderable":true,"price":{"cents":16560,"currency_symbol":"NT$","currency_iso":"TWD","label":"NT$16,560","dollars":16560.0},"price_sale":{"cents":8900,"currency_symbol":"NT$","currency_iso":"TWD","label":"NT$8,900","dollars":8900.0},"max_order_quantity":-1,"status":"active","supplier_id":"","seo_keywords":"忏ææ,åæ¸æ¥æ,èèªææ","is_preorder":true,"preorder_note_translations":{"zh-hant":"æ¬ååçºé è³¼ç¢åï¼ç´10æåºé¸çºåºè²¨ã","en":"Pre-order item. Shipping begins in late October."},"stock_ids":["6aa36e90de77e200134fb069","6aa36e90de77e200134fb068"],"weight":1.0,"subscription_enabled":false,"subscription_period_type":"day","subscription_period_duration":7,"subscription_recurring_count_limit":-1,"schedule_publish_at":"2026-09-30T16:00:00.000Z","gender":"unisex","age_group":"all_ages","adult":"no","condition":"new","amazon_url":"","amazon_asin":"","taxable":false,"price_max":{"cents":0,"currency_symbol":"NT$","currency_iso":"TWD","label":"","dollars":0.0},"member_price_max":{"cents":0,"currency_symbol":"NT$","currency_iso":"TWD","label":"","dollars":0.0},"addon_product_priorities":{},"blacklisted_delivery_option_ids":["657c25df7c6b83001a0a382e","65800cb8965f7e0020881194","65801b10620aa60023ef7c57","65801b10620aa60023ef7c5a","668371b788b7dd001c21d609","65bb357dfa3cbc000e787f54"],"blacklisted_payment_ids":[],"blacklisted_feed_channels":[],"related_product_ids":["6718b7b6dcc5b4000b7e8ee7","658b942a3790d100018c6b1c","6736fc14b7945e000fdaeee8","6718b1ee6
1690d5f45000ee2dec6"],"is_excluded_promotion":true,"created_by":"admin","root_product_id":"6aa36e90de77e200134fb067","feed_category":{"google_product_category":"Health \u0026 Beauty \u003e Personal Care \u003e Cosmetics","google_category_id":"health_beauty","google_option_id":"personal_care","google_3rd_layer_option_id":"cosmetics","facebook_category_id":"health_beauty","fb_product_category":"health \u0026 beauty \u003e beauty","facebook_option_id":"beauty"},"retail_status":"draft","type":"product","feed_variations":{"color":"","size":"15ml","custom":{},"material":""},"member_price":{"cents":0,"currency_symbol":"NT$","currency_iso":"TWD","label":"","dollars":0.0},"lowest_member_price":{"cents":8900,"currency_symbol":"NT$","currency_iso":"TWD","label":"NT$8,900","dollars":8900.0},"available_start_time":null,"available_end_time":null,"is_reminder_active":true,"flash_price_sets":[],"pos_category_ids":["665452dff1c36000134010c2"],"media":[{"images":{"original":{"width":1080.0,"height":1080.0,"url":"https://img.shoplineapp.com/media/image_clips/6ab37ddf376ab931829295cc/original.jpg?1790148063=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6ab37ddf376ab931829295cc","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6ab37ddf376ab931829295cc/2000x.webp?source_format=jpg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6ab37ddf376ab931829295cc/400x.webp?source_format=jpg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6ab37ddf376ab931829295cc/400x.webp?source_format=jpg"},{"images":{"original":{"width":1180.0,"height":1180.0,"url":"https://img.shoplineapp.com/media/image_clips/6aaa45352f7367cf6ccdd75e/original.jpg?1789543733=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6aaa45352f7367cf6ccdd75e","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45352f7367cf6ccdd75e/2000x.webp?source_format=jpg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45352f7367cf6ccdd75e/400x.webp?source_format=jpg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45352f7367cf6ccdd75e/400x.webp?source_format=jpg"},{"images":{"original":{"width":1080.0,"height":1080.0,"url":"https://img.shoplineapp.com/media/image_clips/6aaa45500be759c32a96bf5b/original.jpeg?1789543760=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6aaa45500be759c32a96bf5b","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45500be759c32a96bf5b/2000x.webp?source_format=jpeg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45500be759c32a96bf5b/400x.webp?source_format=jpeg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45500be759c32a96bf5b/400x.webp?source_format=jpeg"},{"images":{"original":{"width":1080.0,"height":1080.0,"url":"https://img.shoplineapp.com/media/image_clips/6aaa449f74a226c536dfaaca/original.jpg?1789543582=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6aaa449f74a226c536dfaaca","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa449f74a226c536dfaaca/2000x.webp?source_format=jpg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa449f74a226c536dfaaca/400x.webp?source_format=jpg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa449f74a226c536dfaaca/400x.webp?source_format=jpg"},{"images":{"original":{"width":1540.0,"height":1540.0,"url":"https://img.shoplineapp.com/media/image_clips/6aaa457c60f3cdc20a8066de/original.jpeg?1789543803=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6aaa457c60f3cdc20a8066de","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa457c60f3cdc20a8066de/2000x.webp?source_format=jpeg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa457c60f3cdc20a8066de/400x.webp?source_format=jpeg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa457c60f3cdc20a8066de/400x.webp?source_format=jpeg"},{"images":{"original":{"width":1540.0,"height":1540.0,"url":"https://img.shoplineapp.com/media/image_clips/6aaa458463f015cde24e071f/original.jpeg?1789543811=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6aaa458463f015cde24e071f","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa458463f015cde24e071f/2000x.webp?source_format=jpeg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa458463f015cde24e071f/400x.webp?source_format=jpeg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa458463f015cde24e071f/400x.webp?source_format=jpeg"}
1690,{"images":{"original":{"width":1080.0,"height":1080.0,"url":"https://img.shoplineapp.com/media/image_clips/6aaa45bc512ab1cb464cab10/original.jpg?1789543867=\u0026owner_id=6576a1830ee9d100760d043d"}},"_id":"6aaa45bc512ab1cb464cab10","alt_translations":{},"blurhash":"","detail_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45bc512ab1cb464cab10/2000x.webp?source_format=jpg","default_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45bc512ab1cb464cab10/400x.webp?source_format=jpg","thumb_image_url":"https://shoplineimg.com/6576a1830ee9d100760d043d/6aaa45bc512ab1cb464cab10/400x.webp?source_format=jpg"}],"cover_media_array":[{"_id":"6ab37ddf376ab931829295cc","original_image_url":"https://img.shoplineapp.com/media/image_clips/6ab37ddf376ab931829295cc/original.jpg?1790148063=\u0026owner_id=6576a1830ee9d100760d043d"},{"_id":"6aaa45352f7367cf6ccdd75e","original_image_url":"https://img.shoplineapp.com/media/image_clips/6aaa45352f7367cf6ccdd75e/original.jpg?1789543733=\u0026owner_id=6576a1830ee9d100760d043d"},{"_id":"6aaa45500be759c32a96bf5b","original_image_url":"https://img.shoplineapp.com/media/image_clips/6aaa45500be759c32a96bf5b/original.jpeg?1789543760=\u0026owner_id=6576a1830ee9d100760d043d"},{"_id":"6aaa449f74a226c536dfaaca","original_image_url":"https://img.shoplineapp.com/media/image_clips/6aaa449f74a226c536dfaaca/original.jpg?1789543582=\u0026owner_id=6576a1830ee9d100760d043d"},{"_id":"6aaa457c60f3cdc20a8066de","original_image_url":"https://img.shoplineapp.com/media/image_clips/6aaa457c60f3cdc20a8066de/original.jpeg?1789543803=\u0026owner_id=6576a1830ee9d100760d043d"},{"_id":"6aaa458463f015cde24e071f","original_image_url":"https://img.shoplineapp.com/media/image_clips/6aaa458463f015cde24e071f/original.jpeg?1789543811=\u0026owner_id=6576a1830ee9d100760d043d"},{"_id":"6aaa45bc512ab1cb464cab10","original_image_url":"https://img.shoplineapp.com/media/image_clips/6aaa45bc512ab1cb464cab10/original.jpg?1789543867=\u0026owner_id=6576a1830ee9d100760d043d"}],"variations":[],"variant_options":[],"addon_promotions":"","retail_price":{"cents":8900,"currency_symbol":"NT$","currency_iso":"TWD","label":"NT$8,900","dollars":8900.0},"quantity":0,"stock_id":"6aa36e90de77e200134fb069","warehouse":{"_id":"6576a233a62aa00018ca4759","name_translations":{"zh-cn":"é¢è®¾ä»åº","zh-hant":"é è¨å庫","en":"Primary"}},"is_stock_shared":false,"wish_list_items":[],"product_price_tiers":[{"membership_tier_id":"658c015d797582001acd8213","member_price":null},{"membership_tier_id":"658c0106a12b38000e26dbcc","member_price":null}],"link":{"_id":"6aa36e9275c5b6af7213ee65","status":"active","type":"product","section":"seo","owner_id":"6576a1830ee9d100760d043d","value_id":"6aa36e90de77e200134fb066","name_translations":{},"image_id":""},"filter_tags":[],"labels":[{"id":"6abdb46cba087b14536df472","name_translations":{"zh-hant":"æ°åä¸å¸","en":"NEW"}}],"bundle_set":null,"sold_out":false,"child_products":[],"identifier_exists":true,"price_range":"","member_price_range":"","tax_type":"","oversea_tax_type":"","preorder_limit":6,"total_orderable_quantity":6,"cart_tag":{"_id":"","name_translations":{},"priority":0},"allow_gift":false,"display_sales_count":0,"custom_sales_count":0}); 1691app.value('products', []); 1692app.value('variantId', ""); 1693app.value('advanceFilterData', null); 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 try { 1705 var $searchPanelMobile; 1706 1707 1708 var $mask = $('<div class="Modal-mask sl-modal-mask" style="display: none;"></div>'); 1709 1710 function showMask() { 1711 $mask.css({'opacity': '0.3', 'display': 'block'}); 1712 1713 $('.Product-searchField-panel').removeClass('is-show'); 1714 } 1715 1716 function hideMask() { 1717 $mask.css({'opacity': '0'}); 1718 setTimeout(function() { 1719 $mask.css({'display': 'none'}); 1720 }, 200); 1721 } 1722 1723 var cartPanelOptions = new SidrOptions({ 1724 name: 'cart-panel', 1725 onOpen: function() { 1726 showMask(); 1727 angular.element('body').scope().$broadcast('cart.reload'); 1728 }, 1729 onClose: hideMask 1730 }); 1731 1732 $('.sl-cart-toggle').sidr(cartPanelOptions); 1733 $('.sl-menu-panel-toggle').sidr(new SidrOptions({ name: 'MenuPanel', onOpen: showMask, onClose: hideMask })); 1734 1735 $mask 1736 .appendTo('body') 1737 .on('click', function() { 1738 $.sidr('close', 'MenuPanel'); 1739 $.sidr('close', 'cart-panel'); 1740 hideMask(); 1741 }); 1742 1743 1744 $( ".body-wrapper" ).on("click touch touchmove", function(e) { 1745 if ($(".body-wrapper").hasClass("sidr-open" )) { 1746 e.preventDefault(); 1747 e.stopPropagation(); 1748 $.sidr('close','left-panel'); 1749 $.sidr('close','cart-panel'); 1750 $.sidr('close','currency-panel'); 1751 $.sidr('close','language-panel'); 1752 $('html, body').css({'overflow': 'auto'}); 1753 } 1754 }); 1755 1756 $(document).ready(function() { 1757 if (typeof Sentry !== 'undefined') { 1758 var LOG_LEVELS = { 1759 'Verbose': ['log', 'info', 'warn', 'error', 'debug', 'assert'], 1760 'Info': ['info', 'warn', 'error'], 1761 'Warning': ['warn', 'error'], 1762 'Error': ['error'], 1763 }; 1764 1765 var config = { 1766 dsn: 'https://[email protected]/5797752', 1767 env: 'production', 1768 commitId: '', 1769 sampleRate: 1, 1770 tracesSampleRate: 0, 1771 logLevels: LOG_LEVELS['Error'], 1772 beforeSend: function(event) {
1773 try { 1774 if ([ 1775 'gtm', 1776 'gtag/js', 1777 'tracking', 1778 'pixel/events', 1779 'signals/iwl', 1780 'rosetta.ai', 1781 'twk-chunk', 1782 'webpush', 1783 'jquery', 1784 '<anonymous>' 1785 ].some(function(filename) { 1786 return event.exception.values[0].stacktrace.frames[0].filename.toLowerCase().indexOf(filename) > -1; 1787 }) || 1788 event.exception.values[0].stacktrace.frames[1].function.toLowerCase().indexOf('omni') > -1 1789 ) { 1790 return null; 1791 } 1792 } catch (e) {} 1793 1794 return event; 1795 }, 1796 }; 1797 1798 var pageName = ''; 1799 1800 try { 1801 var pathName = window.location.pathname; 1802 1803 if (pathName.includes('/cart')) { 1804 pageName = 'cart'; 1805 } 1806 if (pathName.includes('/checkout')) { 1807 pageName = 'checkout'; 1808 } 1809 } catch (e) {} 1810 1811 var exclusionNames = []; 1812 var isLayoutEngine = false; 1813 1814 /** 1815 * Check if the current page contains gtm 1816 */ 1817 var checkHasGtm = function() { 1818 return Array.from(document.scripts).some(function(script) { 1819 return script.src.includes('gtm.js'); 1820 }); 1821 } 1822 1823 Sentry.init({ 1824 dsn: config.dsn, 1825 environment: config.env, 1826 release: config.commitId, 1827 integrations: function(integrations) { 1828 var ourIntegrations = integrations.concat([ 1829 new Sentry.Integrations.BrowserTracing(), 1830 new Sentry.Integrations.CaptureConsole({ levels: config.logLevels }), 1831 ]); 1832 1833 if (isLayoutEngine || checkHasGtm()) { 1834 exclusionNames = ["GlobalHandlers", "TryCatch", "CaptureConsole"]; 1835 } 1836 1837 var finalIntegrations = 1838 ourIntegrations.filter(function(integration) { 1839 return !exclusionNames.includes(integration.name); 1840 }); 1841 return finalIntegrations; 1842 }, 1843 sampleRate: config.sampleRate, 1844 tracesSampler: function(samplingContext) { 1845 const transactionContext = samplingContext.transactionContext || {}; 1846 const op = transactionContext.op || ''; 1847 1848 if (op === 'cartV2.ui.action') { 1849 return 1.0; 1850 } 1851 return config.tracesSampleRate; 1852 }, 1853 attachStacktrace: true, 1854 denyUrls: [ 1855 'graph.facebook.com', 1856 'connect.facebook.net', 1857 'static.xx.fbcdn.net', 1858 'static.criteo.net', 1859 'sslwidget.criteo.com', 1860 'cdn.shopify.com', 1861 'googletagservices.com', 1862 'googletagmanager.com', 1863 'google-analytics.com', 1864 'googleadservices.com', 1865 'googlesyndication.com', 1866 'googleads.g.doubleclick.net', 1867 'adservice.google.com', 1868 'cdn.mouseflow.com', 1869 'cdn.izooto.com', 1870 'static.zotabox.com', 1871 'static.hotjar.com', 1872 'd.line-scdn.net', 1873 'bat.bing.com', 1874 's.yimg.com', 1875 'js.fout.jp', 1876 'load.sumo.com', 1877 '.easychat.co', 1878 '.chimpstatic.com', 1879 '.yotpo.com', 1880 '.popin.cc', 1881 '.iterable.com', 1882 '.alexametrics.com', 1883 '.giphy.com', 1884 'stats.zotabox.com', 1885 'stats.g.doubleclick.net', 1886 'www.facebook.com', 1887 ], 1888 beforeSend: config.beforeSend, 1889 }); 1890 1891 1892 1893 var tags = { 1894 page_locale: 'en', 1895 user_country: 'US', 1896 handle: 'anelet', 1897 cart_owner_id: '', 1898 cart_owner_type: '', 1899 cart_id: '', 1900 }; 1901 1902 if (pageName) { 1903 tags.page = pageName; 1904 } 1905 1906 Sentry.setTags(tags); 1907} 1908 1909 1910 $searchPanelMobile = $jq('.search-panel-mobile'); 1911 // to show a loading dialog when a huge Product Description Image/Video blocks page content from rednering 1912 $("#product-loading").remove(); 1913 1914 var lazyClasses = ['sl-lazy', 'sl-lazyloading', 'sl-lazyloaded', 'sl-lazypreload', 'sl-lazyerror']; 1915 $jq(".additional-details-content, .ProductDetail-additional, .ProductDetail-gallery") 1916 .find("img[data-src]:not([data-src='']), iframe[data-src]:not([data-src=''])") 1917 .each(function() { 1918 var domClassList = ($(this).attr('class') || '').split(/\s+/); 1919 // check used lazysizes 1920 var hasLazyClass = domClassList.some(function(className) { 1921 return lazyClasses.includes(className); 1922 }); 1923 if (!hasLazyClass) { 1924 $(this) 1925 .attr('src', $(this).attr('data-src')) 1926 .removeAttr('data-src'); 1927 } 1928 }); 1929
1930 if ($jq("#home-carousel").length > 0) { 1931 runTaskInIdle(() => { 1932 $jq("#home-carousel").owlCarousel({ 1933 items: 1, 1934 singleItem: true, 1935 autoPlay: true, 1936 stopOnHover: true, 1937 lazyLoad : true, 1938 onLoadedLazy: function(event) { window.resizeImages(event.target); }, 1939 autoHeight:true, 1940 navigation: true, 1941 navigationText: false, 1942 }); 1943 }); 1944 } 1945 1946 $jq(".owl-carousel").each(function () { 1947 runTaskInIdle(() => { 1948 var owl = $jq(this); 1949 owl.owlCarousel({ 1950 loop: true, 1951 items: 1, 1952 margin: 10, 1953 nav: false, 1954 lazyLoad: true, 1955 onLoadedLazy: function(event) { 1956 window.resizeImages(event.target); 1957 }, 1958 onInitialized: function() { 1959 //owl-stage have transition: 0.25s Time difference 1960 setTimeout(function() { 1961 owl.prev('.owl-carousel-first-initializing').hide(); 1962 owl 1963 .removeClass('initializing') 1964 .trigger('refresh.owl.carousel'); 1965 }, 300); 1966 }, 1967 autoplay: true, 1968 autoplayTimeout: (parseFloat($jq(this).data('interval')) || 5) * 1000, 1969 autoHeight: true, 1970 autoplayHoverPause: false // https://github.com/OwlCarousel2/OwlCarousel2/pull/1777 1971 }); 1972 }); 1973 }); 1974 1975 function restartCarousel() { 1976 if (document.visibilityState === 'visible') { 1977 $jq(".owl-carousel").each(function (_, element) { 1978 var $carousel = $jq(element); 1979 var owlCarouselInstance = $carousel.data("owl.carousel"); 1980 var isAutoplay = owlCarouselInstance.settings.autoplay; 1981 if (isAutoplay) { 1982 $carousel.trigger('stop.owl.autoplay'); 1983 $carousel.trigger('next.owl.carousel'); 1984 } 1985 }); 1986 } 1987 } 1988 document.addEventListener('visibilitychange', restartCarousel); 1989 1990 setTimeout(function() { 1991 $jq('.title-container.ellipsis').dotdotdot({ 1992 wrap: 'letter' 1993 }); 1994 1995 var themeKey = 'kingsman_v2'; 1996 var heightToDot = { 1997 varm: 55, 1998 philia: 45, 1999 skya: 45 2000 }; 2001 2002 $jq('.Product-item .Product-info .Product-title').dotdotdot({ 2003 wrap: 'letter', 2004 ellipsis: '...', 2005 height: heightToDot[themeKey] || 40 2006 }); 2007 }); 2008 2009 // avoid using FB.XFBML.parse() as it breaks the fb-checkbox rendering, if u encounter resize issue, solve with CSS instead 2010 }); 2011 2012 $(document).on('click', '.m-search-button', function(){ 2013 $searchPanelMobile.toggleClass('click'); 2014 if ($('.body-wrapper').hasClass('sidr-open')) { 2015 $.sidr('close','left-panel'); 2016 $.sidr('close','cart-panel'); 2017 $.sidr('close','language-panel'); 2018 $.sidr('close','currency-panel'); 2019 $('html, body').css({'overflow': 'auto'}); 2020 } 2021 }); 2022 2023 $(document).on('click', '.search-mask', function() { 2024 $searchPanelMobile.toggleClass('click'); 2025 }); 2026 2027 2028 2029 2030 if (window.scriptQueue && window.scriptQueue.length > 0) { 2031 runTaskQueue(window.scriptQueue); 2032 } 2033 2034 2035 } catch (e) { 2036 console.error(e); 2037 } 2038 2039 window.renderSingleRecaptchaForSendCode = function(element) { 2040 var widgetId = window.grecaptcha.render(element, { 2041 sitekey: "6LdXuMspAAAAAOq6CWV8J2I49kmGJoGxnZ2qvhcb" 2042 }, true); 2043 2044 element.dataset.widgetId = widgetId; 2045 }; 2046 2047 2048 window.renderSingleRecaptcha = function(element) { 2049 var widgetId = window.grecaptcha.render(element, { 2050 sitekey: "6LdXuMspAAAAAOq6CWV8J2I49kmGJoGxnZ2qvhcb" 2051 }, true); 2052 2053 element.dataset.widgetId = widgetId; 2054 }; 2055 2056 2057 window.initRecaptcha = function() { 2058 // Delay event binding to avoid angular clear registered events 2059 2060 document.querySelectorAll('.g-recaptcha:not([id$="send-code
2060-recaptcha"]').forEach(renderSingleRecaptcha); 2061 2062 2063 document.querySelectorAll('#quick-sign-up-send-code-recaptcha').forEach(renderSingleRecaptchaForSendCode); 2064 2065 2066 if (document.getElementById('sign-up-recaptcha')) { 2067 document.getElementById('sign-up-recaptcha').disabled = true; 2068 } 2069 2070 angular.element(document).scope().$root.recaptchaLoaded = true; 2071 window.globalSDKObserver.grecaptcha.notify(); 2072 } 2073 2074 window.onRecaptchaLoaded = function() { 2075 if (!window.grecaptcha.render) { 2076 window.grecaptcha.ready(function() { 2077 initRecaptcha(); 2078 }); 2079 return; 2080 } 2081 initRecaptcha(); 2082 }; 2083 2084 2085 runTaskInIdle(() => { 2086 angular.element(document).ready(function() { 2087 var tag = document.createElement("script"); 2088 tag.src = "https://www.recaptcha.net/recaptcha/api.js?onload=onRecaptchaLoaded&render=explicit"; 2089 document.getElementsByTagName("head")[0].appendChild(tag); 2090 }); 2091 angular.bootstrap(document, ['shop_app']); 2092 }); 2093 runTaskInIdle(() => { 2094 window.APP_EXTENSION_SDK_ANGULAR_JS_LOADED.resolve(); 2095 }); 2096 2097}); 2098 2099</script>
2099 2100 2101<base href="/"> 2102 2103<!-- CSRF --> 2104<meta name="csrf-param" content="authenticity_token" /> 2105<meta name="csrf-token" content="6ok+EmnBLudrvT5iLsKAyEcr30PMwzoBW9kNQ00zMG22WmFFQrZhw/bIbx62MTM+JGisIOZjqzRFihlAhmnoig==" /> 2106 2107<!-- Start of Criteo one tag --> 2108 2109<!-- End of Criteo one tag --> 2110 2111 2112 2113 2114 2115 </head> 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 <body class="products show mix-navigation-fixed kingsman_v2 light_theme v2_theme" ng-controller="MainController"> 2137 2138 2139 2140 2141 2142 2143 2144 <link rel="stylesheet" href="/assets/theme_kingsman_v2_setting-67bf495948743fe6c5f2c89c7d5ae1f07864267476771ab085828cd4329c2163.css" media="print" onload="this.media="all""> 2145 2146 2147 2148 2149 2150 2151 <style> 2152 .variation-label:hover,.variation-label.variation-label--selected,.ProductList-breadcrumb a:hover,.ProductDetail-breadcrumb a:hover,.PromotionPage-banner .PromotionPage-breadcrumb a:hover,.member-center-coupon-nav .active,.product-available-info-time,.category-advance-filter .filter-data .filter-item-title .expend-toggle:hover,.category-advance-filter .filter-data .filter-item label:hover,.facebook-banner .fa-times,.facebook-banner .wording,sl-list-page-wishlist-button .plp-wishlist-button .fa-heart,.text-primary-color,.text-primary-color a,.text-primary-color a:hover{color:#a68a49}.basic-popover-mobile .member-referral-link,.basic-popover-mobile .member-referral-link:hover{color:#a68a49 !important}.nav-bg-color,.nav-bg-color .NavigationBar-nestedList .NavigationBar-nestedList-dropdown,.nav-bg-color.sidr,.cart-primary-bg-color:not(:empty),.primary-bg-color-tag,.primary-bg-title-color:before,.primary-hover-bg-color li:hover,.cart-chkt-btn,.cart-chkt-btn:hover,.pagination li.active a:after,.pagination li a:hover:after,.pagination li a:active:after,.pagination li a:focus:after,.addon-promotions-container .addon-item-chkbox input:checked+span,#Footer .container:last-child .item:after,.navigation-menu .navigation-menu-item,.navigation-menu .navigation-menu-second-layer,.navigation-menu .navigation-menu-third-layer,.navigation-menu .scroll-left:not(.scroll-disable):hover,.navigation-menu .scroll-right:not(.scroll-disable):hover,.custom-dropdown .custom-dropdown-option:hover,#shopline-copyright,.coupon-card-image,.category-advance-filter .filter-data .filter-item-title .expend-toggle:hover .advance-filter-icon.close-icon::before,.category-advance-filter .filter-data .filter-item-title .expend-toggle:hover .advance-filter-icon.close-icon::after,.category-advance-filter .filter-data .filter-item-title .expend-toggle:hover .advance-filter-icon.open-icon::before,.category-advance-filter .filter-data .filter-item-title .expend-toggle:hover .advance-filter-icon.open-icon::after{background:#a68a49}.btn-color-primary,.member-profile-save,.mobile-verification-btn,.session-varify-code-btn,.MemberCenter .product-review-block .btn-primary,.quick-cart-cancel,.basic-popover-desktop .close-button,.basic-popover-desktop .body .description .icon,.basic-popover-desktop .body .action-button,#get-welcome-member-referral-credits .close-section .close-button,#get-welcome-member-referral-credits .body .continue{background:#a68a49 !important}.member-price-tag,.product-customized-labels,.modal-confirm .modal-footer .btn-confirm,.btn-cart-fixed:not(.btn-buy-now),.ProductList-settings category-filter-button .advance-filter-button:hover,.category-advance-filter .apply-button,.category-advance-filter .filter-data .filter-item label input[type='checkbox']:checked::after,.member-center-profile__submit-button,.member-center-profile__retry-button,.member-center-profile__member-referral-modal-button,.member-center-profile__email-verification-modal-button,.member-center-profile__submit-button:hover,.member-center-profile__retry-button:hover,.member-center-profile__member-referral-modal-button:hover,.member-center-profile__email-verification-modal-button:hover{background-color:#a68a49}.variation-label:hover,.variation-label.variation-label--selected,.cart-chkt-btn,.addon-promotions-container .addon-promotion-item-wrapper .addon-selected,.addon-promotions-container .addon-item-chkbox input:checked+span,.modal-confirm .modal
2152-footer .btn-confirm,.variant-image.selected .image-container,.btn-cart-fixed:not(.btn-buy-now),.product-available-info,.category-advance-filter .filter-data .filter-price-range input:focus,.category-advance-filter .filter-data .filter-price-range input:hover,.member-center-profile__submit-button,.member-center-profile__retry-button,.member-center-profile__member-referral-modal-button,.member-center-profile__email-verification-modal-button,.member-center-profile__submit-button:hover,.member-center-profile__retry-button:hover,.member-center-profile__member-referral-modal-button:hover,.member-center-profile__email-verification-modal-button:hover{border-color:#a68a49}.btn-color-primary,.member-profile-save,.mobile-verification-btn,.session-varify-code-btn,.MemberCenter .product-review-block .btn-primary,.basic-popover-desktop .body .action-button,#get-welcome-member-referral-credits .body .continue,.checkout-coupon-list-card:hover>.checkout-coupon-list-card-body{border-color:#a68a49 !important}.Product-promotions,.Util-cssToggle ~ .Util-cssToggleLabel{border-left-color:#a68a49}.product-available-info-time{border-bottom-color:#a68a49}.product-available-info-icon .icon-clock,.js-sticky-cart-button-container.fast-checkout-container.has-buy-now-button .icon-cart{fill:#a68a49}.customer-review-bar-color{background-color:rgba(43,56,100,0.3) !important}.facebook-quick-signup-success-page .title{color:#a68a49}.facebook-quick-signup-success-page .btn-facebook-redirect{background-color:#a68a49}.facebook-quick-signup-success-page .btn-facebook-redirect:hover{background-color:#a68a49;color:#fff;opacity:0.8}.facebook-quick-signup-failure-page .title{color:#a68a49}.facebook-quick-signup-failure-page .btn-facebook-redirect{background-color:#a68a49}.facebook-quick-signup-failure-page .btn-facebook-redirect:hover{background-color:#a68a49;color:#fff;opacity:0.8}.multi-checkout-confirm .multi-checkout-confirm__delivery_notice{color:#a68a49}.multi-checkout-confirm .multi-checkout-confirm__delivery_notice:before,.multi-checkout-confirm .multi-checkout-confirm__delivery_notice:after{background-color:#a68a49}#checkout-object__section .checkout-object__info_cart-header{color:#a68a49}#checkout-object__section .checkout-object__info_cart-header .icon-basket{fill:#a68a49}#signup-login-page .solid-btn:not([disabled]){background-color:#a68a49;border-color:#a68a49}#signup-login-page .solid-btn:not([disabled]):hover{color:#fff;opacity:0.9}#signup-login-page .solid-btn[data-loading]{background-color:#a68a49;border-color:#a68a49}#signup-login-page .outline-btn:not([disabled]){color:#a68a49;border-color:#a68a49}#signup-login-page .outline-btn:not([disabled]):hover{color:#fff;background-color:#a68a49;border-color:#a68a49;opacity:0.9}#signup-login-page .outline-btn[data-loading]{color:#a68a49;border-color:#a68a49}.member-center-profile__submit-button:hover,.member-center-profile__retry-button:hover,.member-center-profile__member-referral-modal-button:hover,.member-center-profile__email-verification-modal-button:hover{opacity:0.9} 2153 2154 </style> 2155 2156 2157 <style> 2158 .nav-bg-color .navigation-menu-item-label,.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus,.ProductDetail-product-info .btn-custom:not(.btn-buy-now),.member-price-tag,.product-customized-labels,.ProductList-settings-list li:hover,.btn-cart-fixed:not(.btn-buy-now),.modal-confirm .modal-footer .btn-confirm,.NavigationBar-nestedList .NavigationBar-nestedList-dropdown .fa.menu-list-item,#shopline-copyright>a{color:#ffffff}.nav-bg-color .MenuPanel-section .MenuPanel-section-header,.nav-bg-color .MenuPanel-section .List-item a,.cart-chkt-btn,.QuickCart-modal .quick-cart-body .product-info .btn-custom,.btn-color-primary,.member-profile-save,.mobile-verification-btn,.MemberCenter .product-review-block .btn-primary,.custom-dropdown .custom-dropdown-option:hover,.basic-popover-desktop .body .action-button,#get-welcome-member-referral-credits .body .continue{color:#ffffff !important}.cart-chkt-btn:hover .ladda-spinner div,.basic-popover-desktop .close-button:before,.basic-popover-desktop .close-button:after,#get-welcome-member-referral-credits .close-section .close-button:before,#get-welcome-member-referral-credits .close-section .close-button:after{background:#ffffff !important}.nav-bg-color .MenuPanel-othersMenu .List-item{border-color:#ffffff}.addon-promotions-container .addon-item-chkbox span:before{border-left-color:#ffffff}.nav-bg-color .MenuPanel-section .MenuPanel-section-header:not(:first-child):before{border-top-color:#ffffff}.quick-cart-cancel-holder .quick-cart-cancel:before,.quick-cart-cancel-holder .quick-cart-cancel:after,.addon-promotions-container .addon-item-chkbox span:before{border-bottom-color:#ffffff}.nav-bg-color .MenuPanel-othersMenu .List-item svg{fill:#ffffff} 2159 2160 </style> 2161 2162 2163 <style> 2164 .product-info .price-sale,.product-info .price-regular:not(.price-crossed),.product-info .quick-cart-price>div>div:not(.price-crossed),.ProductDetail-product-info .price-sale,.ProductDetail-product-info .price-regular:not(.price-crossed),.addon-promotions-container .addon-promotion-item .price-sale,.NavigationBar .List-item:hover .App-currencyDropdown .Label:first-letter,.NavigationBar .List-item:hover .CartPanel-toggleButton .Cart-count,.NavigationBar .List-item:hover .NavigationBar-actionMenu-button span,.Wishlist-addItem-block .btn-add-wishlist,.Back-in-stock-addItem-block .btn-add-back-in-stock,.ProductList-nestedList-dropdown .Label:hover,.PromotionPage-container product-item .price-sale,.PromotionPage-container redeem-gift-item .price-sale,.PromotionCart-content .product-content .price-details{color:#282210}.tertiary-color-price,.tertiary-hover-color:hover,.ProductReview-container a.primary-color-hover:hover,.ProductReview-container .List-item a.primary-color-hover:hover,.ProductReview-container .List-item a.disabled{color:#282210 !important}.NavigationBar .List-item:hover .CartPanel-toggleButton .Cart-count:not(:empty),.NavigationBar .NavigationBar-nestedList .multi-sub .sub-prev:hover>span,.NavigationBar .NavigationBar-nestedList .multi-sub .sub-next:hover>span{background:#282210}.PromotionCart-content .product-content .input-group-btn>.btn{border-color:#282210}.form-quantity .input-group-btn .btn-checkout{border-color:#282210 !important}.form-quantity .input-group-btn:last-child .btn-checkout:after,.accordion-box .accordion-title span:after,.addon-promotions-container .addon-promotion-item .quantity-container span:last-child button:after{border-left-color:#282210}.form-quantity .input-group-btn .btn-checkout:before,.accordion-box .accordion-title span:before,.addon-promotions-container .addon-promotion-item .quantity-container button:before{border-bottom-color:#282210}.tertiary-fill-icon,.NavigationBar .List-item:hover svg.icons,.PromotionPage-container product-item .boxify-image-wrapper .btn-add-to-promotion-cart svg,.PromotionPage-container redeem-gift-item .boxify-image-wrapper .btn-add-to-promotion-cart svg{fill:#282210}.tertiary-hover-icon:hover svg{fill:#282210 !important}.ProductReview-container a{text-decoration:none !important} 2165 2166 </style> 2167 2168 2169 2170 2171 2172 2173 <link rel="dns-prefetch" href="https://fonts.googleapis.com">
2173<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="dns-prefetch" href="https://fonts.gstatic.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 2174
2174<script> 2175 window.addEventListener('load', function() { 2176 const link = document.createElement('link'); 2177 link.rel = 'stylesheet'; 2178 link.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;700&display=swap'; 2179 link.media = 'print'; 2180 link.onload = () => { 2181 link.media = 'all'; 2182 } 2183 document.head.appendChild(link); 2184 }); 2185 </script>
2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 <style> 2198 /* Custom CSS */ 2199 .primary-bg-color-tag { 2200 background-color: transparent; /* è¨ç½®ç¶å ç´ èæ¯çºéæ */ 2201} 2202.primary-bg-color-tag .product-customized-labels-content { 2203 background-color: #a50014; /* ä¿®æ¹åå ç´ èæ¯è²çºç´ è² */ 2204 color: #ffffff; /* ä¿®æ¹æåé¡è² */ 2205 font-size: 13px; /* ä¿®æ¹æåå¤§å° */ 2206 border-radius: 3px; /* æ·»å å¾®å°çåè§ */ 2207 padding: 5px 8px; /* å¢å å §éè· */ 2208} 2209 </style> 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 <div ng-controller="FbInAppBrowserPopupController" ng-cloak> 2225 <div 2226 ng-if="showFbHint" 2227 class="in-app-browser-popup__container" 2228 > 2229 <div class="in-app-browser-popup__layout"> 2230 <div class="in-app-browser-popup__main"> 2231 <p class="in-app-browser-popup__desc"> 2232 {{ 'fb_in_app_browser_popup.desc' | translate }} 2233 <span class="in-app-browser-popup__copy-link" ng-click="copyUrl()">{{ 'fb_in_app_browser_popup.copy_link' | translate }}</span> 2234 </p> 2235 </div> 2236 <div class="in-app-browser-popup__footer"> 2237 <button class="in-app-browser-popup__close-btn" ng-click="handleClose()"> 2238 {{ 'close' | translate }} 2239 </button> 2240 </div> 2241 </div> 2242 </div> 2243</div> 2244 2245 <div ng-controller="InAppBrowserPopupController" ng-cloak> 2246 <div 2247 ng-if="canShowInAppHint && showMissingSessionKeyWarning" 2248 class="in-app-browser-popup__container" 2249 > 2250 <div class="in-app-browser-popup__layout"> 2251 <div class="in-app-browser-popup__main"> 2252 <p class="in-app-browser-popup__desc"> 2253 {{ 'in_app_browser_popup.desc' | translate }} 2254 </p> 2255 </div> 2256 <div class="in-app-browser-popup__footer"> 2257 <button class="in-app-browser-popup__close-btn" ng-click="handleClose()"> 2258 {{ 'close' | translate }} 2259 </button> 2260 </div> 2261 </div> 2262 </div> 2263</div> 2264 2265 2266 <div 2267 id="cookie-consent-popup" 2268 ng-controller="CookieConsentPopupController" 2269 ng-cloak 2270 data-nosnippet 2271> 2272 <div ng-if="state('showPopup')"> 2273 <div 2274 ng-show="!state('showDetailSettingsPanel')" 2275 class="cookie-consent-popup__container" 2276 > 2277 <div class="cookie-consent-popup__layout"> 2278 <div class="cookie-consent-popup__header"> 2279 <div class="cookie-consent-popup__title"> 2280 {{word('consent_title')}} 2281 </div> 2282 </div> 2283 <div class="cookie-consent-popup__main"> 2284 <p class="cookie-consent-popup__desc"> 2285 {{word('consent_desc')}} <a href="{{alink('read_more')}}" target="_blank" rel="noopener noreferrer">{{word('read_more')}}</a> 2286 </p> 2287 </div> 2288 <div class="cookie-consent-popup__footer"> 2289 <button class="cookie-consent-popup__settings-btn" ng-click="click('settings')"> 2290 {{word('settings')}} 2291 </button> 2292 <button 2293 class="cookie-consent-popup__accept-btn ladda-button" 2294 ladda="state('loading')" 2295 data-style="slide-down" 2296 ng-click="click('accept')" 2297 > 2298 {{word('accept')}} 2299 </button> 2300 </div> 2301 </div> 2302 </div> 2303 2304 <div 2305 ng-show="state('showDetailSettingsPanel')" 2306 class="cookie-consent-detail-settings-panel__container" 2307 > 2308 <div class="cookie-consent-detail-settings-panel__layout"> 2309 <div class="cookie-consent-detail-settings-panel__top-right"> 2310 <button 2311 ng-click="click('discard')" 2312 class="cookie-consent-detail-settings-panel__discard-btn" 2313 > 2314 </button> 2315 </div> 2316 <div class="cookie-consent-detail-settings-panel__header"> 2317 <div class="cookie-consent-detail-settings-panel__title"> 2318 {{word('consent_title')}} 2319 </div> 2320 </div> 2321 <div class="cookie-consent-detail-settings-panel__main"> 2322 <p class="cookie-consent-detail-settings-panel__desc"> 2323 {{word('consent_desc')}} <a href="{{alink('read_more')}}">{{word('read_more')}}</a> 2324 </p> 2325 <div class="cookie-consent-detail-settings-panel__separator"></div> 2326 <div ng-repeat="setting in state('cookieConsentSettings')" class="cookie-consent-detail-sett
2326ings-panel__item"> 2327 <div class="cookie-consent-detail-settings-panel__item-header"> 2328 <div class="cookie-consent-detail-settings-panel__item-title">{{setting.title}}</div> 2329 <label for="{{setting.key}}" class="cookie-consent-switch__container"> 2330 <input id="{{setting.key}}" ng-model="setting.on" ng-disabled="setting.disabled" type="checkbox" class="cookie-consent-switch__checkbox"> 2331 <span class="cookie-consent-switch__slider round"></span> 2332 </label> 2333 </div> 2334 <div class="cookie-consent-detail-settings-panel__item-main"> 2335 <p class="cookie-consent-detail-settings-panel__item-desc">{{setting.description}}</p> 2336 </div> 2337 </div> 2338 </div> 2339 <div class="cookie-consent-detail-settings-panel__footer"> 2340 <button 2341 class="cookie-consent-detail-settings-panel__save-btn ladda-button" 2342 ladda="state('loading')" 2343 data-style="slide-down" 2344 ng-click="click('save_preferences')" 2345 > 2346 {{word('save_preferences')}} 2347 </button> 2348 </div> 2349 </div> 2350 </div> 2351 </div> 2352</div> 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369<style type="text/css"> 2370 body.cart.index #shopline-section-announcement,body.checkout.index #shopline-section-announcement,body.orders.confirm #shopline-section-announcement{display:none}#shopline-section-announcement{position:sticky;z-index:25;left:0;right:0;top:0}#shopline-section-announcement~.NavigationBar{top:auto}.announcement{width:100%;display:flex;overflow:hidden;background-color:var(--announcement-background,#fdc500);position:relative}.announcement--column{flex-direction:column}.announcement__viewport{width:100%;overflow:hidden}.announcement__slider{position:relative;display:grid;background-color:var(--announcement-background,#fdc500);touch-action:pan-y}.announcement__slider>.announcement__countdown,.announcement__slider>.announcement__link,.announcement__slider>.announcement__text{grid-area:1/1;visibility:hidden;width:100%}.announcement__slider>.announcement__slide--active,.announcement__slider>.announcement__slide--incoming,.announcement__slider>.announcement__slide--outgoing{visibility:visible}.announcement__slide--incoming-next-mobile{animation:announcement-slide-in-right .42s ease}.announcement__slide--outgoing-next-mobile{animation:announcement-slide-out-left .42s ease}.announcement__slide--incoming-previous-mobile{animation:announcement-slide-in-left .42s ease}.announcement__slide--outgoing-previous-mobile{animation:announcement-slide-out-right .42s ease}.announcement__slide--incoming-next-desktop{animation:announcement-slide-in-bottom 1s linear}.announcement__slide--outgoing-next-desktop{animation:announcement-slide-out-top 1s linear}@keyframes announcement-slide-in-right{from{transform:translateX(100%)}}@keyframes announcement-slide-out-left{to{transform:translateX(-100%)}}@keyframes announcement-slide-in-left{from{transform:translateX(-100%)}}@keyframes announcement-slide-out-right{to{transform:translateX(100%)}}@keyframes announcement-slide-in-bottom{from{transform:translateY(100%)}}@keyframes announcement-slide-out-top{to{transform:translateY(-100%)}}.announcement__arrow{display:none;position:absolute;top:50%;z-index:1;width:18px;height:18px;padding:0;border:0;background:0 0;color:var(--announcement-text,#fff);transform:translateY(-50%);cursor:pointer}.announcement__arrow svg{display:block;width:18px;height:18px;fill:currentColor}.announcement__arrow--previous{left:max(16px,(100% - 1170px) / 2 + 16px)}.announcement__arrow--next{right:max(16px,(100% - 1170px) / 2 + 16px)}@media (min-width:768px){.announcement__viewport{width:min(100% - 92px,1078px);margin:0 auto}.announcement__arrow{display:block}}.announcement__text{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;height:100%;padding:10px 20px;background-color:var(--announcement-background,#fdc500)}.announcement__title{color:var(--announcement-text,#fff);padding:0;margin:0;text-align:center;word-break:break-word;font-size:calc(1.4rem * var(--font-size-paragraph, 1))}.announcement__title span{white-space:pre-wrap}.announcement__link{width:100%;flex-shrink:0}.announcement__link.disabled{cursor:auto}.announcement__countdown{width:100%;min-width:100%;height:100%;padding:10px 20px;background-color:var(--announcement-background,#fdc500);color:var(--announcement-text,#fff);will-change:transform}.announcement__countdown .countdown-block{display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:16px}@media (max-width:767px){.announcement__countdown .countdown-block{flex-direction:column}}.announcement__countdown .countdown-block__title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;padding:0;margin:0;text-align:center;word-break:break-word;font-size:calc(1.4rem * var(--font-size-paragraph, 1))}.announcement__countdown .countdown-block__body{display:flex;gap:16px}.announcement__countdown .countdown-block__button{border-radius:3px;padding:5px 16px;text-align:center;text-decoration:none;font-size:calc(1.4rem * var(--font-size-paragraph, 1));word-break:break-word;color:var(--announcement-background,#fdc500);background-color:var(--announcement-text,#fff);border:1px solid var(--announcement-text,#fff)}.announcement__countdown .countdown-block__button:hover{cursor:pointer}.announcement__countdown .countdown-block__button.disabled{opacity:.6}.announcement__countdown .countdown-timer{display:flex;align-items:center;position:relative}.announcement__countdown .time-unit{display:flex;flex-direction:column;align-items:center;
2370gap:calc(4px * var(--font-size-paragraph,1));width:31px}.announcement__countdown .time-unit-name{height:10px;font-size:calc(10px * var(--font-size-paragraph, 1));display:flex;align-items:center;text-align:center;text-transform:capitalize;white-space:nowrap}.announcement__countdown .time-part-wrapper{display:flex;align-items:center;position:relative}.announcement__countdown .time-part{text-align:center;width:calc(12px * var(--font-size-paragraph,1));height:calc(20px * var(--font-size-paragraph,1));overflow:hidden;display:inline-block;box-sizing:border-box}.announcement__countdown .digit-wrapper{transform:translateY(0);transition:transform .2s ease-in-out;transform:translateY(-90%)}.announcement__countdown .digit-wrapper[data-value="0"]{transform:translateY(-90%)}.announcement__countdown .digit-wrapper[data-value="1"]{transform:translateY(-80%)}.announcement__countdown .digit-wrapper[data-value="2"]{transform:translateY(-70%)}.announcement__countdown .digit-wrapper[data-value="3"]{transform:translateY(-60%)}.announcement__countdown .digit-wrapper[data-value="4"]{transform:translateY(-50%)}.announcement__countdown .digit-wrapper[data-value="5"]{transform:translateY(-40%)}.announcement__countdown .digit-wrapper[data-value="6"]{transform:translateY(-30%)}.announcement__countdown .digit-wrapper[data-value="7"]{transform:translateY(-20%)}.announcement__countdown .digit-wrapper[data-value="8"]{transform:translateY(-10%)}.announcement__countdown .digit-wrapper[data-value="9"]{transform:translateY(0)}.announcement__countdown .digit{display:inline-block;font-size:calc(1.6rem * var(--font-size-paragraph, 1));font-weight:700}.announcement__countdown .colon{font-size:calc(1.4rem * var(--font-size-paragraph, 1));text-align:center;font-weight:400;line-height:20px;margin-bottom:calc(12px * var(--font-size-paragraph,1));width:28px}.announcement--revamp.announcement--column{gap:0}@media (min-width:768px){.announcement--revamp.announcement--column{padding:0 16px}}.announcement--revamp.announcement--column .announcement__content,.announcement--revamp.announcement--column .announcement__link{max-width:none}.announcement--revamp .announcement__content{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;width:100%;max-width:1170px}.announcement--revamp .announcement__text{gap:4px;padding:12px 16px}.announcement--revamp .announcement__text--has-button .announcement__content,.announcement--revamp .announcement__text--has-subtitle .announcement__content{flex-direction:column;gap:4px}.announcement--revamp .announcement__text--has-button:not(.announcement__text--has-subtitle) .announcement__content{flex-direction:row;gap:8px 12px}.announcement--revamp .announcement__text--has-button:not(.announcement__text--has-subtitle) .announcement__meta{flex:0 0 auto;width:auto}.announcement--revamp .announcement__title{display:flex;min-width:0;font-size:calc(var(--announcement-title-font-size, 14px) * var(--font-size-paragraph, 1));font-weight:400;line-height:1.45;letter-spacing:0;max-width:100%}.announcement--revamp .announcement__meta{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 12px;width:100%;min-width:0;max-width:100%}.announcement--revamp .announcement__subtitle{color:var(--announcement-text,#fff);margin:0;padding:0;min-width:0;max-width:100%;font-size:calc(var(--announcement-subtitle-font-size, 12px) * var(--font-size-paragraph, 1));line-height:1.35;letter-spacing:0;text-align:center;word-break:break-word}.announcement--revamp .announcement__btn{display:inline-block;flex-shrink:0;max-width:340px;padding:4px 10px;border:none;border-radius:4px;background-color:var(--announcement-text,#fff);color:var(--announcement-background,#fdc500);font-size:calc(12px * var(--font-size-paragraph, 1));line-height:1.2;letter-spacing:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.announcement--revamp .announcement__link{max-width:1170px;margin:0 auto;text-decoration:none}.announcement--revamp .announcement__slider>.announcement__countdown,.announcement--revamp .announcement__slider>.announcement__link,.announcement--revamp .announcement__slider>.announcement__text{min-height:100%;min-width:0}.announcement--revamp .announcement__slider>.announcement__link{display:flex}.announcement--revamp .announcement__countdown{display:flex;align-items:center;justify-content:center;padding:12px 16px}.announcement--revamp .announcement__countdown .countdown-block__button:hover{cursor:inherit}.announcement--revamp .announcement__countdown .countdown-block__button.disabled:hover{cursor:default}.announcement--revamp .announcement__countdown .countdown-block{flex-wrap:wrap;gap:4px 16px}@media (max-width:767px){.announcement--revamp .announcement__countdown .countdown-block{gap:4px}}.announcement--revamp .announcement__countdown .countdown-block__title{display:block;flex:0 0 auto;max-width:100%;overflow:visible;line-height:1.45;letter-spacing:0}.announcement--revamp .announcement__countdown:not([data-started=true]) .countdown-block__title{font-size:calc(var(--announcement-countdown-start-title-font-size, 14px) * var(--font-size-paragraph, 1))}.announcement--revamp .announcement__countdown[data-started=true] .countdown-block__title{font-size:calc(var(--announcement-countdown-end-title-font-size, 14px) * var(--font-size-paragraph, 1))}.announcement--revamp .announcement__countdown .countdown-block__body{align-items:center;justify-content:center;flex:0 0 auto;flex-wrap:wrap;gap:16px;max-width:100%}@media (max-width:767px){.announcement--revamp .announcement__countdown .countdown-block__body{gap:8px 12px}}.announcement--revamp .announcement__countdown .countdown-timer{gap:8px;flex-shrink:0}.announcement--revamp .announcement__countdown .time-unit{flex-direction:row;align-items:center;gap:2px;width:auto}.announcement--revamp .announcement__countdown .time-part{width:calc(10px * var(--font-size-paragraph,1
2370));height:calc(14px * var(--font-size-paragraph,1) * 1.35);font-size:calc(14px * var(--font-size-paragraph, 1));font-weight:600;line-height:1.35;letter-spacing:0}.announcement--revamp .announcement__countdown .digit{display:flex;align-items:center;justify-content:center;height:calc(14px * var(--font-size-paragraph,1) * 1.35);line-height:calc(14px * var(--font-size-paragraph, 1) * 1.35);font-size:calc(14px * var(--font-size-paragraph, 1));font-weight:600;letter-spacing:0}.announcement--revamp .announcement__countdown .time-unit-name{height:auto;font-size:calc(10px * var(--font-size-paragraph, 1));font-weight:500;line-height:1.35;letter-spacing:0;text-transform:none}.announcement--revamp .announcement__countdown .colon{display:inline-flex;align-items:center;justify-content:center;font-size:calc(12px * var(--font-size-paragraph, 1));line-height:1.35;letter-spacing:0;margin-bottom:0;width:4px}@media (min-width:768px){.announcement--revamp .announcement__countdown .countdown-block__title,.announcement--revamp .announcement__subtitle,.announcement--revamp .announcement__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement--revamp .announcement__title span{display:inline-block;max-width:100%}.announcement--revamp .announcement__countdown .countdown-block__body{flex-shrink:0}.announcement--revamp .announcement__text--has-button .announcement__meta,.announcement--revamp .announcement__text--has-button:not(.announcement__text--has-subtitle) .announcement__content{flex-wrap:nowrap}.announcement--revamp .announcement__text--has-button:not(.announcement__text--has-subtitle) .announcement__content{gap:8px 16px}.announcement--revamp .announcement__text--has-button .announcement__meta{gap:8px}}@media (max-width:767px){.announcement--revamp .announcement__btn{flex-shrink:1;max-width:min(340px,100%)}.announcement--revamp .announcement__countdown .countdown-block__body{width:100%}} 2371</style> 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419<style type="text/css"> 2420 .header{left:0;right:0;z-index:20;position:relative}.header svg.icons{width:20px;height:20px;fill:#333;margin-bottom:-2px}.header svg.icons.icon-bag{width:22px;height:22px}.header svg.icons.icon-globe-v2{width:17px;height:17px}.NavigationBar-actionMenu-container{max-width:100%;margin:0 auto;padding:0 20px}.NavigationBar-actionMenu-container .NavigationBar-icon{display:flex;align-items:center;padding:10px 0;margin:0 -10px}.header__main-menu{width:100%;text-align:center;margin-bottom:0;display:flex;align-items:center;justify-content:center}.header--sticky{box-shadow:0 2px 6px 0 rgba(0,0,0,.06)}.header--sticky.header--desktop{z-index:50}.user-reminder-desktop{z-index:51}.header__logo{flex:1;text-align:center}.header__logo.header__logo--home:not(.header__logo--top-center){display:none}.header__logo--top-center{display:block;align-self:center;margin-bottom:10px;margin:0 auto}.header__logo--home,.header__logo--middle-center{margin:0 auto}.header__logo--middle-left{text-align:left}.header__logo--top-left{align-self:flex-start}.header__logo.pull-left img{-o-object-position:left;object-position:left}.header__logo--center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.header__logo--hidden{visibility:hidden;display:block}.header--desktop{display:none!important;transform:translate3d(0,0,0)}@media (min-width:1200px){.header--desktop{display:block!important}}.header--desktop .header__logo{margin:0 auto;min-height:40px;max-height:140px}.header--desktop .header__logo img{max-height:inherit;min-height:40px;width:auto;height:auto}.header--desktop .dropdown-menu li:hover{color:#888}.header--desktop ul.NavigationBar-actionMenu{flex:1;display:flex;align-items:center;min-width:290px}.header--desktop ul.NavigationBar-actionMenu:last-child{justify-content:flex-end}.header--desktop ul.NavigationBar-actionMenu.--placed-end{justify-content:end}.header--desktop ul.NavigationBar-actionMenu .App-currencyDropdown.mw-auto{min-width:auto}.header--desktop ul.NavigationBar-actionMenu .App-currencyDropdown .dropdown-toggle .Label span:first-child{display:none}.header--desktop .Product-searchField input{width:0;height:inherit;border:0;margin:0;padding:4px 0;color:#000;opacity:1;font-weight:400;transition:all .5s;outline:0;font-size:14px;border-bottom:1px solid #eee;background-color:unset}.header--desktop .Product-searchField button{display:inline-block;height:inherit;border:0;padding:0;background-color:transparent}.header--desktop .Product-searchField button>i{vertical-align:initial}.header--desktop .Product-searchField--active input,.header--desktop .Product-searchField:hover input{width:110px}.header--desktop .Product-searchField input:focus{width:110px}.header--desktop .cart-over-limit{position:relative;top:0;right:0}.header--desktop .cart-over-limit .basic-popover-desktop{top:30px;left:-117px}.NavigationBar-icon{justify-content:space-between}.header--mobile{display:block;z-index:20}@media (min-width:1200px){.header--mobile{display:none}}.header--mobile li.List-item{list-style:none}.header--mobile .header__container{display:flex;align-items:center}.header--mobile .header__logo{display:flex;align-items:center;padding:8px 15px}.header--mobile .header__logo img{max-height:100%;width:100%;height:auto}.header--mobile .header__logo.pull-left{flex:auto}.header--mobile .header__action-menu{display:flex;flex:1;align-items:center;justify-content:flex-end;margin:0}.header--mobile .header__action-menu.--logo-center{justify-content:unset}.header--mobile .header__action-menu>.List-item{margin:0 9px}.header--mobile .header__action-menu>.List-item:last-child{margin-right:0}.header--mobile .header__action-menu>.List-item.List-item--center{flex-grow:2;text-align:center;display:flex;justify-content:space-around}.header--mobile .header__action-menu>.List-item .NavigationBar-actionMenu-button{font-size:18px;line-height:0}.header--mobile .header__action-menu basic-popover.cart-over-limit{position:relative;top:36px;right:117px}.header--mobile .Product-searchField-form{position:fixed;z-index:10;left:0;right:0;top:-60px;background:#fff;padding:15px 15px 14px 10px;opacity:0;visibility:hidden;transition-duration:.2s}.header--mobile .Product-searchField-form.active{top:0;opacity:1;visibility:visible}.header--mobile .Product-searchField-form input{border:none;border-bottom:1px solid #eee;font-size:14px;height:auto;padding:5px 0;width:calc(100% - 60px);background-color:unset}.header--mobile .CartPanel-toggleButton .Cart-count{top:1px!important}.my-scroll .header.header--sticky .NavigationBar-actionMenu-container .NavigationBar-icon{padding:5px 0}.my-scroll .header.header--sticky.header--desktop .header__logo{max-height:none}
2420.my-scroll .header:not(.header--sticky) .NavigationBar-sticky{position:relative;animation:none} 2421</style> 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431<div id="shopline-section-header"> 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452<style> 2453 .header--desktop .navigation-menu, 2454 .header--desktop .header__main-menu, 2455 .home.index.my-scroll .header--desktop .header__main-menu { 2456 justify-content: center; 2457 } 2458 2459 .home.index .header--desktop .navigation-menu { 2460 width: 100%; 2461 flex-grow: 1; 2462 align-items: center; 2463 } 2464 2465 .header--desktop .header__logo img { 2466 2467 max-height: 90px; 2468 } 2469 2470 .my-scroll .header--desktop.header--sticky .header__logo img { 2471 2472 max-height: 45px; 2473 } 2474 2475 2476 #shopline-section-header { 2477 position: sticky; 2478 z-index: 100; 2479 top: 0; 2480 } 2481 2482 2483 .header--desktop .icons.icon-nav-dollor { 2484 font-weight: bold; 2485 transform: scaleX(1.15); 2486 } 2487</style> 2488 2489 2490<nav class="header header--desktop header--sticky js-navigationbar-desktop"> 2491 <div class="NavigationBar-sticky-wrapper"> 2492 <div class="NavigationBar-sticky js-sticky"> 2493 2494 2495 2496 2497 <div class="NavigationBar-actionMenu-container clearfix"> 2498 2499 2500 2501 <div class="NavigationBar-icon clearfix" style="padding: 10px;"> 2502 2503 2504 2505 2506 2507 <ul class="NavigationBar-actionMenu"> 2508 2509 2510 2511 2512 2513<li class="List-item"> 2514 <div class="NavigationBar-actionMenu-button App-currencyDropdown dropdown mw-auto" dropdown data-nosnippet> 2515 <div class="dropdown-toggle" dropdown-toggle> 2516 <span class="icons icon-nav-dollor">$</span> 2517 2518 <span class="fa fa-angle-down"></span> 2519 </div> 2520 <ul class="NavigationBar-actionMenu-dropdown dropdown-menu sl-currency-chooser"> 2521 2522 <li class="List-item sl-currency-chooser-currency" href="#hkd">$ HKD</li> 2523 2524 <li class="List-item sl-currency-chooser-currency" href="#mop">P MOP</li> 2525 2526 <li class="List-item sl-currency-chooser-currency" href="#cny">Â¥ CNY</li> 2527 2528 <li class="List-item sl-currency-chooser-currency" href="#twd">$ TWD</li> 2529 2530 <li class="List-item sl-currency-chooser-currency" href="#usd">$ USD</li> 2531 2532 <li class="List-item sl-currency-chooser-currency" href="#sgd">$ SGD</li> 2533 2534 <li class="List-item sl-currency-chooser-currency" href="#eur">⬠EUR</li> 2535 2536 <li class="List-item sl-currency-chooser-currency" href="#aud">$ AUD</li> 2537 2538 <li class="List-item sl-currency-chooser-currency" href="#gbp">£ GBP</li> 2539 2540 <li class="List-item sl-currency-chooser-currency" href="#php">â± PHP</li> 2541 2542 <li class="List-item sl-currency-chooser-currency" href="#myr">RM MYR</li> 2543 2544 <li class="List-item sl-currency-chooser-currency" href="#thb">฿ THB</li> 2545 2546 <li class="List-item sl-currency-chooser-currency" href="#aed">د.Ø¥ AED</li> 2547 2548 <li class="List-item sl-currency-chooser-currency" href="#jpy">Â¥ JPY</li> 2549 2550 <li class="List-item sl-currency-chooser-currency" href="#bnd">$ BND</li> 2551 2552 <li class="List-item sl-currency-chooser-currency" href="#krw">â© KRW</li> 2553 2554 <li class="List-item sl-currency-chooser-currency" href="#idr">Rp IDR</li> 2555 2556 <li class="List-item sl-currency-chooser-currency" href="#vnd">â« VND</li> 2557 2558 <li class="List-item sl-currency-chooser-currency" href="#cad">$ CAD</li> 2559 2560 </ul> 2561 </div> 2562</li> 2563 2564 2565 2566 2567<li class="List-item"> 2568 <div class="NavigationBar-actionMenu-button App-languageDropdown dropdown" dropdown data-nosnippet> 2569 <div class="dropdown-toggle" dropdown-toggle> 2570 <svg class="icons icon-globe-v2"> 2571 <use xlink:href="#icon-globe-v2"></use> 2572 </svg> 2573 2574 </div> 2575 <ul class="NavigationBar-actionMenu-dropdown dropdown-menu sl-language-chooser"> 2576 2577 <li class="List-item sl-language-chooser-language" href="#en">English</li> 2578 2579 <li class="List-item sl-language-chooser-language" href="#zh-hant">ç¹é«ä¸æ</li> 2580 2581 </ul> 2582 </div> 2583</li> 2584 2585 2586 </ul> 2587 2588 2589 2590 2591 <a class="header__logo header__logo--middle-center" href="/"> 2592 <img 2593 src="https://shoplineimg.com/6576a1830ee9d100760d043d/6576ee9491ffba18a0c992b8/1200x.webp?source_format=png" 2594 width="1168" 2595 height="1168" 2596 loading="lazy" 2597 > 2598 </a> 2599 2600 2601 <ul class="NavigationBar-actionMenu"> 2602 2603 2604 2605 2606 2607 <li class="List-item"> 2608 <a class="NavigationBar-actionMenu-button NavigationBar-actionMenu-icon MessageDialog-showButton sl-message-toggle"> 2609 <svg class="icons icon-bubble"> 2610 <use xlink:href="#icon-bubble"></use> 2611 </svg> 2612 2613 </a> 2614 </li> 2615 2616 2617 2618 2619 <li class="List-item"> 2620 <div class="NavigationBar-actionMenu-button NavigationBar-actionMenu-icon Product-searchField "> 2621 <form class="Product-searchField-form sl-product-search"> 2622 <input 2623 disabled 2624 maxlength="50" 2625 placeholder="Search Products" 2626 > 2627 <button disabled type="submit"> 2628 <svg class="icons icon-magnifier"> 2629 <use xlink:href="#icon-magnifier"></use> 2630 </svg> 2631 2632 </button> 2633 </form> 2634 </div> 2635 </li> 2636 2637 2638 2639 <li class="List-item"> 2640 2641 <a href="/users/sign_in" class="NavigationBar-actionMenu-button NavigationBar-actionMenu-icon"> 2642 <svg class="icons icon-user"> 2643 <use xlink:href="#icon-user"></use> 2644 </svg> 2645 2646 </a> 2647 2648 2649<user-reminder-desktop 2650 campaign-rule="null" 2651></user-reminder-desktop> 2652 2653 </li> 2654 2655 2656 <basic-popover class="cart-over-limit"></basic-popover> 2657 <li class="List-item"> 2658 <a class="NavigationBar-actionMenu-button NavigationBar-actionMenu-icon NavigationBar-actionMenu-cart CartPanel-toggleButton sl-cart-toggle"> 2659 <svg class="icons icon-bag"> 2660 <use xlink:href="#icon-bag"></use> 2661 </svg>
2662 <span 2663 class=" sl-cart-count Cart-count primary-color" 2664 count-style="icon" 2665 ></span> 2666 </a> 2667 </li> 2668 </ul> 2669 </div> 2670 </div> 2671 2672 2673 <div class="NavigationBar-container nav-bg-color"> 2674 <ul class="header__main-menu"> 2675 2676 2677 2678<li class="navigation-menu nav-color basic-menu-desktop"> 2679 <ul class="navigation-menu-top-layer"> 2680 2681 2682 <li class="navigation-menu-item navigation-menu-item--nested"> 2683 <a 2684 class="navigation-menu-item-label" 2685 link-highlight="https://www.anelet.com/categories/é±å¹´æ ¶åªæ " 2686 href="https://www.anelet.com/categories/é±å¹´æ ¶åªæ " 2687 target="" 2688 > 2689 âï¸é±å¹´æ ¶åªæ âï¸<span class="fa fa-angle-down"></span> 2690 </a> 2691 <ul class="navigation-menu-second-layer"> 2692 <div class="second-layer-scroll-buttons"> 2693 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 2694 <span class="fa fa-angle-right scroll-right"></span> 2695 </div> 2696 2697 2698 <li class="navigation-menu-item"> 2699 <a 2700 class="navigation-menu-item-label" 2701 link-highlight="https://www.anelet.com/categories/馿°£å ä¹ï½æ·¡é¦ç²¾å¤ä»¶åªæ " 2702 href="https://www.anelet.com/categories/馿°£å ä¹ï½æ·¡é¦ç²¾å¤ä»¶åªæ " 2703 target="" 2704 > 2705 馿°£å ä¹ï½æ·¡é¦ç²¾å¤ä»¶åªæ 2706 </a> 2707 </li> 2708 2709 2710 2711 <li class="navigation-menu-item"> 2712 <a 2713 class="navigation-menu-item-label" 2714 link-highlight="https://www.anelet.com/categories/馿°£æ»¿è¼ï½æ´é¦å¤ä»¶åªæ " 2715 href="https://www.anelet.com/categories/馿°£æ»¿è¼ï½æ´é¦å¤ä»¶åªæ " 2716 target="" 2717 > 2718 馿°£æ»¿è¼ï½æ´é¦å¤ä»¶åªæ 2719 </a> 2720 </li> 2721 2722 2723 2724 <li class="navigation-menu-item"> 2725 <a 2726 class="navigation-menu-item-label" 2727 link-highlight="https://www.anelet.com/categories/馿°å»¶çºï½æ´é¦è£å ç¶éæ£" 2728 href="https://www.anelet.com/categories/馿°å»¶çºï½æ´é¦è£å ç¶éæ£" 2729 target="" 2730 > 2731 馿°å»¶çºï½æ´é¦è£å ç¶éæ£ 2732 </a> 2733 </li> 2734 2735 2736 2737 <li class="navigation-menu-item"> 2738 <a 2739 class="navigation-menu-item-label" 2740 link-highlight="https://www.anelet.com/categories/é¨èº«ç²¾é¸ï½ä¸æ§é¦è²·1é1" 2741 href="https://www.anelet.com/categories/é¨èº«ç²¾é¸ï½ä¸æ§é¦è²·1é1" 2742 target="" 2743 > 2744 é¨èº«ç²¾é¸ï½ä¸æ§é¦è²·1é1 2745 </a> 2746 </li> 2747 2748 2749 2750 <li class="navigation-menu-item"> 2751 <a 2752 class="navigation-menu-item-label" 2753 link-highlight="https://www.anelet.com/categories/ç´ç²¹é¦æ°ï½ä¸æ§é¦è²·å¤§éå°" 2754 href="https://www.anelet.com/categories/ç´ç²¹é¦æ°ï½ä¸æ§é¦è²·å¤§éå°" 2755 target="" 2756 > 2757 ç´ç²¹é¦æ°ï½ä¸æ§é¦è²·å¤§éå° 2758 </a> 2759 </li> 2760 2761 2762 2763 <li class="navigation-menu-item"> 2764 <a 2765 class="navigation-menu-item-label" 2766 link-highlight="https://www.anelet.com/categories/質æå± å®¶ï½å´é§9æé" 2767 href="https://www.anelet.com/categories/質æå± å®¶ï½å´é§9æé" 2768 target="" 2769 > 2770 質æå± å®¶ï½å´é§9æé 2771 </a> 2772 </li> 2773 2774 2775 2776 <li class="navigation-menu-item"> 2777 <a 2778 class="navigation-menu-item-label" 2779 link-highlight="https://www.anelet.com/categories/æå¿ç¸ä¼´ï½ä¿æº«ç¶2ä»¶8æ" 2780 href="https://www.anelet.com/categories/æå¿ç¸ä¼´ï½ä¿æº«ç¶2ä»¶8æ" 2781 target="" 2782 > 2783 æå¿ç¸ä¼´ï½ä¿æº«ç¶2ä»¶8æ 2784 </a> 2785 </li> 2786 2787 2788 </ul> 2789 </li> 2790 2791 2792 2793 <li class="navigation-menu-item navigation-menu-item--nested"> 2794 <a 2795 class="navigation-menu-item-label" 2796 link-highlight="https://www.anelet.com/categories/編輯å´é¸" 2797 href="https://www.anelet.com/categories/編輯å´é¸" 2798 target="" 2799 > 2800 編輯å´é¸<span class="fa fa-angle-down"></span> 2801 </a> 2802 <ul class="navigation-menu-second-layer"> 2803 <div class="second-layer-scroll-buttons">
2804 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 2805 <span class="fa fa-angle-right scroll-right"></span> 2806 </div> 2807 2808 2809 <li class="navigation-menu-item"> 2810 <a 2811 class="navigation-menu-item-label" 2812 link-highlight="https://www.anelet.com/categories/å°æ¾å¤å¤©é¦æ°´çæ¸ ç½å¼å¸" 2813 href="https://www.anelet.com/categories/å°æ¾å¤å¤©é¦æ°´çæ¸ ç½å¼å¸" 2814 target="" 2815 > 2816 å°æ¾å¤å¤©é¦æ°´çæ¸ ç½å¼å¸ 2817 </a> 2818 </li> 2819 2820 2821 2822 <li class="navigation-menu-item"> 2823 <a 2824 class="navigation-menu-item-label" 2825 link-highlight="https://www.anelet.com/categories/è®è±é¦èª¿çæ¥æææ±ä½ " 2826 href="https://www.anelet.com/categories/è®è±é¦èª¿çæ¥æææ±ä½ " 2827 target="" 2828 > 2829 è®è±é¦èª¿çæ¥æææ±ä½ 2830 </a> 2831 </li> 2832 2833 2834 2835 <li class="navigation-menu-item"> 2836 <a 2837 class="navigation-menu-item-label" 2838 link-highlight="https://www.anelet.com/categories/ç¥ç§èæ·±éçæ±æ¹é»å³" 2839 href="https://www.anelet.com/categories/ç¥ç§èæ·±éçæ±æ¹é»å³" 2840 target="" 2841 > 2842 ç¥ç§èæ·±éçæ±æ¹é»å³ 2843 </a> 2844 </li> 2845 2846 2847 2848 <li class="navigation-menu-item"> 2849 <a 2850 class="navigation-menu-item-label" 2851 link-highlight="https://www.anelet.com/categories/æåæ¨è³ªèª¿çèªç¶ä¹è²" 2852 href="https://www.anelet.com/categories/æåæ¨è³ªèª¿çèªç¶ä¹è²" 2853 target="" 2854 > 2855 æåæ¨è³ªèª¿çèªç¶ä¹è² 2856 </a> 2857 </li> 2858 2859 2860 2861 <li class="navigation-menu-item"> 2862 <a 2863 class="navigation-menu-item-label" 2864 link-highlight="https://www.anelet.com/categories/mix-and-match" 2865 href="https://www.anelet.com/categories/mix-and-match" 2866 target="" 2867 > 2868 髿®µä½æ··é¦çµå 2869 </a> 2870 </li> 2871 2872 2873 </ul> 2874 </li> 2875 2876 2877 2878 <li class="navigation-menu-item navigation-menu-item--nested"> 2879 <a 2880 class="navigation-menu-item-label" 2881 link-highlight="https://www.anelet.com/categories/fragrances" 2882 href="https://www.anelet.com/categories/fragrances" 2883 target="" 2884 > 2885 馿°´é¦ç²¾<span class="fa fa-angle-down"></span> 2886 </a> 2887 <ul class="navigation-menu-second-layer"> 2888 <div class="second-layer-scroll-buttons"> 2889 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 2890 <span class="fa fa-angle-right scroll-right"></span> 2891 </div> 2892 2893 2894 <li class="navigation-menu-item"> 2895 <a 2896 class="navigation-menu-item-label" 2897 link-highlight="https://www.anelet.com/categories/womens-perfume" 2898 href="https://www.anelet.com/categories/womens-perfume" 2899 target="" 2900 > 2901 女æ§é¦æ°´ 2902 </a> 2903 </li> 2904 2905 2906 2907 <li class="navigation-menu-item"> 2908 <a 2909 class="navigation-menu-item-label" 2910 link-highlight="https://www.anelet.com/categories/unisex-perfume" 2911 href="https://www.anelet.com/categories/unisex-perfume" 2912 target="" 2913 > 2914 䏿§é¦æ°´ 2915 </a> 2916 </li> 2917 2918 2919 2920 <li class="navigation-menu-item"> 2921 <a 2922 class="navigation-menu-item-label" 2923 link-highlight="https://www.anelet.com/categories/mens-perfume" 2924 href="https://www.anelet.com/categories/mens-perfume" 2925 target="" 2926 > 2927 ç·æ§é¦æ°´ 2928 </a> 2929 </li> 2930 2931 2932 2933 <li class="navigation-menu-item"> 2934 <a 2935 class="navigation-menu-item-label" 2936 link-highlight="https://www.anelet.com/categories/hair-perfume" 2937 href="https://www.anelet.com/categories/hair-perfume" 2938 target="" 2939 > 2940 é«®é¦å´é§ 2941 </a> 2942 </li> 2943 2944 2945 2946 <li class="navigation-menu-item"> 2947 <a 2948 class="navigation-menu-item-label" 2949 link-highlight="https://www.anelet.com/categories/perfume-gift-sets" 2950 href="https://www.anelet.com/categories/perfume-gift-sets" 2951 target="" 2952 > 2953 馿°´ç¦®ç 2954 </a> 2955 </li> 2956 2957 2958 </ul> 2959 </li> 2960 2961 2962 2963 <li class="navigation-menu-item navigation-menu-item--nested"> 2964 <a 2965 class="navigation-menu-item-label" 2966 link-highlight="https://www.anelet.com/categories/home-fragrances" 2967 href="https://www.anelet.com/categories/home-fragrances" 2968 target="" 2969 > 2970 å± å®¶é¦æ°<span class="fa fa-angle-down"></span> 2971 </a> 2972 <ul class="navigation-menu-second-layer"> 2973 <div class="second-layer-scroll-buttons">
2974 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 2975 <span class="fa fa-angle-right scroll-right"></span> 2976 </div> 2977 2978 2979 <li class="navigation-menu-item"> 2980 <a 2981 class="navigation-menu-item-label" 2982 link-highlight="https://www.anelet.com/categories/room-spray" 2983 href="https://www.anelet.com/categories/room-spray" 2984 target="" 2985 > 2986 å®¤å §å´é§ 2987 </a> 2988 </li> 2989 2990 2991 2992 <li class="navigation-menu-item"> 2993 <a 2994 class="navigation-menu-item-label" 2995 link-highlight="https://www.anelet.com/categories/reed-diffuser" 2996 href="https://www.anelet.com/categories/reed-diffuser" 2997 target="" 2998 > 2999 å®¤å §æ´é¦ 3000 </a> 3001 </li> 3002 3003 3004 3005 <li class="navigation-menu-item"> 3006 <a 3007 class="navigation-menu-item-label" 3008 link-highlight="https://www.anelet.com/categories/solid-perfume" 3009 href="https://www.anelet.com/categories/solid-perfume" 3010 target="" 3011 > 3012 馿°è å¡ 3013 </a> 3014 </li> 3015 3016 3017 3018 <li class="navigation-menu-item"> 3019 <a 3020 class="navigation-menu-item-label" 3021 link-highlight="https://www.anelet.com/categories/scented-candle" 3022 href="https://www.anelet.com/categories/scented-candle" 3023 target="" 3024 > 3025 馿°è ç 3026 </a> 3027 </li> 3028 3029 3030 3031 <li class="navigation-menu-item"> 3032 <a 3033 class="navigation-menu-item-label" 3034 link-highlight="https://www.anelet.com/categories/fragrance-gift-sets" 3035 href="https://www.anelet.com/categories/fragrance-gift-sets" 3036 target="" 3037 > 3038 馿°ç¦®ç 3039 </a> 3040 </li> 3041 3042 3043 3044 <li class="navigation-menu-item"> 3045 <a 3046 class="navigation-menu-item-label" 3047 link-highlight="https://www.anelet.com/categories/fabrics-spray" 3048 href="https://www.anelet.com/categories/fabrics-spray" 3049 target="" 3050 > 3051 è¡£ç©å´é§ 3052 </a> 3053 </li> 3054 3055 3056 </ul> 3057 </li> 3058 3059 3060 3061 <li class="navigation-menu-item navigation-menu-item--nested"> 3062 <a 3063 class="navigation-menu-item-label" 3064 link-highlight="https://www.anelet.com/categories/life-style" 3065 href="https://www.anelet.com/categories/life-style" 3066 target="" 3067 > 3068 æå°é ä»¶<span class="fa fa-angle-down"></span> 3069 </a> 3070 <ul class="navigation-menu-second-layer"> 3071 <div class="second-layer-scroll-buttons"> 3072 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 3073 <span class="fa fa-angle-right scroll-right"></span> 3074 </div> 3075 3076 3077 <li class="navigation-menu-item"> 3078 <a 3079 class="navigation-menu-item-label" 3080 link-highlight="https://www.anelet.com/categories/thermal-bottle" 3081 href="https://www.anelet.com/categories/thermal-bottle" 3082 target="" 3083 > 3084 ä¿æº«ç¶ 3085 </a> 3086 </li> 3087 3088 3089 3090 <li class="navigation-menu-item"> 3091 <a 3092 class="navigation-menu-item-label" 3093 link-highlight="https://www.anelet.com/categories/slimming-cosmetotextiles" 3094 href="https://www.anelet.com/categories/slimming-cosmetotextiles" 3095 target="" 3096 > 3097 å¡èº«è¡£ 3098 </a> 3099 </li> 3100 3101 3102 </ul> 3103 </li> 3104 3105 3106 3107 <li class="navigation-menu-item navigation-menu-item--nested"> 3108 <a 3109 class="navigation-menu-item-label" 3110 link-highlight="https://www.anelet.com/categories/brands" 3111 href="https://www.anelet.com/categories/brands" 3112 target="" 3113 > 3114 åç總覽<span class="fa fa-angle-down"></span> 3115 </a> 3116 <ul class="navigation-menu-second-layer"> 3117 <div class="second-layer-scroll-buttons">
3118 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 3119 <span class="fa fa-angle-right scroll-right"></span> 3120 </div> 3121 3122 3123 <li class="navigation-menu-item"> 3124 <a 3125 class="navigation-menu-item-label" 3126 link-highlight="https://www.anelet.com/categories/youfirst" 3127 href="https://www.anelet.com/categories/youfirst" 3128 target="" 3129 > 3130 L'ESSENZA / YOUFIRST 3131 </a> 3132 </li> 3133 3134 3135 3136 <li class="navigation-menu-item"> 3137 <a 3138 class="navigation-menu-item-label" 3139 link-highlight="https://www.anelet.com/categories/lytess" 3140 href="https://www.anelet.com/categories/lytess" 3141 target="" 3142 > 3143 LYTESS 3144 </a> 3145 </li> 3146 3147 3148 3149 <li class="navigation-menu-item"> 3150 <a 3151 class="navigation-menu-item-label" 3152 link-highlight="https://www.anelet.com/categories/margot-tita" 3153 href="https://www.anelet.com/categories/margot-tita" 3154 target="" 3155 > 3156 MARGOT&TITA 3157 </a> 3158 </li> 3159 3160 3161 3162 <li class="navigation-menu-item"> 3163 <a 3164 class="navigation-menu-item-label" 3165 link-highlight="https://www.anelet.com/categories/my-fragrances" 3166 href="https://www.anelet.com/categories/my-fragrances" 3167 target="" 3168 > 3169 MY FRAGRANCES 3170 </a> 3171 </li> 3172 3173 3174 3175 <li class="navigation-menu-item"> 3176 <a 3177 class="navigation-menu-item-label" 3178 link-highlight="https://www.anelet.com/categories/piuforty" 3179 href="https://www.anelet.com/categories/piuforty" 3180 target="" 3181 > 3182 PIÃFORTY 3183 </a> 3184 </li> 3185 3186 3187 </ul> 3188 </li> 3189 3190 3191 3192 <li class="navigation-menu-item navigation-menu-item--nested"> 3193 <a 3194 class="navigation-menu-item-label" 3195 link-highlight="https://www.anelet.com/categories/é¦èª¿å表" 3196 href="https://www.anelet.com/categories/é¦èª¿å表" 3197 target="" 3198 > 3199 é¦èª¿å表<span class="fa fa-angle-down"></span> 3200 </a> 3201 <ul class="navigation-menu-second-layer"> 3202 <div class="second-layer-scroll-buttons"> 3203 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 3204 <span class="fa fa-angle-right scroll-right"></span> 3205 </div> 3206 3207 3208 <li class="navigation-menu-item"> 3209 <a 3210 class="navigation-menu-item-label" 3211 link-highlight="https://www.anelet.com/categories/woody-perfumes" 3212 href="https://www.anelet.com/categories/woody-perfumes" 3213 target="" 3214 > 3215 æ¨è³ªèª¿ 3216 </a> 3217 </li> 3218 3219 3220 3221 <li class="navigation-menu-item"> 3222 <a 3223 class="navigation-menu-item-label" 3224 link-highlight="https://www.anelet.com/categories/spicy-perfumes" 3225 href="https://www.anelet.com/categories/spicy-perfumes" 3226 target="" 3227 > 3228 è¾é¦èª¿ 3229 </a> 3230 </li> 3231 3232 3233 3234 <li class="navigation-menu-item"> 3235 <a 3236 class="navigation-menu-item-label" 3237 link-highlight="https://www.anelet.com/categories/oriental-perfumes" 3238 href="https://www.anelet.com/categories/oriental-perfumes" 3239 target="" 3240 > 3241 æ±æ¹èª¿ 3242 </a> 3243 </li> 3244 3245 3246 3247 <li class="navigation-menu-item"> 3248 <a 3249 class="navigation-menu-item-label" 3250 link-highlight="https://www.anelet.com/categories/fruity-perfumes" 3251 href="https://www.anelet.com/categories/fruity-perfumes" 3252 target="" 3253 > 3254 æé¦èª¿ 3255 </a> 3256 </li> 3257 3258 3259 3260 <li class="navigation-menu-item"> 3261 <a 3262 class="navigation-menu-item-label" 3263 link-highlight="https://www.anelet.com/categories/floral-perfumes" 3264 href="https://www.anelet.com/categories/floral-perfumes" 3265 target="" 3266 > 3267 è±é¦èª¿ 3268 </a> 3269 </li> 3270 3271 3272 3273 <li class="navigation-menu-item"> 3274 <a 3275 class="navigation-menu-item-label" 3276 link-highlight="https://www.anelet.com/categories/parfums-cirus" 3277 href="https://www.anelet.com/categories/parfums-cirus" 3278 target="" 3279 > 3280 ææ©èª¿ 3281 </a> 3282 </li> 3283 3284 3285 3286 <li class="navigation-menu-item"> 3287 <a 3288 class="navigation-menu-item-label" 3289 link-highlight="https://www.anelet.com/categories/aquatic-perfumes" 3290 href="https://www.anelet.com/categories/aquatic-perfumes" 3291 target="" 3292 > 3293 æµ·æ´èª¿ 3294 </a> 3295 </li> 3296 3297 3298 3299 <li class="navigation-menu-item"> 3300 <a 3301 class="navigation-menu-item-label" 3302 link-highlight="https://www.anelet.com/categories/gourmet-perfumes" 3303 href="https://www.anelet.com/categories/gourmet-perfumes" 3304 target="" 3305 > 3306 çé»èª¿ 3307 </a> 3308 </li> 3309 3310 3311 3312 <li class="navigation-menu-item"> 3313 <a 3314 class="navigation-menu-item-label" 3315 link-highlight="https://www.anelet.com/categories/fougere-perfumes" 3316 href="https://www.anelet.com/categories/fougere-perfumes" 3317 target="" 3318 > 3319 è°è調 3320 </a> 3321 </li> 3322 3323 3324 3325 <li class="navigation-menu-item"> 3326 <a 3327 class="navigation-menu-item-label" 3328 link-highlight="https://www.anelet.com/categories/musc-perfumes" 3329 href="https://www.anelet.com/categories/musc-perfumes" 3330 target="" 3331 > 3332 éºé¦èª¿ 3333 </a> 3334 </li> 3335 3336 3337 </ul> 3338 </li> 3339 3340 3341 3342 <li class="navigation-menu-item navigation-menu-item--nested"> 3343 <a 3344 class="navigation-menu-item-label" 3345 link-highlight="https://www.anelet.com/pages/the-blog" 3346 href="https://www.anelet.com/pages/the-blog" 3347 target="" 3348 > 3349 New Page<span class="fa fa-angle-down"></span> 3350 </a> 3351 <ul class="navigation-menu-second-layer"> 3352 <div class="second-layer-scroll-buttons">
3353 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 3354 <span class="fa fa-angle-right scroll-right"></span> 3355 </div> 3356 3357 3358 <li class="navigation-menu-item"> 3359 <a 3360 class="navigation-menu-item-label" 3361 link-highlight="https://www.anelet.com/pages/best-perfume" 3362 href="https://www.anelet.com/pages/best-perfume" 3363 target="" 3364 > 3365 Best Perfume 3366 </a> 3367 </li> 3368 3369 3370 3371 <li class="navigation-menu-item"> 3372 <a 3373 class="navigation-menu-item-label" 3374 link-highlight="https://www.anelet.com/pages/know-how" 3375 href="https://www.anelet.com/pages/know-how" 3376 target="" 3377 > 3378 KNOW-HOW 3379 </a> 3380 </li> 3381 3382 3383 </ul> 3384 </li> 3385 3386 3387 3388 <li class="navigation-menu-item navigation-menu-item--nested"> 3389 <a 3390 class="navigation-menu-item-label" 3391 link-highlight="https://www.anelet.com/pages/brandstory" 3392 href="https://www.anelet.com/pages/brandstory" 3393 target="_self" 3394 > 3395 éæ¼æå<span class="fa fa-angle-down"></span> 3396 </a> 3397 <ul class="navigation-menu-second-layer"> 3398 <div class="second-layer-scroll-buttons"> 3399 <span class="fa fa-angle-left scroll-left scroll-disable"></span> 3400 <span class="fa fa-angle-right scroll-right"></span> 3401 </div> 3402 3403 3404 <li class="navigation-menu-item"> 3405 <a 3406 class="navigation-menu-item-label" 3407 link-highlight="https://www.anelet.com/pages/member" 3408 href="https://www.anelet.com/pages/member" 3409 target="" 3410 > 3411 æå¡ç¨äº« 3412 </a> 3413 </li> 3414 3415 3416 3417 <li class="navigation-menu-item"> 3418 <a 3419 class="navigation-menu-item-label" 3420 link-highlight="https://www.anelet.com/pages/collaboration" 3421 href="https://www.anelet.com/pages/collaboration" 3422 target="" 3423 > 3424 New Page 3425 </a> 3426 </li> 3427 3428 3429 3430 <li class="navigation-menu-item"> 3431 <a 3432 class="navigation-menu-item-label" 3433 link-highlight="https://www.anelet.com/about/policy" 3434 href="https://www.anelet.com/about/policy" 3435 target="" 3436 > 3437 Return Policy 3438 </a> 3439 </li> 3440 3441 3442 3443 <li class="navigation-menu-item"> 3444 <a 3445 class="navigation-menu-item-label" 3446 link-highlight="https://www.anelet.com/about/delivery-policy" 3447 href="https://www.anelet.com/about/delivery-policy" 3448 target="" 3449 > 3450 Delivery Policy 3451 </a> 3452 </li> 3453 3454 3455 </ul> 3456 </li> 3457 3458 3459 </ul> 3460</li> 3461 3462 3463 </ul> 3464 </div> 3465 </div> 3466 </div> 3467</nav> 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483<style> 3484 .header--mobile .header__logo img { 3485 object-fit: contain; 3486 max-width: 126px; 3487 max-height: 37px; 3488 } 3489</style> 3490 3491 3492 3493 3494<nav class="header header--mobile header--sticky js-navigationbar-mobile"> 3495 <div class="header__container clearfix"> 3496 3497 3498 3499 3500 3501 <div ng-cloak facebook-banner class="facebook-banner"> 3502 <div ng-if="state.isBannerOpened" class="facebook-banner-wrapper"> 3503 <div ng-click="onClose()" class="close-icon-wrapper"> 3504 <i class="fa fa-times"></i> 3505 </div> 3506 <p ng-click="copy()" class="wording" ng-bind-html="'facebook_banner.description' | translate"></p> 3507 <input type="hidden" id="location-copy-url" value="{{ currentLocation }}" readonly> 3508 </div> 3509 </div> 3510 3511 3512 3513 3514 3515 3516 <ul class="header__action-menu --logo-center "> 3517 3518 3519 <li class="List-item"> 3520 <svg class="icons icon-magnifier js-menu-search"> 3521 <use xlink:href="#icon-magnifier"></use> 3522 </svg> 3523 <form class="Product-searchField-form sl-product-search js-product-searchfield-form" action=""> 3524 <button disabled type="submit"> 3525 <svg class="icons icon-magnifier"> 3526 <use xlink:href="#icon-magnifier"></use> 3527 </svg> 3528 </button> 3529 <input disabled maxlength="50" type="search" placeholder="Search Products"> 3530 </form> 3531 </li> 3532 3533 3534 3535 3536 <li class="List-item"> 3537 <a href="/users/sign_in" class="NavigationBar-actionMenu-button NavigationBar-actionMenu-icon"> 3538 <svg class="icons icon-user"> 3539 <use xlink:href="#icon-user"></use> 3540 </svg> 3541 </a> 3542 </li> 3543 3544 3545 3546 3547 <li class="List-item List-item--center"> 3548 <a class="header__logo header__logo--center" href="/"> 3549 <img 3550 src="https://shoplineimg.com/6576a1830ee9d100760d043d/6576e9147585543c92776937/378x.webp?source_format=png" 3551 width="1168" 3552 height="334" 3553 loading="lazy" 3554 > 3555 </a> 3556 <a class="header__logo header__logo--hidden" href="/"> 3557 <img 3558 src="https://shoplineimg.com/6576a1830ee9d100760d043d/6576e9147585543c92776937/378x.webp?source_format=png" 3559 width="1168" 3560 height="334" 3561 loading="lazy" 3562 > 3563 </a> 3564 </li> 3565 3566 3567 3568 <basic-popover class="cart-over-limit"></basic-popover> 3569 <li class="List-item"> 3570 <a class="NavigationBar-actionMenu-button NavigationBar-actionMenu-icon NavigationBar-actionMenu-cart CartPanel-toggleButton sl-cart-toggle"> 3571 <svg class="icons icon-bag"> 3572 <use xlink:href="#icon-bag"></use> 3573 </svg>
3574 <span class="Cart-count sl-cart-count cart-primary-bg-color"></span> 3575 </a> 3576 </li> 3577 3578 3579 <li class="List-item"> 3580 <div class="NavigationBar-actionMenu-button sl-menu-panel-toggle"> 3581 <i></i> 3582 </div> 3583 </li> 3584 </ul> 3585 </div> 3586</nav> 3587 3588</div> 3589 3590 3591 3592 3593 3594<div id="MenuPanel" class="MenuPanel nav-bg-color"> 3595 <div class="MenuPanel-section"> 3596 3597 3598 3599 <ul class="MenuPanel-menu"> 3600 3601 3602 <li 3603 class="List-item MenuPanel-nestedList sl-dropdown" 3604 is-collapsed="true" 3605 is-mobile-collapsed="true" 3606 > 3607 <a class="Label" link-highlight="https://www.anelet.com/categories/é±å¹´æ ¶åªæ " href="https://www.anelet.com/categories/é±å¹´æ ¶åªæ "> 3608 âï¸é±å¹´æ ¶åªæ âï¸ 3609 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-69548baa9ca76c32e50269a6"></i> 3610 </a> 3611 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-69548baa9ca76c32e50269a6"> 3612 3613 3614 <li class="List-item"> 3615 <a class="Label" link-highlight="https://www.anelet.com/categories/馿°£å ä¹ï½æ·¡é¦ç²¾å¤ä»¶åªæ " href="https://www.anelet.com/categories/馿°£å ä¹ï½æ·¡é¦ç²¾å¤ä»¶åªæ "> 3616 馿°£å ä¹ï½æ·¡é¦ç²¾å¤ä»¶åªæ 3617 </a> 3618 </li> 3619 3620 3621 3622 <li class="List-item"> 3623 <a class="Label" link-highlight="https://www.anelet.com/categories/馿°£æ»¿è¼ï½æ´é¦å¤ä»¶åªæ " href="https://www.anelet.com/categories/馿°£æ»¿è¼ï½æ´é¦å¤ä»¶åªæ "> 3624 馿°£æ»¿è¼ï½æ´é¦å¤ä»¶åªæ 3625 </a> 3626 </li> 3627 3628 3629 3630 <li class="List-item"> 3631 <a class="Label" link-highlight="https://www.anelet.com/categories/馿°å»¶çºï½æ´é¦è£å ç¶éæ£" href="https://www.anelet.com/categories/馿°å»¶çºï½æ´é¦è£å ç¶éæ£"> 3632 馿°å»¶çºï½æ´é¦è£å ç¶éæ£ 3633 </a> 3634 </li> 3635 3636 3637 3638 <li class="List-item"> 3639 <a class="Label" link-highlight="https://www.anelet.com/categories/é¨èº«ç²¾é¸ï½ä¸æ§é¦è²·1é1" href="https://www.anelet.com/categories/é¨èº«ç²¾é¸ï½ä¸æ§é¦è²·1é1"> 3640 é¨èº«ç²¾é¸ï½ä¸æ§é¦è²·1é1 3641 </a> 3642 </li> 3643 3644 3645 3646 <li class="List-item"> 3647 <a class="Label" link-highlight="https://www.anelet.com/categories/ç´ç²¹é¦æ°ï½ä¸æ§é¦è²·å¤§éå°" href="https://www.anelet.com/categories/ç´ç²¹é¦æ°ï½ä¸æ§é¦è²·å¤§éå°"> 3648 ç´ç²¹é¦æ°ï½ä¸æ§é¦è²·å¤§éå° 3649 </a> 3650 </li> 3651 3652 3653 3654 <li class="List-item"> 3655 <a class="Label" link-highlight="https://www.anelet.com/categories/質æå± å®¶ï½å´é§9æé" href="https://www.anelet.com/categories/質æå± å®¶ï½å´é§9æé"> 3656 質æå± å®¶ï½å´é§9æé 3657 </a> 3658 </li> 3659 3660 3661 3662 <li class="List-item"> 3663 <a class="Label" link-highlight="https://www.anelet.com/categories/æå¿ç¸ä¼´ï½ä¿æº«ç¶2ä»¶8æ" href="https://www.anelet.com/categories/æå¿ç¸ä¼´ï½ä¿æº«ç¶2ä»¶8æ"> 3664 æå¿ç¸ä¼´ï½ä¿æº«ç¶2ä»¶8æ 3665 </a> 3666 </li> 3667 3668 3669 </ul> 3670 </li> 3671 3672 3673 3674 <li 3675 class="List-item MenuPanel-nestedList sl-dropdown" 3676 is-collapsed="true" 3677 is-mobile-collapsed="true" 3678 > 3679 <a class="Label" link-highlight="https://www.anelet.com/categories/編輯å´é¸" href="https://www.anelet.com/categories/編輯å´é¸"> 3680 編輯å´é¸ 3681 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-66b982bf72fb3d7b94b37749"></i> 3682 </a> 3683 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-66b982bf72fb3d7b94b37749"> 3684 3685 3686 <li class="List-item"> 3687 <a class="Label" link-highlight="https://www.anelet.com/categories/å°æ¾å¤å¤©é¦æ°´çæ¸ ç½å¼å¸" href="https://www.anelet.com/categories/å°æ¾å¤å¤©é¦æ°´çæ¸ ç½å¼å¸"> 3688 å°æ¾å¤å¤©é¦æ°´çæ¸ ç½å¼å¸ 3689 </a> 3690 </li> 3691 3692 3693 3694 <li class="List-item"> 3695 <a class="Label" link-highlight="https://www.anelet.com/categories/è®è±é¦èª¿çæ¥æææ±ä½ " href="https://www.anelet.com/categories/è®è±é¦èª¿çæ¥æææ±ä½ "> 3696 è®è±é¦èª¿çæ¥æææ±ä½ 3697 </a> 3698 </li> 3699 3700 3701 3702 <li class="List-item"> 3703 <a class="Label" link-highlight="https://www.anelet.com/categories/ç¥ç§èæ·±éçæ±æ¹é»å³" href="https://www.anelet.com/categories/ç¥ç§èæ·±éçæ±æ¹é»å³"> 3704 ç¥ç§èæ·±éçæ±æ¹é»å³ 3705 </a> 3706 </li> 3707 3708 3709 3710 <li class="List-item"> 3711 <a class="Label" link-highlight="https://www.anelet.com/categories/æåæ¨è³ªèª¿çèªç¶ä¹è²" href="https://www.anelet.com/categories/æåæ¨è³ªèª¿çèªç¶ä¹è²"> 3712 æåæ¨è³ªèª¿çèªç¶ä¹è² 3713 </a> 3714 </li> 3715 3716 3717 3718 <li class="List-item"> 3719 <a class="Label" link-highlight="https://www.anelet.com/categories/mix-and-match" href="https://www.anelet.com/categories/mix-and-match"> 3720 髿®µä½æ··é¦çµå 3721 </a> 3722 </li> 3723 3724 3725 </ul> 3726 </li> 3727 3728 3729 3730 <li 3731 class="List-item MenuPanel-nestedList sl-dropdown" 3732 is-collapsed="true" 3733 is-mobile-collapsed="true" 3734 > 3735 <a class="Label" link-highlight="https://www.anelet.com/categories/fragrances" href="https://www.anelet.com/categories/fragrances"> 3736 馿°´é¦ç²¾ 3737 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-657abede9b091a00177a33c5"></i> 3738 </a> 3739 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-657abede9b091a00177a33c5"> 3740 3741 3742 <li class="List-item"> 3743 <a class="Label" link-highlight="https://www.anelet.com/categories/womens-perfume" href="https://www.anelet.com/categories/womens-perfume"> 3744 女æ§é¦æ°´ 3745 </a> 3746 </li> 3747 3748 3749 3750 <li class="List-item"> 3751 <a class="Label" link-highlight="https://www.anelet.com/categories/unisex-perfume" href="https://www.anelet.com/categories/unisex-perfume"> 3752 䏿§é¦æ°´ 3753 </a> 3754 </li> 3755 3756 3757 3758 <li class="List-item"> 3759 <a class="Label" link-highlight="https://www.anelet.com/categories/mens-perfume" href="https://www.anelet.com/categories/mens-perfume"> 3760 ç·æ§é¦æ°´ 3761 </a> 3762 </li> 3763 3764 3765 3766 <li class="List-item"> 3767 <a class="Label" link-highlight="https://www.anelet.com/categories/hair-perfume" href="https://www.anelet.com/categories/hair-perfume"> 3768 é«®é¦å´é§ 3769 </a> 3770 </li> 3771 3772 3773 3774 <li class="List-item"> 3775 <a class="Label" link-highlight="https://www.anelet.com/categories/perfume-gift-sets" href="https://www.anelet.com/categories/perfume-gift-sets"> 3776 馿°´ç¦®ç 3777 </a> 3778 </li> 3779 3780 3781 </ul> 3782 </li> 3783 3784 3785 3786 <li 3787 class="List-item MenuPanel-nestedList sl-dropdown" 3788 is-collapsed="true" 3789 is-mobile-collapsed="true" 3790 > 3791 <a class="Label" link-highlight="https://www.anelet.com/categories/home-fragrances" href="https://www.anelet.com/categories/home-fragrances"> 3792 å± å®¶é¦æ° 3793 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-657abfadd1619b001ab68915"></i> 3794 </a> 3795 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-657abfadd1619b001ab68915"> 3796 3797 3798 <li class="List-item"> 3799 <a class="Label" link-highlight="https://www.anelet.com/categories/room-spray" href="https://www.anelet.com/categories/room-spray"> 3800 å®¤å §å´é§ 3801 </a> 3802 </li> 3803 3804 3805 3806 <li class="List-item"> 3807 <a class="Label" link-highlight="https://www.anelet.com/categories/reed-diffuser" href="https://www.anelet.com/categories/reed-diffuser"> 3808 å®¤å §æ´é¦ 3809 </a> 3810 </li> 3811 3812 3813 3814 <li class="List-item"> 3815 <a class="Label" link-highlight="https://www.anelet.com/categories/solid-perfume" href="https://www.anelet.com/categories/solid-perfume"> 3816 馿°è å¡ 3817 </a> 3818 </li> 3819 3820 3821 3822 <li class="List-item"> 3823 <a class="Label" link-highlight="https://www.anelet.com/categories/scented-candle" href="https://www.anelet.com/categories/scented-candle"> 3824 馿°è ç 3825 </a> 3826 </li> 3827 3828 3829 3830 <li class="List-item"> 3831 <a class="Label" link-highlight="https://www.anelet.com/categories/fragrance-gift-sets" href="https://www.anelet.com/categories/fragrance-gift-sets"> 3832 馿°ç¦®ç 3833 </a> 3834 </li> 3835 3836 3837 3838 <li class="List-item"> 3839 <a class="Label" link-highlight="https://www.anelet.com/categories/fabrics-spray" href="https://www.anelet.com/categories/fabrics-spray"> 3840 è¡£ç©å´é§ 3841 </a> 3842 </li> 3843 3844 3845 </ul> 3846 </li> 3847 3848 3849 3850 <li 3851 class="List-item MenuPanel-nestedList sl-dropdown" 3852 is-collapsed="true" 3853 is-mobile-collapsed="true" 3854 > 3855 <a class="Label" link-highlight="https://www.anelet.com/categories/life-style" href="https://www.anelet.com/categories/life-style"> 3856 æå°é ä»¶ 3857 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-65e6862d251f91000e0fbe
3857c0"></i> 3858 </a> 3859 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-65e6862d251f91000e0fbec0"> 3860 3861 3862 <li class="List-item"> 3863 <a class="Label" link-highlight="https://www.anelet.com/categories/thermal-bottle" href="https://www.anelet.com/categories/thermal-bottle"> 3864 ä¿æº«ç¶ 3865 </a> 3866 </li> 3867 3868 3869 3870 <li class="List-item"> 3871 <a class="Label" link-highlight="https://www.anelet.com/categories/slimming-cosmetotextiles" href="https://www.anelet.com/categories/slimming-cosmetotextiles"> 3872 å¡èº«è¡£ 3873 </a> 3874 </li> 3875 3876 3877 </ul> 3878 </li> 3879 3880 3881 3882 <li 3883 class="List-item MenuPanel-nestedList sl-dropdown" 3884 is-collapsed="true" 3885 is-mobile-collapsed="true" 3886 > 3887 <a class="Label" link-highlight="https://www.anelet.com/categories/brands" href="https://www.anelet.com/categories/brands"> 3888 åç總覽 3889 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-65e1ce8731a020001a732509"></i> 3890 </a> 3891 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-65e1ce8731a020001a732509"> 3892 3893 3894 <li class="List-item"> 3895 <a class="Label" link-highlight="https://www.anelet.com/categories/youfirst" href="https://www.anelet.com/categories/youfirst"> 3896 L'ESSENZA / YOUFIRST 3897 </a> 3898 </li> 3899 3900 3901 3902 <li class="List-item"> 3903 <a class="Label" link-highlight="https://www.anelet.com/categories/lytess" href="https://www.anelet.com/categories/lytess"> 3904 LYTESS 3905 </a> 3906 </li> 3907 3908 3909 3910 <li class="List-item"> 3911 <a class="Label" link-highlight="https://www.anelet.com/categories/margot-tita" href="https://www.anelet.com/categories/margot-tita"> 3912 MARGOT&TITA 3913 </a> 3914 </li> 3915 3916 3917 3918 <li class="List-item"> 3919 <a class="Label" link-highlight="https://www.anelet.com/categories/my-fragrances" href="https://www.anelet.com/categories/my-fragrances"> 3920 MY FRAGRANCES 3921 </a> 3922 </li> 3923 3924 3925 3926 <li class="List-item"> 3927 <a class="Label" link-highlight="https://www.anelet.com/categories/piuforty" href="https://www.anelet.com/categories/piuforty"> 3928 PIÃFORTY 3929 </a> 3930 </li> 3931 3932 3933 </ul> 3934 </li> 3935 3936 3937 3938 <li 3939 class="List-item MenuPanel-nestedList sl-dropdown" 3940 is-collapsed="true" 3941 is-mobile-collapsed="true" 3942 > 3943 <a class="Label" link-highlight="https://www.anelet.com/categories/é¦èª¿å表" href="https://www.anelet.com/categories/é¦èª¿å表"> 3944 é¦èª¿å表 3945 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-65e6b912cf2a2d001144f3b9"></i> 3946 </a> 3947 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-65e6b912cf2a2d001144f3b9"> 3948 3949 3950 <li class="List-item"> 3951 <a class="Label" link-highlight="https://www.anelet.com/categories/woody-perfumes" href="https://www.anelet.com/categories/woody-perfumes"> 3952 æ¨è³ªèª¿ 3953 </a> 3954 </li> 3955 3956 3957 3958 <li class="List-item"> 3959 <a class="Label" link-highlight="https://www.anelet.com/categories/spicy-perfumes" href="https://www.anelet.com/categories/spicy-perfumes"> 3960 è¾é¦èª¿ 3961 </a> 3962 </li> 3963 3964 3965 3966 <li class="List-item"> 3967 <a class="Label" link-highlight="https://www.anelet.com/categories/oriental-perfumes" href="https://www.anelet.com/categories/oriental-perfumes"> 3968 æ±æ¹èª¿ 3969 </a> 3970 </li> 3971 3972 3973 3974 <li class="List-item"> 3975 <a class="Label" link-highlight="https://www.anelet.com/categories/fruity-perfumes" href="https://www.anelet.com/categories/fruity-perfumes"> 3976 æé¦èª¿ 3977 </a> 3978 </li> 3979 3980 3981 3982 <li class="List-item"> 3983 <a class="Label" link-highlight="https://www.anelet.com/categories/floral-perfumes" href="https://www.anelet.com/categories/floral-perfumes"> 3984 è±é¦èª¿ 3985 </a> 3986 </li> 3987 3988 3989 3990 <li class="List-item"> 3991 <a class="Label" link-highlight="https://www.anelet.com/categories/parfums-cirus" href="https://www.anelet.com/categories/parfums-cirus"> 3992 ææ©èª¿ 3993 </a> 3994 </li> 3995 3996 3997 3998 <li class="List-item"> 3999 <a class="Label" link-highlight="https://www.anelet.com/categories/aquatic-perfumes" href="https://www.anelet.com/categories/aquatic-perfumes"> 4000 æµ·æ´èª¿ 4001 </a> 4002 </li> 4003 4004 4005 4006 <li class="List-item"> 4007 <a class="Label" link-highlight="https://www.anelet.com/categories/gourmet-perfumes" href="https://www.anelet.com/categories/gourmet-perfumes"> 4008 çé»èª¿ 4009 </a> 4010 </li> 4011 4012 4013 4014 <li class="List-item"> 4015 <a class="Label" link-highlight="https://www.anelet.com/categories/fougere-perfumes" href="https://www.anelet.com/categories/fougere-perfumes"> 4016 è°è調 4017 </a> 4018 </li> 4019 4020 4021 4022 <li class="List-item"> 4023 <a class="Label" link-highlight="https://www.anelet.com/categories/musc-perfumes" href="https://www.anelet.com/categories/musc-perfumes"> 4024 éºé¦èª¿ 4025 </a> 4026 </li> 4027 4028 4029 </ul> 4030 </li> 4031 4032 4033 4034 <li 4035 class="List-item MenuPanel-nestedList sl-dropdown" 4036 is-collapsed="true" 4037 is-mobile-collapsed="true" 4038 > 4039 <a class="Label" link-highlight="https://www.anelet.com/pages/the-blog" href="https://www.anelet.com/pages/the-blog"> 4040 New Page 4041 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-6595331fb717c0000edeaef2"></i> 4042 </a> 4043 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-6595331fb717c0000edeaef2"> 4044 4045 4046 <li class="List-item"> 4047 <a class="Label" link-highlight="https://www.anelet.com/pages/best-perfume" href="https://www.anelet.com/pages/best-perfume"> 4048 Best Perfume 4049 </a> 4050 </li> 4051 4052 4053 4054 <li class="List-item"> 4055 <a class="Label" link-highlight="https://www.anelet.com/pages/know-how" href="https://www.anelet.com/pages/know-how"> 4056 KNOW-HOW 4057 </a> 4058 </li> 4059 4060 4061 </ul> 4062 </li> 4063 4064 4065 4066 <li 4067 class="List-item MenuPanel-nestedList sl-dropdown" 4068 is-collapsed="true" 4069 is-mobile-collapsed="true" 4070 > 4071 <a class="Label" link-highlight="https://www.anelet.com/pages/brandstory" href="https://www.anelet.com/pages/brandstory"> 4072 éæ¼æå 4073 <i class="fa sl-dropdown-toggle" data-toggle="collapse" href="#menu-mobile-65e1ea9597b584001789ffa6"></i> 4074 </a> 4075 <ul class="MenuPanel-nestedList-dropdown sl-dropdown-list collapse" id="menu-mobile-65e1ea9597b584001789ffa6"> 4076 4077 4078 <li class="List-item"> 4079 <a class="Label" link-highlight="https://www.anelet.com/pages/member" href="https://www.anelet.com/pages/member"> 4080 æå¡ç¨äº« 4081 </a> 4082 </li> 4083 4084 4085 4086 <li class="List-item"> 4087 <a class="Label" link-highlight="https://www.anelet.com/pages/collaboration" href="https://www.anelet.com/pages/collaboration"> 4088 New Page 4089 </a> 4090 </li> 4091 4092 4093 4094 <li class="List-item"> 4095 <a class="Label" link-highlight="https://www.anelet.com/about/policy" href="https://www.anelet.com/about/policy"> 4096 Return Policy 4097 </a> 4098 </li> 4099 4100 4101 4102 <li class="List-item"> 4103 <a class="Label" link-highlight="https://www.anelet.com/about/delivery-policy" href="https://www.anelet.com/about/delivery-policy"> 4104 Delivery Policy 4105 </a> 4106 </li> 4107 4108 4109 </ul> 4110 </li> 4111 4112 4113 </ul> 4114 4115 4116 4117 4118 4119 4120 4121 <div class="MenuPanel-section-header"> 4122 Account 4123 </div> 4124 <ul class="MenuPanel-accountMenu"> 4125 <li class="List-item"> 4126 <a class="Label" href="/users/sign_in">Sign in</a> 4127 </li> 4128 <li class="List-item"> 4129 <a class="Label" href="/users/sign_up">Sign up</a> 4130 </li> 4131 </ul> 4132 4133 4134 4135 4136 4137 4138 4139 4140 <ul class="MenuPanel-othersMenu"> 4141 4142 <li class="List-item"> 4143 <a class="sl-currency-menu-open"> 4144 <i class="fa fa-dollar"></i> 4145 </a> 4146 </li> 4147 4148 4149 <li class="List-item"> 4150 <a class="sl-language-menu-open"> 4151 <svg class="icons icon-globe-v2"> 4152 <use xlink:href="#icon-globe-v2"></use> 4153 </svg> 4154 </a> 4155 </li> 4156 4157 4158 <li class="List-item"> 4159 <a class="MessageDialog-showButton sl-message-toggle"> 4160 <svg class="icons icon-bubble"> 4161 <use xlink:href="#icon-bubble"></use> 4162 </svg> 4163 </a> 4164 </li> 4165 4166 </ul> 4167 4168 </div> 4169</div> 4170 4171 4172 4173 4174 4175 4176 4177
4178<script type="text/javascript"> 4179document.addEventListener('DOMContentLoaded', function() { 4180(function() { 4181 function getMenus() { 4182 var menuData = []; 4183 $('.navigation-menu-second-layer').each(function() { 4184 var topLayerMenu = $(this).parent(); 4185 var secondLayerMenu = $(this); 4186 var secondLayerMenuScrollWidth = secondLayerMenu[0].scrollWidth; 4187 var secondLayerMenuItemWidth = secondLayerMenu.find('li').outerWidth(true); 4188 var secondLayerMenuScrollButtons = secondLayerMenu.find('.second-layer-scroll-buttons'); 4189 var thirdLayerData = []; 4190 secondLayerMenu.find('.navigation-menu-item--nested').each(function() { 4191 thirdLayerData.push({ 4192 parentItem: $(this), 4193 toggleButton: $(this).find('.navigation-menu-third-layer-toggle'), 4194 menu: $(this).find('.navigation-menu-third-layer') 4195 }); 4196 }); 4197 menuData.push({ 4198 topLayer: { 4199 menu: topLayerMenu 4200 }, 4201 secondLayer: { 4202 menu: secondLayerMenu, 4203 itemWidth: secondLayerMenuItemWidth, 4204 scrollWidth: secondLayerMenuScrollWidth, 4205 scrollButtons: secondLayerMenuScrollButtons, 4206 scrollLeftButton: secondLayerMenuScrollButtons.find('.scroll-left'), 4207 scrollRightButton: secondLayerMenuScrollButtons.find('.scroll-right'), 4208 isOneColumnMenu: secondLayerMenuItemWidth === secondLayerMenuScrollWidth, 4209 isScrollable: secondLayerMenuScrollWidth > parseInt($(secondLayerMenu).css('max-width'), 10) 4210 }, 4211 thirdLayer: thirdLayerData 4212 }); 4213 }); 4214 return menuData; 4215 } 4216 4217 function setSecondLayerMenu() { 4218 menus.forEach(function(currentMenu) { 4219 currentMenu.secondLayer.menu.css('width', currentMenu.secondLayer.scrollWidth); 4220 currentMenu.secondLayer.isScrollable = currentMenu.secondLayer.scrollWidth > currentMenu.secondLayer.menu.outerWidth(); 4221 if (currentMenu.secondLayer.isScrollable) { 4222 currentMenu.secondLayer.scrollButtons.css('display', 'flex'); 4223 setSecondLayerMenuScrollButtonEvent(currentMenu.secondLayer); 4224 } 4225 if (currentMenu.secondLayer.isOneColumnMenu) { 4226 currentMenu.secondLayer.menu.css('overflow', 'unset'); 4227 } 4228 }); 4229 } 4230 4231 function setSecondLayerMenuScrollButtonEvent(secondLayer) { 4232 var scrollDistance = 800; 4233 secondLayer.scrollLeftButton.on('click', function() { 4234 var currentScrollLeft = secondLayer.menu.scrollLeft(); 4235 secondLayer.menu.animate({ scrollLeft: currentScrollLeft - scrollDistance }); 4236 }); 4237 secondLayer.scrollRightButton.on('click', function() { 4238 var currentScrollLeft = secondLayer.menu.scrollLeft(); 4239 secondLayer.menu.animate({ scrollLeft: currentScrollLeft + scrollDistance }); 4240 }); 4241 secondLayer.menu.on('scroll', 4242 _.throttle(function() { 4243 secondLayer.menu.scrollLeft() === 0 4244 ? secondLayer.scrollLeftButton.addClass('scroll-disable') 4245 : secondLayer.scrollLeftButton.removeClass('scroll-disable'); 4246 secondLayer.menu.scrollLeft() + secondLayer.menu.outerWidth() === secondLayer.scrollWidth 4247 ? secondLayer.scrollRightButton.addClass('scroll-disable') 4248 : secondLayer.scrollRightButton.removeClass('scroll-disable'); 4249 }, 200) 4250 ); 4251 } 4252 4253 function setSecondLayerMenuPosition() { 4254 var minRightSpace = 80; 4255 var lastOpenedMenu = lastOpenedMenuObject.get(); 4256 menus.forEach(function(currentMenu) { 4257 currentMenu.secondLayer.menu.css('width', currentMenu.secondLayer.scrollWidth); 4258 /* reset second layer menu position */ 4259 currentMenu.secondLayer.menu.addClass('navigation-menu-second-layer-origin-position'); 4260 /* set right space */ 4261 var hasOpenedOneColumnMenu = 4262 lastOpenedMenu.thirdLayerMenu && 4263 lastOpenedMenu.isOneColumnMenu && 4264 currentMenu.secondLayer.menu[0] === lastOpenedMenu.secondLayerMenu[0]; 4265 var secondLayerMenuRightSpace = $(window).width() - ( 4266 currentMenu.secondLayer.menu.offset().left + currentMenu.secondLayer.menu.outerWidth() 4267 ); 4268 var shouldSetRightSpace = Math.floor(secondLayerMenuRightSpace) <= minRightSpace; 4269 var rightSpace = minRightSpace; 4270 if (shouldSetRightSpace) { 4271 if (hasOpenedOneColumnMenu) { 4272 rightSpace += currentMenu.secondLayer.menu.outerWidth(); 4273 } 4274 } else {
4275 if (hasOpenedOneColumnMenu && secondLayerMenuRightSpace - lastOpenedMenu.thirdLayerMenu.outerWidth() < minRightSpace) { 4276 rightSpace = secondLayerMenuRightSpace + currentMenu.secondLayer.menu.outerWidth(); 4277 } else { 4278 rightSpace = secondLayerMenuRightSpace; 4279 } 4280 } 4281 currentMenu.secondLayer.menu.css({ 4282 position: 'fixed', 4283 top: currentMenu.topLayer.menu.height() + currentMenu.topLayer.menu.position().top, 4284 right: rightSpace, 4285 left: 'unset' 4286 }); 4287 currentMenu.secondLayer.menu.removeClass('navigation-menu-second-layer-origin-position'); 4288 /* set scroll direction control buttons */ 4289 if (currentMenu.secondLayer.isScrollable) { 4290 currentMenu.secondLayer.scrollButtons.css('right', 4291 $(window).width() - ( 4292 currentMenu.secondLayer.menu.offset().left + 4293 currentMenu.secondLayer.menu.outerWidth() + 4294 currentMenu.secondLayer.scrollButtons.outerWidth() 4295 ) 4296 ); 4297 } 4298 }); 4299 } 4300 4301 function setThirdLayerMenuPosition() { 4302 menus.forEach(function(currentMenu) { 4303 currentMenu.thirdLayer.forEach(function(currentThirdLayer) { 4304 currentThirdLayer.menu.css({ 4305 position: 'absolute', 4306 transform: currentMenu.secondLayer.isOneColumnMenu ? 'translateX(100%)' : 'unset', 4307 top: currentThirdLayer.parentItem.position().top * -1, 4308 left: currentMenu.secondLayer.isOneColumnMenu ? 'unset' : '100%', 4309 height: 4310 currentMenu.secondLayer.isOneColumnMenu && 4311 currentThirdLayer.menu.height() > currentMenu.secondLayer.menu.height() 4312 ? currentThirdLayer.menu.height() 4313 : currentMenu.secondLayer.menu.height() 4314 }); 4315 }); 4316 }); 4317 } 4318 4319 function setThirdLayerMenuClickEvent() { 4320 menus.forEach(function(currentMenu) { 4321 currentMenu.thirdLayer.forEach(function(currentThirdLayer) { 4322 currentThirdLayer.toggleButton.on('click', function(e) { 4323 if (e.target !== this) return; 4324 var lastOpenedMenu = lastOpenedMenuObject.get(); 4325 var isOpen = currentThirdLayer.menu.css('display') !== 'none'; 4326 /* if second layer menu is one column */ 4327 var isSameSecondLayerMenu; 4328 var isOpenFromRight; 4329 if ( 4330 currentMenu.secondLayer.isOneColumnMenu || 4331 (lastOpenedMenu.secondLayerMenu && lastOpenedMenu.isOneColumnMenu) 4332 ) { 4333 if (lastOpenedMenu.secondLayerMenu) { 4334 isSameSecondLayerMenu = currentMenu.secondLayer.menu[0] === lastOpenedMenu.secondLayerMenu[0]; 4335 } 4336 if ( 4337 (isOpen || lastOpenedMenu.isOneColumnMenu) && 4338 lastOpenedMenu.topLayerMenu.offset().left > lastOpenedMenu.secondLayerMenu.offset().left 4339 ) { 4340 lastOpenedMenu.secondLayerMenu.css('right', '-=' + currentMenu.secondLayer.itemWidth + 'px'); 4341 } 4342 if (!isOpen && currentMenu.secondLayer.isOneColumnMenu) { 4343 currentThirdLayer.menu.addClass('navigation-menu-third-layer-shadow '); 4344 var secondLayerMenuOffsetRight = $(window).width() - ( 4345 currentMenu.secondLayer.menu.offset().left + currentMenu.secondLayer.menu.outerWidth() 4346 ); 4347 var shouldOpenFromRightSide = Math.floor(secondLayerMenuOffsetRight) <= currentMenu.secondLayer.itemWidth; 4348 if (shouldOpenFromRightSide && !isSameSecondLayerMenu) { 4349 currentMenu.secondLayer.menu.css('right', '+=' + currentMenu.secondLayer.itemWidth + 'px'); 4350 } 4351 } else { 4352 lastOpenedMenu.thirdLayerMenu.removeClass('navigation-menu-third-layer-shadow'); 4353 } 4354 isOpenFromRight = shouldOpenFromRightSide || (isSameSecondLayerMenu && lastOpenedMenu.isOpenFromRight); 4355 } 4356 /* close last opened third layer menu */ 4357 if (lastOpenedMenu.thirdLayerMenu) { 4358 lastOpenedMenu.thirdLayerMenuToggleButton 4359 .removeClass('navigation-menu-third-layer-toggle--open fa-angle-left') 4360 .addClass('navigation-menu-third-layer-toggle--close fa-angle-right'); 4361 lastOpenedMenu.thirdLayerMenu.css('display', 'none'); 4362 if (lastOpenedMenu.isScrollable) { 4363 lastOpenedMenu.scrollButtons.css('display', 'flex'); 4364 } 4365 lastOpenedMenuObject.reset(); 4366 } 4367 /* open current third layer menu */ 4368 if (!isOpen) { 4369 currentThirdLayer.menu.css('display', 'flex'); 4370 currentThirdLayer.toggleButton 4371 .removeClass('navigation-menu-third-layer-toggle--close fa-angle-right') 4372 .addClass('navigation-menu-third-layer-toggle--open fa-angle-left'); 4373 if ( 4374 currentMenu.secondLayer.menu.outerWidth() - ( 4375 currentMenu.secondLayer.itemWidth * 2 + currentThirdLayer.parentItem.position().left 4376 ) < 0 4377 ) { 4378 currentMenu.secondLayer.menu.animate({ 4379 scrollLeft: currentMenu.secondLayer.menu.scrollLeft() + currentMenu.secondLayer.scrollWidth 4380 }); 4381 } else if (currentThirdLayer.parentItem.position().left < 0) { 4382 currentMenu.secondLayer.menu.animate({ 4383 scrollLeft: currentMenu.secondLayer.menu.scrollLeft() - Math.abs(currentThirdLayer.parentItem.position().left) 4384 }); 4385 } 4386 /* set last opened third layer menu */ 4387 lastOpenedMenuObject.set({
4388 topLayerMenu: currentMenu.topLayer.menu, 4389 secondLayerMenu: currentMenu.secondLayer.menu, 4390 thirdLayerMenu: currentThirdLayer.menu, 4391 thirdLayerMenuToggleButton: currentThirdLayer.toggleButton, 4392 isOpenFromRight: isOpenFromRight, 4393 isOneColumnMenu: currentMenu.secondLayer.isOneColumnMenu, 4394 isScrollable: currentMenu.secondLayer.isScrollable, 4395 scrollButtons: currentMenu.secondLayer.scrollButtons 4396 }); 4397 if (currentMenu.secondLayer.isScrollable) { 4398 currentMenu.secondLayer.scrollButtons.css('display', 'none'); 4399 } 4400 } 4401 }); 4402 }); 4403 }); 4404 } 4405 4406 var makeLastOpenMenuObject = function() { 4407 var currentData = {}; 4408 return { 4409 get: function() { 4410 return currentData; 4411 }, 4412 set: function(openedMenuObject) { 4413 currentData = { 4414 topLayerMenu: openedMenuObject.topLayerMenu, 4415 secondLayerMenu: openedMenuObject.secondLayerMenu, 4416 thirdLayerMenu: openedMenuObject.thirdLayerMenu, 4417 thirdLayerMenuToggleButton: openedMenuObject.thirdLayerMenuToggleButton, 4418 isOpenFromRight: openedMenuObject.isOpenFromRight, 4419 isOneColumnMenu: openedMenuObject.isOneColumnMenu, 4420 isScrollable: openedMenuObject.isScrollable, 4421 scrollButtons: openedMenuObject.scrollButtons 4422 }; 4423 }, 4424 reset: function() { 4425 currentData = {}; 4426 } 4427 }; 4428 }; 4429 4430 function checkScroll() { 4431 if ($(window).scrollTop() > 100) { 4432 $('body').addClass('my-scroll'); 4433 } else { 4434 $('body').removeClass('my-scroll'); 4435 } 4436 } 4437 4438 function setSideBarClickEvent(openSel, closeSel, menuName) { 4439 $(openSel).sidr(new SidrOptions({ name: menuName })); 4440 $(openSel).off(); /* remove click event handler from sidr */ 4441 $('body').on('click.' + menuName, openSel, function(e) { 4442 $.sidr('close', 'MenuPanel', function() { 4443 $.sidr('open', menuName, function() { 4444 $('.sl-modal-mask').css({ display: 'block', opacity: 0.3, zIndex: 10 }); 4445 4446 var zIndex = $('#shopline-section-header, .NavigationBar.mod-desktop').css('z-index'); 4447 if (zIndex && zIndex !== 'auto') $('.sl-modal-mask').css('z-index', zIndex); 4448 }); 4449 }); 4450 }); 4451 $('body').on('click.' + menuName, closeSel, function(e) { 4452 $.sidr('close', menuName, function() { 4453 $.sidr('open', 'MenuPanel'); 4454 }); 4455 }); 4456 $('.sl-modal-mask').on('click', function() { 4457 $.sidr('close', menuName); 4458 }); 4459 } 4460 4461 function setSmallViewSearchBarClickEvents() { 4462 var bannerHeight = ($('.trial-banner').height() || 0) + ($('.js-announcement').height() || 0); 4463 $('.js-product-searchfield-form').css('top', bannerHeight); 4464 $('.js-menu-search').on('click', function() { 4465 $('.js-product-searchfield-form').addClass('active'); 4466 $('.sl-modal-mask').css({ display: 'block', opacity: 0.3, zIndex: 10 }); 4467 }); 4468 $('.sl-modal-mask').on('click', function() { 4469 $('.js-product-searchfield-form').removeClass('active'); 4470 4471 var zIndex = $('#shopline-section-header, .NavigationBar.mod-desktop').css('z-index'); 4472 if (zIndex && zIndex !== 'auto') $('.sl-modal-mask').css('z-index', zIndex); 4473 }); 4474 } 4475 4476 function adjustStickyHeight() { 4477 var previewingClosedStoreBanner = $('.js-previewing-closed-store-banner'); 4478 var previewingClosedStoreBannerHeight = previewingClosedStoreBanner.length ? previewingClosedStoreBanner.height() : 0; 4479 } 4480 4481 function setMenuPosition() { 4482 function setPosition() { 4483 adjustStickyHeight(); 4484 setSecondLayerMenuPosition(); 4485 setThirdLayerMenuPosition(); 4486 } 4487 var logo = document.querySelector('.js-sticky img'); 4488 if (logo) { 4489 if (logo.complete) { 4490 setPosition(); 4491 } else { 4492 logo.addEventListener('load', setPosition); 4493 } 4494 } 4495 } 4496 4497 function initMenu() { 4498 if (window.matchMedia('(max-width: 1199px)').matches) { 4499 return; 4500 } 4501 menus = getMenus(); 4502 lastOpenedMenuObject = makeLastOpenMenuObject(); 4503 checkScroll();
4504 setSecondLayerMenu(); 4505 setMenuPosition(); 4506 setThirdLayerMenuClickEvent(); 4507 isInited = true; 4508 } 4509 4510 function setMobileSearchBarPosition() { 4511 var bannerHeight = ($('.trial-banner').height() || 0) + ($('.js-announcement').height() || 0); 4512 $('.js-product-searchfield-form').css('top', bannerHeight); 4513 } 4514 4515 /* init */ 4516 var menus = null; 4517 var isInited = false; 4518 var lastOpenedMenuObject = null; 4519 setSmallViewSearchBarClickEvents(); 4520 setSideBarClickEvent('.sl-language-menu-open', '.sl-language-menu-close', 'LanguagePanel'); 4521 setSideBarClickEvent('.sl-currency-menu-open', '.sl-currency-menu-close', 'CurrencyPanel'); 4522 initMenu(); 4523 4524 /* watch */ 4525 $(window).on('resize', _.throttle(function() { 4526 if (isInited) { 4527 menus = getMenus(); 4528 setMenuPosition(); 4529 setMobileSearchBarPosition(); 4530 } else { 4531 initMenu(); 4532 } 4533 }, 200)); 4534 4535 $(window).on('scroll', _.throttle(function() { 4536 if (isInited) { 4537 checkScroll(); 4538 menus = getMenus(); 4539 checkScroll(); 4540 setMenuPosition(); 4541 } else { 4542 initMenu(); 4543 } 4544 }, 200)); 4545})(); 4546}); 4547</script>
4547 4548 4549 4550
4551<script type="text/javascript"> 4552const menuEventCategory = 'Menu'; 4553const shopScope = 'shop'; 4554const shoplyticsMenuEventData = { 4555 event_category: menuEventCategory, 4556 scope: shopScope, 4557}; 4558 4559window.APP_EXTENSION_SDK_ANGULAR_JS_LOADED.then(() => { 4560 const trackerService = angular 4561 .element('body') 4562 .injector() 4563 .get('trackerService'); 4564 4565 function sendEvent(eventType, data = {}) { 4566 /* send shoplytics event */ 4567 trackerService.track({ 4568 type: eventType, 4569 data: { 4570 ...shoplyticsMenuEventData, 4571 ...data, 4572 }, 4573 }); 4574 } 4575 4576 function bindMenuClickEvent({ 4577 type, 4578 containerSelector, 4579 excludeTargetSelector, 4580 }) { 4581 $(containerSelector).on('click', 'a', function (e) { 4582 /* exclude specific elements */ 4583 if ( 4584 excludeTargetSelector && 4585 ($(e.target).is(excludeTargetSelector) || 4586 $(e.target).closest(excludeTargetSelector).length > 0) 4587 ) { 4588 return; 4589 } 4590 4591 const li = $(this).closest('li'); 4592 // desktop and mobile have different file structure 4593 const depth = 4594 li.parentsUntil(containerSelector, 'ul').length + 4595 (type === 'mobile' ? 1 : 0); 4596 4597 sendEvent(trackerService.menuTrackerType.MENU_CLICK, { 4598 menu_level: depth, 4599 }); 4600 }); 4601 } 4602 4603 function subscribeMenuClick() { 4604 /* menu click event - mobile, exclude toggle icon */ 4605 bindMenuClickEvent({ 4606 type: 'mobile', 4607 containerSelector: '#MenuPanel .MenuPanel-mainMenu', 4608 excludeTargetSelector: '.sl-dropdown-toggle, .sl-advanced-menu-trigger', 4609 }); 4610 /* menu click event - desktop */ 4611 bindMenuClickEvent({ 4612 type: 'desktop', 4613 containerSelector: '.header--desktop .navigation-menu', 4614 }); 4615 } 4616 4617 /* menu click event */ 4618 subscribeMenuClick(); 4619 4620 /* search icon click event - for both desktop & mobile */ 4621 $('.header--mobile .js-menu-search, .header--desktop .icon-magnifier').on('click', function () { 4622 sendEvent(trackerService.menuTrackerType.SEARCH_PRODUCT_ICON_CLICK); 4623 }); 4624 4625 $('.sl-menu-panel-toggle').on('pointerdown', function () { 4626 sendEvent(trackerService.menuTrackerType.HEADER_HAMBURGER_CLICK); 4627 }); 4628}); 4629</script>
4629 4630 4631 4632 4633 4634 4635 4636 4637 <div id="cart-panel" class="CartPanel js-cart-panel"> 4638 <div class="CartPanel-section"> 4639 <div ng-controller="CartsController"> 4640 4641<div class="clear"></div> 4642<!-- Hint: Cart Empty --> 4643<div ng-cloak class="cart-panel-empty-wrapper" ng-class="{'has-related-products': currentCart.isCartEmpty() && isSmartProductRecommendationPlusCartEnabled}" ng-show="currentCart.isCartEmpty()"> 4644 <div class="CartPanel-hint"> Your Shopping Cart is empty. </div> 4645 <div class="cart-related-products" ng-if="currentCart.isCartEmpty() && isSmartProductRecommendationPlusCartEnabled"> 4646 <div class="cart-related-products-title">{{ 'cart.related_products.title' | translate }}</div> 4647 <cart-lazyload-related-products data-allow-empty-product-ids="true"> 4648 <div class="cart-related-products-loading"> 4649 <div class="cart-related-products-loading-image loading-placeholder"></div> 4650 <div class="cart-related-products-loading-content"> 4651 <div class="cart-related-products-loading-title loading-placeholder"></div> 4652 <div class="cart-related-products-loading-price-details loading-placeholder"></div> 4653 </div> 4654 </div> 4655 <div class="cart-related-products-list"></div> 4656 </cart-lazyload-related-products> 4657 </div> 4658</div> 4659 4660<div class="cart-panel-content" data-e2e-id="cart-panel_container" ng-cloak ng-hide="currentCart.isCartEmpty()"> 4661 <!-- CartItems --> 4662 <div class="cart-items"> 4663 <div 4664 ng-repeat="item in currentCart.getItems() track by item._id" 4665 ng-if="item.type !== 'gift'" 4666 class="cart-item-container" 4667 data-cart-item-id="{{ item._id }}" 4668 product-id="{{ item.product_id }}" 4669 > 4670 <!-- Item --> 4671 <div class="cart-item"> 4672 <a ng-if="item.product.type !== 'gift'" ng-href="/products/{{item.product_id}}" target="_blank" class="product-link js-product-link"> 4673 <img 4674 class="sl-lazy-image cart-item-image" 4675 ng-src="{{ getImgSrc(item, '200x200f') }}" 4676 alt="{{ (item.variation.media ? item.variation.media.alt_translations : item.product.cover_media.alt_translations) | translateModel }}" 4677 /> 4678 </a> 4679 <img 4680 class="sl-lazy-image cart-item-image" 4681 ng-if="item.product.type === 'gift'" 4682 ng-src="{{ getImgSrc(item, '200x200f') }}" 4683 alt="{{ (item.variation.media 4684 ? item.variation.media.alt_translations 4685 : item.product.cover_media.alt_translations) | translateModel 4686 }}" 4687 /> 4688 <div class="cart-item-content" style="float:left;width:130px;"> 4689 <div class="wrap--bundle-title-variation"> 4690 <div 4691 ng-show="['bundle_pricing', 'bundle_percentage', 'bundle_amount', 'bundle_gift'].includes(item.applied_promotion.discount_type)" 4692 class="label promotion-label label-default" 4693 > 4694 {{ 'product.bundled_products.label' | translate }} 4695 </div> 4696 <div 4697 ng-show="['bundle_group', 'bundle_group_percentage', 'bundle_group_amount', 'bundle_group_gift'].includes(item.applied_promotion.discount_type)" 4698 class="label promotion-label label-default" 4699 > 4700 {{ 'product.bundle_group_products.label' | translate }} 4701 </div> 4702 <div 4703 ng-show="['buyandget_free', 'buyandget_percentage', 'buyandget_pricing'].includes(item.applied_promotion.discount_type)" 4704 class="label promotion-label label-default" 4705 > 4706 {{ 'product.buyandget.label' | translate }} 4707 </div> 4708 <div 4709 ng-show="item.type === 'redeem_gift' || item.type === 'manual_gift'" 4710 class="label promotion-label label-default" 4711 > 4712 {{ 'product.gift.label' | translate }} 4713 </div> 4714 <div ng-show="item.type == 'addon_product'" class="label promotion-label label-default">{{ 'product.addon_products.label' | translate }}</div> 4715 <div class="title">{{item.product.title_translations|translateModel}}</div> 4716 <div ng-repeat="field in item.variation.fields track by $index" class="item-variation"> 4717 <div ng-class="$index === 0 ? 'variation' : 'variation space-variation'">{{ field.name_translations | translateModel }}</div> 4718 </div> 4719 <ul ng-if="isProductSetEnabled && item.product.type === 'product_set' && item.product.child_products" class="product-set-item-list"> 4720 <li class="child-product-item" ng-repeat="childProduct in item.product.child_products track by childProduct._id"> 4721 <p class="child-product-title">{{ childProduct.title_translations | translateModel }}</p> 4722 <p class="child-variation-title" ng-if="childProduct.child_variation">{{ getChildVariationShorthand(childProduct.child_variation) }}</p> 4723 </li> 4724 </ul>
4725 <span 4726 class="variation-open-button" 4727 ng-if="!state.variationOpenedChildren.has(item._id) && item.product.type === 'product_set'" 4728 ng-click="onClickOpenVariation(item._id)" 4729 > 4730 {{ 'product.set.open_variation' | translate }} 4731 <i class="fa fa-angle-down"></i> 4732 </span> 4733 <ul ng-if="isProductSetRevampEnabled && item.product.type === 'product_set' && item.product.child_products && state.variationOpenedChildren.has(item._id)" class="product-set-item-list"> 4734 <li 4735 class="child-product-item" 4736 ng-repeat="selectedChildProduct in item.item_data.selected_child_products track by (selectedChildProduct.child_product_id + selectedChildProduct.child_variation_id)" 4737 > 4738 <p class="child-product-title"> 4739 {{ getSelectedItemDetail(selectedChildProduct, item).childProductName }} 4740 x {{ selectedChildProduct.quantity || 1 }} 4741 </p> 4742 <p class="child-variation-title" ng-if="selectedChildProduct.child_variation_id"> 4743 {{ getSelectedItemDetail(selectedChildProduct, item).childVariationName }} 4744 </p> 4745 </li> 4746 </ul> 4747 <div ng-if="checkJoinVariantsEnabled()" class="joined-variants" ng-bind-html="joinVariants(item)"></div> 4748 <div class="variation" ng-hide="item.variation.fields">{{item.variation.name}}</div> 4749 </div> 4750 <div class="price-details"> 4751 {{item.quantity}}<span style="margin:0 3px;">x</span> 4752 <span 4753 ng-if="currentCart.getItemPrice(item).label !== '' && item.type !== 'redeem_gift' && item.type !== 'manual_gift'" 4754 ng-bind-html="currentCart.getItemPrice(item).label | changeCurrency" 4755 ></span> 4756 <span 4757 ng-if="item.type === 'manual_gift' || (currentCart.getItemPrice(item).label === '' && item.type !== 'redeem_gift')" 4758 ng-bind-html="'NT$0' | changeCurrency" 4759 ></span> 4760 <span ng-if="item.type === 'redeem_gift'"> 4761 {{ item.unit_point }} Point 4762 </span> 4763 </div> 4764 </div> 4765 <!--cart-item-content--> 4766 <div class="remove" ng-if="shouldShowDeleteButton"> 4767 <a ng-click="removeItemFromCart(item._id,$event)"> 4768 <span>Remove</span> 4769 <svg class="icons icon-delete"> 4770 <use xlink:href="#icon-delete"></use> 4771 </svg> 4772 </a> 4773 </div> 4774 <div class="clear"></div> 4775 </div> 4776 <!-- Item end--> 4777 <!-- Addon items --> 4778 <div 4779 class="addon-cart-item cart-item" 4780 ng-repeat="addonItem in item.addon_items track by addonItem._id" 4781 ng-init="addonItemPrice = addonItem.price ? (addonItem.quantity * addonItem.price.cents / mainConfig.merchantData.base_currency.subunit_to_unit) : ''" 4782 data-cart-item-id="{{ addonItem._id }}" 4783 > 4784 <span class="product-link js-product-link"> 4785 <img 4786 class="cart-item-image" 4787 ng-src="{{ getImgSrc(addonItem, '200x200f') }}" 4788 alt="{{addonItem.product.cover_media.alt_translations | translateModel}}" 4789 /> 4790 </span> 4791 <div class="cart-item-content" style="float:left;width:130px;"> 4792 <div class="wrap--bundle-title-variation"> 4793 <div class="label promotion-label label-default">{{ 'product.addon_products.label' | translate }}</div> 4794 <div class="title">{{addonItem.product.title_translations|translateModel}}</div> 4795 </div> 4796 <div class="price-details"> 4797 {{addonItem.quantity}}<span style="margin:0 3px;">x</span> 4798 <span ng-show="addonItem.price.label" ng-bind-html="addonItem.price.label | changeCurrency"></span> 4799 <span ng-hide="addonItem.price.label">{{ mainConfig.merchantData.base_currency.alternate_symbol + "0" }}</span> 4800 </div> 4801 </div> 4802 <div class="remove" ng-if="shouldShowDeleteButton"> 4803 <a ng-click="removeItemFromCart(addonItem._id,$event)">
4804 <span>Remove</span> 4805 <svg class="icons icon-delete"> 4806 <use xlink:href="#icon-delete"></use> 4807 </svg> 4808 </a> 4809 </div> 4810 <div class="clear"></div> 4811 </div> 4812 <!-- Addon items end --> 4813 </div> 4814 <div data-e2e-id="cart-sidebar-related-products_container" class="cart-related-products" ng-if="isSmartProductRecommendationPlusCartEnabled && getCartProductIds()"> 4815 <div class="cart-related-products-title">{{ 'cart.related_products.title' | translate }}</div> 4816 <cart-lazyload-related-products ng-attr-data-product-ids="{{ getCartProductIds() }}"> 4817 <div class="cart-related-products-loading"> 4818 <div class="cart-related-products-loading-image loading-placeholder"></div> 4819 <div class="cart-related-products-loading-content"> 4820 <div class="cart-related-products-loading-title loading-placeholder"></div> 4821 <div class="cart-related-products-loading-price-details loading-placeholder"></div> 4822 </div> 4823 </div> 4824 <div class="cart-related-products-list"></div> 4825 </cart-lazyload-related-products> 4826 </div> 4827 <div class="clear"></div> 4828 </div> 4829 <!-- CartItems end --> 4830 4831 <div class="clear"></div> 4832 <!-- Checkout button --> 4833 <div class="cart-chkt-btn-cont"> 4834 4835 <button 4836 id="btn-checkout" 4837 data-e2e-id="checkout_button" 4838 class="cart-chkt-btn ladda-button" 4839 data-style="slide-down" 4840 ladda="checkoutButtonLoading" 4841 ng-click="onCheckoutClicked($event)" 4842 > 4843 {{ 'cart.checkout' | translate }} 4844 </button> 4845 </div> 4846 <!-- Checkout button end --> 4847</div> 4848 4849 </div> 4850 </div> 4851</div> 4852 4853 <div id="LanguagePanel" class="MenuPanel nav-bg-color" data-nosnippet> 4854 <div class="MenuPanel-section"> 4855 <div class="MenuPanel-section-header sl-language-menu-close"> 4856 <span class="fa fa-chevron-left"></span> 4857 Language 4858 </div> 4859 <ul class="sl-language-chooser"> 4860 4861 <li class="List-item"> 4862 <a class="Label sl-language-chooser-language" href="#en">English</a> 4863 </li> 4864 4865 <li class="List-item"> 4866 <a class="Label sl-language-chooser-language" href="#zh-hant">ç¹é«ä¸æ</a> 4867 </li> 4868 4869 </ul> 4870 </div> 4871</div> 4872 4873 4874 <div id="CurrencyPanel" class="MenuPanel nav-bg-color" data-nosnippet> 4875 <div class="MenuPanel-section"> 4876 <div class="MenuPanel-section-header sl-currency-menu-close"> 4877 <span class="fa fa-chevron-left"></span> 4878 Currency 4879 </div> 4880 <ul class="sl-currency-chooser" id="menu-others-currency"> 4881 4882 <li class="List-item"> 4883 <a class="Label sl-currency-chooser-currency" href="#hkd">$ HKD</a> 4884 </li> 4885 4886 <li class="List-item"> 4887 <a class="Label sl-currency-chooser-currency" href="#mop">P MOP</a> 4888 </li> 4889 4890 <li class="List-item"> 4891 <a class="Label sl-currency-chooser-currency" href="#cny">Â¥ CNY</a> 4892 </li> 4893 4894 <li class="List-item"> 4895 <a class="Label sl-currency-chooser-currency" href="#twd">$ TWD</a> 4896 </li> 4897 4898 <li class="List-item"> 4899 <a class="Label sl-currency-chooser-currency" href="#usd">$ USD</a> 4900 </li> 4901 4902 <li class="List-item"> 4903 <a class="Label sl-currency-chooser-currency" href="#sgd">$ SGD</a> 4904 </li> 4905 4906 <li class="List-item"> 4907 <a class="Label sl-currency-chooser-currency" href="#eur">⬠EUR</a> 4908 </li> 4909 4910 <li class="List-item"> 4911 <a class="Label sl-currency-chooser-currency" href="#aud">$ AUD</a> 4912 </li> 4913 4914 <li class="List-item"> 4915 <a class="Label sl-currency-chooser-currency" href="#gbp">£ GBP</a> 4916 </li> 4917 4918 <li class="List-item"> 4919 <a class="Label sl-currency-chooser-currency" href="#php">â± PHP</a> 4920 </li> 4921 4922 <li class="List-item"> 4923 <a class="Label sl-currency-chooser-currency" href="#myr">RM MYR</a> 4924 </li> 4925 4926 <li class="List-item"> 4927 <a class="Label sl-currency-chooser-currency" href="#thb">฿ THB</a> 4928 </li> 4929 4930 <li class="List-item"> 4931 <a class="Label sl-currency-chooser-currency" href="#aed">د.Ø¥ AED</a> 4932 </li> 4933 4934 <li class="List-item"> 4935 <a class="Label sl-currency-chooser-currency" href="#jpy">Â¥ JPY</a> 4936 </li> 4937 4938 <li class="List-item"> 4939 <a class="Label sl-currency-chooser-currency" href="#bnd">$ BND</a> 4940 </li> 4941 4942 <li class="List-item"> 4943 <a class="Label sl-currency-chooser-currency" href="#krw">â© KRW</a> 4944 </li> 4945 4946 <li class="List-item"> 4947 <a class="Label sl-currency-chooser-currency" href="#idr">Rp IDR</a> 4948 </li> 4949 4950 <li class="List-item"> 4951 <a class="Label sl-currency-chooser-currency" href="#vnd">â« VND</a> 4952 </li> 4953 4954 <li class="List-item"> 4955 <a class="Label sl-currency-chooser-currency" href="#cad">$ CAD</a> 4956 </li> 4957 4958 </ul> 4959 </div> 4960</div> 4961 4962 4963 4964 4965 4966
4967 <div id="Content" class="js-content"> 4968 <div class="container ProductDetail-container" data-e2e-id="product-detail_container" ng-controller="ProductsShowController"> 4969 <div class="ProductDetail-wrapper"> 4970 <!-- Breadcrumb --> 4971 <div class="ProductDetail-breadcrumb" id="ProductDetail-breadcrumb"> 4972 <div class="block-inner"> 4973 <a class="Label" href="/products">View All</a> 4974 4975 4976 / <a class="Label" href="/categories/fragrances">馿°´é¦ç²¾</a> 4977 4978 / <a class="Label" href="/categories/perfume-gift-sets">馿°´ç¦®ç</a> 4979 4980 4981 </div> 4982 </div> 4983 <!-- END Breadcrumb --> 4984 4985 <div ng-show="false"> 4986 <div class="ProductDetail-product ProductDetail-loading-data clearfix"> 4987 <div class="ProductDetail-product-gallery clearfix"> 4988 <div> 4989 <span class="loading-placeholder pull-left"></span> 4990 <span class="loading-placeholder pull-left"></span> 4991 <span class="loading-placeholder pull-left"></span> 4992 </div> 4993 <span class="loading-placeholder"></span> 4994 </div> 4995 <div class="ProductDetail-product-info"> 4996 <div class="box-default"> 4997 <div class="Product-title">ãMargot&amp;TitaãAdvent Calendar 2026 - Limited quantity</div> 4998 <div> 4999 <div class="loading-line"> 5000 <span class="loading-placeholder"></span> 5001 <span class="loading-placeholder"></span> 5002 </div> 5003 <div class="loading-line"> 5004 <span class="loading-placeholder"></span> 5005 <span class="loading-placeholder"></span> 5006 </div> 5007 </div> 5008 </div> 5009 </div> 5010 </div> 5011 </div> 5012 <div ng-cloak> 5013 <div class="ProductDetail-product js-product-detail clearfix" sl-component="product-info"> 5014 <div class="ProductDetail-product-gallery js-product-gallery"> 5015 <product-variant-gallery enable-popup-slide="true" entry-point="pdp_product_photo" item-size="100" item-margin="10" enable-show-all-image="true" enable-zoom-in="true"></product-variant-gallery> 5016 <div class="prod-mobile js-prod-mobile"></div> 5017 </div> 5018 5019 <div class="ProductDetail-product-info js-product-info"> 5020 <div class="box-default"> 5021 <h1 class="Product-title">ãMargot&TitaãAdvent Calendar 2026 - Limited quantity</h1> 5022 5023 5024 <p class="Product-summary Product-summary-block">ã»French Eau de Parfum made in Grasse<br/>ã»Long-lasting fragrance<br/>ã»Layerable with our other fragrances<br/>ã»15 ml format to take anywhere<br/>ã»+90% naturally-derived ingredients</p> 5025 <hr/> 5026 5027 5028 <product-available-info></product-available-info> 5029 5030 <div class='product-sale-sold-count text-cap' ng-if="showSoldCount()"> 5031 <svg class="product-sale-sold-count-icon"><use xlink:href="#icon-sale-sold-count"></use></svg> 5032 <span ng-bind-html="getSoldCountText()"></span> 5033 </div> 5034 5035 5036 <div class="promotion-wrap"> 5037 <input class="Util-cssToggle" type="checkbox" name="Promotion-tags-toggle" id="Promotion-tags-toggle" /> 5038 <div class="Product-promotions"> 5039 5040 <p class="Product-promotions-tag"> 5041 <span>Until <span local-datetime>2026-10-30T16:00:00.000+00:00</span></span> Anniversary: Free Gift with Purchase on order 5042 </p> 5043 5044 <p class="Product-promotions-tag"> 5045 Free shipping on purchases over $2,000 on order 5046 </p> 5047 5048 </div> 5049 5050 </div> 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 <div class="not-same-price"> 5083 <div class="global-primary dark-primary price-regular price js-price price-crossed">NT$16,560</div> 5084 5085 <div class="price-sale price js-price">NT$8,900</div> 5086 5087 5088 </div> 5089 5090 5091 5092<div class='product-review-summary-container'> 5093 <div class='product-review-box' ng-if="ratingSource == 'shopline' && shoplineProductReview"> 5094 <span 5095 class="review-summary-info-stars" 5096 review-stars 5097 score="shoplineProductReview.avg_score" 5098 total-score="5" 5099 > 5100 </span> 5101 <span class='review-summary-data'> 5102 <span>{{shoplineProductReview.avg_score}}</span>(<a ng-click="scrollToProductReviews()"> 5103 {{shoplineProductReview.total}} {{'product.product_review.reviews' | translate}} 5104 </a>) 5105 </span> 5106</div> 5107 5108<div class='product-review-box' ng-if="ratingSource == 'amazon' && amazonProductReview"> 5109 <span 5110 class="review-summary-info-stars" 5111 review-stars 5112 score="amazonProductReview.avg_rating" 5113 total-score="5" 5114 > 5115 </span> 5116 <span class='review-summary-data'> 5117 <span>{{amazonProductReview.avg_rating}}</span>(<a ng-click="scrollToProductReviews()"> 5118 {{amazonProductReview.total_comment_count}} {{'product.product_review.reviews' | translate}} 5119 </a>) 5120 </span> 5121</div> 5122 5123</div> 5124 5125 5126 5127 5128 5129 <div ng-show="showPreorderLabel()" class="label label-default checkout-label txt-preorder"><span>Pre-order item. Shipping begins in late October.</span></div> 5130 5131 5132 5133<!-- variations --> 5134 5135 <!-- Product Set --> 5136 5137 <!-- End of Product Set --> 5138 5139 <!-- Product Set Revamp --> 5140 5141 <!-- End of Product Set Revamp --> 5142
5143 <!-- No Variation && Add to Cart --> 5144 <div ng-show="state.checkoutReady && hasStock && state.productSetCheckoutReady" class="product-variation-dropdown no-variation" product-variation-dropdown emit-event="pdp-variation-change"> 5145 <div class="action-title global-secondary"> 5146 <span class="variation_title" ng-if="!productSetService.isProductSetRevampEnabled(product)">Quantity</span> 5147 <span class="variation_title" ng-if="productSetService.isProductSetRevampEnabled(product)">Product set quantity</span> 5148 </div> 5149 <div class="quantity" > 5150 5151 <!-- Quantity as Inputbox --> 5152 <div class="form-inline form-quantity" style="display:inline-block;margin-bottom:10px" ng-show="state.checkoutReady" ng-class="state.checkoutReady ? 'form-block' : null"><div class="input-group"> 5153 <span class="input-group-btn"><button type="button" class="btn btn-default btn-checkout" ng-click="decQuantity()"><i class="fa fa-minus"></i></button></span> 5154 <input dynamic-name="product_variation_$index" 5155 class="form-control form-control-xs form-control-inline" 5156 type="text" 5157 ng-model="addItemQuantity" 5158 ng-change="addItemQuantityInputChange()" 5159 maxlength="5"/> 5160 <span class="input-group-btn"><button type="button" class="btn btn-default btn-checkout" ng-click="incQuantity()"><i class="fa fa-plus"></i></button></span> 5161 </div> 5162 </div> 5163 <!-- Addon Item --> 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 <!-- Addon Item End --> 5190 <div class="product-detail-button-container has-buy-now-button"> 5191 5192 5193 5194 <button id="btn-add-to-cart" 5195 data-e2e-id="add-to-cart_button" 5196 ng-show="!state.addonItemEnabled" 5197 class="btn btn-custom btn-purchase-action ladda-button js-btn-main-add-to-cart js-btn-show btn-color-primary" 5198 data-style="slide-down" 5199 ladda="loading" 5200 ng-disabled="addItemQuantity == '' || addItemQuantity == 0 || addItemQuantity < 0 || addItemQuantity > 99999" 5201 ng-click="addItemToCart()" 5202 ui-scrollfix 5203 ui-scrollfix-sizing-element="#btn-add-to-car" 5204 ui-scrollfix-container-element=".js-sticky-cart-button-container" 5205 > 5206 <span class="fa fa-shopping-cart"></span> 5207 <span class="ladda-label" ng-bind="getAddToCartButtonText(true, '')"></span> 5208 </button> 5209 5210 5211 <button 5212 class="btn btn-buy-now btn-purchase-action btn-custom ladda-button form-control-inline js-btn-main-buy-now js-btn-show js-btn-scroll" 5213 ng-click="addItemToCart($event,true)" 5214 ng-show=" 5215 !state.addonItemEnabled && !addItemQuantity == '' || addItemQuantity == 0 || addItemQuantity < 0 || addItemQuantity > 99999 5216 " 5217 ladda="loading" 5218 data-style="slide-down" 5219 5220 id="#btn-buy-now" 5221 ui-scrollfix 5222 ui-scrollfix-sizing-element="#btn-buy-now" 5223 ui-scrollfix-container-element=".js-sticky-cart-button-container" 5224 5225> 5226 <div class="btn-buy-now-content"> 5227 <svg class="buy-now-icon"><use xlink:href="#icon-bag"></use></svg> 5228 5229 <span class="buy-now-text" ng-bind="'product.buy_now' | translate"></span> 5230 5231 </div> 5232</button> 5233 5234 5235 5236 </div> 5237 5238 <div class="amazon-wishlist-block-align" ng-class="{'hidden': state.addonItemEnabled}"> 5239 <div class="amazon-wishlist-block no-amazon-btn"> 5240 <div class="buy-at-amazon-button"> 5241 5242 </div> 5243 <div> 5244 5245 <div ng-controller="ProductWishlistController"> 5246 <div class="Back-in-stock-addItem-block"> 5247 <back-in-stock-button 5248 product="product" 5249 wishlist-item="wishlistItem" 5250 is-item-in-back-in-stock="isItemInBackInStock" 5251 ng-if="shouldShowBackInStockBtn() && !state.addonItemEnabled&&state.checkoutReady&&hasStock" 5252 > 5253 <button 5254 ng-click="toggleBackInStock()" 5255 class="btn-add-back-in-stock btn-color-primary btn btn-custom js-btn-back-in-stock" 5256 ng-class="{ 'is-active': isItemInBackInStock }" 5257 > 5258 <div id="back-in-stock-content"> 5259 <div class="font-style" ng-if="isItemInBackInStock">In Stock Notification On</div> 5260 <div class="font-style" ng-if="!isItemInBackInStock">Notify When in Stock</div> 5261 </div> 5262 </button> 5263 5264 <div class="Tooltip-backInStockTooltip"> 5265 <div class="Tooltip-backInStockTooltip-content"> 5266 <a href='/users/sign_in'>Sign in/up now</a> 5267 </div> 5268 </div> 5269 5270 </back-in-stock-button> 5271 </div> 5272 <div class="Wishlist-addItem-block " 5273 ng-if="!state.addonItemEnabled&&state.checkoutReady&&hasStock" 5274 > 5275 <sl-wishlist-button 5276 get-target-wishlist-item="getTargetWishlistItem()" 5277 product="product" 5278 variation-selected="variationSelected" 5279 selected-product-set-data="selectedProductSetData" 5280 wishlist-item="wishlistItem" 5281 is-item-in-wishlist="isItemInWishlist" 5282 class="btn-add-wishlist" 5283 ng-class="{ 'is-active': isItemInWishlist }" 5284 ng-click = "toggleWishlistItem()" 5285 > 5286 <i class="fa fa-heart-o"></i> 5287 <i class="fa fa-heart"></i> 5288 <svg class="icons icon-heart-v2"> 5289 <use xlink:href="#icon-heart-v2"></use> 5290 </svg>
5291 <span>Add to Wishlist</span> 5292 5293 <div class="Tooltip-wishlistTooltip"> 5294 <div class="Tooltip-wishlistTooltip-content"> 5295 <a ng-click="toLoginPage($event, '/users/sign_in')"> 5296 Sign in/up now 5297 </a> 5298 </div> 5299 </div> 5300 5301 </sl-wishlist-button> 5302 </div> 5303 </div> 5304 5305 5306 </div> 5307 </div> 5308 </div> 5309 </div> 5310 </div> 5311 <!-- end of No Variation && Add to Cart --> 5312 5313 5314<!-- Warning: too much quantity --> 5315<div class="txt-notify" ng-show="addItemQuantity > 99999"> 5316 <div class="out-of-stock">products.quantity_limit99999</div> 5317</div> 5318 5319<!-- Warning: not valid quantity --> 5320<div class="txt-notify" ng-show="invalidQuantity"> 5321 <div class="out-of-stock">This quantity is invalid, please enter a valid quantity.</div> 5322</div> 5323 5324<!-- Out of Stock --> 5325<div class="txt-notify" ng-show="showOutOfStockHint()"> 5326 <div class="out-of-stock txt-sold-out">Sold Out</div> 5327</div> 5328 5329<!-- cannot add to cart --> 5330<div class="txt-notify js-popup-not-enough-stock" ng-switch="orderQuantityStatus" ng-show="hasStock && !isOutOfStockOrderable()"> 5331 <span ng-switch-when="out_of_stock"> 5332 <div class="out-of-stock"> 5333 <p class="reset-bottom-to-zero">Not enough stock. 5334Your item was not added to your cart. 5335</p> 5336 </div> 5337 </span> 5338 <span ng-switch-when="low_stock"> 5339 <div class="out-of-stock"> 5340 <p class="reset-bottom-to-zero">Not enough stock. 5341Please adjust your quantity. 5342</p> 5343 </div> 5344 </span> 5345 <span ng-switch-when="out_of_orderable_quantity"> 5346 <div class="out-of-stock"> 5347 <p class="reset-bottom-to-zero">{{'products.quick_cart.out_of_number_hint'| translate}}</p> 5348 </div> 5349 </span> 5350 <span ng-switch-when="includes_preorder"> 5351 <div class="out-of-stock"> 5352 <p class="reset-bottom-to-zero">{{'product.preorder_limit.hint'| translate}}</p> 5353 </div> 5354 </span> 5355</div> 5356<span class="txt-notify js-popup-purchase-limit" ng-if="reachedPurchaseLimit"> 5357 <div class="out-of-stock"> 5358 <p class="reset-bottom-to-zero">Limit -1 per order.</p> 5359 </div> 5360</span> 5361<div class="out-of-stock txt-notify js-popup-item-left" ng-if="showStockQuantityHint()"> 5362 <p class="with-addon">{{'products.quick_cart.quantity_of_stock_hint'| translate : {message: quantityOfStock} }}</p> 5363</div> 5364 5365<div ng-if="!(state.checkoutReady && hasStock && state.productSetCheckoutReady)"> 5366 <div ng-if="productStockInitializedChecked && shouldShowMessageMeBtn()" class="wrap-message-btn"> 5367 <div class="messagetobuy dark-secondary">Please message the shop owner for order details.</div> 5368 <button 5369 class="btn btn-custom btn-color-primary js-btn-contact-us" ng-click="showMessageForm()"> 5370 MESSAGE 5371 </button> 5372 </div> 5373 <div class="detail-product-wishlist"> 5374 5375 <div ng-controller="ProductWishlistController"> 5376 <div class="Back-in-stock-addItem-block"> 5377 <back-in-stock-button 5378 product="product" 5379 wishlist-item="wishlistItem" 5380 is-item-in-back-in-stock="isItemInBackInStock" 5381 ng-if="shouldShowBackInStockBtn() && !(state.checkoutReady&&hasStock)&&state.productSetCheckoutReady" 5382 > 5383 <button 5384 ng-click="toggleBackInStock()" 5385 class="btn-add-back-in-stock btn-color-primary btn btn-custom js-btn-back-in-stock" 5386 ng-class="{ 'is-active': isItemInBackInStock }" 5387 > 5388 <div id="back-in-stock-content"> 5389 <div class="font-style" ng-if="isItemInBackInStock">In Stock Notification On</div> 5390 <div class="font-style" ng-if="!isItemInBackInStock">Notify When in Stock</div> 5391 </div> 5392 </button> 5393 5394 <div class="Tooltip-backInStockTooltip"> 5395 <div class="Tooltip-backInStockTooltip-content"> 5396 <a href='/users/sign_in'>Sign in/up now</a> 5397 </div> 5398 </div> 5399 5400 </back-in-stock-button> 5401 </div> 5402 <div class="Wishlist-addItem-block " 5403 ng-if="!(state.checkoutReady&&hasStock)&&state.productSetCheckoutReady" 5404 > 5405 <sl-wishlist-button 5406 get-target-wishlist-item="getTargetWishlistItem()" 5407 product="product" 5408 variation-selected="variationSelected" 5409 selected-product-set-data="selectedProductSetData" 5410 wishlist-item="wishlistItem" 5411 is-item-in-wishlist="isItemInWishlist" 5412 class="btn-add-wishlist" 5413 ng-class="{ 'is-active': isItemInWishlist }" 5414 ng-click = "toggleWishlistItem()" 5415 > 5416 <i class="fa fa-heart-o"></i> 5417 <i class="fa fa-heart"></i> 5418 <svg class="icons icon-heart-v2"> 5419 <use xlink:href="#icon-heart-v2"></use> 5420 </svg>
5421 <span>Add to Wishlist</span> 5422 5423 <div class="Tooltip-wishlistTooltip"> 5424 <div class="Tooltip-wishlistTooltip-content"> 5425 <a ng-click="toLoginPage($event, '/users/sign_in')"> 5426 Sign in/up now 5427 </a> 5428 </div> 5429 </div> 5430 5431 </sl-wishlist-button> 5432 </div> 5433 </div> 5434 5435 5436 </div> 5437</div> 5438<!--cart actions--> 5439 5440 </div> 5441 5442 5443 5444 <div class="ProductDetail-additionalInfo accordion-box"> 5445 <div class="ProductDetail-description accordion-item active"> 5446 <div class="ProductDetail-description-title accordion-title js-accordion-title" data-tab-name="description"><span>Description</span></div> 5447 <div class="ProductDetail-description-content accordion-content"> 5448 5449 5450 5451 <!-- START SHOPLINE RICH CONTENT --> 5452 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 5453<html><body> 5454<span style="font-size: medium;">More than just a calendar, the 2026 edition reveals a true olfactory wardrobe: a collection of fragrances to discover, wear, and combine according to your desires, your mood, and every occasion. 24 bottles of 15ml, totaling 360ml of scented surprises, to reinvent your scent day after day.</span><div><span style="font-size: medium;"><br></span></div> 5455<div> 5456<div><span style="font-size: medium;">Behind the 24 doors, a generous olfactory palette is revealed, where floral, musky, woody, solar, and gourmand scents meet. Bright and delicate fragrances stand alongside more enveloping, sensual, or comforting trails, allowing you to change your perfume as naturally as you change your outfit.</span></div> 5457<div><span style="font-size: medium;"><br></span></div> 5458</div> 5459<div><span style="font-size: medium;"><br></span></div> 5460<div> 5461<div><span style="font-size: medium; font-weight: bold;">Eau de parfum</span></div> 5462<div><span style="font-size: medium;"><br></span></div> 5463<div><span style="font-size: medium; font-weight: bold;">Au bout de la nuit â 15 ml</span></div> 5464<div> 5465<div><span style="font-size: medium;">TOP ⢠Ylang-ylang, Lemon, Plum, Mandarin, Bergamot</span></div> 5466<div><span style="font-size: medium;">HEART ⢠Jasmine, Rose, Geranium, White flowers</span></div> 5467<div><span style="font-size: medium;">BASE ⢠Sandalwood, Musk, Patchouli</span></div> 5468</div> 5469<div><span style="font-size: medium;"><br></span></div> 5470<div><span style="font-size: medium; font-weight: bold;">Ãa baigne pour moi â 15 ml</span></div> 5471<div> 5472<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">AQUATIC EAU DE PARFUM</span></p> 5473<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">TOP ⢠Lemon, Bergamot, Aromatic notes</span></p> 5474<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">HEART ⢠Marine notes, Apple, Tobacco, Sandalwood</span></p> 5475<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">BASE ⢠Musk, Amber, Oakmoss</span></p> 5476</div> 5477<div><span style="font-size: medium;"><br></span></div> 5478<div><span style="font-size: medium; font-weight: bold;">Jeu dangereux â 15 ml</span></div> 5479<div> 5480<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">WOODY EAU DE PARFUM</span></p> 5481<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">TOP ⢠Cardamom, Bergamot, Lemon</span></p> 5482<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">HEART ⢠Cedar, Cashmere wood, Honey notes</span></p> 5483<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">BASE ⢠Vetiver, Vanilla, Sandalwood, Musk</span></p> 5484</div> 5485<div><span style="font-size: medium;"><br></span></div> 5486<div><span style="font-size: medium; font-weight: bold;">La femme parfaite â 15 ml</span></div> 5487<div> 5488<div><span style="font-size: medium;">FLORAL EAU DE PARFUM </span></div> 5489<div><span style="font-size: medium;">TOP ⢠Lychee, Pink berries, Orange, Blackcurrant</span></div> 5490<div><span style="font-size: medium;">HEART ⢠Peach, Lily of the Valley, Rose, Violet</span></div> 5491<div><span style="font-size: medium;">BASE ⢠Vanilla, Musk, Patchouli, Raspberry, Woody</span></div> 5492</div> 5493<div><span style="font-size: medium;"><br></span></div> 5494<div><span style="font-size: medium; font-weight: bold;">L'amour est dans l'air â 15 ml</span></div> 5495<div> 5496<div><span style="font-size: medium;">FLORAL EAU DE PARFUM </span></div> 5497<div><span style="font-size: medium;">TOP ⢠Blackberry, Apple, Bergamot, Jasmine</span></div> 5498<div><span style="font-size: medium;">HEART ⢠Orange blossom, Peony, Lily of the valley</span></div> 5499<div><span style="font-size: medium;">BASE ⢠Sandalwood, Patchouli, Musky, Vanilla</span></div> 5500</div> 5501<div><span style="font-size: medium;"><br></span></div> 5502<div><span style="font-size: medium; font-weight: bold;">Les secrets de Margot â 15 ml</span></div> 5503<div> 5504<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">FLORAL EAU DE PARFUM</span><br></p> 5505<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">TOP ⢠Pear, Bergamot</span></p> 5506<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">HEART ⢠Rose, Jasmine, Morning Dew</span></p> 5507<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">
5507BASE ⢠Vanilla, White peach, Blond wood</span></p> 5508</div> 5509<div><span style="font-size: medium;"><br></span></div> 5510<div><span style="font-size: medium; font-weight: bold;">Minuit dans tes bras â 15 ml</span></div> 5511<div> 5512<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">FLORAL EAU DE PARFUM</span><br></p> 5513<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">TOP ⢠Pink Pepper, Peach</span></p> 5514<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">HEART ⢠Jasmine, Sandalwood, Milky notes</span></p> 5515<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">BASE ⢠Amber, Benzoin, Vanilla, Musks</span></p> 5516</div> 5517<div><span style="font-size: medium;"><br></span></div> 5518<div><span style="font-size: medium; font-weight: bold;">Nous les femmes â 15 ml</span></div> 5519<div> 5520<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">FRUITY</span><span style="font-size: medium;"> EAU DE PARFUM</span></p> 5521<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">TOP ⢠Blackcurrant, Candy apple, Passion fruit</span></p> 5522<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">HEART ⢠Raspberry, Rose, Jasmine</span></p> 5523<p class="MsoNormal" style="margin: 0cm;"><span style="font-size: medium;">BASE ⢠Musk, Sandalwood, Vanilla</span></p> 5524</div> 5525<div><span style="font-size: medium;"><br></span></div> 5526<div><span style="font-size: medium; font-weight: bold;">Nuit féerique â 15 ml</span></div> 5527<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, CITRUS AURANTIUM BERGAMIA FRUIT OIL, LIMONENE, LINALYL ACETATE, PINENE, VANILLIN, LINALOOL, ROSE KETONES, HEXAMETHYLINDANOPYRAN, MYROXYLON PEREIRAE OIL/EXTRACT, BETA-CARYOPHYLLENE, BENZYL BENZOATE, TERPINOLENE, CITRAL, BENZYL CINNAMATE, CITRONELLOL, JUNIPERUS VIRGINIANA OIL, CEDRUS ATLANTICA OIL/EXTRACT.</span></div> 5528<div><span style="font-size: medium;"><br></span></div> 5529<div><span style="font-size: medium;">Rêve musqué â 15 ml</span></div> 5530<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), JUNIPERUS VIRGINIA OIL, AMYL SALICYLATE, LINALOOL, ROSE KETONES, HEXADECANOLACTONE, LINALYL ACETATE, HYDROXYCITRONELLAL, TRIMETHYLBENZENEPROPANOL, CINNAMYL ALCOHOL, BENZALDEHYDE, ISOEUGENOL, ALPHA-ISOMETHYL IONONE.</span></div> 5531<div><span style="font-size: medium;"><br></span></div> 5532<div><span style="font-size: medium;">Sous les étoiles â 15 ml</span></div> 5533<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), HEXAMETHYLINDANOPYRAN, LINALYL ACETATE, LINALOOL, CITRUS AURANTIUM BERGAMIA FRUIT OIL, LIMONENE, ALPHA-ISOMETHYL IONONE, VANILLIN, POGOSTEMON CABLIN OIL, COUMARIN, GERANYL ACETATE, PINENE, BENZALDEHYDE, CITRONELLOL, ROSE KETONE, BETA-CARYOPHYLLENE, ANISE ALCOHOL, TRIMETHYLCYCLOPENTENYL METHYLISOPENTENOL.</span></div> 5534<div><span style="font-size: medium;"><br></span></div> 5535<div><span style="font-size: medium;">Sous un soleil doré â 15 ml</span></div> 5536<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, LINALOOL, LINALYL ACETATE, LIMONENE, HEXAMETHYLINDANOPYRAN, CITRUS AURANTIUM BERGAMIA PEEL OIL, CITRUS LIMON OIL/EXTRACT, POGOSTEMON CABLIN OIL, PINENE, COUMARIN, CITRONELLOL, ALPHA-ISOMETHYL IONONE, BETA-CARYOPHYLLENE, EUGENOL, ROSE KETONE, CITRAL, GERANYL ACETATE, TERPINOLENE, HEXYL CINNAMAL, ALPHA-TERPINENE, ACETYL CEDRENE, CITRUS AURANTIUM FLOWER OIL, TERPINEOL, GERANIOL, VANILLIN.</span></div> 5537<div><span style="font-size: medium;"><br></span></div> 5538<div><span style="font-size: medium;">Tombé du ciel â 15 ml</span></div> 5539<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), VANILLIN, HEXAMETHYLINDANOPYRAN, HEXYL CINNAMAL, LINALYL ACETATE, LINALOOL, POGOSTEMON CABLIN OIL, HYDROXYCITRONELLAL, LIMONENE, CITRUS AURANTIUM PEEL OIL, GERANIOL, BETA-CARYOPHYLLENE, CITRUS MEDICA LIMONUM PEEL OIL, ROSE KETONE, GERANYL ACETATE, PINENE, CITRUS AURANTIUM FLOWER OIL, CITRAL.</span></div> 5540<div><span style="font-size: medium;"><br></span></div> 5541<div><span style="font-size: medium;">Un air de malice â 15 ml</span></div> 5542<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), HEXAMETHYLINDANOPYRAN, LINALYL ACETATE, LINALOOL, HYDROXYCITRONELLAL, POGOSTEMON CABLIN OIL, LIMONENE, VANILLIN, HEXADECANOLACTONE, CITRONELLOL, GERANYL ACETATE, PINENE, COUMARIN, ROSE KETONE, CINNAMAL, CITRAL, BENZYL BENZOATE, EUGENOL.</span></div> 5543<div><span style="font-size: medium;"><br></span></div> 5544<div><span style="font-size: medium;">Week-end à Arcachon â 15 ml</span></div> 5545<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HEXAMETHYLINDANOPYRAN, LINALOOL, LIMONENE, LINALYL ACETATE, GERANYL ACETATE, CITRUS AURANTIUM PEEL OIL, EUGENOL, VANILLIN, HEXYL CINNAMAL, GERANIOL, PINENE, BETA-CARYOPHYLLENE, CITRONELLOL, HYDROXYCITRONELLAL, ISOEUGENOL, TERPINOLENE.</span></div> 5546<div><span style="font-size: medium;"><br></span></div> 5547<div><span style="font-size: medium;">Week-end à Biarritz â 15 ml</span></div> 5548<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HEXAMETHYLINDANOPYRAN, LINALOOL, CITRUS AURANTIUM BERGAMIA FRUIT OIL, LIMONENE, LINALYL ACETATE, CITRONELLOL, JUNIPERUS VIRGINIANA OIL, CITRUS AURANTIUM PEEL OIL, EBANOL, ALPHA-ISOMETHYL IONONE, HYDROXYCITRONELLAL, GERANYL ACETATE, PINENE, GERANIOL, ISOEUGENYL ACETATE, ROSE KETONE, BETA-CARYOPHYLLENE, TERPINOLENE, TERPINEOL, CITRAL, ALPHA-TERPINENE.</span></div> 5549<div><span style="font-size: medium;"><br></span></div> 5550<div><span style="font-size: medium;">Week-end à Saint-Tropez â 15 ml</span></div> 5551<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, VANILLIN, COUMARIN, LIMONENE, CITRUS AURANTIUM PEEL OIL, BENZALDEHYDE, CITRUS LIMON PEEL OIL, ROSE KETONES, PINENE, TRIMETHYLCYCLOPENTENYL METHYLISOPENTENOL.</span></div> 5552<div><span style="font-size: medium;"><br></span></div> 5553<div><span style="font-size: medium;">Week-end au Ferret â 15 ml</span></div> 5554<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HEXYL CINNAMAL, LINALOOL, LINALYL ACETATE, COUMARIN, EBANOL, LIMONENE, CITRUS AURANTIUM PEEL OIL, CITRUS MEDICA LIMONUM PEEL OIL, ROSE KETONE, BENZALDEHYDE, GERANYL ACETATE, HYDROXYCITRONELLAL, TERPINEOL, PINENE, VANILLIN.</span></div> 5555<div><span style="font-size: medium;"><br></span></div> 5556<div><span style="font-size: medium;">Week-end au paradis â 15 ml</span></div> 5557<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), AMYL SALICYLATE, VANILLIN, TERPINEOL, DI
5557METHYL PHENETHYL ACETATE, ISOEUGENYL ACETATE, HEXADECANOLACTONE, GERANYL ACETATE.</span></div> 5558<div><span style="font-size: medium;"><br></span></div> 5559<div><span style="font-size: medium;">Alors on s'aime â 15 ml</span></div> 5560<div><span style="font-size: medium;">INGREDIENTS: ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HYDROXYCITRONELLAL, VANILLIN, LINALYL ACETATE, LIMONENE, COUMARIN, CITRUS AURANTIUM BERGAMIA FRUIT OIL, ROSE KETONE, PINENE, LINALOOL, GERANYL ACETATE.</span></div> 5561<div><span style="font-size: medium;"><br></span></div> 5562<div><span style="font-size: medium;">Hair care and fragrances</span></div> 5563<div><span style="font-size: medium;"><br></span></div> 5564<div><span style="font-size: medium;">Dry oil Week-end au Ferret â 15 ml</span></div> 5565<div><span style="font-size: medium;">COCO-CAPRYLATE/CAPRATE, PRUNUS ARMENIACA KERNEL OIL, SIMMONDSIA CHINENSIS SEED OIL, PRUNUS AMYGDALUS DULCIS OIL, PARFUM, HELIANTHUS ANNUUS SEED OIL, TOCOPHEROL, HEXYL CINNAMAL, COUMARIN, LIMONENE, HYDROXYCITRONELLAL, LINALOOL.</span></div> 5566<div><span style="font-size: medium;"><br></span></div> 5567<div><span style="font-size: medium;">Hair perfume Baisers et coquillages â 15 ml</span></div> 5568<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), GLYCERIN, ORYZA SATIVA (RICE) EXTRACT, POTASSIUM SORBATE, CITRIC ACID, SORBIC ACID, TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, LINALOOL, HEXAMETHYLINDANOPYRAN, VANILLIN, LINALYL ACETATE, HYDROXYCITRONELLAL, CITRUS AURANTIUM BERGAMIA PEEL OIL, COUMARIN, LIMONENE, EBANOL, GERANYL ACETATE, JUNIPERUS VIRGINIANA OIL, CITRONELLOL, DIMETHYL PHENETHYL ACETATE, PINENE, CITRUS AURANTIUM PEEL OIL, GERANIOL, ALPHA-ISOMETHYL IONONE, POGOSTEMON CABLIN OIL, ROSE KETONE, BENZALDEHYDE.</span></div> 5569<div><span style="font-size: medium;"><br></span></div> 5570<div><span style="font-size: medium;">Hair perfume Onde sensuelle â 15 ml</span></div> 5571<div><span style="font-size: medium;">ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), GLYCERIN, ORYZA SATIVA (RICE) EXTRACT, POTASSIUM SORBATE, CITRIC ACID, SORBIC ACID, HEXAMETHYLINDANOPYRAN, TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, LINALOOL, JUNIPERUS VIRGINIANA OIL, ALPHA-ISOMETHYL IONONE, LIMONENE, CITRUS AURANTIUM PEEL OIL, BENZYL ALCOHOL, VANILLIN, LINALYL ACETATE, DIMETHYL PHENETHYL ACETATE, ROSE KETONES, COUMARIN, PINENE, HYDROXYCITRONELLAL, HEXYL CINNAMAL, CITRONELLOL.</span></div> 5572<div><span style="font-size: medium;"><br></span></div> 5573<div><span style="font-size: medium;">Room fragrance</span></div> 5574<div><span style="font-size: medium;">Jardin de mon enfance â 15 ml</span></div> 5575</div> 5576<div><span style="font-size: medium;"><br></span></div> 5577<div><span style="font-size: medium;"><br></span></div> 5578<div> 5579<div><span style="font-weight: bold; color: rgb(151, 131, 106); font-size: medium;">+ USAGE TIPS</span></div> 5580<div><span style="font-size: medium;"><br></span></div> 5581<div><span style="font-size: medium;">ã»Spray the perfume about 10 cm from your skin. Focus on hot spots (wrists, hollows of the arms, behind the ears) for long-lasting wear of your perfume.</span></div> 5582<div><span style="font-size: medium;"><br></span></div> 5583<div><span style="font-size: medium;">ã»Take your 30ml perfume everywhere to reperfume yourself as you wish.</span></div> 5584<div><span style="font-size: medium;"><br></span></div> 5585<div><span style="font-size: medium;">ã»Create your own fragrance by mixing two complementary scents!</span></div> 5586<div><span style="font-size: medium;"><br></span></div> 5587<div><span style="font-size: medium;">ã»Do not spray on eyes or irritated skin. For external use only.</span></div> 5588<div><span style="font-size: medium;"><br></span></div> 5589<div><span style="font-size: medium;">ã»Keep away from heat and flame.</span></div> 5590</div> 5591</body></html> 5592 5593 <!-- END SHOPLINE RICH CONTENT --> 5594 5595 5596 </div> 5597 </div> 5598 5599 <div class="ProductDetail-shipping-payment accordion-item"> 5600 <div class="ProductDetail-shipping-payment-title accordion-title js-accordion-title" data-tab-name="deliveryPayment"><span>Shipping & Payment</span></div> 5601 <div class="ProductDetail-shipping-payment-content accordion-content"> 5602 <h3>Delivery Options</h3> 5603 <ul> 5604 5605 <li>Tcat - Room Temp.</li> 5606 5607 <li>Tcat - Room Temp. (Collect on Delivery)</li> 5608 5609 <li>Tcat - Room Temp.</li> 5610 5611 <li>Tcat - Room Temp. (Collect on Delivery)</li> 5612 5613 <li>å°åºèªåï¼å ä¾é ç´å®¢ä½¿ç¨ï¼å®ç¶²å®¢è«å¿é¸æï¼</li> 5614 5615 </ul> 5616 <h3>Payment Options</h3> 5617 <ul> 5618 5619 <li>Credit Card Installment</li> 5620 5621 <li>éè¡è½å¸³</li> 5622 5623 <li>LINE Pay</li> 5624 5625 <li>Apple Pay</li> 5626 5627 <li>Pay on Family Mart Store Pickup (C2C)</li> 5628 5629 <li>Credit Card</li> 5630 5631 <li>Pay on 7-11 Store Pickup (C2C)</li> 5632 5633 <li>Tcat (Collect on Delivery)</li> 5634 5635 </ul> 5636 </div> 5637 </div> 5638 5639 <div class="ProductDetail-customer-reviews accordion-item active" id='product-review-section'> 5640 <div class="ProductDetail-customer-reviews-title accordion-title js-accordion-title" data-tab-name="review">
5641 <span>Customer Reviews</span> 5642 </div> 5643 <div class="ProductDetail-customer-reviews-content accordion-content"> 5644 <div class='product-reviews-container' ng-cloak> 5645 <div 5646 class="review-summary-source" 5647 ng-if="amazonProductReviewEnabled || productReviewEnabled" 5648 > 5649 <select 5650 ng-change='setRatingSource(ratingSource)' 5651 ng-model='ratingSource' 5652 class='selectpicker js-selectpicker form-control form-control-sm form-control-inline' 5653 > 5654 5655 <option value='shopline'>Rating Source: This Shop</option> 5656 5657 5658 </select> 5659 </div> 5660 5661 5662 <shopline-product-review></shopline-product-review> 5663 5664 5665 5666 5667 <div class='product-review-no-data' ng-if="shouldShowNoReviewsMsg()"> 5668 No review for this product 5669 </div> 5670</div> 5671 5672 </div> 5673 </div> 5674 5675 </div> 5676 </div> 5677 </div> 5678 </div> 5679 5680 5681 5682 5683 5684 5685 5686 5687 <div class="ProductDetail-relatedProducts" id="relatedProduct"> 5688 <h3 class="ProductDetail-relatedProducts-title">You might also like...</h3> 5689 <div class="ProductDetail-relatedProducts-list" id="relatedProductList"> 5690 <lazyload-related-products data-product-id="6aa36e90de77e200134fb066" data-page-type="product_detail"> 5691 5692 5693 <div class="Product-item autofill-item"> 5694 <div class="Image-boxify"> 5695 <div class="Image-boxify-image loading-placeholder loading-image"></div> 5696 </div> 5697 <span class="loading-placeholder loading-title"></span> 5698 <span class="loading-placeholder loading-price"></span> 5699 </div> 5700 5701 <div class="Product-item autofill-item"> 5702 <div class="Image-boxify"> 5703 <div class="Image-boxify-image loading-placeholder loading-image"></div> 5704 </div> 5705 <span class="loading-placeholder loading-title"></span> 5706 <span class="loading-placeholder loading-price"></span> 5707 </div> 5708 5709 <div class="Product-item autofill-item"> 5710 <div class="Image-boxify"> 5711 <div class="Image-boxify-image loading-placeholder loading-image"></div> 5712 </div> 5713 <span class="loading-placeholder loading-title"></span> 5714 <span class="loading-placeholder loading-price"></span> 5715 </div> 5716 5717 <div class="Product-item autofill-item"> 5718 <div class="Image-boxify"> 5719 <div class="Image-boxify-image loading-placeholder loading-image"></div> 5720 </div> 5721 <span class="loading-placeholder loading-title"></span> 5722 <span class="loading-placeholder loading-price"></span> 5723 </div> 5724 5725 5726 </lazyload-related-products> 5727 </div> 5728 </div> 5729 5730 5731 </div> 5732 <div ng-show="state.showStickyButton" class="js-sticky-cart-button-container"></div> 5733</div> 5734 5735 </div> 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 <div id="shopline-section-footer"> 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782<style type="text/css"> 5783.section-width{padding:30px 15px;width:100%;margin:0 auto}.section-width.section-full-width{padding:0;margin:0;width:100%}@media (min-width:768px){.section-width{width:750px}}@media (min-width:992px){.section-width{width:970px}}@media (min-width:1200px){.section-width{width:1170px}}#shopline-section-footer{background-color:var(--footer-background,#fff);color:var(--footer-text,#333);font-size:calc(1.4rem * var(--font-size-paragraph, 1))}#shopline-section-footer>.section-width{border-top:1px solid hsla(var(--footer-background-h,0deg),var(--footer-background-s,0%),80%,.5)}#shopline-section-footer .NavigationBar-actionMenu-button{font-size:calc(1.4rem * var(--font-size-paragraph, 1));color:var(--footer-text,#333)}#shopline-section-footer .NavigationBar-actionMenu-button svg{fill:var
5783(--footer-text,#333)}#shopline-section-footer .NavigationBar-actionMenu-button:hover{color:hsla(var(--footer-text-h,0deg),var(--footer-text-s,0%),40%,1)}#shopline-section-footer .NavigationBar-actionMenu-button:hover svg{fill:hsla(var(--footer-text-h,0deg),var(--footer-text-s,0%),40%,1)}#shopline-section-footer .NavigationBar-actionMenu-button .NavigationBar-actionMenu-dropdown{background-color:var(--footer-background,#fff);border-color:hsla(var(--footer-text-h,0deg),var(--footer-text-s,0%),80%,.2)}#shopline-section-footer .NavigationBar-actionMenu-button .NavigationBar-actionMenu-dropdown li{color:var(--footer-text,#333)}#shopline-section-footer .NavigationBar-actionMenu-button .NavigationBar-actionMenu-dropdown li:hover{color:hsla(var(--footer-text-h,0deg),var(--footer-text-s,0%),40%,1)}.footer-wrapper .NavigationBar-actionMenu-button.init .NavigationBar-actionMenu-dropdown,.footer-wrapper .NavigationBar-actionMenu-button.init .os-content{visibility:visible}.footer-wrapper .NavigationBar-actionMenu-button .NavigationBar-actionMenu-dropdown,.footer-wrapper .NavigationBar-actionMenu-button .os-content{visibility:hidden}.footer-wrapper .NavigationBar-actionMenu-button svg{width:22px;height:22px;vertical-align:middle}.footer-wrapper .footer-grid-items{display:flex;text-align:center;word-break:break-word}.footer-wrapper .footer-grid-items.--text_align_left{text-align:left}.footer-wrapper .footer-grid-items.--text_align_right{text-align:right}.footer-wrapper .footer-grid-items .footer-grid-item{flex-grow:1;width:25%}.footer-wrapper .footer-grid-items a{color:var(--footer-text,#333)}.footer-wrapper .footer-grid-items .text-title{font-family:var(--font-family-title);font-size:calc(1.8rem * var(--font-size-title, 1));margin-bottom:30px}.footer-wrapper .footer-grid-items p:not(.text-title){margin:0;padding:0}.footer-wrapper .footer-payment-icons{padding:15px;text-align:center}.footer-wrapper .footer-payment-icons.--text_align_left{text-align:left}.footer-wrapper .footer-payment-icons.--text_align_right{text-align:right}.footer-wrapper .footer-payment-icons img{display:inline-block;width:62px;vertical-align:baseline}.footer-wrapper .footer-social-icon-wrapper svg,.footer-wrapper .footer-social-icon-wrapper svg *{fill:var(--footer-icon,#333)}.footer-selector{border-top:1px solid hsla(var(--footer-background-h,0deg),var(--footer-background-s,0%),80%,.5);margin:0 15px;padding:30px 0;text-align:center}.footer-selector.--text_align_left{text-align:left}.footer-selector.--text_align_right{text-align:right}.footer-selector .NavigationBar-actionMenu-button{display:inline-block;width:initial;margin-right:20px}.footer-anti-fraud{text-align:center;color:var(--anti-fraud-text,#fff);background-color:var(--anti-fraud-background,#2b3864);padding:20px 0;font-size:calc(1.2rem * var(--font-size-paragraph, 1))}.footer-anti-fraud.--text_align_left{text-align:left}.footer-anti-fraud.--text_align_right{text-align:right}.footer-copyright{text-align:center;color:var(--copyright-text,#fff);background-color:var(--copyright-background,#2b3864);padding:20px 0;font-size:calc(1.2rem * var(--font-size-paragraph, 1))}.footer-copyright.--text_align_left{text-align:left}.footer-copyright.--text_align_right{text-align:right}.footer-copyright .section-width{padding:0 30px}.social-content{margin-bottom:20px}.footer-grid-item__image{height:100%;width:100%;position:absolute;top:0;left:0;object-fit:cover}.footer__mask{position:relative}.footer__mask.--with-padding{padding-bottom:100%}.footer__mask::after{content:'';display:block;width:100%;height:100%;position:absolute;top:0;left:0}.footer__mask--0::after{background-color:rgba(0,0,0,0)}.footer__mask--20::after{background-color:rgba(0,0,0,.2)}.footer__mask--40::after{background-color:rgba(0,0,0,.4)}.footer__mask--60::after{background-color:rgba(0,0,0,.6)}.footer__mask--80::after{background-color:rgba(0,0,0,.8)}@media screen and (max-width:767px){.footer-grid-items{flex-direction:column}.footer-wrapper .footer-grid-items .footer-grid-item{width:100%}} 5784subscription-form{word-break:break-word}.subscription__content,.subscription__title{padding:15px 0;margin:0}@media (min-width:768px){.subscription__content,.subscription__title{padding:15px}}.subscription__title{font-family:var(--font-family-title);font-size:calc(2.4rem * var(--font-size-title, 1));font-weight:400;letter-spacing:inherit;text-transform:none}.subscription__content,.subscription__content>*{font-size:calc(1.6rem * var(--font-size-paragraph, 1));line-height:2rem}.subscription__content a{color:var(--page-text-link,#3493fb)}.subscription__form{padding:15px 0;display:flex;flex-direction:column;gap:15px}@media (min-width:768px){.subscription__form{flex-direction:row;align-items:flex-start;padding:15px}}.subscription__form--error .subscription__input{border-color:#a94442}.subscription__form--error .subscription__error-message{display:block}.subscription__error-message{display:none;color:#a94442;text-align:left}.subscription__input-container{flex-grow:1;flex-shrink:0}.subscription__input{color:var(--page-text,#333);border-color:hsla(var(--page-background-h,0deg),var(--page-background-s,0%),80%,.5);background-color:var(--page-background,#fff);font-size:calc(1.4rem * var(--font-size-paragraph, 1));min-height:38px}.subscription__button{min-height:38px;padding:4px 40px;border-radius:3px;text-align:center;text-decoration:none;font-size:calc(1.6rem * var(--font-size-paragraph, 1));color:var(--primary-text,#fff);background-color:var(--primary-background,var(--primary-color,#2b3864));word-break:break-word;border:none}.subscription__button:hover{background-color:hsla(var(--primary-background-h,226.3157894737deg),var(--primary-background-s,39.8601398601%),60%,.8)}@media (max-width:767px){.subscription__button{width:100%;padding:6px 12px}}#shopline-section-footer .subscription__input{color:var(--footer-text,#333);border-color:hsla(var(--footer-background-h,0deg),var(--footer-background-s,0%),80%,.5);background-color:var(--footer-background,#fff);font-size:calc(1.2rem * var(--font-size-paragraph, 1))}#shopline-section-footer .subscription__input::-moz-placeholder{color:hsla(var(--footer-text-h,0deg),var(--footer-text-s,0%),60%,1)}#shopline-section-footer .subscription__input::placeholder{color:hsla(var(--footer-text-h,0deg),var(--footer-text-s,0%),60%,1)}#shopline-section-footer .subscription__title{padding-top:0;padding-left:0;padding-right:0;font-size:calc(1.8rem * var(--font-size-title, 1))}#shopline-section-footer .subscription__content{padding-left:0;padding-right:0}#shopline-section-footer .subscription__content,#shopline-section-footer .subscription__content>*{font-size:calc(1.4rem * var(--font-size-paragraph, 1));line-height:2.1rem}#shopline-section-footer .subscription__form{flex-wrap:wrap;padding-left:0;padding-right:0}#shopline-section-footer .subscription__button{flex-grow:1;width:auto;max-width:100%} 5785</style> 5786 5787 5788 5789<style type="text/css"> 5790 #footer-custom-padding { padding: 15px; } 5791 @media screen and (max-width: 767px) { #footer-custom-padding { padding: 0; } } 5792 #shopline-section-footer .section-width { padding-top: 30px; padding-bottom: 30px; } 5793 @media (min-width: 768px) { #shopline-section-footer .section-width { padding-top: 30px; padding-bottom: 30px; } } 5794 .footer-wrapper .footer-grid-items .footer-grid-item { padding: 15px 15px; } 5795 @media (min-width: 768px) { .footer-wrapper .footer-grid-items .footer-grid-item { padding: 15px 15px; } } 5796</style> 5797 5798 5799<div class="section-width"> 5800 <div class="footer-wrapper"> 5801 <div id="footer-custom-padding"> 5802 <div class="footer-grid-items --text_align_left"> 5803 5804 <div class="footer-grid-item" ng-non-bindable> 5805 5806 5807 5808 <p class="text-title">About</p> 5809 <p>
5809Brand Story<br />Our Values<br />Our Team</p> 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 </div> 5825 5826 <div class="footer-grid-item" ng-non-bindable> 5827 5828 5829 5830 <p class="text-title">Help</p> 5831 <p>FAQ<br /><a href='/about/delivery-policy'>Delivery & Shipping</a><br />Payment<br /><a href='/about/policy'>Return Policy</a><br />Terms & Conditions</p> 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 </div> 5847 5848 </div> 5849 5850 5851 5852 5853 5854 5855 <div class="footer-selector --text_align_left"> 5856 5857 <div class="NavigationBar-actionMenu-button App-currencyDropdown dropdown" dropdown data-nosnippet> 5858 <div class="dropdown-toggle" dropdown-toggle> 5859 <span class="Label"><span class="fa fa-dollar"></span></span> 5860 <span class="fa fa-angle-down"></span> 5861 </div> 5862 <ul class="NavigationBar-actionMenu-dropdown dropdown-menu sl-currency-chooser"> 5863 5864 <li class="List-item sl-currency-chooser-currency" href="#hkd">$ HKD</li> 5865 5866 <li class="List-item sl-currency-chooser-currency" href="#mop">P MOP</li> 5867 5868 <li class="List-item sl-currency-chooser-currency" href="#cny">Â¥ CNY</li> 5869 5870 <li class="List-item sl-currency-chooser-currency" href="#twd">$ TWD</li> 5871 5872 <li class="List-item sl-currency-chooser-currency" href="#usd">$ USD</li> 5873 5874 <li class="List-item sl-currency-chooser-currency" href="#sgd">$ SGD</li> 5875 5876 <li class="List-item sl-currency-chooser-currency" href="#eur">⬠EUR</li> 5877 5878 <li class="List-item sl-currency-chooser-currency" href="#aud">$ AUD</li> 5879 5880 <li class="List-item sl-currency-chooser-currency" href="#gbp">£ GBP</li> 5881 5882 <li class="List-item sl-currency-chooser-currency" href="#php">â± PHP</li> 5883 5884 <li class="List-item sl-currency-chooser-currency" href="#myr">RM MYR</li> 5885 5886 <li class="List-item sl-currency-chooser-currency" href="#thb">฿ THB</li> 5887 5888 <li class="List-item sl-currency-chooser-currency" href="#aed">د.Ø¥ AED</li> 5889 5890 <li class="List-item sl-currency-chooser-currency" href="#jpy">Â¥ JPY</li> 5891 5892 <li class="List-item sl-currency-chooser-currency" href="#bnd">$ BND</li> 5893 5894 <li class="List-item sl-currency-chooser-currency" href="#krw">â© KRW</li> 5895 5896 <li class="List-item sl-currency-chooser-currency" href="#idr">Rp IDR</li> 5897 5898 <li class="List-item sl-currency-chooser-currency" href="#vnd">â« VND</li> 5899 5900 <li class="List-item sl-currency-chooser-currency" href="#cad">$ CAD</li> 5901 5902 </ul> 5903 </div> 5904 5905 5906 <div class="NavigationBar-actionMenu-button App-languageDropdown dropdown" dropdown data-nosnippet> 5907 <div class="dropdown-toggle" dropdown-toggle> 5908 <svg class="fa fa-v5-globe"> 5909 <use xlink:href="#fa-v5-globe"></use> 5910 </svg> 5911 <span class="Label">English</span> 5912 <span class="fa fa-angle-down"></span> 5913 </div> 5914 <ul class="NavigationBar-actionMenu-dropdown dropdown-menu sl-language-chooser"> 5915 5916 <li class="List-item sl-language-chooser-language" href="#en">English</li> 5917 5918 <li class="List-item sl-language-chooser-language" href="#zh-hant">ç¹é«ä¸æ</li> 5919 5920 </ul> 5921 </div> 5922 5923 </div> 5924 5925 5926 </div> 5927 </div> 5928</div> 5929 5930 5931 5932 5933 5934 5935 5936 5937
5938<script type="text/javascript"> 5939var footerDropdowns = document.querySelectorAll('.footer-wrapper .NavigationBar-actionMenu-button'); 5940footerDropdowns.forEach(function(dropdown) { 5941 dropdown.addEventListener('click', function(){ 5942 if (!dropdown.classList.contains('init')) { 5943 setTimeout(function() { 5944 var optionMenu = dropdown.querySelector('.dropdown-menu'); 5945 optionMenu.style.top = '-' + (optionMenu.clientHeight + 10 ) + 'px'; 5946 dropdown.classList.add('init'); 5947 }) 5948 } 5949 }) 5950}) 5951</script>
5951 5952 5953 5954 5955
5956<script type="text/javascript"> 5957function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _regenerator(){var _,e="function"==typeof Symbol?Symbol:{},t=e.iterator||"@@iterator",r=e.toStringTag||"@@toStringTag";function n(e,t,r,n){var o,i,a,u,s,c,f,p,l,t=t&&t.prototype instanceof v?t:v,t=Object.create(t.prototype);return _regeneratorDefine2(t,"_invoke",(o=e,i=r,f=n||[],p=!1,l={p:c=0,n:0,v:_,a:y,f:y.bind(_,4),d:function(e,t){return a=e,u=0,s=_,l.n=t,b}},function(e,t,r){if(1<c)throw TypeError("Generator is already running");for(p&&1===t&&y(t,r),u=t,s=r;(h=u<2?_:s)||!p;){a||(u?u<3?(1<u&&(l.n=-1),y(u,s)):l.n=s:l.v=s);try{if(c=2,a){if(h=a[e=u?e:"next"]){if(!(h=h.call(a,s)))throw TypeError("iterator result is not an object");if(!h.done)return h;s=h.value,u<2&&(u=0)}else 1===u&&(h=a.return)&&h.call(a),u<2&&(s=TypeError("The iterator does not provide a '"+e+"' method"),u=1);a=_}else if((h=(p=l.n<0)?s:o.call(i,l))!==b)break}catch(e){a=_,u=1,s=e}finally{c=1}}return{value:h,done:p}}),!0),t;function y(e,t){for(u=e,s=t,h=0;!p&&c&&!r&&h<f.length;h++){var r,n=f[h],o=l.p,i=n[2];3<e?(r=i===t)&&(s=n[(u=n[4])?5:u=3],n[4]=n[5]=_):n[0]<=o&&((r=e<2&&o<n[1])?(u=0,l.v=t,l.n=n[1]):o<i&&(r=e<3||n[0]>t||i<t)&&(n[4]=e,n[5]=t,l.n=i,u=0))}if(r||1<e)return b;throw p=!0,t}}var b={};function v(){}function o(){}function i(){}var h=Object.getPrototypeOf,e=[][t]?h(h([][t]())):(_regeneratorDefine2(h={},t,function(){return this}),h),a=i.prototype=v.prototype=Object.create(e);function u(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,i):(e.__proto__=i,_regeneratorDefine2(e,r,"GeneratorFunction")),e.prototype=Object.create(a),e}return _regeneratorDefine2(a,"constructor",o.prototype=i),_regeneratorDefine2(i,"constructor",o),_regeneratorDefine2(i,r,o.displayName="GeneratorFunction"),_regeneratorDefine2(a),_regeneratorDefine2(a,r,"Generator"),_regeneratorDefine2(a,t,function(){return this}),_regeneratorDefine2(a,"toString",function(){return"[object Generator]"}),(_regenerator=function(){return{w:n,m:u}})()}function _regeneratorDefine2(e,t,r,n){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}(_regeneratorDefine2=function(e,t,r,n){function o(t,r){_regeneratorDefine2(e,t,function(e){return this._invoke(t,r,e)})}t?i?i(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(o("next",0),o("throw",1),o("return",2))})(e,t,r,n)}function asyncGeneratorStep(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function _asyncToGenerator(u){return function(){var e=this,a=arguments;return new Promise(function(t,r){var n=u.apply(e,a);function o(e){asyncGeneratorStep(n,t,r,o,i,"next",e)}function i(e){asyncGeneratorStep(n,t,r,o,i,"throw",e)}o(void 0)})}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_toPropertyKey(n.key),n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}function _callSuper(e,t,r){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,r||[],_getPrototypeOf(e).constructor):t.apply(e,r))}function _possibleConstructorReturn(e,t){if(t&&("object"==_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _wrapNativeSuper(e){var r="function"==typeof Map?new Map:void 0;return(_wrapNativeSuper=function(e){if(null===e||!_isNativeFunction(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return _construct(e,arguments,_getPrototypeOf(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(t,e)})(e)}function _construct(e,t,r){var n;return _isNativeReflectConstruct()?Reflect.construct.apply(null,arguments):((n=[null]).push.apply(n,t),t=new(e.bind.apply(e,n)),r&&_setPrototypeOf(t,r.prototype),t)}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _isNativeFunction(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var SubscriptionForm;void 0===customElements.get("subscription-form")&&(SubscriptionForm=(()=>{function e(){var t;return _classCallCheck(this,e),(t=_callSuper(this,e)).onSubmitHandler=t.onSubmitHandler.bind(t),t.setErrorMessage=t.setErrorMessage.bind(t),t.isLoading=!1,t.form=t.querySelector("form"),t.emailInput=t.querySelector("input"),t.errorMessage=t.querySelector(".subscription__error-message"),t.form.addEventListener("submit",t.onSubmitHandler),t.emailInput.addEventListener("invalid",function(e){e.preventDefault(),t.setErrorMessage(shopline.i18next.t("Invalid email"))}),t}return _inherits(e,_wrapNativeSuper(HTMLElement)),_createClass(e,[{key:"setErrorMessage",value:function(e){e?this.form.classList.add("subscription__form--error"):this.form.classList.remove("subscription__form--error"),this.errorMessage.innerHTML=e||""}},{key:"onSubmitHandler",value:(t=_asyncToGenerator(_regenerator().m(function e(t){var r,n,o;return _regenerator().w(function(e){for(;;
5957)switch(e.p=e.n){case 0:if(t.preventDefault(),r=t.target.elements.email.value,shopline.validator.email(r)){e.n=1;break}return this.setErrorMessage(shopline.i18next.t("Invalid email")),e.a(2);case 1:if(this.setErrorMessage(null),e.p=2,this.isLoading)return e.a(2);e.n=3;break;case 3:if(this.isLoading=!0,n={email:r},window.mainConfig.isRecaptchaEnabled)return e.n=4,shopline.recaptcha.getToken(this.querySelector("button").id);e.n=5;break;case 4:n["g-recaptcha-response"]=e.v;case 5:return e.n=6,fetch("/api/email_subscriptions",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});case 6:if((o=e.v).ok){e.n=8;break}return e.n=7,o.json();case 7:throw e.v;case 8:this.emailInput.value="",shopline.notify.success(shopline.i18next.t("Subscribed")),e.n=10;break;case 9:e.p=9,o=e.v,console.log("error:",o),this.setErrorMessage("Exceeded rate limit"===(null==o?void 0:o.error_messages)?shopline.i18next.t("You have requested too many times, please try again later"):shopline.i18next.t("Please try again"));case 10:return e.p=10,this.isLoading=!1,e.f(10);case 11:return e.a(2)}},e,this,[[2,9,10,11]])})),function(e){return t.apply(this,arguments)})}]);var t})(),customElements.define("subscription-form",SubscriptionForm)); 5958</script>
5958 5959 5960 5961 </div> 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 <!-- Google Tag Manager Event Tracker -->
vendor: 66 bytes, lines 5994-5995
5994 5995 <noscript><iframe src="//www.googletagmanager.com/ns.html?id=
5995GTM-WJ75KWBW
vendor: 91 bytes, lines 5995-5997
5995" 5996 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 5997
5997<script>
vendor: 337 bytes, lines 5997-6001
5997(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 5998 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 5999 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 6000 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 6001 })(window,document,'script','dataLayer','
6001GTM-WJ75KWBW
vendor: 3 bytes, line 6001
6001');
6001</script>
6001 6002 <!-- end Google Tag Manager Event Tracker --> 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 <!-- Google tag (gtag.js) -->
vendor: 70 bytes, lines 6014-6015
6014 6015 <script async src="https://www.googletagmanager.com/gtag/js?id=
6015G-G690MGRSVG
vendor: 18 bytes, lines 6015-6016
6015"></script> 6016
6016<script> 6017
vendor: 161 bytes, lines 6017-6022
6017window.dataLayer = window.dataLayer || []; 6018 function gtag(){dataLayer.push(arguments);} 6019 gtag('js', new Date()); 6020 6021 6022 gtag('config', '
6022G-G690MGRSVG
vendor: 46 bytes, lines 6022-6025
6022', {"groups":"ga4"}); 6023 6024 6025
6025</script>
6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 <!-- Facebook Pixel (new) Event Tracker --> 6038
6038<script>
vendor: 414 bytes, lines 6038-6045
6038 6039 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 6040 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 6041 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 6042 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 6043 document,'script','//connect.facebook.net/en_US/fbevents.js'); 6044 6045 fbq('init', '
60452098034467214410
vendor: 48 bytes, lines 6045-6049
6045', { 6046 6047 }, {agent: 'plShopline'}); 6048 6049
6049fbq('track', 'PageView',{ 6050 }, { 6051 6052 }); 6053 </script>
6053 6054 6055 <noscript><img height="1" width="1" style="display:none" 6056 src="https://www.facebook.com/tr?id=2098034467214410&ev=PageView&noscript=1" 6057 /></noscript> 6058 <!-- end Facebook Pixel (new) Event Tracker --> 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068
6068<script type="text/javascript"> 6069 (function () { 6070 var VARemoteLoadOptions = { 6071 whiteLabel: { id: 8, siteId: 1683, domain: 't.adotone.com' }, 6072 locale: "en-US", mkt: true 6073 }; 6074 (function (c, o, n, v, e, r, l, y) { 6075 c['VARemoteLoadOptions'] = e; r = o.createElement(n), l = o.getElementsByTagName(n)[0]; 6076 r.async = 1; r.src = v; l.parentNode.insertBefore(r, l); 6077 })(window, document, 'script', 'https://cdn.adotone.com/javascripts/va.js', VARemoteLoadOptions); 6078 })(); 6079</script>
6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 <!-- Google Adwords Event Tracker -->
vendor: 68 bytes, lines 6089-6090
6089 6090 <script async src="https://www.googletagmanager.com/gtag/js?id=
6090AW-782238132
vendor: 16 bytes, lines 6090-6091
6090"></script> 6091
6091<script> 6092 window.dataLayer = window.dataLayer || []; 6093 function gtag(){dataLayer.push(arguments)}; 6094 window.dispatchedGoogleAdsEventTypes = window.dispatchedGoogleAdsEventTypes || []; 6095 function dispatchConversion(eventType) { 6096 if (window.dispatchedGoogleAdsEventTypes.includes(eventType)) { 6097 return; 6098 } 6099 window.dispatchedGoogleAdsEventTypes.push(eventType); 6100 gtag('event', 'conversion', { send_to: `google_ads_${eventType}` }); 6101 } 6102 gtag('js', new Date()); 6103 gtag('config', 'AW-782238132/L5NiCNSY5sMZELSDgPUC', {"allow_enhanced_conversions":true,"groups":"google_ads_loaded_any_page"}); 6104 6105 6106 6107 6108 6109 6110 6111 window.addEventListener('load', (event) => { 6112 dispatchConversion('loaded_any_page'); 6113 }); 6114 6115 </script>
6115 6116 <!-- end Google Adwords Event Tracker --> 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 <!-- Google Remarketing Event Tracker -->
vendor: 68 bytes, lines 6127-6128
6127 6128 <script async src="https://www.googletagmanager.com/gtag/js?id=
6128AW-782238132
vendor: 16 bytes, lines 6128-6129
6128"></script> 6129
6129<script type="text/javascript"> 6130 window.dataLayer = window.dataLayer || []; 6131 function gtag(){dataLayer.push(arguments)}; 6132 gtag('js', new Date()); 6133 gtag('config', 'AW-782238132', { groups: 'google_remarketing' }); 6134 6135 6136 6137 gtag('event', 'conversion', { send_to: 'google_remarketing' }); 6138 6139 6140 </script>
6140 6141 <!-- end Google Remarketing Event Tracker --> 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 <!-- Google Adwords Event Tracker -->
vendor: 68 bytes, lines 6152-6153
6152 6153 <script async src="https://www.googletagmanager.com/gtag/js?id=
6153AW-782238132
vendor: 16 bytes, lines 6153-6154
6153"></script> 6154
6154<script> 6155 window.dataLayer = window.dataLayer || []; 6156 function gtag(){dataLayer.push(arguments)}; 6157 window.dispatchedGoogleAdsEventTypes = window.dispatchedGoogleAdsEventTypes || []; 6158 function dispatchConversion(eventType) { 6159 if (window.dispatchedGoogleAdsEventTypes.includes(eventType)) { 6160 return; 6161 } 6162 window.dispatchedGoogleAdsEventTypes.push(eventType); 6163 gtag('event', 'conversion', { send_to: `google_ads_${eventType}` }); 6164 } 6165 gtag('js', new Date()); 6166 gtag('config', 'AW-782238132/uu_wCNGY5sMZELSDgPUC', {"allow_enhanced_conversions":true,"groups":"google_ads_added_product_to_cart"}); 6167 6168 6169 6170 6171 6172 6173 6174 </script>
6174 6175 <!-- end Google Adwords Event Tracker --> 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186
6187<script> 6188 window.eventTrackers = JSON.parse('[{"config_data":{"tracking_code":"GTM-WJ75KWBW"},"created_at":"2024-01-10T10:12:55.861Z","event_key":"google_tag","event_type":"loaded_any_page","id":"659e6da743d3fb24eded0862","owner_id":"6576a1830ee9d100760d043d","status":"active","tracking_html":null,"updated_at":"2024-01-10T10:12:55.958Z","v":0},{"config_data":{"tracking_code":"G-G690MGRSVG"},"created_at":"2024-01-10T10:20:13.539Z","event_key":"google_analytics_4","event_type":"loaded_any_page","id":"659e6f5d43d3fb24eded0880","owner_id":"6576a1830ee9d100760d043d","status":"active","tracking_html":null,"updated_at":"2024-02-15T03:47:33.873Z","v":0},{"config_data":{"allowed_offline_conversion":true,"is_fbe":true,"is_messenger_chat_plugin_enabled":false,"page_id":"102924225546777","single_variation":false,"tracking_code":"2098034467214410","unique_ids":true},"created_at":"2024-01-23T09:05:08.568Z","event_key":"facebook_standard_pixel","event_type":"loaded_any_page","id":"65af814429a24d453fd60adc","owner_id":"6576a1830ee9d100760d043d","status":"active","tracking_html":null,"updated_at":"2025-03-21T08:59:29.419Z","v":0},{"config_data":{"enable_enhanced_conversions":true,"is_shopline":"true","tracking_code":"782238132","tracking_code_2":"L5NiCNSY5sMZELSDgPUC"},"created_at":"2024-07-22T04:43:30.743Z","event_key":"google_adwords","event_type":"loaded_any_page","id":"669de37249c5fa74d5d11204","owner_id":"6576a1830ee9d100760d043d","status":"active","tracking_html":null,"updated_at":"2024-07-22T04:43:30.954Z","v":0},{"config_data":{"dynamic_remarketing":false,"is_shopline":false,"single_variation":false,"tracking_code":"782238132","unique_ids":false},"created_at":"2024-08-16T07:17:20.276Z","event_key":"google_remarketing","event_type":"loaded_any_page","id":"66befd00df86a0ecddc11625","owner_id":"6576a1830ee9d100760d043d","status":"active","tracking_html":null,"updated_at":"2024-08-16T07:17:20.779Z","v":0},{"config_data":{"enable_enhanced_conversions":true,"is_shopline":"true","tracking_code":"782238132","tracking_code_2":"uu_wCNGY5sMZELSDgPUC"},"created_at":"2024-07-22T04:42:01.592Z","event_key":"google_adwords","event_type":"added_product_to_cart","id":"669de319c3c31cc0693bab29","owner_id":"6576a1830ee9d100760d043d","status":"active","tracking_html":null,"updated_at":"2024-07-22T04:42:01.797Z","v":0}]'); 6189</script>
6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205
6205<script ng-non-bindable src="//static.zotabox.com/3/3/33c0b5efaaa459795ce7c3d639849efc/widgets.js" async></script>
6205 6206 6207 6208 6209 6210 6211 6212 6213 6214
6214<script type="application/ld+json">{"@context":"http://schema.org/","@type":"Product","name":"ãMargot\u0026TitaãAdvent Calendar 2026 - Limited quantity","sku":"6aa36e90de77e200134fb066","brand":"Margot Tita","description":"More than just a calendar, the 2026 edition reveals a true olfactory wardrobe: a collection of fragrances to discover, wear, and combine according to your desires, your mood, and every occasion. 24 bottles of 15ml, totaling 360ml of scented surprises, to reinvent your scent day after day.Behind the 24 doors, a generous olfactory palette is revealed, where floral, musky, woody, solar, and gourmand scents meet. Bright and delicate fragrances stand alongside more enveloping, sensual, or comforting trails, allowing you to change your perfume as naturally as you change your outfit.Eau de parfumAu bout de la nuit â 15 mlTOP ⢠Ylang-ylang, Lemon, Plum, Mandarin, BergamotHEART ⢠Jasmine, Rose, Geranium, White flowersBASE ⢠Sandalwood, Musk, PatchouliÃa baigne pour moi â 15 mlAQUATIC EAU DE PARFUMTOP ⢠Lemon, Bergamot, Aromatic notesHEART ⢠Marine notes, Apple, Tobacco, SandalwoodBASE ⢠Musk, Amber, OakmossJeu dangereux â 15 mlWOODY EAU DE PARFUMTOP ⢠Cardamom, Bergamot, LemonHEART ⢠Cedar, Cashmere wood, Honey notesBASE ⢠Vetiver, Vanilla, Sandalwood, MuskLa femme parfaite â 15 mlFLORAL EAU DE PARFUM TOP ⢠Lychee, Pink berries, Orange, BlackcurrantHEART ⢠Peach, Lily of the Valley, Rose, VioletBASE ⢠Vanilla, Musk, Patchouli, Raspberry, WoodyL'amour est dans l'air â 15 mlFLORAL EAU DE PARFUM TOP ⢠Blackberry, Apple, Bergamot, JasmineHEART ⢠Orange blossom, Peony, Lily of the valleyBASE ⢠Sandalwood, Patchouli, Musky, VanillaLes secrets de Margot â 15 mlFLORAL EAU DE PARFUMTOP ⢠Pear, BergamotHEART ⢠Rose, Jasmine, Morning DewBASE ⢠Vanilla, White peach, Blond woodMinuit dans tes bras â 15 mlFLORAL EAU DE PARFUMTOP ⢠Pink Pepper, PeachHEART ⢠Jasmine, Sandalwood, Milky notesBASE ⢠Amber, Benzoin, Vanilla, MusksNous les femmes â 15 mlFRUITY EAU DE PARFUMTOP ⢠Blackcurrant, Candy apple, Passion fruitHEART ⢠Raspberry, Rose, JasmineBASE ⢠Musk, Sandalwood, VanillaNuit féerique â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, CITRUS AURANTIUM BERGAMIA FRUIT OIL, LIMONENE, LINALYL ACETATE, PINENE, VANILLIN, LINALOOL, ROSE KETONES, HEXAMETHYLINDANOPYRAN, MYROXYLON PEREIRAE OIL/EXTRACT, BETA-CARYOPHYLLENE, BENZYL BENZOATE, TERPINOLENE, CITRAL, BENZYL CINNAMATE, CITRONELLOL, JUNIPERUS VIRGINIANA OIL, CEDRUS ATLANTICA OIL/EXTRACT.Rêve musqué â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), JUNIPERUS VIRGINIA OIL, AMYL SALICYLATE, LINALOOL, ROSE KETONES, HEXADECANOLACTONE, LINALYL ACETATE, HYDROXYCITRONELLAL, TRIMETHYLBENZENEPROPANOL, CINNAMYL ALCOHOL, BENZALDEHYDE, ISOEUGENOL, ALPHA-ISOMETHYL IONONE.Sous les étoiles â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), HEXAMETHYLINDANOPYRAN, LINALYL ACETATE, LINALOOL, CITRUS AURANTIUM BERGAMIA FRUIT OIL, LIMONENE, ALPHA-ISOMETHYL IONONE, VANILLIN, POGOSTEMON CABLIN OIL, COUMARIN, GERANYL ACETATE, PINENE, BENZALDEHYDE, CITRONELLOL, ROSE KETONE, BETA-CARYOPHYLLENE, ANISE ALCOHOL, TRIMETHYLCYCLOPENTENYL METHYLISOPENTENOL.Sous un soleil doré â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, LINALOOL, LINALYL ACETATE, LIMONENE, HEXAMETHYLINDANOPYRAN, CITRUS AURANTIUM BERGAMIA PEEL OIL, CITRUS LIMON OIL/EXTRACT, POGOSTEMON CABLIN OIL, PINENE, COUMARIN, CITRONELLOL, ALPHA-ISOMETHYL IONONE, BETA-CARYOPHYLLENE, EUGENOL, ROSE KETONE, CITRAL, GERANYL ACETATE, TERPINOLENE, HEXYL CINNAMAL, ALPHA-TERPINENE, ACETYL CEDRENE, CITRUS AURANTIUM FLOWER OIL, TERPINEOL, GERANIOL, VANILLIN.Tombé du ciel â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), VANILLIN, HEXAMETHYLINDANOPYRAN, HEXYL CINNAMAL, LINALYL ACETATE, LINALOOL, POGOSTEMON CABLIN OIL, HYDROXYCITRONELLAL, LIMONENE, CITRUS AURANTIUM PEEL OIL, GERANIOL, BETA-CARYOPHYLLENE, CITRUS MEDICA LIMONUM PEEL OIL, ROSE KETONE, GERANYL ACETATE, PINENE, CITRUS AURANTIUM FLOWER OIL, CITRAL.Un air de malice â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), HEXAMETHYLINDANOPYRAN, LINALYL ACETATE, LINALOOL, HYDROXYCITRONELLAL, POGOSTEMON CABLIN OIL, LIMONENE, VANILLIN, HEXADECANOLACTONE, CITRONELLOL, GERANYL ACETATE, PINENE, COUMARIN, ROSE KETONE, CINNAMAL, CITRAL, BENZYL BENZOATE, EUGENOL.Week-end à Arcachon â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HEXAMETHYLINDANOPYRAN, LINALOOL, LIMONENE, LINALYL ACETATE, GERANYL ACETATE, CITRUS AURANTIUM PEEL OIL, EUGENOL, VANILLIN, HEXYL CINNAMAL, GERANIOL, PINENE, BETA-CARYOPHYLLENE, CITRONELLOL, HYDROXYCITRONELLAL, ISOEUGENOL, TERPINOLENE.Week-end à Biarritz â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HEXAMETHYLINDANOPYRAN, LINALOOL, CITRUS AURANTIUM BERGAMIA FRUIT OIL, LIMONENE, LINALYL ACETATE, CITRONELLOL, JUNIPERUS VIRGINIANA OIL, CITRUS AURANTIUM PEEL OIL, EBANOL, ALPHA-ISOMETHYL IONONE, HYDROXYCITRONELLAL, GERANYL ACETATE, PINENE, GERANIOL, ISOEUGENYL ACETATE, ROSE KETONE, BETA-CARYOPHYLLENE, TERPINOLENE, TERPINEOL, CITRAL, ALPHA-TERPINENE.Week-end à Saint-Tropez â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, VANILLIN, COUMARIN, LIMONENE, CITRUS AURANTIUM PEEL OIL, BENZALDEHYDE, CITRUS LIMON PEEL OIL, ROSE KETONES, PINENE, TRIMETHYLCYCLOPENTENYL METHYLISOPENTENOL.Week-end au Ferret â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HEXYL CINNAMAL, LINALOOL, LINALYL ACETATE, COUMARIN, EBANOL, LIMONENE, CITRUS AURANTIUM PEEL OIL, CITRUS MEDICA LIMONUM PEEL OIL, ROSE KETONE, BENZALDEHYDE, GERANYL ACETATE, HYDROXYCITRONELLAL, TERPINEOL, PINENE, VANILLIN.Week-end au paradis â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), AMYL SALICYLATE, VANILLIN, TERPINEOL, DI
6214METHYL PHENETHYL ACETATE, ISOEUGENYL ACETATE, HEXADECANOLACTONE, GERANYL ACETATE.Alors on s'aime â 15 mlINGREDIENTS: ALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, HYDROXYCITRONELLAL, VANILLIN, LINALYL ACETATE, LIMONENE, COUMARIN, CITRUS AURANTIUM BERGAMIA FRUIT OIL, ROSE KETONE, PINENE, LINALOOL, GERANYL ACETATE.Hair care and fragrancesDry oil Week-end au Ferret â 15 mlCOCO-CAPRYLATE/CAPRATE, PRUNUS ARMENIACA KERNEL OIL, SIMMONDSIA CHINENSIS SEED OIL, PRUNUS AMYGDALUS DULCIS OIL, PARFUM, HELIANTHUS ANNUUS SEED OIL, TOCOPHEROL, HEXYL CINNAMAL, COUMARIN, LIMONENE, HYDROXYCITRONELLAL, LINALOOL.Hair perfume Baisers et coquillages â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), GLYCERIN, ORYZA SATIVA (RICE) EXTRACT, POTASSIUM SORBATE, CITRIC ACID, SORBIC ACID, TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, LINALOOL, HEXAMETHYLINDANOPYRAN, VANILLIN, LINALYL ACETATE, HYDROXYCITRONELLAL, CITRUS AURANTIUM BERGAMIA PEEL OIL, COUMARIN, LIMONENE, EBANOL, GERANYL ACETATE, JUNIPERUS VIRGINIANA OIL, CITRONELLOL, DIMETHYL PHENETHYL ACETATE, PINENE, CITRUS AURANTIUM PEEL OIL, GERANIOL, ALPHA-ISOMETHYL IONONE, POGOSTEMON CABLIN OIL, ROSE KETONE, BENZALDEHYDE.Hair perfume Onde sensuelle â 15 mlALCOHOL DENAT., AQUA (WATER), PARFUM (FRAGRANCE), GLYCERIN, ORYZA SATIVA (RICE) EXTRACT, POTASSIUM SORBATE, CITRIC ACID, SORBIC ACID, HEXAMETHYLINDANOPYRAN, TETRAMETHYL ACETYLOCTAHYDRONAPHTHALENES, LINALOOL, JUNIPERUS VIRGINIANA OIL, ALPHA-ISOMETHYL IONONE, LIMONENE, CITRUS AURANTIUM PEEL OIL, BENZYL ALCOHOL, VANILLIN, LINALYL ACETATE, DIMETHYL PHENETHYL ACETATE, ROSE KETONES, COUMARIN, PINENE, HYDROXYCITRONELLAL, HEXYL CINNAMAL, CITRONELLOL.Room fragranceJardin de mon enfance â 15 ml+ USAGE TIPSã»Spray the perfume about 10 cm from your skin. Focus on hot spots (wrists, hollows of the arms, behind the ears) for long-lasting wear of your perfume.ã»Take your 30ml perfume everywhere to reperfume yourself as you wish.ã»Create your own fragrance by mixing two complementary scents!ã»Do not spray on eyes or irritated skin. For external use only.ã»Keep away from heat and flame.","offers":{"@type":"Offer","price":8900.0,"priceCurrency":"TWD","availability":"http://schema.org/PreOrder"},"image":["https://img.shoplineapp.com/media/image_clips/6ab37ddf376ab931829295cc/original.jpg?1790148063=\u0026owner_id=6576a1830ee9d100760d043d","https://img.shoplineapp.com/media/image_clips/6aaa45352f7367cf6ccdd75e/original.jpg?1789543733=\u0026owner_id=6576a1830ee9d100760d043d","https://img.shoplineapp.com/media/image_clips/6aaa45500be759c32a96bf5b/original.jpeg?1789543760=\u0026owner_id=6576a1830ee9d100760d043d","https://img.shoplineapp.com/media/image_clips/6aaa449f74a226c536dfaaca/original.jpg?1789543582=\u0026owner_id=6576a1830ee9d100760d043d","https://img.shoplineapp.com/media/image_clips/6aaa457c60f3cdc20a8066de/original.jpeg?1789543803=\u0026owner_id=6576a1830ee9d100760d043d","https://img.shoplineapp.com/media/image_clips/6aaa458463f015cde24e071f/original.jpeg?1789543811=\u0026owner_id=6576a1830ee9d100760d043d","https://img.shoplineapp.com/media/image_clips/6aaa45bc512ab1cb464cab10/original.jpg?1789543867=\u0026owner_id=6576a1830ee9d100760d043d"]}</script>
6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225
6226<script type="text/javascript"> 6227document.addEventListener('DOMContentLoaded', function() { 6228/* title primary */ 6229$('.js-title-page').each(function() { 6230 if(!$(this).prev().length) { 6231 if($(this).siblings('.js-content-page').text().trim().length) { 6232 $(this).parent().addClass('primary-bg-title-color'); 6233 if($(this).closest('.Grid-row-wrapper').next().hasClass('m-remove-padding')) { 6234 $(this).closest('.Grid-row').addClass('no-margin'); 6235 } 6236 } else { 6237 $(this).addClass('primary-title-color'); 6238 } 6239 } 6240}); 6241 6242/* check IOS */ 6243var iOS = is.ios(); 6244var iOS11 = /OS 11_0|OS 11_1|OS 11_2/.test(navigator.userAgent); 6245var detectTap = false; 6246 6247if (iOS && iOS11) { 6248 $('body').addClass('ios-eleven'); 6249} 6250/* location when click in IOS */ 6251if (iOS) { 6252 $('body').addClass('ios'); 6253} 6254 6255/* hover next image */ 6256angular.element(document).ready(function () { 6257 function isQuickCartProduct(imageClass) { 6258 return imageClass === '.js-boxify-image'; 6259 } 6260 6261 function hoverProductEffect(imageClass) { 6262 var elements; 6263 elements = isQuickCartProduct(imageClass) ? $('product-item') : $('.Product-item'); 6264 6265 elements.each(function() { 6266 var $this; 6267 $this = isQuickCartProduct(imageClass) ? $(this).children().first() : $(this); 6268 var secondCoverImage = $this.find('.second-image'); 6269 if (secondCoverImage.length === 0) { return; } 6270 6271 var multiImageWrapper; 6272 multiImageWrapper = isQuickCartProduct(imageClass) ? $this.find('.js-quick-boxify-wrapper') : $this; 6273 multiImageWrapper.addClass('multi-image'); 6274 }); 6275 } 6276 6277 function loadEffect() { 6278 /* product items without quick cart feature */ 6279 hoverProductEffect('.js-image-boxify-image'); 6280 /* product items with quick cart feature */ 6281 hoverProductEffect('.js-boxify-image'); 6282 } 6283 loadEffect(); 6284 6285 /* observer lazyload-related-products multi image */ 6286 var relatedProductList = document.getElementById('relatedProductList'); 6287 if (relatedProductList) { 6288 var config = { 6289 childList: true, 6290 }; 6291 var observer = new MutationObserver(function(mutations) { 6292 loadEffect(); 6293 observer.disconnect(); 6294 }); 6295 observer.observe(relatedProductList, config); 6296 } 6297 /* observe pagination changes in multiple category widgets */ 6298 $('.product-items-container').each(function(index, productItemsContainer) { 6299 var config = { 6300 childList: true, 6301 }; 6302 var observer = new MutationObserver(function(mutations) { 6303 loadEffect(); 6304 }); 6305 6306 observer.observe(productItemsContainer, config); 6307 }); 6308}); 6309 6310/* fix single product widget as category product widget */ 6311$('.page-single-product').each(function() { 6312 if ($(this).parent().index() == 0) { 6313 $(this).closest('.Grid-row').addClass('single-product'); 6314 } 6315}); 6316 6317/* adjust number slide for owl carousel */ 6318$('carousel-display').on('initialized.owl.carousel', '.owl-carousel', function() { 6319 $('.owl-carousel').on('change.owl.carousel', function(e) { 6320 var num = $('.owl-item:not(.cloned)', this).length; 6321 var index = 1; 6322 if (e.item.count == 2) { 6323 index = ( 1 + ( e.property.value + 1 - Math.ceil( e.item.count / 2 ) ) % e.item.count || 0 ) || 1; 6324 } else { 6325 index = ( 1 + ( e.property.value - Math.ceil( e.item.count / 2 ) ) % e.item.count || 0 ) || 1; 6326 } 6327 $(this).attr('data-slide', index + ' / ' + num); 6328 }); 6329}); 6330 6331function displayViewControls() { 6332 var viewControls = $('.modal .view-controls'); 6333 if ($('.modal .js-variant-image').length > 1) { 6334 viewControls.show(); 6335 } else { 6336 viewControls.hide(); 6337 } 6338} 6339 6340app.run([ 6341 '$rootScope', 6342 '$timeout', 6343 'modalTypes', 6344 function( 6345 $rootScope, 6346 $timeout, 6347 modalTypes 6348 ) { 6349 $rootScope.$on('modal.open', function(event, payload) { 6350 if ([modalTypes.QUICK_CART, modalTypes.QUICK_CART_PRODUCT_SET].indexOf(payload.modalType) === -1) return; 6351 6352 $timeout(function() { 6353 $('.QuickCart-modal .js-variant-gallery-stage').append('<div class="view-detail js-view-detail"></div>'); 6354 $('.js-view-detail').append('<a href="' + $('.js-product-link a').attr('href') + '"><svg class="icons icon-info"><use xlink:href="#icon-info"></use></svg></a>'); 6355 $('.js-variant-gallery-stage').append( 6356 '<div class="view-controls"><span class="view-prev js-view-prev"></span><span class="view-next js-view-next"></span></div>', 6357 );
6358 displayViewControls(); 6359 6360 var gallery = document.querySelector('.js-variant-gallery-stage'); 6361 var observer = new MutationObserver(function () { 6362 displayViewControls(); 6363 }); 6364 observer.observe(gallery, { childList: true }); 6365 6366 var urlLoad = $('.js-variant-gallery-stage > a > img').attr('src'); 6367 checkImage(urlLoad); 6368 var selected = 1; 6369 var urlGallery = ''; 6370 6371 $rootScope.$on('variationSelected.key.change', function() { 6372 selected = 1; 6373 }); 6374 6375 $('.js-view-next').click(function() { 6376 selected++; 6377 if ($('.modal .js-variant-image').length < selected) { 6378 selected = 1; 6379 } 6380 urlGallery = $('.modal .js-variant-image:nth-child(' + selected + ') .image-container').attr('style').replace('thumb', 'original').split('"')[1]; 6381 checkImage(urlGallery); 6382 $('.modal .js-variant-gallery-stage > a > img').attr('src', computedSrcByStyle($('.modal .js-variant-image:nth-child(' + selected + ') .image-container'))); 6383 }); 6384 $('.js-view-prev').click(function() { 6385 selected--; 6386 if (selected < 1) { 6387 selected = $('.modal .js-variant-image').length; 6388 } 6389 urlGallery = $('.modal .js-variant-image:nth-child(' + selected + ') .image-container').attr('style').replace('thumb', 'original').split('"')[1]; 6390 checkImage(urlGallery); 6391 $('.modal .js-variant-gallery-stage > a > img').attr('src', computedSrcByStyle($('.modal .js-variant-image:nth-child(' + selected + ') .image-container'))); 6392 }); 6393 6394 function computedSrcByStyle(el) { 6395 var linkProduct = el.attr('style').replace(/"/g, '').replace(/ /g, '').replace('thumb', 'original'); 6396 var handleLeft = linkProduct.slice(linkProduct.indexOf('http')); 6397 var src; 6398 if (handleLeft.lastIndexOf(';') === handleLeft.length - 1) { 6399 src = handleLeft.slice(0, handleLeft.length - 2); 6400 } else { 6401 src = handleLeft.slice(0, handleLeft.length - 1); 6402 } 6403 6404 /* computed by style */ 6405 /* Note: if thumb url, convert to original url */ 6406 try { 6407 var maxWidth = 800; 6408 var reg = /^https?:\/\/.+\/(\d+)x\..+$/; 6409 var matchs = src.match(reg); 6410 var width = window.parseInt((matchs || [])[1]); 6411 var containerWidth = ($('.modal .js-variant-gallery-stage').width() || 0) * (window.devicePixelRatio > 1 ? 2 : 1); 6412 var useWidth = containerWidth > maxWidth ? maxWidth : containerWidth; 6413 6414 if (width && width < maxWidth && useWidth > width) { 6415 src = src.replace('/'+ width +'x.', '/' + containerWidth + 'x.'); 6416 } 6417 } catch (e) { 6418 console.warn('Error: thumb image url convert to original image url', e); 6419 } 6420 6421 return src; 6422 } 6423 6424 $('.modal .quick-cart-price .price').each(function() { 6425 if($(this).text().trim() === '') { 6426 $(this).addClass('price-empty'); 6427 } 6428 }); 6429 fixSelect(); 6430 }, 200); 6431 function checkImage(url) { 6432 var img = new Image(); 6433 img.src = url; 6434 img.onload = function() { 6435 if (this.height > this.width) { 6436 $('.js-variant-gallery-stage > a > img').addClass('img-height'); 6437 } else { 6438 $('.js-variant-gallery-stage > a > img').removeClass('img-height'); 6439 } 6440 }; 6441 }; 6442 }); 6443}]); 6444 6445/* close popup product when click mask */ 6446$(document).on('touchend', '.modal-backdrop', function() { 6447 $('.js-quick-cart-cancel').click(); 6448}); 6449 6450 6451 6452/* add class scroll for go to top button */ 6453function scrollPage() { 6454 if ($(window).scrollTop() >= 100) { 6455 $('.sl-goto-top').addClass('active'); 6456 } else { 6457 $('.sl-goto-top').removeClass('active'); 6458 } 6459} 6460$(window).on('scroll', _.throttle(scrollPage, 200)); 6461 6462$('.instagram-post .caption').dotdotdot({ 6463 wrap: 'letter', 6464 ellipsis: '...', 6465 height: 56 6466}); 6467 6468$(window).load(function() { 6469 fixSelect(); 6470}); 6471 6472/* change style select box */ 6473function fixSelect() { 6474 $('.js-selectpicker').each(function() { 6475 if ($(this).is(':visible')) { 6476 $(this).parent().addClass('selectpicker-box'); 6477 } 6478 }); 6479} 6480 6481function autoPaddingTop() { 6482 var previewingClosedStoreBanner = $('.js-previewing-closed-store-banner'); 6483 var previewingClosedStoreBannerHeight = previewingClosedStoreBanner.length ? previewingClosedStoreBanner.height() : 0; 6484} 6485autoPaddingTop(); 6486$(window).on('resize', _.debounce(autoPaddingTop, 200)); 6487 6488function syncHeaderTopWithAnnouncementHeight() { 6489 $('#shopline-section-header').css('top', $('#shopline-section-announcement').height() || 0); 6490} 6491 6492if ( 6493 $('body.cart.index, body.checkout.index, body.orders.confirm').length === 0 && 6494 $('#shopline-section-header').length > 0 6495) { 6496 if ('ResizeObserver' in window) { 6497 var observer = new ResizeObserver(_.throttle(syncHeaderTopWithAnnouncementHeight, 200)); 6498 observer.observe($('#shopline-section-announcement')[0]); 6499 } else { 6500 document.fonts.ready.then(syncHeaderTopWithAnnouncementHeight); 6501 $(window).on('resize', _.throttle(syncHeaderTopWithAnnouncementHeight, 200)); 6502 } 6503 syncHeaderTopWithAnnouncementHeight(); 6504} 6505 6506/* this code will be remove in SL-31595 */ 6507if ($('.header').hasClass('header--sticky')) { 6508 $('#shopline-section-header').css({ 6509 'position': 'sticky', 6510 'z-index': 100 6511 }); 6512} 6513/* end of this code will be remove in SL-31595 */ 6514}); 6515</script>
6515 6516 6517 6518 6519 6520 6521 6522
6523<script type="text/javascript"> 6524window.addEventListener('DOMContentLoaded', function() { 6525var $mask = $('<div class="Modal-mask cart-mask js-modal-mask" style="display: none;"></div>'); 6526var docEl = $('html, body'); 6527var wrapContent = $('#Content'); 6528var scrollTop; 6529var lockBody = function () { 6530 if (window.pageYOffset) { 6531 scrollTop = window.pageYOffset; 6532 wrapContent.css({ top: -scrollTop }); 6533 } 6534 $('html').css({ 'max-height': '100%', overflow: '' }); 6535 $('body').css({ 'max-height': '100%', overflow: 'hidden' }); 6536}; 6537 6538var unlockBody = function () { 6539 docEl.css({ 'max-height': '', overflow: '' }); 6540 wrapContent.css({ top: '' }); 6541 window.scrollTo(0, scrollTop); 6542 window.setTimeout(function () { 6543 scrollTop = null; 6544 }, 0); 6545}; 6546 6547const headerMarginBottom = 20; 6548const announcementHeight = $('.js-announcement').height() || 0; 6549const calculateHeader = () => { 6550 const headerHeight = $('.js-sticky').height() || 0; 6551 return headerHeight + announcementHeight; 6552}; 6553 6554/* add top css for cart panel */ 6555$('head').append('<style id="fix-cart">#cart-panel { top: ' + calculateHeader() + 'px; }</style>'); 6556function setHeaderTop() { 6557 if ($(window).scrollTop() >= 200) { 6558 $('.js-product-thumb, .js-product-info').css('top', calculateHeader()); 6559 } else { 6560 $('.js-product-thumb, .js-product-info').removeAttr('style'); 6561 } 6562}; 6563if (window.matchMedia('(min-width: 1200px)').matches) { 6564 $(window).on('load', setHeaderTop); 6565 $(window).on('scroll', _.throttle(setHeaderTop, 200)); 6566} 6567 6568/* call sidr for cart panel */ 6569var isMobile = $('.js-navigationbar-mobile').length; 6570$('.js-cart-panel').unbind(); 6571$('.sl-cart-toggle').sidr(new SidrOptions({ 6572 name: 'cart-panel', 6573 onOpen: function() { 6574 window.shopline?.slEventBus?.once('cart.miniCartLoadData', miniCartLoadedProduct); 6575 $('.js-cart-panel').addClass('is-open'); 6576 $mask.css({'display': 'block' }); 6577 angular.element('body').scope().$broadcast('cart.reload'); 6578 adjustCartPanel(); 6579 setHeaderTop(); 6580 if (isMobile) lockBody(); 6581 }, 6582 onClose: function() { 6583 $('.js-cart-panel').removeClass('is-open'); 6584 $mask.css({'display': 'none'}); 6585 if (isMobile) unlockBody(); 6586 window.shopline?.slEventBus?.off('cart.miniCartLoadData', miniCartLoadedProduct); 6587 clearTimeout(keepCart); 6588 $('#cart-panel').removeAttr('data-manual-open'); 6589 } 6590})); 6591 6592$('.sl-cart-toggle').on('click', function() { 6593 $('#cart-panel').attr('data-manual-open', 'true'); 6594}); 6595$mask 6596 .appendTo('body') 6597 .on('click', function() { 6598 $.sidr('close', 'cart-panel'); 6599 $mask.css({'display': 'none'}); 6600 }); 6601 6602/* auto close cart panel in 3 second if no hover */ 6603if (!is.touchDevice()) { 6604 var keepCart; 6605 var cartPanel = document.querySelector('.js-cart-panel'); 6606 6607 $(document).on('click', '.js-btn-add-to-cart, .js-btn-quick-cart-add-to-cart, .quick-cart-button-container', function() { 6608 var observer = (new MutationObserver(function() { 6609 clearTimeout(keepCart); 6610 keepCart = setTimeout(function() { 6611 $.sidr('close', 'cart-panel'); 6612 $mask.css({'display': 'none'}); 6613 }, 3000); 6614 6615 observer.disconnect(); 6616 })); 6617 6618 observer.observe( 6619 cartPanel, 6620 { attributes: true } 6621 ); 6622 }); 6623 6624 /* keep cart panel if hover */ 6625 cartPanel.addEventListener('mouseover', function() { 6626 clearTimeout(keepCart); 6627 }); 6628} 6629 6630/* close currency and menu panel when choose currency */ 6631$('.sl-currency-chooser-currency').on('click', function() { 6632 $.sidr('close', 'CurrencyPanel'); 6633 $.sidr('close', 'MenuPanel'); 6634 $('.sl-modal-mask').css({'display': 'none'}); 6635}); 6636 6637 6638function miniCartLoadedProduct(cartData) { 6639 adjustCartPanel(); 6640 const injector = angular.element(document.body)?.injector(); 6641 const trackerService = injector?.get('trackerService'); 6642 const showType = $('#cart-panel').attr('data-manual-open') === 'true' ? 'manual_click' : 'automatic'; 6643 const productIds = cartData?.items?.map(item => (item.product_id)) || []; 6644 const productIdsUnique = [...new Set(productIds)]; 6645 trackerService?.track({ 6646 type: trackerService?.generalEventType?.MiniCartImpression, 6647 data: { 6648 page_type: window.mainConfig.pageIdentifier, 6649 show_type: showType, 6650 cart_item_list: productIdsUnique, 6651 cart_unique_item_count: productIdsUnique.length, 6652 cart_total_item_count: cartData?.items?.reduce((total, item) => total + item.quantity, 0) || 0, 6653 }, 6654 }); 6655} 6656 6657function adjustCartPanel() { 6658 if (window.matchMedia('(max-width: 1199px)').matches) return; 6659 6660 const headerHight = calculateHeader(); 6661 /* adjust cart panel in short browser*/ 6662 const bottomSpace = 52; 6663 const navHeight = headerHight;
6664 const checkoutButtonContainerHeight = $('#cart-panel .cart-chkt-btn-cont').outerHeight(); 6665 const cartItemListMaxHeight = navHeight + checkoutButtonContainerHeight + bottomSpace; 6666 $('#cart-panel .cart-items, #cart-panel .cart-panel-empty-wrapper').css({ 6667 'max-height': 'calc(100vh - ' + cartItemListMaxHeight + 'px)' 6668 }); 6669 6670 /* adjust cart panel when header not sticky */ 6671 let cartPosition = headerHight; 6672 const headerHeight = $('.js-navigationbar-desktop').height() || 0; 6673 if ( 6674 $('#shopline-section-header').length > 0 && 6675 $('#shopline-section-header').css('position') !== 'sticky' && 6676 $(window).scrollTop() >= headerHight 6677 ) { 6678 cartPosition = cartPosition - headerHeight + headerMarginBottom; 6679 } 6680 $('head #fix-cart').html('#cart-panel { top: ' + cartPosition + 'px; } @media (max-width: 1199px){ #cart-panel { top: 0; }}'); 6681}; 6682 6683$(window).on('resize, scroll', _.debounce(function() { 6684 adjustCartPanel(); 6685}, 200)); 6686}); 6687</script>
6687 6688 6689 6690
6691<script type="text/javascript"> 6692document.addEventListener('DOMContentLoaded', function() { 6693$('.js-productlist-nestedlist').on('click', function(event) { 6694 if(!$(event.target).is('a.Label')) { 6695 var target = $(this).find('.ProductList-nestedList-dropdown'); 6696 if (target.is(':visible')) { 6697 target.slideUp(); 6698 $(this).removeClass('active'); 6699 } else { 6700 target.slideDown(); 6701 $(this).addClass('active'); 6702 } 6703 } 6704}); 6705 6706 6707$('.js-productlist-nestedlist.second-layer-content').hover(function() { 6708 var thirdLayer = $(this).find('.NestedList-Wrapper.js-productlist-nestedlist-dropdown'); 6709 if ($(this).attr('is-collapsed') === 'true') { 6710 $('ul:not(:animated)', this).slideDown(); 6711 } 6712 /* move 3rd layer up when it longer than the screen */ 6713 if (thirdLayer.length !== 0) { 6714 var bottom3rdLayer = thirdLayer.offset().top + thirdLayer.outerHeight(); 6715 var scrollBotWindow = $(window).scrollTop() + $(window).height(); 6716 if (bottom3rdLayer >= scrollBotWindow) { 6717 thirdLayer.css({'top': scrollBotWindow - bottom3rdLayer - 30 + 'px'}); 6718 } 6719 } 6720}, function() {
6721 var thirdLayer = $(this).find('.NestedList-Wrapper.js-productlist-nestedlist-dropdown'); 6722 if ($(this).attr('is-collapsed') === 'true') { 6723 $('ul', this).slideUp(); 6724 } 6725 thirdLayer.removeAttr("style"); 6726}); 6727 6728/* custom select box for sort */ 6729if ($('.js-setting-sort li.active').length) { 6730 $('.js-setting-sort span').text($('.js-setting-sort li.active').first().text()); 6731} 6732 6733 6734if ($('.js-setting-filter li.active').length) { 6735 $('.js-setting-filter span').text($('.js-setting-filter li.active').text()); 6736} 6737 6738if ($('.js-setting-limit li.active').length) { 6739 $('.js-setting-limit span').text($('.js-setting-limit li.active').text()); 6740} 6741 6742$('.js-setting-sort li').each(function() { 6743 $(this).click(function() { 6744 $(this).closest('.js-setting-sort').find('span').text($(this).text()); 6745 $('.sl-products-sorting').val($(this).data('value')).trigger('change'); 6746 }); 6747}); 6748 6749$('.js-setting-filter li').each(function() { 6750 $(this).click(function() { 6751 $(this).closest('.js-setting-filter').find('span').text($(this).text()); 6752 $('.sl-products-filter').val($(this).data('value')).trigger('change'); 6753 }); 6754}); 6755 6756$('.js-setting-limit li').each(function() { 6757 $(this).click(function() { 6758 $(this).closest('.js-setting-limit').find('span').text($(this).text()); 6759 $('.sl-products-limit').val($(this).data('value')).trigger('change'); 6760 }); 6761}); 6762 6763$('.setting-limit'). on('click', 'li', function(){ 6764 $('.sl-products-limit').val($(this).data('value')).trigger('change'); 6765}); 6766 6767/* arrow icon should be hidden if category has no subcategories */ 6768$('.js-productlist-nestedlist, .js-mobile-productlist-nestedlist').each(function(category) { 6769 var targetList = $(this).is('.js-productlist-nestedlist') ? '.js-productlist-nestedlist' : '.js-mobile-productlist-nestedlist'; 6770 var $subcategory = $(this).find(targetList + '-dropdown'); 6771 var subcategoryCount = $subcategory.children().length; 6772 if(subcategoryCount === 0) { 6773 $(this).find('.fa').remove(); 6774 $(this).removeClass('ProductList-nestedList js-productlist-nestedlist MenuPanel-nestedList sl-dropdown'); 6775 $subcategory.remove(); 6776 } 6777}); 6778}); 6779</script>
6779 6780 6781 6782 6783
6784<script type="text/javascript"> 6785document.addEventListener('DOMContentLoaded', function() { 6786const PDP_TAB_CLICK = 'PDPTabClick'; 6787const SHOP = 'shop'; 6788const PDP = 'PDP'; 6789const TAB_NAME_CONFIG = { 6790 description: 'description', 6791 moreInfo: 'more_info', 6792 deliveryPayment: 'delivery_and_payment', 6793 review: 'review', 6794}; 6795/* change gallery vertical to horizontal */ 6796function setVerticalVariantGallery() { 6797 var variantImageHeight = 72; 6798 var variantImageMarginBottom = 10; 6799 var imageTotalHeight = variantImageHeight + variantImageMarginBottom; 6800 $(document).on('click', '.js-variant-gallery-control.right', function() { 6801 $('.js-variant-gallery-scroll-container').animate({ scrollTop: ($('.js-variant-image.selected').index() + 1) * imageTotalHeight }, 200); 6802 }); 6803 $(document).on('click', '.js-variant-gallery-control.left', function() { 6804 $('.js-variant-gallery-scroll-container').animate({ scrollTop: ($('.js-variant-image.selected').index() * imageTotalHeight) - imageTotalHeight }, 200); 6805 }); 6806} 6807setVerticalVariantGallery(); 6808var hScroll = 0; 6809$(window).on('load scroll', function() { 6810 if ($(window).scrollTop() > 200) { 6811 hScroll = $('.js-navigationbar-desktop').height() - 40; 6812 } else { 6813 hScroll = 0; 6814 } 6815}); 6816 6817function setStickyVariantGallery() { 6818 var hHeader = window.matchMedia('(min-width: 1200px)').matches ? $('.js-sticky').height() : $('.js-navigationbar-mobile').height(); 6819 hHeader = hHeader + $('.js-announcement').height(); 6820 if( $(window).scrollTop() >= 200) { 6821 $('.variant-gallery').css('top', hHeader); 6822 } else { 6823 $('.variant-gallery').css('top', 'auto'); 6824 } 6825} 6826$(window).on('scroll', _.throttle(setStickyVariantGallery, 200)); 6827 6828var gallery = document.querySelector('product-variant-gallery'); 6829obServe(gallery); 6830 6831app.run([ 6832 '$rootScope', 6833 '$timeout', 6834 function( 6835 $rootScope, 6836 $timeout 6837 ) { 6838 $rootScope.$on('productGallery.load', function() { 6839 $timeout(function() { 6840 var variation = document.querySelector('product-variant-gallery .variant-gallery-slider'); 6841 $('.addon-item-chkbox').wrapInner('<label></label>'); 6842 $('.addon-item-chkbox label').append('<span></span>'); 6843 $('.addon-promotions-header, .addon-promotion-list').wrapAll('<div class="addon-promotion-shadow"></div>'); 6844 obServe(variation); 6845 }); 6846 }); 6847 } 6848]); 6849 6850 6851function obServe(el) { 6852 if (el) { 6853 var config = { attributes: false, childList: true, subtree: false }; 6854 var observer; 6855 var callback = function(mutationsList, observer) { 6856 checkGalleryLoad(); 6857 }; 6858 observer = new MutationObserver(callback); 6859 observer.observe(el, config); 6860 } 6861} 6862 6863function checkGalleryLoad() { 6864 /* (mobile) add picture total number */ 6865 var num; 6866 function checkSlide() { 6867 num = $('.variant-gallery .js-variant-gallery-scroll-container .js-variant-image').length; 6868 $('product-variant-gallery').attr('data-slide', '1 / ' + num); 6869 } 6870 checkSlide(); 6871 6872 /* (mobile) add swipe event to change image number */ 6873 $('.js-variant-gallery-stage').on('swipeleft', function() { 6874 var el = $('.variant-gallery .js-variant-gallery-scroll-container .js-variant-image'); 6875 var sel = $('.variant-gallery .js-variant-gallery-scroll-container .js-variant-image.selected'); 6876 if (sel.index() != (el.length - 1)) { 6877 $('product-variant-gallery').attr('data-slide', (sel.index() + 2) + ' / ' + num); 6878 } 6879 }); 6880 $('.js-variant-gallery-stage').on('swiperight', function() { 6881 var el = $('.variant-gallery .js-variant-gallery-scroll-container .js-variant-image'); 6882 var sel = $('.variant-gallery .js-variant-gallery-scroll-container .js-variant-image.selected'); 6883 if (sel.index() != 0) { 6884 $('product-variant-gallery').attr('data-slide', sel.index() + ' / ' + num); 6885 } 6886 }); 6887} 6888 6889$('.js-accordion-title').each(function() { 6890 /* set default expand */ 6891 if ($(this).parent().hasClass('active')) { 6892 $(this).next().css('display', 'block'); 6893 } 6894}); 6895$('.js-accordion-title').on('click', function() { 6896 $(this).parent().toggleClass('active'); 6897 $(this).next().stop().slideToggle(); 6898 const isOpening = $(this).parent().hasClass('active'); 6899 if (isOpening) { 6900 const tabName = TAB_NAME_CONFIG[this.dataset.tabName]; 6901 if (tabName) { 6902 trackClickTab(tabName); 6903 } 6904 } 6905}); 6906 6907var pos = 0; 6908var text = ''; 6909var isAvailableTimeDisabled;
6910var btns = [ 6911 '.js-btn-main-checkout:visible', 6912 '.js-btn-addon-checkout:visible', 6913 '.js-btn-main-add-to-cart:visible', 6914 '.js-btn-contact-us:visible', 6915 '.js-btn-back-in-stock:visible' 6916]; 6917 6918var addCartIconWithText = function(text) { 6919 return '<svg class="icons icon-cart"><use xlink:href="#icon-cart"></use></svg><span class="btn-text">' + 6920 text + 6921 '</div>'; 6922}; 6923 6924app.run(['buyNowService', 'fastCheckoutService', function(buyNowService, fastCheckoutService) { 6925 setTimeout(function() { 6926 function checkButton() { 6927 btns.forEach(function(sel) { 6928 var $btn = $(sel); 6929 if ($btn.length) { 6930 pos = $btn.offset().top; 6931 if (sel == '.js-btn-back-in-stock:visible') { 6932 text = $('#back-in-stock-content').text(); 6933 } else { 6934 text = $btn.text(); 6935 } 6936 isAvailableTimeDisabled = $btn.hasClass('available-time-disabled'); 6937 } 6938 }); 6939 } 6940 checkButton(); 6941 var $btn = $('<div class="btn-cart-fixed js-btn-cart-fixed">' + addCartIconWithText(text) + '</div>'); 6942 if (isAvailableTimeDisabled) { 6943 $btn.addClass('available-time-disabled'); 6944 } 6945 if ($('.js-btn-contact-us:visible').length) { 6946 $btn.addClass('is-contact-us'); 6947 } 6948 if ($('.js-btn-contact-us:visible').length) { 6949 $btn.on('click', function() { 6950 $('.js-btn-contact-us').click(); 6951 }); 6952 } 6953 6954 if ($('.js-btn-back-in-stock:visible').length) { 6955 if ($('.js-btn-back-in-stock:visible').hasClass('is-active')) { 6956 $btn.addClass('is-back-in-stock'); 6957 } 6958 6959 var target = $('#back-in-stock-content').get(0); 6960 6961 var config = { childList: true, subtree: true }; 6962 6963 var observer = new MutationObserver(function() { 6964 var newText = $('#back-in-stock-content').text(); 6965 $btn.html(newText); 6966 if ($btn.hasClass('is-back-in-stock')) { 6967 $btn.removeClass('is-back-in-stock'); 6968 } else { 6969 $btn.addClass('is-back-in-stock'); 6970 } 6971 6972 }); 6973 6974 observer.observe(target, config); 6975 6976 $btn.on('click', function() { 6977 $('.js-btn-back-in-stock:visible').click(); 6978 }); 6979 } 6980 6981 $('.js-sticky-cart-button-container').append($btn); 6982 if (buyNowService.isEnabled()) { 6983 buyNowService.createFixedBuyNowButton(); 6984 } 6985 if (fastCheckoutService.isSpbEnabled) { 6986 fastCheckoutService.createFixedFastCheckoutButton(); 6987 } 6988 }, 600); 6989}]); 6990 6991app.run(['$timeout', function($timeout) { $timeout(function() { 6992 $(document).on('click', '.js-btn-cart-fixed:not(.available-time-disabled)', function() { 6993 btns.forEach(function(sel) { 6994 var $btn = $(sel); 6995 if ($btn.length) { 6996 if ( 6997 sel === ".js-btn-back-in-stock:visible" && 6998 $(".js-btn-back-in-stock:visible").length 6999 ) { 7000 $("html,body").animate({ scrollTop: 0 }, 700); 7001 } 7002 $('.ProductDetail-product-info').find('.box-default').find($btn).click(); 7003 } 7004 }); 7005 }); 7006 7007 /* handle fixed button buy together */ 7008 angular.element($('[ng-controller="ProductsShowController"]')).scope()?.$watch("state", function(newValue, oldValue){ 7009 var btnBuyTogether = $('.js-btn-addon-checkout'); 7010 setTimeout(function() { 7011 if(newValue.addonItemEnabled){ 7012 $('.js-btn-cart-fixed').html(addCartIconWithText(btnBuyTogether.text())); 7013 } else { 7014 btns.forEach(function(sel) { 7015 var $btn = $(sel); 7016 if ($btn.length) { 7017 $('.js-btn-cart-fixed').html(addCartIconWithText($btn.text())); 7018 } 7019 }); 7020 } 7021 $(document).on('click', '.js-btn-back-in-stock:visible ', function() { 7022 if ('.btn-add-back-in-stock.is-active:visible') { 7023 $('.js-btn-cart-fixed:not(.available-time-disabled)').show() 7024 } else { 7025 $('.js-btn-cart-fixed:not(.available-time-disabled)').hide() 7026 } 7027 }); 7028 }, 500); 7029 }, true); 7030})}]); 7031 7032$(window).load(function() { 7033 7034 /* Fix timing of mobile sticky button display, when replace product image placeholder or carousel change image */ 7035 if ($(window).width() <= 767) { 7036 const observer = new ResizeObserver(_.throttle(() => { 7037 btns.forEach(function(sel) { 7038 const $btn = $(sel); 7039 if ($btn.length) { 7040 pos = $btn.offset().top; 7041 } 7042 }); 7043 if (document.querySelectorAll('.ProductDetail-product-gallery img').length === 2) { 7044 /* only one picture */ 7045 observer.disconnect(); 7046 } 7047 }, 500, { trailing: true })); 7048 7049 const target = document.querySelectorAll('.ProductDetail-product-gallery'); 7050 if (target.length > 1) observer.observe(target[1]); 7051 } 7052 7053 /* zoom img */ 7054 var targetImage = $('.variant-gallery-stage')[0]; 7055 setZoomIn(); 7056 if (targetImage) { 7057 mainPictureObserver.observe(targetImage, { 7058 childList: true, 7059 }); 7060 } 7061 /* add custom button add to cart and fixed if scroll through button add to cart default */ 7062 let spbBarHeight = 0; 7063 if ($('body').attr('zb-bar') === 'show') { 7064 spbBarHeight = $('#spb-information-bar').height() || 0; 7065 } 7066 const $header = $('.js-sticky'); 7067 const STATIC_BUTTONS_PADDING_TOP = 15; 7068 const announcementHeight = ($('.js-announcement').height() || 0); 7069 let hHeader = announcementHeight; 7070 /* if new page builder not sticky, not add header height */ 7071 if ($('#shopline-section-header').length === 0 || $('#shopline-section-header').css('position') === 'sticky') { 7072 hHeader = hHeader + ($header.height() || 0); 7073 } 7074 7075 const cartButtonsDistanceFromTop = hHeader + STATIC_BUTTONS_PADDING_TOP + spbBarHeight; 7076 $('.js-sticky-cart-button-container').css('top', cartButtonsDistanceFromTop); 7077 7078 $(window).scroll(function() {
7079 let cartButtonsDistanceFromTop = announcementHeight + STATIC_BUTTONS_PADDING_TOP + spbBarHeight; 7080 if ($('#shopline-section-header').length === 0 || $('#shopline-section-header').css('position') === 'sticky') { 7081 cartButtonsDistanceFromTop = cartButtonsDistanceFromTop + ($header.height() || 0); 7082 } 7083 7084 $('.js-sticky-cart-button-container').css('top', cartButtonsDistanceFromTop); 7085 if (window.matchMedia('(min-width: 767px)').matches) { 7086 if ($(window).scrollTop() > pos && !isAvailableTimeDisabled) { 7087 $('.js-sticky-cart-button-container').addClass('active'); 7088 } else { 7089 $('.js-sticky-cart-button-container').removeClass('active'); 7090 } 7091 } else { 7092 if ($(window).scrollTop() > pos) { 7093 $('.js-sticky-cart-button-container').addClass('active'); 7094 } else { 7095 $('.js-sticky-cart-button-container').removeClass('active'); 7096 } 7097 } 7098 }); 7099}); 7100 7101$('.js-product-info .js-price').each(function() { 7102 if($(this).text().trim() === '') { 7103 $(this).addClass('price-empty'); 7104 } 7105}); 7106 7107var mainPictureObserver = new MutationObserver(function () { 7108 setZoomIn(); 7109}); 7110 7111function setZoomIn() { 7112 setTimeout(function () { 7113 var targetImgs = $('.js-variant-gallery-stage .img-responsive'); 7114 targetImgs.each(function(_, targetImg) { 7115 var originImgUrl = $(targetImg).attr('src'); 7116 $(targetImg).parent().trigger('zoom.destroy').zoom({ 7117 url: originImgUrl, 7118 magnify: 1.2, 7119 }); 7120 }) 7121 },0); 7122} 7123 7124app.run([ 7125 '$rootScope', 7126 '$timeout', 7127 'imageService', 7128 function($rootScope, $timeout, imageService) { 7129 var observer; 7130 var config = { attributes: false, childList: true, subtree: true }; 7131 var callback = function() { 7132 if ($('.img-responsive').length > 0 && $('.zoomImg').length === $('.img-responsive').length) { 7133 $('.img-responsive').each(function(index) { 7134 var mainImg = $(this).parents().find('.zoomImg').eq(index).attr('src'); 7135 var largeMainImg = imageService.getLargeImage(mainImg); 7136 $(this).attr('src', largeMainImg); 7137 }); 7138 } 7139 }; 7140 7141 observer = new MutationObserver(callback); 7142 const target = $('product-variant-gallery').get(0); 7143 if (target) observer.observe(target, config); 7144 } 7145]); 7146 7147function trackClickTab(tabName) { 7148 window.APP_EXTENSION_SDK_ANGULAR_JS_LOADED.then(() => { 7149 const injector = angular.element(document.body)?.injector(); 7150 const trackerService = injector.get('trackerService'); 7151 trackerService.track({ 7152 type: PDP_TAB_CLICK, 7153 data: { 7154 event_category: PDP, 7155 tab_name: tabName, 7156 scope: SHOP, 7157 }, 7158 }); 7159 }); 7160} 7161}); 7162</script>
7162 7163 7164 7165 7166
7167<script type="text/javascript"> 7168document.addEventListener('DOMContentLoaded', function() { 7169/* set background for post */ 7170$('.js-posts-excerpt').each(function() { 7171 if ($('img', this).length) { 7172 var url = $('img', this).attr('src'); 7173 $(this).empty().css('background-image', 'url(' + url + ')'); 7174 } else { 7175 $(this).empty().css('background-image', 'url(https://shoplineimg.com/5b457f3210abb98a4d0028f7/5c41b52d41652b000f9be4ad/800x.jpg)'); 7176 } 7177}); 7178}); 7179</script>
7179 7180 7181 7182
7183<script type="text/javascript"> 7184document.addEventListener('DOMContentLoaded', function() { 7185$( document ).ready(function() { 7186 setTimeout(function() { 7187 $('.PromotionCart-content .cart-item-container').each(function() { 7188 $(this).find('.remove-button').empty(); 7189 $(this).find('.remove-button').append('<i class="fa fa-times" aria-hidden="true"></i>'); 7190 }); 7191 }, 500); 7192}); 7193 7194 7195function changeIcon(oldIcon, newIcon) { 7196 oldIcon.each(function() { 7197 $(this).html(newIcon); 7198 }); 7199} 7200 7201changeIcon($('.PromotionCart-content .product-content .input-group-btn:first-child > .btn'), '<svg class="icons icon-minus"><use xlink:href="#icon-minus"></use></svg>'); 7202changeIcon($('.PromotionCart-content .product-content .input-group-btn:last-child > .btn'), '<svg class="icons icon-plus"><use xlink:href="#icon-plus"></use></svg>'); 7203}); 7204</script>
7204 7205 7206 7207
7208<script type="text/javascript"> 7209document.addEventListener('DOMContentLoaded', function() { 7210/* add class to style scroll */ 7211$('.js-tabset-tabs').wrap('<div class="sr-tab"></div>'); 7212}); 7213</script>
7213 7214 7215 7216
7217<script type="text/javascript"> 7218document.addEventListener('DOMContentLoaded', function() { 7219function collapseThirdLayer(currentDOM) { 7220 $('.menu-list-item.fa-angle-left').each(function() { 7221 if (this !== currentDOM){ 7222 toggleDropdown(this); 7223 } 7224 }); 7225} 7226 7227function assignDropdownID() { 7228 var index = 0; 7229 $('.NavigationBar-mainMenu .List-item').each(function() { 7230 index++; 7231 var $el = $(this); 7232 $el.attr('id', 'main-nav-list-' + index); 7233 var depth = _.reduce($el.parentsUntil('.NavigationBar-mainMenu').toArray(), function(acc, el) { 7234 var $current = $(el); 7235 if ($current.hasClass('NavigationBar-nestedList')) { 7236 $el.attr('data-parent-item', $current.attr('id')); 7237 return acc + 1; 7238 } else { 7239 return acc; 7240 } 7241 }, 0); 7242 $el.addClass('depth-' + depth); 7243 }); 7244} 7245 7246function assignMobileDropdownID() { 7247 var index = 0; 7248 $('.MenuPanel-mainMenu .List-item').each(function(){ 7249 index++; 7250 var $el = $(this); 7251 $el.attr('id', 'main-menu-list-' + index); 7252 var depth = _.reduce($el.parentsUntil('.MenuPanel-mainMenu').toArray(), function(acc, el) { 7253 var $current = $(el); 7254 if ($current.hasClass('MenuPanel-nestedList')) { 7255 $el.attr('data-parent-item', $current.attr('id')); 7256 return acc + 1; 7257 } else { 7258 return acc; 7259 } 7260 }, 0); 7261 $el.addClass('depth-' + depth); 7262 }); 7263} 7264 7265function assignDropdownFunction(){ 7266 $('.NavigationBar-mainMenu').on('click', 'i.menu-list-item', function() { 7267 toggleDropdown(this); 7268 if ($(this).hasClass('fa-angle-left')) { 7269 handleUIScrollThirdLayer($(this)); 7270 } 7271 }); 7272} 7273 7274function handleUIScrollThirdLayer(btnClickOpen3Layer) { 7275 var hSecondLayer = btnClickOpen3Layer.closest('.js-nav-nestedlist-dropdown').height(); 7276 var hThirdLayer = 0; 7277 btnClickOpen3Layer.nextAll('.NavigationBar-nestedList-expand').eq(0).find('li').each(function(index, item) { 7278 hThirdLayer += $(item).height(); 7279 }); 7280 if ((hThirdLayer > hSecondLayer) && (!btnClickOpen3Layer.nextAll('.NavigationBar-nestedList-expand').eq(0).hasClass('scroll-third-layer'))) { 7281 btnClickOpen3Layer.nextAll('.NavigationBar-nestedList-expand').eq(0).addClass('scroll-third-layer'); 7282 } 7283} 7284 7285function calculateCSSByTargetHeight(target, dropdownIdentifer, toggle) { 7286 var $dropdown = ('.List-item#' + dropdownIdentifer + ' > .js-nav-nestedlist-dropdown'); 7287 var maxWidth = parseInt($($dropdown).css('max-width'), 0); 7288 var currentHeight = $($dropdown).height(); 7289 var foundFlag = false; 7290 var totalHeight = 0; 7291 var targetHeight = 0; 7292 var rowNum = 0; 7293 var targetWidth = 0; 7294 var totalWidth = 0; 7295 var rowWidth = $($dropdown + '> li').outerWidth(); 7296 7297 $($dropdown + '> li').each(function() { 7298 if ((totalHeight + $(this).height()) > currentHeight) { 7299 totalHeight = $(this).height(); 7300 rowNum += 1; 7301 } else { 7302 totalHeight += $(this).height(); 7303 } 7304 totalWidth = (rowNum + 1) * rowWidth; 7305 if (!foundFlag) { 7306 targetHeight = totalHeight; 7307 targetWidth = totalWidth; 7308 } 7309 hideItemOfColumnAfterTargetColumn(this, targetWidth, totalWidth); 7310 if (this.id === target) { 7311 targetHeight -= $(this).height(); 7312 foundFlag = true; 7313 if (!$($dropdown).next().hasClass('disable')) { 7314 $($dropdown).next().addClass('disable'); 7315 } 7316 } 7317 }); 7318 if (targetWidth > maxWidth) { 7319 if($($dropdown).next().hasClass('disable')) { 7320 $($dropdown).next().removeClass('disable'); 7321 } 7322 }; 7323 controlDropdownHeight(targetWidth, rowWidth, dropdownIdentifer, currentHeight); 7324 return {'targetWidth': targetWidth, 'targetHeight': targetHeight, 'foundFlag': foundFlag}; 7325} 7326 7327function controlDropdownHeight(targetWidth, rowWidth, dropdownIdentifer, currentHeight) { 7328 var $dropdown = ('.List-item#' + dropdownIdentifer + ' > .js-nav-nestedlist-dropdown'); 7329 if (targetWidth > rowWidth) { 7330 $('.NavigationBar-nestedList-expand').css('max-height',$($dropdown).height()); 7331 } 7332 $($dropdown).css('height', currentHeight); 7333 $($dropdown).next().css('height', currentHeight); 7334} 7335 7336function hideItemOfColumnAfterTargetColumn(caller, targetWidth, totalWidth) { 7337 if (targetWidth < totalWidth) { 7338 $(caller).hide(); 7339 } else { 7340 $(caller).show(); 7341 }; 7342} 7343 7344function calulateSecondLayerCSSAfterClick(caller) { 7345 var dropdownIdentifer = $(caller).parent().attr('data-parent-item'); 7346 var lastItemID = $('.List-item#' + dropdownIdentifer+' > .js-nav-nestedlist-dropdown' + '> li').length; 7347 if (caller.classList.contains('fa-angle-right')) { 7348 return calculateCSSByTargetHeight($(caller).parent()[0].id, dropdownIdentifer); 7349 } 7350 else{ 7351 return calculateCSSByTargetHeight(lastItemID, dropdownIdentifer); 7352 }; 7353} 7354 7355function toggleDropdown(caller) { 7356 if ($(caller).nextAll('.NavigationBar-nestedList-expand').eq(0).hasClass('collapsing')) { 7357 return; 7358 } 7359 collapseThirdLayer(caller); 7360 var dropdownIdentifer = $(caller).parent().attr('data-parent-item'); 7361 var $dropdown = ('.List-item#' + dropdownIdentifer + ' > .js-nav-nestedlist-dropdown'); 7362 var maxWidth = parseInt($($dropdown).css('max-width'), 0); 7363 var lastItemID = $($dropdown).length; 7364 var rowWidth = $($dropdown + '> li').outerWidth(); 7365 var targetWidth = calulateSecondLayerCSSAfterClick(caller)['targetWidth']; 7366 var top = calulateSecondLayerCSSAfterClick(caller)['targetHeight']; 7367 var foundFlag = calulateSecondLayerCSSAfterClick(caller)['foundFlag']; 7368 7369 if (foundFlag) { 7370 targetWidth += rowWidth; 7371 } 7372 7373 $(caller).toggleClass('fa-angle-left fa-angle-right'); 7374 changeThirdLayerCSS(caller, $dropdown, top); 7375 controlSecondLayerCSS(caller, $dropdown, targetWidth); 7376 scrollDropdownWhenManyColumns(targetWidth, maxWidth, $dropdown, foundFlag); 7377} 7378 7379function changeThirdLayerCSS(caller, $dropdown, top) { 7380 $(caller).nextAll('.NavigationBar-nestedList-expand').eq(0).css('min-height', $($dropdown).height()); 7381 $(caller).nextAll('.NavigationBar-nestedList-expand').eq(0).collapse('toggle'); 7382 $(caller).nextAll('.NavigationBar-nestedList-expand').eq(0).css('top', -top); 7383} 7384 7385function scrollDropdownWhenManyColumns(targetWidth, maxWidth, $dropdown, foundFlag) { 7386 if (targetWidth > maxWidth) { 7387 if (foundFlag) { 7388 var tempLeft = $($dropdown).scrollLeft(); 7389 $($dropdown).animate({ scrollLeft: tempLeft + (targetWidth - maxWidth) }); 7390 } else { 7391 /* To trigger scrollSubmenu in menu.js.liquid */ 7392 $($dropdown).scroll(); 7393 } 7394 } 7395} 7396 7397function controlSecondLayerCSS(caller, $dropdown, targetWidth) { 7398 if ($($dropdown).height() < $(caller).nextAll('.NavigationBar-nestedList-expand').eq(0).height()) { 7399 $($dropdown).css('height', $(caller).nextAll('.NavigationBar-nestedList-expand').eq(0).height()); 7400 $($dropdown).next().css('height', $($dropdown).height()); 7401 } else { 7402 $($dropdown).css('height', ''); 7403 $($dropdown).next().css('height', $($dropdown).height()); 7404 } 7405 $($dropdown).next().css('width', targetWidth); 7406 $($dropdown).css('width', targetWidth); 7407 var callerData = $(caller)[0].getBoundingClientRect(); 7408 var rightOffset = $(window).width() - callerData.right; 7409 if (rightOffset < 250 && $(caller).hasClass('fa-angle-left')) { 7410 $($dropdown).css({'left': rightOffset - 250}
7410); 7411 } else { 7412 $($dropdown).css({'left': 0}); 7413 } 7414} 7415 7416window.onload = function() { 7417 angular.element(document).ready(function() { 7418 assignDropdownID(); 7419 assignMobileDropdownID(); 7420 assignDropdownFunction(); 7421 $('.NavigationBar-mainMenu').on( 'mouseleave', '.depth-0', function() { 7422 collapseThirdLayer('empty'); 7423 }); 7424 7425 $('.js-navbar-desktop').find('.NavigationBar-nestedList.depth-1').each(function() { 7426 $(this).children('a.Label').css({'padding-right': 0, 'max-width': 175}); 7427 }); 7428 7429 function isQuickCartProduct(imageClass) { 7430 return imageClass === '.js-boxify-image'; 7431 } 7432 7433 function hoverProductEffect(imageClass) { 7434 var elements; 7435 elements = isQuickCartProduct(imageClass) ? $('product-item') : $('.Product-item'); 7436 elements.each(function() { 7437 var $this; 7438 $this = isQuickCartProduct(imageClass) ? $(this).children().first() : $(this); 7439 var secondCoverImage = $this.find('.second-image'); 7440 if (secondCoverImage.length === 0) { return; } 7441 7442 var multiImageWrapper; 7443 multiImageWrapper = isQuickCartProduct(imageClass) ? $this.find('.js-quick-boxify-image') : $this; 7444 multiImageWrapper.addClass('multi-image'); 7445 }); 7446 } 7447 7448 function loadEffect() { 7449 /* product items without quick cart feature */ 7450 hoverProductEffect('.js-image-boxify-image'); 7451 /* product items with quick cart feature */ 7452 hoverProductEffect('.js-boxify-image'); 7453 } 7454 loadEffect(); 7455 7456 /* observe pagination changes in multiple category widgets */ 7457 $('.product-items-container').each(function(index, productItemsContainer) { 7458 var config = { 7459 childList: true, 7460 }; 7461 var observer = new MutationObserver(function(mutations) { 7462 loadEffect(); 7463 }); 7464 7465 observer.observe(productItemsContainer, config); 7466 }); 7467 }); 7468} 7469}); 7470</script>
7470 7471 7472 7473 7474
7475<script type="text/javascript"> 7476document.addEventListener('DOMContentLoaded', function() { 7477/* Track PDP, PLP, Blog, Blog List. breadcrumb clicks for analytics */ 7478document.querySelectorAll( 7479 "#ProductDetail-breadcrumb a, #blog-breadcrumb a, #ProductList-breadcrumb a" 7480).forEach(link => { 7481 link.addEventListener('click', function () { 7482 trackClickBreadCrumb(); 7483 }); 7484}); 7485 7486function trackClickBreadCrumb(){ 7487 window.APP_EXTENSION_SDK_ANGULAR_JS_LOADED.then(() => { 7488 const injector = angular.element(document.body)?.injector(); 7489 const trackerService = injector.get('trackerService'); 7490 trackerService.track({ 7491 type: 'BreadCrumbClick', 7492 data: { 7493 event_category: 'Storefront', 7494 scope: 'shop', 7495 }, 7496 }); 7497 }); 7498} 7499/* Track PDP, PLP, Blog, Blog List. breadcrumb clicks for analytics END */ 7500}); 7501</script>
7501 7502 7503 7504 7505 7506 7507 7508 7509 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7510 <symbol id="icon-cart" viewBox="0 0 24 24"> 7511 <path fill-rule="evenodd" clip-rule="evenodd" d="M3.79763 5.20007H2.2998C2.02366 5.20007 1.7998 4.97622 1.7998 4.70007V3.70007C1.7998 3.42393 2.02366 3.20007 2.2998 3.20007H4.5998C5.0685 3.20007 5.47432 3.52561 5.57599 3.98314L5.93531 5.60007H20.1998C20.4897 5.60007 20.7653 5.72587 20.9553 5.94487C21.1452 6.16387 21.2308 6.45452 21.1898 6.74149L19.9898 15.1415C19.9194 15.6341 19.4975 16.0001 18.9998 16.0001H6.9998C6.53111 16.0001 6.12529 15.6745 6.02362 15.217L3.79763 5.20007ZM6.37975 7.60007L7.80198 14.0001H18.1325L19.0468 7.60007H6.37975Z" /> 7512 <circle cx="8.2" cy="19.2" r="1.2" /> 7513 <circle cx="17.7996" cy="19.2" r="1.2" /> 7514 </symbol> 7515</svg> 7516 7517 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7518 <symbol id="icon-filter" viewBox="0 0 20 20"> 7519 <path d="M15.4369 4.7998H4.56315C4.06351 4.7998 3.8114 5.40604 4.16542 5.76006L8.5 10.0953V14.9248C8.5 15.1083 8.58955 15.2803 8.73993 15.3856L10.6149 16.6977C10.9848 16.9566 11.5 16.6942 11.5 16.2368V10.0953L15.8347 5.76006C16.188 5.40674 15.9376 4.7998 15.4369 4.7998Z" fill="currentColor" /> 7520 <rect x="4" y="3.2002" width="12" height="0.8" fill="currentColor" /> 7521 </symbol> 7522</svg> 7523 7524 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7525 <symbol id="icon-close" viewBox="0 0 11 11"> 7526 <g> 7527 <path d="M4.70449705,5.49954654 L0.164758205,0.960229693 C-0.0549194016,0.74055583 -0.0549194016,0.38442926 0.164758205,0.164755397 C0.384435811,-0.0549184658 0.740568449,-0.0549184658 0.960246055,0.164755397 L5.49983968,4.70427167 L10.0397539,0.164744169 C10.2594316,-0.0549147229 10.6155642,-0.0549147229 10.8352418,0.164744169 C11.0549194,0.38440306 11.0549194,0.740505359 10.8352418,0.96016425 L6.29530042,5.49971886 L10.8352418,10.0395829 C11.0549194,10.2592567 11.0549194,10.616133 10.8352418,10.8358069 C10.7257779,10.945269 10.5818253,11 10.4378727,11 C10.2939202,11 10.1499676,10.945269 10.0405037,10.8350572 L5.49998799,6.29496353 L0.959496302,10.8350684 C0.850032376,10.9452727 0.706079815,11 0.562127254,11 C0.418174692,11 0.274222131,10.9452727 0.164758205,10.8350684 C-0.0549194016,10.6154095 -0.0549194016,10.2585575 0.164758205,10.0388986 L4.70449705,5.49954654 Z"></path> 7528 </g> 7529 </symbol> 7530</svg> 7531 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7532 <symbol id="icon-zoom-v2" viewBox="0 0 16 16"> 7533 <path fill-rule="evenodd" clip-rule="evenodd" d="M14.4429 0.799561C14.8607 0.799656 15.1996 1.13856 15.1997 1.5564V6.68726C15.1997 7.03934 14.9141 7.32495 14.562 7.32495C14.21 7.32482 13.9243 7.03926 13.9243 6.68726V2.96069L2.96045 13.9246H6.68701C7.03909 13.9246 7.32471 14.2102 7.32471 14.5623C7.32471 14.9143 7.03909 15.2 6.68701 15.2H1.55615C1.13843 15.1997 0.799412 14.8609 0.799316 14.4431V9.31226C0.799316 8.96026 1.08504 8.67469 1.43701 8.67456C1.78909 8.67456 2.07471 8.96017 2.07471 9.31226V13.0388L13.0386 2.07495H9.31201C8.96004 2.07482 8.67432 1.78926 8.67432 1.43726C8.67432 1.08526 8.96004 0.799693 9.31201 0.799561H14.4429Z" /> 7534 </symbol> 7535</svg> 7536 7537 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7538 <symbol id="fa-v5-globe" viewBox="0 0 496 512"> 7539 <path d="M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"/> 7540 </symbol> 7541</svg> 7542 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7543 <symbol id="icon-filter-category" viewBox="0 0 13 13"> 7544 <path d="M4.75568 6.41662C4.95995 6.71222 4.89888 6.4659 4.89888 12.358C4.89888 12.8852 5.50044 13.187 5.92441 12.8716C7.73611 11.5057 8.09808 11.3874 8.09808 10.7485C8.09808 6.45481 8.04803 6.69627 8.24128 6.41662L11.1833 2.41206H1.81372L4.75568 6.41662Z" /> 7545 <path d="M12.2946 0.326523C12.1895 0.125176 11.9833 0 11.7563 0H1.24064C0.750473 0 0.462061 0.552932 0.743236 0.954687C0.745547 0.958547 0.71132 0.911701 1.2541 1.65039H11.7428C12.2054 1.02088 12.5146 0.748896 12.2946 0.326523Z" /> 7546 </symbol> 7547</svg> 7548 7549 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> 7550 <symbol id="icon-sort-category" viewBox="0 0 14 12"> 7551 <path 7552 d="M6.42869 1.71429H8.14298C8.25664 1.71429 8.36565 1.66913 8.44602 1.58876C8.5264 1.50839 8.57155 1.39938 8.57155 1.28571V0.428571C8.57155 0.314907 8.5264 0.205898 8.44602 0.125526C8.36565 0.0451529 8.25664 0 8.14298 0H6.42869C6.31503 0 6.20602 0.0451529 6.12565 0.125526C6.04527 0.205898 6.00012 0.314907 6.00012 0.428571V1.28571C6.00012 1.39938 6.04527 1.50839 6.12565 1.58876C6.20602 1.66913 6.31503 1.71429 6.42869 1.71429ZM6.42869 5.14286H9.85726C9.97093 5.14286 10.0799 5.0977 10.1603 5.01733C10.2407 4.93696 10.2858 4.82795 10.2858 4.71429V3.85714C10.2858 3.74348 10.2407 3.63447 10.1603 3.5541C10.0799 3.47372 9.97093 3.42857 9.85726 3.4285
75527H6.42869C6.31503 3.42857 6.20602 3.47372 6.12565 3.5541C6.04527 3.63447 6.00012 3.74348 6.00012 3.85714V4.71429C6.00012 4.82795 6.04527 4.93696 6.12565 5.01733C6.20602 5.0977 6.31503 5.14286 6.42869 5.14286ZM13.2858 10.2857H6.42869C6.31503 10.2857 6.20602 10.3309 6.12565 10.4112C6.04527 10.4916 6.00012 10.6006 6.00012 10.7143V11.5714C6.00012 11.6851 6.04527 11.7941 6.12565 11.8745C6.20602 11.9548 6.31503 12 6.42869 12H13.2858C13.3995 12 13.5085 11.9548 13.5889 11.8745C13.6693 11.7941 13.7144 11.6851 13.7144 11.5714V10.7143C13.7144 10.6006 13.6693 10.4916 13.5889 10.4112C13.5085 10.3309 13.3995 10.2857 13.2858 10.2857ZM6.42869 8.57143H11.5715C11.6852 8.57143 11.7942 8.52628 11.8746 8.4459C11.955 8.36553 12.0001 8.25652 12.0001 8.14286V7.28571C12.0001 7.17205 11.955 7.06304 11.8746 6.98267C11.7942 6.9023 11.6852 6.85714 11.5715 6.85714H6.42869C6.31503 6.85714 6.20602 6.9023 6.12565 6.98267C6.04527 7.06304 6.00012 7.17205 6.00012 7.28571V8.14286C6.00012 8.25652 6.04527 8.36553 6.12565 8.4459C6.20602 8.52628 6.31503 8.57143 6.42869 8.57143ZM0.428691 3.42857H1.7144V11.5714C1.7144 11.6851 1.75956 11.7941 1.83993 11.8745C1.9203 11.9548 2.02931 12 2.14298 12H3.00012C3.11378 12 3.22279 11.9548 3.30316 11.8745C3.38354 11.7941 3.42869 11.6851 3.42869 11.5714V3.42857H4.71441C5.09503 3.42857 5.28735 2.96679 5.01735 2.69705L2.87449 0.125625C2.79413 0.045313 2.68516 0.000198637 2.57155 0.000198637C2.45793 0.000198637 2.34897 0.045313 2.2686 0.125625L0.125744 2.69705C-0.143184 2.96625 0.0477978 3.42857 0.428691 3.42857Z" 7553 /> 7554 </symbol> 7555</svg> 7556 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> 7557 <symbol id="icon-limit-category" viewBox="0 0 14 14"> 7558 <path 7559 d="M2.625 12.6875L2.625 1.3125C2.625 1.19647 2.57891 1.08519 2.49686 1.00314C2.41481 0.921093 2.30353 0.875 2.1875 0.875L1.3125 0.874999C1.19647 0.874999 1.08519 0.921093 1.00314 1.00314C0.921093 1.08519 0.875 1.19647 0.875 1.3125L0.874999 12.6875C0.874999 12.8035 0.921092 12.9148 1.00314 12.9969C1.08519 13.0789 1.19647 13.125 1.3125 13.125L2.1875 13.125C2.30353 13.125 2.41481 13.0789 2.49686 12.9969C2.57891 12.9148 2.625 12.8035 2.625 12.6875ZM6.125 12.6875L6.125 1.3125C6.125 1.19647 6.07891 1.08519 5.99686 1.00314C5.91481 0.921093 5.80353 0.875 5.6875 0.875L4.8125 0.875C4.69647 0.875 4.58519 0.921093 4.50314 1.00314C4.42109 1.08519 4.375 1.19647 4.375 1.3125L4.375 12.6875C4.375 12.8035 4.42109 12.9148 4.50314 12.9969C4.58519 13.0789 4.69647 13.125 4.8125 13.125L5.6875 13.125C5.80353 13.125 5.91481 13.0789 5.99686 12.9969C6.07891 12.9148 6.125 12.8035 6.125 12.6875ZM9.625 12.6875L9.625 1.3125C9.625 1.19647 9.57891 1.08519 9.49686 1.00314C9.41481 0.921093 9.30353 0.875 9.1875 0.875L8.3125 0.875C8.19647 0.875 8.08519 0.921093 8.00314 1.00314C7.92109 1.08519 7.875 1.19647 7.875 1.3125L7.875 12.6875C7.875 12.8035 7.92109 12.9148 8.00314 12.9969C8.08519 13.0789 8.19647 13.125 8.3125 13.125L9.1875 13.125C9.30353 13.125 9.41481 13.0789 9.49686 12.9969C9.57891 12.9148 9.625 12.8035 9.625 12.6875ZM13.125 12.6875L13.125 1.3125C13.125 1.19647 13.0789 1.08519 12.9969 1.00314C12.9148 0.921094 12.8035 0.875 12.6875 0.875L11.8125 0.875C11.6965 0.875 11.5852 0.921094 11.5031 1.00314C11.4211 1.08519 11.375 1.19647 11.375 1.3125L11.375 12.6875C11.375 12.8035 11.4211 12.9148 11.5031 12.9969C11.5852 13.0789 11.6965 13.125 11.8125 13.125L12.6875 13.125C12.8035 13.125 12.9148 13.0789 12.9969 12.9969C13.0789 12.9148 13.125 12.8035 13.125 12.6875Z" 7560 /> 7561 </symbol> 7562</svg> 7563 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7564 <symbol id="icon-line" viewBox="0 0 20 18"> 7565 <path d="M10.0003 0.464844C4.89777 0.464844 0.761719 3.71943 0.761719 7.73389C0.761719 11.4629 4.33199 14.5341 8.92943 14.9525C9.00548 14.9655 9.07805 14.9939 9.14264 15.0361C9.20724 15.0782 9.26247 15.1332 9.3049 15.1976C9.50896 15.5335 9.36393 16.2491 9.20549 17.0514C9.04701 17.8537 9.90871 17.4374 10.0994 17.3444C10.2511 17.2708 14.1571 15.0697 16.4824 12.9114C18.1829 11.5927 19.2383 9.76024 19.2383 7.73412C19.2389 3.71943 15.1025 0.464844 10.0003 0.464844ZM6.93359 9.62481C6.93115 9.89682 6.70811 10.1155 6.43529 10.1133H4.7407C4.4416 10.1133 4.04297 10.0102 4.04297 9.52707V5.91426C4.04354 5.84952 4.05689 5.78554 4.08224 5.72597C4.10759 5.6664 4.14445 5.61242 4.1907 5.56713C4.28424 5.47546 4.41031 5.42463 4.54127 5.42578H4.64104C4.772 5.42463 4.89808 5.47546 4.99162 5.56713C5.03787 5.61243 5.07472 5.66641 5.10007 5.72597C5.12542 5.78554 5.13876 5.84953 5.13934 5.91426V9.03867H6.43504C6.70793 9.03633 6.93113 9.25498 6.93359 9.52707V9.62481ZM8.32031 9.52047C8.32031 9.79399 8.09728 10.0156 7.82227 10.0156C7.54717 10.0156 7.32422 9.79399 7.32422 9.52047V6.01859C7.32422 5.74512 7.54717 5.52344 7.82227 5.52344C8.09728 5.52344 8.32031 5.74512 8.32031 6.01859V9.52047ZM12.6744 9.52006C12.6465 9.78 12.4388 9.98418 12.1784 10.0076C12.064 10.0271 11.9464 10.0108 11.8417 9.96069C11.737 9.91063 11.6504 9.82936 11.5938 9.72805L9.99559 7.48695V9.51949C9.98914 9.78869 9.76908 10.0035 9.49973 10.0035C9.23049 10.0035 9.01033 9.78869 9.00391 9.51949V6.01067C9.00445 5.94612 9.01771 5.88232 9.04293 5.8229C9.06814 5.76348 9.10482 5.70961 9.15086 5.66438C9.19689 5.61913 9.25138 5.5834 9.31121 5.55922C9.37105 5.53504 9.43507 5.52288 9.49961 5.52344C9.61739 5.52415 9.7326 5.55801 9.83204 5.62115C9.93147 5.68428 10.0111 5.77414 10.0619 5.88043C10.2157 6.10744 11.6835 8.15363 11.6835 8.15363V6.01067C11.6901 5.74147 11.9103 5.5267 12.1796 5.5267C12.449 5.5267 12.6691 5.74147 12.6758 6.01068V9.51947L12.6744 9.52006ZM15.6712 7.28111C15.846 7.28111 16.0075 7.37422 16.0949 7.52531C16.1378 7.59954 16.1604 7.68378 16.1604 7.76953C16.1604 7.85529 16.1378 7.93952 16.0949 8.01375C16.0519 8.08803 15.9901 8.1497 15.9157 8.19256C15.8414 8.23542 15.757 8.25797 15.6712 8.25795H14.377V9.03897H15.6711C15.7582 9.03691 15.8443 9.05814 15.9205 9.10048C15.9966 9.14282 16.0601 9.20472 16.1043 9.27979C16.1485 9.35478 16.1718 9.44024 16.1718 9.52729C16.1718 9.61433 16.1485 9.69979 16.1043 9.77479C16.0601 9.84983 15.9966 9.91171 15.9205 9.95402C15.8443 9.99634 15.7582 10.0176 15.6711 10.0155H13.7301C13.6717 10.0162 13.6138 10.0054 13.5596 9.98364C13.5054 9.96192 13.456 9.92972 13.4143 9.88889C13.3726 9.84815 13.3394 9.79958 13.3166 9.74595C13.2937 9.69233 13.2817 9.63471 13.2812 9.57643V5.96295C13.2817 5.90463 13.2937 5.84698 13.3
7565165 5.79332C13.3393 5.73965 13.3726 5.69103 13.4143 5.65026C13.456 5.60941 13.5054 5.5772 13.5595 5.55546C13.6137 5.53373 13.6717 5.52289 13.7301 5.52357H15.6712C15.7583 5.52152 15.8444 5.54274 15.9205 5.58505C15.9967 5.62737 16.0602 5.68924 16.1044 5.76428C16.1486 5.83929 16.1719 5.92475 16.1719 6.01179C16.1719 6.09883 16.1486 6.18429 16.1044 6.2593C16.0602 6.33434 15.9967 6.39623 15.9205 6.43856C15.8444 6.48088 15.7583 6.50213 15.6712 6.5001H14.377V7.28143L15.6712 7.28111Z" fill="#1FC81F"/> 7566 </symbol> 7567</svg> 7568 7569 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> 7570 <symbol id="icon-lineapp" viewBox="0 0 32 32"> 7571 <path fill="currentColor" d="M28 14.304c0-5.37-5.384-9.738-12-9.738S4 8.936 4 14.304c0 4.814 4.27 8.846 10.035 9.608.39.084.923.258 1.058.592.122.303.08.778.04 1.084l-.172 1.028c-.05.303-.24 1.187 1.04.647s6.91-4.07 9.43-6.968c1.74-1.905 2.57-3.842 2.57-5.99zM11.302 17.5H8.918a.631.631 0 0 1-.63-.63V12.1a.63.63 0 0 1 1.26.002v4.14h1.754c.35 0 .63.28.63.628a.63.63 0 0 1-.63.63zm2.467-.63a.631.631 0 0 1-.63.628.629.629 0 0 1-.63-.63V12.1a.63.63 0 1 1 1.26 0v4.77zm5.74 0a.632.632 0 0 1-1.137.378l-2.443-3.33v2.95a.631.631 0 0 1-1.26 0V12.1a.634.634 0 0 1 .63-.63.63.63 0 0 1 .504.252l2.444 3.328V12.1a.63.63 0 0 1 1.26 0v4.77zm3.853-3.014a.63.63 0 1 1 0 1.258H21.61v1.126h1.755a.63.63 0 1 1 0 1.258H20.98a.63.63 0 0 1-.628-.63V12.1a.63.63 0 0 1 .63-.628h2.384a.63.63 0 0 1 0 1.258h-1.754v1.126h1.754z"/> 7572 </symbol> 7573</svg> 7574 7575 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> 7576 <symbol id="icon-facebook" viewBox="0 0 32 32"> 7577 <path fill="currentColor" d="M17.78 27.5V17.008h3.522l.527-4.09h-4.05v-2.61c0-1.182.33-1.99 2.023-1.99h2.166V4.66c-.375-.05-1.66-.16-3.155-.16-3.123 0-5.26 1.905-5.26 5.405v3.016h-3.53v4.09h3.53V27.5h4.223z"/> 7578 </symbol> 7579</svg> 7580 7581 <svg xmlns="http://www.w3.org/2000/svg" style="display: none"> 7582 <symbol id="icon-whatsapp" viewBox="0 0 32 32"> 7583 <path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M16.21 4.41C9.973 4.41 4.917 9.465 4.917 15.7c0 2.134.592 4.13 1.62 5.832L4.5 27.59l6.25-2.002a11.241 11.241 0 0 0 5.46 1.404c6.234 0 11.29-5.055 11.29-11.29 0-6.237-5.056-11.292-11.29-11.292zm0 20.69c-1.91 0-3.69-.57-5.173-1.553l-3.61 1.156 1.173-3.49a9.345 9.345 0 0 1-1.79-5.512c0-5.18 4.217-9.4 9.4-9.4 5.183 0 9.397 4.22 9.397 9.4 0 5.188-4.214 9.4-9.398 9.4zm5.293-6.832c-.284-.155-1.673-.906-1.934-1.012-.265-.106-.455-.16-.658.12s-.78.91-.954 1.096c-.176.186-.345.203-.628.048-.282-.154-1.2-.494-2.264-1.517-.83-.795-1.373-1.76-1.53-2.055-.158-.295 0-.445.15-.584.134-.124.3-.326.45-.488.15-.163.203-.28.306-.47.104-.19.06-.36-.005-.506-.066-.147-.59-1.587-.81-2.173-.218-.586-.46-.498-.63-.505-.168-.007-.358-.038-.55-.045-.19-.007-.51.054-.78.332-.277.274-1.05.943-1.1 2.362-.055 1.418.926 2.826 1.064 3.023.137.2 1.874 3.272 4.76 4.537 2.888 1.264 2.9.878 3.43.85.53-.027 1.734-.633 2-1.297.266-.664.287-1.24.22-1.363-.07-.123-.26-.203-.54-.357z"/> 7584 </symbol> 7585</svg> 7586 7587 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7588 <symbol id="icon-copylink" viewBox="-2 -2 18 18" fill="none"> 7589 <path d="M7.2428 11L6.62155 11.6212C6.0574 12.1763 5.29677 12.4859 4.50536 12.4827C3.71395 12.4794 2.95587 12.1636 2.39626 11.604C1.83664 11.0444 1.52083 10.2863 1.5176 9.49491C1.51438 8.7035 1.82401 7.94288 2.37905 7.37872L3.88593 5.87497C4.42644 5.33337 5.15347 5.01876 5.9183 4.99553C6.68312 4.97229 7.42791 5.24218 8.0003 5.74997" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 7590 <path d="M6.7575 3.0003L7.37875 2.37905C7.94291 1.82401 8.70353 1.51438 9.49494 1.5176C10.2864 1.52083 11.0444 1.83664 11.604 2.39626C12.1637 2.95587 12.4795 3.71395 12.4827 4.50536C12.4859 5.29677 12.1763 6.0574 11.6213 6.62155L10.1144 8.12843C9.57346 8.6696 8.8462 8.98363 8.08139 9.00629C7.31657 9.02894 6.572 8.75851 6 8.2503" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> 7591 </symbol> 7592</svg> 7593 7594 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7595 <symbol id="icon-basket" viewBox="0 0 1024 992"> 7596 <path d="M1015.5 267.5Q1006 254 990 254H311L259 77q-7-24-19-41t-25.5-24T191 2.5 171 0H34Q21 0 12 9T3 32q0 8 4 15.5T18.5 59 34
759663h137q4 0 7.5 1t9.5 8.5T198 95l177 650q2 6 6.5 11.5T392 765t13 3h432q10 0 18.5-6t11.5-15l153-450q5-16-4.5-29.5zM815 704H430L328 318h616zm-63 128q-33 0-56.5 23.5T672 912t23.5 56.5T752 992t56.5-23.5T832 912t-23.5-56.5T752 832zm-288 0q-22 0-40.5 11t-29 29-10.5 40q0 33 23.5 56.5T464 992t56.5-23.5T544 912q0-8-1.5-16t-4.5-15-7.5-13.5-10-12-12-10T495 838t-15-4.5-16-1.5z"/> 7597 </symbol> 7598</svg> 7599 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7600 <symbol id="icon-coupon" viewBox="0 0 16 16"> 7601 <path 7602 fill-rule="evenodd" 7603 clip-rule="evenodd" 7604 d="M1.2 3.99995C1.2 3.55812 1.55817 3.19995 2 3.19995H13.84C14.2818 3.19995 14.64 3.55812 14.64 3.99995L14.64 6.5599C14.1098 6.5599 13.68 7.20461 13.68 7.9999C13.68 8.79519 14.1098 9.4399 14.64 9.4399L14.64 12C14.64 12.4418 14.2818 12.8 13.84 12.8H2C1.55817 12.8 1.2 12.4418 1.2 12V9.4399C1.73019 9.4399 2.16 8.79519 2.16 7.9999C2.16 7.20461 1.73019 6.5599 1.2 6.5599V3.99995ZM7.536 6.0799C7.536 6.50406 7.19215 6.8479 6.768 6.8479C6.34384 6.8479 6 6.50406 6 6.0799C6 5.65575 6.34384 5.3119 6.768 5.3119C7.19215 5.3119 7.536 5.65575 7.536 6.0799ZM9.07206 10.2079C9.49621 10.2079 9.84006 9.86406 9.84006 9.4399C9.84006 9.01575 9.49621 8.6719 9.07206 8.6719C8.6479 8.6719 8.30406 9.01575 8.30406 9.4399C8.30406 9.86406 8.6479 10.2079 9.07206 10.2079ZM10.32 6.07983L9.64118 5.40101L5.56824 9.47395L6.24706 10.1528L10.32 6.07983Z" 7605 fill="currentColor" 7606 /> 7607 </symbol> 7608</svg> 7609 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7610 <symbol id="icon-fb-messenger" viewBox="0 0 16 16" fill="none"> 7611 <path d="M7.98195 0.249817C3.62577 0.249817 0.249838 3.4335 0.249838 7.73368C0.249838 9.98285 1.17408 11.9265 2.67851 13.2692C2.93827 13.5028 2.88476 13.6381 2.92893 15.0807C2.93241 15.1817 2.96056 15.2804 3.01092 15.368C3.06128 15.4557 3.13233 15.5297 3.21786 15.5836C3.3034 15.6375 3.40082 15.6697 3.50164 15.6773C3.60245 15.6849 3.7036 15.6677 3.79625 15.6272C5.44222 14.9024 5.46337 14.8452 5.74242 14.9211C10.5111 16.2336 15.6798 13.1818 15.6798 7.73368C15.6798 3.4335 12.3384 0.249817 7.98195 0.249817ZM12.6246 6.009L10.3537 9.60425C10.2679 9.73945 10.1552 9.85547 10.0225 9.94505C9.8898 10.0346 9.74004 10.0958 9.58259 10.1248C9.42514 10.1538 9.2634 10.15 9.1075 10.1136C8.9516 10.0772 8.80491 10.0089 8.67661 9.91317L6.86981 8.56086C6.78903 8.50028 6.69079 8.46754 6.58983 8.46754C6.48886 8.46754 6.39062 8.50028 6.30985 8.56086L3.87184 10.41C3.54644 10.6567 3.12025 10.2669 3.33957 9.9225L5.61052 6.32725C5.69624 6.19202 5.80898 6.07596 5.94167 5.98635C6.07436 5.89674 6.22413 5.83552 6.38159 5.80651C6.53905 5.77751 6.70081 5.78135 6.85672 5.8178C7.01262 5.85425 7.15932 5.92252 7.2876 6.01833L9.09378 7.37033C9.17455 7.43091 9.27279 7.46365 9.37376 7.46365C9.47472 7.46365 9.57297 7.43091 9.65374 7.37033L12.093 5.52308C12.4178 5.27483 12.844 5.66432 12.6246 6.009Z" fill="#0584FF" /> 7612 </symbol> 7613</svg> 7614 7615 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7616 <symbol id="icon-forward" viewBox="0 0 24 24"> 7617 <path d="M0 0h24v24H0z" fill="none"/> 7618 <path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/> 7619 </symbol> 7620</svg> 7621 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7622 <symbol id="icon-back" viewBox="0 0 24 24"> 7623 <path d="M0 0h24v24H0z" fill="none"/> 7624 <path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/> 7625 </symbol> 7626</svg> 7627 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7628 <symbol id="icon-sale-sold-count" viewBox="0 0 11 13" fill="none"> 7629 <path d="M10.47 10.35L10.09 4.49C10.03 3.5 9.2 2.75 8.18 2.7C8.05 1.18 6.78 0 5.24 0C3.69 0 2.43 1.18 2.29 2.7C1.27 2.73 0.44 3.5 0.39 4.49L0 10.35C-0.02 10.85 0.14 11.34 0.5 11.73C0.86 12.11 1.41 12.33 1.96 12.33H8.52C9.07 12.33 9.59 12.11 9.98 11.73C10.31 11.34 10.5 10.85 10.47 10.35ZM5.24 0.83C6.34 0.83 7.22 1.65 7.36 2.7H3.12C3.25 1.65 4.14 0.83 5.24 0.83ZM9.34 11.15C9.12 11.37 8.82 11.51 8.49 11.51H1.96C1.63 11.51 1.33 11.37 1.1 11.15C0.91 10.93 0.8 10.68 0.83 10.41L1.22 4.55C1.24 3.99 1.71 3.58 2.26 3.55V5.21C2.26 5.43 2.45 5.62 2.68 5.62C2.9 5.62 3.09 5.43 3.09 5.21V3.55H7.36V5.21C7.36 5.43 7.55 5.62 7.77 5.62C7.99 5.62 8.18 5.43 8.18 5.21V3.55C8.76 3.58 9.2 4.02 9.23 4.55L9.64 10.41C9.64 10.68 9.56 10.93 9.34 11.15Z" fill="currentColor"/> 7630 </symbol> 7631</svg> 7632 7633 7634 7635 7636 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7637 <symbol id="icon-globe-v2" viewBox="0 0 1056 1024"> 7638 <path d="M1041 512q0-67-17-131t-48-119-75.5-101.5T803 80 687.5 25.5 559 1q-5-1-9-1h-22Q424 0 329 40.5t-164 109T55.5 313 15 512q0 83 26 161.5t73.5 141 110.5 110T366.5 998t161.5 26h20l5.5-.5 5.5-.5q99-6 188-48.5T900.5 864 1003 704t38-192zm-95 165q-52-15-140-26 10-68 10-139 0-56-7-111 44-5 81-12t48-10.5 17-5.5l-12-33q34 82 34 172 0 43-8 84.5T946 677zM301 512q0-18 1-35.5t2.5-34.5 3.5-34q27 2 55.5 3.5T426 414t69 1v222q-97 1-183 8-10-66-11-133zM559 68q39 11 73.5 49.5t61 96.5T735 344q-25 2-52 3.5t-58.5 2.5-65.5 2V68zm-64 1v283q-94-1-176-8 35-163 117-239 29-26 59-36zm0 632v254q-78-25-134-145-21-48-35-102 79-6 169-7zm64 255V701q47 1 89.5 2.5T728 708q-25 99-70 165.5T5
763859 956zm0-319V415q101-1 186-8 7 52 7 105 0 68-11 133-83-7-182-8zm372-323q-3 1-7.5 2t-12.5 3-19 4.5-24.5 5-31 5T800 338q-6-29-13-56t-15.5-52-19-48-22-43-23.5-38q73 32 131 87t93 126zM375 91q-40 45-70.5 108.5T257 339q-82-9-134-22 67-136 202-205 25-12 50-21zM100 377q52 14 145 25-4 27-5.5 54.5T238 512q0 70 12 139-85 9-141 22-30-78-30-161 0-69 21-135zm37 355q53-11 127-19 18 67 46.5 123t64.5 97q-76-27-137-79T137 732zm570 191q28-40 50.5-93T794 714q29 4 55.5 8t41 7 26.5 6q-74 129-210 188z"/> 7639 </symbol> 7640</svg> 7641 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7642 <symbol id="icon-bubble" viewBox="0 0 1024 896"> 7643 <path d="M512 64q121 0 224.5 43T900 223.5 960 384t-60 160.5T736.5 661 512 704h-27q-14 0-24-.5t-23-2.5l-35-5-23 28q-5 5-16.5 14.5T336 760t-38 25.5-43 23.5q10-25 16-51t6-50l1-2v-45l-35-18q-85-43-132-111T64 384q0-87 60-160.5T287.5 107 512 64zm0-64Q373 0 255 51.5t-186.5 140T0 384q0 99 56 181.5T214 700q0 1-.5 1.5t-.5 1.5q0 65-51 153-2 5-2 11 0 12 8.5 20.5T189 896h8q46-8 99-36t86.5-54 46.5-42q26 4 56 4h27q139 0 257-51.5t186.5-140T1024 384q0-141-122-249Q775 24 583 4q-36-4-71-4z"/> 7644 </symbol> 7645</svg> 7646 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7647 <symbol id="icon-magnifier" viewBox="0 0 1040 1024"> 7648 <path d="M1031 969L720 656q93-111 93-256 0-109-53.5-201t-146-145.5T412.5 0 212 53.5 66.5 199 13 400t53.5 201T212 746.5 413 800q149 0 262-98l310 312q10 10 23 10t22.5-9.5 9.5-23-9-22.5zM413 737q-92 0-169.5-45.5T121 568.5 76 400t45-168.5 122.5-123 169-45.5 169 45.5 122.5 123T749 400q0 39-9 77t-25.5 71-39.5 62.5-52 52.5-62 39.5-71 25.5-77 9z"/> 7649 </symbol> 7650</svg> 7651 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7652 <symbol id="icon-user" viewBox="0 0 1040 1024"> 7653 <path d="M512 64q39 0 80.5 15.5t72.5 39 51 52 20 53.5v160q0 57-24 127t-71 106q-8 7-14 16.5t-8.5 20T617 675q5 36 37 51l279 132 2 .5 4 1.5 5 3 5.5 4.5 5 6.5 3.5 10 1 13v62l-895 1v-65q0-25 27-37l281-133q32-15 36.5-50.5T385 617q-46-37-71.5-107.5T288 384V224q0-33 33-70.5T407 90t105-26zm0-64q-69 0-136.5 33.5t-109.5 86T224 224v160q0 65 30.5 149.5T345 667L64 800q-3 1-7 3t-15 9-19.5 14T7 843.5 0 863v97q0 26 18.5 44.5T64 1023h896q26 0 44.5-18.5T1023 960v-97q0-10-6.5-20.5t-16-18T982 811t-16-9l-6-2-279-133q60-47 89.5-130T800 384V224q0-39-25.5-79.5T709 72t-93-52T512 0z"/> 7654 </symbol> 7655</svg> 7656 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7657 <symbol id="icon-bag" viewBox="0 0 832 1024"> 7658 <path d="M768 159H577V97q0-26-13-48t-35-35-48-13H353q-15 0-30 5t-26.5 14T276 40.5 262 67t-5 30v62H64q-27 0-45.5 18.5T0 223v736q0 26 18.5 45t45.5 19h704q27 0 45.5-19t18.5-45V223q0-27-18.5-45.5T768 159zM321 97q0-13 9.5-22.5T353 65h128q13 0 22.5 9.5T513 97v62H321V97zm447 862H64V223h193v66q0 3 1 8.5t8.5 14.5 22.5 9q16 0 24-8t8-16v-74h192v69l1.5 7.5 4.5 10 9.5 8L545 321q9 0 15.5-3.5t9.5-8 4.5-9.5 2.5-8v-69h191v736z"/> 7659 </symbol> 7660</svg> 7661 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7662 <symbol id="icon-heart" viewBox="0 0 1040 928"> 7663 <path d="M288 66q73 0 180 106l46 45 45-46q15-16 31.5-30t32.5-26 31.5-21T684 78.5t27.5-9.5 24.5-3q89 0 157 68 69 69 69 166t-69 167q-5 4-359 387-5 5-11 6.5t-10 1.5q-12 0-21-8-324-360-359-395-8-8-15.5-17.5t-14-19-12-19.5-10-20.5T74 361t-5.5-22-3.5-23-1-23q0-98 69-167 32-31 70-45.5T288 66zm0-64q-59 0-109 19T88 81q-43 43-65.5 99T0 292.5 22.5 405 88 504q9 9 49.5 53.5t91 100.5 100 111 83.5 92l34 37q27 28 66.5 28t67.5-28q354-383 358-386 88-88 88-212T938 89q-44-44-93.5-65.5T736 2q-53 0-111.5 35T513 126Q387 2 288 2z"/> 7664 </symbol> 7665</svg> 7666 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7667 <symbol id="icon-info" viewBox="0 0 1024 1024"> 7668 <path d="M576 736h-32V448q0-13-9.5-22.5T512 416h-64q-13 0-22.5 9.5T416 448t9.5 22.5T448 480h32v256h-32q-13 0-22.5 9.5T416 768t9.5 22.5T448 800h128q13 0 22.5-9.5T608 768t-9.5-22.5T576 736zm-64-384q27 0 45.5-18.5T576 288t-18.5-45.5T512 224t-45.5 18.5T448 288t18.5 45.5T512 352zm0-352q-83 0-161.5 26T209 99 99 209 26 350.5 0 512q0 104 40.5 199t109 163.5 163.5 109 199 40.5 199-40.5 163.5-109 109-163.5 40.5-199q0-83-26-161.5T925 209 815 99 673.5 26 512 0zm0 961q-73 0-141.5-22.5T247 874t-96.5-97-64-123.5T64 512q0-91 35.5-174T195 195t143-95.5T512 64t174 35.5T829 195t95.5 143T9
766860 512t-35.5 174T829 829.5t-143 96T512 961z"/> 7669 </symbol> 7670</svg> 7671 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7672 <symbol id="icon-minus" viewBox="0 0 10 1"> 7673 <g> 7674 <polygon points="0 1 10 1 10 0 0 0"></polygon> 7675 </g> 7676 </symbol> 7677</svg> 7678 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7679 <symbol id="icon-plus" viewBox="0 0 10 10"> 7680 <g> 7681 <polygon points="4.5 0 4.5 4.5 0 4.5 0 5.5 4.5 5.5 4.5 10 5.5 10 5.5 5.5 10 5.5 10 4.5 5.5 4.5 5.5 0"></polygon> 7682 </g> 7683 </symbol> 7684</svg> 7685 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 7686 <symbol id="icon-tag" viewBox="0 0 16 16"> 7687 <g fill-rule="evenodd"> 7688 <path d="M2 8.12787V3.16667C2 2.52233 2.52233 2 3.16667 2H8.12787C8.43729 2 8.73403 2.12292 8.95282 2.34171L14.1027 7.49162C14.5583 7.94723 14.5583 8.68592 14.1027 9.14153L9.14153 14.1027C8.68592 14.5583 7.94723 14.5583 7.49162 14.1027L2.34171 8.95282C2.12292 8.73403 2 8.43729 2 8.12787ZM4.72222 3.55556C4.07788 3.55556 3.55556 4.07788 3.55556 4.72222C3.55556 5.36656 4.07788 5.88889 4.72222 5.88889C5.36656 5.88889 5.88889 5.36656 5.88889 4.72222C5.88889 4.07788 5.36656 3.55556 4.72222 3.55556Z" /> 7689 </g> 7690 </symbol> 7691</svg> 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 <!-- app:63a2b2930064c0001dd692f9 --> 7702
7702<script type="module" defer="defer" crossorigin="anonymous"> 7703 function t(k, v) { 7704 Object.defineProperty(window, k, { configurable: false, value: Object.freeze(v) }); 7705 } 7706 t( 7707 '__SC_CHAT_WIDGET_PLUGIN_CONFIG__', 7708 { 7709 env: 'prod', 7710 }, 7711 ); 7712</script>
vendor: 1 bytes, line 7712
7712
7713<script type="text/javascript" defer src="https://sc-chat-widget.shoplineapp.com/sc-chat-widget-plugin-entry" crossorigin="anonymous"></script>
7713 7714 7715 <!-- app:61162030bc1390001da5cede --> 7716
7716<script> 7717(function(){window.SmartPush="EC1";function fetchJs(spMerchantId){const fetchOptions={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({merchantId:spMerchantId})};fetch("https://client.smartpushedm.com/api-client/form/getLatestJs",fetchOptions).then(res=>res.json()).then(res=>{if(res.code==="SUCCESS"){var jsScriptList=res.data.jsScriptList;if(jsScriptList&&jsScriptList.length){for(var i=0;i<jsScriptList.length;i++){var spScript=document.createElement("script");spScript.id="smartPushMarketWidget"+(i+1);spScript.src=jsScriptList[i].jsScript;spScript.async=true;document.body.appendChild(spScript)}}}}).catch(error=>{console.log("SP-error==================>",error)})}async function getSpMerchantId(){try{var spSdk=window.shopline.appExtension.init({appId:"61162030bc1390001da5cede"});if(spSdk){var spUtils=spSdk.utils;var spMerchantId=await spUtils.getMerchantId();fetchJs(spMerchantId)}}catch(err){console.log("SP-error=2=================>",err)}}if(window.shopline&&window.shopline.appExtension&&window.shopline.appExtension.isSDKLoaded&&window.shopline.appExtension.isSDKLoaded()){getSpMerchantId()}else{window.addEventListener("onAppExtensionSDKLoaded",()=>{getSpMerchantId()})}})(); 7718</script>
7718 7719 7720 7721 7722 7723
7723<script>window.SLINE_RENDERED=true;window.SLINE_LAYOUT_RENDERED=true;</script>
7723 7724 </body> 7725</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.