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="http://www.ingdao.com/cart" /> 8<meta http-equiv="content-language" content="th" /> 9<meta name="description" content="à¸à¸³à¸«à¸à¹à¸²à¸¢à¸¥à¸¹à¸à¸à¸±à¸à¸à¸°à¸à¸£à¸µà¸¥à¸´à¸ ลูà¸à¸à¸±à¸à¹à¸à¹à¸§ ลูà¸à¸à¸±à¸à¸à¸£à¸°à¸à¸¹à¸ หิภà¹à¸¡à¹ à¸à¸±à¸à¹à¸ª มุà¸à¹à¸à¹ มุà¸à¹à¸à¸µà¸¢à¸¡ à¸à¸£à¸´à¸ªà¸à¸±à¸¥à¸ªà¸§à¸²à¸£à¸à¸à¸à¸µà¹ à¸à¸£à¸´à¸ªà¸à¸±à¸¥à¸à¸µà¸ à¹à¸à¸·à¸à¸à¸«à¸à¸±à¸à¸à¸²à¸¡à¸¸à¸ à¹à¸à¸·à¸à¸à¸à¸à¸à¸à¸à¸ à¹à¸à¸·à¸à¸à¹à¸à¸µà¸¢à¸ ยาà¸à¸¢à¸·à¸ ร..." /> 10<meta name="keywords" content="" /> 11<meta property="thumbnail" content="https://inwfile.com/s-a/n2j7dq.jpg" /> 12<meta property="og:title" content="à¸à¸°à¸à¸£à¹à¸²à¸ªà¸´à¸à¸à¹à¸²" /> 13<meta property="og:description" content="à¸à¸³à¸«à¸à¹à¸²à¸¢à¸¥à¸¹à¸à¸à¸±à¸à¸à¸°à¸à¸£à¸µà¸¥à¸´à¸ ลูà¸à¸à¸±à¸à¹à¸à¹à¸§ ลูà¸à¸à¸±à¸à¸à¸£à¸°à¸à¸¹à¸ หิภà¹à¸¡à¹ à¸à¸±à¸à¹à¸ª มุà¸à¹à¸à¹ มุà¸à¹à¸à¸µà¸¢à¸¡ à¸à¸£à¸´à¸ªà¸à¸±à¸¥à¸ªà¸§à¸²à¸£à¸à¸à¸à¸µà¹ à¸à¸£à¸´à¸ªà¸à¸±à¸¥à¸à¸µà¸ à¹à¸à¸·à¸à¸à¸«à¸à¸±à¸à¸à¸²à¸¡à¸¸à¸ à¹à¸à¸·à¸à¸à¸à¸à¸à¸à¸à¸ à¹à¸à¸·à¸à¸à¹à¸à¸µà¸¢à¸ ยาà¸à¸¢à¸·à¸ ร..." /> 14<meta property="og:image" content="https://inwfile.com/s-a/n2j7dq.jpg" /> 15<meta property="og:type" content="website" /> 16<meta property="og:url" content="http://www.ingdao.com/cart" /> 17<link rel="alternate" hreflang="th" href="http://www.ingdao.com/cart" /> 18<link rel="image_src" href="https://a.lnwfile.com/_/a/_raw/n2/j7/dq.jpg" /> 19<link rel="shortcut icon" href="http://www.ingdao.com/system/application/modules/lnwshop/_images/favicon.ico" /> 20<link rel="apple-touch-icon" href="http://www.ingdao.com/system/application/modules/lnwshop/_images/favicon.ico"> 21<link rel="icon" href="http://www.ingdao.com/system/application/modules/lnwshop/_images/favicon.ico" /> 22<link rel="stylesheet" type="text/css" id="lnw-basic-css-file" href="http://www.ingdao.com/system/application/templates/lnwshop/default/_css/basic.min.css?t=20260810000053" /> 23<link rel="stylesheet" type="text/css" href="http://www.ingdao.com/cache/lnwshop/165/654/css/20260103185741/style.css" /> 24<link rel="preload" type="text/css" href="http://www.ingdao.com/system/application/modules/lnwbar/_css/color_style.min.css?t=20260901144946" as="style" onload="this.onload=null;this.rel='stylesheet'" /> 25<link rel="preload" type="text/css" href="http://www.ingdao.com/system/application/modules/lnwbar/_css/lnw_icon.min.css?t=20220616" as="style" onload="this.onload=null;this.rel='stylesheet'" />
26<script type="text/javascript"> 27 window._lckd = window._lckd || []; 28 function _lck(){window._lckd.push(arguments);} 29 _lck('config',{"policy_url":null,"web_domain":"www.ingdao.com","web_avatar":"https:\/\/a.lnwfile.com\/_\/a\/_resize\/100\/100\/n2\/j7\/dq.jpg","web_ukey":"165654","cpath":"\/","customize":{"color":"#007BFF","default_consents":{"functionality_storage":1,"analytics_storage":1,"ad_storage":1}},"html":[]}); 30</script>
vendor: 1 bytes, line 30
30
31<script async defer src="https://www.lnwshop.com/system/application/modules/lnwshopweb/_js/cookie_policy.js?t=20260925"></script>
31 32<meta name="robots" content="noindex"> 33<link rel="preconnect" href="https://cj-up.lnwfile.com"></head> 34<body> 35<!-- 5OivRk1e8IUJ2iL0O3aW1hyqIaS6miVO_DxqI2Hxy0jIOF0Pq46VnlYzqfIPW3dI --> 36<!-- LtND6XzUInsASNgnzZgpTXGxidQhxVai75vdMuilwOHjkNFHOHiz1BQfV9burt0nXqQ3dw== --> 37<!-- dCrw01e9zzsZlwHOv0-4dgJMN9JMat7n6NbM0AVVqnFQHeqVvNGrpUHcmJ7mncoIgnKspw== --> 38 39<!-- okpO_bLnm1ivK4-edtEzoRjDkSuKXxMF5eyrqrQSJ3_pr2GBnuvZJKrw_qxjDncp - 0.2417 --> 40 41<div id="lnwbar-app"></div>
42<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/external/jquery/jquery-1.12.4.min.js"></script>
42 43<div id="ggHead"> 44</div> 45 46<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-new-000 rb-recommend-000 rb-sale-000 pageShirt"> 47 48 49 50 51<div class="pageUnderwear page-checkout"> 52<div id="gadget-4" config_id="4" class="widgetZone z-article"><div class="zoneShirt"> 53<div id="gadget-48" config_id="48" 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"> 54 <div class="cart_loader" :style="{display:(cart_loader?'block':'none')}"></div> 55 <div class="shopHeader"> 56<div class="avatar"><a href="http://www.ingdao.com/"><img src="https://a.lnwfile.com/_/a/_resize/100/100/n2/j7/dq.jpg"></a></div> 57<div class="name"> 58<a href="http://www.ingdao.com/">à¸à¸´à¸à¸à¸²à¸§ à¸à¸£à¸²à¸§à¸à¹à¸²</a> 59<div class="desc">SHOP ID: 165654 <span class="status" status="">(รà¹à¸²à¸à¹à¸à¸´à¸à¸à¸à¸à¸´)</span></div> 60</div> 61 62<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> 63</div> <div class="checkoutHeader"> 64 <div class="checkoutBack"> 65 <a class="cartBack" href="javascript:history.back()"><i 66 class="icon"></i><span class="text">à¸à¸¥à¸±à¸à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸¥à¹à¸§</span></a> </div> 67 <h1>รายà¸à¸²à¸£à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²</h1> 68 </div> 69 <div class="defaultMessage"> 70 à¸à¸£à¸¸à¸à¸²à¸à¸£à¸§à¸à¸ªà¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸´à¸à¸à¹à¸²à¹à¸¥à¸°à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸ à¸à¸²à¸à¸à¸±à¹à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ â<b>สัà¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²</b>â à¹à¸à¸·à¹à¸à¹à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¸±à¸à¹à¸ </div> 71 <div v-if="cart" class="cartBody" style="visibility: hidden;" :style="{visibility:(cart?'visibility':'hidden')}"> 72 <div class="cartZone"> 73 <div class="headArea"> 74 <div class="detail">สิà¸à¸à¹à¸²</div> 75 <div class="price">ราà¸à¸²/à¸à¸´à¹à¸</div> 76 <div class="quantity">à¸à¸³à¸à¸§à¸</div> 77 <div class="amount">ราà¸à¸²à¸£à¸§à¸¡</div> 78 </div> 79 <div class="productArea"> 80 <product-item v-for="item in cart.items" :key="item.iid" :item="item"></product-item> 81 </div> 82 <div class="productSummaryArea"> 83 <div class="title">สรุà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸´à¸à¸à¹à¸²</div> 84 <div class="detail"><span>{{ cart.num }} รายà¸à¸²à¸£</span> 85 <span>{{ cart.quantity }} à¸à¸´à¹à¸</span> <span 86 v-if="checkweight"> à¸à¹à¸³à¸«à¸à¸±à¸à¸£à¸§à¸¡ {{ cart.weight }} à¸à¸£à¸±à¸¡</span> 87 </div> 88 <div class="text">ราà¸à¸²à¸ªà¸´à¸à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 89 <div class="amount" :realpricex="cart.price.product"> 90 <div class="real"><span 91 class="num">{{ amount_format(cart.price.product) }}</span> à¸à¸²à¸ </div> 92 <div class="estimate"></div> 93 </div> 94 </div> 95 <div class="hasDiscountArea salePromotion" v-if="cart.discounts"> 96 <div v-for="(discount, index) in cart.discounts" class="discountArea"> 97 <div class="title"> 98 <div v-if="index==0">สรุà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¹à¸§à¸à¸¥à¸</div> 99 </div> 100 <div class="detail">สà¹à¸§à¸à¸¥à¸à¸à¸²à¸ {{ 101 show_lang('CART-DISCOUNT-TYPE-'+discount.type.toUpperCase()) }} {{discount.name}} 102 </div> 103 <div class="text">à¸à¸´à¸à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸¥à¸</div> 104 <div class="amount" :realpricex="discount.price"> 105 <div class="real"><span 106 class="num">- {{ amount_format(discount.price) }}</span> à¸à¸²à¸ </div> 107 <div class="estimate"></div> 108 </div> 109 </div> 110 <div class="beforeshippingArea"> 111 <div class="text">ราà¸à¸²à¸«à¸¥à¸±à¸à¸«à¸±à¸à¸ªà¹à¸§à¸à¸¥à¸</div> 112 <div class="amount" :realpricex="cart.price.product - cart.price.discount"> 113 <div class="real"><span class="num">{{ amount_format(cart.price.product - cart.price.discount)}}</span> à¸à¸²à¸ </div> 114 <div class="estimate"></div> 115 </div> 116 </div> 117 </div> 118 <div v-if="!cart.is_no_shipping" class="deliveryArea"> 119 <div class="text"> 120 <b>ระยะà¹à¸§à¸¥à¸²à¸à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¸ªà¸´à¸à¸à¹à¸²</b> 121 {{cart_prepare_day}} วัภหลัà¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸¢à¸à¸à¹à¸à¸´à¸à¹à¸£à¸µà¸¢à¸à¸£à¹à¸à¸¢à¹à¸¥à¹à¸§ à¹à¸¥à¸°à¹à¸¡à¹à¸à¸±à¸à¸£à¸§à¸¡à¸£à¸°à¸¢à¸°à¹à¸§à¸¥à¸²à¸à¸±à¸à¸ªà¹à¸ </div> 122 </div> 123 <template v-if="!cart.is_no_shipping"> 124 <div v-if="cart.is_product_no_shipping_type" class="shiptypeArea"> 125 <div class="shiptypeChoice"> 126 <div class="shiptype no_set"> 127 <div class="detail">à¸à¸±à¸à¸ªà¹à¸à¹à¸¢à¸à¸à¸±à¸ªà¸à¸¸</div> 128 <div class="text">à¸à¹à¸²à¸à¸±à¸à¸ªà¹à¸</div> 129 <div class="price" :realpricex="cart.price.shipping"> 130 <div class="real">+ <span class="num">{{ amount_format(cart.price.shipping) }}</span> à¸à¸²à¸</div> 131 <div class="estimate"></div> 132 </div> 133 </div> 134 </div> 135 </div> 136 <div v-else class="shiptypeArea" 137 :class="{chosen: (show_only_shiptype_chosen && (shipping_type_list.length > 1))}"> 138 <div class="checkoutHeader"> 139 <h2>à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸²</h2> 140 </div> 141 <div class="shiptypeChoice"> 142 <label v-for="stype in shipping_type_list" :key="stype.id" class="shiptype" 143 :class="{checked:(cart.shipping_type_id==stype.id)}"> 144 <div class="detail"><input type="radio" name="shipping_type" 145 :value="stype.id" 146 v-model="choose_shipping_type_id"/> {{ stype.name?stype.name:type_txt[stype.type] }} 147 <div class="sub_detail"> 148 <div class="shipping_custom" v-if="stype.description">{{stype.description}}</div> 149 <div class="shipping_delivery" v-if="stype.delivery_area">{{stype.delivery_area}}</div> 150 <div v-if="stype.period" 151 class="receive_time"> {{ 152 stype.period }} 153 </div> 154 <div class="shipping_company" 155 v-if="stype.provider && stype.provider.length > 0"> 156 <sp
156an 157 v-for="provider in stype.provider"><span 158 :class="provider"></span></span> 159 <span class="info" v-if="stype.provider.length>1" 160 @mouseover="shiptype_over(stype)" 161 @mouseleave="shiptype_leave(stype)">?</span> 162 <div class="description" v-if="stype.provider.length>1" 163 :style="{display:(stype_info_hover==stype.id?'block':'none')}"> 164 à¸à¸²à¸à¸£à¹à¸²à¸à¸à¸°à¹à¸¥à¸·à¸à¸à¸à¹à¸à¸à¸à¸²à¸à¸à¸µà¹à¹à¸«à¸¡à¸²à¸°à¸ªà¸¡à¸à¸µà¹à¸ªà¸¸à¸ 165 </div> 166 </div> 167 <div v-if="stype.cod_flag" class="shipping_tag tag_cod">à¸à¸³à¸£à¸°à¹à¸à¸´à¸à¸à¸¥à¸²à¸¢à¸à¸²à¸ (COD)</div> 168 </div> 169 </div> 170 <div class="text">à¸à¹à¸²à¸à¸±à¸à¸ªà¹à¸</div> 171 <div v-if="stype.price===false" class="price" realpricex=""> 172 <div class="real">+ <span class="num">x</span> à¸à¸²à¸</div> 173 <div class="estimate"></div> 174 </div> 175 <div v-else class="price" :realpricex="stype.price"> 176 <div class="full" v-if="stype.full_price" 177 style="text-decoration:line-through;color: #aaa;">+ <span class="num">{{ amount_format(stype.full_price) }}</span> à¸à¸²à¸ </div> 178 <div class="real minor" v-if="stype.format=='custom'">-</div> 179 <div class="real" v-else>+ <span 180 class="num">{{ amount_format(stype.price) }}</span> à¸à¸²à¸ </div> 181 <div class="estimate"></div> 182 </div> 183 </label> 184 <div class="change-shiptypeChoice" v-show="show_only_shiptype_chosen" 185 @click="show_only_shiptype_chosen=0">à¹à¸à¸¥à¸µà¹à¸¢à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸</div> 186 </div> 187 <div v-if="(shipping_type_list.length==0) && (cart.shipping_types_rank.length==0)" class="noshipping_text">รà¹à¸²à¸à¸à¹à¸²à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸³à¸«à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸² à¸à¸³à¹à¸«à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹ à¸à¸£à¸¸à¸à¸² <a href="http://www.ingdao.com/contactus">à¸à¸´à¸à¸à¹à¸à¸à¸±à¸à¸à¸²à¸à¸£à¹à¸²à¸</a></div> 188 <div v-else-if="(shipping_type_list.length==0)" class="noshipping_text">à¹à¸¡à¹à¸¡à¸µà¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸²à¸à¸µà¹à¸à¸£à¸à¸à¸²à¸¡à¹à¸à¸·à¹à¸à¸à¹à¸ à¸à¸³à¹à¸«à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹ à¸à¸£à¸¸à¸à¸² <a href="http://www.ingdao.com/contactus">à¸à¸´à¸à¸à¹à¸à¸à¸±à¸à¸à¸²à¸à¸£à¹à¸²à¸</a></div> 189 </div> 190 </template> 191 <div class="detailArea"> 192 <div class="title"> 193 <div class="text">à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¸à¸¶à¸à¸£à¹à¸²à¸à¸à¹à¸²</div> 194 <div class="optional">(à¹à¸§à¹à¸à¸§à¹à¸²à¸à¹à¸à¹)</div> 195 </div> 196 <div class="body"><textarea class="input" name="detail" v-model="cart.detail" 197 @change="save_detail"></textarea></div> 198 </div> 199 <div class="netArea"> 200 <div class="text">รวมราà¸à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 201 <div class="amount" :realpricex="cart.shipping_type_id?cart.price.pay:'-'"> 202 <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> 203 <div class="estimate"></div> 204 </div> 205 </div> 206 </div> 207 <div id="checkoutNextBar" class="cartButtons"> 208 <div class="alignLeft"> 209 <a class="cartBack" href="http://www.ingdao.com/category"><i 210 class="icon"></i><span class="text">à¹à¸¥à¸·à¸à¸à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸´à¹à¸¡</span></a> </div> 211 <div class="alignRight"> 212 <ul class="b-checkout LBUTTON" btype="button" @click="checkout"> 213 <li class="buttonLeft"></li> 214 <li class="buttonCenter buttonText">สัà¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²</li> 215 <li class="buttonRight"></li> 216 </ul> 217 </div> 218 </div> 219 </div> 220 </div> 221
221<script type="text/javascript"> 222 var $cartZone; 223 var price_decimal = 2; 224 225 function amount_format(num) { 226 return number_format(num, price_decimal); 227 } 228 229 function lnw_number_format(num) { 230 var floor_num = Math.floor(num); 231 if ((num - floor_num) > 0) { 232 return number_format(num, 2); 233 } 234 return number_format(num, 0); 235 } 236 237 function error_message(err) { 238 if (err.key) { 239 switch (err.key) { 240 case 'NOPRODUCT': 241 case 'HIDDEN': 242 case 'NOSELL': 243 return 'à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸²à¸à¸à¸´à¸à¸à¸µà¹ หรืà¸à¸ªà¸´à¸à¸à¹à¸²à¸à¸à¸´à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸²à¸¢'; 244 case 'NOSTOCK': 245 var html = 'สิà¸à¸à¹à¸²à¸à¸µà¹à¹à¸«à¸¥à¸·à¸à¹à¸à¸µà¸¢à¸ %d à¸à¸´à¹à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹'; 246 return html.replace(/%d/, err.remain); 247 case 'BUY-WEB_CORRUPTION': 248 return 'à¸à¸à¸à¸ ัย à¸à¸à¸°à¸à¸µà¹à¸£à¸°à¸à¸à¹à¸à¸à¸£à¸°à¸à¸±à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¹'; 249 case 'INVALID_POINT': 250 return 'à¸à¸£à¸¸à¸à¸²à¸à¸£à¸à¸à¸à¸±à¸§à¹à¸¥à¸à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints'; 251 case 'USE>POINT': 252 return 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints à¹à¸à¸´à¸à¸à¸§à¹à¸²à¸à¸°à¹à¸à¸à¸à¸µà¹à¸à¸¸à¸à¸¡à¸µà¹à¸à¹'; 253 case 'POINT>NET': 254 return 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints มาà¸à¸à¸§à¹à¸²à¸£à¸²à¸à¸²à¸£à¸§à¸¡à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¹'; 255 case 'BUY-LNWPAY_ANTI-MONEY_LAUNDERING': 256 return 'ระà¸à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¸£à¸²à¸à¸²à¸£à¸§à¸¡à¹à¸à¸´à¸ 30,000 à¸à¸²à¸à¸à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹'; 257 case 'PERMISSION_DENIED': 258 return 'à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¸´à¹à¸à¹à¸à¸²à¸à¸à¸¹à¸à¸à¸à¸à¸µà¹'; 259 case 'BELOW_QUANTITY': 260 return __lnw__.show_lang('CART-PRODUCT-BELOW_QUANTITY', err.limit, err.unit); 261 case 'OVER_QUANTITY': 262 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY', err.limit, err.unit); 263 case 'ACCOUNT_LIMIT_REQUIRED_LOGIN': 264 return __lnw__.show_lang('CART-PRODUCT-ACCOUNT_LIMIT_REQUIRED_LOGIN'); 265 case 'OVER_QUANTITY_ACCOUNT_ORDERED': 266 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_ACCOUNT_ORDERED', err.limit, err.unit, err.ordered, err.unit); 267 case 'OVER_QUANTITY_ACCOUNT': 268 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_ACCOUNT', err.limit, err.unit); 269 case 'OVER_QUANTITY_DAILY_ACCOUNT_ORDERED': 270 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_DAILY_ACCOUNT_ORDERED', err.limit, err.unit, err.ordered, err.unit); 271 case 'OVER_QUANTITY_DAILY_ACCOUNT': 272 return __lnw__.show_lang('CART-PRODUCT-OVER_QUANTITY_DAILY_ACCOUNT', err.limit, err.unit); 273 default: 274 var xxx = __lnw__.show_lang(err.key); 275 return xxx; 276 } 277 } 278 return 'มีà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸´à¸à¸à¸¶à¹à¸'; 279 } 280 281 var cartvm = null; 282 var cart_components = {}; 283 cart_components['product-item'] = { 284 props: ['item'], 285 data: function() { 286 return { 287 new_quantity: null, 288 new_detail: null, 289 edit_detail: 0, 290 wait_save_quantity: false 291 } 292 }, 293 watch: { 294 cart_loader: function(newValue, oldValue) { 295 if(this.wait_save_quantity) { 296 this.save_quantity(); 297 } 298 }, 299 'item.quantity': function(newValue, oldValue) { 300 if(newValue == this.new_quantity) { 301 this.new_quantity = null; 302 } else { 303 this.save_quantity(); 304 } 305 }, 306 'item.detail': function(newValue, oldValue) { 307 if(newValue == this.new_detail) { 308 this.new_detail = null; 309 } else { 310 this.save_detail(); 311 } 312 } 313 }, 314 computed: { 315 cart: function() { 316 return this.$store.state.cart; 317 }, 318 quantity_value: { 319 get: function() { 320 if(this.new_quantity !== null) { 321 return this.new_quantity; 322 } 323 return this.item.quantity 324 }, 325 set: function(newValue) { 326 if(this.item.quantity == newValue) { 327 this.new_quantity = null; 328 } else { 329 this.new_quantity = newValue; 330 this.save_quantity(); 331 } 332 } 333 } 334 }, 335 methods: { 336 quantity_inc: function () { 337 this.quantity_value = this.quantity_value+1; 338 }, 339 quantity_dec: function () { 340 if(this.quantity_value <= 1) { 341 } else { 342 this.quantity_value = this.quantity_value - 1; 343 } 344 }, 345 save_quantity: function() { 346 var that = this; 347 if(this.wait_save_quantity) { 348 clearTimeout(this.wait_save_quantity); 349 } 350 this.wait_save_quantity = setTimeout(function() { 351 that.save_quantity_action(); 352 },1000); 353 }, 354 save_quantity_action: function () { 355 if(this.new_quantity === null) { 356 return; 357 } 358 var val = parseNumber(this.new_quantity); 359 val = parseNumber(val); 360 if(isNaN(val) || val < 1) { 361 return; 362 } 363 if(this.cart_loader) { 364 this.wait_save_quantity = true; 365 return; 366 } 367 var item = this.item; 368 var ajaxdata = {}; 369 370 ajaxdata.action = 'changeProductQuantity'; 371 ajaxdata.items = [ 372 { 373 iid: item.iid, 374 spec: item.spec, 375 quantity: val 376 } 377 ]; 378 379 var onSuccess = void (0); 380 381 if(item.spec.type == 'product') { 382 // Google Analytics Enhanced Ecommerce (event: add/remove cart | edit number of product item in carts) 383 if (typeof gtag !== "undefined" && typeof GA_send_to
383=== 'string' && GA_send_to.length > 0) { 384 if (typeof item.quantity !== 'undefined') { 385 var diff = val - item.quantity; 386 var event_name = null; 387 if (diff < 0) 388 event_name = 'remove_from_cart'; 389 else 390 event_name = 'add_to_cart'; 391 if (event_name) { 392 var qty = Math.abs(diff); 393 onSuccess = function () { 394 gtag('event', event_name, { 395 'send_to': GA_send_to, 396 "items": [ 397 { 398 "id": item.spec.product_id, 399 "name": item.name, 400 "category": typeof item.category !== 'undefined' ? item.category : null, 401 "quantity": qty, 402 "price": qty * item.unit_price 403 } 404 ] 405 }); 406 } 407 } 408 } 409 } 410 } 411 this.$store.dispatch('save_func', { 412 ajaxdata: ajaxdata, 413 item: item, 414 onSuccess: onSuccess 415 }); 416 }, 417 save_detail: function () { 418 var that = this; 419 var item = this.item; 420 var ajaxdata = {}; 421 422 ajaxdata.action = 'updateProductRemark'; 423 ajaxdata.items = [ 424 { 425 iid: item.iid, 426 spec: item.spec, 427 detail: this.new_detail 428 } 429 ]; 430 this.edit_detail = 0; 431 this.$store.dispatch('save_func', { 432 ajaxdata: ajaxdata 433 }); 434 }, 435 remove_detail: function () { 436 this.new_detail = ''; 437 this.save_detail(); 438 }, 439 start_edit_detail: function () { 440 this.new_detail = this.item.detail; 441 this.edit_detail = 2; 442 }, 443 start_add_detail: function (item) { 444 this.edit_detail = 1; 445 }, 446 remove_item: function () { 447 var that = this; 448 var item = this.item; 449 __lnw__.simpleConfirm('ยืà¸à¸¢à¸±à¸à¸à¸²à¸£à¸¥à¸à¸ªà¸´à¸à¸à¹à¸²à¸à¸µà¹à¸à¸à¸à¸à¸²à¸à¸à¸°à¸à¸£à¹à¸²', 450 function() { 451 var ajaxdata = {}; 452 ajaxdata.action = 'changeProductQuantity'; 453 454 ajaxdata.items = [ 455 { 456 iid: item.iid, 457 spec: item.spec, 458 quantity: 0 459 } 460 ]; 461 462 var onSuccess = void (0); 463 464 if(item.spec.type == 'product') { 465 // Google Analytics Enhanced Ecommerce (event: remove_from_cart) 466 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 467 onSuccess = function () { 468 gtag('event', 'remove_from_cart', { 469 'send_to': GA_send_to, 470 "items": [ 471 { 472 "id": item.spec.product_id, 473 "name": item.name, 474 "category": typeof item.category !== 'undefined' ? item.category : null, 475 "quantity": item.quantity, 476 "price": item.total_price 477 } 478 ] 479 }); 480 } 481 } 482 } 483 484 that.$store.dispatch('save_func', { 485 ajaxdata: ajaxdata, 486 onSuccess: onSuccess 487 }); 488 } 489 ); 490 }, 491 }, 492 template: `<div class="product"> 493 <div class="image"> 494 <img :src="item.thumbnail"/> 495 </div> 496 <div class="data"> 497 <div class="name" v-if="item.parent_id > 0"><a :href="item.url">{{ 498 item.parent_name }}<br/> ↳ {{ item.sku_name }}</a></div> 499 <div class="name" v-else><a :href="item.url">{{ item.name }}</a></div> 500 <div class="price" :realpricex="item.unit_price"> 501 <div class="mobileBeforeText">ราà¸à¸²à¸à¹à¸à¸à¸´à¹à¸</div> 502 <div class="real"><span 503 class="num">{{ amount_format(item.unit_price) }}</span> à¸à¸²à¸</div> 504 <div class="estimate"></div> 505 </div> 506 <div class="quantity"> 507 <div class="mobileBeforeText">à¸à¸³à¸à¸§à¸</div> 508 <div v-if="cart.lock" class="uneditable"><span class="num" v-text="amount_format(item.quantity)"></span></div> 509 <div v-else class="editable"> 510 <div class="increase" @click="quantity_inc">+</div> 511 <div class="decrease" @click="quantity_dec">-</div> 512 <div class="box"><input type="text" class="input" v-model="quantity_value" /></div> 513 </div> 514 </div> 515 <div class="amount" :realpricex="item.total_price"> 516 <div class="mobileBeforeText">ราà¸à¸²à¸£à¸§à¸¡</div> 517 <div class="real"><span 518 class="num">{{ amount_format(item.total_price) }}</span> à¸à¸²à¸ </div> 519 <div class="estimate"></div> 520 </div> 521 </div> 522 <div class="error"> 523 <div v-for="error in item.errors"> 524 {{ error_message(error) }} 525 </div> 526 </div> 527 <div class="other"> 528 <div v-if="item.promotions && (item.promotions.length > 0)" class="promotion">สิà¸à¸à¹à¸²à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸ {{ 529 item.promotions.join(', ') }} 530 </div> 531 <div v-else-if="item.promotion" class="promotion">สิà¸à¸à¹à¸²à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸ {{ 532 item.promotion.join(', ') }} 533 </div> 534 <div class="note"> 535 <div v-if="edit_detail"> 536 <input type="text" class="pdetail" v-model="new_detail"> 537 <button type="button" class="btn-submit" @click="save_detail">{{ 538 (edit_detail==2)?'à¸à¸£à¸±à¸à¸à¸£à¸¸à¸ ':'à¹à¸à¸´à¹à¸¡'}} 539 </button> 540 <button type="button" class="btn-reset" @click="remove_detail">{{ 541 (edit_detail==2)?'ลภ':'ยà¸à¹à¸¥à¸´à¸'}} 542 </button> 543 </div> 544 <div v-else-if="(new_detail == null) && item.detail"><strong>หมายà¹à¸«à¸à¸¸</strong> <span 545 class="body">{{ item.detail }}</span> <a class="edit" @click="start_edit_detail">✎ à¹à¸à¹à¹à¸</a> 546 </div> 547 <div v-else-if="new_detail"><strong>หมายà¹à¸«à¸à¸¸</strong> <span 548 class="body">{{ new_detail }}</span> <a class="edit" @click="start_edit_detail">✎ à¹à¸à¹à¹à¸</a> 549 </div> 550 <div v-else><a class="add" 551 @click="start_add_detail">à¹à¸à¸´à¹à¸¡à¸«à¸¡à¸²à¸¢à¹à¸«à¸à¸¸</a> 552 </div> 553 </div> 554 <div v-if="!cart.lock" class="control"><a class="remove" 555 @click="remove_item">ลà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹</a> 556 </div> 557 </div> 558 </div>` 559 } 560 document.addEventListener("DOMContentLoaded", function () { 561 Vue.use(Vuex); 562 cart_store = new Vuex.Store({ 563 state: function() { 564 var ret = { 565 cart: null, 566 shop: null, 567 cart_loader: false, 568 }; 569 return ret; 570 }, 571 getters: { 572 }, 573 mutations: { 574 }, 575 actions: { 576 save_func: function(context, payload) { 577 var state = context.state; 578 if (state.cart_loader) { 579 //return false;
580 } 581 state.cart_loader = true; 582 var xhr = json_post({ 583 method: 'PUT', 584 url: front_url('api/lnwme/cart/cookie')+'?ddd=full', 585 data: payload.ajaxdata, 586 success: function(response) { 587 if(response.error) { 588 var msgs = []; 589 var x_msgs = {}; 590 var error_messages = response.error_messages; 591 if(typeof error_messages == 'string') { 592 error_messages = [{ 593 key: error_messages 594 }] 595 } 596 597 if (typeof payload.item !== 'undefined') { 598 Vue.set(payload.item,'errors', error_messages); 599 } else { 600 var error_txts = []; 601 error_messages.forEach(function(err_msg) { 602 error_txts.push(error_message(err_msg)); 603 }); 604 __lnw__.simpleAlert(error_txts); 605 } 606 } 607 if(response.cart) { 608 Vue.set(state,'cart', response.cart); 609 610 $('.cart_num').html(state.cart.num); 611 $('.cart_price').html(state.cart.price.product).attr('realprice', state.cart.price.product); 612 if (typeof __lnw__ == 'object' && __lnw__.gointer.is_enabled()) { 613 __lnw__.gointer.reload_convert_currency(); 614 } 615 $('.cart_quantity').html(state.cart.quantity); 616 } 617 // Google Analytics Enhanced Ecommerce 618 if (typeof payload.onSuccess == 'function') { 619 try { 620 payload.onSuccess.call(); 621 } catch (e) { 622 } 623 ; 624 } 625 }, 626 error: function(rkey, rdata) { 627 __lnw__.simpleAlert(rkey); 628 console.info(rdata); 629 }, 630 complete: function() { 631 state.cart_loader = false;
632 } 633 }); 634 }, 635 load_init: function(context) { 636 var state = context.state; 637 state.cart_loader = true; 638 var xhr = json_post({ 639 url: front_url('api/lnwme/cart/cookie')+'?ddd=init', 640 data: {}, 641 success: function(response) { 642 if(response.error) { 643 var msgs = []; 644 var x_msgs = {}; 645 var error_messages = response.error_messages; 646 if(typeof error_messages == 'string') { 647 error_messages = [{ 648 key: error_messages 649 }] 650 } 651 652 var error_txts = []; 653 error_messages.forEach(function(err_msg) { 654 error_txts.push(error_message(err_msg)); 655 }); 656 __lnw__.simpleAlert(error_txts); 657 } 658 Vue.set(state,'cart', response.cart); 659 Vue.set(state,'shop', response.shop); 660 win_resize(); 661 }, 662 error: function(rkey, rdata) { 663 __lnw__.simpleAlert(rkey); 664 console.info(rdata); 665 }, 666 complete: function() { 667 state.cart_loader = false;
668 } 669 }); 670 } 671 } 672 }); 673 cartvm = new Vue({ 674 el: '#lnw_cartArea', 675 store: cart_store, 676 components: cart_components, 677 data: function () { 678 return { 679 type_txt: { 680 normal: 'à¸à¸±à¸ªà¸à¸¸à¸à¸£à¸£à¸¡à¸à¸²', 681 register: 'à¸à¸±à¸ªà¸à¸¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸', 682 ems: 'à¸à¸±à¸ªà¸à¸¸à¸à¹à¸§à¸à¸à¸´à¹à¸¨à¸©', 683 custom: 'à¸à¸³à¸«à¸à¸à¹à¸à¸' 684 }, shipping_country_selected: 1, 685 show_only_shiptype_chosen: 0, 686 coupon_code_value: '', 687 view_mycoupons: 0, 688 choose_coupon_id: null, 689 choose_shipping_type_id: null, 690 lang_text_time: 0, 691 stype_info_hover: 0 692 } 693 }, 694 watch: { 695 choose_shipping_type_id: function (val) { 696 var ajaxdata = {}; 697 if (typeof this.cart.shipping_types[val] == 'undefined' || !this.shiptype_show(this.cart.shipping_types[val])) { 698 ajaxdata.action = 'cancelShippingMethod'; 699 this.$store.dispatch('save_func', { 700 ajaxdata: ajaxdata 701 }); 702 this.show_only_shiptype_chosen = 0; 703 } else { 704 var onSuccess = void(0); 705 // Google Analytics Enhanced Ecommerce (event: set_checkout_option) 706 if (typeof this.cart.shipping_types[val].name !== 'undefined') { 707 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 708 var shipping_type_name = this.cart.shipping_types[val].name; 709 710 onSuccess = function () { 711 gtag('event', 'set_checkout_option', { 712 'send_to': GA_send_to, 713 'checkout_step': 1, 714 'checkout_option': 'shipping method', 715 'value': shipping_type_name 716 }); 717 }; 718 } 719 } 720 ajaxdata.action = 'saveShippingMethod'; 721 ajaxdata.shipping_type_id = val; 722 this.$store.dispatch('save_func', { 723 ajaxdata: ajaxdata, 724 onSuccess: onSuccess 725 }); 726 this.show_only_shiptype_chosen = 1; 727 } 728 } 729 }, 730 updated: function () { 731 if (typeof __lnw__ == 'object' && __lnw__.gointer.is_enabled()) { 732 __lnw__.gointer.reload_convert_currency(); 733 } 734 }, 735 computed: { 736 cart_loader: function() { 737 return (this.$store.state.cart_loader); 738 }, 739 cart: function() { 740 return this.$store.state.cart; 741 }, 742 shop: function() { 743 return this.$store.state.shop; 744 }, 745 shipping_type_list: function () { 746 var shipping_types = this.cart.shipping_types; 747 var stype_list = new Array(); 748 var that = this; 749 this.cart.shipping_types_rank.forEach(function (stype_id) { 750 var stype = shipping_types[stype_id]; 751 stype.info_hover = false; 752 if(!stype.is_lnwshop_ignore && that.shiptype_show(stype)) { 753 stype_list.push(stype); 754 } 755 }); 756 return stype_list; 757 }, 758 checkweight: function () { 759 return false;
760 var xxx = false; 761 $.each(this.cart.shipping_types, function (stype_id, stype) { 762 if (stype.format == 'weight') { 763 xxx = true; 764 } 765 }) 766 return xxx; 767 }, 768 cart_prepare_day: function () { 769 var max_prepare_day = 0; 770 this.cart.items.forEach(function(item) { 771 var day = item.prepare_duration; 772 if (day != '') { 773 day = parseInt(day); 774 if (day > max_prepare_day) { 775 max_prepare_day = day; 776 } 777 } 778 }); 779 return max_prepare_day; 780 }, 781gtag_cart_items: function () { 782var payload_items = []; 783this.cart.items.forEach(function(item) { 784if(item.spec.type != 'product') { 785return; 786} 787payload_item = {}; 788payload_item.id = item.spec.product_id; 789payload_item.name = item.name; 790if (typeof item.category !== 'undefined') 791payload_item.category = item.category; 792payload_item.quantity = item.quantity; 793payload_item.price = item.total_price; 794payload_items.push(payload_item); 795}) 796return payload_items; 797}, 798 gtag_cart_coupon: function () { 799 var coupon = ''; 800 801 if (typeof this.cart.coupons === 'object') { 802 for (var i in this.cart.coupons) { 803 if (typeof this.cart.coupons[i].config === 'object') { 804 if (typeof this.cart.coupons[i].config.name !== 'undefined') { 805 if (coupon.length > 0) 806 coupon += ', '; 807 coupon += this.cart.coupons[i].config.name; 808 } 809 } 810 } 811 } 812 813 return coupon; 814 }, 815 my_lnwpoints: function() { 816 var points = 0; 817 if ((typeof lnw_store != 'undefined') && (typeof lnw_store.state.user != 'undefined') && (lnw_store.state.user.point != null)) { 818 points = lnw_store.state.user.point.available_balance; 819 } 820 return points; 821 } 822 }, 823 methods: { 824 update_lang: function () { 825 this.lang_text_time = new Date().getTime(); 826 }, 827 show_lang: function () { 828 var xxx = this.lang_text_time; 829 return __lnw__.show_lang.apply(this, arguments); 830 }, 831 shiptype_show: function (stype) { 832 return (stype.price !== false); 833 }, 834 shiptype_over: function (stype) { 835 this.stype_info_hover = stype.id; 836 }, 837 shiptype_leave: function (stype) { 838 this.stype_info_hover = 0; 839 }, 840 error_message: function (err) { 841 return error_message(err); 842 }, 843 use_coupon_code: function () { 844 var ajaxdata = {}; 845 ajaxdata.action = 'setCouponCode'; 846 ajaxdata.coupon_code = this.coupon_code_value.trim(); 847 if (ajaxdata.coupon_code == '') { 848 return; 849 } 850 851 this.$store.dispatch('save_func', { 852 ajaxdata: ajaxdata, 853 }); 854 }, 855 use_coupon_id: function (id) { 856 var ajaxdata = {}; 857 ajaxdata.action = 'setCouponId'; 858 ajaxdata.coupon_id = id; 859 this.$store.dispatch('save_func', { 860 ajaxdata: ajaxdata, 861 }); 862 this.view_mycoupons = 0; 863 }, 864 cancel_use_coupon: function (coupon_id) { 865 var coupon_code = null; 866 if (typeof this.cart.coupons === 'object'){ 867 var coupon = this.cart.coupons.filter(obj => { 868 return obj.id === coupon_id 869 }); 870 if(coupon.length > 0) { 871 coupon_code = coupon[0].code; 872 }else { 873 return false;
874 } 875 }else if (typeof this.cart.coupons[coupon_id] == 'undefined') { 876 return false; 877 }else{ 878 coupon_code = this.cart.coupons[coupon_id].code; 879 } 880 if (coupon_code) { 881 var ajaxdata = {}; 882 ajaxdata.action = 'removeCouponCode'; 883 ajaxdata.coupon_code = coupon_code; 884 this.$store.dispatch('save_func', { 885 ajaxdata: ajaxdata, 886 }); 887 } else { 888 var ajaxdata = {}; 889 ajaxdata.action = 'removeCouponId'; 890 ajaxdata.coupon_id = coupon_id; 891 this.$store.dispatch('save_func', { 892 ajaxdata: ajaxdata, 893 }); 894 } 895 this.choose_coupon_id = null 896 }, 897 save_detail: function () { 898 var ajaxdata = {}; 899 ajaxdata.action = 'saveOrderMeta'; 900 ajaxdata.detail = this.cart.detail; 901 this.$store.dispatch('save_func', { 902 ajaxdata: ajaxdata 903 }); 904 }, 905 reset_cart: function () { 906 var ajaxdata = {}; 907 ajaxdata.action = 'resetCart'; 908 909 var onSuccess = void (0); 910 911 // Google Analytics Enhanced Ecommerce (event: remove_from_cart) 912 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 913 var payload_items = this.gtag_cart_items; 914 onSuccess = function () { 915 gtag('event', 'remove_from_cart', { 916 'send_to': GA_send_to, 917 "items": payload_items 918 }); 919 } 920 } 921 922 this.$store.dispatch('save_func', { 923 ajaxdata: ajaxdata, 924 onSuccess: onSuccess 925 }); 926 }, 927 set_lnwpoint: function (point) { 928 var ajaxdata = {}; 929 ajaxdata.action = 'setRedeemLnwPoint'; 930 ajaxdata.lnwpoint = point; 931 this.$store.dispatch('save_func', { 932 ajaxdata: ajaxdata, 933 }); 934 }, 935 use_lnwpoint: function () { 936 var point = this.cart.lnwpoint; 937 if (((typeof lnw_store == 'undefined') || (typeof lnw_store.state.user == 'undefined') || (typeof lnw_store.state.user.point == null))) { 938 __lnw__.simpleAlert('à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸¶à¸à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints à¹à¸à¹'); 939 this.cart.lnwpoint = 0; 940 } else { 941 var my_points = this.my_lnwpoints; 942 if (point > my_points) { 943 __lnw__.simpleAlert('à¸à¸¸à¸à¹à¸à¹à¸à¸°à¹à¸à¸à¸ªà¸°à¸ªà¸¡ LnwPoints มาà¸à¸à¸§à¹à¸²à¸à¸µà¹à¸¡à¸µ'); 944 this.cart.lnwpoint = 0; 945 } else { 946 this.set_lnwpoint(point); 947 } 948 } 949 }, 950 cancel_lnwpoint: function () { 951 this.set_lnwpoint(0); 952 }, 953 checkout: function (event) { 954 var that = this; 955 if(this.cart.is_no_shipping) { 956 957 } else if(this.cart.is_product_no_shipping_type) { 958 959 } 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])) { 960 __lnw__.simpleAlert('à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸'); 961 return false;
962 } 963 var ele = $(event.target).closest('b-checkout'); 964 var ajaxdata = {}; 965 $.lnwajax.run('goto_checkout', true, { 966 type: 'POST', 967 url: 'http' + '://' + 'www.ingdao.com/checkout/start', 968 data: ajaxdata, 969 dataType: 'json', 970 start: function () { 971 button_wait(ele); 972 }, 973 success: function (response) { 974 lnwajax_response(response, function (rdata) { 975 var delay = 0; 976 if(window.lnwOpenai && rdata.openai_event && window.lnwOpenai.track(rdata.openai_event)) { 977 delay = 1000; 978 } 979 980 if (typeof rdata.fbq_params != 'undefined' && typeof fbq == 'function') { 981 fbq('track', 'InitiateCheckout', rdata.fbq_params); 982 delay = 1000; 983 } 984 985 // Google Analytics Enhanced Ecommerce (event: begin_checkout) 986 if (typeof gtag !== "undefined" && typeof GA_send_to === 'string' && GA_send_to.length > 0) { 987 var payload_gtag = {}; 988 payload_gtag.send_to = GA_send_to; 989 payload_gtag.items = that.gtag_cart_items; 990 991 var coupon = that.gtag_cart_coupon; 992 if (typeof coupon === 'string' && coupon.length > 0) 993 payload_gtag.coupon = coupon; 994 else { 995 console.log(coupon); 996 } 997 998 payload_gtag.checkout_step = 1; 999 1000 gtag('event', 'begin_checkout', payload_gtag); 1001 1002 delay = 1000; 1003 } 1004 1005 if (typeof rdata.url != 'undefined') { 1006 setTimeout(function () { 1007 window.location.href = rdata.url; 1008 }, delay); 1009 } 1010 1011 }
1011, function (rkey, rdata) { 1012 button_normal(ele); 1013 switch (rkey) { 1014 case 'BUY-ITEM_SOLDOUT': 1015 __lnw__.simpleAlert('à¸à¸à¸à¸ ัย สิà¸à¸à¹à¸²à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸à¸°à¸à¸£à¹à¸²à¹à¸«à¸¥à¸·à¸à¹à¸¡à¹à¹à¸à¸µà¸¢à¸à¸à¸'); 1016 //window.location.href='http://www.ingdao.com/cart'; 1017 break; 1018 case 'BUY-NO_ITEM': 1019 __lnw__.simpleAlert('à¸à¸à¸à¸ ัย à¸à¸à¸°à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²'); 1020 break; 1021 case 'BUY-EMPTY_SHIPPINGTYPE': 1022 __lnw__.simpleAlert('à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸ªà¹à¸'); 1023 break; 1024 case 'BUY-ORDER_LIMIT': 1025 case 'BUY-ORDER_LIMIT_MIN_PRICE': 1026 case 'BUY-ORDER_LIMIT_MAX_PRICE': 1027 case 'BUY-OVER_TOTAL_QUANTITY': 1028 case 'BUY-OVER_ORDER_QUANTITY': 1029 __lnw__.simpleAlert(__lnw__.show_lang(rkey, rdata)); 1030 break; 1031 case 'BUY-MUST_LOGIN': 1032 case 'BUY-USER_NO_MOBILE': 1033 __lnw__.simpleAlert(__lnw__.show_lang(rkey, rdata)); 1034 break; 1035 case 'BUY-LNWPAY_ANTI-MONEY_LAUNDERING': 1036 __lnw__.simpleAlert('ระà¸à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¸£à¸²à¸à¸²à¸£à¸§à¸¡à¹à¸à¸´à¸ 30,000 à¸à¸²à¸à¸à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¹à¸à¹'); 1037 break; 1038 default: 1039 __lnw__.simpleAlert('à¸à¸à¸à¸ ัย à¸à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸²à¸à¸à¸¢à¹à¸²à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¹'); 1040 break; 1041 } 1042 }); 1043 } 1044 }); 1045 } 1046 }, 1047 mounted: function() { 1048 this.$store.dispatch('load_init'); 1049 } 1050 }); 1051 __lnw__.bind_lang_save(function () { 1052 cartvm.update_lang(); 1053 }); 1054 nextbar_init(); 1055 }); 1056 var win_height, nextbar_hover_flag = 0, topLine, barheight; 1057 1058 function nextbar_scroll_event(ele) { 1059 var scrollTop = $(ele).scrollTop(); 1060 if (scrollTop < topLine) { 1061 if (!nextbar_hover_flag) { 1062 $('.checkoutBody').addClass('showNextBar'); 1063 nextbar_hover_flag = true; 1064 $('.cartZone').css({marginBottom: barheight + 'px'}); 1065 } 1066 } else { 1067 if (nextbar_hover_flag) { 1068 $('.checkoutBody').removeClass('showNextBar'); 1069 nextbar_hover_flag = false; 1070 $('.cartZone').css({marginBottom: 0}); 1071 } 1072 } 1073 } 1074 1075 function win_resize() { 1076 var win_height = $(window).height(); 1077 var bottomOffset; 1078 var $self = $('.cartZone'); 1079 if($self.length > 0) { 1080 var zoneheight = $self.outerHeight(true); 1081 var zonetop = $self.offset().top; 1082 barheight = $('#checkoutNextBar').outerHeight(true); 1083 bottomOffset = zonetop + zoneheight + barheight; 1084 if ($self.closest('#lnwbox2Body').length > 0) { 1085 bottomOffset -= $('#lnwbox2Body').offset().top; 1086 } 1087 topLine = bottomOffset - win_height; 1088 } 1089 } 1090 1091 function nextbar_init() {
1092 var $nextbar_container = $(window); 1093 //$('#checkoutNextBar').after('<div class="cartButtons-clone"></div>'); 1094 win_resize(); 1095 nextbar_scroll_event($nextbar_container); 1096 $nextbar_container.scroll(function () { 1097 nextbar_scroll_event(this); 1098 }); 1099 $(window).resize(function () { 1100 win_resize(); 1101 nextbar_scroll_event($nextbar_container); 1102 }); 1103 } 1104 </script>
1104 1105 <div class="checkoutFooter"> 1106<div class="lnw_footer_area"> 1107</div> 1108<div class="copyright" align="center"> 1109<div class="copyrightText"><span style="padding-left: 10px;">Copyright © 2026</span> 1110<a href="http://www.ingdao.com/">www.ingdao.com</a> 1111<span>All rights reserved.</span></div> 1112<div class="footerText"><a href="https://www.lnwshop.com/" title="รà¹à¸²à¸à¸à¹à¸²à¸à¸à¸à¹à¸¥à¸à¹" target="_blank" rel="noopener">รà¹à¸²à¸à¸à¹à¸²à¸à¸à¸à¹à¸¥à¸à¹</a> 1113 Inspired by 1114<a href="https://www.lnwshop.com/" title="รà¹à¸²à¸à¸à¹à¸²à¸à¸à¸à¹à¸¥à¸à¹" target="_blank" rel="noopener">LnwShop.com (v2)</a> 1115</div><span id="lnwstat-container-ebi93"></span>
1116<script type="text/javascript"> 1117var _lnws = 'scj.lnwstat.com'; 1118var _lnwp = '165654'; 1119var _lnwd = 'www.ingdao.com'; 1120var _lnwm = ''; 1121var _lnwk = ''; 1122 1123(function() { 1124var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true; 1125sc.src = 'https://' + _lnws + '/lnwstat.js'; 1126var sp = document.createElement('span'); sp.id='lnwstat-container-ebi93-inner'; 1127var e = document.getElementById('lnwstat-container-ebi93'); e.appendChild(sc); e.appendChild(sp); 1128 1129})(); 1130</script>
1130 1131</div> 1132</div></div><div class="unitShoe"></div></div></div></div> 1133 1134</div> 1135 1136 1137</div><div id="cart22_container" style="visibility: hidden;" :style="{visibility:'visible'}"> 1138 <div id="cart22_alert" 1139 style="display: none;" 1140 v-show="alert_is_show" 1141 @click="cartShow" 1142 :class="(alert_is_show)?'show_alert':'hide_alert'"> 1143 <span>à¸à¸¸à¸à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸² <span class="cart_quantity" v-text="total_quantity">0</span> à¸à¸´à¹à¸à¹à¸à¸à¸°à¸à¸£à¹à¸² <u>สัà¹à¸à¸à¸·à¹à¸à¸à¸±à¸à¸à¸µ</u></span> 1144 </div> 1145 <div id="cart22_overlay" 1146 style="display: none;" 1147 v-show="cart_is_show && !cart_is_hiding" 1148 @click="cartHide"></div> 1149 <div id="cart22" 1150 :class="{ show_cart : cart_is_show, hide_cart : cart_is_hiding }" 1151 v-if="cart_is_show"> 1152 <div class="cart22_container"> 1153 <div class="cart22_header_container"> 1154 <div v-if="is_loading" class="cart22-progress-linear-container"> 1155 <div class="cart22-progress-linear"> 1156 <div class="cart22-progress-linear__background" :style="{backgroundColor: cc_color}" ></div> 1157 <div class="cart22-progress-linear__indeterminate"> 1158 <div class="cart22-progress-linear__indeterminate long" :style="{backgroundColor: cc_color}" ></div> 1159 <div class="cart22-progress-linear__indeterminate short" :style="{backgroundColor: cc_color}" ></div> 1160 </div> 1161 </div> 1162 </div> 1163 <div class="cart22_header"> 1164 <div>สิà¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸² ({{total_num}} รายà¸à¸²à¸£)</div> 1165 <div class="cart22_close" 1166 @click="cartHide()"><img src="http://www.ingdao.com/system/application/modules/lnwshop/_images/cart22/close.png"/> 1167 </div> 1168 </div> 1169 </div> 1170 <div class="cart22_content"> 1171 <!--if empty cart--> 1172 <div v-if="items.length <= 0" class="cart22_empty"> 1173 <span v-if="is_initing"><div class="boxload_16"></div></span> 1174 <span v-else>à¸à¸à¸à¸ ัย à¸à¸à¸°à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²</span> 1175 </div> 1176 <!--end if--> 1177 <!--if NOT empty cart--> 1178 <div v-else class="cart22_itemlist"> 1179 <cart-item v-for="item in items" :key="item.iid" :item="item"></cart-item> 1180 </div> 1181 <!--end if--> 1182 <div v-if="discounts.length > 0" class="cart22_discountlist"> 1183 <div class="cart22_discount_item"> 1184 <div class="cart22_discount_label">ราà¸à¸²à¸ªà¸´à¸à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 1185 <div class="cart22_discount_amount">฿ {{price_format(total_price)}}</div> 1186 </div> 1187 <div v-for="(discount,idx) in discounts" :key="idx" class="cart22_discount_item"> 1188 <div class="cart22_discount_label" v-text="discount.label"></div> 1189 <div class="cart22_discount_amount">- ฿ {{price_format(discount.price)}}</div> 1190 </div> 1191 </div> 1192 </div> 1193 <div class="cart22_tailer"> 1194 <div class="cart22_summary"> 1195 <div class="cart22_summary_label"> 1196 <div>ราà¸à¸²à¸ªà¸´à¸à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸</div> 1197 <div class="minor">{{total_quantity}} à¸à¸´à¹à¸</div> 1198 </div> 1199 <div class="cart22_summary_amount"> 1200 <div>฿ {{price_format(after_product_price)}}</div> 1201 <div class="minor">ราà¸à¸²à¹à¸¡à¹à¸£à¸§à¸¡à¸à¹à¸²à¸à¸±à¸à¸ªà¹à¸</div> 1202 </div> 1203 </div> 1204 <div class="cart22_action"> 1205 <a href="http://www.ingdao.com/cart" class="cart22_button cart22_cart" :class="is_loading?'cart22_button_loading':''" :style="{color: cc_color, outlineColor: cc_color}">à¸à¸¹à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸à¸°à¸à¸£à¹à¸²</a> 1206 <a href="http://www.ingdao.com/checkout" class="cart22_button cart22_checkout" :class="is_loading?'cart22_button_loading':''" :style="{backgroundColor: cc_color}">à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸</a> 1207 </div> 1208 <div class="cart22_action"> 1209 <div class="cart22_continue" 1210 @click="cartHide"><span style="transform: rotate(180deg); display: inline-block;">➜</span> à¹à¸¥à¸·à¸à¸à¸à¸·à¹à¸à¸ªà¸´à¸à¸à¹à¸²à¹à¸à¸´à¹à¸¡ </div> 1211 </div> 1212 </div> 1213 </div> 1214 </div> 1215</div>
1216<script type="text/javascript"> 1217 var cart22_vm; 1218 document.addEventListener("DOMContentLoaded", function (event) { 1219 cart22_vm = new Vue({ 1220 store: lnw_store, 1221 components: { 1222 'cart-item' : { 1223 props: ['item'], 1224 data: function() { 1225 return { 1226 edit_quantity_value: null 1227 } 1228 }, 1229 computed: { 1230 can_increase: function() { 1231 if(this.quantity_value < this.item.remain) { 1232 return true; 1233 } 1234 return false; 1235 }, 1236 can_decrease: function() { 1237 if(this.quantity_value > 0) { 1238 return true; 1239 } 1240 return false; 1241 }, 1242 is_flash_sale: function() { 1243 if(this.item.sale_promotion_id) { 1244 return true; 1245 } 1246 if(this.item.promotions && this.item.promotions.find(function(p){ return (p && p.toLowerCase().indexOf('flash')>-1); })) { 1247 return true; 1248 } 1249 if(this.item.promotion_datas) { 1250 var ps = []; 1251 for(var k in this.item.promotion_datas){ 1252 ps.push(this.item.promotion_datas[k]); 1253 } 1254 return ps.some(function(p){ return p && p.type=='sale'; }); 1255 } 1256 return false; 1257 }, 1258 quantity_value: { 1259 get: function() { 1260 if(this.edit_quantity_value !== null) { 1261 return this.edit_quantity_value 1262 } 1263 return this.item.quantity; 1264 }, 1265 set: function(val) { 1266 var that = this; 1267 this.edit_quantity_value = val; 1268 this.$store.dispatch('cart/set_product_quantity', { 1269 iid: this.item.iid, 1270 spec: this.item.spec, 1271 quantity: val, 1272 success: function() { 1273 that.edit_quantity_value = null; 1274 } 1275 }) 1276 } 1277 } 1278 }, 1279 methods: { 1280 increase_quantity: function() { 1281 if(!this.can_increase) { 1282 return; 1283 } 1284 this.quantity_value ++; 1285 this.alert_limit(); 1286 }, 1287 decrease_quantity: function() { 1288 if(!this.can_decrease) { 1289 return; 1290 } 1291 this.quantity_value --; 1292 this.alert_limit(); 1293 }, 1294 alert_limit: function() { 1295 if(!this.item || !this.item.promotion_datas){ return; } 1296 var promo = null; 1297 Object.keys(this.item.promotion_datas).forEach(function(pid){ 1298 var p = this.item.promotion_datas[pid]; 1299 if(p && p.type === 'sale' && !promo){ 1300 promo = p; 1301 } 1302 }.bind(this)); 1303 if(!promo){ return; } 1304 var limit = promo.order_limit || promo.max_quantity; 1305 if(!limit){ return; } 1306 var unit = this.item.unit || ''; 1307 if(this.quantity_value > limit){ 1308 __lnw__.simpleAlert(__lnw__.show_lang('FLASHSALE-LIMIT-OVER', limit, unit)); 1309 }else if(this.quantity_value == limit){ 1310 __lnw__.simpleAlert(__lnw__.show_lang('FLASHSALE-LIMIT-REACH', limit, unit)); 1311 } 1312 } 1313 }, 1314 template: `<div class="cart22_item"> 1315 <div class="cart22_item_right"> 1316 <a :href="item.url"> 1317 <div class="cart22_item_img"> 1318 <img :src="item.thumbnail"> 1319 </div> 1320 </a> 1321 </div> 1322 <div class="cart22_item_left"> 1323 <div v-if="item.remain < item.quantity" class="cart22_tag_warning">สิà¸à¸à¹à¸²à¸à¸µà¹à¹à¸«à¸¥à¸·à¸à¹à¸¡à¹à¹à¸à¸µà¸¢à¸à¸à¸</div> 1324 <div class="cart22_item_name"> 1325 <template v-if="item.parent_name" > 1326 <a :href="item.url" v-text="item.parent_name"></a> 1327 <div class="cart22_subitem_name"><span class="icon-subitem">➜</span> {{item.sku_name}}</div> 1328 </template> 1329 <template v-else> 1330 <a :href="item.url" v-text="item.name"></a> 1331 </template> 1332 <div v-for="(promotion, index) in item.promotions" class="cart22_promotions" :key="index" title="à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸">à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸£à¹à¸¡à¸à¸±à¹à¸ {{ promotion }}</div> 1333 </div> 1334 <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> 1335 <div class="cart22_item_count"> 1336 <div class="cart22_item_countbutton cart22_item_increase" @click="increase_quantity" :class="{disabled:(!can_increase)}"> 1337 <img src="http://www.ingdao.com/system/application/modules/lnwshop/_images/cart22/add.png"/></div> 1338 <div class="cart22_item_countinput"><input type="number" v-model.number="quantity_value" min="0" max="item.remain" /></div> 1339 <div class="cart22_item_countbutton cart22_item_decrease" @click="decrease_quantity" :class="{disabled:(!can_decrease)}"> 1340 <img v-if="quantity_value == 1" class="delete_icon" src="http://www.ingdao.com/system/application/modules/lnwshop/_images/cart22/delete.png"/> 1341 <img v-else src="http://www.ingdao.com/system/application/modules/lnwshop/_images/cart22/remove.png"/> 1342 </div> 1343 </div> 1344 </div> 1345 </div>` 1346 } 1347 }, 1348 el: '#cart22_container', 1349 data: function () { 1350 var data = { 1351 cart_is_show: false, 1352 cart_is_hiding: false, 1353 mem_ycoord: 0, 1354 cc_color: '#007BFF' 1355 }; 1356 return data; 1357 }, 1358 computed: { 1359 items: function() { 1360 if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.items) { 1361 return this.$store.state.cart.data.items 1362 } 1363 return []; 1364 }, 1365 discounts: function() { 1366 if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.after_product_discounts) { 1367 return this.$store.state.cart.data.after_product_discounts; 1368 } 1369 return []; 1370 }, 1371 total_num: function() { 1372 return number_format(this.items.length); 1373 }, 1374 total_quantity: function() { 1375 return this.items.reduce(function(a, item) { 1376 return a+ item.quantity 1377 },0); 1378 }, 1379 total_price: function() { 1380 return this.items.reduce(function(a, item) { 1381 return a + item.total_price 1382 },0); 1383 }, 1384 after_product_price: function() { 1385 if(this.$store.state.cart && this.$store.state.cart.data && this.$store.state.cart.data.after_product_price) { 1386 return this.$store.state.cart.data.after_product_price; 1387 } 1388 return this.total_price; 1389 }, 1390 alert_is_show: function() { 1391 return false && (this.total_quantity > 0); 1392 }, 1393 is_loading: function() { 1394 if(this.$store.state.cart && this.$store.state.cart.data) { 1395 return this.$store.state.cart.is_loading; 1396 } 1397 return false;
1398 }, 1399 is_initing: function() { 1400 if(this.$store.state.cart && this.$store.state.cart.data){ 1401 return false; 1402 } 1403 return true; 1404 } 1405 }, 1406 watch: { 1407 alert_is_show: function(newval) { 1408 var elements = document.querySelectorAll(".register_badge, .adminBar .quickMenu .navigate .navi-container, .pageCapContainer"); 1409 if(newval) { 1410 elements.forEach(function(element) { 1411 element.classList.add('cart22_adjustOther'); 1412 element.classList.add('cart22_adjustOther_show'); 1413 }); 1414 setTimeout(function () { 1415 elements.forEach(function(element) { 1416 element.classList.remove('cart22_adjustOther_show'); 1417 }); 1418 }, 1000); 1419 } else { 1420 elements.forEach(function(element) { 1421 element.classList.remove('cart22_adjustOther'); 1422 element.classList.add('cart22_adjustOther_hide'); 1423 }); 1424 setTimeout(function () { 1425 elements.forEach(function(element) { 1426 element.classList.remove('cart22_adjustOther_hide'); 1427 }); 1428 }, 500); 1429 } 1430 } 1431 }, 1432 methods: { 1433 cartShow: function() { 1434 this.cart_is_show = true; 1435 document.body.classList.add('cart22_body_noscroll'); 1436 1437 this.mem_ycoord = window.scrollY; 1438 var style = document.body.style; 1439 style.position = 'fixed'; 1440 style.left = '0'; 1441 style.right = '0'; 1442 style.top = - this.mem_ycoord + 'px'; 1443 }, 1444 cartHide: function() { 1445 this.cart_is_hiding = true; 1446 let that = this; 1447 setTimeout(function () { 1448 that.cart_is_show = false; 1449 that.cart_is_hiding = false; 1450 document.body.classList.remove('cart22_body_noscroll'); 1451 var style = document.body.style; 1452 style.position = ''; 1453 style.left = ''; 1454 style.right = ''; 1455 style.top = ''; 1456 window.scroll({top: that.mem_ycoord}); 1457 1458 }, 250); 1459 }, 1460 } 1461 }); 1462 }); 1463</script>
1463<div id="lnw-gototop" class="" onclick="lnw_gototop();"><span class="text"></span></div><style class="lnw_custom_css_container" type="text/css"></style></div>
1463<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/external/vue.min.js"></script>
vendor: 1 bytes, line 1463
1463
1464<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/external/es6-promise.auto.min.js"></script>
vendor: 1 bytes, line 1464
1464
1465<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/external/vuex.min.js"></script>
vendor: 1 bytes, line 1465
1465
1466<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/system/application/modules/lnwshop/_js/many.min.js?t=20211123000000"></script>
vendor: 1 bytes, line 1466
1466
1467<script language="JavaScript" type="text/javascript">var LNWFILE_JSONP = 'lnwfile_jsonp'; 1468function file_upload_seller_url () {return "https://cj-up.lnwfile.com/lnwshop/v2/upload_seller/";} 1469function file_upload_buyer_url () {return "https://cj-up.lnwfile.com/lnwshop/v2/upload_buyer/";} 1470function file_upload_url () {return "https://cj-up.lnwfile.com/lnwshop/upload/";} 1471function file_upload_flash_url () {return "https://cj-up.lnwfile.com/lnwshop/upload_flash/";} 1472function file_upload_icon_url () {return "https://cj-up.lnwfile.com/lnwshop/upload_icon/";} 1473function file_upload_document_url () {return "https://cj-up.lnwfile.com/lnwshop/v2/upload_document/";} 1474function file_upload_accounting_url () {return "https://aca-up.lnwfile.com/lnwshop/v2/upload_document/";} 1475function file_upload_manage_url () {return "https://cj-up.lnwfile.com/lnwshop/upload_manage/";} 1476function file_flash_url () {return "https://cj-up.lnwfile.com/swf/swfupload.swf";} 1477function file_uploadify_url () {return "https://cj-up.lnwfile.com/swf/uploadify.swf";} 1478function file_jsonp_url (uri) {return "https://cj-up.lnwfile.com/lnwshop/jsonp/"+(uri===undefined?"":uri)+"?"+LNWFILE_JSONP+"=?";} 1479 function base_url (uri) {return "http://www.ingdao.com/"+(uri===undefined?"":uri.replace(/^\//,''));} 1480 function site_url (uri) {return "http://www.ingdao.com/"+(uri===undefined?"":uri.replace(/^\//,''));} 1481 function front_url (uri) {return "http://www.ingdao.com/"+(uri===undefined?"":uri.replace(/^\//,''));} 1482 function manage_url (uri) {return "https://a.lnwstore.com/ingdao/"+(uri===undefined?"":uri.replace(/^\//,''));} 1483 function handle_url_from_import (url) { 1484 if(typeof url !== 'string') { 1485 return url; 1486 } 1487 url = url.trim(); 1488 if(/^https?:\/\//.test(url)) { 1489 return url; 1490 }return url;} 1491var css_files = ['http://www.ingdao.com/system/application/templates/lnwshop/default/_css/basic.min.css?t=20260810000053','http://www.ingdao.com/cache/lnwshop/165/654/css/20260103185741/style.css']; 1492function css_url () {return css_files.join(',');} 1493const WEBID = 165654; 1494function 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)} 1495const WEBDATA = deepFreeze({"id":"165654","webname":"ingdao","name":"à¸à¸´à¸à¸à¸²à¸§ à¸à¸£à¸²à¸§à¸à¹à¸²","image":"https:\/\/a.lnwfile.com\/n2j7dq.jpg","avatar":"https:\/\/a.lnwfile.com\/_\/a\/_resize\/100\/100\/n2\/j7\/dq.jpg","front_url":"http:\/\/www.ingdao.com\/","manage_url":"https:\/\/a.lnwstore.com\/ingdao\/","share_url":"http:\/\/www.ingdao.com\/cart","join_num":18,"open_date_th":"17 à¹à¸¡.ย. 2557","open_date_diff":"1 decadeà¸à¸µà¹à¸à¹à¸²à¸à¸¡à¸²","order_url":"https:\/\/lnw.me\/order\/ingdao","lnwbar":{"color":"default"},"price_round_config":null,"slideshow":{"is_enabled":0},"gointer":{"is_enabled":0},"addon_rightclick":1,"addon_selecttext":1,"mobileSiteEnabled":1}); 1496 function _add_settings_data(settings, name, value) { 1497 if(typeof settings.data == 'undefined' || settings.data == null || settings.data == '') { 1498 settings.data = name + '=' + value; 1499 } else if(typeof settings.data=='string') { 1500 settings.data += '&' + name + '=' + value; 1501 } else if($.isArray(settings.data)) { 1502 settings.data.push({name: name, value: value}); 1503 } else if(typeof FormData !== 'undefined') { 1504 settings.data.append(name, value); 1505 } 1506 } 1507 if(window.top != window) { 1508 var allowedFrame = false; 1509 try { 1510 } catch(error) {} 1511 if(!allowedFrame) {
1512 var alertFunc = function() { 1513 // Bootstrap also runs in <head>, before the body exists. 1514 if(!document.body) { 1515 return; 1516 } 1517 var heading = document.createElement('h1'); 1518 heading.style.margin = '200px'; 1519 var link = document.createElement('a'); 1520 link.href = window.location.href; 1521 link.target = '_top'; 1522 link.textContent = 'Click here to enter'; 1523 heading.appendChild(link); 1524 document.body.textContent = ''; 1525 document.body.appendChild(heading); 1526 }; 1527 alertFunc(); 1528 window.addEventListener('DOMContentLoaded', alertFunc); 1529 window.addEventListener('load', alertFunc); 1530 } 1531 } 1532 1533 $(document).ready(function() { 1534 $.ajaxSetup({ 1535 dataType: "html", 1536 cache: false 1537 }); 1538 $(this).ajaxSend(function(e, xhr, settings) { 1539 if(!settings.data){ 1540 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 1541 } 1542 _add_settings_data(settings, 'ajaxxxx', true); 1543 _add_settings_data(settings, 'ajaxxxx_dataType', settings.dataType); 1544 if((typeof lnw_store !== 'undefined') && lnw_store.state.user.data && lnw_store.state.user.data.csrf_token) { 1545 _add_settings_data(settings, 'csrf_token', lnw_store.state.user.data.csrf_token); 1546 } 1547 }); 1548 }); 1549 1550</script>
vendor: 1 bytes, line 1550
1550
1551<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/system/application/modules/lnwshop/_js/lang_th.js?t=20250110114600"></script>
1551 1552
1553<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/system/application/modules/lnwshop/_js/default.min.js?t=20260902170746"></script>
1553 1554 1555 1556 1557 <div class="shortcut-contact-container btn-chat-container"> 1558 <div class="btn btn-chat"> 1559 <div class="close-icon" onclick="goto_chat();"></div> 1560 <div class="icon"></div> 1561 <div class="text">à¸à¸¹à¸à¸à¸¸à¸¢-สà¸à¸à¸à¸²à¸¡</div> 1562 </div> 1563 <ul class="social-button"> 1564 <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-%20ingdao&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();"> 1565 <div class="icon"></div> 1566 <div class="text">à¸à¸µà¹à¸¡à¸¥ [email protected]</div> 1567 </a></li> 1568 <li class="btn btn-contactus"> 1569 <a href="http://www.ingdao.com/contactus" onclick="return lead_contactus_track();"> 1570 <div class="icon"></div> 1571 <div class="text">à¸à¸£à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸´à¸à¸à¹à¸</div> 1572 </a></li> 1573 <li class="btn btn-facebook"><a target="_blank" href="https://www.messenger.com/t/thirayu.thippawal" onclick="return lead_facebook_track();"> 1574 <div class="icon"></div> 1575 <div class="text">thirayu.thippawal</div> 1576 </a></li> 1577 </ul> 1578 </div> 1579 1580
1581<script language="JavaScript"> 1582 document.addEventListener("DOMContentLoaded", function () { 1583 var lead_datas = [ 1584 {selector:'a[href*="email:"], a[href*="contactus"]',onclick:'return lead_contactus_track()'}, 1585 {selector:'a[href*="tel:"]',onclick:'return lead_phone_track()'}, 1586 {selector:'a[href*="line.me/ti/p"], a[href*="nav.cx"]',onclick:'return lead_line_track()'}, 1587 {selector:'a[href*="messenger.com"], a[href*="facebook.com"]',onclick:'return lead_facebook_track()'}, 1588 ]; 1589 lead_datas.forEach(function(lead_data) { 1590 var nodeList = document.querySelectorAll(lead_data.selector); 1591 for(var i=0;i<nodeList.length;i++) { 1592 var node = nodeList[i]; 1593 if(node.getAttribute('onclick') == null) { 1594 node.setAttribute('onclick',lead_data.onclick); 1595 } 1596 } 1597 }); 1598 }); 1599 function lead_contactus_track() { 1600 console.log("Warning: lead type contactus is missing."); 1601 return true; 1602 } 1603 function lead_phone_track() { 1604 console.log("Warning: lead type phone is missing."); 1605 return true; 1606 } 1607 function lead_facebook_track() { 1608 console.log("Warning: lead type facebook is missing."); 1609 return true; 1610 } 1611 function lead_twitter_track() { 1612 console.log("Warning: lead type twitter is missing."); 1613 return true; 1614 } 1615 function lead_instagram_track() { 1616 console.log("Warning: lead type instagram is missing."); 1617 return true; 1618 } 1619 function lead_line_track() { 1620 console.log("Warning: lead type line is missing."); 1621 return true; 1622 } 1623 </script>
1623<script type="text/javascript"> var first_sync_accounts_time = true; 1624 function accounts_update__hook_after_check_account() { 1625 if(first_sync_accounts_time){ 1626 first_sync_accounts_time = false; 1627 } 1628 } var accountsTime = null; 1629function accounts_update() { 1630 var data = { 1631 data: 'Yf5tX4Vb7hr_-a8uYaonTVsFB0F0MFOFMh_-DH93HxLV1YTWXvjQ9oJgMGexXpbLlqHlVCG9NehKxQ1WxU4EHwDsVwq7EX0bfB13LjUFGJVE5XETrUfpNRnyVRbn-zNY_ebzsvsEo3orIa5OS26ghsLYCgJeDfKmHO17RtqHqMMTNGmUg0u91VbK1iKlumTgl70QusToBM61WYs885I-2XkbBfSoDKAOVK9zzI0fzOl6eMIjcRB1ndCTOeMpM-ntnlL9hHjE4MNLa96rGAlXb0vH-GqCs5MdF4u7Z5AJzgyDdx-COR-5YIxQOdlqm8tA6fFGXD11BNihShDnhA6vT_JOEtHB9rkPBnTYv9EHIFOq_adAeC7lTQ_syIs3W_P_6ADKfqXtyQagt8BO3c1A5w==', 1632 revision_id: 3573 1633 }; 1634 $.getJSON("https://static.lnw.me/jsonp/heartbeat?lnwaccounts_jsonp=?", data, function(response) { 1635 if(response.success) { 1636 if(response.logged_in) { 1637 //$.cookie('_lnwacct_165654_www_ingdao_com___tk2', response._lnwacct, {path: '/'}); 1638 document.cookie = encodeURIComponent("_lnwacct_165654_www_ingdao_com___tk2") + "=" + encodeURIComponent(response._lnwacct) + "; path=/"; 1639 if(response.state_change != undefined && response.state_change) { 1640 //alert('reload'); 1641 window.location.href = window.location.href; 1642 return; 1643 } 1644 } 1645 if(typeof accounts_update__hook_after_check_account == 'function') { 1646 accounts_update__hook_after_check_account(); 1647 } 1648 } 1649 if(accountsTime != null) { 1650 clearTimeout(accountsTime); 1651 }
1652 accountsTime = setTimeout("accounts_update();", 15 * 60 * 1000); 1653 }); 1654 $.ajax({ 1655 type: 'GET', 1656 data: {}, 1657 url: 'http://www.ingdao.com/lnwbar/action/session' 1658 }); 1659} 1660$(document).ready(function() { 1661 if(window.top == window) { 1662 accounts_update(); 1663 } 1664}); 1665</script>
1665<script language="JavaScript" type="text/javascript" src="http://www.ingdao.com/system/application/modules/lnwshop/lnwbar/_js/vue.min.js?t=20260904205501"></script>
vendor: 1 bytes, line 1665
1665
1666<script type="text/javascript">document.addEventListener("DOMContentLoaded", function(event) { });</script>
1666</body> 1667</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.