Anchor to fileCreatefile
file Create
mutation
Requires access scope,
access scope or
access scope. Also: Users must have create files permissions.
Creates file assets using an external URL or for files that were previously uploaded using the stagedUploadsCreate mutation. These files are added to the Files page in Shopify admin.
Files are processed asynchronously. Some data is not available until processing is completed. Check fileStatus to know when the files are READY or FAILED. See the FileStatus for the complete set of possible fileStatus values.
To get a list of all files, use the files query.
Anchor to Arguments
Arguments
- Anchor to filesfiles•[File
Create Input!]!required List of new files to be created.
Was this section helpful?
- Anchor to filesfiles•
The newly created files.
- Anchor to userErrorsuser•
Errors [FilesUser Error!]!non-null The list of errors that occurred from executing the mutation.
Was this section helpful?
Examples
1const { admin } = await authenticate.admin(request);23const response = await admin.graphql(4 `#graphql5 mutation fileCreate($files: [FileCreateInput!]!) {6 fileCreate(files: $files) {7 files {8 id9 fileStatus10 alt11 createdAt12 }13 }14 }`,15 {16 variables: {17 "files": {18 "alt": "fallback text for a video",19 "contentType": "VIDEO",20 "originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"21 }22 },23 },24);2526const data = await response.json();27
mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/unstable/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation fileCreate($files: [FileCreateInput!]!) { fileCreate(files: $files) { files { id fileStatus alt createdAt } } }",
"variables": {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
}
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}`,
{
variables: {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
},
},
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: {
"query": `mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}`,
"variables": {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
},
},
});
session = ShopifyAPI::Auth::Session.new(
shop: "your-development-store.myshopify.com",
access_token: access_token
)
client = ShopifyAPI::Clients::Graphql::Admin.new(
session: session
)
query = <<~QUERY
mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}
QUERY
variables = {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
}
response = client.query(query: query, variables: variables)
Input variables
JSON1{2 "files": {3 "alt": "fallback text for a video",4 "contentType": "VIDEO",5 "originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"6 }7}
Response
JSON1{2 "fileCreate": {3 "files": []4 }5}