Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This doc provides an overview of our GraphQL API which is designed specifically with data integration in mind.
query {
languageList {
edges {
node
}
}
}Example query on how to get values of custom fields options
fragment Option on Option {
code
name(languages: ["en_US"]) {
value
language
}
customFields {
__typename
customField {
code
}
translations(languages: ["en_US"]) {
language
... on ImageCustomFieldValueTranslation {
imageCustomFieldValue: value {
path
}
}
... on TextCustomFieldValueTranslation {
textCustomFieldValue: value
}
... on TextareaCustomFieldValueTranslation {
textareaCustomFieldValue: value
}
... on TextareaRTECustomFieldValueTranslation {
textareaRTECustomFieldValue: value
}
}
}
}Here's how you can set child product quantity via API.
mutation {
productGroupingSetChildQuantity(
input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2", quantity: 2 }
) {
__typename
}
}This is how you can create variable product via API.
mutation {
productCreateVariable(
input: {
sku: "SKU_VAR_PRODUCT"
templateCode: "Tshirts"
categoryCodes: "DELL"
}
) {
__typename
}
}This is how you remove child product from grouping one via API.
mutation {
productGroupingRemoveChild(input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2" }
) {
__typename
}
}Here's how to add variant to variable product via API.
mutation {
productVariableAddVariant(input: { sku: "SKU_VAR_PRODUCT", variantSku: "SKU_test2" }) {
__typename
}
}This is how you can change the name of single multimedia via API.
mutation {
multimediaSetName(
input: {
path: "multimedia.jpg"
name: "multimedia_2.jpg"
}
) {
__typename
}
}query {
productStream (first:10, after:"") {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... on VariableProduct {
sku
bindings {
code
__typename
}
variantList {
edges {
node {
sku
}
}
}
}
}
}
}
}This is how you can create a simple product via API.
This is how you can remove variant product from variable one via API
That's how you add child product to grouping one.
query {
templateList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
code
attributeList {
edges {
node {
scope
code
name {
value
language
}
}
}
}
}
}
}
}mutation {
productAddAttributeValueTranslationsMultiSelect(
input: {
sku: "product_2" # SKU of a product we want to set attribute options in
attributeCode: "labels" # attribute code
translations: [
{ value: ["test1", "test2"], language: "en_GB" } # options to set in a specific language
]
}
) {
__typename
}
}mutation {
productVariableRemoveVariant(input: { sku: "SKU_VAR_PRODUCT", variantSku: "SKU_test2" }
) {
__typename
}
}mutation {
attributeSelectAddOption(
input: {
code: "Model"
option: {
code: "eve_1011"
name: { language: "pl_PL", value: "eve_1011" }
}
}
) {
__typename
}
}mutation {
productAddAttributeValueTranslationsGallery(
input: {
sku: "1"
attributeCode: "gallery"
translations: [
{ language: "pl_PL", value: ["1.jpg", "2.jpg", "3.jpg"] }
]
}
) {
__typename
}
}mutation {
productSetTemplate(input: { sku: "SKU78", template: "template" }) {
__typename
}
}mutation {
multimediaDelete(input: { path: "multimedia.jpg" }) {
__typename
}
}query product {
product(sku: "SKU72") {
sku
attributeList {
edges {
node {
attribute {
code
scope
name {
value
language
}
}
}
}
}
}
}mutation {
categoryCreate(
input:{
code: "category_name"
name: {
language:"pl_PL"
value:"nazwa_kategorii"
}
}
) {
__typename
}
}mutation {
productGroupingAddChild(
input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2", quantity: 1 }
) {
__typename
}
}query {
categoryTree(code: "<code_of_the_category_tree>") {
code
categoryTreeLeafList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
category {
code
}
parentCategory {
code
}
}
}
}
}
}query productRelation {
product(sku: "001") {
sku
createdAt
editedAt
attributeList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
attribute {
code
}
translations {
... on ProductRelationAttributeValueTranslation {
language
value {
sku
}
}
}
}
}
}
}
}
This query will return all multimedia in PIM and extra info about them.
query multimedia {
multimediaStream {
pageInfo {
hasNextPage
endCursor
}
edges {
__typename
node {
name
path
alt {
value
language
}
extension
mime
size
folder {
name
}
url
}
}
}
}This is how you can set alternative value to a single multimedia via API.
mutation {
multimediaSetAlt(
input: {
path: "multimedia.jpg"
alt: { language: "en_GB", value: "Alternative value" }
}
) {
__typename
}
}mutation {
productCreateGrouping(
input: { sku: "SKU_GR_PRODUCT", templateCode: "Tshirts"}
) {
__typename
}
}mutation {
productCreateGrouping(
input: { sku: "SKU_GR_PRODUCT", templateCode: "Tshirts", categoryCodes: "DELL"}
) {
__typename
}
}mutation {
create: productCreateSimple(input: {sku: "new_product", templateCode: "template"}) {
__typename
}
assignDescription: productAddAttributeValueTranslationsTextarea(
input: {
sku: "new_product"
attributeCode: "description"
translations: [{ value: "Long description", language: "en_GB" }]
}
) {
__typename
}
assignShortDescription: productAddAttributeValueTranslationsTextarea(
input: {
sku: "new_product"
attributeCode: "short_description"
translations: [{ value: "Short description", language: "en_GB" }]
}
) {
__typename
}
}This is how you can create a simple product via API.
mutation {
productCreateSimple(
input: { sku: "SKU_test2", templateCode: "Tshirts"}
) {
__typename
}
}List of factors resulting in resource cursor update
mutation {
productCreateSimple(
input: { sku: "SKU_test2", templateCode: "Tshirts", categoryCodes: "DELL" }
) {
__typename
}
}mutation {
productAddAttributeValueTranslationsFile(input: {
sku:"SKU77"
attributeCode:"file_test"
translations:{
language:"pl_PL"
value:"bike-1.jpg"
}
})
{__typename}
}This will allow you to get list of first 100 product no matter if they're simple or variable.
mutation {
multimediaCreate(
input: { name: "file_name.extension", folderPath: "folder_path" }
) {
__typename
}
}$client = new \GuzzleHttp\Client(); // Guzzle version 6
$resp = $client->post(
$url,
[
'multipart' => [
[
'name' => 'upload',
'contents' => fopen(__DIR__ . '/test.png', 'r'),
],
[
'name' => 'query',
'contents' => '
mutation {
multimediaCreate(input: {name: "new.png", folderPath: null}) {__typename}
}
',
],
],
'headers' => [
'X-API-KEY' => $apiKey,
],
],
);from urllib import response
import requests
url = "https://marcin.ergonode.app/api/graphql/"
data = {
'upload': open('C:\\temp\\temp.png', 'rb'),
'query': (None, 'mutation{multimediaCreate(input:{name:"<choose_a_name>",folderPath: "<some_folder_path>"}){__typename}}')
}
headers = {
'X-API-KEY': '<some_api_key>',
}
response = requests.post(url, files=data, headers=headers)
print (response.text)
query groupingProduct {
productStream(first: 100) {
...ProductConnection
edges {
node {
... on GroupingProduct {
...Product
childrenList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
quantity
product {
...SimpleProduct
...VariableProduct
}
}
}
}
}
template {
code
}
}
}
}
}
fragment SimpleProduct on SimpleProduct {
...Product
attributeList {
...AttributeValueConnection
}
}
fragment VariableProduct on VariableProduct {
...Product
attributeList {
...AttributeValueConnection
}
bindings {
...Attribute
optionList(first: 10, after: "") {
edges {
node {
code
customFields {
customField {
code
}
}
name(languages: ["en_US"]) {
value
language
}
}
}
}
}
variantList {
...ProductConnection
}
}
fragment AttributeValueConnection on AttributeValueConnection {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
attribute {
...Attribute
}
translations {
language
}
}
}
}
fragment Attribute on Attribute {
code
name(languages: ["en_US"]) {
value
language
}
scope
}
fragment Product on Product {
__typename
sku
createdAt
editedAt
}
fragment ProductConnection on ProductConnection {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
...Product
}
}
}mutation {
create: productCreateSimple(input: {sku: "new_product", templateCode: "template"}) {
__typename
}
assignDescription: productAddAttributeValueTranslationsTextarea(
input: {
sku: "new_product"
attributeCode: "description"
translations: [{ value: "Długi opis", language: "pl_PL" }]
}
) {
__typename
}
assignShortDescription: productAddAttributeValueTranslationsTextarea(
input: {
sku: "new_product"
attributeCode: "short_description"
translations: [{ value: "Krótki opis", language: "pl_PL" }]
}
) {
__typename
}
assignText: productAddAttributeValueTranslationsText(
input: {
sku: "new_product"
attributeCode: "text"
translations: [{ value: "wartość", language: "pl_PL" }]
}
) {
__typename
}
}Scalars represent primitive values like Integer or String.
{
__schema {
queryType {
name
}
mutationType {
name
}
subscriptionType {
name
}
types {
...FullType
}
directives {
name
description
locations
args {
...InputValue
}
}
}
}
fragment FullType on __Type {
kind
name
description
fields(includeDeprecated: true) {
name
description
args {
...InputValue
}
type {
...TypeRef
}
isDeprecated
deprecationReason
}
inputFields {
...InputValue
}
interfaces {
...TypeRef
}
enumValues(includeDeprecated: true) {
name
description
isDeprecated
deprecationReason
}
possibleTypes {
...TypeRef
}
}
fragment InputValue on __InputValue {
name
description
type {
...TypeRef
}
defaultValue
}
fragment TypeRef on __Type {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType
{
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
}
}
}
}
}
}
}
}{
categoryStream(first: 1) {
pageInfo {
endCursor
hasNextPage
}
edges {
node {
code
name {
value
language
}
}
cursor
}
}
}{
"data": {
"categoryStream": {
"pageInfo": {
"endCursor": "YXJyYXljb25uZWN0aW9uOjQ5",
"hasNextPage": true
},
"edges": [
{
"node": {
"code": "category_name_clothing",
"name": [
{
"value": "Clothing",
"language": "en_GB"
},
{
"value": "Odzież",
"language": "pl_PL"
}
]
},
"cursor": "YXJyYXljb25uZWN0aW9uOjQ5"
}
]
}
}
}{
categoryStream(first: 1, after: "YXJyYXljb25uZWN0aW9uOjQ5") {
...
}{
"data": {
"categoryStream": {
"pageInfo": {
"endCursor": "YXJyYXljb25uZWN0aW9uOjUw",
"hasNextPage": false
}
...
}
}
}{
categoryStream(first: 1) {
pageInfo {
endCursor
hasNextPage
}
edges {
node {
code
}
}
}
}{
category(code: "category_name_clothing") {
name {
value
language
}
code
}
}query catWithAttVal {
category(code: "buty") {
code
attributeList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
...AttributeValue
}
}
}
}
}
fragment AttributeValue on AttributeValue {
__typename
attribute {
code
name {
language
value
}
}
... on TextAttributeValue {
textAttributeValueTranslations: translations {
value
language
}
}
... on TextareaAttributeValue {
textareaAttributeValueTranslations: translations {
value
language
}
}
... on DateAttributeValue {
dateAttributeValueTranslations: translations {
value
language
}
}
... on UnitAttributeValue {
unitAttribute: attribute {
# unit might be useful in the value context
unit {
name
symbol
}
}
unitAttributeValueTranslations: translations {
value
language
}
}
... on PriceAttributeValue {
priceAttribute: attribute {
# currency might be useful in the price context
currency
}
priceAttributeValueTranslations: translations {
value
language
}
}
... on NumberAttributeValue {
numericAttributeValueTranslations: translations {
value
language
}
}
... on ProductRelationAttributeValue {
productRelationAttributeValueTranslations: translations {
value {
sku
}
language
}
}
... on FileAttributeValue {
fileAttributeValueTranslations: translations {
value {
...Multimedia
}
language
}
}
... on GalleryAttributeValue {
galleryAttributeValueTranslations: translations {
value {
...Multimedia
}
language
}
}
... on ImageAttributeValue {
imageAttributeValueTranslations: translations {
value {
...Multimedia
}
language
}
}
... on MultiSelectAttributeValue {
multiSelectAttributeValueTranslations: translations {
translatedValue {
...OptionTranslatedValue
}
language
}
}
... on SelectAttributeValue {
selectAttributeValueTranslations: translations {
translatedValue {
...OptionTranslatedValue
}
language
}
}
}
fragment Multimedia on Multimedia {
path
name
extension
mime
size
alt {
value
language
}
title {
value
language
}
url
}
fragment OptionTranslatedValue on OptionTranslatedValue {
code
name
}This is how you can get data after some cursor via API.
{
}query queryName {
}query queryName {
productStream {
pageInfo {
endCursor
}
totalCount
}
}query queryName {
productStream (first: 2) {
pageInfo {
endCursor
}
totalCount
}
}query queryName {
productStream(first: 2) {
pageInfo {
endCursor
}
totalCount
}
productStream(after: "YXJyYXljb25uZWN0aW9uOjM0Mw==") {
pageInfo {
endCursor
}
totalCount
}
}query queryName {
firstTwo: productStream(first: 2) {
pageInfo {
endCursor
}
totalCount
}
dataAfter: productStream(after: "YXJyYXljb25uZWN0aW9uOjM0Mw==") {
pageInfo {
endCursor
}
totalCount
}
}query x {
productStream {
pageInfo {
endCursor
}
}
}query queryName {
firstTwo: productStream(first: 2) {
pageInfo {
endCursor
}
...fragmentName
}
dataAfter: productStream(after: "YXJyYXljb25uZWN0aW9uOjM0Mw==") {
pageInfo {
endCursor
}
...fragmentName
}
}
fragment fragmentName on ProductConnection {
totalCount
}query queryName ($x: Int = 2) {
firstTwo: productStream(first: $x) {
pageInfo {
endCursor
}
...fragmentName
}
dataAfter: productStream(after: "YXJyYXljb25uZWN0aW9uOjM0Mw==") {
pageInfo {
endCursor
}
...fragmentName
}
}
fragment fragmentName on ProductConnection {
totalCount
}query queryName ($x: Int = 2, $condition: Boolean = true) {
firstTwo: productStream(first: $x) {
pageInfo @include(if: $condition) {
endCursor
}
...fragmentName
}
dataAfter: productStream(after: "YXJyYXljb25uZWN0aW9uOjM0Mw==") {
pageInfo {
endCursor
}
...fragmentName
}
}
fragment fragmentName on ProductConnection {
totalCount
}query queryName ($x: Int = 2, $condition: Boolean = true) {
firstTwo: productStream(first: $x) {
pageInfo @include(if: $condition) {
endCursor
}
...fragmentName
}
dataAfter: productStream(after: "YXJyYXljb25uZWN0aW9uOjM0Mw==") {
pageInfo {
endCursor
}
...fragmentName
}
}
fragment fragmentName on ProductConnection {
totalCount
}query groupingProduct {
productStream(after: "YXJyYXljb25uZWN0aW9uOjM2MTE=") {
...ProductConnection
edges {
node {
... on GroupingProduct {
...Product
childrenList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
quantity
product {
...SimpleProduct
...VariableProduct
}
}
}
}
}
template {
code
}
}
}
}
}
fragment SimpleProduct on SimpleProduct {
...Product
attributeList {
...AttributeValueConnection
}
}
fragment VariableProduct on VariableProduct {
...Product
attributeList {
...AttributeValueConnection
}
bindings {
...Attribute
optionList(first: 10) {
edges {
node {
code
name(languages: ["en_US"]) {
value
language
}
}
}
}
}
variantList {
...ProductConnection
}
}
fragment AttributeValueConnection on AttributeValueConnection {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
attribute {
...Attribute
}
translations {
language
}
}
}
}
fragment Attribute on Attribute {
code
name(languages: ["en_US"]) {
value
language
}
scope
}
fragment Product on Product {
__typename
sku
createdAt
editedAt
}
fragment ProductConnection on ProductConnection {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
...Product
}
}
}query groupingProduct {
productStream(after: "YXJyYXljb25uZWN0aW9uOjM2MTE=", first: 100) {
... ProductConnection
edges {
node {
... on GroupingProduct {
... Product
childrenList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
quantity
product {
... SimpleProduct
... VariableProduct
}
}
}
}
}
template {
code
}
}
}
}
}
fragment SimpleProduct on SimpleProduct {
... Product
attributeList {
... AttributeValueConnection
}
}
fragment VariableProduct on VariableProduct {
... Product
attributeList {
... AttributeValueConnection
}
bindings {
... Attribute
options {
code
name {
value
language
}
}
}
variantList {
... ProductConnection
}
}
fragment AttributeValueConnection on AttributeValueConnection {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
attribute {
... Attribute
}
translations {
language
}
}
}
}
fragment Attribute on Attribute {
code
name {
value
language
}
scope
}
fragment Product on Product {
__typename
sku
createdAt
editedAt
}
fragment ProductConnection on ProductConnection {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... Product
}
}
}query getAttValues {
product(sku: "
{
"data": {
"product": {
"sku": "0123456789",
"createdAt": "2024-04-04T11:44:54+00:00",
"editedAt": "2024-04-04T13:33:46+00:00",
"template": {
"code": "GraphQL"
},
"attributeList": {
"pageInfo": {
"hasNextPage": false,
"endCursor": "YXJyYXljb25uZWN0aW9uOjQ="
},
"edges": [
{
"node": {
"SelectAttributeValue": [
{
"language": "en_GB",
"translatedValue": {
"code": "blk",
"name": "Black"
}
},
{
"language": "pl_PL",
"translatedValue": {
"code": "blk",
"name": "Czarny"
}
}
]
}
},
{
"node": {
"attribute": {
"name": [
{
"language": "en_GB",
"value": "Short description"
},
{
"language": "pl_PL",
"value": "Krótki opis"
}
]
},
"TextareaAttributeValue": [
{
"language": "en_GB",
"value": "Short countertop description"
},
{
"language": "pl_PL",
"value": "Krótki opis blatu"
}
]
}
},
{
"node": {
"priceAttribute": {
"currency": "EUR"
},
"priceAttributeValue": [
{
"language": "en_GB",
"value": 10.1
},
{
"language": "pl_PL",
"value": 9.99
}
]
}
},
{
"node": {
"GalleryAttributeValue": [
{
"language": "en_GB",
"value": [
{
"path": "semir-beige-kapinos-stopnica-narozna-33x33-g1.webp",
"name": "semir-beige-kapinos-stopnica-narozna-33x33-g1.webp",
"extension": "webp",
"mime": "image\/webp",
"sizeInBytes": 46116,
"alt": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
],
"title": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
]
},
{
"path": "[email protected]",
"name": "[email protected]",
"extension": "webp",
"mime": "image\/webp",
"sizeInBytes": 158884,
"alt": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
],
"title": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
]
}
]
},
{
"language": "pl_PL",
"value": [
{
"path": "semir-beige-kapinos-stopnica-narozna-33x33-g1.webp",
"name": "semir-beige-kapinos-stopnica-narozna-33x33-g1.webp",
"extension": "webp",
"mime": "image\/webp",
"sizeInBytes": 46116,
"alt": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
],
"title": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
]
},
{
"path": "[email protected]",
"name": "[email protected]",
"extension": "webp",
"mime": "image\/webp",
"sizeInBytes": 158884,
"alt": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
],
"title": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
]
}
]
},
{
"language": "de_DE",
"value": [
{
"path": "semir-beige-kapinos-stopnica-narozna-33x33-g1.webp",
"name": "semir-beige-kapinos-stopnica-narozna-33x33-g1.webp",
"extension": "webp",
"mime": "image\/webp",
"sizeInBytes": 46116,
"alt": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
],
"title": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
]
},
{
"path": "[email protected]",
"name": "[email protected]",
"extension": "webp",
"mime": "image\/webp",
"sizeInBytes": 158884,
"alt": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
],
"title": [
{
"language": "en_GB",
"value": null
},
{
"language": "pl_PL",
"value": null
}
]
}
]
}
]
}
}
]
},
"__typename": "SimpleProduct"
}
}
}The changelog is a list of recent changes to GraphQL API schema.
Query.section addedMultiSelectAttribute implements OptionAttributeSelectAttribute.optionList addedAttributeValue.valueTranslations becomes deprecatedAttribute.labelQueries allow retrieving data from the server.
This is how you can get a list of products with ALL attribute types, if you do not need all of them, simply remove any fragment that is not needed
query {
productStream {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
sku
attributeList {
edges {
node {
...AttributeValue
}
}
}
}
}
}
}
fragment AttributeValue on AttributeValue {
__typename
attribute {
code
name {
language
value
}
}
... on TextAttributeValue {
textAttributeValueTranslations: translations {
value
language
}
}
... on TextareaAttributeValue {
textareaAttributeValueTranslations: translations {
value
language
}
}
... on DateAttributeValue {
dateAttributeValueTranslations: translations {
value
language
}
}
... on UnitAttributeValue {
unitAttribute: attribute {
# unit might be useful in the value context
unit {
name
symbol
}
}
unitAttributeValueTranslations: translations {
value
language
}
}
... on PriceAttributeValue {
priceAttribute: attribute {
# currency might be useful in the price context
currency
}
priceAttributeValueTranslations: translations {
value
language
}
}
... on NumberAttributeValue {
numericAttributeValueTranslations: translations {
value
language
}
}
... on ProductRelationAttributeValue {
productRelationAttributeValueTranslations: translations {
value {
sku
}
language
}
}
... on FileAttributeValue {
fileAttributeValueTranslations: translations {
value {
...Multimedia
}
language
}
}
... on GalleryAttributeValue {
galleryAttributeValueTranslations: translations {
value {
...Multimedia
}
language
}
}
... on ImageAttributeValue {
imageAttributeValueTranslations: translations {
value {
...Multimedia
}
language
}
}
... on MultiSelectAttributeValue {
multiSelectAttributeValueTranslations: translations {
translatedValue {
...OptionTranslatedValue
}
language
}
}
... on SelectAttributeValue {
selectAttributeValueTranslations: translations {
translatedValue {
...OptionTranslatedValue
}
language
}
}
}
fragment Multimedia on Multimedia {
path
name
extension
mime
size
alt {
value
language
}
title {
value
language
}
url
}
fragment OptionTranslatedValue on OptionTranslatedValue {
code
name
customFields {
... on ImageCustomFieldTranslatedValue {
customField {
code
}
image: value {
path
name
extension
mime
size
alt {
language
value
}
title {
language
value
}
url
folder {
name
path
}
}
}
... on TextCustomFieldTranslatedValue {
customField {
code
}
value
}
... on TextareaCustomFieldTranslatedValue {
customField {
code
}
value
}
... on TextareaRTECustomFieldTranslatedValue {
customField {
code
}
value
}
}
}
Mutations allow modifing data on the server.
Objects represent the resources you can access.
Input objects represent a set of fields allowing describing mutation.