Starting a new Hydrogen+Oxigen project, but the steps on getting started are incorrect or we don't have access

Hello! I’ve been trying to set-up a new shopify dev store but I don’t know if the documentation is outdated or missing information and it’s getting pretty frustrating.

I want to preface that this is the first time we’re working with Shopify, so there’s definitely a lack of experience there

We’ve just created a brand new, empty store, on a Shopify Plus plan where the goal is for it to be a B2B store. And we want to use Hydrogen + Oxygen. So we are on the highest, paid plan.

Trying to follow the getting started documentation, on Step 3, I can’t run npx shopify hydrogen link as it yields the following issue:

│                                                                                                                                                                        │
│  The Admin GraphQL API responded unsuccessfully with errors:                                                                                                           │
│                                                                                                                                                                        │
│  [                                                                                                                                                                     │
│    {                                                                                                                                                                   │
│      "message": "Access denied for hydrogenStorefronts field. Required access: Request must be initiated from the Shopify CLI and user must have full access to apps   │
│  or access to the Hydrogen channel.",                                                                                                                                  │
│      "locations": [                                                                                                                                                    │
│        {                                                                                                                                                               │
│          "line": 3,                                                                                                                                                    │
│          "column": 5                                                                                                                                                   │
│        }                                                                                                                                                               │
│      ],                                                                                                                                                                │
│      "path": [                                                                                                                                                         │
│        "hydrogenStorefronts"                                                                                                                                           │
│      ],                                                                                                                                                                │
│      "extensions": {                                                                                                                                                   │
│        "code": "ACCESS_DENIED",                                                                                                                                        │
│        "documentation": "https://shopify.dev/api/usage/access-scopes",                                                                                                 │
│        "requiredAccess": "Request must be initiated from the Shopify CLI and user must have full access to apps or access to the Hydrogen channel."                    │
│      }                                                                                                                                                                 │
│    }                                                                                                                                                                   │
│  ]                                                                                                                                                                     │
│             

When searching online I’ve found that we need to have the Hydrogen app/channel installed, which makes sense, well, we want to use Hydrogen with Oxygen, but then:

    1. Why does the getting started not mention that this needs to be installed on the store?

And even then, Hydrogen cannot be installed:

Looking for the reasons online I found:

Oh, so we need to install the Headless app instead of Hydrogen app, that’s weird, we want to use Hydrogen. And then we grab the api keys from there, great. But there’s a problem, where’s the PUBLIC_STOREFRONT_ID?

Well, turns out it’s on the url, which is fine, but the problem is that I just found that out by assuming that and testing, there is nowhere on the docs telling you where to get it from(besides using env pull, that we can’t do), or that it’s that number on the url. And at this point I’m still even not sure it’s the correct value, maybe the app just works fine with all the right api keys but storefront id. Maybe it hasn’t been used by the code yet, as I’m running the quickstart example from the getting started so the app is still basic. I did see a product I’ve created though! So that’s a good start

Now:

    1. Why does the only way to get it to work is by using a workaround? We’ve just created the app and are already dealing with patching a solution rather than solving it.
    1. Again, why doesn’t the getting started mention that this is the case? Why not add that as steps on it, that we need to install the “Headless” channel instead, and grab the api keys to use on our .env(remember, we couldn’t run link so we can’t use env pull)

Though, the app runs now and I can see my store products, let’s try to deploy it with npx shopify hydrogen deploy (which is also part of the getting started) and:
Access denied for hydrogenStorefronts field. Required access: Request must be initiated from the Shopify CLI and user must have full access to apps or access to the Hydrogen channel.

That’s ok, I still don’t have the Hydrogen channel I was supposed to, so I still can’t do that, but why can’t I still have the channel as expected?

Trying to solve the issue I then found:

It says that a developer store can’t have the Hydrogen channel. We’ve just created the store and haven’t done anything so yeah, it’s a pre-live development store, that’s ok.

But also:

    1. This is more than a year old and could be outdated, is it? Or is it not? Apparently not because at this point we can’t install it so…

I could be wrong but with that I’m now assuming that the workflow on shopify might be a bit different than what we expected, and that’s fine. We work locally until we finish, say, the MVP of the store, and then when we want to make it live we transfer the ownership, make it managed, and at that point we can install Hydrogen and deploy to Oxygen and get the ball rolling.

I’m confused:

    1. How can we be sure that it will “just work” with the Oxygen deployment, we can’t be certain since we haven’t been able to test it at all. What if the “Hydrogen” could be installed, but it had warnings saying that the store is a development store, and that not all features are available yet. But that we could at least link it.
    1. And again, why doesn’t the docs just mention that? For example, here. There is no reference of it needing to not be a Developer store. If this is also required for deploying with Oxygen. Why does the getting started not mention the need of having Hydrogen channel installed, and its requirements, before running npx shopify hydrogen deploy?

You could make the argument that the goal of the getting started is to have a setup process with the least amount of steps possible, but what’s the point if it just breaks and we need to look for information scattered on old discussions?

And if my assumption of the workflow is correct, it doesn’t make sense, because if we can only deploy to Oxygen after the store has been transferred and is not a development store anymore, why is the getting started asking us to deploy on the 4th step, “just to see it work”. If we just created the app following the getting started, of course it’s a development store, as we just created it.

I’m pretty confused. We do want to use Hydrogen and Oxygen, not another headless framework. We are creating the store and site from scratch, so we’re not doing any “Bring your own stack” for us to need to use the Headless channel instead, but we are faced with outdated, weird information, and information that conflicts with the getting started. What are we missing?