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.
Overview of available query and field naming concepts representing how the data is provided.
query {
templateList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
code
attributeList {
edges {
node {
scope
code
name {
value
language
}
}
}
}
}
}
}
}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
}
}
}
}query {
languageList {
edges {
node
}
}
}Here's how to add variant to variable product via API.
mutation {
productVariableAddVariant(input: { sku: "SKU_VAR_PRODUCT", variantSku: "SKU_test2" }) {
__typename
}
}Here's how you can set child product quantity via API.
mutation {
productGroupingSetChildQuantity(
input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2", quantity: 2 }
) {
__typename
}
}Enums represent a predefined sets o values.
This is how you can create a simple product via API.
This query will return all multimedia in PIM and extra info about them.
This is how you can create a simple product via API.
This is how you can remove variant product from variable one via API
This is how you remove child product from grouping one via API.
This is how you can set alternative value to a single multimedia via API.
This is how you can change the name of single multimedia via API.
This is how you can create variable product via API.
That's how you add child product to grouping one.
mutation {
productCreateGrouping(
input: { sku: "SKU_GR_PRODUCT", templateCode: "Tshirts"}
) {
__typename
}
}mutation {
productCreateGrouping(
input: { sku: "SKU_GR_PRODUCT", templateCode: "Tshirts", categoryCodes: "DELL"}
) {
__typename
}
}query multimedia {
multimediaStream {
pageInfo {
hasNextPage
endCursor
}
edges {
__typename
node {
name
path
alt {
value
language
}
extension
mime
size
folder {
name
}
url
}
}
}
}mutation {
productCreateSimple(
input: { sku: "SKU_test2", templateCode: "Tshirts"}
) {
__typename
}
}mutation {
productCreateSimple(
input: { sku: "SKU_test2", templateCode: "Tshirts", categoryCodes: "DELL" }
) {
__typename
}
}query productRelation {
product(sku: "001") {
sku
createdAt
editedAt
attributeList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
attribute {
code
}
translations {
... on ProductRelationAttributeValueTranslation {
language
value {
sku
}
}
}
}
}
}
}
}
query {
productStream (first:10, after:"") {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... on VariableProduct {
sku
bindings {
code
__typename
}
variantList {
edges {
node {
sku
}
}
}
}
}
}
}
}mutation {
productVariableRemoveVariant(input: { sku: "SKU_VAR_PRODUCT", variantSku: "SKU_test2" }
) {
__typename
}
}mutation {
productGroupingRemoveChild(input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2" }
) {
__typename
}
}mutation {
multimediaSetAlt(
input: {
path: "multimedia.jpg"
alt: { language: "en_GB", value: "Alternative value" }
}
) {
__typename
}
}mutation {
multimediaDelete(input: { path: "multimedia.jpg" }) {
__typename
}
}mutation {
multimediaSetName(
input: {
path: "multimedia.jpg"
name: "multimedia_2.jpg"
}
) {
__typename
}
}mutation {
productCreateVariable(
input: {
sku: "SKU_VAR_PRODUCT"
templateCode: "Tshirts"
categoryCodes: "DELL"
}
) {
__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
}
}
}
}
}
}mutation {
categoryCreate(
input:{
code: "category_name"
name: {
language:"pl_PL"
value:"nazwa_kategorii"
}
}
) {
__typename
}
}mutation {
productSetTemplate(input: { sku: "SKU78", template: "template" }) {
__typename
}
}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 {
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
}
}query product {
product(sku: "SKU72") {
sku
attributeList {
edges {
node {
attribute {
code
scope
name {
value
language
}
}
}
}
}
}
}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
}
}mutation {
productAddAttributeValueTranslationsFile(input: {
sku:"SKU77"
attributeCode:"file_test"
translations:{
language:"pl_PL"
value:"bike-1.jpg"
}
})
{__typename}
}The list of possible error codes to occur in course of executing API mutations.
This will allow you to get list of first 100 product no matter if they're simple or variable.
This is how you can create multimedia via API.
79876042-fe47-4035-ba10-ce07706433fd Template with given TemplateCode does not exist.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 {
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)
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
}
}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
PageInfo object:{
__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
}
}
}
}
}
}
}
}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
}
}
}
{
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
}
}This is how you can get data after some cursor via API.
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
}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 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 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": "ILARIO_Beige_stopnica_narozna_kapinos_330x330_3D@2x.webp",
"name": "ILARIO_Beige_stopnica_narozna_kapinos_330x330_3D@2x.webp",
"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": "ILARIO_Beige_stopnica_narozna_kapinos_330x330_3D@2x.webp",
"name": "ILARIO_Beige_stopnica_narozna_kapinos_330x330_3D@2x.webp",
"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": "ILARIO_Beige_stopnica_narozna_kapinos_330x330_3D@2x.webp",
"name": "ILARIO_Beige_stopnica_narozna_kapinos_330x330_3D@2x.webp",
"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"
}
}
}Query.sectionOptionAttributeSelectAttribute.optionList addedAttributeValue.valueTranslationsAttribute.labelInterfaces represent a parent for Objects providing definition of common fields.
Queries allow retrieving data from the server.