1<!DOCTYPE html> 2<html lang="th" class=""> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5<meta name="viewport" content="width=980"> 6<title>à¸à¸°à¸à¸£à¹à¸²à¸ªà¸´à¸à¸à¹à¸² : Inspired by LnwShop.com (v2)</title> 7<link rel="canonical" href="https://www.henghengmarble.com/checkout" /> 8<meta http-equiv="content-language" content="th" /> 9<meta name="description" content="à¹à¸£à¸à¸à¸²à¸à¸à¸µà¹à¸à¸¹à¹à¹à¸à¸µà¹à¸¢à¸°à¸«à¸´à¸à¸à¹à¸à¸à¹à¸à¹ à¸à¸±à¹à¸à¹à¸à¹à¸à¸µ 2530 à¸à¸¥à¸´à¸à¹à¸à¸ สัà¹à¸à¸à¸³à¸à¸²à¸¡à¸à¸à¸²à¸ สà¹à¸+à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¶à¸à¸à¹à¸²à¸ รà¹à¸²à¸à¸à¸²à¸à¸à¸²-ศรีà¸à¸à¸£à¸´à¸à¸à¸£à¹ à¸à¹à¸²à¸à¸§à¸±à¸à¸¨à¸£à¸µà¹à¸à¸µà¹à¸¢à¸¡ à¸à¸£à¸¶à¸à¸©à¸² LINE @hengheng55" /> 10<meta name="keywords" content="à¸à¸µà¹à¸à¸¹à¹à¹à¸à¸µà¹à¸¢à¸°à¸«à¸´à¸à¸à¹à¸à¸, ศาลà¸à¸£à¸°à¸ ูมิหิà¸à¸à¹à¸à¸, à¹à¸£à¸à¸à¸²à¸à¸à¸µà¹à¸à¸¹à¹à¹à¸à¸µà¹à¸¢à¸° à¸à¸²à¸à¸à¸², à¹à¸®à¸à¹à¸®à¸à¸«à¸´à¸à¸à¹à¸à¸, à¸à¸¶à¸à¹à¸à¹à¸²à¸à¸à¸«à¸´à¸à¸à¹à¸à¸" /> 11<meta property="thumbnail" content="https://inwfile.com/s-l/q9hs2i.jpg" /> 12<meta property="og:title" content="à¸à¸°à¸à¸£à¹à¸²à¸ªà¸´à¸à¸à¹à¸²" /> 13<meta property="og:description" content="à¹à¸£à¸à¸à¸²à¸à¸à¸µà¹à¸à¸¹à¹à¹à¸à¸µà¹à¸¢à¸°à¸«à¸´à¸à¸à¹à¸à¸à¹à¸à¹ à¸à¸±à¹à¸à¹à¸à¹à¸à¸µ 2530 à¸à¸¥à¸´à¸à¹à¸à¸ สัà¹à¸à¸à¸³à¸à¸²à¸¡à¸à¸à¸²à¸ สà¹à¸+à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¶à¸à¸à¹à¸²à¸ รà¹à¸²à¸à¸à¸²à¸à¸à¸²-ศรีà¸à¸à¸£à¸´à¸à¸à¸£à¹ à¸à¹à¸²à¸à¸§à¸±à¸à¸¨à¸£à¸µà¹à¸à¸µà¹à¸¢à¸¡ à¸à¸£à¸¶à¸à¸©à¸² LINE @hengheng55" /> 14<meta property="og:image" content="https://inwfile.com/s-l/q9hs2i.jpg" /> 15<meta property="og:type" content="website" /> 16<meta property="og:url" content="https://www.henghengmarble.com/checkout" /> 17<meta name="google-site-verification" content="JHvfD_CaWQnJaXBzkXWRg-sKFMRt1LcrNgr1GJymIhc" /> 18<link rel="alternate" hreflang="th" href="https://www.henghengmarble.com/checkout" /> 19<link rel="image_src" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg" /> 20<link rel="shortcut icon" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg" /> 21<link rel="apple-touch-icon" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg"> 22<link rel="icon" href="https://l.lnwfile.com/_/l/_raw/q9/hs/2i.jpg" /> 23<link rel="stylesheet" type="text/css" id="lnw-basic-css-file" href="https://www.henghengmarble.com/system/application/templates/lnwshop/default/_css/basic.min.css?t=20260810000053" /> 24<link rel="stylesheet" type="text/css" href="https://www.henghengmarble.com/cache/lnwshop/68/268/css/20260928000311/style.css" /> 25<link rel="preload" type="text/css" href="https://www.henghengmarble.com/system/application/modules/lnwbar/_css/color_style.min.css?t=20260901144946" as="style" onload="this.onload=null;this.rel='stylesheet'" /> 26<link rel="preload" type="text/css" href="https://www.henghengmarble.com/system/application/modules/lnwbar/_css/lnw_icon.min.css?t=20220616" as="style" onload="this.onload=null;this.rel='stylesheet'" />
27<script type="text/javascript"> 28 window._lckd = window._lckd || []; 29 function _lck(){window._lckd.push(arguments);} 30 _lck('config',{"policy_url":null,"web_domain":"www.henghengmarble.com","web_avatar":"https:\/\/l.lnwfile.com\/_\/l\/_resize\/100\/100\/q9\/hs\/2i.jpg","web_ukey":"68268","cpath":"\/","customize":{"default_consents":{"functionality_storage":1,"analytics_storage":1,"ad_storage":1}},"html":{"functionality_storage":["\u003Cscript\u003E\n(function(){\nfunction f(){var L=document.querySelectorAll('a[href*=\"line.me\/R\/ti\/p\"]');for(var i=0;i\u003CL.length;i++){L[i].href=L[i].href.replace('\/R\/ti\/p\/','\/ti\/p\/');}}\nf();\ndocument.addEventListener('DOMContentLoaded',f);\nsetTimeout(f,1200);setTimeout(f,4000);\ndocument.addEventListener('click',function(e){var a=e.target&&e.target.closest?e.target.closest('a[href*=\"line.me\/R\/ti\/p\"]'):null;if(a){a.href=a.href.replace('\/R\/ti\/p\/','\/ti\/p\/');}},true);\n})();\n\u003C\/script\u003E"]}}); 31</script>
vendor: 1 bytes, line 31
31
32<script async defer src="https://www.lnwshop.com/system/application/modules/lnwshopweb/_js/cookie_policy.js?t=20260925"></script>
32 33<meta name="robots" content="noindex"> 34<link rel="preconnect" href="https://l-up.lnwfile.com"></head> 35<body> 36<!-- KH1RikQqmWe-HJMNHl_Q81RtmPzkUf7Nf6Y7rkLUMAplmQXTTNMfNW62xg_9-Lpe --> 37<!-- dCMb2cvS2jA32499edKhsWivjm8oGlpotdlPGpviWAd8aGt5C9MMohIz1vTsKYH8DTtdyw== --> 38<!-- wy4IhlRU9qWlloe2t0co2IAwAdD7NOUpDIq1NQ-_o4Anmh97yq5ytxKaQ6_UREFOgL1V4Q== --> 39 40<!-- zgRMFjjmdeiDdFa7r2kTyBPuju2CgYEeIoflm54H8gmVgxL2uNpoGsE3o9rMiD704LZhAQ== - 0.2610 --> 41 42<div id="lnwbar-app"></div>
43<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/jquery/jquery-1.12.4.min.js"></script>
43 44<div id="ggHead"> 45</div> 46 47<div id="gadget-1" config_id="1" class="widgetPage" data-scene="checkout" data-svars="{"section_sub":"cart","section_args":[]}"><div class="pageWrapper rb-hot-000 rb-recommend-000 pageShirt"> 48 49 50 51 52<div class="pageUnderwear page-checkout"> 53<div id="gadget-4" config_id="4" class="widgetZone z-article"><div class="zoneShirt"> 54<div id="gadget-79" config_id="79" class="widgetUnit u-section u-section-checkout u-section-checkout-cart"><a name="lnwcontent"></a><div class="unitHat"></div><div class="unitShirt"> <div id="lnw_cartArea" class="checkoutBody"> 55 <div class="cart_loader" :style="{display:(cart_loader?'block':'none')}"></div> 56 <div class="shopHeader"> 57<div class="avatar"><a href="https://www.henghengmarble.com/"><img src="https://l.lnwfile.com/_/l/_resize/100/100/q9/hs/2i.jpg"></a></div> 58<div class="name"> 59<a href="https://www.henghengmarble.com/">à¹à¸®à¸à¹à¸®à¸à¸«à¸´à¸à¸à¹à¸à¸ | à¸à¸µà¹à¸à¸¹à¹à¹à¸à¸µà¹à¸¢à¸° ศาลà¸à¸£à¸°à¸ ูมิหิà¸à¸à¹à¸à¸ à¹à¸£à¸à¸à¸²à¸à¸à¸²à¸à¸à¸²</a> 60<div class="desc">SHOP ID: 68268 <span class="status" status="">(รà¹à¸²à¸à¹à¸à¸´à¸à¸à¸à¸à¸´)</span></div> 61</div> 62 63<div class="order_step order_step1"><div class="buystep step1 currentStep"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">à¸à¸°à¸à¸£à¹à¸²à¸ªà¸´à¸à¸à¹à¸²</div></div><div class="buystep step2"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸</div></div><div class="buystep step3"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">à¸à¸£à¸§à¸à¸ªà¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸</div></div><div class="buystep step4"><div class="point"></div><div class="line before"></div><div class="line after"></div><div class="text">สัà¹à¸à¸à¸·à¹à¸à¹à¸£à¸µà¸¢à¸à¸£à¹à¸à¸¢ (รà¸à¸à¸³à¸£à¸°à¹à¸à¸´à¸)</div></div></div> 64</div> <div class="checkoutHeader"> 65 <div class="checkoutBack"> 66 <a class="cartBack" href="javascript:history.back()"><i 67 class="icon"></i><span class="text">à¸à¸¥à¸±à¸à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸¥à¹à¸§</span></a> </div> 68 <h1>รายà¸à¸²à¸£à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²</h1> 69 </div> 70 <div class="defaultMessage"> 71 à¸à¸£à¸¸à¸à¸²à¸à¸£à¸§à¸à¸ªà¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸´à¸à¸à¹à¸²à¹à¸¥à¸°à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸ à¸à¸²à¸à¸à¸±à¹à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ â<b>สัà¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²</b>â à¹à¸à¸·à¹à¸à¹à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¸±à¸à¹à¸ </div> 72 <div v-if="cart" class="cartBody" style="visibility: hidden;" :style="{visibility:(cart?'visibility':'hidden')}"> 73 <div class="cartZone"> 74 <div class="headArea"> 75 <div class="detail">สิà¸à¸à¹à¸²</div> 76 <div class="price">ราà¸à¸²/à¸à¸´à¹à¸</div> 77 <div class="quantity">à¸à¸³à¸à¸§à¸</div> 78 <div class="amount">ราà¸à¸²à¸£à¸§à¸¡</div> 79 </div> 80 <div class="productArea"> 81 <product-item v-for="item in cart.items" :key="item.iid" :item="item"></product-item> 82 </div> 83 <div class="productSummaryArea"> 84 <div class="title">สรุà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸´à¸à¸à¹à¸²</div> 85 <div class="detail"><span>{{ cart.num }} รายà¸à¸²à¸£</span> 86 <span>{{ cart.quantity }} à¸à¸´à¹à¸</span> <span 87 v-if="checkweight"> à¸à¹à¸³à¸«à¸à¸±à¸à¸£à¸§à¸¡ {{ cart.weight }} à¸à¸£à¸±à¸¡</span> 88 </div> 89 <div class="text">ราà¸à¸²à¸ªà¸´à¸à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 90 <div class="amount" :realpricex="cart.price.product"> 91 <div class="real"><span 92 class="num">{{ amount_format(cart.price.product) }}</span> à¸à¸²à¸ </div> 93 <div class="estimate"></div> 94 </div> 95 </div> 96 <div class="hasDiscountArea salePromotion" v-if="cart.discounts"> 97 <div v-for="(discount, index) in cart.discounts" class="discountArea"> 98 <div class="title"> 99 <div v-if="index==0">สรุà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¹à¸§à¸à¸¥à¸</div> 100 </div> 101 <div class="detail">สà¹à¸§à¸à¸¥à¸à¸à¸²à¸ {{ 102 show_lang('CART-DISCOUNT-TYPE-'+discount.type.toUpperCase()) }} {{discount.name}} 103 </div> 104 <div class="text">à¸à¸´à¸à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸¥à¸</div> 105 <div class="amount" :realpricex="discount.price"> 106 <div class="real"><span 107 class="num">- {{ amount_format(discount.price) }}</span> à¸à¸²à¸ </div> 108 <div class="estimate"></div> 109 </div> 110 </div> 111 <div class="beforeshippingArea"> 112 <div class="text">ราà¸à¸²à¸«à¸¥à¸±à¸à¸«à¸±à¸à¸ªà¹à¸§à¸à¸¥à¸</div> 113 <div class="amount" :realpricex="cart.price.product - cart.price.discount"> 114 <div class="real"><span class="num">{{ amount_format(cart.price.product - cart.price.discount)}}</span> à¸à¸²à¸ </div> 115 <div class="estimate"></div> 116 </div> 117 </div> 118 </div> 119 <div v-if="!cart.is_no_shipping" class="deliveryArea"> 120 <div class="text"> 121 <b>ระยะà¹à¸§à¸¥à¸²à¸à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¸ªà¸´à¸à¸à¹à¸²</b> 122 {{cart_prepare_day}} วัà¸à¸à¸³à¸à¸²à¸£ หลัà¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸¢à¸à¸à¹à¸à¸´à¸à¹à¸£à¸µà¸¢à¸à¸£à¹à¸à¸¢à¹à¸¥à¹à¸§ à¹à¸¥à¸°à¹à¸¡à¹à¸à¸±à¸à¸£à¸§à¸¡à¸£à¸°à¸¢à¸°à¹à¸§à¸¥à¸²à¸à¸±à¸à¸ªà¹à¸ </div> 123 <div class="text weekday_text"> 124 * รà¹à¸²à¸à¸«à¸¢à¸¸à¸à¸§à¸±à¸à¸«à¸¢à¸¸à¸à¸ªà¸¸à¸à¸ªà¸±à¸à¸à¸²à¸«à¹ (วัà¸à¹à¸ªà¸²à¸£à¹-à¸à¸²à¸à¸´à¸à¸¢à¹ à¹à¸¥à¸°à¸§à¸±à¸à¸«à¸¢à¸¸à¸à¸à¸±à¸à¸à¸±à¸à¸¤à¸
124ษà¹) </div> 125 </div> 126 <template v-if="!cart.is_no_shipping"> 127 <div v-if="cart.is_product_no_shipping_type" class="shiptypeArea"> 128 <div class="shiptypeChoice"> 129 <div class="shiptype no_set"> 130 <div class="detail">à¸à¸±à¸à¸ªà¹à¸à¹à¸¢à¸à¸à¸±à¸ªà¸à¸¸</div> 131 <div class="text">à¸à¹à¸²à¸à¸±à¸à¸ªà¹à¸</div> 132 <div class="price" :realpricex="cart.price.shipping"> 133 <div class="real">+ <span class="num">{{ amount_format(cart.price.shipping) }}</span> à¸à¸²à¸</div> 134 <div class="estimate"></div> 135 </div> 136 </div> 137 </div> 138 </div> 139 <div v-else class="shiptypeArea" 140 :class="{chosen: (show_only_shiptype_chosen && (shipping_type_list.length > 1))}"> 141 <div class="checkoutHeader"> 142 <h2>à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸²</h2> 143 </div> 144 <div class="shiptypeChoice"> 145 <label v-for="stype in shipping_type_list" :key="stype.id" class="shiptype" 146 :class="{checked:(cart.shipping_type_id==stype.id)}"> 147 <div class="detail"><input type="radio" name="shipping_type" 148 :value="stype.id" 149 v-model="choose_shipping_type_id"/> {{ stype.name?stype.name:type_txt[stype.type] }} 150 <div class="sub_detail"> 151 <div class="shipping_custom" v-if="stype.description">{{stype.description}}</div> 152 <div class="shipping_delivery" v-if="stype.delivery_area">{{stype.delivery_area}}</div> 153 <div v-if="stype.period" 154 class="receive_time"> {{ 155 stype.period }} 156 </div> 157 <div class="shipping_company" 158 v-if="stype.provider && stype.provider.length > 0"> 159 <span 160 v-for="provider in stype.provider"><span 161 :class="provider"></span></span> 162 <span class="info" v-if="stype.provider.length>1" 163 @mouseover="shiptype_over(stype)" 164 @mouseleave="shiptype_leave(stype)">?</span> 165 <div class="description" v-if="stype.provider.length>1" 166 :style="{display:(stype_info_hover==stype.id?'block':'none')}"> 167 à¸à¸²à¸à¸£à¹à¸²à¸à¸à¸°à¹à¸¥à¸·à¸à¸à¸à¹à¸à¸à¸à¸²à¸à¸à¸µà¹à¹à¸«à¸¡à¸²à¸°à¸ªà¸¡à¸à¸µà¹à¸ªà¸¸à¸ 168 </div> 169 </div> 170 <div v-if="stype.cod_flag" class="shipping_tag tag_cod">à¸à¸³à¸£à¸°à¹à¸à¸´à¸à¸à¸¥à¸²à¸¢à¸à¸²à¸ (COD)</div> 171 </div> 172 </div> 173 <div class="text">à¸à¹à¸²à¸à¸±à¸à¸ªà¹à¸</div> 174 <div v-if="stype.price===false" class="price" realpricex=""> 175 <div class="real">+ <span class="num">x</span> à¸à¸²à¸</div> 176 <div class="estimate"></div> 177 </div> 178 <div v-else class="price" :realpricex="stype.price"> 179 <div class="full" v-if="stype.full_price" 180 style="text-decoration:line-through;color: #aaa;">+ <span class="num">{{ amount_format(stype.full_price) }}</span> à¸à¸²à¸ </div> 181 <div class="real minor" v-if="stype.format=='custom'">-</div> 182 <div class="real" v-else>+ <span 183 class="num">{{ amount_format(stype.price) }}</span> à¸à¸²à¸ </div> 184 <div class="estimate"></div> 185 </div> 186 </label> 187 <div class="change-shiptypeChoice" v-show="show_only_shiptype_chosen" 188 @click="show_only_shiptype_chosen=0">à¹à¸à¸¥à¸µà¹à¸¢à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸</div> 189 </div> 190 <div v-if="(shipping_type_list.length==0) && (cart.shipping_types_rank.length==0)" class="noshipping_text">รà¹à¸²à¸à¸à¹à¸²à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸³à¸«à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸² à¸à¸³à¹à¸«à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹ à¸à¸£à¸¸à¸à¸² <a href="https://www.henghengmarble.com/contactus">à¸à¸´à¸à¸à¹à¸à¸à¸±à¸à¸à¸²à¸à¸£à¹à¸²à¸</a></div> 191 <div v-else-if="(shipping_type_list.length==0)" class="noshipping_text">à¹à¸¡à¹à¸¡à¸µà¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸²à¸à¸µà¹à¸à¸£à¸à¸à¸²à¸¡à¹à¸à¸·à¹à¸à¸à¹à¸ à¸à¸³à¹à¸«à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹ à¸à¸£à¸¸à¸à¸² <a href="https://www.henghengmarble.com/contactus">à¸à¸´à¸à¸à¹à¸à¸à¸±à¸à¸à¸²à¸à¸£à¹à¸²à¸</a></div> 192 </div> 193 </template> 194 <div class="detailArea"> 195 <div class="title"> 196 <div class="text">à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¸à¸¶à¸à¸£à¹à¸²à¸à¸à¹à¸²</div> 197 <div class="optional">(à¹à¸§à¹à¸à¸§à¹à¸²à¸à¹à¸à¹)</div> 198 </div> 199 <div class="body"><textarea class="input" name="detail" v-model="cart.detail" 200 @change="save_detail"></textarea></div> 201 </div> 202 <div class="netArea"> 203 <div class="text">รวมราà¸à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 204 <div class="amount" :realpricex="cart.shipping_type_id?cart.price.pay:'-'"> 205 <div class="real"><span v-if="cart.is_no_shipping || cart.is_product_no_shipping_type || cart.shipping_type_id" class="num">{{ amount_format(cart.price.pay) }}</span><span v-else class="name"><span class="shipping_type_0">*à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸±à¸à¸ªà¹à¸</span></span> à¸à¸²à¸</div> 206 <div class="estimate"></div> 207 </div> 208 </div> 209 </div> 210 <div id="checkoutNextBar" class="cartButtons"> 211 <div class="alignLeft"> 212 <a class="cartBack" href="https://www.henghengmarble.com/category"><i 213 class="icon"></i><span class="text">à¹à¸¥à¸·à¸à¸à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸´à¹à¸¡</span></a> </div> 214 <div class="alignRight"> 215 <ul class="b-checkout LBUTTON" btype="button" @click="checkout"> 216 <li class="buttonLeft"></li> 217 <li class="buttonCenter buttonText">สัà¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²</li> 218 <li class="buttonRight"></li> 219 </ul> 220 </div> 221 </div> 222 </div> 223 </div> 224
224<script type="text/javascript"> 225 var $cartZone; 226 var price_decimal = 2; 227 228 function amount_format(num) { 229 return number_format(num, price_decimal); 230 } 231 232 function lnw_number_format(num) { 233 var floor_num = Math.floor(num); 234 if ((num - floor_num) > 0) { 235 return number_format(num, 2); 236 } 237 return number_format(num, 0); 238 } 239 240 function error_message(err) { 241 if (err.key) { 242 switch (err.key) { 243 case 'NOPRODUCT': 244 case 'HIDDEN': 245 case 'NOSELL': 246 return 'à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸²à¸à¸à¸´à¸à¸à¸µà¹ หรืà¸à¸ªà¸´à¸à¸à¹à¸²à¸à¸à¸´à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸²à¸¢'; 247 case 'NOSTOCK': 248 var html = 'สิà¸à¸à¹à¸²à¸à¸µà¹à¹à¸«à¸¥à¸·à¸à¹à¸à¸µà¸¢à¸ %d à¸à¸´à¹à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹'; 249 return html.replace(/%d/, err.remain); 250 case 'BUY-WEB_CORRUPTION': 251 return 'à¸à¸à¸à¸ ัย à¸à¸à¸°à¸à¸µà¹à¸£à¸°à¸à¸à¹à¸à¸à¸£à¸°à¸à¸±à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¹'; 252 case 'INVALID_POINT': 253 return 'à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸à¸±à¸§à¹à¸¥à¸à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints'; 254 case 'USE>POINT': 255 return 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints à¹à¸à¸´à¸à¸à¸§à¹à¸²à¸à¸°à¹à¸à¸à¸à¸µà¹à¸à¸¸à¸à¸¡à¸µà¹à¸à¹'; 256 case 'POINT>NET': 257 return 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints มาà¸à¸à¸§à¹à¸²à¸£à¸²à¸à¸²à¸£à¸§à¸¡à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¹'; 258 case 'BUY-LNWPAY_ANTI-MONEY_LAUNDERING': 259 return 'ระà¸à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¸£à¸²à¸à¸²à¸£à¸§à¸¡à¹à¸à¸´à¸ 30,000 à¸à¸²à¸à¸à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹'; 260 case 'PERMISSION_DENIED': 261 return 'à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¸´à¹à¸à¹à¸à¸²à¸à¸à¸¹à¸à¸à¸à¸à¸µà¹'; 262 case 'BELOW_QUANTITY': 263 return __lnw__.show_lang('CART-PRODUCT-BELOW_QUANTITY', err.limit, err.unit); 264 case 'OVER_QUANTITY': 265 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY', err.limit, err.unit); 266 case 'ACCOUNT_LIMIT_REQUIRED_LOGIN': 267 return __lnw__.show_lang('CART-PRODUCT-ACCOUNT_LIMIT_REQUIRED_LOGIN'); 268 case 'OVER_QUANTITY_ACCOUNT_ORDERED': 269 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_ACCOUNT_ORDERED', err.limit, err.unit, err.ordered, err.unit); 270 case 'OVER_QUANTITY_ACCOUNT': 271 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_ACCOUNT', err.limit, err.unit); 272 case 'OVER_QUANTITY_DAILY_ACCOUNT_ORDERED': 273 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_DAILY_ACCOUNT_ORDERED', err.limit, err.unit, err.ordered, err.unit); 274 case 'OVER_QUANTITY_DAILY_ACCOUNT': 275 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_DAILY_ACCOUNT', err.limit, err.unit); 276 default: 277 var xxx = __lnw__.show_lang(err.key); 278 return xxx; 279 } 280 } 281 return 'มีà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸´à¸à¸à¸¶à¹à¸'; 282 } 283 284 var cartvm = null; 285 var cart_components = {}; 286 cart_components['product-item'] = { 287 props: ['item'], 288 data: function() { 289 return { 290 new_quantity: null, 291 new_detail: null, 292 edit_detail: 0, 293 wait_save_quantity: false 294 } 295 }, 296 watch: { 297 cart_loader: function(newValue, oldValue) { 298 if(this.wait_save_quantity) { 299 this.save_quantity(); 300 } 301 }, 302 'item.quantity': function(newValue, oldValue) { 303 if(newValue == this.new_quantity) { 304 this.new_quantity = null; 305 } else { 306 this.save_quantity(); 307 } 308 }, 309 'item.detail': function(newValue, oldValue) { 310 if(newValue == this.new_detail) { 311 this.new_detail = null; 312 } else { 313 this.save_detail(); 314 } 315 } 316 }, 317 computed: { 318 cart: function() { 319 return this.$store.state.cart; 320 }, 321 quantity_value: { 322 get: function() { 323 if(this.new_quantity !== null) { 324 return this.new_quantity; 325 } 326 return this.item.quantity 327 }, 328 set: function(newValue) { 329 if(this.item.quantity == newValue) { 330 this.new_quantity = null; 331 } else { 332 this.new_quantity = newValue; 333 this.save_quantity(); 334 } 335 } 336 } 337 }, 338 methods: { 339 quantity_inc: function () { 340 this.quantity_value = this.quantity_value+1; 341 }, 342 quantity_dec: function () { 343 if(this.quantity_value <= 1) { 344 } else { 345 this.quantity_value = this.quantity_value - 1; 346 } 347 }, 348 save_quantity: function() { 349 var that = this; 350 if(this.wait_save_quantity) { 351 clearTimeout(this.wait_save_quantity); 352 } 353 this.wait_save_quantity = setTimeout(function() { 354 that.save_quantity_action(); 355 },1000); 356 }, 357 save_quantity_action: function () { 358 if(this.new_quantity === null) { 359 return; 360 } 361 var val = parseNumber(this.new_quantity); 362 val = parseNumber(val); 363 if(isNaN(val) || val < 1) { 364 return; 365 } 366 if(this.cart_loader) { 367 this.wait_save_quantity = true; 368 return; 369 } 370 var item = this.item; 371 var ajaxdata = {}; 372 373 ajaxdata.action = 'changeProductQuantity'; 374 ajaxdata.items = [ 375 { 376 iid: item.iid, 377 spec: item.spec, 378 quantity: val 379 } 380 ]; 381 382 var onSuccess = void (0); 383 384 if(item.spec.type == 'product') { 385 // Google Analytics Enhanced Ecommerce (event: add/remove cart | edit number of product item in carts) 386 if (typeof gtag !== "undefined" && typeof GA_send_to
386=== 'string' && GA_send_to.length > 0) { 387 if (typeof item.quantity !== 'undefined') { 388 var diff = val - item.quantity; 389 var event_name = null; 390 if (diff < 0) 391 event_name = 'remove_from_cart'; 392 else 393 event_name = 'add_to_cart'; 394 if (event_name) { 395 var qty = Math.abs(diff); 396 onSuccess = function () { 397 gtag('event', event_name, { 398 'send_to': GA_send_to, 399 "items": [ 400 { 401 "id": item.spec.product_id, 402 "name": item.name, 403 "category": typeof item.category !== 'undefined' ? item.category : null, 404 "quantity": qty, 405 "price": qty * item.unit_price 406 } 407 ] 408 }); 409 } 410 } 411 } 412 } 413 } 414 this.$store.dispatch('save_func', { 415 ajaxdata: ajaxdata, 416 item: item, 417 onSuccess: onSuccess 418 }); 419 }, 420 save_detail: function () { 421 var that = this; 422 var item = this.item; 423 var ajaxdata = {}; 424 425 ajaxdata.action = 'updateProductRemark'; 426 ajaxdata.items = [ 427 { 428 iid: item.iid, 429 spec: item.spec, 430 detail: this.new_detail 431 } 432 ]; 433 this.edit_detail = 0; 434 this.$store.dispatch('save_func', { 435 ajaxdata: ajaxdata 436 }); 437 }, 438 remove_detail: function () { 439 this.new_detail = ''; 440 this.save_detail(); 441 }, 442 start_edit_detail: function () { 443 this.new_detail = this.item.detail; 444 this.edit_detail = 2; 445 }, 446 start_add_detail: function (item) { 447 this.edit_detail = 1; 448 }, 449 remove_item: function () { 450 var that = this; 451 var item = this.item; 452 __lnw__.simpleConfirm('ยืà¸à¸¢à¸±à¸à¸à¸²à¸£à¸¥à¸à¸ªà¸´à¸à¸à¹à¸²à¸à¸µà¹à¸à¸à¸à¸à¸²à¸à¸à¸°à¸à¸£à¹à¸²', 453 function() { 454 var ajaxdata = {}; 455 ajaxdata.action = 'changeProductQuantity'; 456 457 ajaxdata.items = [ 458 { 459 iid: item.iid, 460 spec: item.spec, 461 quantity: 0 462 } 463 ]; 464 465 var onSuccess = void (0); 466 467 if(item.spec.type == 'product') { 468 // Google Analytics Enhanced Ecommerce (event: remove_from_cart) 469 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 470 onSuccess = function () { 471 gtag('event', 'remove_from_cart', { 472 'send_to': GA_send_to, 473 "items": [ 474 { 475 "id": item.spec.product_id, 476 "name": item.name, 477 "category": typeof item.category !== 'undefined' ? item.category : null, 478 "quantity": item.quantity, 479 "price": item.total_price 480 } 481 ] 482 }); 483 } 484 } 485 } 486 487 that.$store.dispatch('save_func', { 488 ajaxdata: ajaxdata, 489 onSuccess: onSuccess 490 }); 491 } 492 ); 493 }, 494 }, 495 template: `<div class="product"> 496 <div class="image"> 497 <img :src="item.thumbnail"/> 498 </div> 499 <div class="data"> 500 <div class="name" v-if="item.parent_id > 0"><a :href="item.url">{{ 501 item.parent_name }}<br/> ↳ {{ item.sku_name }}</a></div> 502 <div class="name" v-else><a :href="item.url">{{ item.name }}</a></div> 503 <div class="price" :realpricex="item.unit_price"> 504 <div class="mobileBeforeText">ราà¸à¸²à¸à¹à¸à¸à¸´à¹à¸</div> 505 <div class="real"><span 506 class="num">{{ amount_format(item.unit_price) }}</span> à¸à¸²à¸</div> 507 <div class="estimate"></div> 508 </div> 509 <div class="quantity"> 510 <div class="mobileBeforeText">à¸à¸³à¸à¸§à¸</div> 511 <div v-if="cart.lock" class="uneditable"><span class="num" v-text="amount_format(item.quantity)"></span></div> 512 <div v-else class="editable"> 513 <div class="increase" @click="quantity_inc">+</div> 514 <div class="decrease" @click="quantity_dec">-</div> 515 <div class="box"><input type="text" class="input" v-model="quantity_value" /></div> 516 </div> 517 </div> 518 <div class="amount" :realpricex="item.total_price"> 519 <div class="mobileBeforeText">ราà¸à¸²à¸£à¸§à¸¡</div> 520 <div class="real"><span 521 class="num">{{ amount_format(item.total_price) }}</span> à¸à¸²à¸ </div> 522 <div class="estimate"></div> 523 </div> 524 </div> 525 <div class="error"> 526 <div v-for="error in item.errors"> 527 {{ error_message(error) }} 528 </div> 529 </div> 530 <div class="other"> 531 <div v-if="item.promotions && (item.promotions.length > 0)" class="promotion">สิà¸à¸à¹à¸²à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸ {{ 532 item.promotions.join(', ') }} 533 </div> 534 <div v-else-if="item.promotion" class="promotion">สิà¸à¸à¹à¸²à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸ {{ 535 item.promotion.join(', ') }} 536 </div> 537 <div class="note"> 538 <div v-if="edit_detail"> 539 <input type="text" class="pdetail" v-model="new_detail"> 540 <button type="button" class="btn-submit" @click="save_detail">{{ 541 (edit_detail==2)?'à¸à¸£à¸±à¸à¸à¸£à¸¸à¸ ':'à¹à¸à¸´à¹à¸¡'}} 542 </button> 543 <button type="button" class="btn-reset" @click="remove_detail">{{ 544 (edit_detail==2)?'ลภ':'ยà¸à¹à¸¥à¸´à¸'}} 545 </button> 546 </div> 547 <div v-else-if="(new_detail == null) && item.detail"><strong>หมายà¹à¸«à¸à¸¸</strong> <span 548 class="body">{{ item.detail }}</span> <a class="edit" @click="start_edit_detail">✎ à¹à¸à¹à¹à¸</a> 549 </div> 550 <div v-else-if="new_detail"><strong>หมายà¹à¸«à¸à¸¸</strong> <span 551 class="body">{{ new_detail }}</span> <a class="edit" @click="start_edit_detail">✎ à¹à¸à¹à¹à¸</a> 552 </div> 553 <div v-else><a class="add" 554 @click="start_add_detail">à¹à¸à¸´à¹à¸¡à¸«à¸¡à¸²à¸¢à¹à¸«à¸à¸¸</a> 555 </div> 556 </div> 557 <div v-if="!cart.lock" class="control"><a class="remove" 558 @click="remove_item">ลà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹</a> 559 </div> 560 </div> 561 </div>` 562 } 563 document.addEventListener("DOMContentLoaded", function () { 564 Vue.use(Vuex); 565 cart_store = new Vuex.Store({ 566 state: function() { 567 var ret = { 568 cart: null, 569 shop: null, 570 cart_loader: false, 571 }; 572 return ret; 573 }, 574 getters: { 575 }, 576 mutations: { 577 }, 578 actions: { 579 save_func: function(context, payload) { 580 var state = context.state; 581 if (state.cart_loader) { 582 //return false;
583 } 584 state.cart_loader = true; 585 var xhr = json_post({ 586 method: 'PUT', 587 url: front_url('api/lnwme/cart/cookie')+'?ddd=full', 588 data: payload.ajaxdata, 589 success: function(response) { 590 if(response.error) { 591 var msgs = []; 592 var x_msgs = {}; 593 var error_messages = response.error_messages; 594 if(typeof error_messages == 'string') { 595 error_messages = [{ 596 key: error_messages 597 }] 598 } 599 600 if (typeof payload.item !== 'undefined') { 601 Vue.set(payload.item,'errors', error_messages); 602 } else { 603 var error_txts = []; 604 error_messages.forEach(function(err_msg) { 605 error_txts.push(error_message(err_msg)); 606 }); 607 __lnw__.simpleAlert(error_txts); 608 } 609 } 610 if(response.cart) { 611 Vue.set(state,'cart', response.cart); 612 613 $('.cart_num').html(state.cart.num); 614 $('.cart_price').html(state.cart.price.product).attr('realprice', state.cart.price.product); 615 if (typeof __lnw__ == 'object' && __lnw__.gointer.is_enabled()) { 616 __lnw__.gointer.reload_convert_currency(); 617 } 618 $('.cart_quantity').html(state.cart.quantity); 619 } 620 // Google Analytics Enhanced Ecommerce 621 if (typeof payload.onSuccess == 'function') { 622 try { 623 payload.onSuccess.call(); 624 } catch (e) { 625 } 626 ; 627 } 628 }, 629 error: function(rkey, rdata) { 630 __lnw__.simpleAlert(rkey); 631 console.info(rdata); 632 }, 633 complete: function() { 634 state.cart_loader = false;
635 } 636 }); 637 }, 638 load_init: function(context) { 639 var state = context.state; 640 state.cart_loader = true; 641 var xhr = json_post({ 642 url: front_url('api/lnwme/cart/cookie')+'?ddd=init', 643 data: {}, 644 success: function(response) { 645 if(response.error) { 646 var msgs = []; 647 var x_msgs = {}; 648 var error_messages = response.error_messages; 649 if(typeof error_messages == 'string') { 650 error_messages = [{ 651 key: error_messages 652 }] 653 } 654 655 var error_txts = []; 656 error_messages.forEach(function(err_msg) { 657 error_txts.push(error_message(err_msg)); 658 }); 659 __lnw__.simpleAlert(error_txts); 660 } 661 Vue.set(state,'cart', response.cart); 662 Vue.set(state,'shop', response.shop); 663 win_resize(); 664 }, 665 error: function(rkey, rdata) { 666 __lnw__.simpleAlert(rkey); 667 console.info(rdata); 668 }, 669 complete: function() { 670 state.cart_loader = false;
671 } 672 }); 673 } 674 } 675 }); 676 cartvm = new Vue({ 677 el: '#lnw_cartArea', 678 store: cart_store, 679 components: cart_components, 680 data: function () { 681 return { 682 type_txt: { 683 normal: 'à¸à¸±à¸ªà¸à¸¸à¸à¸£à¸£à¸¡à¸à¸²', 684 register: 'à¸à¸±à¸ªà¸à¸¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸', 685 ems: 'à¸à¸±à¸ªà¸à¸¸à¸à¹à¸§à¸à¸à¸´à¹à¸¨à¸©', 686 custom: 'à¸à¸³à¸«à¸à¸à¹à¸à¸' 687 }, shipping_country_selected: 1, 688 show_only_shiptype_chosen: 0, 689 coupon_code_value: '', 690 view_mycoupons: 0, 691 choose_coupon_id: null, 692 choose_shipping_type_id: null, 693 lang_text_time: 0, 694 stype_info_hover: 0 695 } 696 }, 697 watch: { 698 choose_shipping_type_id: function (val) { 699 var ajaxdata = {}; 700 if (typeof this.cart.shipping_types[val] == 'undefined' || !this.shiptype_show(this.cart.shipping_types[val])) { 701 ajaxdata.action = 'cancelShippingMethod'; 702 this.$store.dispatch('save_func', { 703 ajaxdata: ajaxdata 704 }); 705 this.show_only_shiptype_chosen = 0; 706 } else { 707 var onSuccess = void(0); 708 // Google Analytics Enhanced Ecommerce (event: set_checkout_option) 709 if (typeof this.cart.shipping_types[val].name !== 'undefined') { 710 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 711 var shipping_type_name = this.cart.shipping_types[val].name; 712 713 onSuccess = function () { 714 gtag('event', 'set_checkout_option', { 715 'send_to': GA_send_to, 716 'checkout_step': 1, 717 'checkout_option': 'shipping method', 718 'value': shipping_type_name 719 }); 720 }; 721 } 722 } 723 ajaxdata.action = 'saveShippingMethod'; 724 ajaxdata.shipping_type_id = val; 725 this.$store.dispatch('save_func', { 726 ajaxdata: ajaxdata, 727 onSuccess: onSuccess 728 }); 729 this.show_only_shiptype_chosen = 1; 730 } 731 } 732 }, 733 updated: function () { 734 if (typeof __lnw__ == 'object' && __lnw__.gointer.is_enabled()) { 735 __lnw__.gointer.reload_convert_currency(); 736 } 737 }, 738 computed: { 739 cart_loader: function() { 740 return (this.$store.state.cart_loader); 741 }, 742 cart: function() { 743 return this.$store.state.cart; 744 }, 745 shop: function() { 746 return this.$store.state.shop; 747 }, 748 shipping_type_list: function () { 749 var shipping_types = this.cart.shipping_types; 750 var stype_list = new Array(); 751 var that = this; 752 this.cart.shipping_types_rank.forEach(function (stype_id) { 753 var stype = shipping_types[stype_id]; 754 stype.info_hover = false; 755 if(!stype.is_lnwshop_ignore && that.shiptype_show(stype)) { 756 stype_list.push(stype); 757 } 758 }); 759 return stype_list; 760 }, 761 checkweight: function () { 762 return false;
763 var xxx = false; 764 $.each(this.cart.shipping_types, function (stype_id, stype) { 765 if (stype.format == 'weight') { 766 xxx = true; 767 } 768 }) 769 return xxx; 770 }, 771 cart_prepare_day: function () { 772 var max_prepare_day = 0; 773 this.cart.items.forEach(function(item) { 774 var day = item.prepare_duration; 775 if (day != '') { 776 day = parseInt(day); 777 if (day > max_prepare_day) { 778 max_prepare_day = day; 779 } 780 } 781 }); 782 return max_prepare_day; 783 }, 784gtag_cart_items: function () { 785var payload_items = []; 786this.cart.items.forEach(function(item) { 787if(item.spec.type != 'product') { 788return; 789} 790payload_item = {}; 791payload_item.id = item.spec.product_id; 792payload_item.name = item.name; 793if (typeof item.category !== 'undefined') 794payload_item.category = item.category; 795payload_item.quantity = item.quantity; 796payload_item.price = item.total_price; 797payload_items.push(payload_item); 798}) 799return payload_items; 800}, 801 gtag_cart_coupon: function () { 802 var coupon = ''; 803 804 if (typeof this.cart.coupons === 'object') { 805 for (var i in this.cart.coupons) { 806 if (typeof this.cart.coupons[i].config === 'object') { 807 if (typeof this.cart.coupons[i].config.name !== 'undefined') { 808 if (coupon.length > 0) 809 coupon += ', '; 810 coupon += this.cart.coupons[i].config.name; 811 } 812 } 813 } 814 } 815 816 return coupon; 817 }, 818 my_lnwpoints: function() { 819 var points = 0; 820 if ((typeof lnw_store != 'undefined') && (typeof lnw_store.state.user != 'undefined') && (lnw_store.state.user.point != null)) { 821 points = lnw_store.state.user.point.available_balance; 822 } 823 return points; 824 } 825 }, 826 methods: { 827 update_lang: function () { 828 this.lang_text_time = new Date().getTime(); 829 }, 830 show_lang: function () { 831 var xxx = this.lang_text_time; 832 return __lnw__.show_lang.apply(this, arguments); 833 }, 834 shiptype_show: function (stype) { 835 return (stype.price !== false); 836 }, 837 shiptype_over: function (stype) { 838 this.stype_info_hover = stype.id; 839 }, 840 shiptype_leave: function (stype) { 841 this.stype_info_hover = 0; 842 }, 843 error_message: function (err) { 844 return error_message(err); 845 }, 846 use_coupon_code: function () { 847 var ajaxdata = {}; 848 ajaxdata.action = 'setCouponCode'; 849 ajaxdata.coupon_code = this.coupon_code_value.trim(); 850 if (ajaxdata.coupon_code == '') { 851 return; 852 } 853 854 this.$store.dispatch('save_func', { 855 ajaxdata: ajaxdata, 856 }); 857 }, 858 use_coupon_id: function (id) { 859 var ajaxdata = {}; 860 ajaxdata.action = 'setCouponId'; 861 ajaxdata.coupon_id = id; 862 this.$store.dispatch('save_func', { 863 ajaxdata: ajaxdata, 864 }); 865 this.view_mycoupons = 0; 866 }, 867 cancel_use_coupon: function (coupon_id) { 868 var coupon_code = null; 869 if (typeof this.cart.coupons === 'object'){ 870 var coupon = this.cart.coupons.filter(obj => { 871 return obj.id === coupon_id 872 }); 873 if(coupon.length > 0) { 874 coupon_code = coupon[0].code; 875 }else { 876 return false;
877 } 878 }else if (typeof this.cart.coupons[coupon_id] == 'undefined') { 879 return false; 880 }else{ 881 coupon_code = this.cart.coupons[coupon_id].code; 882 } 883 if (coupon_code) { 884 var ajaxdata = {}; 885 ajaxdata.action = 'removeCouponCode'; 886 ajaxdata.coupon_code = coupon_code; 887 this.$store.dispatch('save_func', { 888 ajaxdata: ajaxdata, 889 }); 890 } else { 891 var ajaxdata = {}; 892 ajaxdata.action = 'removeCouponId'; 893 ajaxdata.coupon_id = coupon_id; 894 this.$store.dispatch('save_func', { 895 ajaxdata: ajaxdata, 896 }); 897 } 898 this.choose_coupon_id = null 899 }, 900 save_detail: function () { 901 var ajaxdata = {}; 902 ajaxdata.action = 'saveOrderMeta'; 903 ajaxdata.detail = this.cart.detail; 904 this.$store.dispatch('save_func', { 905 ajaxdata: ajaxdata 906 }); 907 }, 908 reset_cart: function () { 909 var ajaxdata = {}; 910 ajaxdata.action = 'resetCart'; 911 912 var onSuccess = void (0); 913 914 // Google Analytics Enhanced Ecommerce (event: remove_from_cart) 915 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 916 var payload_items = this.gtag_cart_items; 917 onSuccess = function () { 918 gtag('event', 'remove_from_cart', { 919 'send_to': GA_send_to, 920 "items": payload_items 921 }); 922 } 923 } 924 925 this.$store.dispatch('save_func', { 926 ajaxdata: ajaxdata, 927 onSuccess: onSuccess 928 }); 929 }, 930 set_lnwpoint: function (point) { 931 var ajaxdata = {}; 932 ajaxdata.action = 'setRedeemLnwPoint'; 933 ajaxdata.lnwpoint = point; 934 this.$store.dispatch('save_func', { 935 ajaxdata: ajaxdata, 936 }); 937 }, 938 use_lnwpoint: function () { 939 var point = this.cart.lnwpoint; 940 if (((typeof lnw_store == 'undefined') || (typeof lnw_store.state.user == 'undefined') || (typeof lnw_store.state.user.point == null))) { 941 __lnw__.simpleAlert('à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸¶à¸à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints à¹à¸à¹'); 942 this.cart.lnwpoint = 0; 943 } else { 944 var my_points = this.my_lnwpoints; 945 if (point > my_points) { 946 __lnw__.simpleAlert('à¸à¸¸à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints มาà¸à¸à¸§à¹à¸²à¸à¸µà¹à¸¡à¸µ'); 947 this.cart.lnwpoint = 0; 948 } else { 949 this.set_lnwpoint(point); 950 } 951 } 952 }, 953 cancel_lnwpoint: function () { 954 this.set_lnwpoint(0); 955 }, 956 checkout: function (event) { 957 var that = this; 958 if(this.cart.is_no_shipping) { 959 960 } else if(this.cart.is_product_no_shipping_type) { 961 962 } else if (typeof this.cart.shipping_types[this.cart.shipping_type_id] == 'undefined' || !this.shiptype_show(this.cart.shipping_types[this.cart.shipping_type_id])) { 963 __lnw__.simpleAlert('à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸'); 964 return false;
965 } 966 var ele = $(event.target).closest('b-checkout'); 967 var ajaxdata = {}; 968 $.lnwajax.run('goto_checkout', true, { 969 type: 'POST', 970 url: 'https' + '://' + 'www.henghengmarble.com/checkout/start', 971 data: ajaxdata, 972 dataType: 'json', 973 start: function () { 974 button_wait(ele); 975 }, 976 success: function (response) { 977 lnwajax_response(response, function (rdata) { 978 var delay = 0; 979 if(window.lnwOpenai && rdata.openai_event && window.lnwOpenai.track(rdata.openai_event)) { 980 delay = 1000; 981 } 982 983 if (typeof rdata.fbq_params != 'undefined' && typeof fbq == 'function') { 984 fbq('track', 'InitiateCheckout', rdata.fbq_params); 985 delay = 1000; 986 } 987 988 // Google Analytics Enhanced Ecommerce (event: begin_checkout) 989 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 990 var payload_gtag = {}; 991 payload_gtag.send_to = GA_send_to; 992 payload_gtag.items = that.gtag_cart_items; 993 994 var coupon = that.gtag_cart_coupon; 995 if (typeof coupon === 'string' && coupon.length > 0) 996 payload_gtag.coupon = coupon; 997 else { 998 console.log(coupon); 999 } 1000 1001 payload_gtag.checkout_step = 1; 1002 1003 gtag('event', 'begin_checkout', payload_gtag); 1004 1005 delay = 1000; 1006 } 1007 1008 if (typeof rdata.url != 'undefined') { 1009 setTimeout(function () { 1010 window.location.href = rdata.url; 1011 }, delay); 1012 } 1013 1014 }
1014, function (rkey, rdata) { 1015 button_normal(ele); 1016 switch (rkey) { 1017 case 'BUY-ITEM_SOLDOUT': 1018 __lnw__.simpleAlert('à¸à¸à¸à¸ ัย สิà¸à¸à¹à¸²à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸à¸°à¸à¸£à¹à¸²à¹à¸«à¸¥à¸·à¸à¹à¸¡à¹à¹à¸à¸µà¸¢à¸à¸à¸'); 1019 //window.location.href='https://www.henghengmarble.com/cart'; 1020 break; 1021 case 'BUY-NO_ITEM': 1022 __lnw__.simpleAlert('à¸à¸à¸à¸ ัย à¸à¸à¸°à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²'); 1023 break; 1024 case 'BUY-EMPTY_SHIPPINGTYPE': 1025 __lnw__.simpleAlert('à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸'); 1026 break; 1027 case 'BUY-ORDER_LIMIT': 1028 case 'BUY-ORDER_LIMIT_MIN_PRICE': 1029 case 'BUY-ORDER_LIMIT_MAX_PRICE': 1030 case 'BUY-OVER_TOTAL_QUANTITY': 1031 case 'BUY-OVER_ORDER_QUANTITY': 1032 __lnw__.simpleAlert(__lnw__.show_lang(rkey, rdata)); 1033 break; 1034 case 'BUY-MUST_LOGIN': 1035 case 'BUY-USER_NO_MOBILE': 1036 __lnw__.simpleAlert(__lnw__.show_lang(rkey, rdata)); 1037 break; 1038 case 'BUY-LNWPAY_ANTI-MONEY_LAUNDERING': 1039 __lnw__.simpleAlert('ระà¸à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¸£à¸²à¸à¸²à¸£à¸§à¸¡à¹à¸à¸´à¸ 30,000 à¸à¸²à¸à¸à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹'); 1040 break; 1041 default: 1042 __lnw__.simpleAlert('à¸à¸à¸à¸ ัย à¸à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸²à¸à¸à¸¢à¹à¸²à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¹'); 1043 break; 1044 } 1045 }); 1046 } 1047 }); 1048 } 1049 }, 1050 mounted: function() { 1051 this.$store.dispatch('load_init'); 1052 } 1053 }); 1054 __lnw__.bind_lang_save(function () { 1055 cartvm.update_lang(); 1056 }); 1057 nextbar_init(); 1058 }); 1059 var win_height, nextbar_hover_flag = 0, topLine, barheight; 1060 1061 function nextbar_scroll_event(ele) { 1062 var scrollTop = $(ele).scrollTop(); 1063 if (scrollTop < topLine) { 1064 if (!nextbar_hover_flag) { 1065 $('.checkoutBody').addClass('showNextBar'); 1066 nextbar_hover_flag = true; 1067 $('.cartZone').css({marginBottom: barheight + 'px'}); 1068 } 1069 } else { 1070 if (nextbar_hover_flag) { 1071 $('.checkoutBody').removeClass('showNextBar'); 1072 nextbar_hover_flag = false; 1073 $('.cartZone').css({marginBottom: 0}); 1074 } 1075 } 1076 } 1077 1078 function win_resize() { 1079 var win_height = $(window).height(); 1080 var bottomOffset; 1081 var $self = $('.cartZone'); 1082 if($self.length > 0) { 1083 var zoneheight = $self.outerHeight(true); 1084 var zonetop = $self.offset().top; 1085 barheight = $('#checkoutNextBar').outerHeight(true); 1086 bottomOffset = zonetop + zoneheight + barheight; 1087 if ($self.closest('#lnwbox2Body').length > 0) { 1088 bottomOffset -= $('#lnwbox2Body').offset().top; 1089 } 1090 topLine = bottomOffset - win_height; 1091 } 1092 } 1093 1094 function nextbar_init() {
1095 var $nextbar_container = $(window); 1096 //$('#checkoutNextBar').after('<div class="cartButtons-clone"></div>'); 1097 win_resize(); 1098 nextbar_scroll_event($nextbar_container); 1099 $nextbar_container.scroll(function () { 1100 nextbar_scroll_event(this); 1101 }); 1102 $(window).resize(function () { 1103 win_resize(); 1104 nextbar_scroll_event($nextbar_container); 1105 }); 1106 } 1107 </script>
1107 1108 <div class="checkoutFooter"> 1109<div class="lnw_footer_area"> 1110</div> 1111<div class="copyright" align="center"> 1112<div class="copyrightText"><span style="padding-left: 10px;">Copyright © 2026</span> 1113<a href="https://www.henghengmarble.com/">www.henghengmarble.com</a> 1114<span>All rights reserved.</span></div> 1115<div class="footerText"><a href="https://www.lnwshop.com/" title="รà¹à¸²à¸à¸à¹à¸²à¸à¸à¸à¹à¸¥à¸à¹" target="_blank" rel="noopener">รà¹à¸²à¸à¸à¹à¸²à¸à¸à¸à¹à¸¥à¸à¹</a> 1116 Inspired by 1117<a href="https://www.lnwshop.com/" title="รà¹à¸²à¸à¸à¹à¸²à¸à¸à¸à¹à¸¥à¸à¹" target="_blank" rel="noopener">LnwShop.com (v2)</a> 1118</div><span id="lnwstat-container-ebi93"></span>
1119<script type="text/javascript"> 1120var _lnws = 'sl.lnwstat.com'; 1121var _lnwp = '68268'; 1122var _lnwd = 'www.henghengmarble.com'; 1123var _lnwm = ''; 1124var _lnwk = ''; 1125 1126(function() { 1127var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true; 1128sc.src = 'https://' + _lnws + '/lnwstat.js'; 1129var sp = document.createElement('span'); sp.id='lnwstat-container-ebi93-inner'; 1130var e = document.getElementById('lnwstat-container-ebi93'); e.appendChild(sc); e.appendChild(sp); 1131 1132})(); 1133</script>
1133 1134</div> 1135</div></div><div class="unitShoe"></div></div></div></div> 1136 1137</div> 1138 1139 1140</div><div id="cart22_container" style="visibility: hidden;" :style="{visibility:'visible'}"> 1141 <div id="cart22_alert" 1142 style="display: none;" 1143 v-show="alert_is_show" 1144 @click="cartShow" 1145 :class="(alert_is_show)?'show_alert':'hide_alert'"> 1146 <span>à¸à¸¸à¸à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸² <span class="cart_quantity" v-text="total_quantity">0</span> à¸à¸´à¹à¸à¹à¸à¸à¸°à¸à¸£à¹à¸² <u>สัà¹à¸à¸à¸·à¹à¸à¸à¸±à¸à¸à¸µ</u></span> 1147 </div> 1148 <div id="cart22_overlay" 1149 style="display: none;" 1150 v-show="cart_is_show && !cart_is_hiding" 1151 @click="cartHide"></div> 1152 <div id="cart22" 1153 :class="{ show_cart : cart_is_show, hide_cart : cart_is_hiding }" 1154 v-if="cart_is_show"> 1155 <div class="cart22_container"> 1156 <div class="cart22_header_container"> 1157 <div v-if="is_loading" class="cart22-progress-linear-container"> 1158 <div class="cart22-progress-linear"> 1159 <div class="cart22-progress-linear__background" :style="{backgroundColor: cc_color}" ></div> 1160 <div class="cart22-progress-linear__indeterminate"> 1161 <div class="cart22-progress-linear__indeterminate long" :style="{backgroundColor: cc_color}" ></div> 1162 <div class="cart22-progress-linear__indeterminate short" :style="{backgroundColor: cc_color}" ></div> 1163 </div> 1164 </div> 1165 </div> 1166 <div class="cart22_header"> 1167 <div>สิà¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸² ({{total_num}} รายà¸à¸²à¸£)</div> 1168 <div class="cart22_close" 1169 @click="cartHide()"><img src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/close.png"/> 1170 </div> 1171 </div> 1172 </div> 1173 <div class="cart22_content"> 1174 <!--if empty cart--> 1175 <div v-if="items.length <= 0" class="cart22_empty"> 1176 <span v-if="is_initing"><div class="boxload_16"></div></span> 1177 <span v-else>à¸à¸à¸à¸ ัย à¸à¸à¸°à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²</span> 1178 </div> 1179 <!--end if--> 1180 <!--if NOT empty cart--> 1181 <div v-else class="cart22_itemlist"> 1182 <cart-item v-for="item in items" :key="item.iid" :item="item"></cart-item> 1183 </div> 1184 <!--end if--> 1185 <div v-if="discounts.length > 0" class="cart22_discountlist"> 1186 <div class="cart22_discount_item"> 1187 <div class="cart22_discount_label">ราà¸à¸²à¸ªà¸´à¸à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 1188 <div class="cart22_discount_amount">฿ {{price_format(total_price)}}</div> 1189 </div> 1190 <div v-for="(discount,idx) in discounts" :key="idx" class="cart22_discount_item"> 1191 <div class="cart22_discount_label" v-text="discount.label"></div> 1192 <div class="cart22_discount_amount">- ฿ {{price_format(discount.price)}}</div> 1193 </div> 1194 </div> 1195 </div> 1196 <div class="cart22_tailer"> 1197 <div class="cart22_summary"> 1198 <div class="cart22_summary_label"> 1199 <div>ราà¸à¸²à¸ªà¸´à¸à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 1200 <div class="minor">{{total_quantity}} à¸à¸´à¹à¸</div> 1201 </div> 1202 <div class="cart22_summary_amount"> 1203 <div>฿ {{price_format(after_product_price)}}</div> 1204 <div class="minor">ราà¸à¸²à¹à¸¡à¹à¸£à¸§à¸¡à¸à¹à¸²à¸à¸±à¸à¸ªà¹à¸</div> 1205 </div> 1206 </div> 1207 <div class="cart22_action"> 1208 <a href="https://www.henghengmarble.com/cart" class="cart22_button cart22_cart" :class="is_loading?'cart22_button_loading':''" :style="{color: cc_color, outlineColor: cc_color}">à¸à¸¹à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²</a> 1209 <a href="https://www.henghengmarble.com/checkout" class="cart22_button cart22_checkout" :class="is_loading?'cart22_button_loading':''" :style="{backgroundColor: cc_color}">à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸</a> 1210 </div> 1211 <div class="cart22_action"> 1212 <div class="cart22_continue" 1213 @click="cartHide"><span style="transform: rotate(180deg); display: inline-block;">➜</span> à¹à¸¥à¸·à¸à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸´à¹à¸¡ </div> 1214 </div> 1215 </div> 1216 </div> 1217 </div> 1218</div>
1219<script type="text/javascript"> 1220 var cart22_vm; 1221 document.addEventListener("DOMContentLoaded", function (event) { 1222 cart22_vm = new Vue({ 1223 store: lnw_store, 1224 components: { 1225 'cart-item' : { 1226 props: ['item'], 1227 data: function() { 1228 return { 1229 edit_quantity_value: null 1230 } 1231 }, 1232 computed: { 1233 can_increase: function() { 1234 if(this.quantity_value < this.item.remain) { 1235 return true; 1236 } 1237 return false; 1238 }, 1239 can_decrease: function() { 1240 if(this.quantity_value > 0) { 1241 return true; 1242 } 1243 return false; 1244 }, 1245 is_flash_sale: function() { 1246 if(this.item.sale_promotion_id) { 1247 return true; 1248 } 1249 if(this.item.promotions && this.item.promotions.find(function(p){ return (p && p.toLowerCase().indexOf('flash')>-1); })) { 1250 return true; 1251 } 1252 if(this.item.promotion_datas) { 1253 var ps = []; 1254 for(var k in this.item.promotion_datas){ 1255 ps.push(this.item.promotion_datas[k]); 1256 } 1257 return ps.some(function(p){ return p && p.type=='sale'; }); 1258 } 1259 return false; 1260 }, 1261 quantity_value: { 1262 get: function() { 1263 if(this.edit_quantity_value !== null) { 1264 return this.edit_quantity_value 1265 } 1266 return this.item.quantity; 1267 }, 1268 set: function(val) { 1269 var that = this; 1270 this.edit_quantity_value = val; 1271 this.$store.dispatch('cart/set_product_quantity', { 1272 iid: this.item.iid, 1273 spec: this.item.spec, 1274 quantity: val, 1275 success: function() { 1276 that.edit_quantity_value = null; 1277 } 1278 }) 1279 } 1280 } 1281 }, 1282 methods: { 1283 increase_quantity: function() { 1284 if(!this.can_increase) { 1285 return; 1286 } 1287 this.quantity_value ++; 1288 this.alert_limit(); 1289 }, 1290 decrease_quantity: function() { 1291 if(!this.can_decrease) { 1292 return; 1293 } 1294 this.quantity_value --; 1295 this.alert_limit(); 1296 }, 1297 alert_limit: function() { 1298 if(!this.item || !this.item.promotion_datas){ return; } 1299 var promo = null; 1300 Object.keys(this.item.promotion_datas).forEach(function(pid){ 1301 var p = this.item.promotion_datas[pid]; 1302 if(p && p.type === 'sale' && !promo){ 1303 promo = p; 1304 } 1305 }.bind(this)); 1306 if(!promo){ return; } 1307 var limit = promo.order_limit || promo.max_quantity; 1308 if(!limit){ return; } 1309 var unit = this.item.unit || ''; 1310 if(this.quantity_value > limit){ 1311 __lnw__.simpleAlert(__lnw__.show_lang('FLASHSALE-LIMIT-OVER', limit, unit)); 1312 }else if(this.quantity_value == limit){ 1313 __lnw__.simpleAlert(__lnw__.show_lang('FLASHSALE-LIMIT-REACH', limit, unit)); 1314 } 1315 } 1316 }, 1317 template: `<div class="cart22_item"> 1318 <div class="cart22_item_right"> 1319 <a :href="item.url"> 1320 <div class="cart22_item_img"> 1321 <img :src="item.thumbnail"> 1322 </div> 1323 </a> 1324 </div> 1325 <div class="cart22_item_left"> 1326 <div v-if="item.remain < item.quantity" class="cart22_tag_warning">สิà¸à¸à¹à¸²à¸à¸µà¹à¹à¸«à¸¥à¸·à¸à¹à¸¡à¹à¹à¸à¸µà¸¢à¸à¸à¸</div> 1327 <div class="cart22_item_name"> 1328 <template v-if="item.parent_name" > 1329 <a :href="item.url" v-text="item.parent_name"></a> 1330 <div class="cart22_subitem_name"><span class="icon-subitem">➜</span> {{item.sku_name}}</div> 1331 </template> 1332 <template v-else> 1333 <a :href="item.url" v-text="item.name"></a> 1334 </template> 1335 <div v-for="(promotion, index) in item.promotions" class="cart22_promotions" :key="index" title="à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸">à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸ {{ promotion }}</div> 1336 </div> 1337 <div class="cart22_item_price">฿ {{price_format(item.unit_price,2)}} <span v-if="is_flash_sale" class="cart22_flash_badge">â¡ Flash Sale</span></div> 1338 <div class="cart22_item_count"> 1339 <div class="cart22_item_countbutton cart22_item_increase" @click="increase_quantity" :class="{disabled:(!can_increase)}"> 1340 <img src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/add.png"/></div> 1341 <div class="cart22_item_countinput"><input type="number" v-model.number="quantity_value" min="0" max="item.remain" /></div> 1342 <div class="cart22_item_countbutton cart22_item_decrease" @click="decrease_quantity" :class="{disabled:(!can_decrease)}"> 1343 <img v-if="quantity_value == 1" class="delete_icon" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/delete.png"/> 1344 <img v-else src="https://www.henghengmarble.com/system/application/modules/lnwshop/_images/cart22/remove.png"/> 1345 </div> 1346 </div> 1347 </div> 1348 </div>` 1349 } 1350 }, 1351 el: '#cart22_container', 1352 data: function () { 1353 var data = { 1354 cart_is_show: false, 1355 cart_is_hiding: false, 1356 mem_ycoord: 0, 1357 cc_color: '#007bff' 1358 }; 1359 return data; 1360 }, 1361 computed: { 1362 items: function() { 1363 if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.items) { 1364 return this.$store.state.cart.data.items 1365 } 1366 return []; 1367 }, 1368 discounts: function() { 1369 if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.after_product_discounts) { 1370 return this.$store.state.cart.data.after_product_discounts; 1371 } 1372 return []; 1373 }, 1374 total_num: function() { 1375 return number_format(this.items.length); 1376 }, 1377 total_quantity: function() { 1378 return this.items.reduce(function(a, item) { 1379 return a+ item.quantity 1380 },0); 1381 }, 1382 total_price: function() { 1383 return this.items.reduce(function(a, item) { 1384 return a + item.total_price 1385 },0); 1386 }, 1387 after_product_price: function() { 1388 if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.after_product_price) { 1389 return this.$store.state.cart.data.after_product_price; 1390 } 1391 return this.total_price; 1392 }, 1393 alert_is_show: function() { 1394 return false && (this.total_quantity > 0); 1395 }, 1396 is_loading: function() { 1397 if(this.$store.state.cart && this.$store.state.cart.data) { 1398 return this.$store.state.cart.is_loading; 1399 } 1400 return false;
1401 }, 1402 is_initing: function() { 1403 if(this.$store.state.cart && this.$store.state.cart.data){ 1404 return false; 1405 } 1406 return true; 1407 } 1408 }, 1409 watch: { 1410 alert_is_show: function(newval) { 1411 var elements = document.querySelectorAll(".register_badge, .adminBar .quickMenu .navigate .navi-container, .pageCapContainer"); 1412 if(newval) { 1413 elements.forEach(function(element) { 1414 element.classList.add('cart22_adjustOther'); 1415 element.classList.add('cart22_adjustOther_show'); 1416 }); 1417 setTimeout(function () { 1418 elements.forEach(function(element) { 1419 element.classList.remove('cart22_adjustOther_show'); 1420 }); 1421 }, 1000); 1422 } else { 1423 elements.forEach(function(element) { 1424 element.classList.remove('cart22_adjustOther'); 1425 element.classList.add('cart22_adjustOther_hide'); 1426 }); 1427 setTimeout(function () { 1428 elements.forEach(function(element) { 1429 element.classList.remove('cart22_adjustOther_hide'); 1430 }); 1431 }, 500); 1432 } 1433 } 1434 }, 1435 methods: { 1436 cartShow: function() { 1437 this.cart_is_show = true; 1438 document.body.classList.add('cart22_body_noscroll'); 1439 1440 this.mem_ycoord = window.scrollY; 1441 var style = document.body.style; 1442 style.position = 'fixed'; 1443 style.left = '0'; 1444 style.right = '0'; 1445 style.top = - this.mem_ycoord + 'px'; 1446 }, 1447 cartHide: function() { 1448 this.cart_is_hiding = true; 1449 let that = this; 1450 setTimeout(function () { 1451 that.cart_is_show = false; 1452 that.cart_is_hiding = false; 1453 document.body.classList.remove('cart22_body_noscroll'); 1454 var style = document.body.style; 1455 style.position = ''; 1456 style.left = ''; 1457 style.right = ''; 1458 style.top = ''; 1459 window.scroll({top: that.mem_ycoord}); 1460 1461 }, 250); 1462 }, 1463 } 1464 }); 1465 }); 1466</script>
1466<div id="lnw-gototop" class="" onclick="lnw_gototop();"><span class="text"></span></div><style class="lnw_custom_css_container" type="text/css">/* Heng Heng Marble CI â complete Gray SimpleTemplate override 1467 Cream #EFE8DC Surface #F7F1E6/#FFFFFF Ink #1C1916 Muted #4A453E 1468 Red #9B1C1C Gold #C4A35A Line #E6DCCB Darker red hover #7A1515 1469 Kill cyan #00aeef / #00affe. Prompt already imported on shop. */ 1470 1471/* ========== Page / body ========== */ 1472html, body, 1473#gadget-1, 1474#gadget-1.widgetPage, 1475.pageWrapper, .pageShirt, .pageUnderwear, .zoneShirt, 1476.page_home, .page_main, .page_category, .page_product, 1477.page_aboutus, .page_contactus, .page_how2order, 1478.page_informpayment, .page_cart, .page_article, 1479.page_order, .page_payment, .page_webboard { 1480 background-color: #EFE8DC !important; 1481 background-image: none !important; 1482 font-family: Prompt, Tahoma, sans-serif !important; 1483 color: #1C1916 !important; 1484} 1485body, #gadget-1, .wrapper, #container, .container, .titleHeader .headerText { 1486 font-family: Prompt, Tahoma, sans-serif !important; 1487 color: #1C1916 !important; 1488} 1489#gadget-1 { background-color: #EFE8DC !important; background-image: none !important; } 1490#gadget-2, #gadget-4, #gadget-9 { 1491 background-color: #EFE8DC !important; 1492 background-image: none !important; 1493 border: 0 !important; 1494} 1495 1496/* ========== Links: red, hover gold. Never cyan ========== */ 1497/* Do NOT force color on every â that turns white-on-red CTAs invisible */ 1498a, a:visited, a:active, a:link { color: #9B1C1C; text-decoration: none !important; } 1499a:hover, a:focus { color: #C4A35A; } 1500/* Content / nav / product name links stay CI red */ 1501.z-article a:not([style*="color"]), 1502.z-aside a:not([class*="b-"]):not([style*="color"]), 1503.product_name a, .productItem .product_name a, 1504.u-blog a, .footer a, #gadget-18 a { 1505 color: #9B1C1C !important; 1506} 1507.z-article a:hover, .z-aside a:hover, .product_name a:hover, #gadget-18 a:hover { 1508 color: #C4A35A !important; 1509} 1510/* Explicit white text on red/gold CTA anchors (inline-styled homepage buttons) */ 1511a[style*="background: #9B1C1C"], 1512a[style*="background:#9B1C1C"], 1513a[style*="background: #9b1c1c"], 1514a[style*="background:#9b1c1c"] { 1515 color: #FFFFFF !important; 1516} 1517a[style*="background: #C4A35A"], 1518a[style*="background:#C4A35A"] { 1519 color: #1C1916 !important; 1520} 1521 1522/* ========== Nav #gadget-3 â cream bar, red active ========== */ 1523#gadget-3, 1524#gadget-3.widgetZone, 1525#gadget-3 .zoneShirt, 1526#gadget-3 .nav-container { 1527 background: #F7F1E6 !important; 1528 background-image: none !important; 1529 background-color: #F7F1E6 !important; 1530 height: 48px !important; 1531 margin-top: 0 !important; 1532 width: 100% !important; 1533 max-width: 960px !important; 1534 border-bottom: 2px solid #C4A35A !important; 1535 border-top: 1px solid #E6DCCB !important; 1536 box-sizing: border-box !important; 1537} 1538#gadget-3 .pageNav, 1539#gadget-3 .pageNav li { 1540 height: 48px !important; 1541 background: transparent !important; 1542 background-image: none !important; 1543} 1544#gadget-3 ul.pageNav li a { text-decoration: none !important; display: block !important; } 1545#gadget-3 .pageNav a .text, 1546#gadget-3 .pageNav li a .text { 1547 height: 48px !important; 1548 line-height: 48px !important; 1549 color: #1C1916 !important; 1550 font-family: Prompt, Tahoma, sans-serif !important; 1551 font-size: 13px !important; 1552 font-weight: 600 !important; 1553 text-shadow: none !important; 1554 text-decoration: none !important; 1555 padding: 0 14px !important; 1556} 1557#gadget-3 .pageNav li.iamhere, 1558#gadget-3 .pageNav li.iamhere a, 1559#gadget-3 .pageNav li.iamhere .text, 1560#gadget-3 .pageNav li.iamhere:hover, 1561#gadget-3 .pageNav li.nav-1.nav-main.iamhere:hover { 1562 background: #9B1C1C !important; 1563 background-image: none !important; 1564 color: #FFFFFF !important; 1565} 1566#gadget-3 ul.pageNav li:hover, 1567#gadget-3 ul.pageNav li :hover, 1568#gadget-3 ul.pageNav li.nav-7.nav-contactus:hover, 1569#gadget-3 .pageNav li.nav-1.nav-main:hover { 1570 background: #9B1C1C !important; 1571 background-image: none !important; 1572 background-color: #9B1C1C !important; 1573 position: static !important; 1574 left: auto !important; 1575 width: auto !important; 1576} 1577#gadget-3 .pageNav a:hover .text, 1578#gadget-3 .pageNav a .text:hover {
1579 color: #FFFFFF !important; 1580 text-shadow: none !important; 1581 text-decoration: none !important; 1582} 1583 1584/* ========== Section titles ========== */ 1585.u-section .titleHeader, 1586.titleHeader, 1587.LHEADER, .MHEADER, 1588#gadget-7 .titleHeader, 1589#gadget-25 .titleHeader, 1590#gadget-26 .titleHeader, 1591#gadget-42 .titleHeader, 1592#gadget-76 .titleHeader, 1593#gadget-77 .titleHeader { 1594 background: transparent !important; 1595 background-image: none !important; 1596 background-color: transparent !important; 1597 height: auto !important; 1598 min-height: 0 !important; 1599 border-bottom: 2px solid #C4A35A !important; 1600 position: relative !important; 1601 width: auto !important; 1602} 1603.u-section .titleHeader .headerText, 1604.titleHeader .headerText, 1605.LHEADER .headerText, .MHEADER .headerText, 1606#gadget-7 .titleHeader .headerText, 1607#gadget-25 .titleHeader .headerText, 1608#gadget-26 .titleHeader .headerText, 1609#gadget-42 .titleHeader .headerText, 1610#gadget-76 .titleHeader .headerText, 1611#gadget-77 .titleHeader .headerText { 1612 font-family: Prompt, Tahoma, sans-serif !important; 1613 color: #1C1916 !important; 1614 font-weight: 600 !important; 1615 font-size: 18px !important; 1616 text-shadow: none !important; 1617 height: auto !important; 1618 line-height: normal !important; 1619 padding: 10px 12px !important; 1620 margin: 0 !important; 1621 position: relative !important; 1622 top: auto !important; 1623 left: auto !important; 1624 width: auto !important; 1625 text-align: left !important; 1626} 1627.SHEADER .headerText { 1628 border-bottom: 1px solid #C4A35A !important; 1629 color: #9B1C1C !important; 1630 font-family: Prompt, Tahoma, sans-serif !important; 1631 line-height: normal !important; 1632 height: auto !important; 1633 padding: 8px 0 !important; 1634} 1635 1636/* Keep homepage intro gadget-5 visible + readable */ 1637#gadget-5 { display: block !important; background: transparent !important; } 1638#gadget-5 .titleHeader { 1639 height: auto !important; 1640 min-height: 0 !important; 1641 background: none !important; 1642 border-bottom: 0 !important; 1643} 1644 1645/* ========== Product cards ========== */ 1646.productItem, 1647.productsArea .productItem, 1648.z-article .productItem, 1649.thumbnailArea .productItem { 1650 background: #FFFFFF !important; 1651 border: 1px solid #E6DCCB !important; 1652 border-radius: 8px !important; 1653 box-shadow: none !important; 1654 -webkit-box-shadow: none !important; 1655 overflow: hidden; 1656} 1657.product_name, 1658.productItem .product_name, 1659.productsArea .product_name a, 1660.productItem .product_name a { 1661 font-size: 13px !important; 1662 font-weight: 500 !important; 1663 line-height: 1.35 !important; 1664 color: #1C1916 !important; 1665 display: -webkit-box !important; 1666 -webkit-line-clamp: 2 !important; 1667 -webkit-box-orient: vertical !important; 1668 overflow: hidden !important; 1669 max-height: 2.7em !important; 1670} 1671.product_price, 1672.productItem .product_price, 1673.productsArea .product_price { 1674 color: #9B1C1C !important; 1675 font-weight: 700 !important; 1676} 1677.product_price_old { color: #4A453E !important; } 1678 1679/* Order buttons â compact red, white label always visible */ 1680.b-order, .b-subpro, a.b-order, a.b-subpro, 1681.product_button a, 1682.b-order .buttonCenter, .b-subpro .buttonCenter, 1683.LBUTTON .buttonCenter, .MBUTTON .buttonCenter, .SBUTTON .buttonCenter, 1684#gadget-7 .b-order, #gadget-7 .b-subpro, 1685#gadget-25 .b-order, #gadget-25 .b-subpro, 1686#gadget-42 .b-order, #gadget-42 .b-subpro, 1687#gadget-96 .b-order, #gadget-96 .b-subpro { 1688 background: #9B1C1C !important; 1689 background-image: none !important; 1690 background-color: #9B1C1C !important; 1691 border: 0 !important; 1692 border-radius: 4px !important; 1693 color: #FFFFFF !important; 1694 box-shadow: none !important; 1695 -webkit-box-shadow: none !important; 1696 height: auto !important; 1697 min-height: 0 !important; 1698 line-height: 1.3 !important; 1699} 1700.b-order .buttonLeft, .b-order .buttonRight, 1701.b-subpro .buttonLeft, .b-subpro .buttonRight, 1702.LBUTTON .buttonLeft, .LBUTTON .buttonRight, 1703.MBUTTON .buttonLeft, .MBUTTON .buttonRight, 1704.SBUTTON .buttonLeft, .SBUTTON .buttonRight { 1705 display: none !important; 1706 width: 0 !important; 1707 background: none !important; 1708} 1709.b-order .buttonText, .b-subpro .buttonText, 1710.LBUTTON .buttonText, .MBUTTON .buttonText, .SBUTTON .buttonText, 1711.b-order .buttonCenter, .b-subpro .buttonCenter, 1712#gadget-7 .b-order .buttonText, #gadget-7 .b-subpro .buttonText, 1713#gadget-25 .b-order .buttonText, #gadget-25 .b-subpro .buttonText, 1714#gadget-42 .b-order .buttonText, #gadget-42 .b-subpro .buttonText, 1715#gadget-96 .b-order .buttonText, #gadget-96 .b-subpro .buttonText { 1716 color: #FFFFFF !important; 1717 text-shadow: none !important; 1718 font-size: 13px !important; 1719 font-weight: 600 !important; 1720 font-family: Prompt, Tahoma, sans-serif !important; 1721 padding: 6px 14px !important; 1722 display: inline-block !important; 1723 float: none !important; 1724 width: auto !important; 1725 height: auto !important; 1726 line-height: 1.35 !important; 1727 background: transparent !important; 1728 background-image: none !important; 1729} 1730.product_button, .productItem .product_button { 1731 text-align: center !important; 1732 margin-top: 6px !important; 1733} 1734.product_button .b-order, .product_button .b-subpro { 1735 display: inline-block !important; 1736 width: auto !important; 1737 min-width: 0 !important; 1738} 1739.b-order:hover, .b-subpro:hover, a.b-order:hover, a.b-subpro:hover, 1740.product_button a:hover, 1741.LBUTTON:hover .buttonCenter, .MBUTTON:hover .buttonCenter, .SBUTTON:hover .buttonCenter, 1742#gadget-7 .b-order:hover, #gadget-7 .b-subpro:hover, 1743#gadget-25 .b-order:hover, #gadget-25 .b-subpro:hover, 1744#gadget-42 .b-order:hover, #gadget-42 .b-subpro:hover, 1745#gadget-96 .b-order:hover, #gadget-96 .b-subpro:hover { 1746 background: #7A1515 !important; 1747 background-image: none !important; 1748 background-color: #7A1515 !important; 1749} 1750.b-order:hover .buttonText, .b-subpro:hover .buttonText,
1751.LBUTTON:hover .buttonText, .MBUTTON:hover .buttonText, .SBUTTON:hover .buttonText, 1752#gadget-7 .b-order:hover .buttonText, #gadget-7 .b-subpro:hover .buttonText, 1753#gadget-25 .b-order:hover .buttonText, #gadget-25 .b-subpro:hover .buttonText, 1754#gadget-42 .b-order:hover .buttonText, #gadget-42 .b-subpro:hover .buttonText, 1755#gadget-96 .b-order:hover .buttonText, #gadget-96 .b-subpro:hover .buttonText, 1756.size-80 .b-subpro:hover .buttonText, #gadget-7 .size-80 .b-order:hover .buttonText, 1757#gadget-25 .size-80 .b-order:hover .buttonText, #gadget-42 .size-80 .b-order:hover .buttonText { 1758 color: #FFFFFF !important; 1759 text-decoration: none !important; 1760} 1761 1762/* ========== Category #gadget-11 ========== */ 1763#gadget-11 { width: 220px; } 1764#gadget-11 .content, 1765#gadget-11 .middle-cat { 1766 max-height: 480px !important; 1767 overflow-y: auto !important; 1768} 1769#gadget-11 .pro-new { display: none !important; } 1770#gadget-11 .headerText { 1771 font-family: Prompt, Tahoma, sans-serif !important; 1772 color: #1C1916 !important; 1773 font-weight: 600 !important; 1774 text-align: left !important; 1775} 1776#gadget-11 .content > .main-cat > .cat-item { 1777 background-color: #F7F1E6 !important; 1778 margin: 3px 0 !important; 1779} 1780#gadget-11 a, 1781#gadget-11 .content .main-cat a, 1782#gadget-11 .content .main-cat .main-cat a { 1783 color: #1C1916 !important; 1784 background-color: transparent !important; 1785 font-family: Prompt, Tahoma, sans-serif !important; 1786} 1787#gadget-11 .content .cat-item.pro-all, 1788#gadget-11 .content .cat-item.pro-hot, 1789#gadget-11 .content .cat-item.pro-recommend, 1790#gadget-11 .content .cat-item.pro-sale { 1791 background-color: #FFFFFF !important; 1792 border-left: 3px solid #9B1C1C !important; 1793} 1794#gadget-11 .content .cat-item.pro-all a, 1795#gadget-11 .content .cat-item.pro-hot a, 1796#gadget-11 .content .cat-item.pro-recommend a, 1797#gadget-11 .content .cat-item.pro-sale a { color: #9B1C1C !important; font-weight: 600 !important; } 1798#gadget-11 .content .main-cat a:hover, 1799#gadget-11 .content .main-cat .sub-cat .subframebg .cat-item a:hover, 1800#gadget-11 a:hover, 1801#gadget-11 .content .cat-item.pro-all a:hover, 1802#gadget-11 .content .cat-item.pro-recommend a:hover, 1803#gadget-11 .content .cat-item.pro-hot a:hover, 1804#gadget-11 .content .cat-item.pro-sale a:hover { 1805 background-color: #9B1C1C !important; 1806 color: #FFFFFF !important; 1807 text-decoration: none !important; 1808} 1809#gadget-11 .subframebg { 1810 background-color: #F7F1E6 !important; 1811 border: 1px solid #E6DCCB !important; 1812 box-shadow: none !important; 1813} 1814#gadget-11 .content .main-cat .sub-cat .subframebg .cat-item a { color: #1C1916 !important; } 1815 1816/* ========== Hide junk ========== */ 1817#gadget-85, #gadget-97, #gadget-124, #gadget-125 { display: none !important; } 1818 1819/* ========== Breadcrumb #gadget-20 ========== */ 1820#gadget-20 .bc_page .page .left, 1821#gadget-20 .bc_page .page .center, 1822#gadget-20 .bc_page .page .right, 1823#gadget-20 .bc_page .page.first .left, 1824#gadget-20 .bc_page .page.last .left, 1825#gadget-20 .bc_page .page.last .center, 1826#gadget-20 .bc_page .page.last .right { 1827 background: #F7F1E6 !important; 1828 background-image: none !important; 1829 background-color: #F7F1E6 !important; 1830} 1831#gadget-20 a, #gadget-20 .bc_page a { color: #4A453E !important; } 1832#gadget-20 a:hover, #gadget-20 .bc_page a:hover, 1833#gadget-20 .bc_page .page.last a:hover { color: #9B1C1C !important; } 1834#gadget-20 .bc_page .page.last a { color: #9B1C1C !important; font-weight: 600 !important; } 1835#gadget-20 .bc_page .page .center { border-bottom: 2px solid #C4A35A !important; } 1836 1837/* ========== Sidebar widgets ========== */ 1838#gadget-10, #gadget-15, #gadget-13, #gadget-93, #gadget-96, #gadget-14 { 1839 background: #F7F1E6 !important; 1840} 1841#gadget-10 .unitShirt, #gadget-15 .unitShirt, #gadget-13 .unitShirt, 1842#gadget-93 .unitShirt, #gadget-96 .unitShirt, #gadget-14 .unitShirt { 1843 background-color: #FFFFFF !important; 1844} 1845#gadget-10 .titleHeader, #gadget-15 .titleHeader, #gadget-13 .titleHeader, 1846#gadget-93 .titleHeader, #gadget-96 .titleHeader, #gadget-14 .titleHeader, 1847#gadget-11 .titleHeader { 1848 background: #F7F1E6 !important; 1849 background-image: none !important; 1850 height: auto !important; 1851 width: auto !important; 1852 border-bottom: 2px solid #C4A35A !important; 1853} 1854#gadget-10 .titleHeader .headerText, #gadget-15 .titleHeader .headerText, 1855#gadget-13 .titleHeader .headerText, #gadget-93 .titleHeader .headerText, 1856#gadget-96 .titleHeader .headerText, #gadget-14 .titleHeader .headerText { 1857 font-family: Prompt, Tahoma, sans-serif !important; 1858 color: #1C1916 !important; 1859 font-style: normal !important; 1860 font-weight: 600 !important; 1861 text-shadow: none !important; 1862 font-size: 15px !important; 1863 position: relative !important; 1864 top: auto !important; 1865 left: auto !important; 1866 line-height: normal !important; 1867 padding: 10px 12px !important; 1868 height: auto !important; 1869 width: auto !important; 1870 text-align: left !important; 1871} 1872#gadget-10 .unitShoe, #gadget-15 .unitShoe, #gadget-13 .unitShoe, 1873#gadget-14 .unitShoe { 1874 background: none !important; 1875 background-image: none !important; 1876 height: 8px !important; 1877} 1878#gadget-10 a { color: #9B1C1C !important; } 1879#gadget-10 a:hover { color: #C4A35A !important; } 1880#gadget-15 a, #gadget-13 a, #gadget-93 a, #gadget-96 a { color: #9B1C1C !important; } 1881#gadget-15 a:hover, #gadget-13 a:hover, #gadget-93 a:hover, #gadget-96 a:hover { color: #C4A35A !important; } 1882#gadget-10 .button-container .submit, 1883#gadget-13 .b-login, #gadget-13 .b-logout, #gadget-13 .b-gotoRegister { 1884 background: #9B1C1C !important; 1885 background-image: none !important; 1886 color: #FFFFFF !important; 1887 border-radius: 4px !important; 1888} 1889#gadget-10 .button-container .submit:hover, 1890#gadget-13 .b-login:hover, #gadget-13 .b-logout:hover, #gadget-13 .b-gotoRegister:hover { 1891 background: #7A1515 !important; 1892 background-image: none !important; 1893} 1894#gadget-96 .seeAll { 1895 background: #9B1C1C !important; 1896 border: 0 !important; 1897 color: #FFFFFF !important; 1898 border-radius: 4px !important; 1899} 1900#gadget-96 .seeAll:hover { color: #FFFFFF !important; background: #7A1515 !important; } 1901 1902/* ========== Footer #gadget-18 ========== */ 1903#gadget-18 { 1904 background: #EFE8DC !important; 1905 background-image: none !important; 1906 color: #4A453E !important; 1907 padding-top: 28px !important; 1908 font-family: Prompt, Tahoma, sans-serif !important; 1909} 1910#gadget-18 a { color: #9B1C1C !important; } 1911#gadget-18 a:hover { color: #C4A35A !important; } 1912#gadget-18 .copyright, #gadget-18 .copyrightText, #gadget-18 .footerText, 1913#gadget-18 .menu, #gadget-18 .info-text { color: #4A453E !important; } 1914 1915/* ========== Cart #gadget-19 ========== */ 1916#gadget-19 .unitShirt { 1917 background-color: #F7F1E6 !important; 1918 border: 1px solid #E6DCCB !important; 1919 border-top: 3px solid #9B1C1C !important; 1920 box-shadow: none !important; 1921} 1922#gadget-19 .product a { color: #9B1C1C !important; font-family: Prompt, Tahoma, sans-serif !important; } 1923#gadget-19 .product a:hover { color: #C4A35A !important; } 1924 1925/* ========== Forms / tables ========== */ 1926.u-section input[type=text], .u-section input[type=password], 1927.u-section input[type=email], .u-section textarea, .u-section select, 1928input[type=text], input[type=password], input[type=email], textarea, select { 1929 background: #FFFFFF !important; 1930 border: 1px solid #E6DCCB !important; 1931 border-radius: 4px !important; 1932 color: #1C1916 !important; 1933 font-family: Prompt, Tahoma, sans-serif !important; 1934 box-shadow: none !important; 1935} 1936.u-section input[type=text]:focus, .u-section input[type=password]:focus, 1937input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, 1938textarea:focus, select:focus { 1939 outline: 1px solid #C4A35A !important; 1940 border-color: #C4A35A !important; 1941 box-shadow: none !important; 1942} 1943.ROWTABLE thead td, .ROWTABLE thead .leftTD, .ROWTABLE thead .rightTD { 1944 background-color: #9B1C1C !important; 1945 color: #FFFFFF !important; 1946} 1947.ROWTABLE tbody td, .COLTABLE tbody td { 1948 border-color: #E6DCCB !important; 1949 background: #FFFFFF !important; 1950} 1951.COLTABLE thead td { border-bottom: 1px solid #9B1C1C !important; color: #1C1916 !important; } 1952.u-section .BLOCK, .u-section .ABLOCK, .u-section .BBLOCK, 1953.u-section .CBLOCK, .u-section .DBLOCK, 1954.u-section .contactsTable .contactArea, 1955.u-section .contactsTable .new_contact_area,
1956.orderloginMember, .orderloginGuest, 1957.u-section .trackcode_search { 1958 background-color: #FFFFFF !important; 1959 border: 1px solid #E6DCCB !important; 1960 box-shadow: none !important; 1961 -webkit-box-shadow: none !important; 1962} 1963.page_how2order .BLOCK, .page_informpayment .BLOCK, .page_contactus .BLOCK, 1964.u-section-how2order, .u-section-informpayment, .u-section-contactus { 1965 background-color: transparent !important; 1966} 1967.u-section .how2orderBlock, .u-section .mainBlock, 1968.u-section .contactusBlock-map .Block, .u-section .contactusBlock-info .Block { 1969 box-shadow: none !important; 1970 border: 0 !important; 1971} 1972 1973/* ========== Product detail ========== */ 1974.u-section .productHeaderBlock { background-color: #9B1C1C !important; } 1975.u-section .productHeaderBlock .headerText { color: #FFFFFF !important; } 1976.u-section .product_tab .tab li { 1977 background-color: #F7F1E6 !important; 1978 border: 1px solid #E6DCCB !important; 1979 box-shadow: none !important; 1980} 1981.u-section .product_tab .tab li a { color: #1C1916 !important; } 1982.u-section .product_tab .tab li:hover { border: 1px solid #C4A35A !important; } 1983.u-section .product_tab .tab li.tab-selected, 1984.u-section .product_tab .tab li[choose="true"] { 1985 background-color: #9B1C1C !important; 1986 border-color: #9B1C1C !important; 1987 width: auto !important; 1988} 1989.u-section .product_tab .tab li.tab-selected a, 1990.u-section .product_tab .tab li[choose="true"] a { color: #FFFFFF !important; } 1991.u-section .product_tab .tab li a:hover, 1992.u-section .product_tab .tab li.tab-selected a:hover { color: #C4A35A !important; } 1993.u-section .product_tab .tab li.tab-selected a:hover { color: #FFFFFF !important; } 1994 1995.u-section .productDataBlock .add_cart, 1996.productPage .addCartArea .add_cart, 1997.u-section .subadd2cart { 1998 background-color: #9B1C1C !important; 1999 background-image: none !important; 2000 border: 0 !important; 2001 box-shadow: none !important; 2002 -webkit-box-shadow: none !important; 2003 border-radius: 4px !important; 2004} 2005.u-section .productDataBlock .add_cart .add_cart_text, 2006.productPage .addCartArea .add_cart .add_cart_text, 2007.u-section .subadd2cart .subadd2cart_text { color: #FFFFFF !important; } 2008.u-section .productDataBlock .add_cart:hover, 2009.productPage .addCartArea .add_cart:hover, 2010.u-section .subadd2cart:hover { 2011 background-color: #7A1515 !important; 2012 border-color: #7A1515 !important; 2013} 2014.u-section .productDataBlock .add_cart:hover .add_cart_text, 2015.productPage .addCartArea .add_cart:hover .add_cart_text, 2016.u-section .subadd2cart:hover .subadd2cart_text { color: #FFFFFF !important; } 2017 2018.productPage .addCartArea .buy_now { 2019 background-color: #C4A35A !important; 2020 box-shadow: none !important; 2021 -webkit-box-shadow: none !important; 2022 border-radius: 4px !important; 2023} 2024.productPage .addCartArea .buy_now .buy_now_text { color: #1C1916 !important; } 2025.productPage .addCartArea .buy_now:hover { background-color: #B08F48 !important; } 2026.productPage .addCartArea .buy_now:hover .buy_now_text { color: #1C1916 !important; } 2027 2028.u-section .subproductsArea .subproductItem { 2029 border: 1px solid #E6DCCB !important; 2030 background: #FFFFFF !important; 2031 box-shadow: none !important; 2032} 2033.u-section .subproductsArea .subproductItem .subproductHeader { background-color: #9B1C1C !important; } 2034 2035/* ========== Article / blog ========== */ 2036.u-section .blogBox, 2037#gadget-26 .blogsArea .blogBox, 2038#gadget-76 .blogsArea .blogBox, 2039.u-section .postBlock, .u-section .postBlock-mini, 2040.u-section .productSearchLayout { 2041 border: 0 !important; 2042 border-bottom: 1px solid #E6DCCB !important; 2043 background: #F7F1E6 !important; 2044 box-shadow: none !important; 2045} 2046.u-section .blog_title { color: #1C1916 !important; } 2047.u-section .blogsArea .more { background-color: #9B1C1C !important; } 2048.u-section .blogsArea .more a { color: #FFFFFF !important; } 2049.u-section .blogsArea .more a:hover { color: #FFFFFF !important; } 2050.u-section .aboutusBlock .shop_desc p { color: #4A453E !important; font-family: Prompt, Tahoma, sans-serif !important; } 2051 2052/* ========== Content images ========== */ 2053.postHTML img, .gadgetHTML img, .aboutusBlock img, 2054.blogBox img, .mceContentBody img, .shop_desc img { 2055 max-width: 100% !important; 2056 height: auto !important; 2057} 2058 2059/* ========== Misc cyan kill / showroom links ========== */ 2060#gadget-7 a:hover, #gadget-25 a:hover, #gadget-26 a:hover, 2061#gadget-42 a:hover, #gadget-76 a:hover { color: #C4A35A !important; } 2062.u-section .text-container { background-image: none !important; } 2063 2064/* ========== Product detail: kill old pure-red / yellow highlight junk ========== */ 2065.page_product .productDetail, 2066.page_product .product_detail, 2067.page_product .detail, 2068.page_product .u-section-product, 2069.page_product .unitShirt font, 2070.page_product .unitShirt span, 2071.page_product .unitShirt p, 2072.page_product .unitShirt div, 2073.page_product .productDescription, 2074.page_product .pro_detail, 2075#gadget-4 .productDetail font, 2076#gadget-4 .productDetail span { 2077 background-color: transparent !important; 2078} 2079.page_product font[color="red"], 2080.page_product font[color="#ff0000"], 2081.page_product font[color="#FF0000"], 2082.page_product font[color="yellow"], 2083.page_product font[color="#ffff00"], 2084.page_product font[color="#FFFF00"], 2085.page_product font[color="#ff6600"], 2086.page_product [style*="color: red"], 2087.page_product [style*="color:red"], 2088.page_product [style*="color:#ff0000"], 2089.page_product [style*="color: #ff0000"], 2090.page_product [style*="color:#FF0000"], 2091.page_product [style*="color: #FF0000"], 2092.page_product [style*="color:#ff6600"], 2093.page_product [style*="color: #ff6600"] { 2094 color: #9B1C1C !important; 2095} 2096.page_product [style*="background-color: red"], 2097.page_product [style*="background-color:red"], 2098.page_product [style*="background: red"], 2099.page_product [style*="background:red"], 2100.page_product [style*="background-color:#ff0000"], 2101.page_product [style*="background-color: #ff0000"], 2102.page_product [style*="background-color:#FF0000"], 2103.page_product [style*="background:#ff0000"], 2104.page_product [style*="background: #ff0000"], 2105.page_product [style*="background-color:#ffff00"], 2106.page_product [style*="background-color: #ffff00"], 2107.page_product [style*="background:#ffff00"], 2108.page_product [style*="background: #ffff00"], 2109.page_product [style*="background-color:yellow"], 2110.page_product [style*="background:yellow"] { 2111 background: transparent !important; 2112 background-color: transparent !important; 2113 color: #1C1916 !important; 2114} 2115/* Product title bar: keep red but not oversized */ 2116.page_product .product_name_detail, 2117.page_product .pro_name, 2118.page_product h1.product_name { 2119 background: #9B1C1C !important; 2120 color: #FFFFFF !important; 2121 border-radius: 6px !important; 2122 padding: 10px 14px !important; 2123 font-size: 18px !important; 2124 line-height: 1.35 !important; 2125} 2126 2127/* Empty sidebar recommended: quieter see-all */ 2128#gadget-96 .products_seeAll a.seeAll, 2129#gadget-96 a.seeAll { 2130 display: inline-block !important; 2131 background: transparent !important; 2132 color: #9B1C1C !important; 2133 border: 1px solid #C4A35A !important; 2134 border-radius: 4px !important; 2135 padding: 6px 12px !important; 2136 font-size: 12px !important; 2137} 2138#gadget-96 a.seeAll .text { color: #9B1C1C !important; } 2139 2140/* ========== Top 30 / recommend carousels â stop the empty-error look
2140========== */ 2141#gadget-7 .productsArea, 2142#gadget-7 .thumbnailArea { 2143 display: flex !important; 2144 flex-wrap: nowrap !important; 2145 overflow-x: auto !important; 2146 overflow-y: hidden !important; 2147 gap: 12px !important; 2148 padding: 12px 4px 18px !important; 2149 scroll-snap-type: x proximity; 2150 -webkit-overflow-scrolling: touch; 2151 width: auto !important; 2152 max-width: 100% !important; 2153 float: none !important; 2154} 2155#gadget-7 .productItem, 2156#gadget-7 .productArea, 2157#gadget-7 .productsArea .productItem, 2158#gadget-7 .size-150 .productArea, 2159.z-article #gadget-7 .size-150 .productArea { 2160 flex: 0 0 180px !important; 2161 width: 180px !important; 2162 max-width: 180px !important; 2163 min-width: 180px !important; 2164 height: auto !important; 2165 min-height: 0 !important; 2166 float: none !important; 2167 scroll-snap-align: start; 2168 margin: 0 !important; 2169 padding: 10px 8px 12px !important; 2170 box-sizing: border-box !important; 2171 overflow: hidden !important; 2172} 2173#gadget-7 .gadgetThumbnail, 2174#gadget-7 .size-150 .gadgetThumbnail, 2175#gadget-7 .gadgetThumbnail .gadgetFrame, 2176#gadget-7 .gadgetThumbnail .gadgetRibbon { 2177 float: none !important; 2178 display: block !important; 2179 width: 150px !important; 2180 height: 150px !important; 2181 margin: 0 auto 4px !important; 2182 position: relative !important; 2183 left: auto !important; 2184 top: auto !important; 2185} 2186#gadget-7 .gadgetThumbnail img, 2187#gadget-7 .productImage { 2188 width: 150px !important; 2189 height: 150px !important; 2190 max-width: 150px !important; 2191 object-fit: contain !important; 2192 display: block !important; 2193 margin: 0 auto !important; 2194} 2195#gadget-7 .productDetail, 2196#gadget-7 .size-150 .productItem .productDetail, 2197#gadget-7 .productsArea .productItem .productDetail { 2198 margin: 6px 4px 0 !important; 2199 padding: 0 !important; 2200 text-align: center !important; 2201 width: auto !important; 2202 float: none !important; 2203 display: block !important; 2204 clear: both !important; 2205 position: static !important; 2206} 2207#gadget-7 .product_name, 2208#gadget-7 .size-150 .product_name, 2209#gadget-7 .productsArea .productItem .product_name { 2210 height: auto !important; 2211 min-height: 0 !important; 2212 max-height: 2.7em !important; 2213 margin: 4px 0 2px !important; 2214 text-align: center !important; 2215 overflow: hidden !important; 2216} 2217#gadget-7 .product_price, 2218#gadget-7 .productsArea .productItem .product_price { 2219 position: static !important; 2220 height: auto !important; 2221 line-height: 1.3 !important; 2222 padding: 4px 0 !important; 2223 display: block !important; 2224 text-align: center !important; 2225} 2226#gadget-7 .product_button { 2227 margin: 6px auto 0 !important; 2228 text-align: center !important; 2229} 2230#gadget-7 .products_seeAll { 2231 text-align: center !important; 2232 padding: 4px 0 12px !important; 2233 clear: both !important; 2234} 2235#gadget-7 .products_seeAll a.seeAll, 2236#gadget-7 a.seeAll { 2237 display: inline-block !important; 2238 background: transparent !important; 2239 color: #9B1C1C !important; 2240 border: 1px solid #C4A35A !important; 2241 border-radius: 4px !important; 2242 padding: 6px 14px !important; 2243 font-size: 13px !important; 2244 font-weight: 600 !important; 2245} 2246#gadget-7 a.seeAll .text { color: #9B1C1C !important; background: transparent !important; } 2247 2248/* Sidebar recommend is a duplicate layout-main carousel in 220px â looks empty/broken */ 2249#gadget-96 { display: none !important; } 2250 2251/* ========== Mobile / .lnw-mobile ========== */ 2252.lnw-mobile #gadget-1, 2253.lnw-mobile #gadget-1.widgetPage, 2254body.lnw-mobile #gadget-1 { 2255 width: 100% !important; 2256 max-width: 100% !important; 2257} 2258.lnw-mobile #gadget-2, 2259.lnw-mobile #gadget-2 img, 2260.lnw-mobile .z-header img { 2261 max-width: 100% !important; 2262 height: auto !important; 2263 width: auto !important; 2264} 2265.lnw-mobile #gadget-3, 2266.lnw-mobile #gadget-3.widgetZone, 2267.lnw-mobile #gadget-3 .nav-container { 2268 width: 100% !important; 2269 max-width: 100% !important; 2270 height: auto !important; 2271} 2272.lnw-mobile #gadget-3 .pageNav, 2273.lnw-mobile #gadget-3 .pageNav li { 2274 height: auto !important; 2275 display: inline-block !important; 2276} 2277.lnw-mobile #gadget-3 .pageNav a .text, 2278.lnw-mobile #gadget-3 .pageNav li a .text { 2279 height: auto !important; 2280 line-height: 36px !important; 2281 padding: 0 10px !important; 2282 font-size: 12px !important; 2283} 2284.lnw-mobile .z-aside, 2285.lnw-mobile #gadget-9 { 2286 float: none !important; 2287 width: 100% !important; 2288 max-width: 100% !important; 2289} 2290.lnw-mobile .z-article, 2291.lnw-mobile #gadget-4 { 2292 float: none !important; 2293 width: 100% !important; 2294 max-width: 100% !important; 2295} 2296.lnw-mobile .SBUTTON, 2297.lnw-mobile .LBUTTON, 2298.lnw-mobile .MBUTTON, 2299.lnw-mobile .BUTTON { 2300 width: auto !important; 2301 min-width: 0 !important; 2302} 2303.lnw-mobile .SBUTTON .buttonCenter, 2304.lnw-mobile .LBUTTON .buttonCenter, 2305.lnw-mobile .MBUTTON .buttonCenter { 2306 width: auto !important; 2307} 2308.lnw-mobile #gadget-7 .productItem, 2309.lnw-mobile #gadget-7 .productArea { 2310 flex: 0 0 160px !important; 2311 width: 160px !important; 2312 min-width: 160px !important; 2313 max-width: 160px !important; 2314 height: auto !important; 2315} 2316 2317@media (max-width: 720px) { 2318 #gadget-1, #gadget-1.widgetPage { width: 100% !important; max-width: 100% !important; } 2319 #gadget-3, #gadget-3.widgetZone { width: 100% !important; max-width: 100% !important; height: auto !important; } 2320 #gadget-2 img { max-width: 100% !important; height: auto !important; } 2321 .z-aside, #gadget-9 { float: none !important; width: 100% !important; } 2322 .z-article, #gadget-4 { float: none !important; width: 100% !important; } 2323 .SBUTTON, .LBUTTON, .MBUTTON { width: auto !important; } 2324} 2325
2326/* Mobile Top 30: give the empty Vue box height so IntersectionObserver fires, 2327 keep see-all on-screen, wrap cards 2-up instead of a clipped scroller. */ 2328#gadget-7 .productsArea { min-height: 200px !important; } 2329#gadget-7 .products_seeAll { 2330 overflow: visible !important; 2331 text-align: center !important; 2332 width: 100% !important; 2333 box-sizing: border-box !important; 2334} 2335#gadget-7 .products_seeAll a.seeAll, 2336#gadget-7 a.seeAll { 2337 max-width: 92% !important; 2338 white-space: normal !important; 2339 box-sizing: border-box !important; 2340} 2341.lnw-mobile #gadget-7 .productsArea, 2342.lnw-mobile #gadget-7 .thumbnailArea { 2343 flex-wrap: wrap !important; 2344 overflow-x: hidden !important; 2345 overflow-y: visible !important; 2346 min-height: 240px !important; 2347} 2348.lnw-mobile #gadget-7 .productItem, 2349.lnw-mobile #gadget-7 .productArea { 2350 flex: 0 0 calc(50% - 8px) !important; 2351 width: calc(50% - 8px) !important; 2352 min-width: 0 !important; 2353 max-width: calc(50% - 8px) !important; 2354} 2355</style></div>
2355<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/vue.min.js"></script>
vendor: 1 bytes, line 2355
2355
2356<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/es6-promise.auto.min.js"></script>
vendor: 1 bytes, line 2356
2356
2357<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/external/vuex.min.js"></script>
vendor: 1 bytes, line 2357
2357
2358<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_js/many.min.js?t=20211123000000"></script>
vendor: 1 bytes, line 2358
2358
2359<script language="JavaScript" type="text/javascript">var LNWFILE_JSONP = 'lnwfile_jsonp'; 2360function file_upload_seller_url () {return "https://l-up.lnwfile.com/lnwshop/v2/upload_seller/";} 2361function file_upload_buyer_url () {return "https://l-up.lnwfile.com/lnwshop/v2/upload_buyer/";} 2362function file_upload_url () {return "https://l-up.lnwfile.com/lnwshop/upload/";} 2363function file_upload_flash_url () {return "https://l-up.lnwfile.com/lnwshop/upload_flash/";} 2364function file_upload_icon_url () {return "https://l-up.lnwfile.com/lnwshop/upload_icon/";} 2365function file_upload_document_url () {return "https://l-up.lnwfile.com/lnwshop/v2/upload_document/";} 2366function file_upload_accounting_url () {return "https://aca-up.lnwfile.com/lnwshop/v2/upload_document/";} 2367function file_upload_manage_url () {return "https://l-up.lnwfile.com/lnwshop/upload_manage/";} 2368function file_flash_url () {return "https://l-up.lnwfile.com/swf/swfupload.swf";} 2369function file_uploadify_url () {return "https://l-up.lnwfile.com/swf/uploadify.swf";} 2370function file_jsonp_url (uri) {return "https://l-up.lnwfile.com/lnwshop/jsonp/"+(uri===undefined?"":uri)+"?"+LNWFILE_JSONP+"=?";} 2371 function base_url (uri) {return "https://www.henghengmarble.com/"+(uri===undefined?"":uri.replace(/^\//,''));} 2372 function site_url (uri) {return "https://www.henghengmarble.com/"+(uri===undefined?"":uri.replace(/^\//,''));} 2373 function front_url (uri) {return "https://www.henghengmarble.com/"+(uri===undefined?"":uri.replace(/^\//,''));} 2374 function manage_url (uri) {return "https://a.lnwstore.com/henghengmarble/"+(uri===undefined?"":uri.replace(/^\//,''));} 2375 function handle_url_from_import (url) { 2376 if(typeof url !== 'string') { 2377 return url; 2378 } 2379 url = url.trim(); 2380 if(/^https?:\/\//.test(url)) { 2381 return url; 2382 }return url;} 2383var css_files = ['https://www.henghengmarble.com/system/application/templates/lnwshop/default/_css/basic.min.css?t=20260810000053','https://www.henghengmarble.com/cache/lnwshop/68/268/css/20260928000311/style.css']; 2384function css_url () {return css_files.join(',');} 2385const WEBID = 68268; 2386function deepFreeze(e){const t=Object.getOwnPropertyNames(e);for(const o of t){const t=e[o];t&&"object"==typeof t&&deepFreeze(t)}return Object.freeze(e)} 2387const WEBDATA = deepFreeze({"id":"68268","webname":"henghengmarble","name":"à¹à¸®à¸à¹à¸®à¸à¸«à¸´à¸à¸à¹à¸à¸ | à¸à¸µà¹à¸à¸¹à¹à¹à¸à¸µà¹à¸¢à¸° ศาลà¸à¸£à¸°à¸ ูมิหิà¸à¸à¹à¸à¸ à¹à¸£à¸à¸à¸²à¸à¸à¸²à¸à¸à¸²","image":"https:\/\/l.lnwfile.com\/q9hs2i.jpg","avatar":"https:\/\/l.lnwfile.com\/_\/l\/_resize\/100\/100\/q9\/hs\/2i.jpg","front_url":"https:\/\/www.henghengmarble.com\/","manage_url":"https:\/\/a.lnwstore.com\/henghengmarble\/","share_url":"https:\/\/www.henghengmarble.com\/checkout","join_num":29,"open_date_th":"29 à¸.à¸. 2555","open_date_diff":"1 decadeà¸à¸µà¹à¸à¹à¸²à¸à¸¡à¸²","order_url":"https:\/\/lnw.me\/order\/henghengmarble","lnwbar":{"color":"default"},"price_round_config":null,"slideshow":{"is_enabled":0},"gointer":{"is_enabled":0},"mobileSiteEnabled":1}); 2388 function _add_settings_data(settings, name, value) { 2389 if(typeof settings.data == 'undefined' || settings.data == null || settings.data == '') { 2390 settings.data = name + '=' + value; 2391 } else if(typeof settings.data=='string') { 2392 settings.data += '&' + name + '=' + value; 2393 } else if($.isArray(settings.data)) { 2394 settings.data.push({name: name, value: value}); 2395 } else if(typeof FormData !== 'undefined') { 2396 settings.data.append(name, value); 2397 } 2398 } 2399 if(window.top != window) { 2400 var allowedFrame = false; 2401 try { 2402 } catch(error) {} 2403 if(!allowedFrame) {
2404 var alertFunc = function() { 2405 // Bootstrap also runs in <head>, before the body exists. 2406 if(!document.body) { 2407 return; 2408 } 2409 var heading = document.createElement('h1'); 2410 heading.style.margin = '200px'; 2411 var link = document.createElement('a'); 2412 link.href = window.location.href; 2413 link.target = '_top'; 2414 link.textContent = 'Click here to enter'; 2415 heading.appendChild(link); 2416 document.body.textContent = ''; 2417 document.body.appendChild(heading); 2418 }; 2419 alertFunc(); 2420 window.addEventListener('DOMContentLoaded', alertFunc); 2421 window.addEventListener('load', alertFunc); 2422 } 2423 } 2424 2425 $(document).ready(function() { 2426 $.ajaxSetup({ 2427 dataType: "html", 2428 cache: false 2429 }); 2430 $(this).ajaxSend(function(e, xhr, settings) { 2431 if(!settings.data){ 2432 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 2433 } 2434 _add_settings_data(settings, 'ajaxxxx', true); 2435 _add_settings_data(settings, 'ajaxxxx_dataType', settings.dataType); 2436 if((typeof lnw_store !== 'undefined') && lnw_store.state.user.data && lnw_store.state.user.data.csrf_token) { 2437 _add_settings_data(settings, 'csrf_token', lnw_store.state.user.data.csrf_token); 2438 } 2439 }); 2440 }); 2441 2442</script>
vendor: 1 bytes, line 2442
2442
2443<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_js/lang_th.js?t=20250110114600"></script>
2443 2444
2445<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/_js/default.min.js?t=20260902170746"></script>
2445 2446 2447 2448 2449 <div class="shortcut-contact-container btn-chat-container"> 2450 <div class="btn btn-chat"> 2451 <div class="close-icon" onclick="goto_chat();"></div> 2452 <div class="icon"></div> 2453 <div class="text">à¸à¸¹à¸à¸à¸¸à¸¢-สà¸à¸à¸à¸²à¸¡</div> 2454 </div> 2455 <ul class="social-button"> 2456 <li class="btn btn-email"><a href="mailto:[email protected]?subject=%E0%B8%AA%E0%B8%AD%E0%B8%9A%E0%B8%96%E0%B8%B2%E0%B8%A1%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%20-%20henghengmarble&body=%E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5%20%E0%B8%89%E0%B8%B1%E0%B8%99%E0%B8%95%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%AD%E0%B8%9A%E0%B8%96%E0%B8%B2%E0%B8%A1%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B9%80%E0%B8%9E%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B9%80%E0%B8%95%E0%B8%B4%E0%B8%A1" onclick="return lead_contactus_track();"> 2457 <div class="icon"></div> 2458 <div class="text">à¸à¸µà¹à¸¡à¸¥ [email protected]</div> 2459 </a></li> 2460 <li class="btn btn-contactus"> 2461 <a href="https://www.henghengmarble.com/contactus" onclick="return lead_contactus_track();"> 2462 <div class="icon"></div> 2463 <div class="text">à¸à¸£à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸´à¸à¸à¹à¸</div> 2464 </a></li> 2465 <li class="btn btn-mobile"><a href="tel:084-696-4444" onclick="return lead_phone_track();"> 2466 <div class="icon"></div> 2467 <div class="text">à¹à¸à¸£ 084-696-4444</div> 2468 </a></li> 2469 <li class="btn btn-facebook"><a target="_blank" href="https://www.messenger.com/t/hengheng55555" onclick="return lead_facebook_track();"> 2470 <div class="icon"></div> 2471 <div class="text">hengheng55555</div> 2472 </a></li> 2473 <li class="btn btn-line"><a href="https://line.me/R/ti/p/@hengheng55" target="_blank" onclick="return lead_line_track();"> 2474 <div class="icon"></div> 2475 <div class="text">Add @hengheng55</div> 2476 </a></li> 2477 </ul> 2478 </div> 2479 2480
2481<script language="JavaScript"> 2482 document.addEventListener("DOMContentLoaded", function () { 2483 var lead_datas = [ 2484 {selector:'a[href*="email:"], a[href*="contactus"]',onclick:'return lead_contactus_track()'}, 2485 {selector:'a[href*="tel:"]',onclick:'return lead_phone_track()'}, 2486 {selector:'a[href*="line.me/ti/p"], a[href*="nav.cx"]',onclick:'return lead_line_track()'}, 2487 {selector:'a[href*="messenger.com"], a[href*="facebook.com"]',onclick:'return lead_facebook_track()'}, 2488 ]; 2489 lead_datas.forEach(function(lead_data) { 2490 var nodeList = document.querySelectorAll(lead_data.selector); 2491 for(var i=0;i<nodeList.length;i++) { 2492 var node = nodeList[i]; 2493 if(node.getAttribute('onclick') == null) { 2494 node.setAttribute('onclick',lead_data.onclick); 2495 } 2496 } 2497 }); 2498 }); 2499 function lead_contactus_track() { 2500 gtag('event', 'conversion', { 2501 'send_to': 'AW-439237792/2jdFCMeFkfIBEKD5uNEB', 2502 'value': 10.0, 2503 'currency': 'THB' 2504 }); 2505 return true; 2506 } 2507 function lead_phone_track() { 2508 gtag('event', 'conversion', { 2509 'send_to': 'AW-439237792/kKWkCOX6gPIBEKD5uNEB', 2510 'value': 10.0, 2511 'currency': 'THB' 2512 }); 2513 return true; 2514 } 2515 function lead_facebook_track() { 2516 gtag('event', 'conversion', { 2517 'send_to': 'AW-439237792/2KpvCOj6gPIBEKD5uNEB', 2518 'value': 10.0, 2519 'currency': 'THB' 2520 }); 2521 return true; 2522 } 2523 function lead_twitter_track() { 2524 gtag('event', 'conversion', { 2525 'send_to': 'AW-439237792/1bSmCLjI8PEBEKD5uNEB', 2526 'value': 10.0, 2527 'currency': 'THB' 2528 }); 2529 return true; 2530 } 2531 function lead_instagram_track() { 2532 gtag('event', 'conversion', { 2533 'send_to': 'AW-439237792/TMivCLvI8PEBEKD5uNEB', 2534 'value': 10.0, 2535 'currency': 'THB' 2536 }); 2537 return true; 2538 } 2539 function lead_line_track() { 2540 gtag('event', 'conversion', { 2541 'send_to': 'AW-439237792/M2EGCL7I8PEBEKD5uNEB', 2542 'value': 10.0, 2543 'currency': 'THB' 2544 }); 2545 return true; 2546 } 2547 </script>
2547<script type="text/javascript"> var first_sync_accounts_time = true; 2548 function accounts_update__hook_after_check_account() { 2549 if(first_sync_accounts_time){ 2550 first_sync_accounts_time = false; 2551 } 2552 } var accountsTime = null; 2553function accounts_update() { 2554 var data = { 2555 data: 'SQn9Msfe19LOO8H003xneSc_W5uZaWQKZIuR9dg-ZHT1ZfAW2kgQnsYcdr-eZF_8xQfvCeQ0DEI59_TJ70JXml3ijN7E7ZZVTu1M2xHo7RS7utknMUfCvfbHbVE6Dt6xHJfv6sfFlHCC91sTd1a-unaylwLzQRu2HtN-DoBOimsFcfwdYQZb-lsHGPqnQwctfb8Pbvnb9sxpp5Gr6JYU4fu8dWtEyVA6bAJuERRMsy2_z4PfjH3hSJC5BQ27lyufyqvIgZ7NFV41-f2ZxJdKknIRCGu8BP2jqZQV953wguU1zvhvGgMIxgIcMWaH6p0GvgzFGjosoACWLUM3iWQQ_yMItlKJH5VWj5KfX_JEJr35sHBEM4BXxWNq7lAWdUpA9g9O6ey6yPxKheFq', 2556 revision_id: 3573 2557 }; 2558 $.getJSON("https://static.lnw.me/jsonp/heartbeat?lnwaccounts_jsonp=?", data, function(response) { 2559 if(response.success) { 2560 if(response.logged_in) { 2561 //$.cookie('_lnwacct_68268_www_henghengmarble_com___tk2', response._lnwacct, {path: '/'}); 2562 document.cookie = encodeURIComponent("_lnwacct_68268_www_henghengmarble_com___tk2") + "=" + encodeURIComponent(response._lnwacct) + "; path=/"; 2563 if(response.state_change != undefined && response.state_change) { 2564 //alert('reload'); 2565 window.location.href = window.location.href; 2566 return; 2567 } 2568 } 2569 if(typeof accounts_update__hook_after_check_account == 'function') { 2570 accounts_update__hook_after_check_account(); 2571 } 2572 } 2573 if(accountsTime != null) { 2574 clearTimeout(accountsTime); 2575 }
2576 accountsTime = setTimeout("accounts_update();", 15 * 60 * 1000); 2577 }); 2578 $.ajax({ 2579 type: 'GET', 2580 data: {}, 2581 url: 'https://www.henghengmarble.com/lnwbar/action/session' 2582 }); 2583} 2584$(document).ready(function() { 2585 if(window.top == window) { 2586 accounts_update(); 2587 } 2588}); 2589</script>
2589<script language="JavaScript" type="text/javascript" src="https://www.henghengmarble.com/system/application/modules/lnwshop/lnwbar/_js/vue.min.js?t=20260904205501"></script>
vendor: 1 bytes, line 2589
2589
2590<script type="text/javascript">document.addEventListener("DOMContentLoaded", function(event) { });</script>
2590</body> 2591</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.