{"id":41643,"date":"2026-05-30T12:26:37","date_gmt":"2026-05-30T17:26:37","guid":{"rendered":"https:\/\/flex.com\/?page_id=41643"},"modified":"2026-06-11T11:46:10","modified_gmt":"2026-06-11T16:46:10","slug":"e2open-training-materials","status":"publish","type":"page","link":"https:\/\/flex.com\/zh\/solutions-and-services\/supply-chain\/supplier-information\/e2open-training-materials","title":{"rendered":"e2open \u57f9\u8bad\u6750\u6599"},"content":{"rendered":"<div id=\"id-6a3d1e6d5aafe\" class=\"box block full-width dark-content zh \" style=\"background-color: transparent; background-image: none;\">\n\t<style>\n\t\t#id-6a3d1e6d5aafe > .container > .content {\n\t\t\tbackground-color: transparent;\n\t\t\tposition: relative;\n\t\t\tpadding-top: 48px;\n\t\t\tpadding-right: 0px;\n\t\t\tpadding-bottom: 60px;\n\t\t\tpadding-left: 0px;\n\t\t\tmargin-left: 0px;\n\t\t\tmargin-right: 0px;\n\t\t}\n\t\t@media (max-width: 1272px) {\n\t\t\t#id-6a3d1e6d5aafe.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-6a3d1e6d5aafe > .container > .content {\n\t\t\t\t\/\/padding-top: 24px;\n\t\t\t\tpadding-right: 0px;\n\t\t\t\t\/\/padding-bottom: 30px;\n\t\t\t\tpadding-left: 0px;\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\n<h2 class=\"wp-block-heading has-small-font-size\" id=\"h-learn-how-to-login-setup-your-account-manage-rfx-and-manage-purchase-orders-po-by-watching-the-following-videos-in-one-of-the-six-languages-offered\">Learn how to access e2open, respond to Purchase Orders, create shipments (ASN), and provide forecast and inventory commitments.<\/h2>\n\n\n\n<p>Flex is transitioning from the Flex Supplier Portal (FSP) and Email PO (ePO) to e2open to support supplier collaboration across purchase orders, shipments (ASN), and forecast processes.<\/p>\n\n\n\n<p>The training materials below are designed to help you understand how to work in e2open and complete required transactions after go-live.<\/p>\n\n\n<div id=\"id-6a3d1e6d4ec50\" class=\"box block content-width light-content zh \" style=\"background-color: transparent; background-image: none;\">\n\t<style>\n\t\t#id-6a3d1e6d4ec50 > .container > .content {\n\t\t\tbackground-color: #005486ff;\n\t\t\tposition: relative;\n\t\t\tpadding-top: 48px;\n\t\t\tpadding-right: 60px;\n\t\t\tpadding-bottom: 48px;\n\t\t\tpadding-left: 60px;\n\t\t\tmargin-left: 0px;\n\t\t\tmargin-right: 0px;\n\t\t}\n\t\t@media (max-width: 1272px) {\n\t\t\t#id-6a3d1e6d4ec50.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-6a3d1e6d4ec50 > .container > .content {\n\t\t\t\t\/\/padding-top: 24px;\n\t\t\t\tpadding-right: 30px;\n\t\t\t\t\/\/padding-bottom: 24px;\n\t\t\t\tpadding-left: 30px;\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\n<p><strong>Getting started with e2open<\/strong><\/p>\n\n\n\n<p>Before accessing the training materials, ensure your e2open access is set up:<\/p>\n\n\n\n<p>\u2022&nbsp;Activate your account using the Okta email sent from&nbsp;<a href=\"mailto:noreply@okta.com\">noreply@okta.com<\/a><\/p>\n\n\n\n<p>\u2022&nbsp;If you already have access, log in using your existing credentials<\/p>\n\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<div class=\"spacer block\" style=\"height: 24px;\">\n\t<\/div>\n\n<div class=\"tabs block\">\n\t<div class=\"container\">\n\t\t<div class=\"spacer\"><\/div>\n\t\t<div class=\"tabs-container\">\n\t\t\t<div class=\"tabs\"><\/div>\n\t\t<\/div>\n\t\t<div class=\"content\">\n\t\t\t\n\t\t<div class=\"tab block\" data-slug=\"email\" data-label=\"Email and simplified user interface collaboration\">\n\t\t<div class=\"container\">\n\t\t\t\n<div id=\"id-6a3d1e6d5033d\" class=\"box block full-width dark-content zh \" style=\"background-color: transparent; background-image: none;\">\n\t<style>\n\t\t#id-6a3d1e6d5033d > .container > .content {\n\t\t\tbackground-color: transparent;\n\t\t\tposition: relative;\n\t\t\tpadding-top: 0px;\n\t\t\tpadding-right: 0px;\n\t\t\tpadding-bottom: 48px;\n\t\t\tpadding-left: 0px;\n\t\t\tmargin-left: 0px;\n\t\t\tmargin-right: 0px;\n\t\t}\n\t\t@media (max-width: 1272px) {\n\t\t\t#id-6a3d1e6d5033d.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-6a3d1e6d5033d > .container > .content {\n\t\t\t\t\/\/padding-top: 0px;\n\t\t\t\tpadding-right: 0px;\n\t\t\t\t\/\/padding-bottom: 24px;\n\t\t\t\tpadding-left: 0px;\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\n<p>Learn how to review and respond to Purchase Orders,&nbsp;shipments (ASN) and forecast&nbsp;using email&nbsp;notification&nbsp;with&nbsp;Excel attachment, or the&nbsp;simplified user&nbsp;interface.<\/p>\n\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<div id=\"id-6a3d1e6d546da\" class=\"columns block\">\n\t<style>\n\t\t#id-6a3d1e6d546da .column, #id-6a3d1e6d546da .wp-block-acf-column {\n\t\t\tpadding: 0 12px;\n\t\t}\n\t\t\n\t\t#id-6a3d1e6d546da > .container.show-rules .column+.column, #id-6a3d1e6d546da > .container.show-rules .wp-block-acf-column+.wp-block-acf-column {\n\t\t\tborder-color: rgba(38, 38, 38, 0.2);\n\t\t}\n\t\t\n\t\t#id-6a3d1e6d546da .column, #id-6a3d1e6d546da .wp-block-acf-column {\n\t\t\t.code.block {\n\t\t\t\t.container {\n\t\t\t\t\t.tagembed-widget {\n\t\t\t\t\t\tmax-width: 600px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d546da > .container {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 600px;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d546da > .container > .column, #id-6a3d1e6d546da > .container > .wp-block-acf-column {\n\t\t\t\tpadding: 24px 0 0 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d546da > .container > .column:first-child, #id-6a3d1e6d546da > .container > .wp-block-acf-column:first-child {\n\t\t\t\tpadding: 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d546da > .container.show-rules .column+.column, #id-6a3d1e6d546da > .container.show-rules .wp-block-acf-column+.wp-block-acf-column {\n\t\t\t\tborder-left: none;\n\t\t\t\tborder-top: 1px solid rgba(38, 38, 38, 0.2);\n\t\t\t\tpadding: 30px 0 0 0 !important;\n\t\t\t\tmargin-top: 30px;\n\t\t\t}\n\t\t}\n\t<\/style>\n\t<div class=\"container align-top\">\n\t\t\n<div class=\"column block\">\n\t\n\n<p class=\"has-dark-blue-color has-text-color has-link-color wp-elements-2b56c62c5b40096d5fe0056c3b05b095\"><strong>Long Tail User guide<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/flex.com\/downloads\/supplier-role-long-tail-user-guide\">Supplier role long tail user guide<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/flex.com\/downloads\/e2open-\u4f9b\u5e94\u534f\u4f5c-\u7528\u6237\u6307\u5357-\u9488\u5bf9\u4f9b\u5e94\u5546\u89d2\u8272-\u957f\u5c3e\u5408\u4f5c\u4f19\">E2open \u4f9b\u5e94\u534f\u4f5c\n\u7528\u6237\u6307\u5357\n\u9488\u5bf9\u4f9b\u5e94\u5546\u89d2\u8272\n&#8211; \u957f\u5c3e\u5408\u4f5c\u4f19\u4f34<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-dark-blue-color has-text-color has-link-color wp-elements-6a2e63cd40835b421c757326b32bf189\"><strong><strong>Purchase Order&nbsp;overview<\/strong><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\"><a href=\"https:\/\/flex.com\/downloads\/po-user-guide-overview\">PO user guide overview<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-dark-blue-color has-text-color has-link-color wp-elements-4d1bac464ef43a5c9202c65934f8a7eb\"><strong><strong>\u91c7\u8d2d\u8ba2\u5355\u7528\u6237\u6307\u5357<\/strong><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\"><a href=\"https:\/\/flex.com\/downloads\/%e9%87%87%e8%b4%ad%e8%ae%a2%e5%8d%95%e7%94%a8%e6%88%b7%e6%8c%87%e5%8d%97\">E2open \u4f9b\u5e94\u5546 LT \u7528\u6237\u6307\u5357<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-text-align-left has-dark-blue-color has-text-color has-link-color wp-elements-17ed81880880b61984140e990a318f4e\"><strong><strong>Purchase Order webinar&nbsp;recording<\/strong><\/strong><\/p>\n\n\n<div id=\"id_6a3d1e6d52c7e\" 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<div id=\"media-video-id_6a3d1e6d52c7e\" class=\"video\">\n\t\t\t\t\t<!-- JS will inject the appropriate video here -->\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t<script>\n\t(function () {\n\t\tlet hasRun_id_6a3d1e6d52c7e = false;\n\t\tfunction updateVideoDisplay_id_6a3d1e6d52c7e() {\n\t\t\tconst youtubeVideoId = \"mJ8A4havJTM\";\n\t\t\tconst bynderID = \"\";\n\t\t\tconst mediaType = \"video\";\n\t\t\tconst mediaVideoElement = document.getElementById('media-video-id_6a3d1e6d52c7e');\n\t\t\tconst bodyClass = document.body?.className || '';\n\t\t\tlet currentLanguage = 'en';\n\t\t\t\n\t\t\tif (bodyClass.includes('translatepress-')) {\n\t\t\t\tconst match = bodyClass.match(\/translatepress-([a-z]{2})(?:_[A-Z]{2})?\/i);\n\t\t\t\tif (match) currentLanguage = match[1].toLowerCase();\n\t\t\t}\n\t\t\t\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_6a3d1e6d52c7e';\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_6a3d1e6d52c7e';\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_6a3d1e6d52c7e';\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_6a3d1e6d52c7e';\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_6a3d1e6d52c7e) return;\n\t\t\thasRun_id_6a3d1e6d52c7e = true;\n\t\t\tupdateVideoDisplay_id_6a3d1e6d52c7e();\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_6a3d1e6d52c7e\");\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<\/div>\n\n\t<\/div>\n<\/div>\n\n<div class=\"spacer block\" style=\"height: 24px;\">\n\t<\/div>\n\n<div id=\"id-6a3d1e6d56296\" class=\"columns block\">\n\t<style>\n\t\t#id-6a3d1e6d56296 .column, #id-6a3d1e6d56296 .wp-block-acf-column {\n\t\t\tpadding: 0 12px;\n\t\t}\n\t\t\n\t\t#id-6a3d1e6d56296 > .container.show-rules .column+.column, #id-6a3d1e6d56296 > .container.show-rules .wp-block-acf-column+.wp-block-acf-column {\n\t\t\tborder-color: rgba(38, 38, 38, 0.2);\n\t\t}\n\t\t\n\t\t#id-6a3d1e6d56296 .column, #id-6a3d1e6d56296 .wp-block-acf-column {\n\t\t\t.code.block {\n\t\t\t\t.container {\n\t\t\t\t\t.tagembed-widget {\n\t\t\t\t\t\tmax-width: 600px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d56296 > .container {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 600px;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d56296 > .container > .column, #id-6a3d1e6d56296 > .container > .wp-block-acf-column {\n\t\t\t\tpadding: 24px 0 0 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d56296 > .container > .column:first-child, #id-6a3d1e6d56296 > .container > .wp-block-acf-column:first-child {\n\t\t\t\tpadding: 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d56296 > .container.show-rules .column+.column, #id-6a3d1e6d56296 > .container.show-rules .wp-block-acf-column+.wp-block-acf-column {\n\t\t\t\tborder-left: none;\n\t\t\t\tborder-top: 1px solid rgba(38, 38, 38, 0.2);\n\t\t\t\tpadding: 30px 0 0 0 !important;\n\t\t\t\tmargin-top: 30px;\n\t\t\t}\n\t\t}\n\t<\/style>\n\t<div class=\"container align-top\">\n\t\t\n<div class=\"column block\">\n\t\n\n<p class=\"has-dark-blue-color has-text-color has-link-color wp-elements-2a8fd67a3375bfb5be1a97fad19171d6\"><strong><strong>ASN and forecast&nbsp;overview<\/strong><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left no-margin has-medium-font-size\"><a href=\"https:\/\/flex.com\/downloads\/asn-and-forecast-overview\">ASN and forecast overview<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-dark-blue-color has-text-color has-link-color wp-elements-465cdd2e051981f2ef5ae552bb101c5f\"><strong><strong>\u53d1\u8d27\uff08ASN\uff09\u4e0e\u9884\u6d4b\u6982\u8ff0<\/strong><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\"><a href=\"https:\/\/flex.com\/downloads\/%e5%8f%91%e8%b4%a7%ef%bc%88asn%ef%bc%89%e4%b8%8e%e9%a2%84%e6%b5%8b%e6%a6%82%e8%bf%b0\">\u53d1\u8d27\uff08ASN\uff09\u4e0e\u9884\u6d4b\u6982\u8ff0<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-dark-blue-color has-text-color has-link-color wp-elements-0410e00dd3745ea92786fd1b1f8dcaeb\"><strong><strong>ASN&nbsp;and forecast webinar recording<\/strong><\/strong><\/p>\n\n\n<div id=\"id_6a3d1e6d55961\" 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<div id=\"media-video-id_6a3d1e6d55961\" class=\"video\">\n\t\t\t\t\t<!-- JS will inject the appropriate video here -->\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t<script>\n\t(function () {\n\t\tlet hasRun_id_6a3d1e6d55961 = false;\n\t\tfunction updateVideoDisplay_id_6a3d1e6d55961() {\n\t\t\tconst youtubeVideoId = \"6_oh_Gd4_Wk\";\n\t\t\tconst bynderID = \"\";\n\t\t\tconst mediaType = \"video\";\n\t\t\tconst mediaVideoElement = document.getElementById('media-video-id_6a3d1e6d55961');\n\t\t\tconst bodyClass = document.body?.className || '';\n\t\t\tlet currentLanguage = 'en';\n\t\t\t\n\t\t\tif (bodyClass.includes('translatepress-')) {\n\t\t\t\tconst match = bodyClass.match(\/translatepress-([a-z]{2})(?:_[A-Z]{2})?\/i);\n\t\t\t\tif (match) currentLanguage = match[1].toLowerCase();\n\t\t\t}\n\t\t\t\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_6a3d1e6d55961';\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_6a3d1e6d55961';\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_6a3d1e6d55961';\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_6a3d1e6d55961';\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_6a3d1e6d55961) return;\n\t\t\thasRun_id_6a3d1e6d55961 = true;\n\t\t\tupdateVideoDisplay_id_6a3d1e6d55961();\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_6a3d1e6d55961\");\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<\/div>\n\n<div class=\"column block\">\n\t\n<\/div>\n\n\t<\/div>\n<\/div>\n\n<div id=\"id-6a3d1e6d56b34\" class=\"box block full-width dark-content zh \" style=\"background-color: transparent; background-image: none;\">\n\t<style>\n\t\t#id-6a3d1e6d56b34 > .container > .content {\n\t\t\tbackground-color: transparent;\n\t\t\tposition: relative;\n\t\t\tpadding-top: 60px;\n\t\t\tpadding-right: 0px;\n\t\t\tpadding-bottom: 72px;\n\t\t\tpadding-left: 0px;\n\t\t\tmargin-left: 0px;\n\t\t\tmargin-right: 0px;\n\t\t}\n\t\t@media (max-width: 1272px) {\n\t\t\t#id-6a3d1e6d56b34.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-6a3d1e6d56b34 > .container > .content {\n\t\t\t\t\/\/padding-top: 30px;\n\t\t\t\tpadding-right: 0px;\n\t\t\t\t\/\/padding-bottom: 36px;\n\t\t\t\tpadding-left: 0px;\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\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<div class=\"tab block\" data-slug=\"user-interface\" data-label=\"User interface collaboration\">\n\t\t<div class=\"container\">\n\t\t\t\n<div id=\"id-6a3d1e6d581d0\" class=\"box block full-width dark-content zh \" style=\"background-color: transparent; background-image: none;\">\n\t<style>\n\t\t#id-6a3d1e6d581d0 > .container > .content {\n\t\t\tbackground-color: transparent;\n\t\t\tposition: relative;\n\t\t\tpadding-top: 0px;\n\t\t\tpadding-right: 0px;\n\t\t\tpadding-bottom: 48px;\n\t\t\tpadding-left: 0px;\n\t\t\tmargin-left: 0px;\n\t\t\tmargin-right: 0px;\n\t\t}\n\t\t@media (max-width: 1272px) {\n\t\t\t#id-6a3d1e6d581d0.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-6a3d1e6d581d0 > .container > .content {\n\t\t\t\t\/\/padding-top: 0px;\n\t\t\t\tpadding-right: 0px;\n\t\t\t\t\/\/padding-bottom: 24px;\n\t\t\t\tpadding-left: 0px;\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\n<p>Learn how to access and navigate the e2open platform to review and respond to Purchase Orders, shipments (ASN), forecast, download POs, collaborate with Buyers on transactions, as needed.<\/p>\n\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<div id=\"id-6a3d1e6d5985f\" class=\"columns block\">\n\t<style>\n\t\t#id-6a3d1e6d5985f .column, #id-6a3d1e6d5985f .wp-block-acf-column {\n\t\t\tpadding: 0 12px;\n\t\t}\n\t\t\n\t\t#id-6a3d1e6d5985f > .container.show-rules .column+.column, #id-6a3d1e6d5985f > .container.show-rules .wp-block-acf-column+.wp-block-acf-column {\n\t\t\tborder-color: rgba(38, 38, 38, 0.2);\n\t\t}\n\t\t\n\t\t#id-6a3d1e6d5985f .column, #id-6a3d1e6d5985f .wp-block-acf-column {\n\t\t\t.code.block {\n\t\t\t\t.container {\n\t\t\t\t\t.tagembed-widget {\n\t\t\t\t\t\tmax-width: 600px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d5985f > .container {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 600px;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d5985f > .container > .column, #id-6a3d1e6d5985f > .container > .wp-block-acf-column {\n\t\t\t\tpadding: 24px 0 0 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d5985f > .container > .column:first-child, #id-6a3d1e6d5985f > .container > .wp-block-acf-column:first-child {\n\t\t\t\tpadding: 0 !important;\n\t\t\t}\n\t\t}\n\t\t@media (max-width: 1320px) {\n\t\t\t#id-6a3d1e6d5985f > .container.show-rules .column+.column, #id-6a3d1e6d5985f > .container.show-rules .wp-block-acf-column+.wp-block-acf-column {\n\t\t\t\tborder-left: none;\n\t\t\t\tborder-top: 1px solid rgba(38, 38, 38, 0.2);\n\t\t\t\tpadding: 30px 0 0 0 !important;\n\t\t\t\tmargin-top: 30px;\n\t\t\t}\n\t\t}\n\t<\/style>\n\t<div class=\"container align-top\">\n\t\t\n<div class=\"column block\">\n\t\n\n<p class=\"has-text-align-left no-margin has-dark-blue-color has-text-color has-link-color has-medium-font-size wp-elements-b29ed345ae9b6ad082cbe630a12ed349\"><strong>User interface user guide<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/flex.com\/?post_type=download&amp;p=42207&amp;preview=true\">UI user guide<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/flex.com\/downloads\/e2open-\u4f9b\u5e94\u534f\u4f5c-\u7528\u6237\u6307\u5357-\u9488\u5bf9\u4f9b\u5e94\u5546\u89d2\u8272-\u6807\u51c6\u7528\u6237\u754c\">E2open \u4f9b\u5e94\u534f\u4f5c \u7528\u6237\u6307\u5357 \u9488\u5bf9\u4f9b\u5e94\u5546\u89d2\u8272 \u2013 \u6807\u51c6\u7528\u6237\u754c\u9762<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-text-align-left has-dark-blue-color has-text-color has-link-color wp-elements-21533f5703f6007d5a5dc456d289ede4\"><strong>User interface overview<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/flex.com\/?post_type=download&amp;p=42211&amp;preview=true\">UI overview<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-text-align-left has-dark-blue-color has-text-color has-link-color wp-elements-074d15de7807da6dccf46fe38b953be1\"><strong>\u7528\u6237\u754c\u9762\u6982\u8ff0<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left has-dark-blue-color has-text-color has-link-color wp-elements-73dec57170321cf0c0ef6e123ea48885\"><a href=\"https:\/\/flex.com\/?post_type=download&amp;p=42215&amp;preview=true\">\u7528\u6237\u754c\u9762\u6982\u8ff0<\/a><\/p>\n\n\n<\/div>\n\n<div class=\"column block\">\n\t\n\n<p class=\"has-text-align-left has-dark-blue-color has-text-color has-link-color wp-elements-3ef1ddbf146fc8d15b356b03d81f0520\"><strong>User interface webinar recording<\/strong><\/p>\n\n\n<div id=\"id_6a3d1e6d59167\" 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<div id=\"media-video-id_6a3d1e6d59167\" class=\"video\">\n\t\t\t\t\t<!-- JS will inject the appropriate video here -->\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t<script>\n\t(function () {\n\t\tlet hasRun_id_6a3d1e6d59167 = false;\n\t\tfunction updateVideoDisplay_id_6a3d1e6d59167() {\n\t\t\tconst youtubeVideoId = \"-wxGUCWJ66M\";\n\t\t\tconst bynderID = \"1DB68893-1DE1-41E8-925093E10E8340E5\";\n\t\t\tconst mediaType = \"video\";\n\t\t\tconst mediaVideoElement = document.getElementById('media-video-id_6a3d1e6d59167');\n\t\t\tconst bodyClass = document.body?.className || '';\n\t\t\tlet currentLanguage = 'en';\n\t\t\t\n\t\t\tif (bodyClass.includes('translatepress-')) {\n\t\t\t\tconst match = bodyClass.match(\/translatepress-([a-z]{2})(?:_[A-Z]{2})?\/i);\n\t\t\t\tif (match) currentLanguage = match[1].toLowerCase();\n\t\t\t}\n\t\t\t\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_6a3d1e6d59167';\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_6a3d1e6d59167';\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_6a3d1e6d59167';\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_6a3d1e6d59167';\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_6a3d1e6d59167) return;\n\t\t\thasRun_id_6a3d1e6d59167 = true;\n\t\t\tupdateVideoDisplay_id_6a3d1e6d59167();\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_6a3d1e6d59167\");\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<\/div>\n\n\t<\/div>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n\n\n\t\t<\/div>\n\t<\/div>\n\t<script>\n\t\t\/**\n\t\t * Renders tabs based on the hash in the URL and tab content. This function is specifically designed to support\n\t\t * WordPress editor adjustments and dynamic navigation updates. It is structured to work within the WordPress\n\t\t * editing environment and updates both the navigation tabs and the content tabs based on the URL's hash.\n\t\t *\n\t\t * NOTE: This function is only used in the WordPress editor and for some reason yet to be determined must sit\n\t\t * outside the self-invoking function.\n\t\t *\/\n\t\tvar render_tabs = function () {\n\t\t\tvar $ = jQuery; \/\/ Use the jQuery global object for easier usage throughout the function.\n\n\t\t\tvar $tabsBlock   = $(\".tabs.block\"); \/\/ Select the main block element that contains tabs and their respective navigation and content.\n\t\t\tvar $navTabs     = $tabsBlock.find(\".tabs\");  \/\/ Selects the navigation container within the tabs block.\n\t\t\tvar $contentTabs = $tabsBlock.find(\".content .tab\");  \/\/ Selects the content of each tab within the block.\n\n\t\t\tvar currentHash   = window.location.hash.replace(\"#\", \"\"); \/\/ Obtain the current URL hash (without the '#' symbol) for determining the active tab.\n\t\t\tvar hash_selector = currentHash ? $(\".tab.block[data-slug='\" + currentHash + \"']\") : null; \/\/ If there's a hash, find the tab corresponding to this hash, otherwise set to null.\n\n\t\t\t\/\/ If the WordPress block editor is in use, adjust the hash selector to point to the parent `.wp-block`.\n\t\t\tif (window.wp && window.wp.blocks && hash_selector) {\n\t\t\t\thash_selector = hash_selector.parents(\".wp-block\");\n\t\t\t}\n\n\t\t\t\/\/ Default active tab index. It will be used to mark one of the tabs as active.\n\t\t\tvar active_index = 0;\n\t\t\t\/\/ If a tab corresponding to the hash was found, set its index as the active tab index.\n\t\t\tif (hash_selector && hash_selector.length) {\n\t\t\t\tactive_index = hash_selector.index();\n\t\t\t}\n\n\t\t\t\/\/ Build the HTML for each tab. This array will store HTML strings for all tabs.\n\t\t\tvar tabsHtml = [];\n\t\t\t$contentTabs.each(function (index) {\n\t\t\t\tvar $this    = $(this);\n\t\t\t\tvar isActive = index === active_index; \/\/ Check if the current tab should be active based on its index.\n\t\t\t\ttabsHtml.push('<div class=\"tab' + (isActive ? ' active' : '') + '\">' + $this.data(\"label\") + '<\/div>'); \/\/ Append the HTML string for the tab to the tabsHtml array.\n\t\t\t});\n\n\t\t\t\/\/ Empty the navigation container and then add all tabs HTML to it.\n\t\t\t\/\/ This is done in one operation to improve performance.\n\t\t\t$navTabs.empty().html(tabsHtml.join(\"\"));\n\t\t\t$contentTabs.hide().eq(active_index).show(); \/\/ Hide all content tabs, then only show the content for the active tab.\n\n\t\t\t\/\/ Set up a click event handler on each tab in the navigation.\n\t\t\t\/\/ First, remove any existing click handlers to prevent duplicate bindings.\n\t\t\t$navTabs.off(\"click\").on(\"click\", \".tab\", function () {\n\t\t\t\tvar index = $(this).index();  \/\/ Get the index of the clicked tab.\n\t\t\t\t\/\/ Set a local storage item to control scrolling behavior on hash change, then update the URL hash.\n\t\t\t\twindow.localStorage.setItem(\"scroll_on_hash_change\", \"false\");\n\t\t\t\twindow.location.hash = $contentTabs.eq(index).data(\"slug\");\n\t\t\t});\n\t\t};\n\n\t\t\/**\n\t\t * Self-invoking function to encapsulate and run the script when the DOM is ready.\n\t\t * This pattern helps in avoiding global scope pollution and conflicts with other scripts.\n\t\t *\/\n\t\t(function ($) {\n\t\t\t$(document).ready(function () {\n\t\t\t\tvar isEditor     = document.body.classList.contains('block-editor-page') || !!window.wp?.blocks; \/\/ Determine if the current page is the WordPress editor page, which affects how tabs are rendered.\n\t\t\t\tvar $tabsBlock   = $(\".tabs.block\"); \/\/ Select the main container of the tabs. This is the primary block where all tabs and their content are contained.\n\t\t\t\tvar $contentTabs = $tabsBlock.find(\".content .tab\"); \/\/ Find all content elements of the tabs. These are the contents that will be shown\/hidden based on active tab.\n\t\t\t\tvar $navTabs     = $tabsBlock.find(\".tabs\"); \/\/ Locate the container of the tab navigation buttons\/links.\n\n\t\t\t\t\/**\n\t\t\t\t * Initializes the tab structure on the frontend (not in the WordPress editor).\n\t\t\t\t * This function creates navigation tabs corresponding to each content tab and sets up their click handlers.\n\t\t\t\t *\/\n\t\t\t\tvar init_frontend_tabs = function () {\n\t\t\t\t\t$contentTabs.each(function (index) {\n\t\t\t\t\t\t\/\/ Create a div for each tab in the navigation, using the 'label' data attribute for its text.\n\t\t\t\t\t\tvar $tab = $(\"<div>\").addClass(\"tab\").html($(this).data(\"label\"));\n\t\t\t\t\t\t$navTabs.append($tab); \/\/ Append this new navigation tab to the tabs container.\n\n\t\t\t\t\t\t\/\/ Attach click event handler to each navigation tab.\n\t\t\t\t\t\t$tab.on(\"click\", function () {\n\t\t\t\t\t\t\t\/\/ On click, update the URL hash to reflect the clicked tab and prevent auto-scrolling.\n\t\t\t\t\t\t\twindow.localStorage.setItem(\"scroll_on_hash_change\", \"false\");\n\t\t\t\t\t\t\twindow.location.hash = $contentTabs.eq(index).data(\"slug\");\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t\/**\n\t\t\t\t * Sets the active tab based on the URL hash, or defaults to the first tab if no hash is present.\n\t\t\t\t * This function updates the appearance and visibility of tabs and their contents accordingly.\n\t\t\t\t *\/\n\t\t\t\tvar set_active_frontend_tab = function () {\n\t\t\t\t\tvar $navTabsActive = $tabsBlock.find(\".tabs div.tab\"); \/\/ Select all navigation tabs.\n\t\t\t\t\tvar activeIndex    = 0; \/\/ Default to the first tab if no specific hash is found.\n\n\t\t\t\t\t\/\/ If the URL has a hash, find the corresponding tab and set it as active.\n\t\t\t\t\tif (window.location.hash) {\n\t\t\t\t\t\tvar hash          = window.location.hash.replace(\"#\", \"\"); \/\/ Remove '#' from the hash.\n\t\t\t\t\t\tvar $hashSelector = $tabsBlock.find(\".tab.block[data-slug='\" + hash + \"']\"); \/\/ Find the tab content that matches the hash.\n\n\t\t\t\t\t\t\/\/ If a matching content tab is found, update the activeIndex to match its position.\n\t\t\t\t\t\tif ($hashSelector.length > 0) {\n\t\t\t\t\t\t\tactiveIndex = $hashSelector.index();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ Set the active class on the appropriate navigation tab and display the corresponding tab content.\n\t\t\t\t\t$navTabsActive.removeClass(\"active\").eq(activeIndex).addClass(\"active\");\n\t\t\t\t\t$contentTabs.hide().eq(activeIndex).show();\n\t\t\t\t};\n\n\t\t\t\t\/\/ If the current context is not the editor, initialize and set active tabs for the frontend.\n\t\t\t\tif (!isEditor) {\n\t\t\t\t\tinit_frontend_tabs();\n\t\t\t\t\tset_active_frontend_tab();\n\t\t\t\t\t\/\/ Refresh accordion after default tab is shown\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (typeof refreshVisibleAccordions === 'function') {\n\t\t\t\t\t\t\trefreshVisibleAccordions();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 50);\n\t\t\t\t\t\/\/ Trigger any scroll animations or reveals for the newly displayed tabs.\n\t\t\t\t\tsetTimeout(() => ScrollReveal().delegate(), 100);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ In the WordPress editor, call a separate function to render tabs.\n\t\t\t\t\trender_tabs();\n\t\t\t\t}\n\n\t\t\t\t\/\/ Event listener to handle changes in the URL hash (when a user clicks a tab).\n\t\t\t\twindow.addEventListener(\"hashchange\", function () {\n\t\t\t\t\t\/\/ Reset active tabs on hash change, differentiating between frontend and editor.\n\t\t\t\t\tif (!isEditor) {\n\t\t\t\t\t\tset_active_frontend_tab();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tif (typeof refreshVisibleAccordions === 'function') {\n\t\t\t\t\t\t\t\trefreshVisibleAccordions();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\tsetTimeout(() => ScrollReveal().delegate(), 100);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trender_tabs();\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ Scroll adjustment to ensure the content is properly aligned after a tab change.\n\t\t\t\t\tvar $containerContent = $(\".tabs.block > .container .content\");\n\t\t\t\t\tvar offsetTop         = $containerContent.offset().top - $('#flex-header').height() - $(\".tabs.block > .container .tabs-container\").height() - 68;\n\t\t\t\t\t\/\/ Animate the scroll to the calculated position for a smooth transition.\n\t\t\t\t\t$([document.documentElement, document.body]).animate({scrollTop: offsetTop}, 500);\n\t\t\t\t});\n\t\t\t});\n\t\t})(jQuery); \/\/ Pass jQuery as an argument to ensure no conflict in jQuery usage.\n\t<\/script>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":12020,"parent":2961,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_searchwp_excluded":"1","inline_featured_image":false,"footnotes":""},"categories":[92],"class_list":["post-41643","page","type-page","status-publish","has-post-thumbnail","hentry","category-suppliers"],"acf":[],"_links":{"self":[{"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/pages\/41643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/comments?post=41643"}],"version-history":[{"count":13,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/pages\/41643\/revisions"}],"predecessor-version":[{"id":42349,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/pages\/41643\/revisions\/42349"}],"up":[{"embeddable":true,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/pages\/2961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/media\/12020"}],"wp:attachment":[{"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/media?parent=41643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flex.com\/zh\/wp-json\/wp\/v2\/categories?post=41643"}],"curies":[{"name":"\u53ef\u6e7f\u6027\u7c89\u5242","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}