CINXE.COM
Recent changes to Shopify’s platform
<!DOCTYPE html><html lang="en" class="Mode-Light scroll-smooth motion-reduce:scroll-auto"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Recent changes to Shopify’s platform</title><meta property="og:title" content="Recent changes to Shopify’s platform"/><meta property="twitter:title" content="Recent changes to Shopify’s platform"/><meta property="og:url" content="https://shopify.dev/changelog"/><meta name="description" content="Shopify’s developer changelog documents all changes to Shopify’s platform. Find the latest news and learn about new platform opportunities."/><meta property="og:description" content="Shopify’s developer changelog documents all changes to Shopify’s platform. Find the latest news and learn about new platform opportunities."/><meta property="twitter:description" content="Shopify’s developer changelog documents all changes to Shopify’s platform. Find the latest news and learn about new platform opportunities."/><meta property="og:type" content="website"/><meta property="og:site_name" content="Shopify"/><meta property="og:image" content="https://shopify.dev/assets/social-share-24de3afa0326f705b84a0a98714acc192611e5a21ade3b7c8f2bd12ba7d1457f.jpg"/><meta property="twitter:card" content="summary_large_image"/><meta property="twitter:site" content="@Shopify"/><meta property="twitter:account_id" content="17136315"/><meta property="twitter:image" content="https://shopify.dev/assets/social-share-24de3afa0326f705b84a0a98714acc192611e5a21ade3b7c8f2bd12ba7d1457f.jpg"/><link rel="icon" type="image/png" href="https://cdn.shopify.com/static/shopify-favicon.png"/><script> try { if (localStorage.getItem('themeMode')) { if (localStorage.getItem('themeMode') === 'Mode-Dark') { document.documentElement.classList.remove('Mode-Light'); document.documentElement.classList.add('Mode-Dark'); } } else if ( window.matchMedia('(prefers-color-scheme: dark)').matches && document.documentElement.classList.contains('Mode-Light') ) { document.documentElement.classList.remove('Mode-Light'); document.documentElement.classList.add('Mode-Dark'); localStorage.setItem('themeMode', 'Mode-Dark'); } } catch (_) {} </script><link rel="stylesheet" href="/assets/root-DNqSDEjq.css"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&family=JetBrains+Mono:wght@400;700;800&display=swap"/><link rel="stylesheet" href="/assets/global-wrapper-CMQP3qX_.css"/><link rel="stylesheet" href="/assets/Tooltip-B0B_qFK3.css"/><link rel="stylesheet" href="/assets/MarkdownRenderer-GtORHvE1.css"/><link rel="stylesheet" href="/assets/GraphiQLNotAvailableWarning-BKXntmO-.css"/><link rel="stylesheet" href="/assets/_EditorComponent-BoKozXeA.css"/><link rel="stylesheet" href="/assets/changelog-BELReQl8.css"/><link rel="stylesheet" href="/assets/_ChangelogEntry-o9sptWHq.css"/></head><body class="Theme-Docs"><a href="#main-content" class="skip-to-main-content">Skip to main content</a><div><svg xmlns="http://www.w3.org/2000/svg" width="0" height="0"><defs id="symbols"><symbol id="AppBridgeMedium" viewBox="0 0 20 20"><path d="M11.642 10.089 10 5.162 8.358 10.09A15.678 15.678 0 0 1 10 10c.55 0 1.1.031 1.642.089Zm2.235.38-2.454-7.362c-.456-1.368-2.39-1.368-2.846 0l-2.454 7.361a21.094 21.094 0 0 0-4.57 1.638 1 1 0 1 0 .894 1.788 18.879 18.879 0 0 1 2.919-1.154L4.05 16.684a1 1 0 1 0 1.898.632l1.704-5.114C8.425 12.074 9.214 12 10 12s1.575.074 2.347.202l1.704 5.114a1 1 0 1 0 1.898-.632l-1.315-3.944a18.88 18.88 0 0 1 2.919 1.154 1 1 0 1 0 .894-1.788 21.095 21.095 0 0 0-4.57-1.638Z"/></symbol><symbol id="AppBridgeSmall" viewBox="0 0 16 16"><path d="M9.466 8.313 8 3.55 6.534 8.313c.484-.04.974-.063 1.466-.063s.983.023 1.466.063Zm1.632.206L9.195 2.332c-.362-1.176-2.028-1.176-2.39 0L4.902 8.52c-1.196.2-2.284.485-3.14.77a.75.75 0 1 0 .475 1.422 19.08 19.08 0 0 1 2.167-.574l-1.12 3.642a.75.75 0 0 0 1.433.441l1.339-4.35c.635-.076 1.29-.12 1.944-.12.653 0 1.309.044 1.944.12l1.34 4.35a.75.75 0 0 0 1.433-.44l-1.12-3.643c.814.167 1.555.37 2.166.574a.75.75 0 0 0 .474-1.423 21.08 21.08 0 0 0-3.139-.769Z"/></symbol><symbol id="ArrowRightMedium" viewBox="0 0 20 20"><path d="M10.172 5.05a1 1 0 0 1 1.414 0l4.242 4.243a1 1 0 0 1 0 1.414l-4.242 4.243a1 1 0 0 1-1.414-1.414L12.707 11H4.88a1 1 0 1 1 0-2h7.828l-2.535-2.535a1 1 0 0 1 0-1.415Z"/></symbol><symbol id="ArrowRightSmall" viewBox="0 0 16 16"><path d="M8 3.757a1 1 0 0 1 1.414 0l3.536 3.536a1 1 0 0 1 0 1.414l-3.536 3.536A1 1 0 1 1 8 10.828L9.828 9h-6.07a1 1 0 1 1 0-2h6.07L8 5.172a1 1 0 0 1 0-1.415Z"/></symbol><symbol id="BetaMedium" viewBox="0 0 20 20"><path d="M8.5 3a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1h-3V3ZM8 5a1 1 0 0 0 0 2h.275c.128 0 .225.115.225.243v.294c0 .932-.393 1.82-1.083 2.447l-3.51 3.19A2.773 2.773 0 0 0 5.774 18h8.454a2.773 2.773 0 0 0 1.865-4.825l-3.51-3.19A3.308 3.308 0 0 1 11.5 7.536v-.294c0-.128.097-.243.225-.243H12a1 1 0 1 0 0-2H8Zm1.3 6.4a1 1 0 0 1-.2 1.4l-.558.418a9.526 9.526 0 0 0-2.21 2.337 1 1 0 0 1-1.664-1.11 11.526 11.526 0 0 1 2.674-2.827L7.9 11.2a1 1 0 0 1 1.4.2Z"/></symbol><symbol id="BetaSmall" viewBox="0 0 16 16"><path d="M6.5 2a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v1h-3V2ZM6 4a1 1 0 1 0 0 2h.275c.128 0 .225.115.225.243v.288c0 .934-.4 1.824-1.098 2.445l-2.707 2.406A2.07 2.07 0 0 0 4.07 15h7.86a2.07 2.07 0 0 0 1.375-3.618l-2.707-2.406A3.272 3.272 0 0 1 9.5 6.531v-.288c0-.128.097-.243.225-.243H10a1 1 0 1 0 0-2H6Zm1.4 5.7a.5.5 0 0 1-.1.7l-.558.418a10.023 10.023 0 0 0-2.326 2.46.5.5 0 0 1-.832-.555 11.025 11.025 0 0 1 2.558-2.705L6.7 9.6a.5.5 0 0 1 .7.1Z"/></symbol><symbol id="BoxedMinusMedium" viewBox="0 0 20 20"><path d="M5 4h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM2 5a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5Zm3.5 4a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-9Z"/></symbol><symbol id="BoxedMinusSmall" viewBox="0 0 16 16"><path d="M12 2.5H4A1.5 1.5 0 0 0 2.5 4v8A1.5 1.5 0 0 0 4 13.5h8a1.5 1.5 0 0 0 1.5-1.5V4A1.5 1.5 0 0 0 12 2.5ZM4 1a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H4Zm8 6.75V7.5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-.75Z"/></symbol><symbol id="BoxedPlusMedium" viewBox="0 0 20 20"><path d="M5 4h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM2 5a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5Zm7.5 10a.5.5 0 0 1-.5-.5V11H5.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H9V5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V9h3.5a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5H11v3.5a.5.5 0 0 1-.5.5h-1Z"/></symbol><symbol id="BoxedPlusSmall" viewBox="0 0 16 16"><path d="M12 2.5H4A1.5 1.5 0 0 0 2.5 4v8A1.5 1.5 0 0 0 4 13.5h8a1.5 1.5 0 0 0 1.5-1.5V4A1.5 1.5 0 0 0 12 2.5ZM4 1a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H4Zm0 6.75V7.5a.5.5 0 0 1 .5-.5H7V4.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V7h2.5a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5H9v2.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V9H4.5a.5.5 0 0 1-.5-.5v-.75Z"/></symbol><symbol id="CaretDownMedium" viewBox="0 0 20 20"><path d="M13.586 8H6.414c-.89 0-1.337 1.077-.707 1.707l3.586 3.586a1 1 0 0 0 1.414 0l3.586-3.586c.63-.63.184-1.707-.707-1.707Z"/></symbol><symbol id="CaretDownSmall" viewBox="0 0 16 16"><path d="M11.586 6H4.414c-.89 0-1.337 1.077-.707 1.707l3.586 3.586a1 1 0 0 0 1.414 0l3.586-3.586c.63-.63.184-1.707-.707-1.707Z"/></symbol><symbol id="CaretLeftMedium" viewBox="0 0 20 20"><path d="M12 13.586V6.414c0-.89-1.077-1.337-1.707-.707L6.707 9.293a1 1 0 0 0 0 1.414l3.586 3.586c.63.63 1.707.184 1.707-.707Z"/></symbol><symbol id="CaretLeftSmall" viewBox="0 0 16 16"><path d="M10 11.586V4.414c0-.89-1.077-1.337-1.707-.707L4.707 7.293a1 1 0 0 0 0 1.414l3.586 3.586c.63.63 1.707.184 1.707-.707Z"/></symbol><symbol id="CaretRightMedium" viewBox="0 0 20 20"><path d="M8 6.414v7.172c0 .89 1.077 1.337 1.707.707l3.586-3.586a1 1 0 0 0 0-1.414L9.707 5.707C9.077 5.077 8 5.523 8 6.414Z"/></symbol><symbol id="CaretRightSmall" viewBox="0 0 16 16"><path d="M6 4.414v7.172c0 .89 1.077 1.337 1.707.707l3.586-3.586a1 1 0 0 0 0-1.414L7.707 3.707C7.077 3.077 6 3.523 6 4.414Z"/></symbol><symbol id="CaretUpMedium" viewBox="0 0 20 20"><path d="M13.586 12H6.414c-.89 0-1.337-1.077-.707-1.707l3.586-3.586a1 1 0 0 1 1.414 0l3.586 3.586c.63.63.184 1.707-.707 1.707Z"/></symbol><symbol id="CaretUpSmall" viewBox="0 0 16 16"><path d="M11.586 10H4.414c-.89 0-1.337-1.077-.707-1.707l3.586-3.586a1 1 0 0 1 1.414 0l3.586 3.586c.63.63.184 1.707-.707 1.707Z"/></symbol><symbol id="CheatsheetMedium" viewBox="0 0 20 20"><path d="M4 4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1h-1V4h-1v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2h11v-1h-1.5l1.5-3h-3l1.5 3H9l-1.5-3L6 15H4V4Zm3.5 0L6 7h3L7.5 4Zm0 4L9 11H6l1.5-3Zm4-1L13 4h-3l1.5 3ZM10 8l1.5 3L13 8h-3Z"/></symbol><symbol id="CheatsheetSmall" viewBox="0 0 16 16"><path d="M13 3v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2h11v-1H3V3a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1h-1V3h-1ZM5.5 3 4 5h3L5.5 3Zm4 5L8 6h3L9.5 8ZM8 3l1.5 2L11 3H8ZM5.5 6 7 8H4l1.5-2ZM11 9l-1.5 2L8 9h3ZM5.5 9 7 11H4l1.5-2Z"/></symbol><symbol id="CheckMedium" viewBox="0 0 20 20"><path d="M7.95 12.071 4.768 8.89a.5.5 0 0 0-.707 0l-.707.707a.5.5 0 0 0 0 .707l4.242 4.243a.5.5 0 0 0 .707 0l.707-.707.003-.003 7.068-7.068a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0L7.95 12.07Z"/></symbol><symbol id="CheckSmall" viewBox="0 0 16 16"><path d="M6.243 9.867 3.768 7.392a.5.5 0 0 0-.707 0l-.708.707a.5.5 0 0 0 0 .707l2.824 2.824a.722.722 0 0 0 .005.005l.707.707a.5.5 0 0 0 .707 0l.707-.707 6.364-6.364a.5.5 0 0 0 0-.707l-.707-.708a.5.5 0 0 0-.707 0l-6.01 6.01Z"/></symbol><symbol id="ChevronDownLarge" viewBox="0 0 24 24"><path d="M5.354 10.575a.5.5 0 0 0 0 .707l5.657 5.657.707.707a.5.5 0 0 0 .707 0l6.364-6.363a.5.5 0 0 0 0-.707l-.707-.708a.5.5 0 0 0-.707 0l-5.304 5.304-5.303-5.304a.5.5 0 0 0-.707 0l-.707.707Z"/></symbol><symbol id="ChevronDownMedium" viewBox="0 0 20 20"><path d="M3.989 8.283a.5.5 0 0 0 0 .707l4.95 4.95.706.707a.5.5 0 0 0 .707 0l.708-.707 4.95-4.95a.5.5 0 0 0 0-.707l-.708-.707a.5.5 0 0 0-.707 0L10 12.172 5.403 7.576a.5.5 0 0 0-.707 0l-.707.707Z"/></symbol><symbol id="ChevronDownSmall" viewBox="0 0 16 16"><path d="M3.404 6.697a.5.5 0 0 0 0 .707l3.535 3.535.707.707a.5.5 0 0 0 .707 0l.707-.707 3.536-3.535a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0L8 9.172 4.818 5.99a.5.5 0 0 0-.707 0l-.707.707Z"/></symbol><symbol id="ChevronLeftLarge" viewBox="0 0 24 24"><path d="M13.425 5.354a.5.5 0 0 0-.707 0L7.06 11.01l-.707.707a.5.5 0 0 0 0 .707l6.363 6.364a.5.5 0 0 0 .707 0l.708-.707a.5.5 0 0 0 0-.707L8.828 12.07l5.304-5.303a.5.5 0 0 0 0-.707l-.707-.707Z"/></symbol><symbol id="ChevronLeftMedium" viewBox="0 0 20 20"><path d="M11.717 3.989a.5.5 0 0 0-.707 0l-4.95 4.95-.707.706a.5.5 0 0 0 0 .707l.707.708 4.95 4.95a.5.5 0 0 0 .707 0l.707-.708a.5.5 0 0 0 0-.707L7.828 10l4.596-4.596a.5.5 0 0 0 0-.707l-.707-.707Z"/></symbol><symbol id="ChevronLeftSmall" viewBox="0 0 16 16"><path d="M9.303 3.404a.5.5 0 0 0-.707 0L5.061 6.939l-.707.707a.5.5 0 0 0 0 .707l.707.707 3.535 3.536a.5.5 0 0 0 .707 0l.707-.707a.5.5 0 0 0 0-.707L6.828 8l3.182-3.182a.5.5 0 0 0 0-.707l-.707-.707Z"/></symbol><symbol id="ChevronRightLarge" viewBox="0 0 24 24"><path d="M10.577 5.284a.5.5 0 0 1 .707 0l5.657 5.657.707.707a.5.5 0 0 1 0 .707l-6.364 6.364a.5.5 0 0 1-.707 0l-.707-.707a.5.5 0 0 1 0-.707l5.303-5.303L9.87 6.698a.5.5 0 0 1 0-.707l.707-.707Z"/></symbol><symbol id="ChevronRightMedium" viewBox="0 0 20 20"><path d="M8.286 3.988a.5.5 0 0 1 .708 0l4.95 4.95.706.707a.5.5 0 0 1 0 .707l-.707.707-4.95 4.95a.5.5 0 0 1-.707 0l-.707-.707a.5.5 0 0 1 0-.707l4.596-4.596L7.58 5.403a.5.5 0 0 1 0-.708l.707-.707Z"/></symbol><symbol id="ChevronRightSmall" viewBox="0 0 16 16"><path d="M6.696 3.354a.5.5 0 0 1 .708 0l3.535 3.535.707.707a.5.5 0 0 1 0 .707l-.707.707-3.535 3.536a.5.5 0 0 1-.708 0l-.707-.707a.5.5 0 0 1 0-.707L9.171 7.95 5.99 4.768a.5.5 0 0 1 0-.707l.707-.707Z"/></symbol><symbol id="ChevronUpLarge" viewBox="0 0 24 24"><path d="M5.284 13.423a.5.5 0 0 1 0-.707L10.94 7.06l.707-.707a.5.5 0 0 1 .707 0l6.364 6.364a.5.5 0 0 1 0 .707l-.707.707a.5.5 0 0 1-.707 0l-5.303-5.303-5.304 5.303a.5.5 0 0 1-.707 0l-.707-.707Z"/></symbol><symbol id="ChevronUpMedium" viewBox="0 0 20 20"><path d="M3.988 11.713a.5.5 0 0 1 0-.707l4.95-4.95.707-.706a.5.5 0 0 1 .707 0l.707.707 4.95 4.95a.5.5 0 0 1 0 .707l-.707.707a.5.5 0 0 1-.707 0L9.999 7.824l-4.596 4.597a.5.5 0 0 1-.708 0l-.707-.707Z"/></symbol><symbol id="ChevronUpSmall" viewBox="0 0 16 16"><path d="M3.354 9.303a.5.5 0 0 1 0-.707l3.535-3.535.707-.707a.5.5 0 0 1 .707 0l.707.707 3.536 3.535a.5.5 0 0 1 0 .707l-.707.708a.5.5 0 0 1-.707 0L7.95 6.829 4.768 10.01a.5.5 0 0 1-.707 0l-.707-.707Z"/></symbol><symbol id="ClipboardMedium" viewBox="0 0 20 20"><path d="M9 2a1 1 0 0 0 0 2h2a1 1 0 1 0 0-2H9ZM5.75 3a1 1 0 0 1 1 1 1 1 0 0 0 1 1h4.5a1 1 0 0 0 1-1 1 1 0 0 1 1-1h.375C15.385 3 16 3.616 16 4.375V16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4.375C4 3.615 4.616 3 5.375 3h.375Z"/></symbol><symbol id="ClipboardSmall" viewBox="0 0 16 16"><path d="M7 1a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2H7ZM4 2a1 1 0 0 1 1 1 1 1 0 0 0 1 1h4a1 1 0 0 0 1-1 1 1 0 1 1 2 0v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3a1 1 0 0 1 1-1Z"/></symbol><symbol id="CloseLarge" viewBox="0 0 24 24"><path d="M15.89 17.303a.5.5 0 0 0 .706 0l.707-.707a.5.5 0 0 0 0-.707L13.414 12l3.89-3.89a.5.5 0 0 0 0-.706l-.708-.707a.5.5 0 0 0-.707 0L12 10.586l-3.89-3.89a.5.5 0 0 0-.706 0l-.707.708a.5.5 0 0 0 0 .707L10.586 12l-3.89 3.89a.5.5 0 0 0 0 .706l.708.707a.5.5 0 0 0 .707 0L12 13.414l3.89 3.89Z"/></symbol><symbol id="CloseMedium" viewBox="0 0 20 20"><path d="M13.182 14.596a.5.5 0 0 0 .707 0l.707-.707a.5.5 0 0 0 0-.707L11.414 10l3.182-3.182a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0L10 8.586 6.818 5.404a.5.5 0 0 0-.707 0l-.707.707a.5.5 0 0 0 0 .707L8.586 10l-3.182 3.182a.5.5 0 0 0 0 .707l.707.707a.5.5 0 0 0 .707 0L10 11.414l3.182 3.182Z"/></symbol><symbol id="CloseSmall" viewBox="0 0 16 16"><path d="M10.475 11.89a.5.5 0 0 0 .707 0l.707-.708a.5.5 0 0 0 0-.707L9.414 8l2.475-2.475a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0L8 6.586 5.525 4.11a.5.5 0 0 0-.707 0l-.707.707a.5.5 0 0 0 0 .707L6.586 8 4.11 10.475a.5.5 0 0 0 0 .707l.707.707a.5.5 0 0 0 .707 0L8 9.414l2.475 2.475Z"/></symbol><symbol id="CloudSmall" viewBox="0 0 16 16"><path d="M12 7.5c0 .17-.012.337-.035.5h.535a2.5 2.5 0 0 1 0 5h-8c-.08 0-.16-.004-.239-.011A3 3 0 1 1 7 10a.5.5 0 1 0 1 0 4 4 0 0 0-2.75-3.8A3.501 3.501 0 0 1 12 7.5Z"/></symbol><symbol id="CodeMedium" viewBox="0 0 20 20"><path d="M10.897 2.035a.5.5 0 0 0-.58.405L7.714 17.212a.5.5 0 0 0 .405.58l.985.173a.5.5 0 0 0 .58-.405l2.604-14.773a.5.5 0 0 0-.405-.579l-.985-.173Zm2.7 12.51a.5.5 0 0 0 .706 0l3.536-3.535.707-.707a.5.5 0 0 0 0-.707l-.707-.707-3.536-3.536a.5.5 0 0 0-.707 0l-.707.708a.5.5 0 0 0 0 .707l3.182 3.182-3.182 3.182a.5.5 0 0 0 0 .707l.707.707ZM6.302 5.355a.5.5 0 0 0-.707 0L2.061 8.889l-.707.707a.5.5 0 0 0 0 .707l.707.707 3.535 3.536a.5.5 0 0 0 .707 0l.707-.707a.5.5 0 0 0 0-.707L3.828 9.95 7.01 6.768a.5.5 0 0 0 0-.707l-.707-.707Z"/></symbol><symbol id="CodeSmall" viewBox="0 0 16 16"><path d="M7.913 2.974a.5.5 0 0 1 .58-.406l.984.174a.5.5 0 0 1 .406.579l-1.737 9.848a.5.5 0 0 1-.579.406l-.985-.174a.5.5 0 0 1-.405-.58l1.736-9.847Zm-6.56 4.672a.5.5 0 0 0 0 .708l1.061 1.06 1.74 1.74c.21.21.552.21.763 0l.68-.68a.5.5 0 0 0 0-.706L3.827 8l1.768-1.768a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0L1.354 7.646Zm12.304-1.06 1.06 1.06a.5.5 0 0 1 0 .708l-2.828 2.828a.5.5 0 0 1-.707 0l-.707-.707a.5.5 0 0 1 0-.707L12.243 8l-1.768-1.768a.5.5 0 0 1 0-.707l.679-.679a.54.54 0 0 1 .763 0l1.74 1.74Z"/></symbol><symbol id="CollapseMedium" viewBox="0 0 20 20"><path d="M6.268 12.32H3.682a1 1 0 1 1 0-2h5a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0v-2.586L3.707 17.71a1 1 0 0 1-1.414-1.414l3.975-3.975ZM13.732 7.682h2.586a1 1 0 0 1 0 2H11.32a1 1 0 0 1-1-1v-5a1 1 0 1 1 2 0v2.586l3.974-3.975a1 1 0 1 1 1.414 1.414l-3.975 3.975Z"/></symbol><symbol id="CollapseSmall" viewBox="0 0 16 16"><path d="M8 3v4a1 1 0 0 0 1 1h4a1 1 0 1 0 0-2h-1.586l2.207-2.207a1 1 0 0 0-1.414-1.414L10 4.586V3a1 1 0 1 0-2 0ZM8 12.998v-4a1 1 0 0 0-1-1H3a1 1 0 1 0 0 2h1.586l-2.207 2.207a1 1 0 1 0 1.414 1.414L6 11.412v1.586a1 1 0 0 0 2 0Z"/></symbol><symbol id="CompatibilityMedium" viewBox="0 0 20 20"><path d="M8 17.261a.793.793 0 0 0-.521-.729 7.001 7.001 0 0 1-.315-.13.793.793 0 0 0-.884.146.739.739 0 0 1-1.045 0L3.45 14.766a.74.74 0 0 1 0-1.045.793.793 0 0 0 .147-.885 6.927 6.927 0 0 1-.13-.314.794.794 0 0 0-.73-.521.739.739 0 0 1-.738-.739V8.74C2 8.33 2.33 8 2.739 8a.793.793 0 0 0 .729-.521c.04-.106.084-.211.13-.315a.793.793 0 0 0-.146-.884.739.739 0 0 1 0-1.045L5.235 3.45a.739.739 0 0 1 1.045 0c.231.232.585.28.884.147.104-.046.209-.09.315-.13A.793.793 0 0 0 8 2.738C8 2.332 8.33 2 8.739 2h2.522c.408 0 .739.33.739.739 0 .327.216.611.521.729.106.04.211.084.314.13a.794.794 0 0 0 .885-.147.739.739 0 0 1 1.045 0l1.784 1.784a.74.74 0 0 1 0 1.045.793.793 0 0 0-.147.884c.046.104.09.209.13.315a.793.793 0 0 0 .73.521c.407 0 .738.33.738.739v2.522c0 .408-.33.739-.739.739a.793.793 0 0 0-.729.521c-.04.106-.084.211-.13.314a.794.794 0 0 0 .146.885.739.739 0 0 1 0 1.045l-1.783 1.784a.739.739 0 0 1-1.045 0 .793.793 0 0 0-.884-.147c-.104.046-.209.09-.315.13a.793.793 0 0 0-.521.73c0 .407-.33.738-.739.738H8.74A.739.739 0 0 1 8 17.261Zm5.375-10.58a.5.5 0 0 1 .707 0l.707.708a.5.5 0 0 1 0 .707l-5.66 5.66a.5.5 0 0 1-.706 0l-1.06-1.061-2.126-2.125a.5.5 0 0 1 0-.707l.707-.707a.5.5 0 0 1 .707 0l2.125 2.125 4.6-4.6Z"/></symbol><symbol id="CompatibilitySmall" viewBox="0 0 16 16"><path d="M6.786 1A.786.786 0 0 0 6 1.786v.238c0 .19-.121.359-.297.431a.47.47 0 0 1-.515-.095l-.168-.168a.786.786 0 0 0-1.111 0L2.192 3.909a.786.786 0 0 0 0 1.11l.168.17a.47.47 0 0 1 .096.514.473.473 0 0 1-.432.297h-.238A.786.786 0 0 0 1 6.786v2.428c0 .434.352.786.786.786h.238c.19 0 .359.121.432.297a.47.47 0 0 1-.096.515l-.168.168a.786.786 0 0 0 0 1.111l1.717 1.718a.786.786 0 0 0 1.111 0l.168-.169a.47.47 0 0 1 .515-.096.473.473 0 0 1 .297.432v.238c0 .434.352.786.786.786h2.428a.786.786 0 0 0 .786-.786v-.238c0-.19.121-.359.297-.432a.47.47 0 0 1 .515.096l.168.168a.786.786 0 0 0 1.111 0l1.717-1.717a.786.786 0 0 0 0-1.111l-.168-.168a.47.47 0 0 1-.096-.515.473.473 0 0 1 .432-.297h.238A.786.786 0 0 0 15 9.214V6.786A.786.786 0 0 0 14.214 6h-.238a.473.473 0 0 1-.432-.297.47.47 0 0 1 .096-.515l.168-.168a.786.786 0 0 0 0-1.111l-1.717-1.717a.786.786 0 0 0-1.111 0l-.168.168a.47.47 0 0 1-.515.096.473.473 0 0 1-.297-.432v-.238A.786.786 0 0 0 9.214 1H6.786Zm3.982 3.975a.5.5 0 0 1 .707 0l.707.707a.5.5 0 0 1 0 .707l-3.89 3.89-1.06 1.06a.5.5 0 0 1-.707 0L3.697 8.51a.5.5 0 0 1 0-.707l.707-.707a.5.5 0 0 1 .707 0l1.768 1.768 3.889-3.89Z"/></symbol><symbol id="ConnectionSmall" viewBox="0 0 16 16"><path d="M4 3.25a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5Zm2.126 1.5h-.004a2.25 2.25 0 1 1 0-1.5H9a2.75 2.75 0 1 1 0 5.5H7a1.25 1.25 0 1 0 0 2.5H9.878a2.25 2.25 0 1 1 0 1.5H7a2.75 2.75 0 1 1 0-5.5H9a1.25 1.25 0 1 0 0-2.5H6.126ZM12.75 12a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"/></symbol><symbol id="CopyMedium" viewBox="0 0 20 20"><path d="M14 4h-4a1 1 0 0 0-1 1H7a3 3 0 0 1 3-3h4a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3v-2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1ZM6 8h4a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1ZM3 9a3 3 0 0 1 3-3h4a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V9Z"/></symbol><symbol id="CopySmall" viewBox="0 0 16 16"><path d="M12 3H8a1 1 0 0 0-1 1H5a3 3 0 0 1 3-3h4a3 3 0 0 1 3 3v4a3 3 0 0 1-3 3V9a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1ZM4 7h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1ZM1 8a3 3 0 0 1 3-3h4a3 3 0 0 1 3 3v4a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V8Z"/></symbol><symbol id="CriticalMedium" viewBox="0 0 20 20"><path d="m13.293 3.293 3.414 3.414a1 1 0 0 1 .293.707v5.172a1 1 0 0 1-.293.707l-3.414 3.414a1 1 0 0 1-.707.293H7.414a1 1 0 0 1-.707-.293l-3.414-3.414A1 1 0 0 1 3 12.586V7.414a1 1 0 0 1 .293-.707l3.414-3.414A1 1 0 0 1 7.414 3h5.172a1 1 0 0 1 .707.293ZM9 7a1 1 0 0 1 2 0v3a1 1 0 1 1-2 0V7Zm0 6a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z"/></symbol><symbol id="CriticalSmall" viewBox="0 0 16 16"><path d="m2.293 5.707 3.414-3.414A1 1 0 0 1 6.414 2h3.172a1 1 0 0 1 .707.293l3.414 3.414a1 1 0 0 1 .293.707v3.172a1 1 0 0 1-.293.707l-3.414 3.414a1 1 0 0 1-.707.293H6.414a1 1 0 0 1-.707-.293l-3.414-3.414A1 1 0 0 1 2 9.586V6.414a1 1 0 0 1 .293-.707ZM7 5a1 1 0 0 1 2 0v3a1 1 0 1 1-2 0V5Zm0 6a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z"/></symbol><symbol id="DarkModeMedium" viewBox="0 0 20 20"><path d="M4.378 15.002a8.137 8.137 0 0 1-1.796-2.656A8.36 8.36 0 0 1 2 9.286a8.218 8.218 0 0 1 .632-3.036 8.155 8.155 0 0 1 1.822-2.707c.247-.247.499-.474.755-.68.38-.307.871.133.744.604a7.911 7.911 0 0 0-.26 1.72 9.27 9.27 0 0 0 .531 3.39c.388 1.096.97 2.032 1.746 2.808a7.474 7.474 0 0 0 2.833 1.77 9.19 9.19 0 0 0 3.364.532 8 8 0 0 0 1.763-.27c.469-.128.904.36.6.739-.21.262-.441.518-.693.77a8.157 8.157 0 0 1-2.707 1.822 7.867 7.867 0 0 1-3.035.607 8 8 0 0 1-3.061-.557 8.137 8.137 0 0 1-2.656-1.796Z"/></symbol><symbol id="DarkModeSmall" viewBox="0 0 16 16"><path d="M3.068 12.308a7.076 7.076 0 0 1-1.562-2.31A7.27 7.27 0 0 1 1 7.336c.015-.91.198-1.79.55-2.64.352-.865.88-1.65 1.584-2.354.164-.164.33-.317.498-.46.372-.317.868.118.756.593a6.965 6.965 0 0 0-.176 1.297 8.063 8.063 0 0 0 .462 2.948 6.436 6.436 0 0 0 1.518 2.442 6.5 6.5 0 0 0 2.464 1.54 7.996 7.996 0 0 0 2.926.462c.462-.02.907-.082 1.336-.184.473-.114.903.377.59.749a8.4 8.4 0 0 1-.474.513 7.093 7.093 0 0 1-2.354 1.584c-.85.352-1.73.528-2.64.528a6.956 6.956 0 0 1-2.662-.484 7.077 7.077 0 0 1-2.31-1.562Z"/></symbol><symbol id="DashboardSmall" viewBox="0 0 16 16"><path d="m10.193 2.707.237-.074a.497.497 0 0 1 .103-.017V15L2 13.523S3.029 5.56 3.067 5.28c.051-.371.064-.383.457-.507l.687-.213.648-.2c.083-.597.377-1.367.762-1.98.548-.87 1.223-1.36 1.901-1.38a1.1 1.1 0 0 1 .921.408h.012c.032-.004.065-.006.097-.006h.002c.525 0 .96.3 1.257.867.092.176.156.35.2.493l.182-.056ZM7.02 3.69l1.44-.446c.004-.375-.037-.93-.224-1.322-.2.083-.369.227-.489.356-.324.348-.588.88-.727 1.412Zm.923-2.13a.691.691 0 0 0-.408-.108c-1.046.03-1.96 1.667-2.193 2.758L6.021 4l.503-.156c.132-.693.462-1.411.893-1.874.166-.178.343-.315.526-.41ZM6.917 8.39c-.374-.24-.683-.438-.701-.725-.009-.133 0-.665.842-.718a2.462 2.462 0 0 1 1.058.184l.434-1.624s-.375-.187-1.106-.141c-1.897.12-2.757 1.448-2.675 2.759.056.875.57 1.24 1.022 1.561.352.25.666.473.692.888a.539.539 0 0 1-.526.578c-.609.039-1.37-.536-1.37-.536l-.29 1.24s.755.81 2.128.724c1.144-.073 1.938-.989 1.854-2.328-.065-1.03-.79-1.494-1.362-1.862ZM8.705 1.87c.16.414.2.892.205 1.236l.67-.208c-.108-.347-.36-.93-.875-1.028Zm5.65 12.217-3.54.88V2.751l.836.814s.997.016 1.048.02a.136.136 0 0 1 .122.114l1.534 10.387Z"/></symbol><symbol id="DesktopSmall" viewBox="0 0 16 16"><path d="M13 2H3a1 1 0 0 0-1 1v7h12V3a1 1 0 0 0-1-1ZM3 1a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2.999c-.002.255-.007.459-.018.625a1.79 1.79 0 0 1-.048.36A3.253 3.253 0 0 1 5.5 14a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1c-.24 0-.359-.002-.433-.014a1.79 1.79 0 0 1-.049-.361c-.01-.166-.015-.37-.017-.625H13a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H3Zm6.001 12H7c-.002.268-.007.497-.02.688-.006.105-.015.21-.03.312H9.05a3.873 3.873 0 0 1-.03-.312c-.013-.191-.018-.42-.02-.688Z"/></symbol><symbol id="DimModeMedium" viewBox="0 0 20 20"><path d="M10 4a1 1 0 0 0-1 1v1a1 1 0 1 0 2 0V5a1 1 0 0 0-1-1Zm3.874 9a4 4 0 1 0-7.748 0h7.748ZM16 13h1a1 1 0 1 0 0-2h-1a1 1 0 1 0 0 2ZM3 13a1 1 0 1 1 0-2h1a1 1 0 1 1 0 2H3Zm2-5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm11-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM4 14.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5ZM6.5 16a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-7Z"/></symbol><symbol id="DimModeSmall" viewBox="0 0 16 16"><path d="M8 2a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0V3a1 1 0 0 0-1-1Zm2.83 8a3 3 0 1 0-5.659 0h5.658ZM13 10h1a1 1 0 1 0 0-2h-1a1 1 0 1 0 0 2ZM2 10a1 1 0 1 1 0-2h1a1 1 0 0 1 0 2H2Zm2-6a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm7 1a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm-8 6.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5ZM5.5 13a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5Z"/></symbol><symbol id="DownloadMedium" viewBox="0 0 20 20"><path d="M13.707 9.293a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414 0l-3-3a1 1 0 0 1 1.414-1.414L9 10.586V3a1 1 0 0 1 2 0v7.586l1.293-1.293a1 1 0 0 1 1.414 0Z"/><path d="M3.553 14.105a1 1 0 0 1 1.341.448l.448.894a1 1 0 0 0 .894.553h7.528a1 1 0 0 0 .894-.553l.447-.894a1 1 0 0 1 1.79.894l-.448.895A3 3 0 0 1 13.764 18H6.236a3 3 0 0 1-2.683-1.658l-.447-.895a1 1 0 0 1 .447-1.341Z"/></symbol><symbol id="DownloadSmall" viewBox="0 0 16 16"><path d="M11.518 6.482a1 1 0 0 1 0 1.414l-2.81 2.811a1 1 0 0 1-1.415 0l-2.81-2.81a1 1 0 0 1 1.413-1.415L7 7.586V3a1 1 0 1 1 2 0v4.586l1.104-1.104a1 1 0 0 1 1.414 0Z"/><path d="M2.553 10.105a1 1 0 0 1 1.341.448l.448.894a1 1 0 0 0 .894.553h5.528a1 1 0 0 0 .894-.553l.447-.894a1 1 0 0 1 1.79.894l-.448.895A3 3 0 0 1 10.764 14H5.236a3 3 0 0 1-2.683-1.658l-.447-.895a1 1 0 0 1 .447-1.341Z"/></symbol><symbol id="EnterMedium" viewBox="0 0 20 20"><path d="M15 2a1 1 0 0 0-1 1v10H6.826l1.124-1.124a1 1 0 1 0-1.414-1.414l-2.829 2.829a1 1 0 0 0 0 1.414l2.829 2.828A1 1 0 0 0 7.95 16.12L6.83 15H15a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Z"/></symbol><symbol id="EnterSmall" viewBox="0 0 16 16"><path d="M13 2a1 1 0 0 0-1 1v6H5.826L6.95 7.876a1 1 0 0 0-1.414-1.414L2.707 9.291a1 1 0 0 0 0 1.414l2.829 2.828A1 1 0 0 0 6.95 12.12L5.83 11H13a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1Z"/></symbol><symbol id="ExpandMedium" viewBox="0 0 20 20"><path d="M5.414 16.002H8a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1v-5a1 1 0 1 1 2 0v2.586l3.975-3.975a1 1 0 0 1 1.414 1.414l-3.975 3.975ZM14.586 4H12a1 1 0 1 1 0-2h5a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0V5.414L12.025 9.39a1 1 0 1 1-1.414-1.414L14.586 4Z"/></symbol><symbol id="ExpandSmall" viewBox="0 0 16 16"><path d="M14 7V3a1 1 0 0 0-1-1H9a1 1 0 1 0 0 2h1.586L8.379 6.207A1 1 0 1 0 9.793 7.62L12 5.414V7a1 1 0 1 0 2 0ZM2 8.998v4a1 1 0 0 0 1 1h4a1 1 0 1 0 0-2H5.414L7.621 9.79a1 1 0 1 0-1.414-1.415L4 10.584V8.998a1 1 0 0 0-2 0Z"/></symbol><symbol id="ExternalMedium" viewBox="0 0 20 20"><path d="M5 4h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM2 5a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5Zm5 2a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0V9.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L10.586 8H8a1 1 0 0 1-1-1Z"/></symbol><symbol id="ExternalNavMedium" viewBox="0 0 20 20"><path d="M7.354 6a1 1 0 0 1 1-1h5.596a1 1 0 0 1 1 1v5.975a1 1 0 0 1-2 0v-3.56l-6.243 6.242a1 1 0 0 1-1.414-1.414L11.536 7H8.354a1 1 0 0 1-1-1Z"/></symbol><symbol id="ExternalNavSmall" viewBox="0 0 16 16"><path d="M5 5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0V7.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L8.586 6H6a1 1 0 0 1-1-1Z"/></symbol><symbol id="ExternalSmall" viewBox="0 0 16 16"><path d="M4 2.5h8A1.5 1.5 0 0 1 13.5 4v8a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 12V4A1.5 1.5 0 0 1 4 2.5ZM1 4a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4Zm4 1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0V7.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L8.586 6H6a1 1 0 0 1-1-1Z"/></symbol><symbol id="FileMedium" viewBox="0 0 20 20"><path d="M6 14a1 1 0 0 0 1 1h6a1 1 0 1 0 0-2H7a1 1 0 0 0-1 1Zm0-4a1 1 0 0 0 1 1h6a1 1 0 1 0 0-2H7a1 1 0 0 0-1 1Zm0-4a1 1 0 0 0 1 1h2a1 1 0 0 0 0-2H7a1 1 0 0 0-1 1Zm9.707-.707-3-3A.996.996 0 0 0 12 2H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V6a.997.997 0 0 0-.293-.707Z"/></symbol><symbol id="FileSmall" viewBox="0 0 16 16"><path d="M4 1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V5.414a1 1 0 0 0-.293-.707L11 3 9.293 1.293A1 1 0 0 0 8.586 1H4Zm2 4a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2H6ZM5 9a1 1 0 0 1 1-1h4a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1Zm1 2a1 1 0 1 0 0 2h4a1 1 0 1 0 0-2H6Z"/></symbol><symbol id="FilterLarge" viewBox="0 0 24 24"><path d="M2 7a1 1 0 0 1 1-1h18a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm3 5a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1Zm4 4a1 1 0 1 0 0 2h6a1 1 0 1 0 0-2H9Z"/></symbol><symbol id="FilterMedium" viewBox="0 0 20 20"><path d="M2 6a1 1 0 0 1 1-1h14a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm3 4a1 1 0 0 1 1-1h8a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1Zm4 3a1 1 0 1 0 0 2h2a1 1 0 1 0 0-2H9Z"/></symbol><symbol id="FilterSmall" viewBox="0 0 16 16"><path d="M2 5a1 1 0 0 1 1-1h10a1 1 0 1 1 0 2H3a1 1 0 0 1-1-1Zm2 3a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H5a1 1 0 0 1-1-1Zm3 2a1 1 0 1 0 0 2h2a1 1 0 1 0 0-2H7Z"/></symbol><symbol id="GitHubLarge" viewBox="0 0 24 24"><path d="M12 3c-4.973 0-9 4.13-9 9.228 0 4.083 2.576 7.532 6.154 8.754.45.081.619-.196.619-.438 0-.22-.012-.946-.012-1.719-2.261.427-2.846-.565-3.026-1.084-.101-.265-.54-1.084-.923-1.303-.315-.173-.764-.6-.01-.612.708-.011 1.214.67 1.383.946.81 1.396 2.104 1.004 2.621.762.079-.6.315-1.004.574-1.235-2.003-.23-4.095-1.026-4.095-4.556 0-1.003.349-1.834.922-2.48-.09-.23-.404-1.176.09-2.445 0 0 .754-.242 2.476.946a8.158 8.158 0 0 1 2.25-.312c.764 0 1.53.104 2.25.312 1.72-1.2 2.474-.946 2.474-.946.495 1.269.18 2.215.09 2.445.574.646.923 1.465.923 2.48 0 3.541-2.104 4.326-4.106 4.556.326.289.607.842.607 1.707 0 1.235-.011 2.227-.011 2.538 0 .242.169.53.619.438a9.036 9.036 0 0 0 4.439-3.366A9.402 9.402 0 0 0 21 12.228C21 7.129 16.973 3 12 3Z"/></symbol><symbol id="GitHubMedium" viewBox="0 0 20 20"><path d="M9.997 2C5.58 2 2 5.67 2 10.202c0 3.63 2.29 6.696 5.468 7.782.4.072.55-.174.55-.39 0-.194-.01-.84-.01-1.527-2.01.38-2.53-.502-2.69-.964-.09-.236-.479-.963-.819-1.158-.28-.154-.68-.534-.01-.544.63-.01 1.08.595 1.23.841.72 1.24 1.87.892 2.329.677.07-.534.28-.892.51-1.097-1.78-.205-3.639-.913-3.639-4.05 0-.892.31-1.63.82-2.205-.08-.205-.36-1.045.08-2.173 0 0 .67-.216 2.199.84a7.247 7.247 0 0 1 2-.276c.68 0 1.359.092 1.999.276 1.53-1.066 2.199-.84 2.199-.84.44 1.128.16 1.968.08 2.173.51.575.82 1.302.82 2.205 0 3.147-1.87 3.845-3.65 4.05.29.256.54.748.54 1.517 0 1.097-.01 1.979-.01 2.256 0 .215.15.471.55.39a8.028 8.028 0 0 0 3.945-2.993 8.359 8.359 0 0 0 1.504-4.79C17.995 5.671 14.415 2 9.997 2Z"/></symbol><symbol id="GitHubSmall" viewBox="0 0 16 16"><path d="M8 1C4.133 1 1 4.213 1 8.18c0 3.176 2.004 5.86 4.786 6.811.35.063.482-.153.482-.341 0-.17-.01-.736-.01-1.337-1.758.332-2.213-.44-2.353-.844-.079-.206-.42-.843-.717-1.014-.246-.135-.596-.467-.01-.476.552-.008.946.521 1.077.736.63 1.086 1.636.781 2.039.593.061-.467.245-.781.446-.96-1.558-.18-3.185-.8-3.185-3.545 0-.781.271-1.427.717-1.93-.07-.18-.315-.915.07-1.902 0 0 .587-.189 1.926.735a6.343 6.343 0 0 1 1.75-.242c.595 0 1.19.08 1.75.242 1.338-.933 1.925-.735 1.925-.735.385.987.14 1.723.07 1.902.446.503.717 1.14.717 1.93 0 2.755-1.636 3.365-3.194 3.544.254.225.473.656.473 1.329 0 .96-.009 1.732-.009 1.974 0 .188.131.413.481.341a7.027 7.027 0 0 0 3.453-2.619A7.318 7.318 0 0 0 15 8.179C15 4.213 11.867 1 8 1Z"/></symbol><symbol id="HideMedium" viewBox="0 0 20 20"><path d="M16.1 2.535a.757.757 0 0 1 1.07 1.07L3.604 17.17a.757.757 0 0 1-1.07-1.07L16.1 2.535ZM7.093 15.367C8.013 15.76 8.991 16 10 16c3.777 0 7.12-3.37 8.638-5.47a.9.9 0 0 0 0-1.059 16.972 16.972 0 0 0-2.72-2.928l-2.14 2.14a4 4 0 0 1-5.095 5.095l-1.59 1.59Z"/><path d="M10.532 11.928a2.004 2.004 0 0 0 1.396-1.396l-1.396 1.396ZM10 4c1.353 0 2.65.433 3.828 1.084L12.232 6.68a4 4 0 0 0-5.552 5.552l-1.83 1.832c-1.506-1.108-2.727-2.481-3.488-3.535a.9.9 0 0 1 0-1.058C2.88 7.371 6.223 4 10 4Z"/><path d="M10 8c.27 0 .527.053.762.15L8.15 10.762A2 2 0 0 1 10 8Z"/><path d="M12 10a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm-3.4 0a1.4 1.4 0 1 0 2.8 0 1.4 1.4 0 0 0-2.8 0Z"/></symbol><symbol id="HistoryMedium" viewBox="0 0 20 20"><path d="M5.05 5.05 3.962 3.962a.5.5 0 0 0-.846.266l-.77 4.361a.5.5 0 0 0 .58.58l4.36-.77a.5.5 0 0 0 .267-.846L6.464 6.464a5 5 0 1 1 0 7.072l-.353-.354a.5.5 0 0 0-.707 0l-.707.707a.5.5 0 0 0 0 .707l.353.354a7 7 0 1 0 0-9.9ZM11 7.5a1 1 0 1 0-2 0V10a1 1 0 0 0 .293.707l1.5 1.5a1 1 0 0 0 1.414-1.414L11 9.586V7.5Z"/></symbol><symbol id="HistorySmall" viewBox="0 0 16 16"><path d="m3.72 3.74-.785-.786a.389.389 0 0 0-.657.208L1.68 6.549a.389.389 0 0 0 .45.45L5.517 6.4a.389.389 0 0 0 .207-.657l-.787-.788a4.302 4.302 0 1 1-.002 6.086l-.304-.304a.43.43 0 0 0-.608 0l-.609.608a.43.43 0 0 0 0 .608l.305.305a6.023 6.023 0 1 0 .001-8.52ZM8.75 6a.75.75 0 0 0-1.5 0v2c0 .199.079.39.22.53l1 1a.75.75 0 0 0 1.06-1.06l-.78-.78V6Z"/></symbol><symbol id="IdentitySmall" viewBox="0 0 16 16"><path d="M9.292 1.02a.573.573 0 0 0-.346.014.527.527 0 0 0-.265.209l-4.555 7.11a.788.788 0 0 0 .017.877c.09.13.217.235.368.301a.95.95 0 0 0 .483.075l1.695-.18-.714 5.01a.47.47 0 0 0 .072.321.528.528 0 0 0 .27.21c.114.04.238.043.353.009a.533.533 0 0 0 .282-.198l5.133-7.187a.789.789 0 0 0 .019-.894.872.872 0 0 0-.37-.314.95.95 0 0 0-.493-.08l-1.72.184.156-4.968a.475.475 0 0 0-.1-.311.537.537 0 0 0-.285-.188Z"/></symbol><symbol id="ImageMedium" viewBox="0 0 20 20"><path d="M2 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm7.5 3.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm-4.872 7.193 2.47-3.176a.5.5 0 0 1 .795.007L9 13l2.551-3.827a.5.5 0 0 1 .85.03l3.171 5.549a.5.5 0 0 1-.434.748H5.022a.5.5 0 0 1-.394-.807Z"/></symbol><symbol id="ImageSmall" viewBox="0 0 16 16"><path d="M2 4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4Zm5 1.25a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0Zm-3.394 6.448L5.511 9.18a.5.5 0 0 1 .802.007l.854 1.17 2.047-3.159a.5.5 0 0 1 .857.03l2.516 4.53a.5.5 0 0 1-.437.742H4.005a.5.5 0 0 1-.399-.802Z"/></symbol><symbol id="InfoMedium" viewBox="0 0 20 20"><path d="M3 15a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10Zm6-8a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm1.5 2a.5.5 0 0 1 .5.5v3a.5.5 0 0 0 .5.5.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1 .5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5.5.5 0 0 1 0-1h2Z"/></symbol><symbol id="InfoSmall" viewBox="0 0 16 16"><path d="M2 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v8Zm5-7a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm1.5 2a.5.5 0 0 1 .5.5v3a.5.5 0 0 0 .5.5.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1 .5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5.5.5 0 0 1 0-1h2Z"/></symbol><symbol id="JSONSmall" viewBox="0 0 16 16"><path d="M6.013 14.318c-.501 0-.945-.099-1.33-.296a2.033 2.033 0 0 1-.86-.833c-.198-.35-.283-.77-.256-1.264l.135-2.043c.026-.367-.05-.645-.229-.833-.17-.188-.461-.282-.874-.282H1.5a.5.5 0 0 1-.5-.5V7.72a.5.5 0 0 1 .5-.5h1.1c.412 0 .703-.094.873-.282.18-.188.255-.462.229-.82l-.135-2.11c-.027-.484.058-.9.256-1.25.197-.35.483-.619.86-.807.385-.188.829-.282 1.33-.282h.428a.5.5 0 0 1 .5.5v.546a.5.5 0 0 1-.5.5h-.186c-.322 0-.578.076-.766.228-.179.153-.26.394-.242.726l.135 2.097c.036.528-.121.954-.47 1.277-.341.314-.814.475-1.419.483a.047.047 0 0 1-.047-.047c0-.026.021-.047.047-.046.596.008 1.064.174 1.405.497.358.322.52.752.484 1.29l-.135 2.097c-.009.296.076.529.256.699.188.161.439.242.752.242h.186a.5.5 0 0 1 .5.5v.559a.5.5 0 0 1-.5.5h-.428ZM9.56 14.318a.5.5 0 0 1-.5-.5v-.56a.5.5 0 0 1 .5-.5h.185c.313 0 .564-.08.752-.241.188-.17.274-.403.256-.7l-.135-2.096c-.036-.538.121-.968.47-1.29.35-.323.823-.489 1.419-.497.026 0 .047.02.047.046a.047.047 0 0 1-.047.047c-.596-.008-1.069-.169-1.418-.483-.35-.323-.507-.749-.47-1.277l.134-2.097c.018-.332-.068-.573-.256-.726-.179-.152-.43-.228-.752-.228h-.186a.5.5 0 0 1-.5-.5V2.17a.5.5 0 0 1 .5-.5h.428c.501 0 .94.094 1.317.282.385.188.676.457.873.807.198.35.283.766.256 1.25l-.135 2.11c-.027.358.05.632.229.82.18.188.47.282.874.282H14.5a.5.5 0 0 1 .5.5v.546a.5.5 0 0 1-.5.5h-1.1c-.403 0-.694.094-.873.282-.18.188-.255.466-.229.833l.135 2.043c.027.493-.058.914-.256 1.264a2.016 2.016 0 0 1-.873.833c-.377.197-.816.296-1.317.296h-.428Z"/></symbol><symbol id="LaptopSmall" viewBox="0 0 16 16"><path d="M2 4.25C2 3.56 2.56 3 3.25 3h9.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-9.5C2.56 10 2 9.44 2 8.75v-4.5Zm1.25.5a.5.5 0 0 1 .5-.5h8.5a.5.5 0 0 1 .5.5v3.5a.5.5 0 0 1-.5.5h-8.5a.5.5 0 0 1-.5-.5v-3.5ZM1.809 11H6a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1h4.191a.5.5 0 0 1 .447.724l-.5 1a.5.5 0 0 1-.447.276H2.309a.5.5 0 0 1-.447-.276l-.5-1A.5.5 0 0 1 1.809 11Z"/></symbol><symbol id="LightModeMedium" viewBox="0 0 20 20"><path d="M9 3a1 1 0 1 1 2 0v1a1 1 0 1 1-2 0V3Zm5 7a4 4 0 1 1-8 0 4 4 0 0 1 8 0Zm-4 5a1 1 0 0 0-1 1v1a1 1 0 1 0 2 0v-1a1 1 0 0 0-1-1Zm6-4a1 1 0 1 1 0-2h1a1 1 0 1 1 0 2h-1ZM2 10a1 1 0 0 0 1 1h1a1 1 0 1 0 0-2H3a1 1 0 0 0-1 1Zm4-5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm9 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm1 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM5 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"/></symbol><symbol id="LightModeSmall" viewBox="0 0 16 16"><path d="M7 2a1 1 0 0 1 2 0v1a1 1 0 1 1-2 0V2Zm4 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm-3 4a1 1 0 0 0-1 1v1a1 1 0 1 0 2 0v-1a1 1 0 0 0-1-1Zm4-4a1 1 0 0 1 1-1h1a1 1 0 1 1 0 2h-1a1 1 0 0 1-1-1ZM2 7a1 1 0 0 0 0 2h1a1 1 0 1 0 0-2H2Zm1-3a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm9-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-1 9a1 1 0 1 1 2 0 1 1 0 0 1-2 0Zm-7-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z"/></symbol><symbol id="LinkMedium" viewBox="0 0 20 20"><path d="M10.354 3.99a4 4 0 1 1 5.656 5.656l-.707.708-.707.707a2 2 0 0 1-2.828 0l1.414-1.415.707-.707.707-.707a2 2 0 1 0-2.828-2.828l-.707.707-.707.707-1.415 1.414a2 2 0 0 1 0-2.828l.707-.707.708-.707Zm-.708 12.02a4 4 0 0 1-5.656-5.656l.707-.708.707-.707a2 2 0 0 1 2.828 0l-1.414 1.415-.707.707-.707.707a2 2 0 1 0 2.828 2.828l.707-.707.707-.707 1.415-1.414a2 2 0 0 1 0 2.828l-.707.707-.708.707Zm3.536-9.192a1 1 0 0 0-1.414 0l-4.95 4.95a1 1 0 1 0 1.414 1.414l4.95-4.95a1 1 0 0 0 0-1.414Z"/></symbol><symbol id="LinkSmall" viewBox="0 0 16 16"><path d="M8.177 3.227a3.25 3.25 0 0 1 4.596 4.596l-.53.53-.53.53a1.5 1.5 0 0 1-2.122 0l1.06-1.06.531-.53.53-.53a1.75 1.75 0 0 0-2.475-2.475l-.53.53-.53.53-1.06 1.061a1.5 1.5 0 0 1 0-2.121l.53-.53.53-.53Zm-.354 9.546a3.25 3.25 0 0 1-4.596-4.596l.53-.53.53-.53a1.5 1.5 0 0 1 2.122 0l-1.06 1.06-.531.53-.53.53a1.75 1.75 0 1 0 2.475 2.475l.53-.53.53-.53 1.06-1.061a1.5 1.5 0 0 1 0 2.121l-.53.53-.53.531Zm2.652-7.248a.75.75 0 0 0-1.06 0l-3.89 3.89a.75.75 0 1 0 1.06 1.06l3.89-3.89a.75.75 0 0 0 0-1.06Z"/></symbol><symbol id="LiquidMedium" viewBox="0 0 20 20"><path d="M10.659 2.649c1.247 1.275 3.922 4.242 4.938 7.186a6 6 0 1 1-11.195 0C5.42 6.89 8.095 3.924 9.343 2.649a.914.914 0 0 1 1.316 0Zm-.666 4.02c.072.09.143.182.215.275.726.94 1.434 1.993 1.957 3.06.2.406.368.806.5 1.194.156.46.57.802 1.056.802.63 0 1.113-.564.928-1.167a11.697 11.697 0 0 0-.689-1.711c-.602-1.226-1.394-2.395-2.168-3.4a28.809 28.809 0 0 0-.29-.369A.946.946 0 0 0 10.76 5c-.84 0-1.29 1.01-.768 1.669Z"/></symbol><symbol id="LiquidSandboxMedium" viewBox="0 0 20 20"><path d="M5 4h10a1 1 0 0 1 1 1v2.828c.306.137.59.34.83.61.292.328.722.84 1.17 1.484V5a3 3 0 0 0-3-3H5a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h5.724a4.968 4.968 0 0 1-.69-2H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Zm1 1a1 1 0 0 0 0 2h6a1 1 0 1 0 0-2H6Zm0 3a1 1 0 0 0 0 2h4a1 1 0 1 0 0-2H6Zm-1 4a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1Zm7 3.408c0-2.398 1.88-4.76 2.664-5.64a.445.445 0 0 1 .672 0c.784.88 2.664 3.242 2.664 5.64a3 3 0 1 1-6 0Zm3.146-3.354a.5.5 0 0 1 .708 0c.194.195.472.529.703.927.228.392.443.899.443 1.427a.5.5 0 0 1-1 0c0-.273-.118-.599-.307-.924a3.77 3.77 0 0 0-.547-.723.5.5 0 0 1 0-.707Z"/></symbol><symbol id="LiquidSandboxSmall" viewBox="0 0 16 16"><path d="M3 2.5h10a.5.5 0 0 1 .5.5v3.593c.252.309.541.689.831 1.123.223.332.453.707.669 1.116V3a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h5.954a3.99 3.99 0 0 1-.803-1.5H3a.5.5 0 0 1-.5-.5V3a.5.5 0 0 1 .5-.5Zm9.706 8.006c.136.239.233.477.274.693l.02.208a.484.484 0 0 0 .012.108.5.5 0 0 0 .419.388.5.5 0 0 0 .57-.495 2.205 2.205 0 0 0-.052-.46 3.382 3.382 0 0 0-.392-.967 4.773 4.773 0 0 0-.703-.927.5.5 0 0 0-.708.707c.139.139.362.405.547.723l.013.022ZM15 12.408c0-.616-.124-1.23-.321-1.816a8.455 8.455 0 0 0-.423-1.017c-.214-.438-.457-.85-.702-1.222l-.012-.018-.011-.018-.006-.008-.02-.029-.005-.008a14.062 14.062 0 0 0-1.164-1.504.445.445 0 0 0-.672 0C10.88 7.648 9 10.01 9 12.408a3 3 0 0 0 6 0ZM4.5 4a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5Zm0 2a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4ZM4 8.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5Z"/></symbol><symbol id="LiquidSmall" viewBox="0 0 16 16"><path d="M7.66 2.363C6.693 3.435 4 6.718 4 10a4 4 0 0 0 8 0c0-3.282-2.693-6.565-3.66-7.637a.453.453 0 0 0-.68 0ZM8.987 5c-.393 0-.62.45-.403.777.564.846 1.111 1.83 1.475 2.866.074.21.27.357.494.357a.483.483 0 0 0 .468-.635c-.405-1.173-1.014-2.255-1.605-3.142l-.007-.01A.48.48 0 0 0 9.01 5h-.022Z"/></symbol><symbol id="LiquidTemplateSmall" viewBox="0 0 16 16"><path d="M3 1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3Zm4 2C5.5 4.25 4 6.125 4 8a3 3 0 0 0 6 0c0-1.875-1.5-3.75-3-5Z"/><path d="M4 14a1 1 0 0 0 1 1h7a2 2 0 0 0 2-2V4a1 1 0 0 0-1-1v10a1 1 0 0 1-1 1H4Z"/></symbol><symbol id="LockMedium" viewBox="0 0 20 20"><path d="M8 6a2 2 0 1 1 4 0v2H8V6ZM6 8V6a4 4 0 1 1 8 0v2h1a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h1Zm5 4.618a1.5 1.5 0 1 0-2 0V14a1 1 0 1 0 2 0v-1.382Z"/></symbol><symbol id="LockSmall" viewBox="0 0 16 16"><path d="M6 6a2 2 0 1 1 4 0v1H6V6Zm6 1V6a4 4 0 0 0-8 0v1a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1Zm-5 3a1 1 0 1 1 2 0v1a1 1 0 1 1-2 0v-1Z"/></symbol><symbol id="MenuLarge" viewBox="0 0 24 24"><path d="M4.667 5C4.298 5 4 5.224 4 5.5v1c0 .276.298.5.667.5h14.666c.369 0 .667-.224.667-.5v-1c0-.276-.299-.5-.667-.5H4.667ZM4 11.5c0-.276.298-.5.667-.5h14.666c.369 0 .667.224.667.5v1c0 .276-.299.5-.667.5H4.667C4.298 13 4 12.776 4 12.5v-1Zm0 6c0-.276.298-.5.667-.5h14.666c.369 0 .667.224.667.5v1c0 .276-.299.5-.667.5H4.667C4.298 19 4 18.776 4 18.5v-1Z"/></symbol><symbol id="MenuMedium" viewBox="0 0 20 20"><path d="M3.583 4C3.261 4 3 4.224 3 4.5v1c0 .276.261.5.583.5h12.834c.322 0 .583-.224.583-.5v-1c0-.276-.261-.5-.583-.5H3.583ZM3 9.5c0-.276.261-.5.583-.5h12.834c.322 0 .583.224.583.5v1c0 .276-.261.5-.583.5H3.583C3.261 11 3 10.776 3 10.5v-1Zm0 5c0-.276.261-.5.583-.5h12.834c.322 0 .583.224.583.5v1c0 .276-.261.5-.583.5H3.583C3.261 16 3 15.776 3 15.5v-1Z"/></symbol><symbol id="MinimizeMedium" viewBox="0 0 20 20"><path d="M15 4H5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h4.17a2.995 2.995 0 0 0 0 2H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v4.17a2.995 2.995 0 0 0-2 0V5a1 1 0 0 0-1-1Zm3 8a1 1 0 1 0-2 0v2.586L11.714 10.3l-.007-.007a1 1 0 1 0-1.414 1.414L14.586 16H12a1 1 0 1 0 0 2h5a1 1 0 0 0 1-1v-5Z"/></symbol><symbol id="MinimizeSmall" viewBox="0 0 16 16"><path d="M12 3H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h2.17a2.995 2.995 0 0 0 0 2H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v2.17a2.995 2.995 0 0 0-2 0V4a1 1 0 0 0-1-1Zm3 6a1 1 0 1 0-2 0v2.586L8.714 7.3l-.007-.007a1 1 0 0 0-1.414 1.414L11.586 13H9a1 1 0 1 0 0 2h5a1 1 0 0 0 1-1V9Z"/></symbol><symbol id="MinusLarge" viewBox="0 0 24 24"><path d="M6 11.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-1Z"/></symbol><symbol id="MinusMedium" viewBox="0 0 20 20"><path d="M5 9.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-1Z"/></symbol><symbol id="MinusSmall" viewBox="0 0 16 16"><rect x="4" y="7" width="8" height="2" rx=".5"/></symbol><symbol id="MobileSmall" viewBox="0 0 16 16"><path d="M11 2H5a1 1 0 0 0-1 1v8h8V3a1 1 0 0 0-1-1ZM5 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H5Zm3 13a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"/></symbol><symbol id="MoreActionsMedium" viewBox="0 0 20 20"><path d="M6 10a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm5.5 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm4 1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"/></symbol><symbol id="MoreActionsSmall" viewBox="0 0 16 16"><path d="M5 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm4 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"/></symbol><symbol id="NewChatMedium" viewBox="0 0 20 20"><path d="M17 9.5a6.5 6.5 0 0 1-8.66 6.133 3.066 3.066 0 0 0-1.763-.089l-2.828.707.707-2.828a3.066 3.066 0 0 0-.089-1.762A6.5 6.5 0 1 1 17 9.5ZM10.5 18a8.5 8.5 0 1 0-8.02-5.674c.07.197.086.41.036.612l-1.112 4.445a1 1 0 0 0 1.213 1.213l4.445-1.111c.203-.051.416-.035.613.034.884.312 1.834.481 2.825.481Zm-1-12a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v2.5H14a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-2.5V13a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-2.5H7a.5.5 0 0 1-.5-.5V9a.5.5 0 0 1 .5-.5h2.5V6Z"/></symbol><symbol id="NewChatSmall" viewBox="0 0 16 16"><path d="M13.281 7.471a5.001 5.001 0 0 1-6.38 4.81 2.597 2.597 0 0 0-1.515.022l-2.132.692.542-1.671a2.598 2.598 0 0 0-.099-1.846 5.001 5.001 0 1 1 9.584-2.007ZM8.28 14.222a6.751 6.751 0 1 0-6.185-4.041c.083.19.101.405.037.602L1.01 14.238a.794.794 0 0 0 1 1l3.916-1.27a.848.848 0 0 1 .495-.005c.59.169 1.214.26 1.859.26Zm-.751-9.377c0-.207.168-.375.375-.375h.75c.207 0 .375.168.375.375V6.72h1.875c.207 0 .375.168.375.375v.75a.375.375 0 0 1-.375.375H9.029v1.875a.375.375 0 0 1-.375.375h-.75a.375.375 0 0 1-.375-.375V8.22H5.654a.375.375 0 0 1-.375-.375v-.75c0-.207.168-.375.375-.375h1.875V4.845Z"/></symbol><symbol id="NoteMedium" viewBox="0 0 20 20"><path d="M3 4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H5v6a1 1 0 1 1-2 0V4Zm15 2h-6v4s0 2-2 2H8v1a1 1 0 0 0 1 1h9l-4-4 4-4Z"/></symbol><symbol id="NoteSmall" viewBox="0 0 16 16"><path d="M3 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5v5a1 1 0 1 1-2 0V3Zm11 1h-4v3s0 2-2 2H7a1 1 0 0 0 1 1h6l-3-3 3-3Z"/></symbol><symbol id="OutputMedium" viewBox="0 0 20 20"><path d="M10 4H5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3h2v3a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3h5a3 3 0 0 1 3 3v3h-2V5a1 1 0 0 0-1-1Zm4.293 2.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L15.586 11H8a1 1 0 1 1 0-2h7.586l-1.293-1.293a1 1 0 0 1 0-1.414Z"/></symbol><symbol id="OutputSmall" viewBox="0 0 16 16"><path d="M7 3.5H4a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-1H9v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v1H7.5V4a.5.5 0 0 0-.5-.5Zm3.293.793a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L11.586 9H7a1 1 0 0 1 0-2h4.586l-1.293-1.293a1 1 0 0 1 0-1.414Z"/></symbol><symbol id="PlayMedium" viewBox="0 0 20 20"><path d="M15.31 8.228c1.36.786 1.36 2.752 0 3.537l-8.577 4.952c-1.362.786-3.063-.196-3.063-1.768V5.045c0-1.572 1.701-2.554 3.063-1.768l8.577 4.951Z"/></symbol><symbol id="PlaySmall" viewBox="0 0 16 16"><path d="M12.248 6.583c1.089.629 1.089 2.2 0 2.83l-6.862 3.96a1.634 1.634 0 0 1-2.45-1.414V4.036a1.634 1.634 0 0 1 2.45-1.415l6.862 3.962Z"/></symbol><symbol id="PlusLarge" viewBox="0 0 24 24"><path d="M11 17.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V13h4.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H13V6.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V11H6.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H11v4.5Z"/></symbol><symbol id="PlusMedium" viewBox="0 0 20 20"><path d="M9 14.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V11h3.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H11V5.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V9H5.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H9v3.5Z"/></symbol><symbol id="PlusSmall" viewBox="0 0 16 16"><path d="M7.5 4a.5.5 0 0 0-.5.5V7H4.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H7v2.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V9h2.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H9V4.5a.5.5 0 0 0-.5-.5h-1Z"/></symbol><symbol id="PointOfSaleSmall" viewBox="0 0 16 16"><path d="M8 2c-.663 0-1.328.209-1.93.626a.5.5 0 1 1-.57-.822A4.378 4.378 0 0 1 8 1c.878 0 1.74.277 2.5.804a.5.5 0 1 1-.57.822A3.379 3.379 0 0 0 8 2Zm5 6v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V8h10Zm-1-3a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h8Zm-4.921-.817a2.405 2.405 0 0 1 1.842 0 .5.5 0 0 0 .373-.927 3.404 3.404 0 0 0-2.588 0 .5.5 0 1 0 .373.927Z"/></symbol><symbol id="PolarisMedium" viewBox="0 0 20 20"><path d="M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Zm0 0a8 8 0 0 1 8-8 8 8 0 0 1-8-8 8 8 0 0 1-8 8 8 8 0 0 1 8 8Z"/></symbol><symbol id="PolarisSmall" viewBox="0 0 16 16"><path d="M8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12Zm0 0a6 6 0 0 1 6-6 6 6 0 0 1-6-6 6 6 0 0 1-6 6 6 6 0 0 1 6 6Z"/></symbol><symbol id="PrivacyMedium" viewBox="0 0 20 20"><path d="M3.003 4.998c-.005-.553.446-.995.994-1.07 1.644-.226 3.652-.98 5.257-2.262a1.204 1.204 0 0 1 1.492 0c1.604 1.282 3.613 2.036 5.257 2.262.547.075.999.517.994 1.07-.038 4.145-.525 10.956-6.72 12.919a.928.928 0 0 1-.554 0c-6.195-1.963-6.682-8.774-6.72-12.92ZM12 8.5a2 2 0 0 1-1 1.732V12.5a1 1 0 1 1-2 0v-2.268A2 2 0 0 1 10 6.5a2 2 0 0 1 2 2Z"/></symbol><symbol id="PrivacySmall" viewBox="0 0 16 16"><path d="M2.013 4.499c-.018-.552.437-1 .98-1.098 1.62-.294 3.517-1.168 4.56-1.679.282-.138.612-.138.894 0 1.043.51 2.94 1.385 4.56 1.679.543.098.998.546.98 1.098-.085 2.663-.731 8.032-5.67 9.889a.907.907 0 0 1-.634 0c-4.939-1.857-5.585-7.226-5.67-9.89ZM9.5 7a1.5 1.5 0 0 1-.75 1.3v1.45a.75.75 0 0 1-1.5 0V8.3A1.5 1.5 0 1 1 9.5 7Z"/></symbol><symbol id="RenderedMedium" viewBox="0 0 20 20"><path d="M2.75 7.031a2 2 0 0 1 1-1.732L9 2.268a2 2 0 0 1 2 0l5.25 3.031a2 2 0 0 1 1 1.734v6.062a2 2 0 0 1-1 1.732L11 17.858a1.999 1.999 0 0 1-2 0l-5.25-3.03a2 2 0 0 1-1-1.731V7.03Zm2 6.064L9 15.55v-4.91L4.75 8.187v4.91Zm9.5-6.641L10 8.908 5.75 6.454 10 4l4.25 2.454ZM11 10.64l4.25-2.454v4.91L11 15.548v-4.91Z"/></symbol><symbol id="RenderedSmall" viewBox="0 0 16 16"><path d="M2 5.598A1.5 1.5 0 0 1 2.75 4.3l4.5-2.598a1.5 1.5 0 0 1 1.5 0l4.5 2.598A1.5 1.5 0 0 1 14 5.6v5.196a1.5 1.5 0 0 1-.75 1.3l-4.5 2.597a1.5 1.5 0 0 1-1.5 0l-4.5-2.598A1.5 1.5 0 0 1 2 10.797V5.598Zm1.5 5.198 3 1.732.75.433V8.63L3.5 6.464v4.332Zm8.25-5.63L8 7.33 4.25 5.165 8 3l3.75 2.165Zm-3 3.463 3.75-2.165v4.332l-3 1.732-.75.433V8.63Z"/></symbol><symbol id="ResetMedium" viewBox="0 0 20 20"><path d="M10 2.5v1.54a7 7 0 1 1-7 7v-.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v.5a5 5 0 1 0 5-5v1.54a.5.5 0 0 1-.787.41L5.585 5.45a.5.5 0 0 1 0-.82l3.628-2.539a.5.5 0 0 1 .787.41Z"/></symbol><symbol id="ResetSmall" viewBox="0 0 16 16"><path d="m7.2 2.1-2.667 2a.5.5 0 0 0 0 .8l2.667 2a.5.5 0 0 0 .8-.4v-1a3 3 0 1 1-3 3V8a.5.5 0 0 0-.5-.5h-1A.5.5 0 0 0 3 8v.5a5 5 0 1 0 5-5v-1a.5.5 0 0 0-.8-.4Z"/></symbol><symbol id="RSSMedium" viewBox="0 0 20 20"><path d="M5 4a1 1 0 0 0 0 2c5.281 0 9 3.719 9 9a1 1 0 1 0 2 0C16 8.614 11.386 4 5 4ZM4 9a1 1 0 0 1 1-1c4.052 0 7 2.948 7 7a1 1 0 1 1-2 0c0-2.948-2.052-5-5-5a1 1 0 0 1-1-1Zm4 5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z"/></symbol><symbol id="RSSSmall" viewBox="0 0 16 16"><path d="M4 3a1 1 0 0 0 0 2c3.514 0 7 2.816 7 7a1 1 0 1 0 2 0c0-5.416-4.514-9-9-9ZM3 8a1 1 0 0 1 1-1c2.486 0 5 1.984 5 5a1 1 0 1 1-2 0c0-1.784-1.486-3-3-3a1 1 0 0 1-1-1Zm2 4a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/></symbol><symbol id="ScintillateMedium" viewBox="0 0 20 20"><path d="m11.384 5.913-.6-3.261h-.001a.796.796 0 0 0-1.565 0l-.602 3.261a3.363 3.363 0 0 1-.885 1.743l-.039.036a3.36 3.36 0 0 1-1.78.924l-3.26.603a.796.796 0 0 0 0 1.564l3.26.601c.703.13 1.315.454 1.784.924.466.465.79 1.077.92 1.779l.603 3.261a.796.796 0 0 0 1.564 0l.601-3.261c.13-.7.456-1.311.924-1.783a3.355 3.355 0 0 1 1.78-.92l3.26-.601a.796.796 0 0 0 0-1.565l-3.26-.603a3.367 3.367 0 0 1-1.78-.923 3.365 3.365 0 0 1-.924-1.78Zm4.013-3.073c.057-.744 1.149-.744 1.206 0 .023.298.26.534.557.557.744.057.744 1.149 0 1.206a.605.605 0 0 0-.557.557c-.057.744-1.149.744-1.206 0a.605.605 0 0 0-.557-.557c-.744-.057-.744-1.149 0-1.206a.605.605 0 0 0 .557-.557ZM4.428 15.445c-.064-.837-1.292-.837-1.356 0a.68.68 0 0 1-.627.627c-.837.064-.837 1.292 0 1.356a.68.68 0 0 1 .627.627c.064.837 1.292.837 1.356 0a.68.68 0 0 1 .627-.627c.837-.064.837-1.292 0-1.356a.68.68 0 0 1-.627-.627Z"/></symbol><symbol id="ScintillateSmall" viewBox="0 0 16 16"><path d="m9.107 4.73-.48-2.609a.637.637 0 0 0-1.252 0l-.482 2.61a2.69 2.69 0 0 1-.708 1.394l-.031.029a2.689 2.689 0 0 1-1.424.739l-2.608.482a.637.637 0 0 0 0 1.251l2.608.481a2.686 2.686 0 0 1 1.426.74c.374.371.633.86.737 1.423l.482 2.608a.636.636 0 0 0 1.252 0l.48-2.608c.103-.56.365-1.05.74-1.427a2.684 2.684 0 0 1 1.423-.736l2.608-.481a.637.637 0 0 0 0-1.252l-2.608-.482a2.693 2.693 0 0 1-1.424-.739 2.693 2.693 0 0 1-.739-1.423Zm3.21-2.458c.046-.595.92-.595.965 0a.484.484 0 0 0 .446.446c.595.045.595.919 0 .964a.484.484 0 0 0-.446.446c-.045.595-.919.595-.964 0a.484.484 0 0 0-.446-.446c-.595-.045-.595-.919 0-.964a.484.484 0 0 0 .446-.446ZM3.544 12.356c-.052-.67-1.034-.67-1.086 0a.544.544 0 0 1-.5.501c-.67.052-.67 1.034 0 1.086.267.02.48.233.5.5.052.67 1.034.67 1.086 0a.544.544 0 0 1 .5-.5c.67-.052.67-1.034 0-1.086a.544.544 0 0 1-.5-.5Z"/></symbol><symbol id="SearchLarge" viewBox="0 0 24 24"><path d="M11.314 11.314a4 4 0 1 1-5.657-5.657 4 4 0 0 1 5.657 5.657Zm2.062.648a6.002 6.002 0 0 0-9.133-7.72 6 6 0 0 0 7.72 9.134l7.129 7.13a1 1 0 0 0 1.414-1.414l-7.13-7.13Z"/></symbol><symbol id="SearchLauncherMedium" viewBox="0 0 20 20"><path d="M7.218 15.28 11.442 4h1.356L8.574 15.28H7.218Z"/></symbol><symbol id="SearchLauncherSmall" viewBox="0 0 16 16"><path d="M5.45 13.17 9.322 2.83h1.232L6.682 13.17H5.45Z"/></symbol><symbol id="SearchMedium" viewBox="0 0 20 20"><path d="M10.192 10.192A3 3 0 1 1 5.95 5.95a3 3 0 0 1 4.242 4.242Zm.64 2.048a5.002 5.002 0 0 1-6.296-7.704 5 5 0 0 1 7.704 6.297c.025.02.05.043.074.066l4.95 4.95a1 1 0 1 1-1.415 1.415l-4.95-4.95a.974.974 0 0 1-.066-.074Z"/></symbol><symbol id="SearchSmall" viewBox="0 0 16 16"><path d="M8.071 8.071a2 2 0 1 1-2.828-2.828A2 2 0 0 1 8.07 8.07Zm.625 2.028a4.002 4.002 0 0 1-4.868-6.27A4 4 0 0 1 10.1 8.695c.033.025.064.052.093.082l3.536 3.536a1 1 0 1 1-1.414 1.414l-3.536-3.536c-.03-.03-.057-.06-.082-.093Z"/></symbol><symbol id="SelectorMedium" viewBox="0 0 20 20"><path d="M12.586 9H7.414c-.89 0-1.337-1.077-.707-1.707l2.586-2.586a1 1 0 0 1 1.414 0l2.586 2.586c.63.63.184 1.707-.707 1.707Zm-5.172 2h5.172c.89 0 1.337 1.077.707 1.707l-2.586 2.586a1 1 0 0 1-1.414 0l-2.586-2.586c-.63-.63-.184-1.707.707-1.707Z"/></symbol><symbol id="SelectorSmall" viewBox="0 0 16 16"><path d="M10.586 7H5.414c-.89 0-1.337-1.077-.707-1.707l2.586-2.586a1 1 0 0 1 1.414 0l2.586 2.586c.63.63.184 1.707-.707 1.707ZM5.414 9h5.172c.89 0 1.337 1.077.707 1.707l-2.586 2.586a1 1 0 0 1-1.414 0l-2.586-2.586C4.077 10.077 4.523 9 5.414 9Z"/></symbol><symbol id="SendMedium" viewBox="0 0 20 20"><path d="M4.68 8.855c.05.118.174.182.301.19l6.503.406a.532.532 0 0 1 0 1.062l-6.503.407c-.127.008-.252.071-.301.189L2.982 15.12c-.355.84.506 1.677 1.335 1.3l12.164-5.528c.781-.356.781-1.466 0-1.821L4.317 3.542c-.83-.376-1.69.462-1.335 1.3L4.68 8.856Z"/></symbol><symbol id="SendSmall" viewBox="0 0 16 16"><path d="M3.373 6.728c.098.231.374.325.624.343l5.504.393a.537.537 0 0 1 0 1.072l-5.504.393c-.25.018-.526.112-.624.343L2.07 12.353c-.301.71.428 1.42 1.13 1.101l10.303-4.683a.847.847 0 0 0 0-1.542L3.2 2.545c-.702-.319-1.431.391-1.13 1.102l1.303 3.081Z"/></symbol><symbol id="ShopifyPlusMedium" viewBox="0 0 20 20"><path d="M18.708 6.432h-.747l.144-.74a.285.285 0 0 0-.286-.35.456.456 0 0 0-.422.35l-.144.74h-.747a.455.455 0 0 0-.422.35c-.037.19.093.351.285.351h.748l-.144.74c-.037.19.094.35.285.35.192 0 .386-.16.422-.35l.144-.74h.747c.192 0 .386-.16.422-.35a.284.284 0 0 0-.285-.35ZM10.07 4.43c-.006-.397-.054-.949-.24-1.426.6.112.896.785 1.021 1.187-.231.07-.495.151-.78.24ZM6.923 9.697c.054.839 2.284 1.022 2.41 2.988.098 1.546-.829 2.603-2.165 2.687-1.604.1-2.486-.836-2.486-.836l.34-1.43s.888.663 1.6.618a.624.624 0 0 0 .613-.668c-.07-1.094-1.886-1.03-2-2.828-.097-1.514.907-3.047 3.123-3.186.854-.053 1.291.162 1.291.162L9.142 9.08s-.565-.254-1.235-.213c-.983.063-.994.676-.984.83Zm1.542-7.174a.817.817 0 0 1 .476.123c-.214.11-.421.268-.615.474-.503.534-.889 1.364-1.043 2.164l-1.38.423c.272-1.26 1.339-3.15 2.562-3.184Zm1.079 2.069-1.681.515c.163-.616.47-1.229.849-1.63.14-.15.337-.317.57-.412.22.452.267 1.093.262 1.527Zm2.3-.706-.488.15a3.352 3.352 0 0 0-.234-.57c-.347-.654-.854-1-1.467-1.001h-.003a1.42 1.42 0 0 0-.127.008A1.294 1.294 0 0 0 8.449 2c-.792.022-1.58.588-2.22 1.594-.45.707-.792 1.597-.89 2.284a2497 2497 0 0 0-1.559.479c-.459.142-.473.156-.534.584C3.201 7.266 2 16.46 2 16.46l9.966 1.706v-14.3a.607.607 0 0 0-.121.021ZM12.295 18.127l4.134-1.018S14.65 5.2 14.64 5.116a.158.158 0 0 0-.144-.132c-.06-.005-1.223-.022-1.223-.022l-.977-.94v14.105Z"/></symbol><symbol id="ShopifyPlusSmall" viewBox="0 0 16 16"><path d="M14.967 5.146h-.598l.115-.592a.228.228 0 0 0-.229-.28.364.364 0 0 0-.338.28l-.115.592h-.598a.364.364 0 0 0-.337.28c-.03.152.075.28.228.28h.598l-.115.592c-.03.152.075.28.229.28a.364.364 0 0 0 .337-.28l.115-.591h.598a.364.364 0 0 0 .338-.28.228.228 0 0 0-.228-.281ZM8.056 3.544c-.005-.318-.043-.76-.192-1.141.48.09.717.628.817.95l-.625.191ZM5.54 7.757c.043.672 1.827.818 1.927 2.39.079 1.238-.663 2.084-1.732 2.15-1.282.08-1.989-.668-1.989-.668l.272-1.145s.711.53 1.28.495a.5.5 0 0 0 .491-.534c-.056-.876-1.509-.824-1.6-2.263-.078-1.21.725-2.438 2.498-2.548.683-.043 1.033.13 1.033.13l-.405 1.5s-.452-.204-.989-.17c-.786.05-.794.54-.786.663Zm1.233-5.739a.654.654 0 0 1 .38.099 1.836 1.836 0 0 0-.491.379c-.403.427-.711 1.09-.834 1.73-.384.118-.76.233-1.104.34.217-1.008 1.07-2.52 2.049-2.548Zm.863 1.655-1.345.412c.13-.492.377-.983.68-1.304.112-.12.27-.253.456-.329.175.362.213.875.209 1.221Zm1.84-.564-.39.12a2.683 2.683 0 0 0-.188-.456c-.277-.523-.683-.8-1.173-.801h-.002c-.034 0-.068.003-.102.006a1.035 1.035 0 0 0-.86-.377c-.634.018-1.265.47-1.777 1.275-.36.566-.634 1.277-.711 1.827l-1.248.383c-.367.114-.379.125-.427.468-.036.26-.997 7.614-.997 7.614l7.973 1.364V3.092a.485.485 0 0 0-.097.017ZM9.836 14.501l3.307-.813-1.433-9.595a.127.127 0 0 0-.114-.105c-.047-.005-.979-.018-.979-.018s-.568-.546-.78-.753v11.284Z"/></symbol><symbol id="SidebarCollapseLarge" viewBox="0 0 24 24"><path d="M17.5 18a.5.5 0 0 0 .5-.5v-11a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h1ZM6.146 11.647a.5.5 0 0 0 0 .707l1.061 1.06 1.74 1.74c.21.21.552.21.763 0l.68-.679a.5.5 0 0 0 0-.707L9.62 13H13.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H9.622l.767-.768a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0l-2.829 2.829Z"/></symbol><symbol id="SidebarCollapseMedium" viewBox="0 0 20 20"><path d="M15.5 16a.5.5 0 0 0 .5-.5v-11a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h1ZM4.146 9.647a.5.5 0 0 0 0 .707l1.061 1.06 1.74 1.74c.21.21.552.21.763 0l.68-.679a.5.5 0 0 0 0-.707L7.62 11H11.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H7.622l.767-.768a.5.5 0 0 0 0-.707l-.707-.707a.5.5 0 0 0-.707 0L4.146 9.647Z"/></symbol><symbol id="SidebarExpandLarge" viewBox="0 0 24 24"><path d="M6.5 6a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-11a.5.5 0 0 0-.5-.5h-1Zm11.354 6.353a.5.5 0 0 0 0-.707l-1.061-1.06-1.74-1.74a.54.54 0 0 0-.763 0l-.68.679a.5.5 0 0 0 0 .707l.769.768H10.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3.878l-.767.768a.5.5 0 0 0 0 .707l.707.707a.5.5 0 0 0 .707 0l2.829-2.829Z"/></symbol><symbol id="SidebarExpandMedium" viewBox="0 0 20 20"><path d="M4.5 4a.5.5 0 0 0-.5.5v11a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-11a.5.5 0 0 0-.5-.5h-1Zm11.354 6.353a.5.5 0 0 0 0-.707l-1.061-1.06-1.74-1.74a.54.54 0 0 0-.763 0l-.68.679a.5.5 0 0 0 0 .707L12.38 9H8.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3.878l-.767.768a.5.5 0 0 0 0 .707l.707.707a.5.5 0 0 0 .707 0l2.829-2.829Z"/></symbol><symbol id="StopStreamMedium" viewBox="0 0 20 20"><path d="M18 10a8 8 0 1 1-16 0 8 8 0 0 1 16 0Zm-8 5.935a5.935 5.935 0 1 0 0-11.87 5.935 5.935 0 0 0 0 11.87Z"/><path d="M7.161 7.677c0-.285.231-.516.516-.516h4.646c.285 0 .516.231.516.516v4.646a.516.516 0 0 1-.516.516H7.677a.516.516 0 0 1-.516-.516V7.677Z"/></symbol><symbol id="StoreMedium" viewBox="0 0 20 20"><path d="M16.282 3H3.718L1.833 6.5h.015c.14 1.05 1.204 1.867 2.498 1.867.75 0 1.424-.275 1.885-.711.46.436 1.134.71 1.884.71S9.54 8.093 10 7.657c.46.436 1.134.71 1.885.71.75 0 1.424-.274 1.884-.71.46.436 1.134.71 1.885.71 1.294 0 2.359-.816 2.498-1.866h.015L16.282 3Zm-.657 6.417h.017-.034.017Zm-3.75 0h.017-.034.017Zm-3.75 0h.017-.034.017ZM17 17V9.703c-.415.19-.882.297-1.375.297a3.26 3.26 0 0 1-1.875-.583 3.26 3.26 0 0 1-1.875.583A3.26 3.26 0 0 1 10 9.417 3.26 3.26 0 0 1 8.125 10a3.26 3.26 0 0 1-1.875-.583A3.26 3.26 0 0 1 4.375 10c-.493 0-.96-.107-1.375-.297V17h4.667v-3.5c0-.644.522-1.167 1.166-1.167h2.334c.644 0 1.166.523 1.166 1.167V17H17ZM4.375 9.417h.012-.025.013Z"/></symbol><symbol id="StoreSmall" viewBox="0 0 16 16"><path d="M13.385 2H2.615L1 5h.013c.119.9 1.032 1.6 2.14 1.6.644 0 1.221-.236 1.616-.61.395.374.972.61 1.616.61.643 0 1.22-.236 1.615-.61.395.374.972.61 1.615.61.644 0 1.221-.236 1.616-.61.395.374.972.61 1.615.61 1.109 0 2.022-.7 2.141-1.6H15l-1.615-3ZM14 14V7.745A2.826 2.826 0 0 1 12.821 8c-.603 0-1.159-.186-1.607-.5-.447.314-1.004.5-1.607.5S8.447 7.814 8 7.5c-.448.314-1.004.5-1.607.5s-1.16-.186-1.607-.5c-.448.314-1.004.5-1.607.5-.423 0-.823-.092-1.179-.255V14h4v-3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3h4Z"/></symbol><symbol id="SuggestionMedium" viewBox="0 0 20 20"><path d="M12.742 9.912c-.418.394-.742.906-.742 1.48V12.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1.108c0-.574-.324-1.086-.742-1.48a4 4 0 1 1 5.484 0ZM9.658 4.974a.5.5 0 1 0-.316-.948c-.88.293-1.46.878-1.811 1.37a4.26 4.26 0 0 0-.472.855 2.31 2.31 0 0 0-.023.062l-.007.019-.002.006v.002l-.001.002a.5.5 0 0 0 .948.318l.002-.006.013-.036a3.262 3.262 0 0 1 .355-.64c.273-.382.695-.797 1.314-1.004ZM8.667 14a.667.667 0 0 0-.4 1.2l1.133.85a1 1 0 0 0 1.2 0l1.133-.85a.667.667 0 0 0-.4-1.2H8.667Z"/></symbol><symbol id="TerminalMedium" viewBox="0 0 20 20"><path d="M5 4h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM2 5a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5Zm4.5 7a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-7Z"/></symbol><symbol id="TerminalSmall" viewBox="0 0 16 16"><path d="M12 2.5H4A1.5 1.5 0 0 0 2.5 4v8A1.5 1.5 0 0 0 4 13.5h8a1.5 1.5 0 0 0 1.5-1.5V4A1.5 1.5 0 0 0 12 2.5ZM4 1a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H4Zm1.5 9a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-5Z"/></symbol><symbol id="ThumbDownMedium" viewBox="0 0 20 20"><path d="M13.683 4.365a1.15 1.15 0 0 0-1.024-1.146c-1.667-.181-4.83-.512-5.334-.464-2.05.08-2.641.12-2.89.623-.304.515-2.48 4.551-1.155 6.89.377.664 1.777.8 3.468.903.881.054 1.733-.195 2.378.204.207.129.159.658-.067 1.341-.262.796-.6 1.82-.315 2.753.53 1.733 2.335 2.366 2.436 1.156.06-.719.153-1.022.754-2.281.01-.02.02-.04.032-.058.18-.29 1.716-2.806 1.715-4.018h.001V4.364ZM17.15 9.82c0 .32-.259.578-.578.578h-1.445a.578.578 0 0 1-.578-.578V4.041c0-.319.26-.578.578-.578h1.445c.32 0 .578.259.578.578v5.78Z"/></symbol><symbol id="ThumbUpMedium" viewBox="0 0 20 20"><path d="M6.317 15.635c0 .588.44 1.082 1.024 1.146 1.666.181 4.83.512 5.333.465 2.051-.08 2.642-.121 2.89-.624.305-.515 2.48-4.551 1.156-6.89-.377-.664-1.777-.8-3.468-.903-.881-.054-1.733.195-2.378-.204-.207-.129-.159-.658.067-1.341.262-.796.6-1.82.315-2.752-.53-1.734-2.335-2.367-2.436-1.157-.06.719-.153 1.022-.754 2.282-.01.02-.02.039-.032.057-.18.29-1.716 2.806-1.715 4.018h-.001v5.903ZM2.85 10.18c0-.32.259-.578.578-.578h1.445c.319 0 .578.259.578.578v5.779c0 .319-.26.578-.578.578H3.428a.578.578 0 0 1-.578-.578v-5.78Z"/></symbol><symbol id="TutorialSmall" viewBox="0 0 16 16"><path d="M7 3.796a.705.705 0 0 0-.296-.592 3.827 3.827 0 0 0-4.323.031l-.044.031A.784.784 0 0 0 2 3.91v8.116c0 .418.465.668.814.438a3.813 3.813 0 0 1 4.622.33l.045.04a.786.786 0 0 0 1.042 0l.047-.042a3.807 3.807 0 0 1 4.617-.328c.349.23.813-.02.813-.437V3.963a.886.886 0 0 0-.38-.727 3.822 3.822 0 0 0-4.325-.029.705.705 0 0 0-.295.591v5.15a1 1 0 1 1-2 0V3.796Z"/></symbol><symbol id="TwitchMedium" viewBox="0 0 20 20"><path d="M9.571 5.143h1.144V8.57H9.57V5.143Zm3.144 0h1.142V8.57h-1.142V5.143ZM5.857 2 3 4.857v10.286h3.429V18l2.857-2.857h2.285L16.715 10V2H5.857Zm9.714 7.429-2.285 2.285H11l-2 2v-2H6.429V3.143h9.142v6.286Z"/></symbol><symbol id="TwitchSmall" viewBox="0 0 16 16"><path d="M7.75 3.75h1v3h-1v-3Zm2.75 0h1v3h-1v-3ZM4.5 1 2 3.5v9h3V15l2.5-2.5h2L14 8V1H4.5ZM13 7.5l-2 2H9l-1.75 1.75V9.5H5V2h8v5.5Z"/></symbol><symbol id="TwitterMedium" viewBox="0 0 20 20"><path d="M17.969 4.796a6.667 6.667 0 0 1-1.884.516 3.305 3.305 0 0 0 1.442-1.815c-.634.37-1.336.64-2.084.79a3.28 3.28 0 0 0-5.59 2.987 9.292 9.292 0 0 1-6.76-3.417c-.294.5-.447 1.07-.444 1.65 0 1.14.58 2.142 1.459 2.73a3.27 3.27 0 0 1-1.485-.41v.04a3.282 3.282 0 0 0 2.63 3.218 3.331 3.331 0 0 1-1.474.057 3.29 3.29 0 0 0 3.069 2.278 6.578 6.578 0 0 1-4.068 1.403c-.26 0-.52-.015-.78-.045a9.33 9.33 0 0 0 5.038 1.473c6.035 0 9.332-4.997 9.332-9.323 0-.14 0-.28-.01-.42a6.623 6.623 0 0 0 1.64-1.7l-.031-.012Z"/></symbol><symbol id="TwitterSmall" viewBox="0 0 16 16"><path d="M14.973 3.602c-.525.23-1.08.383-1.648.452a2.892 2.892 0 0 0 1.261-1.588c-.554.323-1.17.559-1.824.69a2.87 2.87 0 0 0-4.89 2.615 8.13 8.13 0 0 1-5.915-2.99 2.813 2.813 0 0 0-.389 1.443 2.87 2.87 0 0 0 1.276 2.39 2.86 2.86 0 0 1-1.3-.36v.035a2.872 2.872 0 0 0 2.303 2.816c-.421.113-.862.13-1.29.05a2.88 2.88 0 0 0 2.685 1.993A5.756 5.756 0 0 1 1 12.337a8.165 8.165 0 0 0 4.408 1.288c5.281 0 8.166-4.372 8.166-8.158 0-.122 0-.245-.009-.367A5.795 5.795 0 0 0 15 3.614l-.027-.012Z"/></symbol><symbol id="ViewMedium" viewBox="0 0 20 20"><path d="M1.362 9.47a.9.9 0 0 0 0 1.06C2.88 12.63 6.223 16 10 16s7.12-3.37 8.638-5.47a.9.9 0 0 0 0-1.06C17.12 7.37 13.777 4 10 4S2.88 7.37 1.362 9.47ZM14 10a4 4 0 1 1-8 0 4 4 0 0 1 8 0Zm-4 2a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"/></symbol><symbol id="ViewSmall" viewBox="0 0 16 16"><path d="M1.325 7.496a.891.891 0 0 0 0 1.008C2.525 10.258 5.098 13 8 13c2.902 0 5.476-2.742 6.675-4.496a.891.891 0 0 0 0-1.008C13.475 5.742 10.902 3 8 3 5.098 3 2.524 5.742 1.325 7.496ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm-3 2a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"/></symbol><symbol id="WarningMedium" viewBox="0 0 20 20"><path d="M1.909 15.486 9.143 3.428a1 1 0 0 1 1.714 0l7.234 12.056A1 1 0 0 1 17.234 17H2.766a1 1 0 0 1-.857-1.514ZM9 8a1 1 0 0 1 2 0v3a1 1 0 1 1-2 0V8Zm0 6a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z"/></symbol><symbol id="WarningSmall" viewBox="0 0 16 16"><path d="m7.136 2.481-5.259 9.015A1 1 0 0 0 2.741 13h10.518a1 1 0 0 0 .864-1.504l-5.26-9.015a1 1 0 0 0-1.727 0ZM7 6.001a1 1 0 1 1 2 0v2a1 1 0 1 1-2 0V6Zm0 5a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z"/></symbol><symbol id="YouTubeMedium" viewBox="0 0 20 20"><path d="M17.665 5.76a2.01 2.01 0 0 0-1.414-1.423C15.003 4 10 4 10 4s-5.003 0-6.251.337A2.011 2.011 0 0 0 2.335 5.76C2 7.017 2 9.637 2 9.637s0 2.62.335 3.876a2.01 2.01 0 0 0 1.414 1.424c1.248.336 6.251.336 6.251.336s5.003 0 6.251-.336a2.01 2.01 0 0 0 1.415-1.424C18 12.257 18 9.637 18 9.637s0-2.62-.335-3.876Zm-9.302 6.255V7.258l4.182 2.379-4.182 2.378Z"/></symbol><symbol id="YouTubeSmall" viewBox="0 0 16 16"><path d="M14.707 4.54a1.76 1.76 0 0 0-1.238-1.245C12.378 3 8 3 8 3s-4.378 0-5.47.295A1.76 1.76 0 0 0 1.293 4.54C1 5.64 1 7.932 1 7.932s0 2.293.293 3.392A1.76 1.76 0 0 0 2.53 12.57c1.091.294 5.469.294 5.469.294s4.378 0 5.47-.294a1.76 1.76 0 0 0 1.238-1.246C15 10.224 15 7.932 15 7.932s0-2.292-.293-3.391Zm-8.14 5.473V5.851l3.66 2.081-3.66 2.081Z"/></symbol></defs></svg></div><div class="flex flex-col min-h-screen"><header class="sticky top-0 bg flex flex-row items-center justify-between h-[48px] gap-200 z-20 sm:px-400"><div role="progressbar" aria-hidden="true" aria-label="loading bar" class="absolute inset-x-0 left-0 top-0 z-50 bg-surface h-0 transition-none"><div class="h-full transition-all duration-500 delay-100 ease-in-out bg-icon-subdued w-0 opacity-0 transition-none"></div></div><div class="flex-1 shrink-1 flex flex-row items-center"><div class="sm:hidden"><button type="button" class="_Icon_ajx1z_1" name="open menu" aria-haspopup="dialog" aria-expanded="false" aria-label="Open navigation menu"><svg width="24" height="24" role="img"><use href="#MenuLarge"></use></svg></button></div><a class=" flex items-center gap-50" href="/docs" data-discover="true"><img src="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='60'%20height='24'%20viewBox='0%200%2060%2024'%20fill='none'%3e%3cpath%20d='M32.083%2017.13a1.21%201.21%200%200%200%201.193-1.194%201.208%201.208%200%200%200-1.193-1.183%201.188%201.188%200%201%200%200%202.376Zm5.746-.006c1.233%200%201.874-.71%202.168-1.347h.09V17h2.087V6.818h-2.113v3.828h-.064c-.284-.621-.895-1.382-2.173-1.382-1.675%200-3.092%201.303-3.092%203.928%200%202.555%201.357%203.932%203.097%203.932Zm.671-1.685c-1.039%200-1.606-.925-1.606-2.257%200-1.323.557-2.232%201.606-2.232%201.03%200%201.606.87%201.606%202.232s-.587%202.257-1.606%202.257Zm8.896%201.71c1.889%200%203.161-.92%203.46-2.337l-1.959-.129c-.214.582-.76.885-1.467.885-1.059%200-1.73-.7-1.73-1.84v-.004h5.2v-.582c0-2.595-1.57-3.878-3.589-3.878-2.247%200-3.704%201.596-3.704%203.953%200%202.42%201.437%203.932%203.789%203.932ZM45.7%2012.411c.045-.87.706-1.566%201.646-1.566.92%200%201.556.656%201.561%201.566H45.7Zm13.483-3.047h-2.242l-1.58%205.463h-.08l-1.586-5.463h-2.238L54.127%2017h2.386l2.67-7.636Z'%20fill='%23202223'/%3e%3cpath%20d='M18.392%204.621a.231.231%200%200%200-.208-.195c-.087-.008-1.78-.034-1.78-.034s-1.418-1.387-1.557-1.528c-.14-.142-.414-.099-.52-.067l-.712.222a5.053%205.053%200%200%200-.34-.844C12.77%201.205%2012.032.691%2011.139.69h-.003c-.062%200-.124.006-.186.01a2.75%202.75%200%200%200-.08-.093c-.39-.42-.888-.624-1.485-.606-1.153.033-2.3.873-3.232%202.364C5.5%203.415%205%204.733%204.86%205.754c-1.324.413-2.25.702-2.27.71-.668.21-.689.231-.776.867C1.748%207.81%200%2021.445%200%2021.445L14.65%2024%2021%2022.408%2018.391%204.621Zm-5.51-1.373-1.137.355c-.008-.588-.078-1.407-.35-2.115.875.167%201.305%201.165%201.487%201.76Zm-1.903.595-2.446.764c.236-.913.684-1.822%201.235-2.418.205-.222.491-.469.83-.61.32.671.388%201.621.38%202.264ZM9.409.775c.27-.006.498.054.692.183a3.34%203.34%200%200%200-.895.703c-.732.792-1.293%202.022-1.517%203.209l-2.009.627C6.077%203.629%207.63.827%209.408.775Z'%20fill='%2395BF47'/%3e%3cpath%20d='m11.131%207.719-.737%202.782s-.823-.377-1.798-.315c-1.43.091-1.445%201-1.43%201.229.077%201.244%203.323%201.516%203.506%204.431.143%202.293-1.206%203.862-3.15%203.986-2.334.148-3.619-1.24-3.619-1.24l.494-2.121s1.294.984%202.329.918c.676-.043.917-.598.893-.99-.102-1.624-2.745-1.528-2.912-4.195-.14-2.245%201.321-4.52%204.546-4.724%201.242-.08%201.878.239%201.878.239Z'%20fill='%23fff'/%3e%3cpath%20d='M18.184%204.426c-.086-.007-1.78-.033-1.78-.033s-1.417-1.388-1.557-1.529a.345.345%200%200%200-.197-.091l.001%2021.226L21%2022.408%2018.393%204.622a.232.232%200%200%200-.209-.196Z'%20fill='%235E8E3E'/%3e%3c/svg%3e" alt="Shopify.dev" class="block dark:hidden"/><img src="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='60'%20height='24'%20viewBox='0%200%2060%2024'%20fill='none'%3e%3cpath%20d='M32.083%2017.13a1.21%201.21%200%200%200%201.193-1.194%201.208%201.208%200%200%200-1.193-1.183%201.188%201.188%200%201%200%200%202.376Zm5.746-.006c1.233%200%201.874-.71%202.168-1.347h.09V17h2.087V6.818h-2.113v3.828h-.064c-.284-.621-.895-1.382-2.173-1.382-1.675%200-3.092%201.303-3.092%203.928%200%202.555%201.357%203.932%203.097%203.932Zm.671-1.685c-1.039%200-1.606-.925-1.606-2.257%200-1.323.557-2.232%201.606-2.232%201.03%200%201.606.87%201.606%202.232s-.587%202.257-1.606%202.257Zm8.896%201.71c1.889%200%203.161-.92%203.46-2.337l-1.959-.129c-.214.582-.76.885-1.467.885-1.059%200-1.73-.7-1.73-1.84v-.004h5.2v-.582c0-2.595-1.57-3.878-3.589-3.878-2.247%200-3.704%201.596-3.704%203.953%200%202.42%201.437%203.932%203.789%203.932ZM45.7%2012.411c.045-.87.706-1.566%201.646-1.566.92%200%201.556.656%201.561%201.566H45.7Zm13.483-3.047h-2.242l-1.58%205.463h-.08l-1.586-5.463h-2.238L54.127%2017h2.386l2.67-7.636Z'%20fill='%23fff'/%3e%3cpath%20d='M18.392%204.621a.231.231%200%200%200-.208-.195c-.087-.008-1.78-.034-1.78-.034s-1.418-1.387-1.557-1.528c-.14-.142-.414-.099-.52-.067l-.712.222a5.053%205.053%200%200%200-.34-.844C12.77%201.205%2012.032.691%2011.139.69h-.003c-.062%200-.124.006-.186.01a2.75%202.75%200%200%200-.08-.093c-.39-.42-.888-.624-1.485-.606-1.153.033-2.3.873-3.232%202.364C5.5%203.415%205%204.733%204.86%205.754c-1.324.413-2.25.702-2.27.71-.668.21-.689.231-.776.867C1.748%207.81%200%2021.445%200%2021.445L14.65%2024%2021%2022.408%2018.391%204.621Zm-5.51-1.373-1.137.355c-.008-.588-.078-1.407-.35-2.115.875.167%201.305%201.165%201.487%201.76Zm-1.903.595-2.446.764c.236-.913.684-1.822%201.235-2.418.205-.222.491-.469.83-.61.32.671.388%201.621.38%202.264ZM9.409.775c.27-.006.498.054.692.183a3.34%203.34%200%200%200-.895.703c-.732.792-1.293%202.022-1.517%203.209l-2.009.627C6.077%203.629%207.63.827%209.408.775Z'%20fill='%2395BF47'/%3e%3cpath%20d='m11.131%207.719-.737%202.782s-.823-.377-1.798-.315c-1.43.091-1.445%201-1.43%201.229.077%201.244%203.323%201.516%203.506%204.431.143%202.293-1.206%203.862-3.15%203.986-2.334.148-3.619-1.24-3.619-1.24l.494-2.121s1.294.984%202.329.918c.676-.043.917-.598.893-.99-.102-1.624-2.745-1.528-2.912-4.195-.14-2.245%201.321-4.52%204.546-4.724%201.242-.08%201.878.239%201.878.239Z'%20fill='%23fff'/%3e%3cpath%20d='M18.184%204.426c-.086-.007-1.78-.033-1.78-.033s-1.417-1.388-1.557-1.529a.345.345%200%200%200-.197-.091l.001%2021.226L21%2022.408%2018.393%204.622a.232.232%200%200%200-.209-.196Z'%20fill='%235E8E3E'/%3e%3c/svg%3e" alt="Shopify.dev" class="hidden dark:block"/><span class="text text-sm lowercase leading-snug border rounded-xs px-100">Docs</span></a></div><div class="shrink-0 hidden sm:block"><nav class="flex flex-row items-baseline text-sm"><a class="text hover:text-bright focus:text-bright px-200 py-150 rounded" href="/docs/apps" data-discover="true">Apps</a><a class="text hover:text-bright focus:text-bright px-200 py-150 rounded" href="/docs/storefronts" data-discover="true">Storefronts</a><div><button type="button" class="group inline-block text hover:text-bright focus:text-bright cursor-pointer z-30 py-100 pl-200 pr-100 rounded" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-:R6qn5:" data-state="closed">APIs and references<svg width="20" height="20" class="text-icon group-hover:text-icon-hover group-focus:text-icon-hover group-active:text-icon-active -translate-y-50 inline opacity-50" role="img"><use href="#CaretDownMedium"></use></svg></button></div></nav></div><div class="flex-1 shrink-1 flex items-center justify-end gap-400 text-sm"><button id="open-search" type="button" class="_SearchButton_l42iu_1" aria-haspopup="dialog"><svg width="20" height="20" class="_SearchButtonIconDesktop_l42iu_36 _AnimationBottom_l42iu_94" role="img"><use href="#SearchMedium"></use></svg><svg width="20" height="20" class="_MagicSparkleIconDesktop_l42iu_75 _AnimationTop_l42iu_101" role="img"><use href="#ScintillateMedium"></use></svg><span class="_SearchButtonLabel_l42iu_32">search + assistant</span><svg width="16" height="16" class="_SearchLauncherIcon_l42iu_26" role="img"><use href="#SearchLauncherSmall"></use></svg><svg width="20" height="20" class="_SearchButtonIconMobile_l42iu_16 _AnimationBottom_l42iu_94" role="img"><use href="#SearchMedium"></use></svg><svg width="20" height="20" class="_MagicSparkleIconMobile_l42iu_17 _AnimationTop_l42iu_101" role="img"><use href="#ScintillateMedium"></use></svg></button><div class="mx-100 hidden md:block"><button type="button" aria-label="Toggle dark mode"><div class="relative w-500 h-500 overflow-hidden"><svg width="20" height="20" class="absolute left-0 top-50 transition-transform duration-500 ease-out delay-200 translate-y-500 dark:translate-y-0 text-[#ebaf26]" role="img"><use href="#LightModeMedium"></use></svg><svg width="20" height="20" class="absolute left-0 top-50 transition-transform duration-500 ease-out delay-200 translate-y-0 dark:translate-y-500" role="img"><use href="#DarkModeMedium"></use></svg></div></button></div><a class="text whitespace-nowrap hidden md:block" href="https://partners.shopify.com/organizations?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Log in</a><a class="text whitespace-nowrap hidden md:block" href="https://partners.shopify.com/signup/developer?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Sign up</a></div></header><div class="min-h-[calc(100vh-48px)] flex flex-col"><main><div class="_ChangelogHero_oql4f_1"><div class="_ProseContainer_oql4f_14"><h1 class="_HeroHeading_oql4f_31">Developer changelog</h1><p class="_HeroSubhead_oql4f_37">Subscribe to the changelog to stay up to date on recent changes to Shopify’s APIs and other developer products, as well as preview upcoming features and beta releases.</p><span class="_HeroRSSLink_oql4f_43"><a href="/changelog/feed.xml" target="_BLANK" rel="noreferrer">RSS Updates</a></span></div><style> .Mode-Dark { .-assetshero-light-Drov1vFSpngassetshero-dark-B9onMHn1png { background-image: url(/assets/hero-dark-B9onMHn1.png); } } .Mode-Light { .-assetshero-light-Drov1vFSpngassetshero-dark-B9onMHn1png { background-image: url(/assets/hero-light-Drov1vFS.png); } } </style><div class="_ImageContainer_oql4f_113"><div class="-assetshero-light-Drov1vFSpngassetshero-dark-B9onMHn1png _HeroImage_oql4f_140"></div></div></div><div class="w-constraint-xl mx-auto"><div class="_ChangelogContainer_wrydk_1"><div class="_FiltersContainer_wrydk_12"><form method="get" action="/changelog" class="flex flex-col gap-300" style="font:var(--font-sans-font-body-minor-base)" data-discover="true"><div class="_SearchInputContainer_tum2g_1"><label id="changelog_searchLabel" for="changelog_search" class="sr-only">Search changelog</label><div class="_SearchInputIconContainer_tum2g_5 _SearchInputIconContainerLeft_tum2g_12"><svg width="20" height="20" class="_SearchInputIcon_tum2g_5" role="img"><use href="#SearchMedium"></use></svg></div><input name="changelog_search" type="text" aria-labelledby="changelog_searchLabel" autoComplete="off" placeholder="Search changelog" class="_SearchInput_tum2g_1" value=""/></div><div class="flex flex-col gap-200 p-300 pt-200 rounded-sm bg-surface"><div class="flex flex-row justify-between"><span role="heading" aria-level="2">Filter by tag</span></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="api"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="apiLabel" for="api" class="_CheckboxLabel_1igoy_25">API</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="tools"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="toolsLabel" for="tools" class="_CheckboxLabel_1igoy_25">Tools</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="shopify_app_store"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="shopify_app_storeLabel" for="shopify_app_store" class="_CheckboxLabel_1igoy_25">Shopify App Store</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="dev_themes"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="dev_themesLabel" for="dev_themes" class="_CheckboxLabel_1igoy_25">Themes</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="platform"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="platformLabel" for="platform" class="_CheckboxLabel_1igoy_25">Platform</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="shopify_theme_store"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="shopify_theme_storeLabel" for="shopify_theme_store" class="_CheckboxLabel_1igoy_25">Shopify Theme Store</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="built_for_shopify"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="built_for_shopifyLabel" for="built_for_shopify" class="_CheckboxLabel_1igoy_25">Built For Shopify</label></div><div class="_CheckboxContainer_1igoy_1"><button type="button" role="checkbox" aria-checked="false" data-state="unchecked" value="on" class="_CheckboxRoot_1igoy_7" id="action"></button><input type="checkbox" aria-hidden="true" style="transform:translateX(-100%);position:absolute;pointer-events:none;opacity:0;margin:0" tabindex="-1" value="on"/><label id="actionLabel" for="action" class="_CheckboxLabel_1igoy_25"><span class="MinorTheme-Critical text-default">Action Required</span></label></div><hr class="width-full m-100 text-divider"/><div role="heading" aria-level="2">Filter by release</div><div class="flex gap-300"><button type="button" class="inline px-200 py-50 rounded-xs font-mono hover:text-bright bg-form-borderless hover:bg-form-borderless-hover cursor-pointer">2024-10</button><button type="button" class="inline px-200 py-50 rounded-xs font-mono hover:text-bright bg-form-borderless hover:bg-form-borderless-hover cursor-pointer">2025-01</button></div></div></form></div><div class="_PostsContainer_wrydk_23"><ul><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-17T12:00:00-05:00">February 17, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-endsat-createdat-and-updatedat-query-filter-parameters-for-searching-discounts" data-discover="true"><div class="_Markdown_1r9i3_4">New ends_at, created_at, and updated_at query filter parameters for searching discounts</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>API version 2025-04 introduces the <code><span class="PreventFireFoxApplyingGapToWBR">ends<wbr/>_at</span></code>, <code><span class="PreventFireFoxApplyingGapToWBR">created<wbr/>_at</span></code>, and <code><span class="PreventFireFoxApplyingGapToWBR">updated<wbr/>_at</span></code> query filter parameters, which provides greater flexibility in managing and viewing discounts.</p> </div><a href="/changelog/new-endsat-createdat-and-updatedat-query-filter-parameters-for-searching-discounts" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-17T12:00:00-05:00">February 17, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/explicit-access-grants-for-metafields-full-deprecation" data-discover="true"><div class="_Markdown_1r9i3_4">Explicit access grants for metafields removed</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Explicit grants for app-owned metafields end on Feb 24, 2025. Use custom namespace for sharing metafields between apps after this date.</p> </div><a href="/changelog/explicit-access-grants-for-metafields-full-deprecation" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-18T12:00:00-05:00">February 18, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Platform</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/hydrogen-february-2025-release" data-discover="true"><div class="_Markdown_1r9i3_4">Hydrogen February 2025 release</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Hydrogen v2025.1.1 validated Remix v3_singleFetch future flag, stabilized B2B methods and props and several package version updates.</p> </div><a href="/changelog/hydrogen-february-2025-release" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-15T12:00:00-05:00">February 15, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/nontestorderlimitreached-error-for-subscriptions-billing-attempts" data-discover="true"><div class="_Markdown_1r9i3_4"><code>NON_TEST_ORDER_LIMIT_REACHED</code> error code for subscriptions billing attempts</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Adds <code><span class="PreventFireFoxApplyingGapToWBR">Non<wbr/>Test<wbr/>Order<wbr/>Limit<wbr/>Reached</span></code> field to <code><span class="PreventFireFoxApplyingGapToWBR">Subscription<wbr/>Billing<wbr/>Attempt<wbr/>Error<wbr/>Code</span></code>, alerting you when you've exceeded the order limit for a payment processor.</p> </div><a href="/changelog/nontestorderlimitreached-error-for-subscriptions-billing-attempts" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-11T16:00:00-05:00">February 11, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Themes</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/liquid-arrays-now-support-the-find-findindex-has-and-reject-filters" data-discover="true"><div class="_Markdown_1r9i3_4">Liquid arrays now support the <code>find</code>, <code>find_index</code>, <code>has</code>, and <code>reject</code> filters</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>New Liquid filters <code>find</code>, <code><span class="PreventFireFoxApplyingGapToWBR">find<wbr/>_index</span></code>, <code>has</code>, and <code>reject</code> simplify array handling by eliminating verbose loops and complex logic, making your code more concise and declarative</p> </div><a href="/changelog/liquid-arrays-now-support-the-find-findindex-has-and-reject-filters" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-05T09:00:00-05:00">February 5, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/track-the-retail-locations-where-your-customers-update-their-marketing-consent" data-discover="true"><div class="_Markdown_1r9i3_4">Attribute Marketing Consent to Retail Locations</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Use the GraphQL Admin API to query the retail location where customers are updating their marketing consent.</p> </div><a href="/changelog/track-the-retail-locations-where-your-customers-update-their-marketing-consent" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-14T12:00:00-05:00">February 14, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/updated-country-harmonized-system-code-validations-on-product-variant-mutations" data-discover="true"><div class="_Markdown_1r9i3_4">Updated Country Harmonized System Code validations on Product Variant mutations</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of <code>2025-04</code>, Product Variant mutations will validate country harmonized system codes against existing inventory item harmonized system codes.</p> </div><a href="/changelog/updated-country-harmonized-system-code-validations-on-product-variant-mutations" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-07T12:00:00-05:00">February 7, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Platform</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/flow-template-extensions-no-longer-block-deploys" data-discover="true"><div class="_Markdown_1r9i3_4">Flow: Template extensions no longer block deploys</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p><code>app deploy</code> now instantly deploys Flow template extensions. After a post-deploy review, approved templates appear in the library; unapproved ones receive feedback for changes before redeployment.</p> </div><a href="/changelog/flow-template-extensions-no-longer-block-deploys" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-07T12:00:00-05:00">February 7, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/discounts-reference-docs-improvements" data-discover="true"><div class="_Markdown_1r9i3_4">Discounts reference docs improvements</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Revamped our Discounts GraphQL Admin API docs with more detailed descriptions and real-world examples, based on your user feedback!</p> </div><a href="/changelog/discounts-reference-docs-improvements" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2024-12-31T15:15:00-05:00">December 31, 2024</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/events-and-origins-in-store-credit-account-transactions" data-discover="true"><div class="_Markdown_1r9i3_4">Events and Origins in Store Credit Account Transactions</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Admin API 2025-01 adds 'event' and 'origin' fields to store credit transactions, enhancing traceability and auditing for better financial reporting and customer service.</p> </div><a href="/changelog/events-and-origins-in-store-credit-account-transactions" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-01T12:00:00-05:00">February 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27">Customer Account GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/removing-unnecessary-relevance-sort-options" data-discover="true"><div class="_Markdown_1r9i3_4">Removing unnecessary <code>RELEVANCE</code> sort options</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p><code><span class="PreventFireFoxApplyingGapToWBR">R<wbr/>E<wbr/>L<wbr/>E<wbr/>V<wbr/>A<wbr/>N<wbr/>C<wbr/>E</span></code> will no longer be included in connection sort options by default as of <code>2025-04</code>. This will eliminate cases where the option offered no unique behavior.</p> </div><a href="/changelog/removing-unnecessary-relevance-sort-options" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-31T12:20:00-05:00">January 31, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Platform</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/hydrogen-january-2025-release" data-discover="true"><div class="_Markdown_1r9i3_4">Hydrogen January 2025 release</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Hydrogen v2025.1.0 adds Storefront API 2025-01 support, validated Remix v3_lazyRouteDiscovery future flag and several bug fixes. Deprecated features removed for improved performance.</p> </div><a href="/changelog/hydrogen-january-2025-release" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-02-07T12:00:00-05:00">February 7, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Customer Account GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-event-and-origin-fields-for-store-credit-transactions" data-discover="true"><div class="_Markdown_1r9i3_4">New <code>event</code> and <code>origin</code> fields for store credit transactions</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>New fields <code>event</code> and <code>origin</code> added to store credit transactions for Customer Account GraphQL API <code>2025-04</code>.</p> </div><a href="/changelog/new-event-and-origin-fields-for-store-credit-transactions" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-29T12:00:00-05:00">January 29, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-catalog-apis" data-discover="true"><div class="_Markdown_1r9i3_4">New Catalog APIs</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Catalog APIs now support multiple markets per catalog. Use <code><span class="PreventFireFoxApplyingGapToWBR">type: R<wbr/>E<wbr/>G<wbr/>I<wbr/>O<wbr/>N</span></code> to maintain single market behavior.</p> </div><a href="/changelog/new-catalog-apis" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-29T12:00:00-05:00">January 29, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/payout-statuses-in-transit-and-scheduled-have-been-merged" data-discover="true"><div class="_Markdown_1r9i3_4">Payout statuses In Transit and Scheduled have been merged</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Payout statuses "In Transit" and "Scheduled" are now merged as "Scheduled." Update workflows to recognize "Scheduled" for accurate payout info. Change is effective immediately.</p> </div><a href="/changelog/payout-statuses-in-transit-and-scheduled-have-been-merged" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-28T12:00:00-05:00">January 28, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Liquid</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/shopmetaobjects-is-now-just-metaobjects-in-liquid" data-discover="true"><div class="_Markdown_1r9i3_4">shop.metaobjects is now just metaobjects in liquid</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Access metaobjects in Liquid using <code>metaobjects.type.handle</code> for standardization. The old <code>shop.metaobjects.type.handle</code> is deprecated but still supported. Transition to the new syntax.</p> </div><a href="/changelog/shopmetaobjects-is-now-just-metaobjects-in-liquid" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-25T12:00:00-05:00">January 25, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27">Customer Account GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/subscription-contracts-filters" data-discover="true"><div class="_Markdown_1r9i3_4">New creation, update, and status filters for subscriptionContracts</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>API v2025-04 now supports filtering subscriptionContracts by <code><span class="PreventFireFoxApplyingGapToWBR">created<wbr/>_at</span></code>, <code><span class="PreventFireFoxApplyingGapToWBR">updated<wbr/>_at</span></code>, and <code>status</code> in admin and customer APIs.</p> </div><a href="/changelog/subscription-contracts-filters" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-24T16:00:00-05:00">January 24, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Shopify App Store</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/apps-will-be-reviewed-for-necessary-scopes" data-discover="true"><div class="_Markdown_1r9i3_4">Apps will be reviewed for necessary scopes</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Starting February 1, 2025, all apps submitted to the Shopify App Store will be checked for scopes that require Shopify permission for approved use cases. </p> <p>Apps that have unnecessary scopes, or...</p> </div><a href="/changelog/apps-will-be-reviewed-for-necessary-scopes" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-31T12:00:00-05:00">January 31, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/record-partial-payments-on-orders" data-discover="true"><div class="_Markdown_1r9i3_4">Record partial payments on Orders</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of <code>2025-04</code> partial payments can be recorded on orders using the new <a href="https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/orderCreateManualPayment">orderCreateManualPayment</a> mutation....</p> </div><a href="/changelog/record-partial-payments-on-orders" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-23T12:00:00-05:00">January 23, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/optional-role-argument-for-theme-create-mutation" data-discover="true"><div class="_Markdown_1r9i3_4">Optional <code>role</code> argument for <code>themeCreate</code> mutation</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>The <code><span class="PreventFireFoxApplyingGapToWBR">theme<wbr/>Create</span></code> mutation now supports an optional <code>role</code> argument.</p> </div><a href="/changelog/optional-role-argument-for-theme-create-mutation" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-22T12:00:00-05:00">January 22, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/inventoryitem-queryable-and-updatable-with-products-scopes" data-discover="true"><div class="_Markdown_1r9i3_4">InventoryItem Queryable and Updatable with Products Scopes</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Updated InventoryItemInput and InventoryItem scopes allow updates with write_products and queries with read_products. Restrictions on inventoryLevel and location queries remain. Applies to all API versions.</p> </div><a href="/changelog/inventoryitem-queryable-and-updatable-with-products-scopes" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-22T12:00:00-05:00">January 22, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/support-added-for-app-namespaces-in-product-queries-by-metafield" data-discover="true"><div class="_Markdown_1r9i3_4">Support added for $app in product queries by metafield</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Support added for $app namespaces in product queries by metafield which improves query flexibility.</p> </div><a href="/changelog/support-added-for-app-namespaces-in-product-queries-by-metafield" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-16T18:15:00-05:00">January 16, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">Storefront GraphQL API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/continuous-cart-authentication" data-discover="true"><div class="_Markdown_1r9i3_4">Continuous cart authentication</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Enable continuous authentication by appending customerAccessToken to cart in buyerIdentity. Authenticated checkouts now available for all plans.</p> </div><a href="/changelog/continuous-cart-authentication" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-16T03:00:00-05:00">January 16, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">Shopify App Store</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-buyer-consent-requirement" data-discover="true"><div class="_Markdown_1r9i3_4">New Buyer Consent Requirement</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of Feb 18, 2025, all apps must show costs and get buyer consent for paid items in Storefront, Cart, and Checkout. Applies to published and unpublished apps.</p> </div><a href="/changelog/new-buyer-consent-requirement" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-15T12:00:00-05:00">January 15, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/line-item-weight-input-for-ordercreate-mutation" data-discover="true"><div class="_Markdown_1r9i3_4">Line item weight input for <code>orderCreate</code> mutation</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>The <code><span class="PreventFireFoxApplyingGapToWBR">order<wbr/>Create</span></code> mutation now supports <code><span class="PreventFireFoxApplyingGapToWBR">Order<wbr/>Create<wbr/>Line<wbr/>Item<wbr/>Input.weight</span></code> to set line item weights.</p> </div><a href="/changelog/line-item-weight-input-for-ordercreate-mutation" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-15T12:00:00-05:00">January 15, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/expose-the-id-field-in-productfullsyncpayload-object" data-discover="true"><div class="_Markdown_1r9i3_4">Expose the id field in ProductFullSyncPayload object</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Version 2025-04: Admin API now includes the return field id in product full sync payload, enhancing data tracking for developers.</p> </div><a href="/changelog/expose-the-id-field-in-productfullsyncpayload-object" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-15T12:00:00-05:00">January 15, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin Extensions</span><span class="_Tag_rrk50_27">Admin GraphQL API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-inventoryitem-field-on-productsetvariantinput" data-discover="true"><div class="_Markdown_1r9i3_4">New <code>inventoryItem</code> field on ProductSetVariantInput</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>The GraphQL Admin API now includes the <code><span class="PreventFireFoxApplyingGapToWBR">inventory<wbr/>Item</span></code> field in <code><span class="PreventFireFoxApplyingGapToWBR">Product<wbr/>Variant<wbr/>Set<wbr/>Input</span></code>, effective from API version <code>2024-10</code>, enhancing product management capabilities.</p> </div><a href="/changelog/new-inventoryitem-field-on-productsetvariantinput" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-11T12:00:00-05:00">January 11, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Built for Shopify</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/performance-integration-and-category-specific-requirements-come-into-practice" data-discover="true"><div class="_Markdown_1r9i3_4">Performance, integration and category-specific requirements come into practice</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>To ensure that the Built for Shopify status represents the highest quality of app apps will need to meet the following performance, integration and category-specific requirements. These...</p> </div><a href="/changelog/performance-integration-and-category-specific-requirements-come-into-practice" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-10T12:00:00-05:00">January 10, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-card-brands-for-ordertransactionspaymentmethods" data-discover="true"><div class="_Markdown_1r9i3_4">New card brands for OrderTransactions.paymentMethods</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p><code><span class="PreventFireFoxApplyingGapToWBR">Order<wbr/>Transactions.payment<wbr/>Methods</span></code> now includes <code><span class="PreventFireFoxApplyingGapToWBR">C<wbr/>A<wbr/>R<wbr/>T<wbr/>E<wbr/>S<wbr/>_B<wbr/>A<wbr/>N<wbr/>C<wbr/>A<wbr/>I<wbr/>R<wbr/>E<wbr/>S</span></code> and <code><span class="PreventFireFoxApplyingGapToWBR">B<wbr/>A<wbr/>N<wbr/>C<wbr/>O<wbr/>N<wbr/>T<wbr/>A<wbr/>C<wbr/>T</span></code>. From API version 2025-04, transactions using these methods will show updated values in responses.</p> </div><a href="/changelog/new-card-brands-for-ordertransactionspaymentmethods" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-08T00:00:00-05:00">January 8, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Tools</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/shopify-functions-template-and-shopify-cli-changes-to-support-rust-184" data-discover="true"><div class="_Markdown_1r9i3_4">Shopify Functions template and Shopify CLI changes to support Rust 1.84</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Shopify Functions templates for Rust now exclude <code>cargo-wasi</code> due to Rust 1.84 changes. Shopify CLI 3.73 adds default build optimization.</p> </div><a href="/changelog/shopify-functions-template-and-shopify-cli-changes-to-support-rust-184" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-06T13:00:00-05:00">January 6, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-validations-on-function-input-query-variables-metafields" data-discover="true"><div class="_Markdown_1r9i3_4">New validations on function input query variables metafields</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of 2025-01, Function APIs validate input query variables. Invalid metafields now trigger <code><span class="PreventFireFoxApplyingGapToWBR">Invalid<wbr/>Variable<wbr/>Value<wbr/>Error</span></code>, improving error detection and debugging for developers.</p> </div><a href="/changelog/new-validations-on-function-input-query-variables-metafields" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-06T13:00:00-05:00">January 6, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/add-tax-validation-with-localizedfields-in-checkout-ui-extensions-functions" data-discover="true"><div class="_Markdown_1r9i3_4">Add tax validation with localizedFields in Checkout UI Extensions & Functions</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Use the new localizedFields in the Checkout Extensions APIs to apply custom validation for tax fields. The localizationExtensions field in the Admin API has now been renamed to localizedFields. </p> </div><a href="/changelog/add-tax-validation-with-localizedfields-in-checkout-ui-extensions-functions" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-06T12:00:00-05:00">January 6, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">POS Extensions</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/pos-ui-extensions-2025-01-update" data-discover="true"><div class="_Markdown_1r9i3_4">POS UI Extensions 2025-01 Update</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of January 20, we added the following updates to POS UI Extensions: </p> <h3>Breaking Changes</h3> <ul> <li>Removed the deprecated ActionItem component. Use a...</li> </ul> </div><a href="/changelog/pos-ui-extensions-2025-01-update" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-03T18:00:00-05:00">January 3, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-markets-apis" data-discover="true"><div class="_Markdown_1r9i3_4">New Markets APIs</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Markets APIs update: Use <code><span class="PreventFireFoxApplyingGapToWBR">backup<wbr/>Region<wbr/>Update</span></code> for shop-wide regions, <code><span class="PreventFireFoxApplyingGapToWBR">Backup<wbr/>Region<wbr/>Update<wbr/>Input</span></code> replaces <code><span class="PreventFireFoxApplyingGapToWBR">Market<wbr/>Region<wbr/>Create<wbr/>Input</span></code>. <code><span class="PreventFireFoxApplyingGapToWBR">Market.currency<wbr/>Settings</span></code> is nullable. <code><span class="PreventFireFoxApplyingGapToWBR">Web<wbr/>Presence</span></code> replaces <code><span class="PreventFireFoxApplyingGapToWBR">Market<wbr/>Web<wbr/>Presence</span></code>.</p> </div><a href="/changelog/new-markets-apis" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T16:37:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2024-10</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-collection_id-filter-added-to-products-query-filters" data-discover="true"><div class="_Markdown_1r9i3_4">New <code>collection_id</code> filter added to <code>products</code> query filters</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>The 2024-10 GraphQL Admin API update adds <code><span class="PreventFireFoxApplyingGapToWBR">collection<wbr/>_id</span></code> as a filter in the <code>products</code> query, usable with specific filters like <code><span class="PreventFireFoxApplyingGapToWBR">created<wbr/>_at</span></code>, <code>status</code>, and <code>vendor</code>.</p> </div><a href="/changelog/new-collection_id-filter-added-to-products-query-filters" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T16:01:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27">Customer Account GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/support-bundles-grouped-view-fields-in-graphql-api" data-discover="true"><div class="_Markdown_1r9i3_4">New fields to represent product bundles in a grouped view</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>We introduced two new fields that allow you to accurately nest component products under the parent product in a grouped view. </p> </div><a href="/changelog/support-bundles-grouped-view-fields-in-graphql-api" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T15:57:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Storefront GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/filter-products-by-category-or-taxonomy-metafield" data-discover="true"><div class="_Markdown_1r9i3_4">Filter products by category or taxonomy metafield</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Storefront API 2025-01 adds <code><span class="PreventFireFoxApplyingGapToWBR">Category<wbr/>Filter</span></code> and <code><span class="PreventFireFoxApplyingGapToWBR">Taxonomy<wbr/>Metafield<wbr/>Filter</span></code> for filtering products by category ID and taxonomy metafield, enhancing search and collection queries.</p> </div><a href="/changelog/filter-products-by-category-or-taxonomy-metafield" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T13:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/minimum-requirement-is-now-optional-on-automatic-discounts" data-discover="true"><div class="_Markdown_1r9i3_4">Minimum requirement is now optional on automatic discounts</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>The <code><span class="PreventFireFoxApplyingGapToWBR">minimum<wbr/>Requirement</span></code> field in discount APIs is now optional, allowing <code>null</code> values. This change simplifies discount setup for merchants in version 2025-01.</p> </div><a href="/changelog/minimum-requirement-is-now-optional-on-automatic-discounts" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T12:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-customer-input-field-for-the-ordercreate-mutation" data-discover="true"><div class="_Markdown_1r9i3_4">New customer input field for the OrderCreate mutation</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>GraphQL Admin API 2025-01 deprecates <code><span class="PreventFireFoxApplyingGapToWBR">customer<wbr/>_id</span></code> for <code>customer</code>, allowing direct customer association or upsert, simplifying order creation by removing the need to fetch customer IDs.</p> </div><a href="/changelog/new-customer-input-field-for-the-ordercreate-mutation" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T11:53:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/introduce-concatenatedorigincontract-to-subscriptionline" data-discover="true"><div class="_Markdown_1r9i3_4">Introduce concatenatedOriginContract to subscriptionLine</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of 2025-01, we've introduced <code><span class="PreventFireFoxApplyingGapToWBR">concatenated<wbr/>Origin<wbr/>Contract</span></code> to <code><span class="PreventFireFoxApplyingGapToWBR">subscription<wbr/>Line</span></code> .</p> <p>You can now query the origin contract of the lines if you have used the Subscription Billing Cycle APIs to...</p> </div><a href="/changelog/introduce-concatenatedorigincontract-to-subscriptionline" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T09:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/unused-pricelistusererrorcode-values-removed" data-discover="true"><div class="_Markdown_1r9i3_4">Unused PriceListUserErrorCode values removed</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Starting from 2025-01, unused <code><span class="PreventFireFoxApplyingGapToWBR">Price<wbr/>List<wbr/>Error<wbr/>Code</span></code> values will be removed.</p> </div><a href="/changelog/unused-pricelistusererrorcode-values-removed" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T09:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Storefront GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/update-to-percentage_adjustment-field-on-sellingplanpercentagepriceadjustment" data-discover="true"><div class="_Markdown_1r9i3_4">Update to <code>percentage_adjustment</code> field on <code>SellingPlanPercentagePriceAdjustment</code></div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>In Storefront API 2025-01, <code><span class="PreventFireFoxApplyingGapToWBR">adjustment<wbr/>Percentage</span></code> in <code><span class="PreventFireFoxApplyingGapToWBR">Selling<wbr/>Plan<wbr/>Percentage<wbr/>Price<wbr/>Adjustment</span></code> changes from <code>Int</code> to <code>Float</code>, affecting how percentage price adjustments are handled.</p> </div><a href="/changelog/update-to-percentage_adjustment-field-on-sellingplanpercentagepriceadjustment" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T08:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Customer Account GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/deprecation-of-storefrontcustomeraccesstokencreate-mutation" data-discover="true"><div class="_Markdown_1r9i3_4">Deprecation of <code>storefrontCustomerAccessTokenCreate</code> Mutation</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>API version 2025-01 deprecates <code><span class="PreventFireFoxApplyingGapToWBR">storefront<wbr/>Customer<wbr/>Access<wbr/>Token<wbr/>Create</span></code>. Use Customer Accounts API tokens directly with Storefront API for cart and buyer updates, replacing the deprecated mutation.</p> </div><a href="/changelog/deprecation-of-storefrontcustomeraccesstokencreate-mutation" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T08:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/new-delivery-promise-participants-api" data-discover="true"><div class="_Markdown_1r9i3_4">New delivery promise participants API</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of the 2025-01 Admin GraphQL API, you can now query for delivery promise participants, using...</p> </div><a href="/changelog/new-delivery-promise-participants-api" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T07:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/combined-listings-update-mutation-error-improvements" data-discover="true"><div class="_Markdown_1r9i3_4">Combined Listings update mutation error improvements</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Starting with the Admin API version 2025-01, we've introduced new error codes for the <code><span class="PreventFireFoxApplyingGapToWBR">combined<wbr/>Listing<wbr/>Update</span></code> mutation. These enhancements aim to provide clearer feedback when incorrect data is...</p> </div><a href="/changelog/combined-listings-update-mutation-error-improvements" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T07:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27">Webhook</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/update-in-orders-webhook-to-view-bundles-and-their-components" data-discover="true"><div class="_Markdown_1r9i3_4">Update in orders webhook to view bundles and their components</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Starting with the Admin API version 2025-01, we have added the <code><span class="PreventFireFoxApplyingGapToWBR">sales<wbr/>_line<wbr/>_item<wbr/>_group<wbr/>_id</span></code> field to the orders webhook. This field allows you to determine if a specific <code><span class="PreventFireFoxApplyingGapToWBR">line<wbr/>_item</span></code> is part of a...</p> </div><a href="/changelog/update-in-orders-webhook-to-view-bundles-and-their-components" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T00:01:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27 MinorTheme-Critical">Action Required</span><span class="_Tag_rrk50_27">Shopify App Store</span><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27">Admin REST API</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/public-apps-must-use-new-graphql-product-apis-to-be-accepted-in-the-shopify-app-store" data-discover="true"><div class="_Markdown_1r9i3_4">Public apps must use new GraphQL Product APIs to be accepted in the Shopify App Store</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>Starting January 6, 2025, all new apps submitted to the Shopify App Store must use the [new GraphQL Product...</p> </div><a href="/changelog/public-apps-must-use-new-graphql-product-apis-to-be-accepted-in-the-shopify-app-store" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T00:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-04</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/add-new-requiresshippingmethod-field-to-fulfillmentservicecreate-and-fulfillmentserviceupdate-mutations" data-discover="true"><div class="_Markdown_1r9i3_4">Add new requiresShippingMethod field to fulfillmentServiceCreate and fulfillmentServiceUpdate mutations</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of Admin API 2025-04, we have introduced a new field <code><span class="PreventFireFoxApplyingGapToWBR">requires<wbr/>Shipping<wbr/>Method</span></code> on the...</p> </div><a href="/changelog/add-new-requiresshippingmethod-field-to-fulfillmentservicecreate-and-fulfillmentserviceupdate-mutations" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T00:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Admin GraphQL API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/reversefulfillmentorder-order-field-is-nullable-as-of-2025-01" data-discover="true"><div class="_Markdown_1r9i3_4">ReverseFulfillmentOrder.order field is nullable as of 2025-01</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of 2025-01, the ReverseFulfillmentOrder.order field is nullable if the client lacks read_all_orders scope and the order is over 60 days old or missing, avoiding graphql errors.</p> </div><a href="/changelog/reversefulfillmentorder-order-field-is-nullable-as-of-2025-01" data-discover="true">Read full post –></a></li><li class="_ChangelogListEntry_rrk50_1"><time class="_EntryDate_rrk50_13" dateTime="2025-01-01T00:00:00-05:00">January 1, 2025</time><div class="_EntryTags_rrk50_20"><span class="_Tag_rrk50_27">Payments Apps API</span><span class="_Tag_rrk50_27 _TagMono_rrk50_36">2025-01</span></div><h3 class="_EntryListTitle_rrk50_40"><a href="/changelog/addition-of-paymentdetails-field-in-verificationsessionresolve-mutation" data-discover="true"><div class="_Markdown_1r9i3_4">Addition of 'paymentDetails' field in <code>verificationSessionResolve</code> mutation.</div></a></h3><div class="_Markdown_1r9i3_4 _EntryExcerpt_rrk50_53"><p>As of Payments Apps API version <strong>2025-01</strong> release, the <code><span class="PreventFireFoxApplyingGapToWBR">payment<wbr/>Details</span></code> field will be addded to <code><span class="PreventFireFoxApplyingGapToWBR">verification<wbr/>Session<wbr/>Resolve</span></code> mutation. Payment providers can now send payment details like Card...</p> </div><a href="/changelog/addition-of-paymentdetails-field-in-verificationsessionresolve-mutation" data-discover="true">Read full post –></a></li></ul><div class="w-full flex justify-between"><div></div><div><a class="_ChangelogButton_wrydk_27 _NextButton_wrydk_66" href="/changelog?page=2" data-discover="true">Next<svg width="20" height="20" class="-mr-100" role="img"><use href="#ChevronRightMedium"></use></svg></a></div></div></div></div></div></main><footer class="bg-surface p-1000 sm:rounded mt-auto"><div class="w-constraint-lg md:grid-cols-4 gap-500 grid flex-wrap grid-cols-2 mx-auto"><div><h3 class="font-kicker mb-400">Updates</h3><div class="gap-200 flex flex-col"><a class="font-body-minor text" href="/changelog" data-discover="true">Developer changelog</a><a class="font-body-minor text" href="https://shopifypartners.slack.com/">Shopify Partners Slack</a><a class="font-body-minor text" href="https://www.shopify.com/editions">Shopify Editions</a></div></div><div><h3 class="font-kicker mb-400">Business growth</h3><div class="gap-200 flex flex-col"><a class="font-body-minor text" href="https://www.shopify.com/partners?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Shopify Partners Program</a><a class="font-body-minor text" href="https://apps.shopify.com/?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Shopify App Store</a><a class="font-body-minor text" href="https://academy.shopify.com/page/developers?itcat=shopifydev-footer-business-growth&itterm=developers">Shopify Academy</a></div></div><div><h3 class="font-kicker mb-400">Legal</h3><div class="gap-200 flex flex-col"><a class="font-body-minor text" href="https://www.shopify.com/legal/terms?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Terms of service</a><a class="font-body-minor text" href="https://www.shopify.com/legal/api-terms?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">API terms of use</a><a class="font-body-minor text" href="https://www.shopify.com/legal/privacy?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Privacy policy</a><a class="font-body-minor text" href="https://www.shopify.com/partners/terms?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Partners Program Agreement</a></div></div><div><h3 class="font-kicker mb-400">Shopify</h3><div class="gap-200 flex flex-col"><a class="font-body-minor text" href="https://www.shopify.com/about?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">About Shopify</a><a class="font-body-minor text" href="https://www.shopify.com/plus?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Shopify Plus</a><a class="font-body-minor text" href="https://www.shopify.com/careers?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Careers</a><a class="font-body-minor text" href="https://investors.shopify.com/home/default.aspx?shpxid=222dd762-CA08-48FF-E4D4-FF926B8FFCAD">Investors</a></div></div></div></footer></div></div><script>((storageKey2, restoreKey) => { if (!window.history.state || !window.history.state.key) { let key = Math.random().toString(32).slice(2); window.history.replaceState({ key }, ""); } try { let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(storageKey2); } })("react-router-scroll-positions", null)</script><link rel="modulepreload" href="/assets/entry.client-BkvPKoZf.js"/><link rel="modulepreload" href="/assets/chunk-SYFQ2XB5-jEBRZ3aU.js"/><link rel="modulepreload" href="/assets/index-DDPwpJgl.js"/><link rel="modulepreload" href="/assets/with-props-DUpCEV_g.js"/><link rel="modulepreload" href="/assets/ErrorMessage-C9_5OGtu.js"/><link rel="modulepreload" href="/assets/constants-C4j34BLw.js"/><link rel="modulepreload" href="/assets/bugsnag-DPsUI7X8.js"/><link rel="modulepreload" href="/assets/monorail-D4U5gKnO.js"/><link rel="modulepreload" href="/assets/ThemeMode-CQHDZ-O6.js"/><link rel="modulepreload" href="/assets/index-4XtkgFNh.js"/><link rel="modulepreload" href="/assets/root-D0DgIXZO.js"/><link rel="modulepreload" href="/assets/hooks-CQ2ZyM7I.js"/><link rel="modulepreload" href="/assets/useClientLayoutEffect-CTYcCm9e.js"/><link rel="modulepreload" href="/assets/Combination-Dec6FQ8q.js"/><link rel="modulepreload" href="/assets/Tooltip-ByyQuMto.js"/><link rel="modulepreload" href="/assets/MarkdownRenderer-wxoNFt6g.js"/><link rel="modulepreload" href="/assets/_SubmissionMessage-DOV7YWu_.js"/><link rel="modulepreload" href="/assets/GraphiQLNotAvailableWarning-DgCEnsmS.js"/><link rel="modulepreload" href="/assets/_EditorComponent-B0IIUaWL.js"/><link rel="modulepreload" href="/assets/PageLayout-B6FxC4_3.js"/><link rel="modulepreload" href="/assets/createLeafMeta-BOgE8elJ.js"/><link rel="modulepreload" href="/assets/PageFooter-BJ7I0u4E.js"/><link rel="modulepreload" href="/assets/global-wrapper-DzHtFcDn.js"/><link rel="modulepreload" href="/assets/_ChangelogEntry-CeMwlMgO.js"/><link rel="modulepreload" href="/assets/index-CJo7nj0S.js"/><link rel="modulepreload" href="/assets/useThemeModeImage-BmTJ8-xF.js"/><link rel="modulepreload" href="/assets/Feedback-q4iOSE5Q.js"/><link rel="modulepreload" href="/assets/changelog-DBzyhU_R.js"/><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false},"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">; import * as route0 from "/assets/root-D0DgIXZO.js"; import * as route1 from "/assets/global-wrapper-DzHtFcDn.js"; import * as route2 from "/assets/changelog-DBzyhU_R.js"; window.__reactRouterManifest = { "entry": { "module": "/assets/entry.client-BkvPKoZf.js", "imports": [ "/assets/chunk-SYFQ2XB5-jEBRZ3aU.js", "/assets/index-DDPwpJgl.js" ], "css": [] }, "routes": { "root": { "id": "root", "path": "", "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-D0DgIXZO.js", "imports": [ "/assets/chunk-SYFQ2XB5-jEBRZ3aU.js", "/assets/index-DDPwpJgl.js", "/assets/with-props-DUpCEV_g.js", "/assets/ErrorMessage-C9_5OGtu.js", "/assets/constants-C4j34BLw.js", "/assets/bugsnag-DPsUI7X8.js", "/assets/monorail-D4U5gKnO.js", "/assets/ThemeMode-CQHDZ-O6.js", "/assets/index-4XtkgFNh.js" ], "css": [ "/assets/root-DNqSDEjq.css" ] }, "routes/global-wrapper": { "id": "routes/global-wrapper", "parentId": "root", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/global-wrapper-DzHtFcDn.js", "imports": [ "/assets/with-props-DUpCEV_g.js", "/assets/chunk-SYFQ2XB5-jEBRZ3aU.js", "/assets/monorail-D4U5gKnO.js", "/assets/hooks-CQ2ZyM7I.js", "/assets/index-DDPwpJgl.js", "/assets/useClientLayoutEffect-CTYcCm9e.js", "/assets/Combination-Dec6FQ8q.js", "/assets/Tooltip-ByyQuMto.js", "/assets/index-4XtkgFNh.js", "/assets/bugsnag-DPsUI7X8.js", "/assets/ErrorMessage-C9_5OGtu.js", "/assets/MarkdownRenderer-wxoNFt6g.js", "/assets/_SubmissionMessage-DOV7YWu_.js", "/assets/GraphiQLNotAvailableWarning-DgCEnsmS.js", "/assets/_EditorComponent-B0IIUaWL.js", "/assets/PageLayout-B6FxC4_3.js", "/assets/createLeafMeta-BOgE8elJ.js", "/assets/constants-C4j34BLw.js", "/assets/PageFooter-BJ7I0u4E.js" ], "css": [ "/assets/global-wrapper-CMQP3qX_.css", "/assets/Tooltip-B0B_qFK3.css", "/assets/MarkdownRenderer-GtORHvE1.css", "/assets/GraphiQLNotAvailableWarning-BKXntmO-.css", "/assets/_EditorComponent-BoKozXeA.css" ] }, "routes/changelog": { "id": "routes/changelog", "parentId": "routes/global-wrapper", "path": "changelog", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/changelog-DBzyhU_R.js", "imports": [ "/assets/with-props-DUpCEV_g.js", "/assets/chunk-SYFQ2XB5-jEBRZ3aU.js", "/assets/PageFooter-BJ7I0u4E.js", "/assets/Tooltip-ByyQuMto.js", "/assets/_ChangelogEntry-CeMwlMgO.js", "/assets/Combination-Dec6FQ8q.js", "/assets/index-4XtkgFNh.js", "/assets/index-DDPwpJgl.js", "/assets/index-CJo7nj0S.js", "/assets/createLeafMeta-BOgE8elJ.js", "/assets/useThemeModeImage-BmTJ8-xF.js", "/assets/MarkdownRenderer-wxoNFt6g.js", "/assets/Feedback-q4iOSE5Q.js", "/assets/monorail-D4U5gKnO.js", "/assets/_SubmissionMessage-DOV7YWu_.js", "/assets/bugsnag-DPsUI7X8.js", "/assets/constants-C4j34BLw.js" ], "css": [ "/assets/changelog-BELReQl8.css", "/assets/Tooltip-B0B_qFK3.css", "/assets/_ChangelogEntry-o9sptWHq.css", "/assets/MarkdownRenderer-GtORHvE1.css" ] } }, "url": "/assets/manifest-591c9f46.js", "version": "591c9f46" }; window.__reactRouterRouteModules = {"root":route0,"routes/global-wrapper":route1,"routes/changelog":route2}; import("/assets/entry.client-BkvPKoZf.js");</script></body></html><!--$?--><template id="B:0"></template><!--/$--><div hidden id="S:0"><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_785\":-5,\"_786\":-5},\"loaderData\",{\"_3\":4,\"_137\":138,\"_784\":-5},\"routes/global-wrapper\",{\"_5\":6,\"_90\":91,\"_92\":93,\"_96\":97},\"search\",{\"_7\":8,\"_52\":53},\"selectableVersions\",{\"_9\":10,\"_20\":21,\"_25\":26,\"_30\":31,\"_33\":34,\"_36\":37,\"_40\":41,\"_43\":44,\"_49\":50},\"default\",{\"_11\":12,\"_19\":15},\"values\",[13,14,15,16,17,18],\"unstable\",\"2025-04\",\"2025-01\",\"2024-10\",\"2024-07\",\"2024-04\",\"stable_version\",\"API: Admin Extensions\",{\"_19\":13,\"_11\":22},[13,15,16,17,18,23,24],\"2024-01\",\"2023-10\",\"API: Checkout UI extensions\",{\"_19\":13,\"_11\":27},[13,15,16,17,18,23,24,28,29],\"2023-07\",\"2023-04\",\"API: Customer account UI extensions\",{\"_19\":13,\"_11\":32},[13,15,16],\"API: Hydrogen\",{\"_19\":15,\"_11\":35},[15,16,17,18,23,24,28,29],\"API: Hydrogen React\",{\"_19\":15,\"_11\":38},[15,16,17,18,23,24,28,29,39],\"2023-01\",\"API: POS UI Extensions\",{\"_19\":13,\"_11\":42},[13,15,16,17,18],\"API: shopify app remix\",{\"_19\":45,\"_11\":46},\"v3\",[45,47,48],\"v2\",\"v1\",\"API: Webhooks\",{\"_19\":13,\"_11\":51},[13,14,15,16,17,18],\"categories\",[54,62,66,68,70,72,74,77,79,82,85,88],{\"_55\":20,\"_56\":57,\"_58\":59,\"_60\":61},\"name\",\"referenceName\",\"admin-extensions\",\"versioned\",true,\"cookieName\",\"api_version\",{\"_55\":63,\"_56\":64,\"_58\":65,\"_60\":61},\"API: App Bridge Library\",\"app-bridge-library\",false,{\"_55\":25,\"_56\":67,\"_58\":59,\"_60\":61},\"checkout-ui-extensions\",{\"_55\":30,\"_56\":69,\"_58\":59,\"_60\":61},\"customer-account-ui-extensions\",{\"_55\":33,\"_56\":71,\"_58\":59,\"_60\":61},\"hydrogen\",{\"_55\":36,\"_56\":73,\"_58\":59,\"_60\":61},\"hydrogen-react\",{\"_55\":75,\"_56\":76,\"_58\":65,\"_60\":61},\"API: Hydrogen UI\",\"hydrogen-ui\",{\"_55\":40,\"_56\":78,\"_58\":59,\"_60\":61},\"pos-ui-extensions\",{\"_55\":43,\"_56\":80,\"_58\":59,\"_60\":81},\"shopify-app-remix\",\"api_version_shopify-app-remix\",{\"_55\":83,\"_56\":84,\"_58\":65,\"_60\":61},\"API: Shopify CLI\",\"shopify-cli\",{\"_55\":86,\"_56\":87,\"_58\":65,\"_60\":61},\"API: Web Pixels API\",\"web-pixels-api\",{\"_55\":49,\"_56\":89,\"_58\":59,\"_60\":61},\"webhooks\",\"railsCsrfToken\",\"rb-kAXCQhzpGRzgLPnLElb1cqhOCF0F7EmHqT2iZrX_d0f8LKJmUoApcj1VHeCC9SiNTI9CcJur38sne777Fiw\",\"userPreferences\",{\"_94\":95},\"gqlLanguage\",\"graphql\",\"features\",[98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],\"adaptive_rate_limiter\",\"automated_privacy\",\"bundles_grouped_view\",\"cli_managed_subscription_link_creation_and_migration\",\"combined_listings\",\"customer_account_ui_extensions_stable_docs\",\"dat_scheduled_feature_tho\",\"discounts_allocator_function\",\"editor_extension_collections_docs\",\"enforce_fulfillment_order_status_on_create_fulfillment\",\"explicit_buyer_consent\",\"flex_sections\",\"gql_ai\",\"gql_ai_v2\",\"gql_example_switcher\",\"gql_operation_cache\",\"headless_cmp\",\"identity_integration\",\"mockshop_ai\",\"mockshop_ai_disable_force_ai\",\"net_new_webhooks_reference_2024\",\"online_store_new_datasources\",\"open_source_subscriptions_1p_app\",\"optional_scopes\",\"product_discount_cart_line_targeting\",\"purchase_options_extensions\",\"rest_admin_api_deprecation\",\"rev_share_jan24\",\"sched_2\",\"schedule_test\",\"shipping_discount_functions_general_availability\",\"ssr-changelog\",\"static_blocks\",\"style_settings\",\"theme_blocks\",\"theme_blocks_data_sources\",\"theme_blocks_ga\",\"versioned_app_config\",\"zero_redirect_auth\",\"routes/changelog\",{\"_139\":140},\"entries\",[141,175,187,203,214,228,241,253,263,274,287,302,314,326,338,351,365,378,391,404,416,428,440,454,465,477,488,501,515,527,540,551,562,576,588,600,613,625,637,649,661,673,684,696,707,719,733,748,760,771],{\"_142\":143,\"_144\":145,\"_146\":147,\"_148\":149,\"_150\":147,\"_151\":152,\"_153\":154,\"_155\":156,\"_157\":156,\"_158\":14,\"_159\":160,\"_166\":167,\"_170\":171,\"_174\":65},\"slug\",\"new-endsat-createdat-and-updatedat-query-filter-parameters-for-searching-discounts\",\"title\",\"New ends_at, created_at, and updated_at query filter parameters for searching discounts\",\"summary\",\"As of API version 2025-04, we've added new `ends_at`, `created_at`, and `updated_at` filters to the `discountNodes` query, in order to provide greater flexibility in managing and viewing discounts using the GraphQL Admin API.\\r\\n\\r\\nThe `ends_at`, `created_at`, and `updated_at` query filter parameters allow you to find discounts that will end at, were created at, or were last updated at a given time range.\\r\\n\\r\\nFor more information about the discountNodes query, please refer to our [documentation](https://shopify.dev/docs/api/admin-graphql/2025-04/queries/discountNodes).\",\"excerpt\",\"API version 2025-04 introduces the `ends_at`, `created_at`, and `updated_at` query filter parameters, which provides greater flexibility in managing and viewing discounts.\",\"content\",\"createdAt\",\"2025-02-12T13:28:34-05:00\",\"updatedAt\",\"2025-02-12T16:45:42-05:00\",\"postedAt\",\"2025-02-17T12:00:00-05:00\",\"effectiveAt\",\"effectiveApiVersion\",\"affectedApi\",[161],{\"_162\":163,\"_164\":165},\"displayName\",\"Admin GraphQL API\",\"handle\",\"admin-graphql\",\"primaryTag\",{\"_162\":168,\"_164\":169},\"API\",\"api\",\"secondaryTag\",{\"_162\":172,\"_164\":173},\"New\",\"new\",\"indicatesActionRequired\",{\"_142\":176,\"_144\":177,\"_146\":178,\"_148\":179,\"_150\":178,\"_151\":180,\"_153\":181,\"_155\":156,\"_157\":156,\"_158\":-5,\"_159\":182,\"_166\":183,\"_170\":184,\"_174\":59},\"explicit-access-grants-for-metafields-full-deprecation\",\"Explicit access grants for metafields removed\",\"Completing the transition that began with the [deprecation of explicit grants](https://shopify.dev/changelog/deprecating-explicit-access-grants-for-app-owned-metafields), existing explicit grants in the system will stop working on February 24, 2025. \\r\\n\",\"Explicit grants for app-owned metafields end on Feb 24, 2025. Use custom namespace for sharing metafields between apps after this date.\",\"2025-02-13T17:00:20-05:00\",\"2025-02-14T10:47:36-05:00\",[],{\"_162\":168,\"_164\":169},{\"_162\":185,\"_164\":186},\"Breaking API Change\",\"breaking-api-change\",{\"_142\":188,\"_144\":189,\"_146\":190,\"_148\":191,\"_150\":190,\"_151\":192,\"_153\":193,\"_155\":194,\"_157\":195,\"_158\":-5,\"_159\":196,\"_166\":197,\"_170\":200,\"_174\":65},\"hydrogen-february-2025-release\",\"Hydrogen February 2025 release\",\"The February 2025 Hydrogen release contains several upgrades:\\r\\n\\r\\n* Turn on Remix future flag `v3_singleFetch` ([#2708](https://github.com/Shopify/hydrogen/pull/2708))\\r\\n* Bump Remix package dependency to 2.15.3 ([#2740](https://github.com/Shopify/hydrogen/pull/2740))\\r\\n* Decoupled dependency on eslint ([#2716](https://github.com/Shopify/hydrogen/pull/2716))\\r\\n* B2B methods and props are now stable ([#2736](https://github.com/Shopify/hydrogen/pull/2736))\\r\\n* Pass i18n context automatically to customer account login ([#2746](https://github.com/Shopify/hydrogen/pull/2746))\\r\\n* Update getProductOptions to handle combined listing products with divergent options ([#2747](https://github.com/Shopify/hydrogen/pull/2747))\\r\\n\\r\\nCheck out our full [Hydrogen February 2025 release blog post](https://hydrogen.shopify.dev/update/january-2025) for more details. And please drop your comments, feedback, and suggestions in [GitHub Discussions](https://github.com/Shopify/hydrogen/discussions)!\",\"Hydrogen v2025.1.1 validated Remix v3_singleFetch future flag, stabilized B2B methods and props and several package version updates.\",\"2025-02-11T19:15:51-05:00\",\"2025-02-12T18:11:17-05:00\",\"2025-02-18T12:00:00-05:00\",\"2025-02-15T12:00:00-05:00\",[],{\"_162\":198,\"_164\":199},\"Platform\",\"platform\",{\"_162\":201,\"_164\":202},\"Update\",\"update\",{\"_142\":204,\"_144\":205,\"_146\":206,\"_148\":207,\"_150\":206,\"_151\":208,\"_153\":209,\"_155\":195,\"_157\":195,\"_158\":14,\"_159\":210,\"_166\":212,\"_170\":213,\"_174\":65},\"nontestorderlimitreached-error-for-subscriptions-billing-attempts\",\"`NON_TEST_ORDER_LIMIT_REACHED` error code for subscriptions billing attempts\",\"We added a `NON_TEST_ORDER_LIMIT_REACHED` field to the `SubscriptionBillingAttemptErrorCode` enum. This indicates that you've reached the order limit with this payment processor, and you'll need to [use a test payment gateway to place another order](https://help.shopify.com/en/partners/dashboard/managing-stores/test-orders-in-dev-stores).\",\"Adds `NonTestOrderLimitReached` field to `SubscriptionBillingAttemptErrorCode`, alerting you when you've exceeded the order limit for a payment processor.\",\"2025-02-14T10:43:01-05:00\",\"2025-02-14T12:39:08-05:00\",[211],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":215,\"_144\":216,\"_146\":217,\"_148\":218,\"_150\":217,\"_151\":219,\"_153\":220,\"_155\":221,\"_157\":222,\"_158\":-5,\"_159\":223,\"_166\":224,\"_170\":227,\"_174\":65},\"liquid-arrays-now-support-the-find-findindex-has-and-reject-filters\",\"Liquid arrays now support the `find`, `find_index`, `has`, and `reject` filters\",\"We’ve introduced the following new filters to improve how you handle arrays in your Liquid templates. Now, you can quickly retrieve or check for items in an array without writing verbose loops or complex conditional logic.\\r\\n\\r\\n- **`find`**: Returns the first item that matches your condition\\r\\n- **`find_index`**: Returns the index of the item that matches your condition\\r\\n- **`has`**: Returns `true` when the array includes an item that matches your condition\\r\\n- **`reject`**: Returns an array without items matching your condition\\r\\n\\r\\nThese filters make your Liquid code more concise and declarative.\\r\\n\\r\\nTo learn more, check out the [Liquid arrays API docs](https://shopify.dev/docs/api/liquid/filters/array-filters). Happy coding!\",\"New Liquid filters `find`, `find_index`, `has`, and `reject` simplify array handling by eliminating verbose loops and complex logic, making your code more concise and declarative\",\"2025-02-11T04:26:48-05:00\",\"2025-02-11T11:48:43-05:00\",\"2025-02-11T16:00:00-05:00\",\"2025-02-12T16:00:00-05:00\",[],{\"_162\":225,\"_164\":226},\"Themes\",\"dev_themes\",{\"_162\":172,\"_164\":173},{\"_142\":229,\"_144\":230,\"_146\":231,\"_148\":232,\"_150\":231,\"_151\":233,\"_153\":234,\"_155\":235,\"_157\":236,\"_158\":14,\"_159\":237,\"_166\":239,\"_170\":240,\"_174\":65},\"track-the-retail-locations-where-your-customers-update-their-marketing-consent\",\"Attribute Marketing Consent to Retail Locations\",\"You can now attribute customer marketing consent to a specific source location. This enhancement allows you to track marketing opt-in rates by retail location and provides better visibility into how customer marketing opt-ins are captured. The `CustomerEmailMarketingConsentState` and `CustomerSmsMarketingConsentState` GraphQL APIs can now return the retail location where the marketing consent state was last updated, when applicable.\\r\\n\\r\\nNew fields:\\r\\n* `CustomerEmailMarketingConsentState.sourceLocation`\\r\\n* `CustomerSmsMarketingConsentState.sourceLocation`\\r\\n\\r\\nFor more information on using the GraphQL Admin API to query customer data, please refer to the [API documentation](https://shopify.dev/docs/api/admin-graphql/2025-04/objects/Customer).\",\"Use the GraphQL Admin API to query the retail location where customers are updating their marketing consent.\",\"2025-01-27T10:45:08-05:00\",\"2025-02-04T09:47:42-05:00\",\"2025-02-05T09:00:00-05:00\",\"2025-02-07T12:00:00-05:00\",[238],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":242,\"_144\":243,\"_146\":244,\"_148\":245,\"_150\":244,\"_151\":246,\"_153\":247,\"_155\":248,\"_157\":236,\"_158\":14,\"_159\":249,\"_166\":251,\"_170\":252,\"_174\":65},\"updated-country-harmonized-system-code-validations-on-product-variant-mutations\",\"Updated Country Harmonized System Code validations on Product Variant mutations\",\"Starting with the Admin GraphQL API version 2025-04, all Product Variant mutations will include validations to ensure that any country-specific harmonized system codes provided in the input are compatible with the existing codes on the Inventory Item. These country-specific codes must be prefixed with the item's global harmonized system code and must be at least six characters long. If the input country HS codes do not meet these criteria, a user error will be returned, specifying the invalid input index and providing an error message.\\r\\n\\r\\nThe following Admin GraphQL API Product Variant mutations will incorporate these validations starting from API version 2025-04:\\r\\n- ProductVariantsBulkCreate\\r\\n- ProductVariantsBulkUpdate\\r\\n- ProductVariantCreate\\r\\n- ProductVariantUpdate\\r\\n- ProductSet\",\"As of `2025-04`, Product Variant mutations will validate country harmonized system codes against existing inventory item harmonized system codes.\",\"2025-02-06T17:03:38-05:00\",\"2025-02-06T19:26:23-05:00\",\"2025-02-14T12:00:00-05:00\",[250],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":185,\"_164\":186},{\"_142\":254,\"_144\":255,\"_146\":256,\"_148\":257,\"_150\":256,\"_151\":258,\"_153\":259,\"_155\":236,\"_157\":236,\"_158\":-5,\"_159\":260,\"_166\":261,\"_170\":262,\"_174\":65},\"flow-template-extensions-no-longer-block-deploys\",\"Flow: Template extensions no longer block deploys\",\"Going forward, when you use `app deploy` to push updated or new Flow template extensions, your app will be deployed immediately. After deployment, Flow will review the template extension. If it is approved, the template will appear in Flow's template library. If it is not approved, you will receive an email detailing the necessary changes. Once you have made these changes, you can redeploy your app.\",\"`app deploy` now instantly deploys Flow template extensions. After a post-deploy review, approved templates appear in the library; unapproved ones receive feedback for changes before redeployment.\",\"2025-02-06T17:42:52-05:00\",\"2025-02-07T15:58:53-05:00\",[],{\"_162\":198,\"_164\":199},{\"_162\":201,\"_164\":202},{\"_142\":264,\"_144\":265,\"_146\":266,\"_148\":267,\"_150\":266,\"_151\":268,\"_153\":269,\"_155\":236,\"_157\":236,\"_158\":-5,\"_159\":270,\"_166\":272,\"_170\":273,\"_174\":65},\"discounts-reference-docs-improvements\",\"Discounts reference docs improvements\",\"We’ve rewritten our most-visited and least-loved docs in the **Discounts and marketing** section of the [GraphQL Admin API reference](https://shopify.dev/docs/api/admin-graphql). You've shared many helpful comments and questions through our **Was this page helpful?** form, and we’ve reviewed and addressed 100% of them.\\r\\n\\r\\nHere’s the lowdown on the latest updates.\\r\\n\\r\\n## Better descriptions\\r\\n\\r\\nMany of our descriptions were too brief, circular (restated the method name), expected too much Shopify knowledge, or didn’t link to other relevant docs. \\r\\n\\r\\nWe’ve thoroughly revamped descriptions for Discounts objects, queries (including query filters), mutations, and input objects to include all the details you need without any guesswork. We also added more links to relevant tutorials to make it easier to find your way around and speed up your coding process.\\r\\n\\r\\n![Improved descriptions for `discountCodeApp` object](https://cdn.shopify.com/s/files/1/0262/2383/7206/files/discountCodeApp-descs.png?v=1738628466)\\r\\n\\r\\n## Better examples\\r\\n\\r\\nWe know how helpful it is to see code in action! That’s why we’ve added more real-world examples for common use cases. We added examples across top Discounts pages, especially for pages with 0 examples going in.\\r\\n\\r\\n![Improved examples for `automaticDiscountNode` query](https://cdn.shopify.com/s/files/1/0262/2383/7206/files/automaticDiscountNode-examples.png?v=1738628608)\\r\\n\\r\\n## Thanks for your feedback!\\r\\n\\r\\nThese updates are all about making your life easier. Less time scratching your head or making guesses means more time building amazing things!\\r\\n\\r\\nWe'd love to know what you think—where have these updates helped, and where else in the Admin API docs would you like to see improvements? You can leave comments by clicking the **Was this page helpful?** button on Shopify.dev. \",\"Revamped our Discounts GraphQL Admin API docs with more detailed descriptions and real-world examples, based on your user feedback!\",\"2025-02-03T19:03:51-05:00\",\"2025-02-07T12:37:41-05:00\",[271],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":275,\"_144\":276,\"_146\":277,\"_148\":278,\"_150\":277,\"_151\":279,\"_153\":280,\"_155\":281,\"_157\":282,\"_158\":15,\"_159\":283,\"_166\":285,\"_170\":286,\"_174\":65},\"events-and-origins-in-store-credit-account-transactions\",\"Events and Origins in Store Credit Account Transactions\",\"As of Admin API version 2025-01, we've enhanced the store credit transaction object with two new features to provide more detailed insights into store credit transactions.\\r\\n\\r\\n**New Types Introduced:** \\r\\n- [`StoreCreditAccountTransactionOrigin`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction#field-origin): This type identifies the origin of a store credit transaction, offering additional context and traceability. \\r\\n- [`StoreCreditSystemEvent`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction#field-event): This type details system events related to store credit transactions, facilitating improved tracking and auditing. \\r\\n\\r\\n**New Fields Added to Transaction Objects:**\\r\\n- The `event` and `origin` fields are now part of the following transaction object types: \\r\\n - [`StoreCreditAccountCreditTransaction`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction) \\r\\n - [`StoreCreditAccountDebitRevertTransaction`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountDebitRevertTransaction) \\r\\n - [`StoreCreditAccountDebitTransaction`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountDebitTransaction) \\r\\n - [`StoreCreditAccountExpirationTransaction`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountExpirationTransaction) \\r\\n - [`StoreCreditAccountTransaction`](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction) \\r\\n\\r\\nThese enhancements allow you to access event and origin data for each transaction, enriching the store credit transaction data. By utilizing these new fields, you can gain deeper insights into transaction histories, enhancing financial reporting and customer service.\\r\\n\\r\\nFor detailed implementation instructions, please refer to our [documentation](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/StoreCreditAccountCreditTransaction).\",\"Admin API 2025-01 adds 'event' and 'origin' fields to store credit transactions, enhancing traceability and auditing for better financial reporting and customer service.\",\"2024-11-29T04:50:37-05:00\",\"2025-01-30T09:28:22-05:00\",\"2024-12-31T15:15:00-05:00\",\"2025-02-01T15:15:00-05:00\",[284],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":288,\"_144\":289,\"_146\":290,\"_148\":291,\"_150\":290,\"_151\":292,\"_153\":293,\"_155\":294,\"_157\":294,\"_158\":14,\"_159\":295,\"_166\":300,\"_170\":301,\"_174\":65},\"removing-unnecessary-relevance-sort-options\",\"Removing unnecessary `RELEVANCE` sort options\",\"`RELEVANCE` will no longer be included in connection sort options by default as of `2025-04` API versions. This will eliminate cases where the option offered no unique behavior, and acted as a basic `ID` sort. Legitimate cases where this option provides unique capabilities and services regular traffic will not change.\",\"`RELEVANCE` will no longer be included in connection sort options by default as of `2025-04`. This will eliminate cases where the option offered no unique behavior.\",\"2024-12-20T11:45:07-05:00\",\"2024-12-30T15:56:29-05:00\",\"2025-02-01T12:00:00-05:00\",[296,297],{\"_162\":163,\"_164\":165},{\"_162\":298,\"_164\":299},\"Customer Account GraphQL API\",\"customer-account-graphql\",{\"_162\":168,\"_164\":169},{\"_162\":185,\"_164\":186},{\"_142\":303,\"_144\":304,\"_146\":305,\"_148\":306,\"_150\":305,\"_151\":307,\"_153\":308,\"_155\":309,\"_157\":310,\"_158\":-5,\"_159\":311,\"_166\":312,\"_170\":313,\"_174\":65},\"hydrogen-january-2025-release\",\"Hydrogen January 2025 release\",\"The January 2025 Hydrogen release contains several upgrades:\\r\\n\\r\\n* Turn on Remix future flag `v3_lazyRouteDiscovery` ([#2702](https://github.com/Shopify/hydrogen/pull/2702))\\r\\n* Update SFAPI to 2025-01 ([#2715](https://github.com/Shopify/hydrogen/pull/2715))\\r\\n* Workaround for “Error: failed to execute ‘insertBefore’ on ‘Node’” that sometimes happen during development ([#2701](https://github.com/Shopify/hydrogen/pull/2701))\\r\\n* Bump vite, Remix package versions and bump tailwind v4 alpha to beta ([#2696](https://github.com/Shopify/hydrogen/pull/2696))\\r\\n* Fix `getProductOptions` crashing when one of the variant returns a null `firstSelectableVariant` ([#2704](https://github.com/Shopify/hydrogen/pull/2704))\\r\\n* Fix `decodeEncodedVariant` when option value encoding does not end with a control character ([#2721](https://github.com/Shopify/hydrogen/pull/2721))\\r\\n* Remove deprecated prop `customerAccountUrl` from `createCustomerAccountClient` ([#2730](https://github.com/Shopify/hydrogen/pull/2730))\\r\\n\\r\\nCheck out our full [Hydrogen January 2025 release blog post](https://hydrogen.shopify.dev/update/january-2025) for more details. And please drop your comments, feedback, and suggestions in [GitHub Discussions](https://github.com/Shopify/hydrogen/discussions)!\",\"Hydrogen v2025.1.0 adds Storefront API 2025-01 support, validated Remix v3_lazyRouteDiscovery future flag and several bug fixes. Deprecated features removed for improved performance.\",\"2025-01-31T12:13:28-05:00\",\"2025-01-31T12:18:01-05:00\",\"2025-01-31T12:20:00-05:00\",\"2025-01-31T12:15:00-05:00\",[],{\"_162\":198,\"_164\":199},{\"_162\":201,\"_164\":202},{\"_142\":315,\"_144\":316,\"_146\":317,\"_148\":318,\"_150\":317,\"_151\":319,\"_153\":320,\"_155\":236,\"_157\":321,\"_158\":14,\"_159\":322,\"_166\":324,\"_170\":325,\"_174\":65},\"new-event-and-origin-fields-for-store-credit-transactions\",\"New `event` and `origin` fields for store credit transactions\",\"As of `2025-04`, the `event` and `origin` fields have been added to store credit transactions for the Customer Account GraphQL API.\\r\\n\\r\\n`event`: Track what triggered a store credit transaction through the `StoreCreditSystemEvent` enum, which includes:\\r\\n\\r\\n* Order payments and refunds\\r\\n* Order cancellations\\r\\n* Payment failures and returns\\r\\n* Tax finalization adjustments\\r\\n* Manual adjustments\\r\\n\\r\\n`origin`: Identify the source of the transaction, with the ability to reference back to the originating `OrderTransaction` when applicable.\\r\\n\\r\\nAdditionally, we've made the `order` field accessible on `OrderTransaction` objects, allowing you to easily navigate from a transaction to its associated order.\\r\\n\\r\\nFor detailed documentation on using these new fields, visit [Shopify.dev](https://shopify.dev/docs/api/customer/2025-01/interfaces/StoreCreditAccountTransaction).\",\"New fields `event` and `origin` added to store credit transactions for Customer Account GraphQL API `2025-04`.\",\"2025-01-29T14:06:56-05:00\",\"2025-02-06T10:28:17-05:00\",\"2025-01-30T12:00:00-05:00\",[323],{\"_162\":298,\"_164\":299},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":327,\"_144\":328,\"_146\":329,\"_148\":330,\"_150\":329,\"_151\":331,\"_153\":332,\"_155\":333,\"_157\":333,\"_158\":14,\"_159\":334,\"_166\":336,\"_170\":337,\"_174\":59},\"new-catalog-apis\",\"New Catalog APIs\",\"As of April 2025, the Catalog APIs have been updated to support changes in how markets are managed. For more details, see the [New Markets APIs](https://shopify.dev/changelog/new-markets-apis).\\r\\n\\r\\n\u003c!-- This document will evolve as we add non-breaking changes to the target release candidate version --\u003e\\r\\n\\r\\nWith these updates, multiple markets can now be assigned to a single catalog. Consequently, the [`MarketCatalog.markets`](https://shopify.dev/docs/api/admin-graphql/2025-04/objects/MarketCatalog#connection-markets) connection will no longer guarantee the return of a single entry.\\r\\n\\r\\nAdditionally, the `Market` object now supports new conditions. Previously, only `RegionConditions` were available for a market; now, `CompanyLocationConditions` are also supported. To maintain the existing behavior and access only `Regions`, you must update the `markets` connection by using the `type: REGION` argument.\",\"Catalog APIs now support multiple markets per catalog. Use `type: REGION` to maintain single market behavior.\",\"2025-01-28T06:58:26-05:00\",\"2025-01-29T11:03:50-05:00\",\"2025-01-29T12:00:00-05:00\",[335],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":185,\"_164\":186},{\"_142\":339,\"_144\":340,\"_146\":341,\"_148\":342,\"_150\":341,\"_151\":343,\"_153\":344,\"_155\":333,\"_157\":333,\"_158\":14,\"_159\":345,\"_166\":347,\"_170\":348,\"_174\":65},\"payout-statuses-in-transit-and-scheduled-have-been-merged\",\"Payout statuses In Transit and Scheduled have been merged\",\"# Deprecation Announcement: Payout Status Changes\\r\\n\\r\\nWe’ve made a significant update to the payout statuses in our system. As part of our ongoing efforts to streamline and enhance your experience, we have merged the payout statuses \\\"In Transit\\\" and \\\"Scheduled\\\" into a single status: **Scheduled**.\\r\\n\\r\\n## Key Changes\\r\\n- **Merged Payout Statuses:** The previous statuses of \\\"In Transit\\\" and \\\"Scheduled\\\" will now be represented simply as **Scheduled**.\\r\\n\\r\\n## What You Need to Do\\r\\n- If you have been utilizing the \\\"In Transit\\\" status in your workflows or integrations, please update your systems to just recognize the **Scheduled** status moving forward. This change will ensure that you continue to receive accurate information regarding your payouts.\\r\\n \\r\\n## Why This Change?\\r\\nWe made this decision to simplify the payout tracking process, improve clarity, and enhance your overall experience with our services.\\r\\n\\r\\n## Deprecation Date\\r\\nThis change is effective immediately, and the statuses will be adjusted in your dashboards and API responses.\\r\\n\\r\\nFor more detailed information on this change, please refer to our [documentation](https://shopify.dev/docs/api/admin-graphql/2025-01/enums/ShopifyPaymentsPayoutStatus).\\r\\n\\r\\nWe appreciate your understanding and support as we continually work to improve our services for you.\",\"Payout statuses \\\"In Transit\\\" and \\\"Scheduled\\\" are now merged as \\\"Scheduled.\\\" Update workflows to recognize \\\"Scheduled\\\" for accurate payout info. Change is effective immediately.\",\"2025-01-28T03:54:08-05:00\",\"2025-01-30T11:31:29-05:00\",[346],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":349,\"_164\":350},\"Deprecation Announcement\",\"deprecation\",{\"_142\":352,\"_144\":353,\"_146\":354,\"_148\":355,\"_150\":354,\"_151\":356,\"_153\":357,\"_155\":358,\"_157\":358,\"_158\":-5,\"_159\":359,\"_166\":363,\"_170\":364,\"_174\":65},\"shopmetaobjects-is-now-just-metaobjects-in-liquid\",\"shop.metaobjects is now just metaobjects in liquid\",\"We've simplified access to metaobjects in Liquid. You can now access metaobjects using the streamlined syntax `metaobjects.type.handle`, aligning with conventions used for other resource types. This new approach is more standardized and is now the preferred method. The previous access syntax, `shop.metaobjects.type.handle`, remains functional and backward compatible but is officially deprecated.\\r\\n\\r\\n[Learn more](https://shopify.dev/docs/api/liquid/objects/metaobject) about metaobjects in liquid\",\"Access metaobjects in Liquid using `metaobjects.type.handle` for standardization. The old `shop.metaobjects.type.handle` is deprecated but still supported. Transition to the new syntax.\",\"2025-01-23T00:43:36-05:00\",\"2025-01-27T18:01:42-05:00\",\"2025-01-28T12:00:00-05:00\",[360],{\"_162\":361,\"_164\":362},\"Liquid\",\"liquid\",{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":366,\"_144\":367,\"_146\":368,\"_148\":369,\"_150\":368,\"_151\":370,\"_153\":371,\"_155\":372,\"_157\":372,\"_158\":14,\"_159\":373,\"_166\":376,\"_170\":377,\"_174\":65},\"subscription-contracts-filters\",\"New creation, update, and status filters for subscriptionContracts\",\"As of API version 2025-04, you can now sort the subscriptionContracts query results by `created_at`, `updated_at`, and `status` filters in both the admin and customer account APIs. The ability to sort subscription contracts simplifies tracking and prioritizing by allowing you to quickly organize and view information based on when they were created, updated, or their current status.\\r\\n\\r\\nFor more information, please refer to our documentation: \\r\\n\\r\\n- Learn how to [implement sorting](https://shopify.dev/docs/api/admin-graphql/2025-04/queries/subscriptionContracts#argument-query) in the admin API.\\r\\n- Explore [sorting filters](https://shopify.dev/docs/api/customer/2025-04/objects/Customer#connection-subscriptioncontracts) in the customer account API.\",\"API v2025-04 now supports filtering subscriptionContracts by `created_at`, `updated_at`, and `status` in admin and customer APIs.\",\"2025-01-24T13:22:54-05:00\",\"2025-02-05T13:49:34-05:00\",\"2025-01-25T12:00:00-05:00\",[374,375],{\"_162\":163,\"_164\":165},{\"_162\":298,\"_164\":299},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":379,\"_144\":380,\"_146\":381,\"_148\":382,\"_150\":381,\"_151\":383,\"_153\":384,\"_155\":385,\"_157\":385,\"_158\":-5,\"_159\":386,\"_166\":387,\"_170\":390,\"_174\":65},\"apps-will-be-reviewed-for-necessary-scopes\",\"Apps will be reviewed for necessary scopes\",\"Starting February 1, 2025, all apps submitted to the Shopify App Store will be checked for scopes that require Shopify permission for approved use cases. \\r\\n\\r\\nApps that have unnecessary scopes, or are using scopes for non-approved use cases will have these scopes removed. \\r\\n\\r\\nTo learn more about these scopes, please visit the `API access` page in your Partner Dashboard.\",\"Starting February 1, 2025, all apps submitted to the Shopify App Store will be checked for scopes that require Shopify permission for approved use cases. \\r\\n\\r\\nApps that have unnecessary scopes, or...\",\"2025-01-24T09:47:46-05:00\",\"2025-01-24T17:01:08-05:00\",\"2025-01-24T16:00:00-05:00\",[],{\"_162\":388,\"_164\":389},\"Shopify App Store\",\"shopify_app_store\",{\"_162\":172,\"_164\":173},{\"_142\":392,\"_144\":393,\"_146\":394,\"_148\":395,\"_150\":394,\"_151\":396,\"_153\":397,\"_155\":398,\"_157\":399,\"_158\":14,\"_159\":400,\"_166\":402,\"_170\":403,\"_174\":65},\"record-partial-payments-on-orders\",\"Record partial payments on Orders\",\"As of `2025-04` partial payments can be recorded on orders using the new [orderCreateManualPayment](https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/orderCreateManualPayment) mutation. This allows the recording of multiple separate payments, up to the total amount owing on the order.\",\"As of `2025-04` partial payments can be recorded on orders using the new [orderCreateManualPayment](https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/orderCreateManualPayment) mutation....\",\"2025-01-23T11:00:45-05:00\",\"2025-01-24T09:14:46-05:00\",\"2025-01-31T12:00:00-05:00\",\"2025-01-24T12:00:00-05:00\",[401],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":405,\"_144\":406,\"_146\":407,\"_148\":408,\"_150\":407,\"_151\":409,\"_153\":410,\"_155\":411,\"_157\":411,\"_158\":14,\"_159\":412,\"_166\":414,\"_170\":415,\"_174\":65},\"optional-role-argument-for-theme-create-mutation\",\"Optional `role` argument for `themeCreate` mutation\",\"We've added an optional [`role` argument](/docs/api/admin-graphql/2025-04/mutations/themeCreate#argument-role) on the `themeCreate` mutation, which allows clients to specify a role for the newly created theme. Only `UNPUBLISHED` and `DEVELOPMENT` roles are permitted for newly created themes.\",\"The `themeCreate` mutation now supports an optional `role` argument.\",\"2025-01-22T14:31:14-05:00\",\"2025-02-07T16:45:55-05:00\",\"2025-01-23T12:00:00-05:00\",[413],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":417,\"_144\":418,\"_146\":419,\"_148\":420,\"_150\":419,\"_151\":421,\"_153\":422,\"_155\":423,\"_157\":423,\"_158\":-5,\"_159\":424,\"_166\":426,\"_170\":427,\"_174\":65},\"inventoryitem-queryable-and-updatable-with-products-scopes\",\"InventoryItem Queryable and Updatable with Products Scopes\",\"The scopes for the [InventoryItemInput](https://shopify.dev/docs/api/admin-graphql/2025-01/input-objects/InventoryItemInput) input object and the [InventoryItem](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/InventoryItem) object have been relaxed. These objects can now be updated and queried using the `write_products` and `read_products` scopes, respectively.\\r\\n\\r\\nSpecifically, the following changes have been made:\\r\\n- The `InventoryItemInput` can now be set within `product*` mutations using only the `write_products` scope.\\r\\n- The `InventoryItem` can be queried with either the `read_products` or `read_inventory` scope.\\r\\n\\r\\nHowever, the following restrictions still apply:\\r\\n- The `inventoryLevel` cannot be queried from the `InventoryItem` object without the `read_inventory` scope.\\r\\n- The `location` cannot be queried without the `read_locations` scope.\\r\\n\\r\\nThese changes are applicable across all API versions.\",\"Updated InventoryItemInput and InventoryItem scopes allow updates with write_products and queries with read_products. Restrictions on inventoryLevel and location queries remain. Applies to all API versions.\",\"2025-01-21T17:23:20-05:00\",\"2025-01-22T08:11:28-05:00\",\"2025-01-22T12:00:00-05:00\",[425],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":429,\"_144\":430,\"_146\":431,\"_148\":432,\"_150\":431,\"_151\":433,\"_153\":434,\"_155\":423,\"_157\":435,\"_158\":-5,\"_159\":436,\"_166\":438,\"_170\":439,\"_174\":65},\"support-added-for-app-namespaces-in-product-queries-by-metafield\",\"Support added for $app in product queries by metafield\",\"We now support querying products by app-owned metafields with a saved namespace using the `$app` syntax. To include an app-owned metafield in your query, you can use the syntax `metafields.$app.key:\\\\\\\"value\\\\\\\"` or `metafields.$app\\\\\\\\:optional-additional-text.key:\\\\\\\"value\\\\\\\"`.\\r\\n\\r\\n[As documented](https://shopify.dev/docs/api/usage/search-syntax#special-characters), special characters need to be escaped from queries. For this reason, you need a `\\\\\\\\` when specifying `:`. For example, suppose you have an app-owned metafield with the optional-additional-text `swatch-app` and key `color` with a value of `green`. To query for products with this metafield, you would use the following search syntax:\\r\\n`\\\"metafields.$app\\\\\\\\:swatch-app.color:\\\\\\\"green\\\\\\\"\\\"`\\r\\n\\r\\nLearn more about [querying products by metafield value](https://shopify.dev/docs/apps/build/custom-data/metafields/query-by-metafield-value) and [creating metafields with reserved namespaces](https://shopify.dev/docs/apps/build/custom-data/ownership#create-metafield-definitions-with-reserved-namespaces). \",\"Support added for $app namespaces in product queries by metafield which improves query flexibility.\",\"2025-01-15T19:09:12-05:00\",\"2025-01-21T12:40:57-05:00\",\"2025-01-20T12:00:00-05:00\",[437],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":441,\"_144\":442,\"_146\":443,\"_148\":444,\"_150\":443,\"_151\":445,\"_153\":446,\"_155\":447,\"_157\":447,\"_158\":-5,\"_159\":448,\"_166\":452,\"_170\":453,\"_174\":59},\"continuous-cart-authentication\",\"Continuous cart authentication\",\"We’ve recently rolled out a change that enables continuous authentication when a customerAccessToken is appended to the cart in the buyerIdentity object. The obtained checkoutUrl allows authenticated customers to navigate to a logged-in checkout experience. Note that for security reasons, the checkoutUrl should be requested when the customer is ready to navigate to checkout, which can be re-requested if needed.\\r\\n\\r\\nTo log in customers automatically at checkout, please [append the customerAccessToken](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage#step-6-authenticate-customer-for-logged-in-checkouts) into the Buyer Identity object of the Storefront API Cart and [include the buyer IP address](https://shopify.dev/docs/api/usage/authentication#making-server-side-requests) when making server side requests.\\r\\n\\r\\nFor developers building mobile apps with the Checkout Sheet Kit, see this [detailed guide](https://shopify.dev/docs/storefronts/headless/mobile-apps/checkout-sheet-kit/authenticate-checkouts) to create authenticated checkout experiences for buyers within mobile apps. Previously, opening an authenticated checkout was only possible using multipass limited to Shopify Plus plans and legacy customer accounts. Now, authenticated checkouts are possible for merchants on all plans and customer account versions.\",\"Enable continuous authentication by appending customerAccessToken to cart in buyerIdentity. Authenticated checkouts now available for all plans.\",\"2025-01-16T15:15:44-05:00\",\"2025-01-16T18:14:59-05:00\",\"2025-01-16T18:15:00-05:00\",[449],{\"_162\":450,\"_164\":451},\"Storefront GraphQL API\",\"storefront-graphql\",{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":455,\"_144\":456,\"_146\":457,\"_148\":458,\"_150\":457,\"_151\":459,\"_153\":460,\"_155\":461,\"_157\":461,\"_158\":-5,\"_159\":462,\"_166\":463,\"_170\":464,\"_174\":59},\"new-buyer-consent-requirement\",\"New Buyer Consent Requirement\",\"As of Tuesday, February 18, 2025, all published apps must display costs and obtain explicit buyer consent before adding any optional paid items to Storefront, Cart, or Checkout. \\r\\n\\r\\nThese requirements are already being enforced on unpublished apps. We've updated our [Checkout UI extension app requirements](https://shopify.dev/docs/apps/launch/app-requirements-checklist?utm_source=mozart\u0026utm_medium=email\u0026utm_campaign=app_requirement\u0026utm_content=optional_paid_items#18-checkout-ui-extension-apps) and [prohibited app types](https://shopify.dev/docs/apps/launch/app-requirements-checklist?utm_source=mozart\u0026utm_medium=email\u0026utm_campaign=app_requirement\u0026utm_content=optional_paid_items#1-prohibited-and-restricted-app-configurations) to make buying experiences more trustworthy. \\r\\n\\r\\nThese requirements apply to both packaged Checkout UI extensions and any downloadable code provided by the app or app partner across Storefront, Cart, and Checkout.\",\"As of Feb 18, 2025, all apps must show costs and get buyer consent for paid items in Storefront, Cart, and Checkout. Applies to published and unpublished apps.\",\"2025-01-15T16:31:02-05:00\",\"2025-01-16T09:12:04-05:00\",\"2025-01-16T03:00:00-05:00\",[],{\"_162\":388,\"_164\":389},{\"_162\":172,\"_164\":173},{\"_142\":466,\"_144\":467,\"_146\":468,\"_148\":469,\"_150\":468,\"_151\":470,\"_153\":471,\"_155\":472,\"_157\":472,\"_158\":14,\"_159\":473,\"_166\":475,\"_170\":476,\"_174\":65},\"line-item-weight-input-for-ordercreate-mutation\",\"Line item weight input for `orderCreate` mutation\",\"We have enhanced the `orderCreate` mutation by adding an optional field, `OrderCreateLineItemInput.weight`, which allows you to specify the weight of each line item using the `WeightInput` object.\\r\\n\\r\\nFor line items linked to a product variant:\\r\\n- Specifying a weight will override the variant's default weight.\\r\\n- If no weight is specified, the variant's weight will be used by default.\\r\\n\\r\\nFor line items not linked to a product variant, such as custom items:\\r\\n- Specifying a weight will apply that weight to the line item.\\r\\n- If no weight is specified, the line item's weight will default to 0.\\r\\n\\r\\nThis is an improved version of the `line_items.grams` field that exists in the [REST API](https://shopify.dev/docs/api/admin-rest/unstable/resources/order#post-orders).\",\"The `orderCreate` mutation now supports `OrderCreateLineItemInput.weight` to set line item weights.\",\"2025-01-14T14:47:15-05:00\",\"2025-01-14T15:16:26-05:00\",\"2025-01-15T12:00:00-05:00\",[474],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":478,\"_144\":479,\"_146\":480,\"_148\":481,\"_150\":480,\"_151\":482,\"_153\":483,\"_155\":472,\"_157\":472,\"_158\":14,\"_159\":484,\"_166\":486,\"_170\":487,\"_174\":65},\"expose-the-id-field-in-productfullsyncpayload-object\",\"Expose the id field in ProductFullSyncPayload object\",\"As of version 2025-04, the return field id in product full sync payload in Admin API will be available. \",\"Version 2025-04: Admin API now includes the return field id in product full sync payload, enhancing data tracking for developers.\",\"2025-01-14T15:19:25-05:00\",\"2025-01-14T16:25:22-05:00\",[485],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":489,\"_144\":490,\"_146\":491,\"_148\":492,\"_150\":491,\"_151\":493,\"_153\":494,\"_155\":472,\"_157\":472,\"_158\":-5,\"_159\":495,\"_166\":499,\"_170\":500,\"_174\":65},\"new-inventoryitem-field-on-productsetvariantinput\",\"New `inventoryItem` field on ProductSetVariantInput\",\"We are expanding capabilities of the GraphQL Admin API [**productSet**](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation by adding `inventoryItem` field to the [**ProductVariantSetInput**](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductVariantSetInput) type.\\r\\n\\r\\nThis enables `productSet` to modify `ProductVariant` fields related to its `inventoryItem`, such as unit cost and tracked status .\\r\\n\\r\\nThis change is applied to all API versions, starting with `2024-10`.\\r\\n\\r\\nFor more detailed information and examples, visit our [productSet documentation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) on Shopify.dev.\",\"The GraphQL Admin API now includes the `inventoryItem` field in `ProductVariantSetInput`, effective from API version `2024-10`, enhancing product management capabilities.\",\"2025-01-14T06:55:04-05:00\",\"2025-01-21T20:22:12-05:00\",[496,498],{\"_162\":497,\"_164\":57},\"Admin Extensions\",{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":502,\"_144\":503,\"_146\":504,\"_148\":505,\"_150\":506,\"_151\":507,\"_153\":508,\"_155\":509,\"_157\":509,\"_158\":-5,\"_159\":510,\"_166\":511,\"_170\":514,\"_174\":65},\"performance-integration-and-category-specific-requirements-come-into-practice\",\"Performance, integration and category-specific requirements come into practice\",\"To ensure that the Built for Shopify status represents the highest quality of app apps will need to meet the following performance, integration and category-specific requirements. These requirements are designed to ensure that each app that earns the Built for Shopify status excels in meeting the unique needs of the merchants it serves.\\r\\n\\r\\nBuilt for Shopify annual review will be on January 2, 2025.\\r\\n\\r\\n\\r\\n\\r\\n### **Performance requirements**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Make the admin performance meet 75th percentile Web Vitals targets](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#make-the-admin-performance-meet-the-th-percentile-web-vitals-target)\\r\\n\\t* [Cumulative Layout Shift (CLS)](/docs/apps/build/performance/admin-installation-oauth#cumulative-layout-shift): will be re-introduced and needs to be 0.1 or less.\\r\\n\\t* [Interaction to Next Paint (INP)](/docs/apps/build/performance/admin-installation-oauth#largest-contentful-paint): 200 milliseconds or less. \\r\\n\\r\\n\\t*This requirement replaces the previous [First Input Delay (FID)](/docs/apps/build/performance/admin-installation-oauth#first-input-delay) requirement.*\\r\\n\\r\\n\\r\\n* [Minimize the impact on checkout speed](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#minimize-the-impact-on-checkout-speed)\\r\\n\\t* Your app must make a minimum of 1,000 requests over the last 28 days. \\r\\n\\t* Your requests must have a p95 value of 500ms or less, with a 0.1% failure rate.\\r\\n\\r\\n\\t*These requirements will replace the following ones:\\r\\n\\tYour app must make a minimum of 1,000 requests over three weeks.\\r\\n\\tYour app must have a p99 value of 1000ms or less, with 0% failure rate.*\\r\\n\\r\\n\\r\\n\\r\\n### **Integration requirements**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Enable seamless sign up based on Shopify credentials](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#enable-seamless-sign-up-based-on-shopify-credentials)\\r\\nApps should make sign up seamless for merchants, without requiring an additional login or sign-up prompt. Users should be able to begin using the app immediately after installing it without having to complete another sign up. [Exceptions](/docs/apps/build/integrating-with-shopify#exceptions) apply on apps that can’t be easily accessed by merchants in a self-service manner and require a more complex sign-up, often involving a business-to-business contract. In these cases, the first step to the in-admin onboarding of these apps must always be a workflow that enables a merchant to link the current store with their existing credentials.\u2028\u2028If your app offers both self-service and business-to-business sign up, then the app's onboarding must include an option to sign up for the service using the merchant's existing Shopify credentials.\\r\\n\\r\\n* [Include simplified monitoring or reporting](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#include-simplified-monitoring-or-reporting)\\r\\nExpose key metrics that are helpful for merchants on the app’s home page. If your app includes monitoring or complex reports that can only exist on an external website or app surface, then you must include a simplified version of the monitoring or reporting in the Shopify admin.\\r\\n\\r\\n* [Keep third-party connection settings within Shopify](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#keep-third-party-connection-settings-within-shopify)\\r\\nAny settings or configurations that control the connection between Shopify and a third-party system must be available inside the Shopify embedded app interface.\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### **Category specific requirements**\\r\\n\\r\\nWe understand not all apps are the same. Apps are built to address a wide variety of merchant workflows and serve many diverse functions. Moving forward some categories of apps must adhere to additional requirements. These requirements specify specific APIs, integrations, and design guidelines that reflect what a great app in these categories looks like.\\r\\n\\r\\n\\r\\n\\r\\n**Product bundles apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Use bundles primitives](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-bundles-primitives)\\r\\nYour app must either use the GraphQL Admin API to create [static bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-fixed-bundle) or use a cartTransform function to create [customized bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-customized-bundle).\\r\\nHowever, if your app supports a bundles use case that is not yet supported through these APIs \",\"To ensure that the Built for Shopify status represents the highest quality of app apps will need to meet the following performance, integration and category-specific requirements. These...\",\"To ensure that the Built for Shopify status represents the highest quality of app apps will need to meet the following performance, integration and category-specific requirements. These requirements are designed to ensure that each app that earns the Built for Shopify status excels in meeting the unique needs of the merchants it serves.\\r\\n\\r\\nBuilt for Shopify annual review will be on January 2, 2025.\\r\\n\\r\\n\\r\\n\\r\\n### **Performance requirements**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Make the admin performance meet 75th percentile Web Vitals targets](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#make-the-admin-performance-meet-the-th-percentile-web-vitals-target)\\r\\n\\t* [Cumulative Layout Shift (CLS)](/docs/apps/build/performance/admin-installation-oauth#cumulative-layout-shift): will be re-introduced and needs to be 0.1 or less.\\r\\n\\t* [Interaction to Next Paint (INP)](/docs/apps/build/performance/admin-installation-oauth#largest-contentful-paint): 200 milliseconds or less. \\r\\n\\r\\n\\t*This requirement replaces the previous [First Input Delay (FID)](/docs/apps/build/performance/admin-installation-oauth#first-input-delay) requirement.*\\r\\n\\r\\n\\r\\n* [Minimize the impact on checkout speed](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#minimize-the-impact-on-checkout-speed)\\r\\n\\t* Your app must make a minimum of 1,000 requests over the last 28 days. \\r\\n\\t* Your requests must have a p95 value of 500ms or less, with a 0.1% failure rate.\\r\\n\\r\\n\\t*These requirements will replace the following ones:\\r\\n\\tYour app must make a minimum of 1,000 requests over three weeks.\\r\\n\\tYour app must have a p99 value of 1000ms or less, with 0% failure rate.*\\r\\n\\r\\n\\r\\n\\r\\n### **Integration requirements**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Enable seamless sign up based on Shopify credentials](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#enable-seamless-sign-up-based-on-shopify-credentials)\\r\\nApps should make sign up seamless for merchants, without requiring an additional login or sign-up prompt. Users should be able to begin using the app immediately after installing it without having to complete another sign up. [Exceptions](/docs/apps/build/integrating-with-shopify#exceptions) apply on apps that can’t be easily accessed by merchants in a self-service manner and require a more complex sign-up, often involving a business-to-business contract. In these cases, the first step to the in-admin onboarding of these apps must always be a workflow that enables a merchant to link the current store with their existing credentials.\u2028\u2028If your app offers both self-service and business-to-business sign up, then the app's onboarding must include an option to sign up for the service using the merchant's existing Shopify credentials.\\r\\n\\r\\n* [Include simplified monitoring or reporting](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#include-simplified-monitoring-or-reporting)\\r\\nExpose key metrics that are helpful for merchants on the app’s home page. If your app includes monitoring or complex reports that can only exist on an external website or app surface, then you must include a simplified version of the monitoring or reporting in the Shopify admin.\\r\\n\\r\\n* [Keep third-party connection settings within Shopify](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#keep-third-party-connection-settings-within-shopify)\\r\\nAny settings or configurations that control the connection between Shopify and a third-party system must be available inside the Shopify embedded app interface.\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### **Category specific requirements**\\r\\n\\r\\nWe understand not all apps are the same. Apps are built to address a wide variety of merchant workflows and serve many diverse functions. Moving forward some categories of apps must adhere to additional requirements. These requirements specify specific APIs, integrations, and design guidelines that reflect what a great app in these categories looks like.\\r\\n\\r\\n\\r\\n\\r\\n**Product bundles apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Use bundles primitives](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-bundles-primitives)\\r\\nYour app must either use the GraphQL Admin API to create [static bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-fixed-bundle) or use a cartTransform function to create [customized bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-customized-bundle).\\r\\nHowever, if your app supports a bundles use case that is not yet supported through these APIs --- such as selling bundles on unsupported sales channels, selling bundles as a part of a subscription, or editing orders to add or remove bundles after purchase --- you may use other methods to create a bundle.\\r\\n\\r\\n\\r\\n\\r\\n**Subscription apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Use subscription objects and APIs](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-subscription-primitives-and-apis)\\r\\nYour app must use the following subscriptions objects:\\r\\n\\t* [Selling plan API](https://shopify.dev/docs/api/admin-graphql/latest/objects/sellingplan) to create and manage various ways to sell and buy products\\r\\n\\t* [Subscription contract API](https://shopify.dev/docs/api/admin-graphql/latest/objects/subscriptioncontract) to create, manage, and update subscription agreements between a customer and merchant in real time.\\r\\n\\t* [Customer payment method API](https://shopify.dev/docs/api/admin-graphql/latest/objects/customerpaymentmethod) to store payment methods that can be used to pay for future orders without requiring the customer to manually go through checkout.\\r\\n\\r\\n\\r\\n* [Use theme app block extensions](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-theme-app-block-extensions)\\r\\nYour app must add subscriptions on product detail pages by using an [app block for themes](https://shopify.dev/docs/apps/build/online-store/theme-app-extensions/configuration#app-blocks-for-themes) that is compatible with [Online Store 2.0](https://shopify.dev/docs/storefronts/themes/os20).\\r\\n\\r\\n* [Follow subscriptions UX guidelines](https://shopify-dev.shopify-dev-7a07.mark-appleby.us.spin.dev/docs/apps/launch/built-for-shopify/requirements#follow-subscriptions-ux-guidelines)\\r\\n * Your app must obey the following [subscriptions UX guidelines](https://shopify.dev/docs/storefronts/themes/pricing-payments/subscriptions/subscription-ux-guidelines)\\r\\n * The subscription information --- including selling plan name, price, and savings --- must be clearly displayed on the product, cart, and order detail pages.\\r\\n * The subscription option information must automatically match the color palette, font, font-size, and font weight of the store's current theme by default.\\r\\n\\r\\n\\r\\n\\r\\n**Discount apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Use discount primitives](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-discount-primitives)\\r\\nYour app must either use [discount functions](https://shopify.dev/docs/apps/build/discounts#build-with-the-graphql-admin-api) to define custom discount types or use the native [discount APIs](https://shopify.dev/docs/apps/build/discounts#build-with-shopify-functions) to create discounts.\\r\\n\\r\\n* [Do not use draft orders with custom discounts](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#do-not-use-draft-orders-with-custom-discounts)\\r\\nYour app must not create draft orders to give custom discounts. Drafts with custom discounts are designed for one-off merchant-driven flows rather than automated customer-driven flows and do not have the same reporting tools.\\r\\n\\r\\n* [Use a single redeem code per discount](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-a-single-redeem-code-per-discount)\\r\\n\\r\\n* Your app must use the [`discountRedeemCodeBulkAdd`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountRedeemCodeBulkAdd) API to create any discounts with multiple redeem codes. Don't use the GraphQL Admin API to create multiple discounts with the same value but different redeem codes.\\r\\n\\r\\n* [Create high quality links](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#create-high-quality-links) All [links to your app](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries#creating-your-merchant-interface) from the Create discount button on the discounts page must direct to a page in your embedded app where merchants can create the corresponding discount. These pages must follow all relevant [App Design Guidelines](https://shopify.dev/docs/apps/design).\\r\\n\\r\\n\\r\\n\\r\\n**Product reviews apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Provide a flow trigger](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#provide-a-flow-trigger)\\r\\nYour app must provide a [Flow trigger](https://shopify.dev/docs/apps/build/flow/triggers/create) that starts a workflow whenever a new review is collected.\\r\\n\\r\\n* [Use block extensions](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-block-extensions)\\r\\nYour app must provide an [admin block extension](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#use-block-extensions) on customer detail pages that allows merchants to see any reviews submitted by the customer.\\r\\n\\r\\n\\r\\n\\r\\n**Fulfillment services apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Actively fulfill orders](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#actively-fulfill-orders)\\r\\nYour app must be active and have fulfilled 100 or more [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) in the last 28 days. If an app is not active, then it's not possible to accurately assess the other criteria for fulfillment services apps.\\r\\n\\r\\n* [Complete fulfillment orders](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#complete-fulfillment-orders)\\r\\nYour app must have completed 99% of the [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) assigned to it in the last 28 days. New fulfillment orders that were created in the last 7 days are excluded. A fulfillment order is considered incomplete if it is in one of the following states:\\r\\n * `open, submitted`\\r\\n * `in_progress, accepted`\\r\\n * `in_progress, cancellation_rejected`\\r\\n * `in_progress, cancellation_requested`\\r\\n\\r\\n\\r\\n* [Wait for merchant requests](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#wait-for-merchant-requests)\\r\\n\\tYour app must only fulfill fulfillment orders after a [merchant requests](https://shopify.dev/docs/api/admin-graphql/latest/enums/FulfillmentOrderStatus) fulfillment.\\r\\n\\r\\n* [Add tracking information](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#add-tracking-information)\\r\\n\\tIn the last 28 days, your app must have [added tracking information](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#add-tracking-information) to 80% of the fulfillments that it creates within one hour of creation.\\r\\n\\tIn cases where precise tracking information isn't available from a shipping carrier URL, you can provide a custom URL to your app's site by:\\r\\nUsing [`fulfillmentCreateV2`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentCreateV2) to populate `fulfillment.trackingInfo.company` and `fulfillment.trackingInfo.url(s)` at the time of creation, OR\\r\\nUsing [`fulfillmentTrackingInfoUpdateV2`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdateV2) to mutate an existing entry and populate `trackinigInfoInput.company` and `trackingInfoInput.url(s)`.\\r\\n\\r\\n* [Respond to fulfillment requests](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#respond-to-fulfillment-requests)\\r\\n\\tIn the last 28 days, your app must have responded to 99% of fulfillment requests within four hours by either [accepting](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#respond-to-fulfillment-requests) or [rejecting](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderRejectFulfillmentRequest) the fulfillment request.\\r\\n\\r\\n* [Respond to cancellation requests](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#respond-to-cancellation-requests)\\r\\n\\tIn the last 28 days, your app must have responded to 99% of cancellation requests within 1 hour by either [accepting](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderAcceptCancellationRequest) or [rejecting](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentOrderRejectCancellationRequest) the cancellation request.\\r\\n\\r\\n**Fulfillment services apps**\\r\\nDate enforced: July, 2025\\r\\n\\r\\n* [Respond to callback requests](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#respond-to-callback-requests)\\r\\n\\tIn the last 28 days, your app must have responded successfully to 100% of Shopify [callback requests](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) that are sent to it, so merchants are not alerted to failing callback requests.\\r\\n\\r\\n**Carrier services apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Respond quickly to rate requests](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#respond-quickly-to-rate-requests)\\r\\nOver the last 28 days, the carrier rate endpoint provided by your app must respond in fewer than 500 milliseconds for 95% of calls.\\r\\n\\r\\n* [Complete rate requests reliably](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#complete-rate-requests-reliably)\\r\\nOver the last 28 days, the carrier rate endpoint provided by your app must successfully respond to 99.9% of requests.\\r\\n\\r\\n\\r\\n\\r\\n**Returns and exchanges apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Sync returns information](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#complete-rate-requests-reliably)\\r\\n\\tYour app must use the appropriate APIs to communicate all lifecycle events of a return to Shopify. These include:\\r\\n\\t* [Creating returns](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate)\\r\\n\\t* [Shipping creation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/reverseDeliveryCreateWithShipping)\\r\\n\\t* [Restocking](https://shopify.dev/docs/api/admin-graphql/latest/mutations/reverseDeliveryCreateWithShipping)\\r\\n\\t* [Removing items from a return](https://shopify.dev/docs/api/admin-graphql/latest/mutations/reverseDeliveryCreateWithShipping)\\r\\n\\t* [Cancelling a return](https://shopify.dev/docs/api/admin-graphql/latest/mutations/reverseDeliveryCreateWithShipping)\\r\\n\\t* [Closing returns](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnClose)\\r\\n\\t* [Providing refunds](https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate)\\r\\n\\r\\n\\r\\n* [Include exchange line items](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#include-exchange-line-items)\\r\\n\\tYour app must create [exchange line items](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ExchangeLineItemInput) on an order when managing exchanges. You must also remove exchange lines from the order if they are no longer needed.\\r\\n\\r\\n* [Include shipping and restocking fees](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#include-shipping-and-restocking-fees)\\r\\n\\tYour app must add [shipping fees](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ReturnShippingFeeInput) and [restocking fees](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/RestockingFeeInput) on an order when applicable.\\r\\n\\r\\n\\r\\n\\r\\n**Invoices and receipts apps**\\r\\nDate enforced: January 2, 2025\\r\\n\\r\\n* [Enable printing on orders pages](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#enable-printing-on-orders-pages)\\r\\n\\tYour app must use an [admin print action extension](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements#enable-printing-on-orders-pages) to let merchants print invoices or packing slips for an individual order directly from the orders detail page as well as for any selected orders from the orders index page.\\r\\n\\r\\n\",\"2024-12-18T07:10:56-05:00\",\"2024-12-19T11:55:58-05:00\",\"2025-01-11T12:00:00-05:00\",[],{\"_162\":512,\"_164\":513},\"Built for Shopify\",\"built_for_shopify\",{\"_162\":201,\"_164\":202},{\"_142\":516,\"_144\":517,\"_146\":518,\"_148\":519,\"_150\":518,\"_151\":520,\"_153\":521,\"_155\":522,\"_157\":522,\"_158\":14,\"_159\":523,\"_166\":525,\"_170\":526,\"_174\":65},\"new-card-brands-for-ordertransactionspaymentmethods\",\"New card brands for OrderTransactions.paymentMethods\",\"The [`OrderTransactions.paymentMethods`](https://shopify.dev/docs/api/admin-graphql/unstable/enums/PaymentMethods) enumerated type now includes two new values: `CARTES_BANCAIRES` and `BANCONTACT`. Starting with API version `2025-04`, order transactions paid using these methods will reflect the new values in GraphQL API responses.\",\"`OrderTransactions.paymentMethods` now includes `CARTES_BANCAIRES` and `BANCONTACT`. From API version 2025-04, transactions using these methods will show updated values in responses.\",\"2025-01-09T10:28:53-05:00\",\"2025-01-09T11:12:23-05:00\",\"2025-01-10T12:00:00-05:00\",[524],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":528,\"_144\":529,\"_146\":530,\"_148\":531,\"_150\":530,\"_151\":532,\"_153\":533,\"_155\":534,\"_157\":534,\"_158\":-5,\"_159\":535,\"_166\":536,\"_170\":539,\"_174\":65},\"shopify-functions-template-and-shopify-cli-changes-to-support-rust-184\",\"Shopify Functions template and Shopify CLI changes to support Rust 1.84\",\"In anticipation of the [removal of the wasm32-wasi build target in Rust 1.84](https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html), Shopify has updated its Shopify Functions templates for Rust. The `cargo-wasi` utility has been removed because it is incompatible with Rust 1.84 and later versions. \\r\\n\\r\\nAdditionally, starting with Shopify CLI 3.73, all function builds now include an optimization pass by default. Previously, this optimization was handled by `cargo-wasi`.\\r\\n\\r\\nBefore you update to Rust 1.84, we recommend reviewing and following the [steps outlined here](https://shopify.dev/docs/apps/build/functions/programming-languages/rust-for-functions#updating-to-rust-1-84-and-higher). These changes are compatible with Rust 1.78 and above.\",\"Shopify Functions templates for Rust now exclude `cargo-wasi` due to Rust 1.84 changes. Shopify CLI 3.73 adds default build optimization.\",\"2025-01-08T14:24:46-05:00\",\"2025-01-08T16:08:57-05:00\",\"2025-01-08T00:00:00-05:00\",[],{\"_162\":537,\"_164\":538},\"Tools\",\"tools\",{\"_162\":201,\"_164\":202},{\"_142\":541,\"_144\":542,\"_146\":543,\"_148\":544,\"_150\":543,\"_151\":545,\"_153\":546,\"_155\":547,\"_157\":547,\"_158\":15,\"_159\":548,\"_166\":549,\"_170\":550,\"_174\":65},\"new-validations-on-function-input-query-variables-metafields\",\"New validations on function input query variables metafields\",\"As of 2025-01, input query variables metafields will now be subject to additional validation across all Function APIs.\\r\\n\\r\\nPreviously, if these metafields didn't contain properly formatted data, we treated them as empty. This could lead to situations where it was difficult to determine why a function wasn't receiving the expected input data.\\r\\n\\r\\nNow, an invalid metafield will result in an `InvalidVariableValueError` when attempting to run the function.\\r\\n\\r\\nFor more information, refer to the [list of errors](https://shopify.dev/docs/apps/build/functions/monitoring-and-errors#list-of-errors).\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\"As of 2025-01, Function APIs validate input query variables. Invalid metafields now trigger `InvalidVariableValueError`, improving error detection and debugging for developers.\",\"2024-10-15T13:45:53-04:00\",\"2025-01-06T09:51:25-05:00\",\"2025-01-06T13:00:00-05:00\",[],{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":552,\"_144\":553,\"_146\":554,\"_148\":555,\"_150\":554,\"_151\":556,\"_153\":557,\"_155\":547,\"_157\":547,\"_158\":-5,\"_159\":558,\"_166\":560,\"_170\":561,\"_174\":65},\"add-tax-validation-with-localizedfields-in-checkout-ui-extensions-functions\",\"Add tax validation with localizedFields in Checkout UI Extensions \u0026 Functions\",\"**As of Jan 6, 2025**, you can use the new localizedFields in the Checkout UI Extension API and Function API to implement custom validation for tax fields in checkout. The localizationExtensions field in the Admin GraphQL API has now been renamed to localizedFields too. Additionally, you can now target tax fields in checkout for error messages.\\r\\n\\r\\nAvailable currently in the unstable API version and will be released to the stable 2025-01 API version. Learn more on how to implement [localizedFields](https://shopify.dev/docs/apps/build/markets/add-locally-required-order-data#validate-a-country-field).\",\"Use the new localizedFields in the Checkout Extensions APIs to apply custom validation for tax fields. The localizationExtensions field in the Admin API has now been renamed to localizedFields. \",\"2025-01-06T11:54:33-05:00\",\"2025-01-06T11:57:02-05:00\",[559],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":563,\"_144\":564,\"_146\":565,\"_148\":566,\"_150\":565,\"_151\":567,\"_153\":568,\"_155\":569,\"_157\":569,\"_158\":-5,\"_159\":570,\"_166\":574,\"_170\":575,\"_174\":65},\"pos-ui-extensions-2025-01-update\",\"POS UI Extensions 2025-01 Update\",\"As of January 20, we added the following updates to POS UI Extensions: \\r\\n\\r\\n### Breaking Changes\\r\\n- Removed the deprecated ActionItem component. Use a [Button](/docs/api/pos-ui-extensions/components/button) instead.\\r\\n- Removed the deprecated SmartGridApi. Use the [ActionApi](/docs/api/pos-ui-extensions/apis/action-api) instead.\\r\\n- Removed the deprecated DiscountType. Use [CartDiscountType](/docs/api/pos-ui-extensions/apis/cart-api#cartapi-propertydetail-applycartdiscount) and [LineItemDiscountType](/docs/api/pos-ui-extensions/apis/cart-api#cartapi-propertydetail-setlineitemdiscount) instead.\\r\\n- Removed the deprecated `badge` prop from the [List](/docs/api/pos-ui-extensions/components/list) component. Use `badges` instead.\\r\\n- Removed the deprecated `TextFieldProps` type from the [TextField](/docs/api/pos-ui-extensions/components/textfield) component.\\r\\n- Deprecated `'vertical'` and `'horizontal'` as values for the `direction` field in the [Stack](/docs/api/pos-ui-extensions/components/Stack) component.\\r\\n- Deprecated the `flexChildren'` field in the [Stack](/docs/api/pos-ui-extensions/components/Stack) component.\\r\\n- Deprecated the `flex'` field in the [Stack](/docs/api/pos-ui-extensions/components/Stack) component.\\r\\n- Deprecated the `flexWrap'` field in the [Stack](/docs/api/pos-ui-extensions/components/Stack) component.\\r\\n- Deprecated the `paddingHorizontal'` and `paddingVertical` fields in the [Stack](/docs/api/pos-ui-extensions/components/Stack) component.\\r\\n- Removed `customValidator` prop from the [FormattedTextField](/docs/api/pos-ui-extensions/components/formattedtextfield) component.\\r\\n- Removed `email`, `firstName`, `lastName`, and `note` from the [Customer](/docs/api/pos-ui-extensions/apis/cart-api#customer) object.\\r\\n\\r\\n### Features\\r\\n\\r\\n- Added [PrintApi](/docs/api/pos-ui-extensions/apis/print-api) and a [PrintPreview](/docs/api/pos-ui-extensions/components/printpreview) component.\\r\\n- Added `currency` prop to the [SessionApi](/docs/api/pos-ui-extensions/apis/session-api).\\r\\n- [Cart API](/docs/api/pos-ui-extensions/apis/cart-api) updates:\\r\\n - Added `bulkUpdateCart` function for single-operation cart updates.\\r\\n - The `addLineItem` and `addCustomSale` functions now return a UUID for the added line item.\\r\\n- Added [Box](/docs/api/pos-ui-extensions/components/box) component.\\r\\n- Enhanced the [Stack](/docs/api/pos-ui-extensions/components/box) component. New fields include `justifyContent`, `alignItems`, and `alignContent`, as well as numerous new sizing and spacing options.\\r\\n- Added Sizing and fill options to the[Image](/docs/api/pos-ui-extensions/components/image) component.\\r\\n\\r\\nAll of the changes are available for POS UI extensions version 2025-01 and POS app version 9.26.0. See the [version log](https://shopify.dev/docs/api/pos-ui-extensions/unstable/versions) for all version details.\",\"As of January 20, we added the following updates to POS UI Extensions: \\r\\n\\r\\n### Breaking Changes\\r\\n- Removed the deprecated ActionItem component. Use a...\",\"2024-12-19T10:18:15-05:00\",\"2025-01-08T12:46:58-05:00\",\"2025-01-06T12:00:00-05:00\",[571],{\"_162\":572,\"_164\":573},\"POS Extensions\",\"pos-extensions\",{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":577,\"_144\":578,\"_146\":579,\"_148\":580,\"_150\":579,\"_151\":581,\"_153\":582,\"_155\":583,\"_157\":583,\"_158\":14,\"_159\":584,\"_166\":586,\"_170\":587,\"_174\":59},\"new-markets-apis\",\"New Markets APIs\",\"As of `2025-04`, the Markets APIs have been updated to support additional customizations and conditions for each market, enabling merchants to tailor their shops' buyer experiences.\\r\\n\\r\\n\u003c!-- This document will evolve as we add non-breaking changes to the target release candidate version --\u003e\\r\\n### Primary Market\\r\\n\\r\\nTo transition away from the \\\"primary market\\\" concept, a new mutation, [`backupRegionUpdate`](https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/backupRegionUpdate) allows you to set a shop-wide region to use when no better option can be determined from buyer signals. Instead of `MarketRegionCreateInput`, you must use [`BackupRegionUpdateInput`](https://shopify.dev/docs/api/admin-graphql/2025-04/input-objects/BackupRegionUpdateInput).\\r\\n* To query the shop's backup region, use [`backupRegion`](https://shopify.dev/docs/api/admin-graphql/2025-04/queries/backupRegion).\\r\\n* To obtain a list of available regions that can be set as a backup, use the [`availableBackupRegions`](https://shopify.dev/docs/api/admin-graphql/2025-04/queries/availableBackupRegions) query.\\r\\n\\r\\n\\r\\n### Currency Settings\\r\\nThe [`Market.currencySettings`](https://shopify.dev/docs/api/admin-graphql/2025-04/objects/Market#field-currencysettings) field is now nullable. A null value indicates that the currency settings are inherited from the parent market.\\r\\n\\r\\n\\r\\n### Web Presence\\r\\nA web presence can now exist without a market and can also be assigned to multiple markets. The field [`MarketWebPresence.market`](https://shopify.dev/docs/api/admin-graphql/2025-04/objects/MarketWebPresence#field-market) is deprecated in favour of [`MarketWebPresence.markets`](https://shopify.dev/docs/api/admin-graphql/2025-04/objects/MarketWebPresence#connection-markets), which allows for this expanded functionality.\\r\\n\\r\\n### Catalogs\\r\\n\\r\\nAs of `2025-04`, the Product's [contextualPricing](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/Product#field-contextualpricing) field and Product Variant's [contextualPricing](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/ProductVariant#field-contextualpricing) field will resolve prices only considering active markets. Previous versions will continue to consider draft markets in the calculation of these fields.\\r\\n\",\"Markets APIs update: Use `backupRegionUpdate` for shop-wide regions, `BackupRegionUpdateInput` replaces `MarketRegionCreateInput`. `Market.currencySettings` is nullable. `WebPresence` replaces `MarketWebPresence`.\",\"2024-12-16T16:45:54-05:00\",\"2025-02-07T13:03:26-05:00\",\"2025-01-03T18:00:00-05:00\",[585],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":185,\"_164\":186},{\"_142\":589,\"_144\":590,\"_146\":591,\"_148\":592,\"_150\":591,\"_151\":593,\"_153\":594,\"_155\":595,\"_157\":595,\"_158\":16,\"_159\":596,\"_166\":598,\"_170\":599,\"_174\":65},\"new-collection_id-filter-added-to-products-query-filters\",\"New `collection_id` filter added to `products` query filters\",\"As of the **2024-10** version of the GraphQL Admin API, a new filter, `collection_id`, has been added to the `products` query. This filter allows you to retrieve products that belong to a specific collection. \\r\\n\\r\\nWhen using the `collection_id` filter, it can be combined with the following filters:\\r\\n\\r\\n- `created_at`\\r\\n- `updated_at`\\r\\n- `published_at`\\r\\n- `gift_card`\\r\\n- `handle`\\r\\n- `combined_listing_role`\\r\\n- `product_type`\\r\\n- `status`\\r\\n- `title`\\r\\n- `vendor`\\r\\n\\r\\nFor more details on all available attributes for the `products` query, visit the [Shopify developer documentation](https://shopify.dev/docs/api/admin-graphql/2024-10/queries/products#argument-query) on [shopify.dev](https://shopify.dev/).\\r\\n\\r\\nExample usage of the `collection_id` filter in a query:\\r\\n\\r\\n```graphql\\r\\n{\\r\\n products(query: \\\"collection_id:1234567890\\\") {\\r\\n edges {\\r\\n node {\\r\\n id\\r\\n title\\r\\n }\\r\\n }\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nThis query retrieves products from the collection with the ID `1234567890`.\",\"The 2024-10 GraphQL Admin API update adds `collection_id` as a filter in the `products` query, usable with specific filters like `created_at`, `status`, and `vendor`.\",\"2024-11-06T16:38:12-05:00\",\"2025-01-13T13:11:50-05:00\",\"2025-01-01T16:37:00-05:00\",[597],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":601,\"_144\":602,\"_146\":603,\"_148\":604,\"_150\":603,\"_151\":605,\"_153\":606,\"_155\":607,\"_157\":607,\"_158\":15,\"_159\":608,\"_166\":611,\"_170\":612,\"_174\":65},\"support-bundles-grouped-view-fields-in-graphql-api\",\"New fields to represent product bundles in a grouped view\",\"As of API `2025-01` version, we have introduced two new fields that allow you to accurately nest component products under the parent product in a grouped view. \\r\\n\\r\\n* The new `components` field has been added to the [AbandonedCheckoutLineItem](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/AbandonedCheckoutLineItem) object in the Admin GraphQL API. Use this field to define the component products within a product bundle, ensuring a grouped view in Abandoned Checkout Emails. \\r\\n\\r\\n* The new `group` field has been added to the [LineItem](https://shopify.dev/docs/api/customer/2025-01/objects/LineItem) object in the Customer Account API. Use this field to indicate that line item products are a part of a product bundle, ensuring a grouped view in Orders Detail Pages. \\r\\n\\r\\nIn addition, these fields can help you display product bundles in a grouped view in transactional emails, such as order confirmations and shipping updates. Learn how you can implement a grouped view by following [this tutorial](https://shopify.dev/docs/storefronts/themes/product-merchandising/bundles-emails). \",\"We introduced two new fields that allow you to accurately nest component products under the parent product in a grouped view. \",\"2024-12-11T16:10:22-05:00\",\"2024-12-19T14:00:02-05:00\",\"2025-01-01T16:01:00-05:00\",[609,610],{\"_162\":163,\"_164\":165},{\"_162\":298,\"_164\":299},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":614,\"_144\":615,\"_146\":616,\"_148\":617,\"_150\":616,\"_151\":618,\"_153\":619,\"_155\":620,\"_157\":620,\"_158\":15,\"_159\":621,\"_166\":623,\"_170\":624,\"_174\":65},\"filter-products-by-category-or-taxonomy-metafield\",\"Filter products by category or taxonomy metafield\",\"Starting with Storefront API version 2025-01, you can now filter products within collections and search results using `CategoryFilter` and `TaxonomyMetafieldFilter`.\\r\\n\\r\\n- **`CategoryFilter`**: Filter products by a category ID.\\r\\n- **`TaxonomyMetafieldFilter`**: Filter products based on a taxonomy metafield namespace, key, and value.\\r\\n\\r\\nLearn more about [filtering products in collections](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) on Shopify.dev.\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\"Storefront API 2025-01 adds `CategoryFilter` and `TaxonomyMetafieldFilter` for filtering products by category ID and taxonomy metafield, enhancing search and collection queries.\",\"2024-11-13T15:58:09-05:00\",\"2024-11-22T14:22:44-05:00\",\"2025-01-01T15:57:00-05:00\",[622],{\"_162\":450,\"_164\":451},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":626,\"_144\":627,\"_146\":628,\"_148\":629,\"_150\":628,\"_151\":630,\"_153\":631,\"_155\":632,\"_157\":632,\"_158\":15,\"_159\":633,\"_166\":635,\"_170\":636,\"_174\":65},\"minimum-requirement-is-now-optional-on-automatic-discounts\",\"Minimum requirement is now optional on automatic discounts\",\"Previously merchants were required to specify minimum purchase conditions on product, order, and free shipping automatic discounts. We're now making these conditions optional, so the `minimumRequirement` field in our APIs is now able to return a `null` value.\\r\\n\\r\\nAs of version 2025-01, the `minimumRequirement` field for both [DiscountAutomaticBasic](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/DiscountAutomaticBasic#field-minimumrequirement) and [DiscountAutomaticFreeShipping](https://shopify.dev/docs/api/admin-graphql/2025-01/objects/DiscountAutomaticFreeShipping#field-minimumrequirement) will become nullable.\",\"The `minimumRequirement` field in discount APIs is now optional, allowing `null` values. This change simplifies discount setup for merchants in version 2025-01.\",\"2024-10-18T16:01:21-04:00\",\"2024-10-29T16:50:40-04:00\",\"2025-01-01T13:00:00-05:00\",[634],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":638,\"_144\":639,\"_146\":640,\"_148\":641,\"_150\":640,\"_151\":642,\"_153\":643,\"_155\":644,\"_157\":644,\"_158\":15,\"_159\":645,\"_166\":647,\"_170\":648,\"_174\":65},\"new-customer-input-field-for-the-ordercreate-mutation\",\"New customer input field for the OrderCreate mutation\",\"As of GraphQL Admin API 2025-01 version, we're deprecating the `customer_id` field in favor of the new `customer` field which you can use to either associate an existing customer or upsert a customer record.\\r\\n\\r\\nThis provides some added flexibility when creating an order by saving the caller an extra step in fetching the customer ID before initiating the order creation.\\r\\n\\r\\nLearn more about `orderCreate` on [Shopify.dev](https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/orderCreate). \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\"GraphQL Admin API 2025-01 deprecates `customer_id` for `customer`, allowing direct customer association or upsert, simplifying order creation by removing the need to fetch customer IDs.\",\"2024-10-17T12:12:39-04:00\",\"2024-10-24T10:20:55-04:00\",\"2025-01-01T12:00:00-05:00\",[646],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":650,\"_144\":651,\"_146\":652,\"_148\":653,\"_150\":652,\"_151\":654,\"_153\":655,\"_155\":656,\"_157\":656,\"_158\":15,\"_159\":657,\"_166\":659,\"_170\":660,\"_174\":65},\"introduce-concatenatedorigincontract-to-subscriptionline\",\"Introduce concatenatedOriginContract to subscriptionLine\",\"As of 2025-01, we've introduced `concatenatedOriginContract` to `subscriptionLine` .\\r\\n\\r\\nYou can now query the origin contract of the lines if you have used the Subscription Billing Cycle APIs to combine multiple contracts. This can be accessed through `subscriptionBillingCycle.editedContract.lines.concatenatedOriginContract`.\\r\\n\\r\\nLearn more about combining contract on [Shopify.dev](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/combine-subscription-contracts).\\r\\n\\r\\n\",\"As of 2025-01, we've introduced `concatenatedOriginContract` to `subscriptionLine` .\\r\\n\\r\\nYou can now query the origin contract of the lines if you have used the Subscription Billing Cycle APIs to...\",\"2024-09-26T12:01:37-04:00\",\"2024-10-03T15:57:10-04:00\",\"2025-01-01T11:53:00-05:00\",[658],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":662,\"_144\":663,\"_146\":664,\"_148\":665,\"_150\":664,\"_151\":666,\"_153\":667,\"_155\":668,\"_157\":668,\"_158\":15,\"_159\":669,\"_166\":671,\"_170\":672,\"_174\":59},\"unused-pricelistusererrorcode-values-removed\",\"Unused PriceListUserErrorCode values removed\",\"Starting in API version 2025-01, [PriceListErrorCode](https://shopify.dev/docs/api/admin-graphql/unstable/enums/PriceListUserErrorCode) values that are currently not returned by the API will be hidden. These error codes include:\\r\\n\\r\\n- `CONTEXT_RULE_COUNTRIES_LIMIT`\\r\\n- `CONTEXT_RULE_COUNTRY_TAKEN`\\r\\n- `CONTEXT_RULE_LIMIT_REACHED`\\r\\n- `CURRENCY_COUNTRY_MISMATCH`\\r\\n- `COUNTRY_CURRENCY_MISMATCH`\\r\\n- `MARKET_CURRENCY_MISMATCH`\\r\\n- `CONTEXT_RULE_MARKET_NOT_FOUND`\\r\\n- `CONTEXT_RULE_MARKET_TAKEN`\",\"Starting from 2025-01, unused `PriceListErrorCode` values will be removed.\",\"2024-11-14T11:22:15-05:00\",\"2024-12-18T14:57:53-05:00\",\"2025-01-01T09:00:00-05:00\",[670],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":185,\"_164\":186},{\"_142\":674,\"_144\":675,\"_146\":676,\"_148\":677,\"_150\":676,\"_151\":678,\"_153\":679,\"_155\":668,\"_157\":668,\"_158\":15,\"_159\":680,\"_166\":682,\"_170\":683,\"_174\":65},\"update-to-percentage_adjustment-field-on-sellingplanpercentagepriceadjustment\",\"Update to `percentage_adjustment` field on `SellingPlanPercentagePriceAdjustment`\",\"In the Storefront API version 2025-01, there is an update to the [adjustmentPercentage](https://shopify.dev/docs/api/storefront/2025-01/objects/SellingPlanPercentagePriceAdjustment#field-adjustmentpercentage) field on the [`SellingPlanPercentagePriceAdjustment`](https://shopify.dev/docs/api/storefront/2025-01/objects/SellingPlanPercentagePriceAdjustment) object. This field, which facilitates the percentage price adjustment for a selling plan's pricing policy, will transition from an [`Int`](https://shopify.dev/docs/api/storefront/2025-01/scalars/Int) data type to a [`Float`](https://shopify.dev/docs/api/storefront/2025-01/scalars/Float).\",\"In Storefront API 2025-01, `adjustmentPercentage` in `SellingPlanPercentagePriceAdjustment` changes from `Int` to `Float`, affecting how percentage price adjustments are handled.\",\"2024-10-08T12:49:14-04:00\",\"2024-10-08T13:55:44-04:00\",[681],{\"_162\":450,\"_164\":451},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":685,\"_144\":686,\"_146\":687,\"_148\":688,\"_150\":687,\"_151\":689,\"_153\":690,\"_155\":691,\"_157\":691,\"_158\":15,\"_159\":692,\"_166\":694,\"_170\":695,\"_174\":65},\"deprecation-of-storefrontcustomeraccesstokencreate-mutation\",\"Deprecation of `storefrontCustomerAccessTokenCreate` Mutation\",\"As of API version `2025-01`, the `storefrontCustomerAccessTokenCreate` mutation is deprecated. This mutation, which was used to exchange the Customer Access Token in the `Authorization` header for a Storefront Customer Access Token, is no longer necessary. The Storefront API now directly supports Access Tokens from the Customer Accounts API via the `@inContext` [BuyerInput#customerAccessToken](https://shopify.dev/docs/api/storefront/2025-01/input-objects/BuyerInput#field-customeraccesstoken), and can be used for cart creation and buyer updates.\\r\\n\\r\\n**Migration Path:**\\r\\n1. Obtain an access token using the OAuth2 specification. Detailed steps are available [here](https://shopify.dev/docs/api/customer#step-obtain-access-token). These steps are identical to those for obtaining an access token for the Customer Accounts API.\\r\\n2. Use this access token directly with the Storefront API, replacing the deprecated `storefrontCustomerAccessTokenCreate` mutation.\\r\\n\\r\\nThis access token identifies your customer, enabling personalized features within the Storefront API.\\r\\n\\r\\nFor more information on the Customer Accounts API, visit [Shopify.dev](https://shopify.dev/docs/api/customer).\",\"API version 2025-01 deprecates `storefrontCustomerAccessTokenCreate`. Use Customer Accounts API tokens directly with Storefront API for cart and buyer updates, replacing the deprecated mutation.\",\"2024-11-27T15:03:25-05:00\",\"2024-12-16T12:21:48-05:00\",\"2025-01-01T08:00:00-05:00\",[693],{\"_162\":298,\"_164\":299},{\"_162\":168,\"_164\":169},{\"_162\":349,\"_164\":350},{\"_142\":697,\"_144\":698,\"_146\":699,\"_148\":700,\"_150\":699,\"_151\":701,\"_153\":702,\"_155\":691,\"_157\":691,\"_158\":15,\"_159\":703,\"_166\":705,\"_170\":706,\"_174\":65},\"new-delivery-promise-participants-api\",\"New delivery promise participants API\",\"As of the 2025-01 Admin GraphQL API, you can now query for delivery promise participants, using [`deliveryPromiseParticipants`](https://shopify.dev/docs/api/admin-graphql/2025-01/queries/deliveryPromiseParticipants).\\r\\n\\r\\nYou can make updates using the [`deliveryPromiseParticipantsUpdate`](https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/deliveryPromiseParticipantsUpdate) mutation.\\r\\n\\r\\nThese APIs control the usage of delivery promises on the platform.\",\"As of the 2025-01 Admin GraphQL API, you can now query for delivery promise participants, using...\",\"2024-12-03T14:57:48-05:00\",\"2024-12-03T15:24:39-05:00\",[704],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":172,\"_164\":173},{\"_142\":708,\"_144\":709,\"_146\":710,\"_148\":711,\"_150\":710,\"_151\":712,\"_153\":713,\"_155\":714,\"_157\":714,\"_158\":15,\"_159\":715,\"_166\":717,\"_170\":718,\"_174\":65},\"combined-listings-update-mutation-error-improvements\",\"Combined Listings update mutation error improvements\",\"Starting with the Admin API version 2025-01, we've introduced new error codes for the `combinedListingUpdate` mutation. These enhancements aim to provide clearer feedback when incorrect data is submitted.\\r\\n\\r\\n- The `missing_option_values` error occurs when the `optionsAndValues` field is required but not provided in the request.\",\"Starting with the Admin API version 2025-01, we've introduced new error codes for the `combinedListingUpdate` mutation. These enhancements aim to provide clearer feedback when incorrect data is...\",\"2024-09-24T22:44:53-04:00\",\"2025-01-17T11:08:45-05:00\",\"2025-01-01T07:00:00-05:00\",[716],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":720,\"_144\":721,\"_146\":722,\"_148\":723,\"_150\":722,\"_151\":724,\"_153\":725,\"_155\":714,\"_157\":714,\"_158\":15,\"_159\":726,\"_166\":731,\"_170\":732,\"_174\":65},\"update-in-orders-webhook-to-view-bundles-and-their-components\",\"Update in orders webhook to view bundles and their components\",\"Starting with the Admin API version 2025-01, we have added the `sales_line_item_group_id` field to the orders webhook. This field allows you to determine if a specific `line_item` is part of a bundle. When a `line_item` belongs to a bundle, it will have an associated `sales_line_item_group_id`.\",\"Starting with the Admin API version 2025-01, we have added the `sales_line_item_group_id` field to the orders webhook. This field allows you to determine if a specific `line_item` is part of a...\",\"2024-10-30T12:38:55-04:00\",\"2025-01-06T16:58:27-05:00\",[727,728],{\"_162\":163,\"_164\":165},{\"_162\":729,\"_164\":730},\"Webhook\",\"webhook\",{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":734,\"_144\":735,\"_146\":736,\"_148\":737,\"_150\":736,\"_151\":738,\"_153\":739,\"_155\":740,\"_157\":740,\"_158\":-5,\"_159\":741,\"_166\":746,\"_170\":747,\"_174\":59},\"public-apps-must-use-new-graphql-product-apis-to-be-accepted-in-the-shopify-app-store\",\"Public apps must use new GraphQL Product APIs to be accepted in the Shopify App Store\",\"Starting January 6, 2025, all new apps submitted to the Shopify App Store must use the [new GraphQL Product APIs](https://shopify.dev/changelog/new-graphql-product-apis-that-support-up-to-2000-variants-now-available-in-2024-04). After this date, apps that query [deprecated REST API product resources](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/api-updates#deprecated-rest-endpoints) won’t be approved.\\r\\n\\r\\nAs of February 1, 2025, all public apps must migrate to the [new GraphQL Product APIs](https://shopify.dev/changelog/new-graphql-product-apis-that-support-up-to-2000-variants-now-available-in-2024-04). This includes apps already listed in the Shopify App Store. \\r\\n\\r\\nPublic apps are always required to use currently supported APIs. To learn more about the specific changes to Shopify’s product APIs, and how to update your app, check out our [migration guide](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model).\",\"Starting January 6, 2025, all new apps submitted to the Shopify App Store must use the [new GraphQL Product...\",\"2024-11-01T13:01:21-04:00\",\"2024-12-19T09:36:40-05:00\",\"2025-01-01T00:01:00-05:00\",[742,743],{\"_162\":163,\"_164\":165},{\"_162\":744,\"_164\":745},\"Admin REST API\",\"admin-rest\",{\"_162\":388,\"_164\":389},{\"_162\":201,\"_164\":202},{\"_142\":749,\"_144\":750,\"_146\":751,\"_148\":752,\"_150\":751,\"_151\":753,\"_153\":754,\"_155\":755,\"_157\":755,\"_158\":14,\"_159\":756,\"_166\":758,\"_170\":759,\"_174\":65},\"add-new-requiresshippingmethod-field-to-fulfillmentservicecreate-and-fulfillmentserviceupdate-mutations\",\"Add new requiresShippingMethod field to fulfillmentServiceCreate and fulfillmentServiceUpdate mutations\",\"As of Admin API 2025-04, we have introduced a new field `requiresShippingMethod` on the [fulfillmentServiceCreate](https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/fulfillmentServiceCreate) and [fulfillmentServiceUpdate](https://shopify.dev/docs/api/admin-graphql/2025-04/mutations/fulfillmentServiceUpdate) mutations to bring these mutations in line with their REST API equivalents. \",\"As of Admin API 2025-04, we have introduced a new field `requiresShippingMethod` on the...\",\"2024-11-07T11:44:56-05:00\",\"2025-01-02T10:44:30-05:00\",\"2025-01-01T00:00:00-05:00\",[757],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":761,\"_144\":762,\"_146\":763,\"_148\":764,\"_150\":763,\"_151\":765,\"_153\":766,\"_155\":755,\"_157\":755,\"_158\":15,\"_159\":767,\"_166\":769,\"_170\":770,\"_174\":65},\"reversefulfillmentorder-order-field-is-nullable-as-of-2025-01\",\"ReverseFulfillmentOrder.order field is nullable as of 2025-01\",\"\u003c!-- **IMPORTANT:** Posts won't go live, including at the scheduled date, unless they're reviewed and approved. Due to reduced resources, the dev docs team doesn't have the capacity to review changelog posts at this time. We recommend getting a member of the product team behind the change to do the review. \\r\\n\\r\\nWrite a summary of the change. Check out the Developer changelog guidelines in the Vault: https://vault.shopify.io/pages/3468-Developer-changelog-posts. You can use markdown or the toolbar inserts to format text.\\r\\n\\r\\nHere are some suggested formats for writing 2-3 sentences with an overview of the change and how it benefits or affects developers:\\r\\n\\r\\nAs of { API and version }, you can use the {object or resource} to {do something new}.\\r\\nor\\r\\nAs of { API and version }, we're deprecating { description }. Use the { object or resource } instead.\\r\\nor\\r\\nYou can now use { thing } to { do something new }.\\r\\nor\\r\\nWe've added { thing } so that you can { do something }.\\r\\n\\r\\nDescribe any benefits { thing } has, or any action developers need to take and when they need to take it.\\r\\n \\r\\nYou can include links inline in the text, and add another link at the end in this format:\\r\\n\\r\\nLearn more about { thing } on [Shopify.dev](URL).\\r\\n--\u003e\\r\\n\\r\\n\\r\\n\\r\\nAs of **2025-01**, \u003ccode\u003eReverseFulfillmentOrder.order\u003c/code\u003e field is nullable. An \u003ccode\u003eOrder\u003c/code\u003e can be nullable if the client does not have access to the [`read_all_orders`](https://shopify.dev/docs/api/usage/access-scopes#orders-permissions) scope and the order is older than 60 days or no longer exists. For versions that predate **2025-01**, the order field will return a graphql error when the order is not available.\\r\\n\\r\\nLearn more about \u003ccode\u003eReverseFulfillmentOrder\u003c/code\u003e on [Shopify.dev](https://shopify.dev/docs/api/admin-graphql/unstable/objects/ReverseFulfillmentOrder).\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\"As of 2025-01, the ReverseFulfillmentOrder.order field is nullable if the client lacks read_all_orders scope and the order is over 60 days old or missing, avoiding graphql errors.\",\"2024-10-31T13:51:01-04:00\",\"2024-10-31T15:28:08-04:00\",[768],{\"_162\":163,\"_164\":165},{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},{\"_142\":772,\"_144\":773,\"_146\":774,\"_148\":775,\"_150\":774,\"_151\":776,\"_153\":777,\"_155\":755,\"_157\":755,\"_158\":15,\"_159\":778,\"_166\":782,\"_170\":783,\"_174\":65},\"addition-of-paymentdetails-field-in-verificationsessionresolve-mutation\",\"Addition of 'paymentDetails' field in `verificationSessionResolve` mutation.\",\"As of Payments Apps API version **2025-01** release, the `paymentDetails` field \\r\\nwill be addded to `verificationSessionResolve` mutation. Payment providers can now send payment details like Card Information etc. as an argument.\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\"As of Payments Apps API version **2025-01** release, the `paymentDetails` field \\r\\nwill be addded to `verificationSessionResolve` mutation. Payment providers can now send payment details like Card...\",\"2024-11-25T23:59:10-05:00\",\"2024-11-27T05:04:08-05:00\",[779],{\"_162\":780,\"_164\":781},\"Payments Apps API\",\"payments-apps-api\",{\"_162\":168,\"_164\":169},{\"_162\":201,\"_164\":202},\"root\",\"actionData\",\"errors\"]\n");</script><!--$?--><template id="B:1"></template><!--/$--></div><script>function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d)if(0===e)break;else e--;else"$"!==d&&"$?"!==d&&"$!"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data="$";a._reactRetry&&a._reactRetry()}};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script>