CINXE.COM
Grab introduces the first GrabKitchen to Bangkok to empower GrabFood ecosystem | Techsauce
<!doctype html> <html lang="th"> <head> <!-- Google Tag Manager --> <script> (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', '5L9S7SN'); </script> <!-- End Google Tag Manager --> <!-- Google Tag Manager --> <script> (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', "GTM-WW42FBZ"); </script> <!-- End Google Tag Manager --> <!-- Cookie Consent by https://www.cookiewow.com --> <script type="text/javascript" src="https://cookiecdn.com/cwc.js"></script> <script id="cookieWow" type="text/javascript" src="https://cookiecdn.com/configs/8eoPiVV6qByn25womKfoUyNs" data-cwcid="8eoPiVV6qByn25womKfoUyNs"></script> <!-- TruConversion for techsauce.co --> <script type="text/javascript"> var _tip = _tip || []; (function(d, s, id) { var js, tjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) { return; } js = d.createElement(s); js.id = id; js.async = true; js.src = d.location.protocol + '//app.truconversion.com/ti-js/16760/33527.js'; tjs.parentNode.insertBefore(js, tjs); }(document, 'script', 'ti-js')); </script> <!-- End TruConversion for techsauce.co --> <!-- Facebook Pixel Code --> <script> ! function(f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function() { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '151360430422871'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=151360430422871&ev=PageView&noscript=1" /></noscript> <!-- End Facebook Pixel Code --> <meta charset="utf-8"> <meta name="csrf-token" content="RCbmABoUyCOBdlmHYkoQZrwUlYRUOk0qg1ZSPBqb"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="facebook-domain-verification" content="o13ct9x5qoorljg7y3iz5ys6sdm6eu" /> <title>Grab introduces the first GrabKitchen to Bangkok to empower GrabFood ecosystem | Techsauce</title> <link rel="alternate" hreflang="th" href="https://techsauce.co"> <link rel="alternate" hreflang="en-us" href="https://techsauce.co/en/"> <meta name="description" content="Grab announced the official opening of Thailand’s first-ever GrabKitchen at Samyan market, located in the heart of the city. GrabKitchen is a cloud kitchen that unites multiple food and beverage brands in one location."> <link rel="canonical" href="https://techsauce.co/en/news/grabkitchen-in-bkk"> <meta property="fb:app_id" content="2342870205957740"> <meta property="og:locale" content="th_TH"> <meta property="og:type" content="article"> <meta property="og:title" content="Grab introduces the first GrabKitchen to Bangkok to empower GrabFood ecosystem"> <meta property="og:description" content="Grab announced the official opening of Thailand’s firs..."> <meta property="og:url" content="https://techsauce.co/en/news/grabkitchen-in-bkk"> <meta property="og:site_name" content="Techsauce"> <meta property="og:image" content="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/1200_630_grabkitchen.jpg"> <meta property="og:image:secure_url" content="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/1200_630_grabkitchen.jpg"> <meta property="og:image:width" content="1280"> <meta property="og:image:height" content="720"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:description" content="Grab announced the official opening of Thailand’s firs..."> <meta name="twitter:title" content="Grab introduces the first GrabKitchen to Bangkok to empower GrabFood ecosystem"> <meta name="twitter:site" content="@techsauceth"> <meta name="twitter:image" content="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/1200_630_grabkitchen.jpg"> <meta name="twitter:creator" content="@techsauceth"> <link rel="alternate" type="application/rss+xml" title="Techsauce » ฟีด" href="https://techsauce.co/feed" /> <link href="https://fonts.googleapis.com/css?family=Sarabun:400,700&display=swap" rel="stylesheet"> <link href="https://techsauce.co/css/app.css" rel="stylesheet" /> <link href="https://techsauce.co/css/main.css" rel="stylesheet" /> <link href="https://techsauce.co/admin/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css"> <link href="https://techsauce.co/css/nav.css" rel="stylesheet" /> <link href="https://techsauce.co/css/popup-banner.css" rel="stylesheet" /> <link rel="icon" href="https://techsauce.co/favicon.png" type="image/png" /> <link rel="shortcut icon" href="https://techsauce.co/favicon.ico" /> <link href="https://techsauce.co/css/login.css" rel="stylesheet" /> <link href="https://techsauce.co/css/new-navbar.css" rel="stylesheet" /> <link rel="stylesheet" href="https://techsauce.co/vendor/froala_editor_4.0.9/css/froala_editor.pkgd.css" /> <style> @font-face { font-family: "Superstore"; src: url(https://techsauce.co/font/Superstore-Regular.woff2) format("woff2"), url(https://techsauce.co/font/Superstore-Regular.woff) format("woff"), url(https://techsauce.co/font/Superstore-Regular.otf) format("opentype"); font-style: normal; font-weight: 400; } @font-face { font-family: "Superstore Bold"; src: url(https://techsauce.co/font/Superstore-Bold.woff) format("woff"), url(https://techsauce.co/font/Superstore-Bold.otf) format("opentype"); font-style: normal; font-weight: bold; } </style> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css"> <script src="https://techsauce.co/admin/vendor/jquery/jquery.min.js"></script> <script src="https://techsauce.co/admin/vendor/bootstrap/js/bootstrap.bundle.min.js"></script> <link rel="stylesheet" href="https://techsauce.co/css/_comment.css" > <link rel="stylesheet" href="https://techsauce.co/css/comment.css" > <link rel="stylesheet" href="https://techsauce.co/css/view.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css"> <style> .techsaucier-footer-btn, .admin-footer { display: none; } .box-meta { margin-top: 5px !important; } .fading-white-cover { /* background-color: transparent; background-image: linear-gradient(360deg, #f8fafc, rgb(248 250 252 / 75%)) !important; z-index: 10000; */ background: linear-gradient(rgba(248, 250, 252, 0), rgb(248, 250, 252)) } /* */ /* @media (min-width: 768px) { */ /* show 3 items */ /* .carousel-inner .active, .carousel-inner .active + .carousel-item, .carousel-inner .active + .carousel-item + .carousel-item { display: block; } */ /* .carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left), .carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left) + .carousel-item, .carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left) + .carousel-item + .carousel-item { transition: none; } */ /* .carousel-inner .carousel-item-next, .carousel-inner .carousel-item-prev { position: relative; transform: translate3d(0, 0, 0); } */ /* .carousel-inner .active.carousel-item + .carousel-item + .carousel-item + .carousel-item { position: absolute; top: 0; right: -33.3333%; z-index: -1; display: block; visibility: visible; } */ /* left or forward direction */ /* .active.carousel-item-left + .carousel-item-next.carousel-item-left, .carousel-item-next.carousel-item-left + .carousel-item, .carousel-item-next.carousel-item-left + .carousel-item + .carousel-item, .carousel-item-next.carousel-item-left + .carousel-item + .carousel-item + .carousel-item { position: relative; transform: translate3d(-100%, 0, 0); visibility: visible; } */ /* farthest right hidden item must be abso position for animations */ /* .carousel-inner .carousel-item-prev.carousel-item-right { position: absolute; top: 0; left: 0; z-index: -1; display: block; visibility: visible; } */ /* right or prev direction */ /* .active.carousel-item-right + .carousel-item-prev.carousel-item-right, .carousel-item-prev.carousel-item-right + .carousel-item, .carousel-item-prev.carousel-item-right + .carousel-item + .carousel-item, .carousel-item-prev.carousel-item-right + .carousel-item + .carousel-item + .carousel-item { position: relative; transform: translate3d(100%, 0, 0); visibility: visible; display: block; visibility: visible; } */ /* } */ /* .job-card { box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5); background-color: white; height: 188px; } .job-tagline { font-size: 10px; } */ /* .carousel-control-prev-icon, .carousel-control-next-icon { height: 100px; width: 100px; outline: black; background-image: none; } .carousel-control-next-icon:after { padding-left: 99%; content: '>'; font-size: 20px; font-weight: bold; color: black; } .carousel-control-prev-icon:after { padding-right: 99%; content: '<'; font-size: 20px; font-weight: bold; color: black; } */ /* */ </style> <!-- Schema Markup --> <!-- Website Markup --> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "WebSite", "name": "Techsauce", "alternateName": "คอนเทนต์เพื่อวงการ Tech ในโลกธุรกิจ ครอบคลุมทั้งในไทย และเอเชียตะวันออกเฉียงใต้ รวมถึงเป็นรายแรกผู้จัดงาน Tech Conference เชื่อมต่อคนเอเชียและคนทั่วโลก", "url": "https://techsauce.co/", "potentialAction": { "@type": "SearchAction", "target": "https://techsauce.co/articles?search={search_term_string}", "query-input": "required name=search_term_string" } } </script> <!-- Organize Markup --> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Corporation", "name": "Techsauce.co", "alternateName": "Techsauce.co", "url": "https://techsauce.co", "image": "https://techsauce.co/images/techsauce.png", "sameAs": [ "https://www.facebook.com/techsauceTH", "https://www.youtube.com/channel/UCRFXjYNDBr9ZobQkFave7sQ" ] } </script> <!-- Breadcrumb Markup --> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Techsauce", "item": "https://techsauce.co/" } , { "@type": "ListItem", "position": 2, "name": "En", "item": "https://techsauce.co/en/" } , { "@type": "ListItem", "position": 3, "name": "News", "item": "https://techsauce.co/en/news/" } , { "@type": "ListItem", "position": 4, "name": "Grabkitchen in Bkk", "item": "https://techsauce.co/en/news/grabkitchen-in-bkk/" } ] } </script> <!-- Article Markup--> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://techsauce.co/en/news/grabkitchen-in-bkk" }, "headline": "Grab introduces the first GrabKitchen to Bangkok to empower GrabFood ecosystem", "image": "https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/1200_800_GrabKitchen_(1).JPG", "author": { "@type": "Person", "name": "Techsauce Team" }, "publisher": { "@type": "Organization", "name": "Techsauce.co", "logo": { "@type": "ImageObject", "url": "https://techsauce.co/images/techsauce.png" } }, "datePublished": "2019-10-08 14:45:32", "dateModified": "2019-10-08 14:45:32" } </script> <!-- End Schema Markup --> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5L9S7SN" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WW42FBZ" height="0" width="0" style="display:none;visibility:hidden"> </iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <div class="container"> <div id="ts-nav" class="fixed-top ts-nav"> <div class="container"> <header class="blog-header py-2 ts-header-v2" id="header-nav"> <div class="row flex-nowrap justify-content-between align-items-center"> <div class="col-6 pt-1 head-img"> <a href="https://techsauce.co" style="margin-right: 35px;"> <img class="logo-img" src="https://techsauce.co/images/techsauce.png" width="189" height="35" /> </a> <a class="p-2 ts-outline btn btn-default btn-ts" href="https://service.techsauce.co/" target="_blank">OUR SERVICE</a> <a class="p-2 ts-outline btn btn-default btn-ts-outline" href=" https://challenge.techsauce.co/" target="_blank">INNOV PROGRAM</a> </div> <nav id="nav-mobile" class="navbar navbar-expand-md navbar-dark fixed-top bg-dark"> <div style="width: 60px"> <button id="mobile-sidebar-btn" class="navbar-toggler collapsed p-0"> <i class="fas fa-bars" style="font-size:25px; color: #6B757E;"></i> </button> </div> <a href="https://techsauce.co"> <img src="https://techsauce.co/images/techsauce.png" height="25px" width="auto" /> </a> <div class="d-flex"> <a class="text-muted mr-2 search-btn d-flex align-items-center" id="search-btn"> <i class="fas fa-search" style="font-size: 25px; color:#6B757E;"></i> </a> <a class="" href="https://techsauce.co/login"> <i class="fas fa-user-circle" style="font-size: 25px; color:#6B757E;"></i> </a> </div> </nav> <div id="top-menu" class="col-6 d-flex justify-content-end align-items-center hidden-sm"> <a class="mx-1" href="https://techsauce.co/career">ร่วมงานกับเรา</a> <span style="border: 1px solid rgba(107, 117, 126, 0.5); height: 40px;" class="mx-3"></span> <a class="text-muted search-btn" id="search-btn"> <i class="fas fa-search" style="font-size: 20px; color:#6B757E;"></i> </a> <span style="border: 1px solid rgba(107, 117, 126, 0.5); height: 40px;" class="mx-3"></span> <a class="d-flex ts-outline align-items-center" href="https://techsauce.co/become-tech-saucier"> <div class="d-flex align-items-center justify-content-center mr-2 rounded-circle p-1 bg-ts" style="width: 32px; height: 32px;"> <i class="fas fa-paper-plane text-white" style="font-size:14px; margin-left: -2px"></i> </div> ส่งบทความ </a> <span style="border: 1px solid rgba(107, 117, 126, 0.5); height: 40px;" class="mx-3"></span> <a class="mx-1 ts-text " href="https://techsauce.co/local/th">TH</a> <a class="mx-1 " href="https://techsauce.co/local/en">EN</a> <span style="border: 1px solid rgba(107, 117, 126, 0.5); height: 40px;" class="mx-3"></span> <a class="d-flex align-items-center" href="https://techsauce.co/login"> <i class="fas fa-user-circle mr-2" style="font-size: 20px; color:#6B757E;"></i> Sign in </a> </div> </div> </header> </div> <div id="mobile-lang"></div> <div class="position-absolute w-100 bg-white d-md-none mobile-sidebar" style="height: 100vh; z-index: 3; display: none; overflow-y: auto;" id="mobile-sidebar"> <hr class="m-0" /> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/news">NEWS</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/tech-and-biz">TECH & BIZ</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/sustainable-focus">SUSTAINABLE</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/exec-insight">EXEC INSIGHT</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/corp-innov">CORP INNOV</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/saucy-thoughts">SAUCY THOUGHTS</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/basedon">Based On</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/video">VIDEOS</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/podcasts">PODCAST</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/startup">STARTUP GUIDE</a> <hr class="m-0" /> <a class="text-muted ts-nav-text" href="https://service.techsauce.co/" target="_blank">OUR SERVICE</a> <a class="text-muted ts-nav-text" href=" https://challenge.techsauce.co/" target="_blank">INNOV PROGRAM</a> <hr class="m-0" /> <a class="text-muted ts-nav-text" href="https://techsauce.co/become-tech-saucier"> ส่งบทความ </a> <hr class="m-0" /> <a class="text-muted ts-nav-text" href="https://techsauce.co/career"> ร่วมงานกับเรา </a> <hr class="m-0" /> <div class="text-center pt-5 pb-3"> <a class="mx-1 ts-text " href="https://techsauce.co/local/th" style="display: inline">TH</a> <a class="mx-1 " href="https://techsauce.co/local/en" style="display: inline">EN</a> </div> </div> <div class="container"> <div class="ts-nav-v2 nav-scroller py-1 mb-2" id="category-nav"> <nav class="nav d-flex justify-content-between" id="category-nav-inside"> <div id="category-nav-left" class="position-absolute justify-content-start align-items-center" style="left: 0; width: 80px; height: 32px; background: linear-gradient(90deg, #FFFFFF 48.8%, rgba(255, 255, 255, 0.8) 67.98%, rgba(255, 255, 255, 0) 92.29%); display: none"> <div class="rounded-circle text-center d-flex align-items-center justify-content-center border bg-white" style="cursor: pointer; width: 30px; height:30px; box-shadow: 0px 0px 6px rgba(184, 182, 182, 0.5);"> <i class="fa fa-chevron-left"></i> </div> </div> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/news">NEWS</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/tech-and-biz">TECH & BIZ</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/sustainable-focus">SUSTAINABLE</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/exec-insight">EXEC INSIGHT</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/corp-innov">CORP INNOV</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/topics/saucy-thoughts">SAUCY THOUGHTS</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/basedon">Based On</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/video">VIDEOS</a> <a class="text-muted ts-nav-text " href="https://techsauce.co/podcasts">PODCAST <i class="fas fa-microphone-alt"></i></a> <a class="text-muted ts-nav-text " href="https://techsauce.co/startup">STARTUP GUIDE</a> <div id="category-nav-right" class="d-flex position-absolute justify-content-end align-items-center" class="align-items-center" style="right: 0; width: 80px; height: 32px; background: linear-gradient(270deg, #FFFFFF 48.8%, rgba(255, 255, 255, 0.8) 67.98%, rgba(255, 255, 255, 0) 92.29%); display: none;"> <div class="rounded-circle text-center d-flex align-items-center justify-content-center border bg-white" style="cursor: pointer; width: 30px; height:30px; box-shadow: 0px 0px 6px rgba(184, 182, 182, 0.5); "> <i class="fa fa-chevron-right"></i> </div> </div> </nav> </div> </div> </div> <div class="row" style="margin-top: 130px; padding-top: 50px;"> <div class="col-md-2"> <div class="icon-bar icon-bar-mb"> <a class="saucy"> <img id="saucy-btn" src="https://techsauce.co/images/saucy.png"> <br> <p id="total-like">0</p> <hr> </a> <a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://techsauce.co/en/news/grabkitchen-in-bkk&display=popup&ref=plugin&src=share_button" class="facebook"> <i class="fa fa-facebook"></i> 156 </a> <a target="_blank" href="https://twitter.com/intent/tweet?text=Grab+introduces+the+first+GrabKitchen+to+Bangkok++to+empower+GrabFood+ecosystem&url=https://techsauce.co/en/news/grabkitchen-in-bkk" class="twitter"> <i class="fa fa-twitter"></i> </a> <a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://techsauce.co/en/news/grabkitchen-in-bkk&title=Grab+introduces+the+first+GrabKitchen+to+Bangkok++to+empower+GrabFood+ecosystem" class="linkedin"> <i class="fa fa-linkedin"></i> </a> </div> </div> <div class="col-md-8 "> <div class="mb-5 content-title "> <h1 class="font-weight-bold mb-3 big-article-title">Grab introduces the first GrabKitchen to Bangkok to empower GrabFood ecosystem</h1> <p class="blog-post-meta article-normal-box-meta article-meta-box"> October 8, 2019 <span class="blog-post-meta-by"> | By </span> <a class="ts-text" href="https://techsauce.co/authors/techsauce-team"> Techsauce Team </a> </p> </div> <div class="content-detail"> <section id="content-detail"> <p><strong>Grab</strong>, Southeast Asia’s leading everyday super app, today announced the official opening of Thailand’s first-ever GrabKitchen at Samyan market, located in the heart of the city. GrabKitchen is a cloud kitchen that unites multiple food and beverage brands in one location. By leveraging data from GrabFood, GrabKitchens is set up to bridge the demand and supply gaps in specific areas and increase the variety of food options.</p><p><img src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/GrabKitchen_(1).JPG" style="width: 720px;" class="fr-fic fr-dib"></p><p>GrabKitchen was first launched in Indonesia in April 2019 to great success. The launch of GrabKitchen in Thailand represents the expansion of GrabKitchen beyond Indonesia and makes GrabFood the largest operator of cloud kitchens in Southeast Asia with 20 “live” kitchens including Vietnam. It also marks the first time GrabFood is expanding GrabKitchen outside Indonesia. GrabFood aims to operate a regional network of cloud kitchens totaling over 50 GrabKitchens in five countries, becoming the only truly regional food delivery platform with the largest footprint. GrabFood currently operates in 221 cities across six countries.</p><p>GrabKitchen offers users in a particular geography a variety of curated food selections by leveraging data from historical orders to address cuisine gaps. GrabKitchens are strategically located to bridge consumer demand and availability of food selections, while reducing the time for food delivery. For merchants, GrabKitchen is a convenient way for micro- and small-medium enterprises (MSMEs) to expand the geographic area they serve and reach more consumers using technology. Cloud kitchens can also manage their cost of operation as they are mostly delivery only, eliminating high capital investments to cover rental costs - which is one of the highest cost items for food and beverage operators.</p><p><strong>Tarin Thaniyavarn, Country Head of Grab Thailand </strong>said: “Grab as the leader in food delivery market, we have been constantly working on our partnership strategy to complete Grab’s ecosystem. From this, we learn that many restaurants face diverse challenges whether it be investment, eaters have limited access to favorite menus or long delivery time. GrabKitchen will serve as solutions for our food operators, some of whom might be self-made chefs and independent entrepreneurs, to expand and run their business without having to worry about high costs or investment and fully focus on food creativity and quality. As for our drivers, this initiative will allow them to receive more food orders, helping them generate even higher income.”</p><h2><strong>Bangkok’s First GrabKitchen</strong></h2><p><img src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/GrabKitchen_(3).JPG" style="width: 720px;" class="fr-fic fr-dib"></p><p>Grab uses data to identify a strategic location with a demand and supply gap. This central cooking facility is located on the 2<sup>nd</sup> floor of Samyan Market, a prime spot that connects Bangkok’s central zone with many other key locations including the central business districts (CBD) such as Siam, Silom and Sathorn. The GrabKitchen houses 12 separate kitchens, comprising Bangkok’s most popular restaurants. Operations within GrabKitchen follow food and beverage regulations and high standards and are certificate for food hygiene as well as fire and safety equipment, so everyone can rest assured that the food does not just taste good but is also safe and clean. Customers can order food from GrabKitchen every day from 8.00 – 22.00 hrs. within a delivery radius of 8 km. </p><p>From early morning until late at night, GrabKitchen at Samyan is waiting to fill empty tummies with delicious dishes from 12 of the most sought-after restaurants of the moment including <em>Brown Café, Elvis Suki, Por Charoen Chai Chicken, Tum Pok Pok, Ongtong Khaosoi, Pukaidongkongguu, Kekebab and five other restaurants under Central Restaurant Group </em> <em>such as Che Kiang congee, fried pork from Pramuan road, 8 Riew Tom Yum Noodle, Tokyo Bowl and Tam Sang Sin Kid (cooked-to-order eatery). </em>With these restaurants gathering at just one place, consumers are also able to mix and match their order from all the restaurants at GrabKitchen in a single order.</p><h2><strong>Business Growth Accelerator for Merchant-Partners</strong></h2><p>GrabKitchen presents merchant-partners with a new way of business growth accelerator to help alleviate front-of-house management and activities. A delivery-only cloud kitchen, GrabKitchens are offered rent-free to merchants with a plug-and-play model, complete with fully-functional kitchens with gas and hot water systems. Merchants only need to bring along kitchen appliances and they can kick start their business almost instantly. With fewer things to worry about, entrepreneurs are able to focus all their attention on their cooking and further enhance their creativity to drive their culinary legacy forward.</p><p><img src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2019/10/GrabKitchen_(4).JPG" style="width: 720px;" class="fr-fic fr-dib"></p><p>By leveraging data to bring trendy restaurants from all over Bangkok together at a single location, eateries with limited exposure to customers due to their more remote locations will find that GrabKitchen bridges the geographical gap and allows merchant-partners to expand and tap into a new customer base that is increasingly digital.</p><p><strong>Dulyawit Khuiaphai, Founder of Ong Tong Khaosoi</strong>, the classic noodle shop bringing original Khao Soi to Bangkok, shared his impression, “We were so excited to hear about GrabKitchen and decided to join almost right away. For us, this as an attractive win-win business opportunity. Investment at GrabKitchen is relatively low compared to opening a new branch that would require plenty of cost on preparations and operations. Additionally, as Grab is the market leader in food delivery, we strongly believe that with its expertise, know-how as well as large and loyal customer base, this GrabKitchen platform will undoubtedly help us learn, uplift our brand to a higher level and expand our business further.”</p><p>“Grab is honored that our partners have shown their trust and confidence in GrabFood as their preferred partner. We believe that this collaboration will bring continued success and promote business growth for everyone involved including merchant-partners, consumers and driver-partners. When our community grows, we grow as well. While our partners help us to complete the overall Grab’s ecosystem through their specialties, manpower and dedication, Grab is all set to give them better opportunities in return. GrabKitchen serves as another concrete strategy by Grab, emphasizing our core vision that aims to drive Southeast Asia forward through empowering million micro businesses. This cloud kitchen will help pave the way for new business and income opportunities for our valued partners.” Tarin concluded.</p> </section> <div class="w-100 position-relative" id="hide-content-backdrop"> <div class="fading-white-cover" style="height: 300px; width: 100%; position: absolute; bottom: 0;"> </div> </div> </div> <div class="row py-5" id="hide-content-box"> <div class="col text-center"> <p class="mb-3 ts-text" style="font-size: 20px;"> ลงทะเบียนเข้าสู่ระบบ เพื่ออ่านบทความฟรีไม่จำกัด </p> <div class="row justify-content-center m-0" style="flex: 1;"> <div class="col d-flex align-items-center justify-content-center p-0"> <div class="card bg-white p-0 w-50 tsn-login-card" style="min-width: 370px; max-width: 470px;"> <div class="card-body p-0 tsn-login-container"> <ul class="nav nav-tabs w-100" id="ts-authen-tab" role="tablist"> <li class="nav-item w-50"> <a class="nav-link active" id="signin-custom-tab"> เข้าสู่ระบบ </a> </li> <li class="nav-item w-50"> <a class="nav-link" id="signup-custom-tab"> ลงทะเบียน </a> </li> </ul> <div class="tab-content p-4" id="ts-authen-tab-content"> <div class="tab-pane active" id="signin-custom-content"> <form class="tsn-login-form" id="tsn-form" method="POST" action="https://techsauce.co/login"> <input type="hidden" name="_token" value="RCbmABoUyCOBdlmHYkoQZrwUlYRUOk0qg1ZSPBqb"> <div class="form-group"> <input id="email" type="email" class="form-control" placeholder="อีเมล" name="email" value="" required autocomplete="email" tabindex="1"> </div> <div class="form-group"> <input id="password" type="password" class="form-control" placeholder="รหัสผ่าน" name="password" required autocomplete="current-password" tabindex="2"> </div> <div class="text-right mb-3"> <a class="text-primary cursor-pointer" target="_blank" href="https://techsauce.co/forget-password"> ลืมรหัสผ่าน? </a> </div> <button type="submit" class="btn btn-primary btn-block font-size-16" tabindex="-1"> เข้าสู่ระบบ </button> </form> <div class="text-center my-3"> มีบัญชีแล้วหรือยัง ? <a class="text-primary cursor-pointer" id="back-to-signup-from-signin"> ลงทะเบียน </a> </div> <hr class="tsn-hr-text" data-content="หรือ" /> <a href="https://techsauce.co/auth/redirect/google" class="btn btn-primary-reverse btn-block shadow tsn-login-button font-size-16" tabindex="-1"> <i class="fab fa-google fa-fw"></i> เข้าสู่ระบบด้วย Google </a> </div> <div class="tab-pane fade" id="signup-custom-content"> <form class="tsn-login-form" id="tsn-form" method="POST" action="https://techsauce.co/register"> <input type="hidden" name="_token" value="RCbmABoUyCOBdlmHYkoQZrwUlYRUOk0qg1ZSPBqb"> <div class="form-group"> <input id="ts_signup_email" type="email" class="form-control " placeholder="อีเมล" name="ts_signup_email" value="" required tabindex="1" autocomplete="off" data-toggle="tooltip" data-placement="top" title="โปรดพิมพ์อีเมลของคุณ ยกตัวอย่างเช่น example@gmail.com" /> </div> <div class="form-group"> <input id="ts_signup_password" type="password" class="form-control " placeholder="รหัสผ่าน" name="ts_signup_password" required tabindex="2" data-toggle="tooltip" data-placement="top" title="รหัสผ่านต้องมีความยาวตั้งแต่ 8 ตัวอักษรขึ้นไป" value="" /> </div> <div class="form-group"> <input id="ts_signup_re_password" type="password" class="form-control " placeholder="ยืนยันรหัสผ่าน" name="ts_signup_re_password" tabindex="3" data-toggle="tooltip" data-placement="top" title="ยืนยันรหัสผ่านต้องตรงกับรหัสผ่าน" value="" /> </div> <div class="form-group"> <input id="ts_signup_first_name" type="text" class="form-control " placeholder="ชื่อ" name="ts_signup_first_name" tabindex="4" autocomplete="off" data-toggle="tooltip" data-placement="top" title="โปรดพิมพ์ชื่อของคุณ" value="" /> </div> <div class="form-group"> <input id="ts_signup_last_name" type="text" class="form-control " placeholder="นามสกุล" name="ts_signup_last_name" tabindex="5" autocomplete="off" data-toggle="tooltip" data-placement="top" title="โปรดพิมพ์นามสกุลของคุณ" value="" /> </div> <button type="submit" class="btn btn-primary btn-block font-size-16" tabindex="-1"> ลงทะเบียน </button> </form> <div class="text-center my-3"> มีบัญชีอยู่แล้ว ? <a class="text-primary cursor-pointer" id="back-to-signin-from-signup"> เข้าสู่ระบบ </a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="row meta-row"> <div class="box-meta"><a href="/en/topics/news"><span class="article-category-box-sm ">News</span></a></div><div class="box-meta"><a href="/tags/grabfood"><span class="article-tag-box-sm ">GrabFood</span></a></div><div class="box-meta"><a href="/tags/grabkitchen"><span class="article-tag-box-sm ">GrabKitchen</span></a></div><div class="box-meta"><a href="/tags/food-delivery"><span class="article-tag-box-sm ">food-delivery</span></a></div> </div> <div class="comment-section" id="comment-section"> <div class="cm-mobile-section hide"> <div class="cm-container"> <div class="cm-mobile-content"></div> </div> </div> <section class="no-comment" id="no-comment"> No comment </section> </div> <script type="text/javascript" src="https://techsauce.co/vendor/froala_editor_4.0.9/js/froala_editor.pkgd.min.js"></script> <script> let currentCommentId = null; let currentCommentDetail = null; const allComments = [] const defaultFroalaConfig = { key: 'YNB3fA2B8B7A5B5D3A-9vfgmufC-13joE4obrA1C7A6F6E1D4G3E1A9B5==', quickInsertEnabled: false, pastePlain: true, toolbarSticky: true, scrollableContainer: 'body', toolbarButtons: { 'moreText': { 'buttons': ['bold', 'underline', 'italic'] }, 'moreRich': { 'buttons': ['quote', 'insertLink'] }, }, fontFamily: { 'Sukhumvit Set': 'Font 1', }, fontSizeDefaultSelection: '16', fontFamilySelection: false, placeholderText: "Add a comment", imageInsert: false, imagePaste: false, imageUpload: false, }; let replyEditor; let editEditor; const editor = new FroalaEditor( '#my-comment-input', { ...defaultFroalaConfig, events: { 'contentChanged': function() { const currentValue = (this?.html?.get() || "").replaceAll( `<p data-f-id="pbf" style="text-align: center; font-size: 14px; margin-top: 30px; opacity: 0.65; font-family: sans-serif;">Powered by <a href="https://www.froala.com/wysiwyg-editor?pb=1" title="Froala Editor">Froala Editor</a></p>`, ""); if (currentValue) { $("#my-comment-button").attr('disabled', false); } else { $("#my-comment-button").attr('disabled', true); } } } } ); const makeCommentContent = (commentValue, commentId = null, isReply = false) => { const profileImg = "https://techsauce.co/ts-profile.png"; const profileUserName = ""; const time = "just now" const isAuth = Boolean(""); const element = `<div class="comment-main just-added ${isReply ? 'just-added-reply' : ''}" id="${commentId}"> <img class="cm-profile" src="${profileImg}" /> ${isReply ? `<span class="cm-hide-line"></span> <span class="cm-h-line"></span> ` : ''} <span class="cm-line"></span> <div class="cm-content"> <div class="cm-header"> <div class="cm-head-inside"> <b class="cm-display-name">${profileUserName}</b> <div class="cm-time-wrapper"> <span class="cm-time">${time}</span> </div> ${isAuth ? ` <div class="cm-dropdown dropdown dropleft"> <span class="cm-dropdown-button" id="cm-dropdown-button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-ellipsis-v" aria-hidden="true"></i> </span> <div class="dropdown-menu" aria-labelledby="cm-dropdown-button"> <span class="dropdown-item" onclick="onEditComment('${commentId}')"> <i class="fa fa-pencil"></i> Edit </span> <span class="dropdown-item" onclick="onDeleteComment('${commentId}')" > <i class="fa fa-trash"></i> Delete </span> </div> </div>` :"" } </div> </div> <div class="cm-detail"> ${commentValue} </div> ${isAuth ? `<div class="cm-button-group"> <div class="cm-first"> <span class="cm-like" onclick="onLike('${commentId}')" data-like="" data-likecount="0"> <i class="fa fa-heart"></i> </span> <span onclick="onReply('${commentId}')"> Reply </span> </div> </div>`: ""} </div> </div> </div>` return element; } const onEditComment = (commentId) => { if (currentCommentId) { onCancelEdit(); onCancelReply(); } if (commentId !== currentCommentId) { currentCommentId = commentId; currentCommentDetail = $(`#${commentId} > .cm-content > .cm-detail:first`).html(); if (window.innerWidth <= 768) { $(`.cm-mobile-section .cm-container .cm-mobile-content`).html( `<section id="my-edit-section" class="my-edit-section"> <div class="cm-mobile-title">Edit Comment</div> <textarea id="my-edit-input"></textarea> <div class="button-group"> <button onclick="onCancelEdit()" class="button-no-bg"> Cancel </button> <button id="my-edit-button" class="button" onclick="onEditSubmit()"> Save </button> </div> </section>` ); $(`.cm-mobile-section`).removeClass('hide'); $(`.cm-mobile-section`).addClass('show'); } else { $(`#${commentId} > .cm-content > .cm-detail:first`).html( `<section id="my-edit-section" class="my-edit-section"> <textarea id="my-edit-input"></textarea> <div class="button-group"> <button onclick="onCancelEdit()" class="button-no-bg"> Cancel </button> <button id="my-edit-button" class="button" onclick="onEditSubmit()"> Save </button> </div> </section>` ); } editEditor = new FroalaEditor( '#my-edit-input', { ...defaultFroalaConfig, events: { 'contentChanged': function() { const currentValue = (this?.html?.get() || "").replaceAll( `<p data-f-id="pbf" style="text-align: center; font-size: 14px; margin-top: 30px; opacity: 0.65; font-family: sans-serif;">Powered by <a href="https://www.froala.com/wysiwyg-editor?pb=1" title="Froala Editor">Froala Editor</a></p>`, ""); if (currentValue) { $("#my-edit-button").attr('disabled', false); } else { $("#my-edit-button").attr('disabled', true); } } } }, function() { editEditor.html.set(currentCommentDetail) }, ); $(`#my-edit-section`)[0].scrollIntoView({ behavior: "smooth", block: "center" }); } } const onCancelEdit = () => { if (currentCommentId && currentCommentDetail) { $(`#${currentCommentId} .cm-detail`).html(currentCommentDetail); } currentCommentId = null; currentCommentDetail = null; $('.my-edit-section').remove(); clearMobileContent(); } const clearMobileContent = () => { if (window.innerWidth <= 768) { $(`.cm-mobile-section`).removeClass('show'); $(`.cm-mobile-section`).addClass('hide'); $(`.cm-mobile-section .cm-container .cm-mobile-content`).html('') } } const onEditSubmit = () => { const editButton = $('#my-edit-button'); const commentValue = editEditor.html.get(); if (commentValue) { const _token = $('meta[name="csrf-token"]').attr('content'); const articleId = 'b513286b-cdd0-462a-8e65-1ed16ac343ca'; editEditor.edit.off(); editButton.attr('disabled', true) setTimeout(() => { $.post(`/comment/edit/${currentCommentId}`, { _token, comment: commentValue, }).done((response) => { const { commentId, } = response; $(`#${commentId} > .cm-content > .cm-detail`).html(commentValue); const timeEditedElement = $( `#${commentId} > .cm-content .cm-time-wrapper > .cm-edited`); const now = "Edited just now"; const fullNow = "Edited 18 February 2025 12:30"; if (timeEditedElement.length) { timeEditedElement.html(now); timeEditedElement.attr('data-tooltip', fullNow); $(`#${commentId} > .cm-content .cm-time-wrapper > .cm-edited`).remove(); $(`#${commentId} > .cm-content .cm-time-wrapper`).append( '<span class="cm-time-divider">|</span>'); $(`#${commentId} > .cm-content .cm-time-wrapper`).append( timeEditedElement) } else { $( `#${commentId} > .cm-content .cm-time-wrapper`).append( `<span class="cm-time-divider">|</span><div class="cm-edited" data-tooltip="${fullNow}">${now}</div>` ) } currentCommentId = null; currentCommentDetail = null; clearMobileContent(); }).fail((error) => { const { responseJSON } = error; onErrorComment(responseJSON?.message) }).always(() => { setTimeout(() => { editEditor.edit.on(); }, 500) editButton.attr('disabled', false) }); }, 100); } } const makeReplySection = (isMobile = false) => { const profileImg = "https://techsauce.co/ts-profile.png"; const profileUserName = ""; const element = `<section class="my-reply-section" id="my-reply-section" > ${isMobile ? ` <div class="cm-mobile-title">Reply Comment</div>` : ` <span class="cm-hide-line"></span> <span class="cm-h-line"></span> <img class="cm-profile" src="${profileImg}" >`} <div style="row-gap: 1rem" > <textarea id="my-reply-input" > </textarea> <div class="button-group" > <button onclick="onCancelReply()" class="button-no-bg" > Cancel </button> <button id="my-reply-button" class="button" onclick="onReplySubmit()" disabled > Reply </button> </div> </div> </section>`; return element; } const onCancelReply = () => { currentCommentId = null; $('.my-reply-section').remove(); clearMobileContent(); } const onReply = (commentId, forceClear = false) => { if (currentCommentDetail) { onCancelEdit(); } if (commentId !== currentCommentId || forceClear) { currentCommentId = commentId; if (window.innerWidth <= 768) { $(`.cm-mobile-section .cm-container .cm-mobile-content`).html(`${makeReplySection(true)}`); $(`.cm-mobile-section`).removeClass('hide'); $(`.cm-mobile-section`).addClass('show'); } else { $('.my-reply-section').remove(); const targetComment = $(`#${commentId} > div`); targetComment.append(makeReplySection()); } replyEditor = new FroalaEditor( '#my-reply-input', { ...defaultFroalaConfig, events: { 'contentChanged': function() { const currentValue = (this?.html?.get() || "").replaceAll( `<p data-f-id="pbf" style="text-align: center; font-size: 14px; margin-top: 30px; opacity: 0.65; font-family: sans-serif;">Powered by <a href="https://www.froala.com/wysiwyg-editor?pb=1" title="Froala Editor">Froala Editor</a></p>`, ""); if (currentValue) { $("#my-reply-button").attr('disabled', false); } else { $("#my-reply-button").attr('disabled', true); } } } }, function() { replyEditor.html.set('') }, ); $(`#my-reply-section`)[0].scrollIntoView({ behavior: "smooth", block: "center" }); } } const onReplySubmit = () => { const replyButton = $('#my-reply-button'); const commentValue = replyEditor.html.get(); if (commentValue) { const _token = $('meta[name="csrf-token"]').attr('content'); const articleId = 'b513286b-cdd0-462a-8e65-1ed16ac343ca'; replyEditor.edit.off(); replyButton.attr('disabled', true) setTimeout(() => { $.post('/comment/add', { _token, comment: commentValue, article_id: articleId, parent_id: currentCommentId, }).done((response) => { const { commentId, parentId } = response; const newComment = makeCommentContent(commentValue, commentId, true) $(`#${parentId} > .cm-content`).append(newComment); $(".fr-element.fr-view").html(''); onCancelReply(); }).fail((error) => { const { responseJSON } = error; onErrorComment(responseJSON?.message) if (responseJSON?.message === "Can't reply this comment because this comment is deleted") { $(`#${responseJSON?.deletedId}`).remove(); } }).always(() => { setTimeout(() => { replyEditor.edit.on(); }, 500) replyButton.attr('disabled', false) }); }, 100); } } $('#my-comment-button').click(() => { const commentButton = $('#my-comment-button'); // const commentValue = commentInput.val(); const commentValue = editor.html.get(); if (commentValue) { const _token = $('meta[name="csrf-token"]').attr('content'); const articleId = 'b513286b-cdd0-462a-8e65-1ed16ac343ca'; editor.edit.off(); commentButton.attr('disabled', true) setTimeout(() => { $.post('/comment/add', { _token, comment: commentValue, article_id: articleId, }).done((response) => { const { commentId } = response; const newComment = makeCommentContent(commentValue, commentId) const noContentElement = $('#no-comment'); if (!noContentElement.length) { $('#list-comment-section').prepend(newComment); } else { noContentElement.remove(); const wrappedComment = `<section class="list-comment-section" id="list-comment-section">${newComment}</section>`; $('#comment-section').append(wrappedComment); } $(".fr-element.fr-view").html(""); }).fail((error) => { const { responseJSON } = error; onErrorComment(responseJSON?.message) commentButton.attr('disabled', false) }).always(() => { setTimeout(() => { editor.edit.on(); }, 500) }); }, 100); } }) const onDeleteComment = (commentId) => { Swal.fire({ title: "Are you sure ?", html: "You need delete this comment", type: 'warning', showCancelButton: true, confirmButtonColor: '#d33', cancelButtonColor: '#999', confirmButtonText: "Delete", cancelButtonText: "Cancel", }).then((result) => { if (result.value) { const _token = $('meta[name="csrf-token"]').attr('content'); setTimeout(() => { $.post(`/comment/delete/${commentId}`, { _token, }).done((response) => { $(`#${commentId}`).remove(); const exist = $(`#list-comment-section`); if (!(exist.html() || '').trim()) { exist.remove(); $(`#comment-section`).append(` <section class="no-comment" id="no-comment"> No comment </section>`) } }).fail((error) => { const { responseJSON } = error; onErrorComment(responseJSON?.message) }).always(() => { currentCommentId = null; currentCommentDetail = null; }); }, 100); } }) } const onErrorComment = (message) => { Swal.fire({ title: message, type: 'error', showCancelButton: true, showConfirmButton: false, cancelButtonColor: "var(--cmPrimaryColor)", cancelButtonText: "Close", }) } const generateCommentContentByLoadMore = (comment, parentId = null) => { const profileImg = comment.user?.image ?? "https://techsauce.co/ts-profile.png" const profileUserName = comment.user?.display_name; const isAuth = Boolean(""); const isMine = "" === comment.user_id; const liked = (comment.likes || []).some(like => like.user_id === ""); const likeCount = (comment.likes || []).length; const element = ` <div class="comment-main just-added" id="${comment.id}"> <img class="cm-profile" src="${profileImg}"/> ${parentId ? ` <span class="cm-hide-line"></span> <span class="cm-h-line"></span>` : ''} <span class="cm-line"></span> <div class="cm-content"> <div class="cm-header"> <div class="cm-head-inside"> <b class="cm-display-name">${profileUserName}</b> <div class="cm-time-wrapper"> <span class="cm-time" data-tooltip="${comment.display_full_time}">${comment.display_time}</span> ${comment.created_at != comment.updated_at ? `<span class="cm-time-divider">|</span> <div class="cm-edited" data-tooltip="${comment.display_full_edited}"> ${comment.display_edited || ''} </div>` : ''} </div> ${isAuth && isMine ? `<div class="cm-dropdown dropdown dropleft"> <span class="cm-dropdown-button" id="cm-dropdown-button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-ellipsis-v" aria-hidden="true"></i> </span> <div class="dropdown-menu" aria-labelledby="cm-dropdown-button"> <span class="dropdown-item" onclick="onEditComment('${comment.id}')"> <i class="fa fa-pencil"></i> Edit </span> <span class="dropdown-item" onclick="onDeleteComment('${comment.id}')" > <i class="fa fa-trash"></i> Delete </span> </div> </div>` : ""} </div> </div> <div class="cm-detail"> ${comment.comment} </div> ${isAuth ? `<div class="cm-button-group"> <div class="cm-first"> <span class="cm-like ${liked ? 'liked' : ''}" onclick="onLike('${comment.id}')" data-like="${toCommentShortNumber(likeCount)}" data-likecount="${likeCount || ''}"> <i class="fa fa-heart"></i> </span> <span onclick="onReply('${comment.id}')"> Reply </span> </div> </div>`: ""} ${!parentId && comment.replies?.length > 0 ? `<div class="cm-replies-wrapper"> <span class="cm-replies" onclick='loadMoreLocalReplies(${JSON.stringify(comment.replies)}, "${comment.id}")'> View more reply (${comment.replies?.length || 0}) </span> <span style="display: none;" class="cm-hide-replies" onclick="onHideReply('${comment.id}')"> Hide reply </span> </div>` : '' } </div> </div> </div>`; return element; } const makeContentByLoadMore = (comments, parentId = null) => { (comments || []).forEach(comment => { if (parentId) { const existReplySection = $( `#comment-section #${parentId} .cm-content:first > .my-reply-section`); const existCommentMain = $( `#comment-section #${parentId} .cm-content:first > .comment-main`); $(`#comment-section #${parentId} .cm-content:first`).append( generateCommentContentByLoadMore(comment, comment.parent_id || null) ) if (existCommentMain.length) { $(`#comment-section #${parentId} .cm-content:first`).append( existCommentMain ); } if (existReplySection.length) { $(`#comment-section #${parentId} .cm-content:first`).append( existReplySection ); } } else { $('#comment-section .list-comment-section:first').append( generateCommentContentByLoadMore(comment, comment.parent_id || null) ) } // for recursive if (comment.replies?.length > 0 && parentId) { makeContentByLoadMore(comment.replies || [], comment.id) } }) } $(function() { let currentCommentQueryDate = ""; let latestId = ""; $(".cm-see-more").click(function() { $(".cm-see-more").attr('disabled', true); $.get( `/comment/fetch/b513286b-cdd0-462a-8e65-1ed16ac343ca?date=${currentCommentQueryDate}&latestId=${latestId}`, ).done( response => { const { comments, hasMore } = response; makeContentByLoadMore(comments) if (!hasMore) { $(".cm-last-section").remove(); } else { latestId = comments[comments.length - 1].id; currentCommentQueryDate = comments[comments.length - 1] .created_at; } }).fail(error => { const { responseJSON } = error; console.log(responseJSON) }).always(() => { $(".cm-see-more").attr('disabled', true) }); }); }); const loadMoreLocalReplies = (comments, commentId) => { makeContentByLoadMore(comments, commentId); $(`#${commentId} .cm-replies-wrapper .cm-replies`).hide(); $(`#${commentId} .cm-replies-wrapper .cm-hide-replies`).show(); } const loadMoreReplies = (commentId) => { const repliesButton = $(`#${commentId} .cm-replies`) if (!repliesButton.attr('disabled')) { repliesButton.attr('disabled', true); $.get( `/comment/fetch/b513286b-cdd0-462a-8e65-1ed16ac343ca/${commentId}`, ).done( response => { const { comments, hasMore } = response; $(`#${commentId} .cm-replies-wrapper .cm-replies`).hide(); $(`#${commentId} .cm-replies-wrapper .cm-hide-replies`).show(); $(`#comment-section #${commentId} .cm-content:first .list-comment-section:first`) .remove() makeContentByLoadMore(comments, commentId) }).fail(error => { const { responseJSON } = error; console.log(responseJSON) repliesButton.attr('disabled', false) }); } } const toCommentShortNumber = (number, precision = 1) => { const _number = parseInt(number) || 0;; let numberFormat = _number; if (_number === 0) { numberFormat = ""; } else if (_number < 1000) { numberFormat = _number; } else if (_number < 10000) { numberFormat = Number(_number / 1000).toFixed(precision) + "K"; } else if (_number < 1000000) { numberFormat = Number(_number / 1000) + "K"; } else if (_number < 1000000000) { numberFormat = Number(_number / 1000000).toFixed(precision) + "M"; } else { numberFormat = numberFormat(_number / 1000000000).toFixed(precision) + "B"; } return numberFormat.toString().replace(".0", ""); } const onLike = (commentId) => { const likeElement = $(`#${commentId} .cm-like:first`); const _token = $('meta[name="csrf-token"]').attr('content'); if (likeElement.hasClass('liked')) { likeElement.attr('disabled', true) $.post('/comment/unlike', { _token, commentId: commentId }).done((response) => { const { commentId } = response; likeElement.removeClass('liked'); const updateLikeCount = parseInt(likeElement.attr('data-likecount') || 0) - 1; likeElement.attr('data-like', toCommentShortNumber(updateLikeCount)); likeElement.attr('data-likecount', updateLikeCount); }).fail((error) => { const { responseJSON } = error; onErrorComment(responseJSON?.message) }).always(() => { likeElement.attr('disabled', false) }); } else { likeElement.attr('disabled', true) $.post('/comment/like', { _token, commentId: commentId }).done((response) => { const { commentId } = response; likeElement.addClass('liked'); const updateLikeCount = parseInt(likeElement.attr('data-likecount') || 0) + 1; likeElement.attr('data-like', toCommentShortNumber(updateLikeCount)); likeElement.attr('data-likecount', updateLikeCount); }).fail((error) => { const { responseJSON } = error; onErrorComment(responseJSON?.message) }).always(() => { likeElement.attr('disabled', false) }); } } const onHideReply = (commentId) => { $(`#${commentId} .comment-main:not(.just-added-reply)`).remove(); $(`#${commentId} .cm-replies-wrapper .cm-replies`).show(); $(`#${commentId} .cm-replies-wrapper .cm-hide-replies`).hide(); } </script> <!-- * Insert Google Adsense under content * @author WEE --> <div class="ads-banner my-5"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- End of Article --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3047804512925738" data-ad-slot="3481537409" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="text-center view-side-banner-m mt-5"> </div> <div class="row mt-5"> <div class="col-md-12"> <h1 class="ts-text">RELATED ARTICLE</h1> </div> <div class="col-md-12 related-article-box"> <div class="row article-md-row"> <div class="col-md-6"><a href="https://techsauce.co/en/tech-and-biz/uk-ai-week-bangkok-2025-deep-dive-future-of-ai"><img class="img-fluid mt-1 article-box-img" alt="Responsive image" src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2025/2/1200_800_1738838719_UK_AI_WEEK_2025_Bangkok_Article_1200x800-02.jpg"/></a></div> <div class="col-md-6"> <h2 class="article-normal-box-title"><a class="article-title" href="https://techsauce.co/en/tech-and-biz/uk-ai-week-bangkok-2025-deep-dive-future-of-ai">UK AI Week in Bangkok 2025: A Deep Dive into the Future of AI</a></h2> <p class="article-normal-box-content">The UK AI Week in Bangkok, held in January 2025, transcended a mere technological showcase; it became a powerful symbol of international collaboration in navigating the transformat...</p> <p class="blog-post-meta article-normal-box-meta article-meta-box"> February 6, 2025<span class="blog-post-meta-by"> | By </span><a class="ts-text" href="https://techsauce.co/authors/techsauce-team">Techsauce Team</a> </p> <div> <span> <img width="14px" src="/images/saucy@3x.png" /> </span> <span class="like-num-sm">0</span> </div> <div class="row meta-row"> <div class="box-meta"><a href="/en/topics/tech-and-biz"><span class="article-category-box-sm ">Tech & Biz</span></a></div><div class="box-meta"><a href="/en/topics/news"><span class="article-category-box-sm ">News</span></a></div><div class="box-meta"><a href="/tags/#uk"><span class="article-tag-box-sm ">#UK</span></a></div><div class="box-meta"><a href="/tags/#ai"><span class="article-tag-box-sm ">#AI</span></a></div><div class="box-meta"><a href="/tags/#tech-conference"><span class="article-tag-box-sm ">#Tech-Conference</span></a></div><div class="box-meta"><a href="/tags/#uk-ai-week-in-bangkok"><span class="article-tag-box-sm ">#UK-AI-WEEK-IN-BANGKOK</span></a></div> </div> </div> <div class="col-md-12"> </div> </div> <div class="row article-md-row"> <div class="col-md-6"><a href="https://techsauce.co/en/news/betagro-accquires-eggriculture-expanding-into-singapore-food-market"><img class="img-fluid mt-1 article-box-img" alt="Responsive image" src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2025/1/1200_800_1738133625_Keng_%E0%B8%9B%E0%B8%81%E0%B8%82%E0%B9%88%E0%B8%B2%E0%B8%A71200x630_%2850%29.png"/></a></div> <div class="col-md-6"> <h2 class="article-normal-box-title"><a class="article-title" href="https://techsauce.co/en/news/betagro-accquires-eggriculture-expanding-into-singapore-food-market">‘Betagro’ Expands into the Singapore Food Market, Acquiring Eggriculture for 1.9 Billion Baht Aiming to Drive 'Regional Player' Strategy for Strong and Sustainable Growth"</a></h2> <p class="article-normal-box-content">Betagro Public Company Limited (BTG) presses on with its "Regional Player" strategy by acquiring Eggriculture, the integrated egg producer in Singapore, with an investment value of...</p> <p class="blog-post-meta article-normal-box-meta article-meta-box"> January 29, 2025<span class="blog-post-meta-by"> | By </span><a class="ts-text" href="https://techsauce.co/authors/techsauce-team">Techsauce Team</a> </p> <div> <span> <img width="14px" src="/images/saucy@3x.png" /> </span> <span class="like-num-sm">0</span> </div> <div class="row meta-row"> <div class="box-meta"><a href="/en/topics/news"><span class="article-category-box-sm ">News</span></a></div><div class="box-meta"><a href="/en/deal-digest"><span class="article-category-box-sm ">Deal Digest</span></a></div><div class="box-meta"><a href="/tags/betagro"><span class="article-tag-box-sm ">betagro</span></a></div> </div> </div> <div class="col-md-12"> </div> </div> <div class="row article-md-row"> <div class="col-md-6"><a href="https://techsauce.co/en/news/lhoft-and-adb-announce-the-2nd-edition-of-catapult-se-asia-2025-with-luxembourg-government-support"><img class="img-fluid mt-1 article-box-img" alt="Responsive image" src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2025/1/1200_800_1737964465_Banner_w_Techsauce_Logo_1092__1080.png"/></a></div> <div class="col-md-6"> <h2 class="article-normal-box-title"><a class="article-title" href="https://techsauce.co/en/news/lhoft-and-adb-announce-the-2nd-edition-of-catapult-se-asia-2025-with-luxembourg-government-support">LHoFT and ADB Announce the 2nd Edition of Catapult SE Asia 2025 with Luxembourg Government Support</a></h2> <p class="article-normal-box-content">The Luxembourg House of Financial Technology (LHoFT) announces the second edition of Catapult: Inclusion Southeast Asia, an acceleration program dedicated to advancing financial in...</p> <p class="blog-post-meta article-normal-box-meta article-meta-box"> January 27, 2025<span class="blog-post-meta-by"> | By </span><a class="ts-text" href="https://techsauce.co/authors/techsauce-team">Techsauce Team</a> </p> <div> <span> <img width="14px" src="/images/saucy@3x.png" /> </span> <span class="like-num-sm">0</span> </div> <div class="row meta-row"> <div class="box-meta"><a href="/en/topics/news"><span class="article-category-box-sm ">News</span></a></div><div class="box-meta"><a href="/tags/catapult-se-asia-2025"><span class="article-tag-box-sm ">Catapult SE Asia 2025</span></a></div><div class="box-meta"><a href="/tags/catapult-|-se-asia-2025"><span class="article-tag-box-sm ">Catapult | SE Asia 2025</span></a></div> </div> </div> <div class="col-md-12"> </div> </div> </div> </div> </div> <div class="col-md-2 view-side-banner"> </div> </div> <hr> <div class="footer social-share-footer"> <div> <div class="row"> <div class="icon-bar icon-bar-mobile"> <a class="w-100 facebook" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://techsauce.co/en/news/grabkitchen-in-bkk&display=popup&ref=plugin&src=share_button"> <i class="fa fa-facebook"></i> 156 </a> <a class="w-100 twitter" target="_blank" href="https://twitter.com/intent/tweet?text=Grab+introduces+the+first+GrabKitchen+to+Bangkok++to+empower+GrabFood+ecosystem&url=https://techsauce.co/en/news/grabkitchen-in-bkk"> <i class="fa fa-twitter"></i> </a> <a class="w-100 linkedin" target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://techsauce.co/en/news/grabkitchen-in-bkk&title=Grab+introduces+the+first+GrabKitchen+to+Bangkok++to+empower+GrabFood+ecosystem"> <i class="fa fa-linkedin"></i> </a> </div> </div> </div> </div> <!-- Modal --> <div class="modal fade" id="articleEditConditionsModal" tabindex="-1" role="dialog" aria-labelledby="articleEditConditionsModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel"> แก้ไขบทความ </h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p> เมื่อท่านได้ทำการแก้ไขบทความแล้ว ระบบจะส่งบทความของท่านเข้าสู่กระบวนการตรวจสอบโดย Techsauce Team อีกครั้ง </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">ยกเลิก</button> <button type="button" id="request-edit-article-btn" class="btn btn-ts">ตกลง</button> </div> </div> </div> </div> <div id="fb-root"></div> <script> (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <footer class="page-footer font-small blue pt-4"> <div class="container-fluid text-center text-md-left"> <div class="row"> <div class="col-md-3 mt-md-0 mt-3"> <img class="logo-img mb-3" src="https://techsauce.co/images/techsauce.png" /> <ul class="list-unstyled"> <li><a href="">E-mail : <span class="__cf_email__" data-cfemail="81e2eeeff5e0e2f5c1f5e4e2e9f2e0f4e2e4afe2ee">[email protected]</span></a></li> <li><a href="">Tel : 02-001-5375</a></li> <li><a href="">Mobile : 06-4658-9500</a></li> </ul> </div> <hr class="clearfix w-100 d-md-none pb-3"> <div class="col-md-3 mb-md-0 mb-3"> <h5 class="ts-text">Techsauce media</h5> <ul class="list-unstyled"> <li> <a href="https://service.techsauce.co/" target="_blank"> About Techsauce </a> </li> <li> <a href="https://service.techsauce.co/" target="_blank">Techsauce Services</a> </li> <li> <a href="https://techsauce.co/privacy-policy">Privacy Policy</a> </li> <li> <a href="https://techsauce.co/become-tech-saucier" class="ts-text" style="font-weight: bold;"> ส่งบทความ </a> </li> </ul> </div> <div class="col-md-3 mb-md-0 mb-3"> <h5 class="ts-text">Trending Tags</h5> <ul class="list-unstyled"> <li> <a href="https://techsauce.co/tags/corporate-innovation">Corporate Innovation</a> </li> <li> <a href="https://techsauce.co/tags/digital-transformation">Digital Transformation</a> </li> <li> <a href="https://techsauce.co/tags/e-commerce">E-Commerce</a> </li> <li> <a href="https://techsauce.co/tags/startup">Startup</a> </li> <li> <a href="https://techsauce.co/tags/technology">Technology</a> </li> </ul> </div> <div class="col-md-3 mb-md-0 mb-3"> <h5 class="ts-text">Techsauce global summit</h5> <ul class="list-unstyled"> <li> <a href="https://techsauce.co/news/techsauce-global-summit-2019-summary">2019</a> </li> <li> <a href="https://summit.techsauce.co">2020</a> </li> </ul> </div> </div> </div> <div class="footer-copyright text-center py-3">© Copyright 2025 : <a href="#"> Techsauce All rights reserved.</a> </div> </footer> </div> <div class="modal fade" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content" style="background-color: transparent;border: none;"> <div class="modal-body"> <form method="get" action="https://techsauce.co/articles"> <div class="form-group" style="margin-top: 200px"> <input type="text" class="form-control" name="search" placeholder="Search" style="font-size: 16px;"> </div> </form> </div> </div> </div> </div> <div class="modal fade" tabindex="-1" role="dialog" id="popup-banner" aria-label="modal popup banner"> <div class="modal-dialog modal-dialog-centered modal-lg justify-content-center"> <div class="modal-content popup-banner-content shadow-sm" style="width: auto;" id="popup-banner-content"> <a id="popup-banner-link" target="_blank" class="popup-techsauce-all_time-1" href="https://www.zipeventapp.com/event/ticketing/TSGS2025" data-sp-content="popup banner" data-sp-location="popup banner" aria-label="visit popup banner"> <img id="popup-banner-image" src="https://storage.googleapis.com/techsauce-prod/ugc/uploads/2025/2/1739267012_resizedTSGS.png" style="max-width: 100%; width: auto; max-height: 80vh;" data-sp-content="popup banner" data-sp-location="popup banner" alt="popup banner" /> </a> <button class="close-banner p-1 pl-3 pr-3" data-dismiss="modal" aria-label="close popup banner"> <span aria-hidden="true">×</span> </button> </div> </div> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type="text/javascript"> $(document).ready(() => { const isPreviewDraft = () => { return (false && null) } const isDateCanShow = (start, end) => { const currentDate = new Date(); if (currentDate >= start && currentDate < end) return true; return false; } const initializePopupStore = () => { const store = { techsauce: [], talentsauce: [], created_at: new Date(), }; localStorage.setItem('popupStore', JSON.stringify(store)); } const getStore = () => { const findStore = localStorage.getItem('popupStore'); if (!findStore) initializePopupStore(); else { const store = JSON.parse(findStore); const currentDate = new Date(); if (new Date(store.created_at).getDate() !== currentDate.getDate()) { initializePopupStore(); } } return JSON.parse(localStorage.getItem('popupStore')); } const savePopupInStore = (popup) => { let store = getStore(); let popupList = store[popup.display_type] || [] const popupIndex = popupList?.find(item => item.id === popup.id); if (popupIndex > -1) { if (popupList[popupIndex].image === popup.image) { popupList[popupIndex] = { id: popup.id, image: popup.image, } } } else { popupList.push({ id: popup.id, image: popup.image, }) } store[popup.display_type] = popupList; localStorage.setItem('popupStore', JSON.stringify(store)); } const hasPopupInStore = (popup) => { let store = getStore(); if (store[popup.display_type]?.find(item => item.id === popup.id && item.image === popup .image)) { return true; } savePopupInStore(popup); return false; } const generatePopupBody = (popup) => { const popupBody = $('#popup-banner-content'); let element = ''; let imageElement = `<img id="popup-banner-image" src="${popup.image}" style="max-width: 100%; width: auto; max-height: 80vh;" />`; if (popup.link) { let linkElement = `<a id="popup-banner-link" target="_blank" href="${popup.link}" class="popup-${popup.display_type}-${popup.type}-${hasAllTime ? currentPopupIndex : currentPopupIndex + 1}">`; linkElement += imageElement; linkElement += '</a>'; element += linkElement; } else { element += imageElement } element += `<button class="close-banner p-1 pl-3 pr-3" data-dismiss="modal"><span aria-hidden="true">×</span></button>`; popupBody.html(element); } let currentPopupIndex = 0; let popups = []; let hasAllTime = false; if (!isPreviewDraft()) { popups = true ? [{"id":"1dc96496-779f-4cda-bfe3-03acbff1e00b","data_sp_content":null,"link":"https:\/\/www.zipeventapp.com\/event\/ticketing\/TSGS2025","image":"https:\/\/storage.googleapis.com\/techsauce-prod\/ugc\/uploads\/2025\/2\/1739267012_resizedTSGS.png","draft_data_sp_content":null,"draft_link":"https:\/\/www.zipeventapp.com\/event\/ticketing\/TSGS2025","draft_image":"https:\/\/storage.googleapis.com\/techsauce-prod\/ugc\/uploads\/2025\/2\/1739267012_resizedTSGS.png","display_type":"techsauce","type":"all_time","title":"All Time","published_start_at":null,"published_end_at":null,"last_editor":"3ec64869-6f1a-4eae-9a6e-e6f1405c532a","draft_last_editor":"3ec64869-6f1a-4eae-9a6e-e6f1405c532a","created_at":"2025-02-11 16:41:08","updated_at":"2025-02-11 16:44:48"},{"id":"0a809ab9-69b8-4f85-bd74-13f672b657da","data_sp_content":null,"link":"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScutr-SlUc57BwWyeF0pHhetvffKPYP_Q1GzahPCPRLSHAx3g\/viewform","image":"https:\/\/storage.googleapis.com\/techsauce-prod\/ugc\/uploads\/2025\/2\/1739267059_FB_IMG_1739266460135.jpg","draft_data_sp_content":null,"draft_link":"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScutr-SlUc57BwWyeF0pHhetvffKPYP_Q1GzahPCPRLSHAx3g\/viewform","draft_image":"https:\/\/storage.googleapis.com\/techsauce-prod\/ugc\/uploads\/2025\/2\/1739267059_FB_IMG_1739266460135.jpg","display_type":"techsauce","type":"season","title":"SPACE-F_2025","published_start_at":"2025-02-11 16:44:06","published_end_at":"2025-03-13 16:44:08","last_editor":"3ec64869-6f1a-4eae-9a6e-e6f1405c532a","draft_last_editor":"3ec64869-6f1a-4eae-9a6e-e6f1405c532a","created_at":"2025-02-11 16:43:53","updated_at":"2025-02-11 16:45:02"}] : []; if (popups.length > 0 && popups[0].type === 'all_time') hasAllTime = true; } const showPopup = () => { jQuery('#popup-banner').modal('show') } const onLoadPopup = () => { $('#popup-banner-image').on('load', () => { showPopup() }); } const showNextPopup = () => { if (!isPreviewDraft()) { currentPopupIndex++; if (currentPopupIndex < popups.length) { if (popups[currentPopupIndex].type === 'all_time') { if (popups[currentPopupIndex].image) { if (!hasPopupInStore(popups[currentPopupIndex])) { generatePopupBody(popups[currentPopupIndex]); showPopup() } else { showNextPopup() } } } else { if (popups[currentPopupIndex].image) { if (isDateCanShow( new Date(popups[currentPopupIndex].published_start_at), new Date(popups[currentPopupIndex].published_end_at), )) { if (!hasPopupInStore(popups[currentPopupIndex])) { generatePopupBody(popups[currentPopupIndex]); showPopup() } else { showNextPopup() } } } } } } } $('#popup-banner').on('show.bs.modal', function(e) { $('body').addClass('modal-backdrop-custom'); }).on('hidden.bs.modal', function(e) { $('body').removeClass('modal-backdrop-custom'); showNextPopup(); }); if (isPreviewDraft()) { showPopup(); } else { if (!hasPopupInStore(popups[currentPopupIndex])) { showPopup(); } else { showNextPopup(); } } }); </script> <div id="overlay-load" class="overlay"> <img src="https://techsauce.co/logo512.png" style=" margin-top: 300px; margin-left: auto; margin-right: auto; display: block;"> </div> <div class="modal fade" id="register-success-modal" tabindex="-1" role="dialog" aria-labelledby="register-success-modal" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-body py-4 px-2 text-center font-size-16"> <h1> ขอบคุณสำหรับการลงทะเบียน </h1> <p class="mb-0 font-size-16"> สร้างบัญชีของคุณเรียบร้อยแล้ว </p> <p class="mb-0 font-size-16"> มาเริ่มแก้ไขข้อมูลโปรไฟล์ของคุณกันเถอะ </p> </div> <div class="modal-footer justify-content-center"> <button type="button" class="btn btn-outline-secondary font-size-16" data-dismiss="modal" style="min-width: 130px; ">อ่านบทความต่อไป</button> <a href="https://techsauce.co/authors/edit" class="btn btn-primary font-size-16" style="min-width: 130pxl; "> <i class="fas fa-pencil-alt mr-1"></i> แก้ไขโปรไฟล์ </a> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(() => { const shouldShow = false if (shouldShow) { $('#register-success-modal').modal({backdrop: 'static', keyboard: false}); } }); </script> <script> $(window).on("resize", function() { $("body").removeClass('no-scroll') if (window.innerWidth > 576) { $('#mobile-lang').hide(); } else { $('#mobile-lang').show(); } }); $('.search-btn').click(() => { $('#searchModal').modal(); }) $('#mobile-sidebar-btn').click(() => { if ($('#mobile-sidebar').hasClass('show')) { $('#mobile-sidebar').slideUp(); $('#mobile-sidebar-btn > i').removeClass('fa-close') $('#mobile-sidebar-btn > i').addClass('fa-bars') $("body").removeClass('no-scroll') } else { $('#mobile-sidebar').slideDown(); $('#mobile-sidebar-btn > i').removeClass('fa-bars') $('#mobile-sidebar-btn > i').addClass('fa-close') $("body").addClass('no-scroll') } $('#mobile-sidebar').toggleClass('show') }) let previousScroll = 0, headerNavHeight = $('#header-nav').height(); $(window).scroll(function() { let currentScroll = $(this).scrollTop(); if (currentScroll > headerNavHeight) { if (currentScroll > previousScroll) { $('#header-nav').hide(); if (window.innerWidth < 576) { $('#mobile-lang').hide(); } $('#category-nav').addClass('mt-2') } else { $('#header-nav').show(); if (window.innerWidth < 576) { $('#mobile-lang').show(); } $('#category-nav').removeClass('mt-2'); } } else { $('#header-nav').show(); if (window.innerWidth < 576) { $('#mobile-lang').show(); } $('#category-nav').removeClass('mt-2'); } previousScroll = currentScroll; }); $('#category-nav-inside').on('scroll', function() { const _nav = $('#category-nav-inside'); console.log(_nav) if (_nav.scrollLeft() > 0) { if (!$('#category-nav-left').hasClass('d-flex')) { $('#category-nav-left').addClass('d-flex'); } } else { $('#category-nav-left').removeClass('d-flex'); } console.log(_nav.get(0).scrollWidth - _nav.scrollLeft() - _nav.innerWidth(), _nav.get(0).scrollWidth, _nav.scrollLeft(), _nav.innerWidth()) if (_nav.get(0).scrollWidth - _nav.scrollLeft() - _nav.innerWidth() > 20) { if (!$('#category-nav-right').hasClass('d-flex')) { $('#category-nav-right').addClass('d-flex'); } } else { $('#category-nav-right').removeClass('d-flex'); } }) $('#category-nav-left').click(function() { $('#category-nav-inside').animate({ scrollLeft: '-=' + $('#category-nav-inside').outerWidth() + 'px' }) }) $('#category-nav-right').click(function() { $('#category-nav-inside').animate({ scrollLeft: '+=' + $('#category-nav-inside').outerWidth() + 'px' }) }) </script> <script> $(document).ready(function() { $("#jobSlide").on("slide.bs.carousel", function(e) { var $e = $(e.relatedTarget); var idx = $e.index(); var itemsPerSlide = 3; var totalItems = $(".carousel-item").length; if (idx >= totalItems - (itemsPerSlide - 1)) { var it = itemsPerSlide - (totalItems - idx); for (var i = 0; i < it; i++) { // append slides to end if (e.direction == "left") { $(".carousel-item") .eq(i) .appendTo(".carousel-inner"); } else { $(".carousel-item") .eq(0) .appendTo($(this).find(".carousel-inner")); } } } }); }); </script> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script> <script> const isAuth = ''; const csrfToken = $('meta[name="csrf-token"]').attr('content'); const articleId = 'b513286b-cdd0-462a-8e65-1ed16ac343ca'; let liked = ''; const loading = $('#overlay-load'); $('#btn-request-edit-article').click(function() { $('#articleEditConditionsModal').modal(); }); $('#request-edit-article-btn').click(function() { loading.addClass('active'); const formData = new FormData(); formData.append('_token', csrfToken); $.ajax({ url: `/me/article/request/edit/${articleId}`, type: 'post', data: formData, contentType: false, processData: false, success: function(response) { loading.removeClass('active'); Swal.fire({ title: 'Success!', text: 'Thank You.', type: 'success', confirmButtonText: 'Ok' }); setTimeout(function() { window.location.href = `/me/editor/${articleId}`; }, 2000); }, error: function(request, status, error) { loading.removeClass('active'); } }); }); </script> <script src="https://techsauce.co/js/view.js"></script> <script type="text/javascript"> $(document).ready(function() { const isAfterSignin = false; const isAfterSignup = false; const article_id = "b513286b-cdd0-462a-8e65-1ed16ac343ca" const hide_content = "<p><strong>Grab<\/strong>, Southeast Asia’s leading everyday super app, today announced the official opening of Thailand’s first-ever GrabKitchen at Samyan market, located in the heart of the city. GrabKitchen is a cloud kitchen that unites multiple food and beverage brands in one location. By leveraging data from GrabFood, GrabKitchens is set up to bridge the demand and supply gaps in specific areas and increase the variety of food options.<\/p><p><img src=\"https:\/\/storage.googleapis.com\/techsauce-prod\/ugc\/uploads\/2019\/10\/GrabKitchen_(1).JPG\" style=\"width: 720px;\" class=\"fr-fic fr-dib\"><\/p>" const limit_content = "10"; const is_ts = false function showSigninTab(clearForm = true) { $('#signin-custom-tab').addClass('active ts-text'); $('#signup-custom-tab').removeClass('active ts-text'); //content $('#signin-custom-content').removeClass('fade'); $('#signin-custom-content').addClass('active'); $('#signup-custom-content').removeClass('active'); $('#signup-custom-content').addClass('fade'); if (clearForm) { $('#tsn-form input.form-control').val(''); } } function showSignupTab(clearForm = true) { $('#signup-custom-tab').addClass('active'); $('#signin-custom-tab').removeClass('active'); //content $('#signup-custom-content').removeClass('fade'); $('#signup-custom-content').addClass('active'); $('#signin-custom-content').removeClass('active'); $('#signin-custom-content').addClass('fade'); if (clearForm) { $('#tsn-form input.form-control').val(''); } } $('#signin-custom-tab').on('click', function() { showSigninTab(); }); $('#signup-custom-tab').on('click', function() { showSignupTab(); }); $('#back-to-signin-from-signup').on('click', function() { showSigninTab(); }); $('#back-to-signup-from-signin').on('click', function() { showSignupTab(); }); $('#tsn-form').on('submit', function(e) { $('#tsn-form input').attr('readonly', true); $('#tsn-form button, #tsn-form a').attr('disabled', true); }); $('#tsn-form input').on('keyup change', function() { $(this).removeClass('is-invalid'); $(`#${$(this).attr('id')}_error`).text(''); $(`#authen_error`).first().css('display', 'none'); }); if (isAfterSignup) { showSignupTab(false); } if (isAfterSignin || isAfterSignup) { $('html, body').animate({ scrollTop: $("#hide-content-box").offset().top - 130 }, 500); } const ts_read = localStorage.getItem('ts_read') ? JSON.parse(localStorage.getItem('ts_read')) : []; if (!is_ts && ts_read.length >= parseInt(limit_content) && !ts_read.includes(article_id)) { $('#content-detail').html(hide_content) } else { if (!ts_read.includes(article_id) && ts_read.length < parseInt(limit_content)) { ts_read.push(article_id); } localStorage.setItem('ts_read', JSON.stringify(ts_read)) $('#hide-content-backdrop').css('display', 'none') $('#hide-content-box').css('display', 'none') } }); </script> </body> </html>