Connect with Theme (Liquid) to Remix App

Topic summary

Goal: surface B2B catalog data in a Shopify storefront by connecting a theme (Liquid template) to a custom Shopify App endpoint.

Context: Liquid (Shopify’s templating language) doesn’t natively receive additional B2B catalog data inside templates. To work around this, the plan is to add a client-side script in the Liquid file that fetches data from the app and then displays it.

Current implementation: A Remix app defines a simple GET endpoint (loader) that returns “pong.” The endpoint can be successfully called when the app runs.

Open question: How to invoke this app endpoint from within Liquid/theme code (via a script fetch) and whether any special configuration is required to enable the connection.

Requests: Documentation or concrete examples showing how to connect a Liquid template to a Shopify App endpoint, including any necessary setup.

Status: No resolution yet; seeking guidance on configuration and best practices for Liquid-to-app communication.

Summarized with AI on December 20. AI used: gpt-5.

We are having issues connecting a Shopify Theme (inside a Liquid file) to a Shopify App.

In general, our issue is that Liquid does not support receiving additional information from the B2B catalogs. To address this, we would like to write our own endpoint and call it from within Liquid. Upon receiving the data, we want to display it. For this reason, we will create a section inside the Liquid file that will handle this process. Below is how the script section currently looks (the code is wrapped in tags).

const response = fetch("/apps/

And on the remix, we currently added a simple path to test it out

```javascript
import { LoaderFunction } from "@remix-run/node";

// Loader function to handle GET requests
export let loader: LoaderFunction = async () => {
  return new Response("pong", {
    status: 200,
    headers: {
      "Content-Type": "text/plain",
    },
  });
};

Now looking at the app when we run it we can do a successful call to the endpoint, but how to do it in liquid? Is there anything special you have to configure? Is there any documentation detailed with an example of how to connect from liquid to the app?