Ecommerce Shopify WordPress Discussion

how to upload a file with shopify's file api

So just to clarify what I am trying to do. I do NOT want to upload an image to a product. I want to use the File API to upload a file to files I don't know graphql very well at all. I have setup a private app, and set the file scopes for the Admin API. I have copied the Admin API access token, stored as SHOPIFY_ACCESS_TOKEN I am using shopify's php sdk Context::initialize( env('SHOPIFY_API_KEY'), env('SHOPIFY_API_SECRET'), env('SHOPIFY_APP_SCOPES'), env('SHOPIFY_DOMAIN'), new FileSessionStorage('/tmp/php_sessions'), env('SHOPIFY_API_VERSION'), false, true, ); $client = new Graphql(env("SHOPIFY_DOMAIN"), env("SHOPIFY_ACCESS_TOKEN")); $query = <<<QUERY mutation fileCreate(\$files: [FileCreateInput!]!) { fileCreate(files: \$files) { files { alt createdAt } } } QUERY; $variables = [ "files" => [ "alt" => "this is a cat", "contentType" => "IMAGE", "originalSource" => "https://placekitten.com/1300/1300", ], ]; $response = $client->query(["query" => $query, "variables" => $variables]); The Query part i copied directly from the FileCreate docs. The Context::initialize I got from the sdk docs. The error code that is returning is 401{"errors":"[API] Invalid API key or access token (unrecognized login or wrong password)"} I am unsure where to go from here and how to get it working. Can anyone see where I may have gone wrong? Edit: 20231112 A huge thanks to @hamzasgd for the awesome info. I have managed to get it working with PHP, which is great. My issue auth issue was that I was passing the store front api key, instead of the admin api key into the Context::initialize method. It should have been this Context::initialize( env('SHOPIFY_API_KEY'), env('SHOPIFY_ACCESS_TOKEN'), env('SHOPIFY_APP_SCOPES'), env('SHOPIFY_DOMAIN'), new FileSessionStorage('/tmp/php_sessions'), ApiVersion::LATEST, false, true, );
Here is the actual flow that you need to follow this gist is in javascript for the php the flow is same Shopify Files API Create Flow

December 30, 2023

TurboCommerce make the better internet purchasing globaly

Turbo Multi-language Translator

Make the better internet purchasing globaly

Turbosify SEO Speed Booster

5.0 (7) Free plan available
Get better conversions by improving store loading speed Installed

Turbo Multi-language Chat - AI Customer service in one hand

TurboCommerce make the better internet purchasing globaly
Our products

The help you need, when you need it

App by Turbo Engine

3 apps • 5.0 average rating

Turbosify Speed Booster

5.0 (7)
Get better conversions by optimizing shopify store Google page speed Installed

Turbosify Translator for Wordpress Woocommerce

5.0 (74) Free Wordpress Woocommerce Plugin
Translate your wordpress website to multiple language within 1 click, no configuration needed, no No technical required

Grow your business here

Whether you want to sell products down the street or around the world, we have all the tools you need.