You can use location rules to rank the possible locations for a line item during checkout. In this tutorial series, you'll use [Shopify Functions](/docs/apps/build/functions) to create a function that prioritizes locations in a particular country defined by the user. > Beta: > Location rules is a new feature that's only available by request. Reach out to [Shopify Plus Support](https://help.shopify.com/en/support/plus) to know more about your eligibility and the requirements for the beta program. ## What you'll learn In this tutorial series, you’ll learn how to do the following tasks: - Set up your environment to use functions. - Create a location rule function. - Add configuration options to your location rule function using metafields. - Build a location rule user interface using [Admin UI extensions](/docs/api/admin-extensions). ## Requirements > Shopify Plus: > Only stores on the [Shopify Plus](https://www.shopify.com/plus) plan can use custom order routing location rules. - You've created a [Partner account](https://www.shopify.com/partners). - You've created a [development store](/docs/api/development-stores#create-a-development-store-to-test-your-app). - You've [created an app that uses Shopify CLI 3.49.5 or higher](/docs/apps/build/scaffold-app). If you previously installed Shopify CLI, then make sure that you're using the [latest version](/docs/api/shopify-cli#upgrade). Start with the [Remix app template](/docs/api#app-templates) if you plan to make your location rule configurable and create a UI for it. Otherwise, start with an [extension-only app](/docs/apps/build/app-extensions/build-extension-only-app) and let Shopify host it for you. - You've installed [Node.js](https://nodejs.org/en/download) 16 or higher. - You've [installed your app](/docs/apps/build/scaffold-app#step-3-install-your-app-on-your-development-store) on the development store. ### Rust-specific requirements The following requirements are specific to Rust-based development with Shopify Functions. - You've installed [Rust](https://www.rust-lang.org/tools/install). On Windows, Rust requires the [Microsoft C++ Build Tools](https://docs.microsoft.com/en-us/windows/dev-environment/rust/setup). Make sure to select the **Desktop development with C++** workload when installing the tools. - You've installed the [`wasm32-wasip1` target](https://doc.rust-lang.org/rustc/platform-support/wasm32-wasip1.html): <p> <div class="react-code-block" data-preset="terminal"> <div class="react-code-block-preload ThemeMode-dim"> <div class="react-code-block-preload-bar "></div> <div class="react-code-block-preload-placeholder-container"> <div class="react-code-block-preload-code-container"> <div class="react-code-block-preload-codeline-number"></div> <div class="react-code-block-preload-codeline"></div> </div> </div> </div> <script type="text/plain" data-language="bash"> RAW_MD_CONTENTrustup target add wasm32-wasip1 END_RAW_MD_CONTENT</script> </div> </p> ## Tutorials Follow the tutorial series to go from "Hello World" to a functional location rules experience. <div class="resource-card-grid"> <div> <a class="resource-card" href="/docs/apps/build/orders-fulfillment/order-routing-apps/location-rules/build-location-rule-function" data-theme-mode=""> <div class="resource-card__indicator-container"><img src="/assets/resource-cards/globe" data-alt-src="/assets/resource-cards/globe-dark" aria-hidden="true" class="resource-card__icon themed-image"></div> <h3 class="resource-card__title"> Tutorial 1: Getting started with building location rules </h3> <p class="resource-card__description">Create a new location rule function.</p> </a> </div> <div> <a class="resource-card" href="/docs/apps/build/orders-fulfillment/order-routing-apps/location-rules/add-configuration" data-theme-mode=""> <div class="resource-card__indicator-container"><img src="/assets/resource-cards/gear" data-alt-src="/assets/resource-cards/gear-dark" aria-hidden="true" class="resource-card__icon themed-image"></div> <h3 class="resource-card__title"> Tutorial 2: Make your location rule function configurable </h3> <p class="resource-card__description">Add configuration to your location rule function using metafields.</p> </a> </div> <div> <a class="resource-card" href="/docs/apps/build/orders-fulfillment/order-routing-apps/location-rules/build-ui" data-theme-mode=""> <div class="resource-card__indicator-container"><img src="/assets/resource-cards/blocks" data-alt-src="/assets/resource-cards/blocks-dark" aria-hidden="true" class="resource-card__icon themed-image"></div> <h3 class="resource-card__title"> Tutorial 3: Build a location rule user interface </h3> <p class="resource-card__description">Build a new page in your app where merchants can view location rules.</p> </a> </div> </div> ## Developer tools and resources Explore the following developer tools and resources to get familiar with building location rules. <div class="resource-card-grid"> <div> <a class="resource-card" href="/docs/api/functions/reference/order-routing-location-rule" data-theme-mode=""> <div class="resource-card__indicator-container"><img src="/assets/resource-cards/graphql" data-alt-src="/assets/resource-cards/graphql-dark" aria-hidden="true" class="resource-card__icon themed-image"></div> <h3 class="resource-card__title"> Order Routing Location Rule API reference </h3> <p class="resource-card__description">Consult the GraphQL reference for the Order Routing Location Rule API.</p> </a> </div></p> <p><div> <a class="resource-card" href="/docs/apps/build/functions/programming-languages" data-theme-mode=""> <div class="resource-card__indicator-container"><img src="/assets/resource-cards/javascript" data-alt-src="/assets/resource-cards/javascript-dark" aria-hidden="true" class="resource-card__icon themed-image"></div> <h3 class="resource-card__title"> Language support </h3> <p class="resource-card__description">Learn about the language support and tooling that are available in Shopify Functions.</p> </a> </div> </div>