Produkt-Upload per AP schlägt fehl, ich verstehe die Fehlermeldung nicht

Moin,
ich habe, wie schon oft in der Vergangenheit, ein Testprodukt via API samt seoURLs und Bildern aus Shopware gelöscht, um es danach wieder hochzuladen.
In der Vergangenheit hat das entweder funktioniert, oder die Fehlermeldung hat mir geholfen, das Problem zu lösen.

Jetzt erhalte auf meine Sendung zum erneuten Upload des Produktes die folgende Fehlermeldung, aus der ich nicht schlau werde:

{
„errors“ :
[
{
„code“ : „FRAMEWORK__LANGUAGE_FOREIGN_KEY_DELETE“,
„detail“ : „The language cannot be deleted because foreign key constraints exist.“,
„meta“ :
{
„parameters“ :
},
„status“ : „400“,
„title“ : „Bad Request“
}
]
}

Ich bin dankbar für jeden Tipp, wo der Fehler liegt bzw. wo ich ihn suchen sollte.
Danke, Grüße
Florian

Das Löschen einer Sprache scheint nicht möglich zu sein, weil da wohl Fremdschlüssel-Einschränkungen existieren. Fremdschlüssel sind Beziehungen zwischen Tabellen in einer Datenbank, die sicherstellen, dass die Integrität der Daten erhalten bleibt. Ergo, wenn es Fremdschlüssel gibt, die auf die zu löschende Sprache verweisen, kann die Sprache nicht gelöscht werden, ohne die Integrität der Daten zu gefährden.

Um dieses Problem zu lösen, solltest du also prüfen, welche Daten genau gelöscht werden sollen und ob diese wiederum von anderen Daten abhängig sind. Möglicherweise musst du ja zuerst die abhängigen Datensätze löschen oder aktualisieren, bevor du die Hauptdaten löschen kannst.

Die Sprache findest du bei Kunden, Verkaufskanäle und Bestellungen. Ggf. noch bei weiteren Entities.

Es gibt auch ein Error Log, weiß gerade nicht mehr ob das der var/log war oder sql log, da steht exakt drin welches Entity noch verknüpft ist.

Danke, Murmeltier und Max_Shop!

Ich übermittle keinen Befehl, irgendetwas zu löschen, ich sende per CURL ein JSON mit den Daten eines Produkts, das wieder in den Shop eingestellt werden soll, nachdem ich es zuvor erfolgreich aus dem Shop gelöscht hatte. Offenbar möchte Shopware selbst im Zuge der Artikelneuanlage etwas löschen, jetzt habe ich nur keine Idee, wie ich rauskriegen kann, was das ist…

Wie ist denn der genaue Request?

Hier das JSON, das ich sende:

{
	"active" : true,
	"apiAlias" : "",
	"categories" :
	[
		{
			"id" : "61a87fe1502547ae8105a6e2c45bfdbb"
		}
	],
	"configuratorGroupConfig" : [],
	"customFieldSetSelectionActive" : true,
	"customFieldSets" :
	[
		{
			"id" : "258f2ea1606b4c608a3f71e39ddc2ae4"
		},
		{
			"id" : "b5f94f5c61e54ade8497f94f98647b2a"
		},
		{
			"id" : "aa423a3011b346f9a12713c76b71cf05"
		}
	],
	"customFields" :
	{
		"custom_amazon_asin" : "",
		"custom_amazon_bulletpoint1" : "Value",
		"custom_amazon_bulletpoint2" : "Value",
		"custom_amazon_bulletpoint3" : "Value",
		"custom_amazon_bulletpoint4" : "Value",
		"custom_amazon_bulletpoint5" : "Value",
		"custom_feinkostohnealkohol_commercial_name" : "Produktbezeichnung",
		"custom_feinkostohnealkohol_fm_inhalt" : "1000g",
		"custom_feinkostohnealkohol_ingredients" : "<span style=\"\" >Zutaten</span>",
		"custom_feinkostohnealkohol_lmiv_bio_non_eu" : true,
		"custom_feinkostohnealkohol_nutritional_carbohydrates" : "56 g",
		"custom_feinkostohnealkohol_nutritional_energy" : "2.051 kJ/ 489 kcal",
		"custom_feinkostohnealkohol_nutritional_fat" : "20 g",
		"custom_feinkostohnealkohol_nutritional_protein" : "6,0 g",
		"custom_feinkostohnealkohol_nutritional_salt" : "0,63 g",
		"custom_feinkostohnealkohol_nutritional_saturatedfat" : "14 g",
		"custom_feinkostohnealkohol_nutritional_sugar" : "24 g",
		"custom_feinkostohnealkohol_storageinformation" : "Im Originalgebinde, dunkel,  Raumtemperatur",
		"custom_feinkostohnealkohol_trace_identification_allergens" : "Allergene",
		"custom_feinkostohnealkohol_usagehint" : "",
		"custom_feinkostohnealkohol_verant_lebensmittelunternehmer" : "<span style=\"\" >Lebensmittelunternehmer</span>",
		"custom_product_general_shorttext" : "<p>Lorem ipsum</p>",
		"custom_product_general_sortNr" : 100000
	},
	"customSearchKeywords" : [],
	"description" : "<span style=\"\" >Lorem ipsum</span>",
	"displayParent" : false,
	"ean" : "",
	"height" : 0,
	"isCloseout" : false,
	"keywords" : "\"\"",
	"length" : 0,
	"mainCategories" :
	[
		{
			"categoryId" : "61a87fe1502547ae8105a6e2c45bfdbb",
			"salesChannelId" : "113b870a62554fca9abd5d561d772466"
		},
		{
			"categoryId" : "61a87fe1502547ae8105a6e2c45bfdbb",
			"salesChannelId" : "bc0a920cfbee4e5f91dc66119e378380"
		}
	],
	"manufacturerNumber" : "",
	"markAsTopseller" : false,
	"maxPurchase" : 10000,
	"metaDescription" : "",
	"metaTitle" : "Testbeispiel",
	"minPurchase" : 1,
	"name" : "Beispielartikel",
	"packUnit" : "",
	"packUnitPlural" : "",
	"price" :
	[
		{
			"currencyId" : "b7d2554b0ce847cd82f3ac9bd1c0dfca",
			"gross" : 2.95,
			"linked" : false,
			"net" : 2.48
		}
	],
	"productNumber" : "SW100001",
	"properties" :
	[
		{
			"id" : "11e441997f304174832b38022c93ca8b"
		},
		{
			"id" : "5c2b8de8218b470088eaa7dd7d2b62bb"
		},
		{
			"id" : "13e0198a6fae4da1999246bed1c3cac2"
		},
		{
			"id" : "eb47bc716d86406c87b93f5a572dcccd"
		},
		{
			"id" : "1f140dca95d4421d9d241d35decc1f54"
		},
		{
			"id" : "1653eb1bdbc74667b2c7959bea6da315"
		},
		{
			"id" : "370aa2341ec2451d973f7af76a745ee1"
		},
		{
			"id" : "cefb29ef9a02466ba4ce64db614bef0f"
		}
	],
	"purchaseSteps" : 1,
	"purchaseUnit" : 1,
	"referenceUnit" : 1,
	"releaseDate" : "",
	"restockTime" : 0,
	"shippingFree" : false,
	"slotConfig" : [],
	"stock" : 2000,
	"tags" :
	[
		{
			"id" : "a38a3a76fa434400bbbffe6d59c10d64"
		}
	],
	"taxId" : "0c9ef35eed8f46b39a9a0dd22b1d2707",
	"variantListingConfig" : "",
	"variantRestrictions" : [],
	"variation" : "",
	"visibilities" :
	[
		{
			"salesChannelId" : "113b870a62554fca9abd5d561d772466",
			"visibility" : 30
		},
		{
			"salesChannelId" : "bc0a920cfbee4e5f91dc66119e378380",
			"visibility" : 30
		}
	],
	"weight" : 0.06,
	"width" : 0
}

Gibt es die IDs alle:

  • customFieldSets
  • catepries
  • salesChannel
  • currency
  • properties
  • tags

Mit relativ großer Wahrscheinlichkeit liegt hier irgendwo der Fehler. Den gleichen Fehler hatten wir mal bei einer Migration, als ein Verkaufskanal gelöscht wurde - bzw. nicht mehr vorhanden war.

Leider etwas irreführende Fehlermeldung in diesen Fällen.

Danke für den Tipp!
Ich prüfe das und melde mich dann hier wieder…

Großartig, Danke, das war es. Eine der übermittelten propertyGroupOptions existiert nicht mehr.

1 „Gefällt mir“