Kontaktdaten updaten nach Änderung in pretix

31 views
Skip to first unread message

Paul Rennecke

unread,
Mar 1, 2023, 8:10:50 AM3/1/23
to 42he API
Hallo zusammen,

ich habe schon länger ein kleines Problem und konnte bisher noch keine Lösung dafür finden, vielleicht gibts aber eine und wenn kann mir hier bestimmt schnell geholfen werden.

Ich habe die API genutzt um eine Schnittstelle zu pretix zu ermöglichen.
Das übergeben alle Kontaktdaten bei einer neuen Bestellung in pretix funktioniert nun auch ohne Probleme. Problematisch ist das Daten ändern in pretix und diese Änderung ebenfalls in centralstation zu übertragen.

Genauso wie bei einer neuen Bestellung in pretix wird bei einer Änderung ein Webhook ausgelöst, dass etwas in Bestellung XY geändert wurde, aber ohne die konkrete Änderung (also vorher nachher zu nennen). Also rufe ich alle Bestelldaten von pretix ab und füge sie ins crm ein.

Ist der Kontakt mit diesem Namen schon vorhanden?:
Nein -> erstelle ihn und füge alle Daten hinzu
Ja -> dann füge alle Daten diesem hinzu, sofern sie noch nicht vorhanden sind

Da ich nicht prüfen kann, was geändert wurde (ich sehe da absolut keine Möglichkeit das bei pretix aufzulesen oder übersehe ich da was?), soll alles neu hinzugefügt werden, das so noch nicht existiert. Denn "alles ersetzen" kommt nicht in Frage, da auch außerhalb der Bestellungen in pretix Daten zu dem Kontakt ins CRM hinzugefügt werden.

Heißt ich prüfe einfach, ist genau diese Emailadresse, Telefonnummer oder Adresse schon exakt so vorhanden, sonst füge sie hinzu.
Bei der Telefonnummer und der Emailadresse funktioniert das auch, aber aus einem mir unerklärlichen Grund für Adressen nicht, obwohl ich da exakt den selben Code nutze.
Das hat zur Folge, dass bei jeder Änderung (egal an was) die Adresse hinzufügt wird und so x-Fach die Adresse im CRM steht.

Beispiel bei der Telefonnummer:
  $tel = array();
  $tel['type'] = 'Tel';
  $tel['name'] = '015785435001';
  if($person['person']['id'] != $crm->searchEntitySubDetail('contact_details',$tel)['person']['id']){
    $tel['atype'] = 'mobile';
    $crm->createEntitySubDetail('people',$person['person']['id'],'contact_details',$tel);
  }

Schon mal im voraus vielen Dank,
Paul Rennecke

Paul Rennecke

unread,
Apr 7, 2023, 10:37:28 AM4/7/23
to 42he API
Push.
Irgendwer ne Idee, kam es beim wem schon mal zu ähnlichen Problemen?

Axel von Leitner

unread,
Apr 13, 2023, 9:22:17 AM4/13/23
to 42he API
Hey Paul, 

ich nehme an es hängt damit zusammen, dass die Adresse bei uns deutlich mehr Felder hat, als das bei Telefon- oder E-Mail-Adresse der Fall ist. Ich sehe in deinem Code sample aber auch nicht genau, was du im Hinblick auf die Adresse machst oder vergleichst bzw. sendest. Insofern ist das für den Moment leider erstmal nur Spekulation. 

Gruß
Axel

Paul Rennecke

unread,
Apr 23, 2023, 3:44:49 PM4/23/23
to 42he API
Hallo,

vielen Dank für die Antwort.
Eigenartig, ohne das ich was geändert habe, scheint es mittlerweile zu funktionieren bzw. ich kann den Fehler nicht mehr reproduzieren.

Von daher hat sich das wohl geklärt :)

Axel von Leitner

unread,
Apr 25, 2023, 12:43:42 AM4/25/23
to 42he API
Hey Paul, 

wir haben in den letzten Wochen 1-2 Fixes an der API gemacht. Ich will nicht ausschließen, dass dich das dann auch "betrifft". Wie auch immer: Sag gern Bescheid, wenn du hier nochmal Probleme hast. 

Viele Grüße
Axel

Reply all
Reply to author
Forward
0 new messages