PUT members/{id} - Datenmodell

Ich bastel gerade ein Migrationsskript für unsere Mitgliederdaten.

Wie übergebe ich die Daten im o.a. API-Aufruf, wenn ich z.B.

  • ein Mitglied freigeben
  • andere Stammdatenfelder (firstname, lastname, customized fields, …) ändern

möchte?

Die Swagger API-Dok erzählt dazu

{
  "request_data": [
    "string"
  ]
}

Kann mir jemand helfen und verraten, wie ich da die key-value Werte unterbringen kann?

Hey Tilo,
für solche Umsetzungfragen nutze ich gern das GPT „Dolibarr Assistant (Developers)“ in ChatGPT als Unterstützung.

In einem PUT /members/{id}-Aufruf kannst du verschiedene Daten beispielsweise wie folgt aktualisieren.

curl -X PUT "https://your-dolibarr-instance.com/api/index.php/members/5" \
     -H "DOLAPIKEY: your_api_key" \
     -H "Content-Type: application/json" \
     -d '{
          "status": 1, 
          "firstname": "Max",
          "lastname": "Muster",
          "email": "[email protected]",
          "address": "Musterstraße 123",
          "zip": "12345",
          "town": "Musterstadt",
          "array_options": {
              "options_extra_mitgliedsnummer": "ABC123"
          }
     }'

„status“: 1 → Setzt das Mitglied auf aktiv (freigegeben).
„firstname“, „lastname“ → Aktualisiert den Vornamen & Nachnamen.
„array_options“ ist das JSON-Objekt für benutzerdefinierte Felder.
„options_extra_mitgliedsnummer“ ist das Feld, das du in Dolibarr unter extrafields für Mitglieder definiert hast.

Die Werte werden als JSON-Format übergeben. Um herauszufinden, welche Werte du überhaupt neu belegen kannst, stelle probehalber per API einen GET-Request ( GET /members/{id} ) auf eine existierende MemberID.

curl -X GET "https://your-dolibarr-instance.com/api/index.php/members/5" --header 'Accept: application/json' --header "DOLAPIKEY: your_api_key"

Grüße, Marcel

wow super. danke dir.
Komischerweise klappt das Freigeben nur mit

{ "statut": 1 }

Ich kann nun jedenfalls einen Massenimport durchführen.

btw - ChatGPT kennt sich hier tatsächlich erstaunlich gut aus. Ich hatte davor mal DeepSeek probiert - das war aber nicht hilfreich.

Was hat dich eigentlich von der Nutzung der nativen Import-Funktion von Mitglieds-Stammdaten (Tools → Neuer Import → Mitglieder) abgehalten?

Ja, mein initialer Import ging tatsächlich über diesen Weg. Ich hatte aber nicht gesehen, wie ich z.B. den Status ändere. Mit der API habe ich einen feingranularen schreibenden Zugriff. Das ist schon eine feine Sache. Und wenn ich sehe, dass noch Werte fehlen, kann ich das per Update-Skript nachschieben, ohne alles neu zu Importieren.

BTW - Was ich bei Dolibarr vermisse, ist eine Notizen-Historie. Es gibt zwar ein Feld ‚Öffentliche Notizen‘ und ‚Private Notizen‘, aber das ist ehrlich gesagt ein bischen wenig. Eine fertige Lösung habe ich bisher nicht gefunden. Und ein Git-Repository habe ich für das Mitglieder-Modul auch nicht gefunden.