Kundengruppen spezifische Preise

Hallo,
wenn ich das richtig gelesen habe, dann kann man nicht mehr Kundengruppenspezifisch generelle Rabatte vergeben oder? :frowning:
Gibt es denn keine Möglichkeit mehr, dass ich zum Beispiel irgendwie definiere: Wenn Kunde xyz eingeloggt, dann zeige alle Preise -5%?

Hallo @premium-dog ,
doch die Möglichkeit gibt es noch. Du musst im Rule Builder eine Regel erstellen mit der Bedingung „Kundengruppe Ist eine von KUNDENGRUPPENNAME“. Danach kannst du in der Produktbearbeitung im Reiter Erweiterte Preise die neue Regel auswählen und den rabattierten Preis hinterlegen.

Wenn du die Preise automatisiert einfügen willst, kann man das über die API machen.

Gruß

Hi, ja das habe ich auch schon gefunden.
Schön wäre aber wie in SW5, wenn Kundengruppe=123, dann immer 5% auf alle Artikel automatisch.

Hi, kannst du mir sagen, wie man per Shopware6-API die Kundengruppen-Preise übergeben kann? In SW5 war das ja sehr einfach, einfach den customerGroupKey und den Preis angeben.:

"prices" : 
						[
							{
								"customerGroupKey" : "ABC",
								"price" : 39.5,
								"pseudoPrice" : 41.18
							},
							{
								"customerGroupKey" : "DEF",
								"price" : 37.89,
								"pseudoPrice" : 41.18
							}
						],

In SW6 gibt es unter „prices“ keine CustomerGroupKeys mehr. Wie kann ich einen Preis einer Kundengruppe zuordnen?

Hallo @Gheiner , sorry für die späte Antwort. Hoffe ich kann dir noch weiterhelfen.
Wie oben beschrieben habe ich zuerst im Rule Builder eine entsprechende Regel angelegt.
Anschließend habe ich mit folgendem Payload die Preise eingefügt:

[
	{
		"key" => "write",
		"action" => "upsert",
		"entity" => "product",
		"payload" => [
			{
				"id" => $product_id,
				"prices" => [
					{
						"productId" => $product_id,
						"ruleId" => $ruleID,
						"price" => [
							{
								"currencyId" => $currencyEUR,
								"gross" => $brutto,
								"linked" => true,
								"net" => $netto
							}
						], "quantityStart" => 1
					}
				]
			}
		]
	}
];

Grüße

1 „Gefällt mir“

@Laudenz Danke für das Beispiel. Genauso mache ich es jetzt auch :wink: Welchen Endpoint sprichst du da an? Ich nutze eigentlich immer den PATCH /api/product endpoint, oder hat der irgendwelche Nachteile?

Hallo @Gheiner ,
ich nutze folgenden Endpoint mit einem POST Request:

api/_action/sync

Hallo,

vielen Dank für diesen thread, er hat mir bei den kundenspezifischen Preisen sehr weitergeholfen.

Ich bin immer noch dabei, unsere Schnittstelle für Shopware 6 zu modifizieren. Das ist angesichts der halbherzigen, teilweise nichtssagenden Doku umständlicher und zeitaufwändiger als gedacht. Die Beispiele im Forum haben mich hier meist weitergebracht als die ganz Doku.

Was soll mir das z.B. sagen?

Dass im Feld „price“ der „Price of the product“ stehen sollte, darauf wäre ich auch noch alleine gekommen. Aber wie dieses price-object aussehen soll, darüber schweigt man sich aus.
Ein kleines Beispiel würde hier schon helfen, aber auch da findet man eher im Forum was Brauchbares als in der Doku. Sehr enttäuschend :frowning:

Weil es vielleicht dem/der ein oder anderen hilft, hier mal mein JSON-Beispiel für kundenspezifische Preise für die sync-API
/api/_action/sync

"write-product-102376": {
		"entity": "product",
		"action": "upsert",
		"payload": [
			{
				"name": "Mein Test-Produkt",
				"productNumber": "125486102376",
				"manufacturerId": "018e3836b5b17e66af881246aa01ce0b",
				"taxId": "018e0a14ad84717d8d930afcd31b496f",
				"ean": "4057779484006",
				"media": [
					{
						"id": "f489fb9fb56a9a3a748c2ee8a556ee7b",
						"media": {
							"id": "08481a8b2796497707609f7344cc9977"
						}
					},
					{
						"id": "cddf154c13594b7b646c1a7170a4836c",
						"media": {
							"id": "8bf868833abcb59c08cebcd12c9194fd"
						}
					}
				],
				"coverId": "f489fb9fb56a9a3a748c2ee8a556ee7b",
				"customFields": {
					"datasheet_url": "https://....../Datenblatt.pdf"
				},
				"price": [
					{
						"currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
						"gross": 24.3,
						"net": 20.4,
						"linked": true
					}
				],
				"prices": [
					{
						"ruleId": "018e51383c887f42894e95421ba6fbee",
						"price": [
							{
								"currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
								"gross": 22.1,
								"net": 18.6,
								"linked": true
							}
						],
						"quantityStart": 1,
						"quantityEnd": 999999
					}
				],
				"stock": 100
			}
		]
	}

Damit konnte ich Produkte importieren. Der Standard-Preis muss wohl nach wie vor im Feld price stehen (hier kam ich ins Schleudern …), nur die zusätzlichen kundenspezfischen Preise müssen in ein extra Feld prices, wobei dann eine ruleid angegeben werden muss.

Zudem habe ich auch ein Zusatzfeld mit im JSON und zwei Bilder. Vielleicht hilft das dem einen oder anderen beim API-Knobeln weiter.

Viele Grüße