{"id":1298,"date":"2018-08-02T22:45:00","date_gmt":"2018-08-02T22:45:00","guid":{"rendered":"https:\/\/flex-main.lndo.site\/resources\/ratio"},"modified":"2025-04-17T15:53:26","modified_gmt":"2025-04-17T20:53:26","slug":"ratio","status":"publish","type":"resource","link":"https:\/\/flex.com\/de\/resources\/ratio","title":{"rendered":"Ein automatisierter Barista, der mithilfe k\u00fcnstlicher Intelligenz Getr\u00e4nke serviert"},"content":{"rendered":"<div id=\"overscroll-top\" style=\"background-color: #eaeef4;\"><\/div>\n<div class=\"resource-header block\">\n\t<div class=\"container\">\n\t\t<div class=\"breadcrumb\">\n\t\t\t<a title=\"Homepage\" href=\"\/\">Flex<\/a>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><path d=\"M365.3 256l-22.6 22.6-192 192L128 493.3 82.7 448l22.6-22.6L274.7 256 105.4 86.6 82.7 64 128 18.7l22.6 22.6 192 192L365.3 256z\"\/><\/svg>\n\t\t\t<a title=\"Resources\" href=\"\/resources\">Resources<\/a>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\"><path d=\"M365.3 256l-22.6 22.6-192 192L128 493.3 82.7 448l22.6-22.6L274.7 256 105.4 86.6 82.7 64 128 18.7l22.6 22.6 192 192L365.3 256z\"\/><\/svg>\n\t\t\t<a title=\"An automated barista serving beverages through artificial intelligence\">An automated barista serving beverages through artificial intelligence<\/a>\n\t\t<\/div>\n\t\t<h1>An automated barista serving beverages through artificial intelligence<\/h1>\n\t\t\t\t<div class=\"separator\"><\/div>\n\t\t<div class=\"details\">\n\t\t\t\t\t\t\t\t\t<div class=\"date detail\">\n\t\t\t\tPosted on<br>\n\t\t\t\tAugust 2, 2018\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"categories\">\n\t\t\t\t<div class=\"categories-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cat-tag\">Case Study<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"cat-tag\" data-cat-level=\"3\" data-destination=\"\/industries\/industrial?subcategories=capital-equipment-robotics#resources\" href=\"\/industries\/industrial?subcategories=capital-equipment-robotics#resources\">Capital Equipment &amp; Robotics<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t<\/div>\n<\/div>\n\n\n\n<div class=\"sidebar block normal-sidebar\">\n\t<div class=\"container\">\n\t\t<div class=\"content\">\n\t\t\t\n\n<p>Ratio is an automated barista system that serves a full range of beverages throughout the day, from coffee and nitro tea in the morning to a full cocktail menu at night. Customers use an app and scan a QR code to place their beverage orders.<\/p>\n\n\n\n<p>The app features a memory function that tracks repeat orders, helping customers customize their beverage selections based on their personal preferences. A <a href=\"\/industries\/industrial#capital-equipment-robotics\">metallic white robotic arm powered by artificial intelligence<\/a> then creates the drinks. RATIO is a versatile coffee shop in the morning that converts into a cocktail bar at night serving wine, beer, and hundreds of cocktail variations.<\/p>\n\n\n<div id=\"id_69dfe1a5cb72d\" class=\"media block\">\n\t<div class=\"container media-center \">\n\t\t<div class=\"media\" style=\"left: 0px; min-width: 100%; max-width: 100%;\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"image \">\n\t\t\t\t\t\t\t<img decoding=\"async\" alt=\"ratio robotic barista\" src=\"https:\/\/flex.com\/wp-content\/uploads\/2022\/11\/ratio-0.jpg\" title=\"\">\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t<script>\n\t(function () {\n\t\tlet hasRun_id_69dfe1a5cb72d = false;\n\t\tfunction updateVideoDisplay_id_69dfe1a5cb72d() {\n\t\t\tconst youtubeVideoId = \"\";\n\t\t\tconst bynderID = \"\";\n\t\t\tconst mediaType = \"image\";\n\t\t\tconst mediaVideoElement = document.getElementById('media-video-id_69dfe1a5cb72d');\n\t\t\tconst bodyClass = document.body.className || '';\n\t\t\tconst match = bodyClass.match(\/translatepress-([a-z]{2})(?:_[A-Z]{2})?\/i);\n\t\t\tconst currentLanguage = match ? match[1].toLowerCase() : 'en';\n\t\t\tconst isChineseLang = currentLanguage === 'zh';\n\t\t\tconsole.log('isChineseLang:', isChineseLang);\n\t\t\tconsole.log('Language detected:', currentLanguage);\n\t\t\tconst isValidYouTube = youtubeVideoId && \/^[A-Za-z0-9_-]{11}$\/.test(youtubeVideoId);\n\t\t\t\n\t\t\tif (!mediaVideoElement || mediaType !== \"video\") return;\n\t\t\tmediaVideoElement.innerHTML = ''; \/\/ Clear existing content\n\t\t\t\n\t\t\tlet videoSourceClass = 'fallback-error';\n\t\t\t\n\t\t\tif (isChineseLang) {\n\t\t\t\tif (bynderID) {\n\t\t\t\t\tvideoSourceClass = 'bynder';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (isValidYouTube) {\n\t\t\t\t\tvideoSourceClass = 'youtube';\n\t\t\t\t} else if (bynderID) {\n\t\t\t\t\tvideoSourceClass = 'bynder';\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Apply layout class (used in SCSS)\n\t\t\tmediaVideoElement.className = 'video ' + videoSourceClass;\n\t\t\n\t\t\t\/\/ CASE: Chinese language\n\t\t\tif (isChineseLang) {\n\t\t\t\tif (bynderID) {\n\t\t\t\t\t\/\/ Load Bynder\n\t\t\t\t\tif (!document.getElementById('bynder-widgets-js')) {\n\t\t\t\t\t\tconst script = document.createElement('script');\n\t\t\t\t\t\tscript.src = 'https:\/\/d8ejoa1fys2rk.cloudfront.net\/bynder-embed\/latest\/bynder-embed.js';\n\t\t\t\t\t\tscript.id = 'bynder-widgets-js';\n\t\t\t\t\t\tscript.setAttribute('data-account-url', 'https:\/\/brandcenter.flex.com');\n\t\t\t\t\t\tscript.setAttribute('data-language', 'zh');\n\t\t\t\t\t\tdocument.body.appendChild(script);\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tconst bynderDiv = document.createElement('div');\n\t\t\t\t\tbynderDiv.id = 'bynder-id_69dfe1a5cb72d';\n\t\t\t\t\tbynderDiv.className = 'video-bynder';\n\t\t\t\t\tbynderDiv.setAttribute('data-bynder-widget', 'video-item');\n\t\t\t\t\tbynderDiv.setAttribute('data-media-id', bynderID);\n\t\t\t\t\tmediaVideoElement.appendChild(bynderDiv);\n\t\t\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (typeof BynderEmbed !== 'undefined' && typeof BynderEmbed.load === 'function') {\n\t\t\t\t\t\t\tBynderEmbed.load();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ No Bynder = error (even if YouTube is valid)\n\t\t\t\t\tshowVideoError();\n\t\t\t\t}\n\t\t\n\t\t\t\/\/ CASE: Not Chinese\n\t\t\t} else {\n\t\t\t\tif (isValidYouTube) {\n\t\t\t\t\tconst iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.id = 'youtube-id_69dfe1a5cb72d';\n\t\t\t\t\tiframe.className = 'video-youtube';\n\t\t\t\t\tiframe.src = 'https:\/\/www.youtube.com\/embed\/' + youtubeVideoId + '?rel=0';\n\t\t\t\t\tiframe.frameBorder = '0';\n\t\t\t\t\tiframe.playsInline = true;\n\t\t\t\t\tiframe.allow = 'encrypted-media';\n\t\t\t\t\tiframe.allowFullscreen = true;\n\t\t\t\t\tmediaVideoElement.appendChild(iframe);\n\t\t\t\t} else if (bynderID) {\n\t\t\t\t\t\/\/ Load Bynder (fallback if no YouTube)\n\t\t\t\t\tif (!document.getElementById('bynder-widgets-js')) {\n\t\t\t\t\t\tconst script = document.createElement('script');\n\t\t\t\t\t\tscript.src = 'https:\/\/d8ejoa1fys2rk.cloudfront.net\/bynder-embed\/latest\/bynder-embed.js';\n\t\t\t\t\t\tscript.id = 'bynder-widgets-js';\n\t\t\t\t\t\tscript.setAttribute('data-account-url', 'https:\/\/brandcenter.flex.com');\n\t\t\t\t\t\tscript.setAttribute('data-language', currentLanguage);\n\t\t\t\t\t\tdocument.body.appendChild(script);\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tconst bynderDiv = document.createElement('div');\n\t\t\t\t\tbynderDiv.id = 'bynder-id_69dfe1a5cb72d';\n\t\t\t\t\tbynderDiv.className = 'video-bynder';\n\t\t\t\t\tbynderDiv.setAttribute('data-bynder-widget', 'video-item');\n\t\t\t\t\tbynderDiv.setAttribute('data-media-id', bynderID);\n\t\t\t\t\tmediaVideoElement.appendChild(bynderDiv);\n\t\t\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (typeof BynderEmbed !== 'undefined' && typeof BynderEmbed.load === 'function') {\n\t\t\t\t\t\t\tBynderEmbed.load();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ No valid YouTube or Bynder = error\n\t\t\t\t\tshowVideoError();\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t\tfunction showVideoError() {\n\t\t\t\tconst errorDiv = document.createElement('div');\n\t\t\t\terrorDiv.id = 'video-error-id_69dfe1a5cb72d';\n\t\t\t\terrorDiv.className = 'video-error';\n\t\t\t\terrorDiv.innerHTML = `\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>Video Unavailable<\/h3>\n\t\t\t\t\t\t<p>The content you\u2019re seeking is momentarily unavailable. We appreciate your patience and look forward to sharing it with you soon.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t\tmediaVideoElement.appendChild(errorDiv);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction runVideoInjection() {\n\t\t\tif (hasRun_id_69dfe1a5cb72d) return;\n\t\t\thasRun_id_69dfe1a5cb72d = true;\n\t\t\tupdateVideoDisplay_id_69dfe1a5cb72d();\n\t\t}\n\t\t\n\t\t\/\/ Always run on front-end\n\t\tif (document.readyState === 'loading') {\n\t\t\tdocument.addEventListener('DOMContentLoaded', runVideoInjection);\n\t\t} else {\n\t\t\trunVideoInjection();\n\t\t}\n\t\t\n\t\t\/\/ Also run in editor if available\n\t\tif (typeof wp !== 'undefined' && wp.domReady) {\n\t\t\twp.domReady(runVideoInjection);\n\t\t}\n\t})();\n\t<\/script>\n\t\n\t<script>\n\t\tdocument.addEventListener('DOMContentLoaded', function () {\n\t\t\t\n\t\t\t\/\/ Get the block element by ID\n\t\t\tvar blockElement = document.getElementById(\"id_69dfe1a5cb72d\");\n\t\t\tif (!blockElement) return;\n\t\n\t\t\t\/\/ Reveal the block\n\t\t\t(function ($) {\n\t\t\t\tScrollReveal().reveal(blockElement.querySelector(\".container .media\"), {origin: \"bottom\", distance: \"20px\", opacity: 1, duration: 1000});\n\t\t\t\tScrollReveal().reveal(blockElement.querySelector(\".container .content\"), {origin: \"bottom\", distance: \"20px\", opacity: 1, duration: 1000});\n\t\t\t}(jQuery));\n\t\t});\n\t<\/script>\n<\/div>\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"h-business-objective-nbsp\" style=\"font-weight:600\">Business objective&nbsp;<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.rossdigital.co\/\" rel=\"nofollow noopener\" target=\"_blank\">Ross Digital<\/a> sought a partner to help it bring its vision for a fully-automated barista concept to life. When the project kicked off in June 2017, only a concept and some sketch layouts existed. There were no proper bills of materials, specifications, or detailed documentation. We closely partnered with Ross Digital to <a href=\"https:\/\/flex.com\/solutions-and-services\/design-engineering\">create, develop, and formalize all these items<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"h-solution\" style=\"font-weight:600\">Solution<\/h2>\n\n\n\n<p>We provided a&nbsp;solution, including mechanical design, software logic and IPC coding, PLC, robotic arm programming, safety features positioning, electric circuitry, water and air management, supply chain setup for parts fabrication, full assembly integration, and stress tests.<\/p>\n\n\n\n<p>In addition, throughout the year, our agile engineering responded swiftly to numerous optimization and design changes. In particular, our team needed to learn and respond to new robotic arm programming logic from Epson to KUKA. Finally, we settled on the St\u00e4ubli logic which the current Ratio product now employs.<\/p>\n\n\n\n<p>Our team also needed to apply additional adaptations that we encountered during the project, including managing multiple versions of chuck designs to accommodate eight different types of cocktail glasses; re-designing each sub-mechanical element to accommodate optimization efforts that resulted in layout changes of the product; and supporting on-site final assembly integration at our customer\u2019s site.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"h-result\" style=\"font-weight:600\">Result<\/h2>\n\n\n\n<p>We helped Ross Digital bring their vision of this fully-automated barista solution to life in one calendar year.<\/p>\n\n\n\n<p>The first Ratio shop launched on June 9, 2018 at the K11 Shopping Mall in Shanghai.<\/p>\n\n\n<div id=\"id-69dfe1a5d6033\" class=\"box block content-width light-content de \" style=\"background-color: transparent; background-image: none;\">\n\t<style>\n\t\t#id-69dfe1a5d6033 > .container > .content {\n\t\t\tbackground-color: #005486ff;\n\t\t\tposition: relative;\n\t\t\tpadding-top: 24px;\n\t\t\tpadding-right: 36px;\n\t\t\tpadding-bottom: 24px;\n\t\t\tpadding-left: 36px;\n\t\t\tmargin-left: 0px;\n\t\t\tmargin-right: 72px;\n\t\t}\n\t\t@media (max-width: 1272px) {\n\t\t\t#id-69dfe1a5d6033.box.block.full-width > .container > .content {\n\t\t\t\tpadding-left: 0 !important;\n\t\t\t\tpadding-right: 0 !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 960px) {\n\t\t\t#id-69dfe1a5d6033 > .container > .content {\n\t\t\t\t\/\/padding-top: 12px;\n\t\t\t\tpadding-right: 18px;\n\t\t\t\t\/\/padding-bottom: 12px;\n\t\t\t\tpadding-left: 18px;\n\t\t\t}\n\t\t}\n\t<\/style>\n\t<div class=\"container\">\n\t\t<div class=\"content\">\n\t\t\t\n<div id=\"id_69dfe1a5cfc2e\" class=\"media block\">\n\t<div class=\"container media-right content-center\">\n\t\t<div class=\"media\" style=\"left: 108px; min-width: 350px; max-width: 350px;\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"image none\">\n\t\t\t\t\t\t\t<img decoding=\"async\" alt=\"ratio a robotic barista serves coffee\" src=\"https:\/\/flex.com\/wp-content\/uploads\/2022\/11\/ratio-1-e1671042842580-1200x1052.jpg\" title=\"\">\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"content\" style=\"margin-right: -84px; margin-left: 0px;\">\n\t\t\t\t\n<div id=\"block_5141f25f9cae311d1abc28bf8892e77b\" class=\"quote block no-horizontal-padding light-content\">\n\t<div class=\"container\" style=\"background-color: #005486;\">\n\t\t<div class=\"quote-lines-top\"><\/div>\n\t\t<div class=\"quote-marks-top\" style=\"background-color: #005486;\">\n\t\t\t<svg viewBox=\"0 0 33 27\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"m33 20.8c0-3.9-2.9-6.3-6.4-6.3-1.1 0-1.8.3-2.1.5.1-4.3 3.3-9 8-10.1v-4.9c-6 .6-14.2 5.9-14.2 18.2 0 5.9 3.6 8.8 7.8 8.8 3.9 0 6.9-2.8 6.9-6.2zm-18.3 0c0-3.9-2.9-6.3-6.4-6.3-1.1 0-1.8.3-2.1.5.1-4.3 3.3-9 8-10.1v-4.9c-6 .6-14.2 5.9-14.2 18.2 0 5.9 3.6 8.8 7.8 8.8 3.9 0 6.9-2.8 6.9-6.2z\" fill=\"#fff\"\/><\/svg>\n\t\t<\/div>\n\t\t\n\n<p class=\"has-large-font-size\">Our agile engineering responded swiftly to numerous optimization and design changes including new robotic arm programming logic.<\/p>\n\n\n\n<p class=\"has-large-font-size\">We leveraged our extensive, cross-industry expertise and applied it to a non-traditional electronic customer beyond pure manufacturing to bring value to the project.<\/p>\n\n\n\n<p><strong>\u2014 Project Manager, Flex<\/strong><\/p>\n\n\n\t\t<div class=\"quote-lines-bottom\"><\/div>\n\t\t<div class=\"quote-marks-bottom\" style=\"background-color: #005486;\">\n\t\t\t<svg viewBox=\"0 0 33 27\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"m0 6.2c0 3.9 2.9 6.3 6.4 6.3 1.1 0 1.8-.3 2.1-.5-.1 4.3-3.3 9-8 10.1v4.9c6-.6 14.2-5.9 14.2-18.2 0-5.9-3.6-8.8-7.8-8.8-3.9 0-6.9 2.8-6.9 6.2zm18.3 0c0 3.9 2.9 6.3 6.4 6.3 1.1 0 1.8-.3 2.1-.5-.1 4.3-3.3 9-8 10.1v4.9c6-.6 14.2-5.9 14.2-18.2 0-5.9-3.6-8.8-7.8-8.8-3.9 0-6.9 2.8-6.9 6.2z\" fill=\"#fff\"\/><\/svg>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t<script>\n\t(function () {\n\t\tlet hasRun_id_69dfe1a5cfc2e = false;\n\t\tfunction updateVideoDisplay_id_69dfe1a5cfc2e() {\n\t\t\tconst youtubeVideoId = \"\";\n\t\t\tconst bynderID = \"\";\n\t\t\tconst mediaType = \"image\";\n\t\t\tconst mediaVideoElement = document.getElementById('media-video-id_69dfe1a5cfc2e');\n\t\t\tconst bodyClass = document.body.className || '';\n\t\t\tconst match = bodyClass.match(\/translatepress-([a-z]{2})(?:_[A-Z]{2})?\/i);\n\t\t\tconst currentLanguage = match ? match[1].toLowerCase() : 'en';\n\t\t\tconst isChineseLang = currentLanguage === 'zh';\n\t\t\tconsole.log('isChineseLang:', isChineseLang);\n\t\t\tconsole.log('Language detected:', currentLanguage);\n\t\t\tconst isValidYouTube = youtubeVideoId && \/^[A-Za-z0-9_-]{11}$\/.test(youtubeVideoId);\n\t\t\t\n\t\t\tif (!mediaVideoElement || mediaType !== \"video\") return;\n\t\t\tmediaVideoElement.innerHTML = ''; \/\/ Clear existing content\n\t\t\t\n\t\t\tlet videoSourceClass = 'fallback-error';\n\t\t\t\n\t\t\tif (isChineseLang) {\n\t\t\t\tif (bynderID) {\n\t\t\t\t\tvideoSourceClass = 'bynder';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (isValidYouTube) {\n\t\t\t\t\tvideoSourceClass = 'youtube';\n\t\t\t\t} else if (bynderID) {\n\t\t\t\t\tvideoSourceClass = 'bynder';\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Apply layout class (used in SCSS)\n\t\t\tmediaVideoElement.className = 'video ' + videoSourceClass;\n\t\t\n\t\t\t\/\/ CASE: Chinese language\n\t\t\tif (isChineseLang) {\n\t\t\t\tif (bynderID) {\n\t\t\t\t\t\/\/ Load Bynder\n\t\t\t\t\tif (!document.getElementById('bynder-widgets-js')) {\n\t\t\t\t\t\tconst script = document.createElement('script');\n\t\t\t\t\t\tscript.src = 'https:\/\/d8ejoa1fys2rk.cloudfront.net\/bynder-embed\/latest\/bynder-embed.js';\n\t\t\t\t\t\tscript.id = 'bynder-widgets-js';\n\t\t\t\t\t\tscript.setAttribute('data-account-url', 'https:\/\/brandcenter.flex.com');\n\t\t\t\t\t\tscript.setAttribute('data-language', 'zh');\n\t\t\t\t\t\tdocument.body.appendChild(script);\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tconst bynderDiv = document.createElement('div');\n\t\t\t\t\tbynderDiv.id = 'bynder-id_69dfe1a5cfc2e';\n\t\t\t\t\tbynderDiv.className = 'video-bynder';\n\t\t\t\t\tbynderDiv.setAttribute('data-bynder-widget', 'video-item');\n\t\t\t\t\tbynderDiv.setAttribute('data-media-id', bynderID);\n\t\t\t\t\tmediaVideoElement.appendChild(bynderDiv);\n\t\t\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (typeof BynderEmbed !== 'undefined' && typeof BynderEmbed.load === 'function') {\n\t\t\t\t\t\t\tBynderEmbed.load();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ No Bynder = error (even if YouTube is valid)\n\t\t\t\t\tshowVideoError();\n\t\t\t\t}\n\t\t\n\t\t\t\/\/ CASE: Not Chinese\n\t\t\t} else {\n\t\t\t\tif (isValidYouTube) {\n\t\t\t\t\tconst iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.id = 'youtube-id_69dfe1a5cfc2e';\n\t\t\t\t\tiframe.className = 'video-youtube';\n\t\t\t\t\tiframe.src = 'https:\/\/www.youtube.com\/embed\/' + youtubeVideoId + '?rel=0';\n\t\t\t\t\tiframe.frameBorder = '0';\n\t\t\t\t\tiframe.playsInline = true;\n\t\t\t\t\tiframe.allow = 'encrypted-media';\n\t\t\t\t\tiframe.allowFullscreen = true;\n\t\t\t\t\tmediaVideoElement.appendChild(iframe);\n\t\t\t\t} else if (bynderID) {\n\t\t\t\t\t\/\/ Load Bynder (fallback if no YouTube)\n\t\t\t\t\tif (!document.getElementById('bynder-widgets-js')) {\n\t\t\t\t\t\tconst script = document.createElement('script');\n\t\t\t\t\t\tscript.src = 'https:\/\/d8ejoa1fys2rk.cloudfront.net\/bynder-embed\/latest\/bynder-embed.js';\n\t\t\t\t\t\tscript.id = 'bynder-widgets-js';\n\t\t\t\t\t\tscript.setAttribute('data-account-url', 'https:\/\/brandcenter.flex.com');\n\t\t\t\t\t\tscript.setAttribute('data-language', currentLanguage);\n\t\t\t\t\t\tdocument.body.appendChild(script);\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tconst bynderDiv = document.createElement('div');\n\t\t\t\t\tbynderDiv.id = 'bynder-id_69dfe1a5cfc2e';\n\t\t\t\t\tbynderDiv.className = 'video-bynder';\n\t\t\t\t\tbynderDiv.setAttribute('data-bynder-widget', 'video-item');\n\t\t\t\t\tbynderDiv.setAttribute('data-media-id', bynderID);\n\t\t\t\t\tmediaVideoElement.appendChild(bynderDiv);\n\t\t\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (typeof BynderEmbed !== 'undefined' && typeof BynderEmbed.load === 'function') {\n\t\t\t\t\t\t\tBynderEmbed.load();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ No valid YouTube or Bynder = error\n\t\t\t\t\tshowVideoError();\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t\tfunction showVideoError() {\n\t\t\t\tconst errorDiv = document.createElement('div');\n\t\t\t\terrorDiv.id = 'video-error-id_69dfe1a5cfc2e';\n\t\t\t\terrorDiv.className = 'video-error';\n\t\t\t\terrorDiv.innerHTML = `\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>Video Unavailable<\/h3>\n\t\t\t\t\t\t<p>The content you\u2019re seeking is momentarily unavailable. We appreciate your patience and look forward to sharing it with you soon.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t`;\n\t\t\t\tmediaVideoElement.appendChild(errorDiv);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction runVideoInjection() {\n\t\t\tif (hasRun_id_69dfe1a5cfc2e) return;\n\t\t\thasRun_id_69dfe1a5cfc2e = true;\n\t\t\tupdateVideoDisplay_id_69dfe1a5cfc2e();\n\t\t}\n\t\t\n\t\t\/\/ Always run on front-end\n\t\tif (document.readyState === 'loading') {\n\t\t\tdocument.addEventListener('DOMContentLoaded', runVideoInjection);\n\t\t} else {\n\t\t\trunVideoInjection();\n\t\t}\n\t\t\n\t\t\/\/ Also run in editor if available\n\t\tif (typeof wp !== 'undefined' && wp.domReady) {\n\t\t\twp.domReady(runVideoInjection);\n\t\t}\n\t})();\n\t<\/script>\n\t\n\t<script>\n\t\tdocument.addEventListener('DOMContentLoaded', function () {\n\t\t\t\n\t\t\t\/\/ Get the block element by ID\n\t\t\tvar blockElement = document.getElementById(\"id_69dfe1a5cfc2e\");\n\t\t\tif (!blockElement) return;\n\t\n\t\t\t\/\/ Reveal the block\n\t\t\t(function ($) {\n\t\t\t\tScrollReveal().reveal(blockElement.querySelector(\".container .media\"), {origin: \"bottom\", distance: \"20px\", opacity: 1, duration: 1000});\n\t\t\t\tScrollReveal().reveal(blockElement.querySelector(\".container .content\"), {origin: \"bottom\", distance: \"20px\", opacity: 1, duration: 1000});\n\t\t\t}(jQuery));\n\t\t});\n\t<\/script>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\t\t<\/div>\n\t\t<div class=\"sidebar normal-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"post\">\n\t\t\t\t\t\t\t\t<a title=\"Thermal model BMR316\" class=\"image\" href=\"https:\/\/flex.com\/downloads\/thermal-model-bmr316\" target=\"_self\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" alt=\"Thermal model BMR316\" src=\"https:\/\/flex.com\/wp-content\/uploads\/2026\/04\/TM-BMR316-540x304.png\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"label\">\n\t\t\t\t\t\t\tThermal Model\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<a title=\"Thermal model BMR316\" class=\"title\" href=\"https:\/\/flex.com\/downloads\/thermal-model-bmr316\" target=\"_self\">\n\t\t\t\t\tThermal model BMR316\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"post\">\n\t\t\t\t\t\t\t\t<a title=\"Spare parts logistics:\u00a0Right parts, right place, right time\" class=\"image\" href=\"https:\/\/flex.com\/de\/resources\/spare-parts-logistics\" target=\"_self\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" alt=\"Employees wearing high-visibility vests in an inventory warehouse moving spare parts on a dolly\" src=\"https:\/\/flex.com\/wp-content\/uploads\/2026\/03\/Product-Distribution-Logistics-Center-warehouse-540x304.jpg\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"label\">\n\t\t\t\t\t\t\tSolution Brief\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<a title=\"Spare parts logistics:\u00a0Right parts, right place, right time\" class=\"title\" href=\"https:\/\/flex.com\/de\/resources\/spare-parts-logistics\" target=\"_self\">\n\t\t\t\t\tSpare parts logistics:\u00a0Right parts, right place, right time\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"post\">\n\t\t\t\t\t\t\t\t<a title=\"Powering data centers from grid to chip\" class=\"image\" href=\"https:\/\/flex.com\/downloads\/powering-data-centers-from-grid-to-chip\" target=\"_self\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" alt=\"Powering data centers from grid to chip\" src=\"https:\/\/flex.com\/wp-content\/uploads\/2025\/05\/2026-Power-Brochure-cover-540x304.jpg\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"label\">\n\t\t\t\t\t\t\tBrochure\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<a title=\"Powering data centers from grid to chip\" class=\"title\" href=\"https:\/\/flex.com\/downloads\/powering-data-centers-from-grid-to-chip\" target=\"_self\">\n\t\t\t\t\tPowering data centers from grid to chip\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"post\">\n\t\t\t\t\t\t\t\t<a title=\"Beyond returns: Why reverse logistics is a growth strategy, not a cost center\" class=\"image\" href=\"https:\/\/flex.com\/de\/resources\/beyond-returns-why-reverse-logistics-is-a-growth-strategy-not-a-cost-center\" target=\"_self\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" alt=\"Hallway of a warehouse with boxes stacked on shelves from floor to ceiling\" src=\"https:\/\/flex.com\/wp-content\/uploads\/2026\/03\/Beyond-returns_Featured-Image--540x304.jpg\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"label\">\n\t\t\t\t\t\t\tBlog\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<a title=\"Beyond returns: Why reverse logistics is a growth strategy, not a cost center\" class=\"title\" href=\"https:\/\/flex.com\/de\/resources\/beyond-returns-why-reverse-logistics-is-a-growth-strategy-not-a-cost-center\" target=\"_self\">\n\t\t\t\t\tBeyond returns: Why reverse logistics is a growth strategy, not a cost center\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<div class=\"spacer block\" style=\"height: 96px;\">\n\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":2738,"template":"","categories":[74],"tags":[],"content-type":[8],"class_list":["post-1298","resource","type-resource","status-publish","has-post-thumbnail","hentry","category-capital-equipment-robotics","content-type-case-study"],"acf":[],"_links":{"self":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/resource\/1298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/resource"}],"about":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/types\/resource"}],"author":[{"embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/users\/4"}],"version-history":[{"count":1,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/resource\/1298\/revisions"}],"predecessor-version":[{"id":22633,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/resource\/1298\/revisions\/22633"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/media\/2738"}],"wp:attachment":[{"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/media?parent=1298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/categories?post=1298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/tags?post=1298"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/flex.com\/de\/wp-json\/wp\/v2\/content-type?post=1298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}