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.
The list of possible error codes to occur in course of executing API mutations.
79876042-fe47-4035-ba10-ce07706433fd Template with given TemplateCode does not exist.query {
languageList {
edges {
node
}
}
}This is how you can create variable product via API.
Example query on how to get values of custom fields options
Unions represent possible many types.
Here's how you can set child product quantity via API.
This is how you remove child product from grouping one via API.
mutation {
productCreateVariable(
input: {
sku: "SKU_VAR_PRODUCT"
templateCode: "Tshirts"
categoryCodes: "DELL"
}
) {
__typename
}
}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
}
}
}
}mutation {
productGroupingSetChildQuantity(
input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2", quantity: 2 }
) {
__typename
}
}mutation {
productGroupingRemoveChild(input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2" }
) {
__typename
}
}mutation {
productAddAttributeValueTranslationsGallery(
input: {
sku: "1"
attributeCode: "gallery"
translations: [
{ language: "pl_PL", value: ["1.jpg", "2.jpg", "3.jpg"] }
]
}
) {
__typename
}
}query {
productStream (first:10, after:"") {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... on VariableProduct {
sku
bindings {
code
__typename
}
variantList {
edges {
node {
sku
}
}
}
}
}
}
}
}query {
templateList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
code
attributeList {
edges {
node {
scope
code
name {
value
language
}
}
}
}
}
}
}
}Here's how to add variant to variable product via API.
mutation {
productVariableAddVariant(input: { sku: "SKU_VAR_PRODUCT", variantSku: "SKU_test2" }) {
__typename
}
}mutation {
multimediaDelete(input: { path: "multimedia.jpg" }) {
__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 {
categoryCreate(
input:{
code: "category_name"
name: {
language:"pl_PL"
value:"nazwa_kategorii"
}
}
) {
__typename
}
}That's how you add child product to grouping one.
mutation {
productGroupingAddChild(
input: { sku: "SKU_GR_PRODUCT", childSku: "SKU_test2", quantity: 1 }
) {
__typename
}
}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 {
attributeSelectAddOption(
input: {
code: "Model"
option: {
code: "eve_1011"
name: { language: "pl_PL", value: "eve_1011" }
}
}
) {
__typename
}
}query product {
product(sku: "SKU72") {
sku
attributeList {
edges {
node {
attribute {
code
scope
name {
value
language
}
}
}
}
}
}
}query {
categoryTree(code: "<code_of_the_category_tree>") {
code
categoryTreeLeafList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
category {
code
}
parentCategory {
code
}
}
}
}
}
}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 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 create a simple product via API.
This is how you can change the name of single multimedia via API.
This is how you can remove variant product from variable one via API
query multimedia {
multimediaStream {
pageInfo {
hasNextPage
endCursor
}
edges {
__typename
node {
name
path
alt {
value
language
}
extension
mime
size
folder {
name
}
url
}
}
}
}query productRelation {
product(sku: "001") {
sku
createdAt
editedAt
attributeList {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
attribute {
code
}
translations {
... on ProductRelationAttributeValueTranslation {
language
value {
sku
}
}
}
}
}
}
}
}
mutation {
productCreateGrouping(
input: { sku: "SKU_GR_PRODUCT", templateCode: "Tshirts"}
) {
__typename
}
}mutation {
productCreateGrouping(
input: { sku: "SKU_GR_PRODUCT", templateCode: "Tshirts", categoryCodes: "DELL"}
) {
__typename
}
}mutation {
productCreateSimple(
input: { sku: "SKU_test2", templateCode: "Tshirts"}
) {
__typename
}
}mutation {
productCreateSimple(
input: { sku: "SKU_test2", templateCode: "Tshirts", categoryCodes: "DELL" }
) {
__typename
}
}mutation {
multimediaSetName(
input: {
path: "multimedia.jpg"
name: "multimedia_2.jpg"
}
) {
__typename
}
}mutation {
productVariableRemoveVariant(input: { sku: "SKU_VAR_PRODUCT", variantSku: "SKU_test2" }
) {
__typename
}
}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 {
productAddAttributeValueTranslationsFile(input: {
sku:"SKU77"
attributeCode:"file_test"
translations:{
language:"pl_PL"
value:"bike-1.jpg"
}
})
{__typename}
}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
}
}The list of recent and upcoming breaking changes
This will allow you to get list of first 100 product no matter if they're simple or variable.
descriptionThis 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 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
}
}
}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
}
...
}
}
}{
__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
}
}
}
}
}
}
}
}AttributeCreateFileInputAttributeCreateFileInput{
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 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.label