Page tree
Skip to end of metadata
Go to start of metadata
 

Mit der Veröffentlichung von TecArt Version 4.10 wird diese Version des REST Webservice nicht weiterentwickelt, steht aber zu Zwecken der Abwärtskompatibilität weiter zur Verfügung. 

With the release of TecArt version 4.10 this version of REST Webservice will no longer receive further development, yet will stay available for reasons of downward compatibility.

1. Aufruf URL

http://hostname/dirname/rest/index.php/contacts

e.g. https://test.tecart-system.de/rest/index.php/contacts

2. Klasse

crmcontacts

3. Methoden

3.1. Kontakte & Personen

3.1.1. crmaddContact

Syntax:

int crmaddContact ( array( string $session_id, array $crmContactItem) )

Beschreibung:

Gibt eine contact_id bei Erfolg zurück.

crmContactItem ist ein assoziatives Array.

Eigenschaften von crmContactItem:

Type(Length)      Eigenschaft          Beschreibung
-------------------------------------------------------------------
string(128)       $company             Unternehmen
string(255)       $department          Abteilung
string(100)       $street              Addresse
string(20)        $postcode            Postleitzahl
string(100)       $city                Stadt
string(255)       $email               E-Mail 
string(255)       $email2              E-Mail 2
string(255)       $email3              E-Mail 3
int               $email_status        E-Mail Status für Serien- E-Mail Funktion, bezieht sich auf Feld ''email'' ( ab Version 4.5 )
                                             Zustände:
                                               0 => "nicht freigeschaltet"
                                               1 => "freigeschaltet"
                                               2 => "nicht erreichbar"
                                               3 => "freigeschaltet / nicht erreichbar"
                                               4 => "blockiert"
                                               6 => "abgemeldet"
string(50)        $phone               Telefon 
string(50)        $fax                 Fax 
string(100)       $region              Region 
string(255)       $country             Land
string(255)       $acc_holder          Kontoinhaber
string(20)        $acc_nr              Kontonummer
string(20)        $bankcode            Bankleitzahl
string(255)       $bankname            Name der Bank 
string(100)       $swift               BIC/SWIFT  
string(100)       $iban                IBAN 
string(255)       $branch              Branchen, Format: Branch1:Branch2: ... 
string(255)       $category            Kategorien, Format: Category1:Category2: ... 
string(50)        $code                Code für Quicksearch 
string(65535)     $notes               Notizen
string(50)        $number              Nummer
string(255)       $superior            Vorgesetzter, Format: Contact-Id:Person-Id 
string(255)       $type                Typ 
int               $userid              Verantwortlicher
string(50)        $ustnr               Steuernummer
string(255)       $website             Website 
int               $ext_id              Externe ID ( ab Version 4.2 )
string(64)        $password            Passwort // seit Version 3.1.2291
string(255)       $user27              Benutzerdefiniertes Feld Nr. 27
string(255)       $user28              Benutzerdefiniertes Feld Nr. 28
   :                 :                          :
string(255)       $user81              Benutzerdefiniertes Feld Nr. 81

Beispiel :

<?php
 
try {
	$contact = array(
		'company'		=> 'WebService-Company',
		'department'	=> 'Development',
		'street'		=> 'FischereiMarkt 5',
		'postcode'		=> '99084',
		'city'			=> 'Erfurt',
		'region'		=> utf8_encode('Thüringen'),
		'country'		=> 'Deutschland',
		'email'			=> 'info@xatec.de',
		'phone'			=> '+49 361 3801001',
		'fax'			=> '+49 361 3801000',
		'notes'			=> 'This is a WebServiceTest',
		'number'		=> '',
		'website'		=> 'http://www.xatec.de',
		'acc_holder'	=> 'Christian Friebel - Xatec',
		'acc_nr'		=> '1234567890',
		'bankcode'		=> '82070024',
		'bankname'		=> 'Deutsche Bank 24',
		'swift'			=> 'DEUTDEDBERF',
		'iban'			=> 'DE3459084359048594',
		'category'		=> 'Kunde:Lieferant',
		'branch'		=> 'Industrie:IT/Computer',
		'userid'		=> 5,
		'code'			=> '',
		'type'			=> utf8_encode('geschäftlich'),
		'superior'		=> '',
		'ustnr'			=> '',
		'user27'		=> 'Test 27',
		'user28'		=> 'Test 28',
		'user29'		=> 'Test 29',
		'user30'		=> 'Test 30'
	);
 
	include_once 'crm_rest_api.php';
 
	/* @var $contacts crmcontacts */
	$contacts	= new crm_rest_api("http://hostname/dirname/rest/index.php/contacts");
 	$contact_id	= $contacts->crmaddContact(
		array(
			'session_id'		=> $session_id,
			'crmContactItem'	=> $contact
		)
	);

	echo $contact_id."<br>\n";
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.2. crmaddPerson

Syntax:

int crmaddPerson ( array(string $session_id, array $crmPersonItem) )

Beschreibung:

Fügt eine Person zu einem vorhandenen Kontakt hinzu. Liefert eine person_id bei Erfolg.

crmPersonItem ist ein assoziatives Array.

Eigenschaften crmPersonItem Array:

Type(Length)      Eigenschaft          Beschreibung
-------------------------------------------------------------------

int               $cid                 Contact-Id 
int               $ext_id              Externe ID ( ab Version 4.2 )
string(50)        $salutation          Anrede 
string(100)       $firstname           Vorname 
string(100)       $lastname            Nachname 
int               $birthday            Geburtstag ( Unix-Timestamp - kann negativ sein ) 
string(100)       $city                Stadt
string(100)       $country             Land 
string(255)       $email               E-Mail 
string(255)       $email2              E-Mail 2
string(255)       $email3              E-Mail 3
int               $email_status        E-Mail Status für Serien- E-Mail Funktion, bezieht sich auf Feld ''email'' ( ab Version 4.5 )
                                             Zustände:
                                               0 => "nicht freigeschaltet"
                                               1 => "freigeschaltet"
                                               2 => "nicht erreichbar"
                                               3 => "freigeschaltet / nicht erreichbar"
                                               4 => "blockiert"
                                               6 => "abgemeldet"
string(100)       $fax                 Fax-Nummer 
string(100)       $mobile              Mobilnumber
string(65535)     $notes               Notizen
string(50)        $number              Nr. 
string(100)       $phone               Telefon
string(100)       $position            Position z.B. CEO 
string(100)       $postcode            Postleitzahl
string(100)       $region              Region
string(100)       $street              Addresse
string(255)       $type                Typ
 
string(255)       $user18              Benutzerdefiniertes Feld Nr. 18
string(255)       $user19              Benutzerdefiniertes Feld Nr. 19
   :                 :                            :
string(255)       $user65              Benutzerdefiniertes Feld Nr. 65 

Beispiel :

<?php
 
try {
	$person = array(
		'cid'			=> $contact_id,
		'salutation'	=> 'Herr',
		'firstname'		=> 'Christian',
		'lastname'		=> 'Friebel',
		'phone'			=> '+49 361 3801001'
	);
 
	$person_id = $contacts->crmAddPerson(
		array(
			'session_id'	=> $session_id,
			'crmPersonItem' => $person
		)
	);
 
	echo $person_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.3. crmChangeContact

Syntax:

int crmChangeContact ( array( string $session_id, array $crmContactItem) )

Beschreibung:

Liefert die contact_id bei Erfolg.

crmContactItem ist ein assoziatives Array mit contact ID.

Eigenschaften: sind die selben wie für crmaddContact mit zusätzlicher Kontakt ID

Beispiel:

<?php
 
try {
	// Change contact with ID : 12345
	$contact = array(
		'company'	=> 'WebService-Company Changed',
		'id'		=> 12345
	);
 
	$contact_id = $contacts->crmChangeContact(
		array(
			'session_id'		=> $session_id, 
			'crmContactItem'	=> $contact
		)
	);
 
	echo $contact_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.4. crmChangePerson

Syntax:

int crmChangePerson ( array( string $session_id, array $crmPersonItem) )

Beschreibung:

Ändert eine existierende Person anhand ihrer Id.

Liefert eine person_id bei Erfolg.

crmPersonItem ist ein assoziatives Array mit Person ID.

Eigenschaften: sind die selben wie für crmaddPerson mit zusätzlicher Person ID

Beispiel:

<?php
 
try {
	// Change person with ID : 2345
	$person = array(
		'id'		=> 2345,
		'position'	=> 'CEO',
		'phone'		=> '123456'
	);
	$person_id = $contacts->crmChangePerson(
		array(
			'session_id'	=> $session_id,
			'crmPersonItem' => $person
		)
	);
 
	echo $person_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.5. crmcountContacts

Syntax:

int crmcountContacts ( array( string $session_id) )

Beschreibung:

Liefert die Gesamtzahl an Kontakten.

Beispiel:

<?php
 
try {
	echo $contacts->crmcountContacts( array('session_id' => $session_id) );
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.6. crmcountPersons

(Version >= 3.4.5382)

Syntax:

int crmcountPersons ( array( string $session_id) )

Beschreibung:

Liefert die Gesamtzahl an Personen.

Beispiel:

<?php
 
try {
	echo $contacts->crmcountPersons( array('session_id' => $session_id) );
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}

3.1.7. crmdeleteContact

Syntax:

int crmdeleteContact ( array(string $session_id, int $contact_id) )

Beschreibung:

Löscht einen Kontakt. Liefert 1 bei Erfolg.

Beispiel:

<?php
 
try {
	$success = $contacts->crmdeleteContact(
		array(
			'session_id'	=> $session_id,
			'contact_id'	=> 12345
		)
	);
 
	if ($success == 1) {
		echo "Delete contact success.";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}

3.1.8. crmdeletePerson

Syntax:

int crmdeletePerson ( array( string $session_id, int $person_id) )

Beschreibung:

Löscht eine Person. Liefert 1 bei Erfolg.

Beispiel:

<?php
 
try {
	$success = $contacts->crmdeletePerson(
		array(
			'session_id'	=> $session_id,
			'person_id'		=> 2345
		)
	);
 
	if ($success == 1) {
		echo "Delete person success.";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.9. crmgetChangedContacts

Syntax:

array crmgetChangedContacts ( array( string $session_id, int $timestamp) )

Beschreibung:

Gibt ein Array mit contact Objekten zurück, die seit timestamp geändert wurden.

Hinweis: Es werden nur Kontakte zurückgegeben, für die der Authentifizierte Nutzer Leseberechtigungen hat.

Eigenschaften:

sind die selben wie für crmgetSingleContact

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetChangedContacts(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 1176304358
		)
	);
 
	foreach($result as $contact_obj) {
 
		$contact = get_object_vars($contact_obj);
 
		foreach($contact as $key => $val) {
			echo "$key => $val<br>\n";
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.10. crmgetChangedContactsLimit

Syntax:

array crmgetChangedContactsLimit ( array( string $session_id, int $timestamp, int $count, int $offset) )

Beschreibung:

Liefert ein Array mit contact Objekten.

Hinweis: Es werden nur Kontakte zurückgegeben, für die der authentifizierte Nutzer Leseberechtigungen hat.

timestamp ist ein UNIX-Timestamp, ist er größer als 0 werden alle Kontakte zurückgegeben, die seit diesem Zeitpunkt geändert wurden.

count ist die Anzahl der Ergebnisse, die zurückgegeben werden soll, 0 bedeutet kein Limit.

offset ist die Offset-Position von der Ergebnisse zurückgegeben werden, unwirksam wenn count auf 0 gesetzt ist.

Eigenschaften:

sind die selben wie für crmgetSingleContact

Beispiel:

<?php
 
try {
	$param = array(
		'session_id'	=> $session_id,
		'timestamp'		=> 1176304358,
		'count'			=> 20,
		'offset'		=> 10
	);
 
	$result = $contacts->crmgetChangedContactsLimit($param);
 
	foreach($result as $contact_obj) {
 
		$contact = get_object_vars($contact_obj);
 
		foreach($contact as $key => $val) {
			echo "$key => $val<br>\n";
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.11. crmgetChangedPersons

Syntax:

array crmgetChangedPersons ( array( string $session_id, int $timestamp) )

Beschreibung:

Gibt ein Array mit person Objekten zurück, die seit timestamp geändert wurden.

Hinweis: Es werden nur Personen zurückgegeben, für die der authentifizierte Nutzer Leseberechtigungen hat.

Eigenschaften:

sind die selben wie für crmgetSinglePerson

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetChangedPersons(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 1176304358
		)
	);
 
	foreach($result as $person) {
		echo $person->firstname." ".$person->lastname;
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.12. crmgetChangedPersonsLimit

Syntax:

array crmgetChangedPersonsLimit ( array( string $session_id, int $timestamp, int $count, int $offset) )

Beschreibung:

Gibt ein Array mit person Objekten zurück.

Hinweis: Es werden nur Personen zurückgegeben, für die der Authentifizierte Nutzer Leseberechtigungen hat.

timestamp ist ein UNIX-Timestamp, ist er größer als 0 werden alle Kontakte zurückgegeben, die seit diesem Zeitpunkt geändert wurden.

count ist die Anzahl der Ergebnisse, die zurückgegeben werden soll, 0 bedeutet kein Limit.

offset ist die Offset-Position von der Ergebnisse zurückgegeben werden, unwirksam wenn count auf 0 gesetzt ist.

Eigenschaften:

sind die selben wie für crmgetSinglePerson

Beispiel:

<?php
 
try {
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> 1176304358,
		'count'			=> 20,
		'offset'		=> 10
	);
 
	$result = $contacts->crmgetChangedPersonsLimit($params);
 
	foreach($result as $person) {
		echo $person->firstname." ".$person->lastname;
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
 



3.1.13. crmgetContact

Syntax:

array crmgetContact ( array( string $session_id, string $cid, int $pid) )

Beschreibung:

Gibt ein Array mit contact Objekten mit nur einem Element zurück.

cid ist die Contact-Id.

pid ist die Person-Id, wenn auf 0 gesetzt werden keine Personendaten zurückgegeben.

Hinweis: Die Kontakt-ID kann als Integer oder String im Format "contact_id:person_id" geliefert werden.

Eigenschaften des zurückgegebenen Arrays:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------
int               $cid                   Contact-Id 
string(128)       $contact_company       Kontakt Unternehmen
string(255)       $contact_department    Kontakt Abteilung
string(100)       $contact_street        Kontakt Addresse
string(20)        $contact_postcode      Kontakt Postleitzahl 
string(100)       $contact_city          Kontakt Stadt
string(255)       $contact_email         Kontakt E-Mail 
int               $contact_email_status  E-Mail Status für Serien- E-Mail Funktion, bezieht sich auf die Adresse in ''contact_email'' ( ab Version 4.5 )
                                             Zustände:
                                               0 => "nicht freigeschaltet"
                                               1 => "freigeschaltet"
                                               2 => "nicht erreichbar"
                                               3 => "freigeschaltet / nicht erreichbar"
                                               4 => "blockiert"
                                               6 => "abgemeldet"
string(50)        $contact_phone         Kontakt Telefon
string(50)        $contact_fax           Kontakt Fax 
string(100)       $contact_region        Kontakt Region 
string(255)       $contact_country       Kontakt Land
string(255)       $contact_acc_holder    Kontakt Kontoinhaber
string(20)        $contact_acc_nr        Kontakt Kontonummer
string(20)        $contact_bankcode      Kontakt Bankleitzahl
string(255)       $contact_bankname      Kontakt Name der Bank 
string(100)       $contact_swift         Kontakt BIC/SWIFT  
string(100)       $contact_iban          Kontakt IBAN 
string(255)       $contact_branch        Kontakt Branchen, Format: Branch1:Branch2: ... 
string(255)       $contact_category      Kontakt Kategorien, Format: Category1:Category2: ... 
string(50)        $contact_code          Kontakt Code für Schnellsuche 
string(65535)     $contact_notes         Kontakt Notizen
string(50)        $contact_number        Kontakt Nummer
string(255)       $contact_superior      Kontakt Vorgesetzter, Format: Contact-Id:Person-Id 
string(255)       $contact_type          Kontakt Typ
int               $contact_userid        Kontakt Verantwortlicher 
string(50)        $contact_ustnr         Kontakt Steuernummer
string(255)       $contact_website       Kontakt Website
int               $contact_extid         Kontakt Externe ID ( ab Version 4.2 )

int               $contact_chgtime       Unix-Timestamp der letzten Änderung
int               $contact_chguser       Userid der letzten Änderung
int               $contact_createtime    Unix-Timestamp der Erstellung
int               $contact_createuser    Userid der Erstellung
 
int               $pid                   Person-Id 
string(50)        $person_salutation     Person Anrede
string(100)       $person_firstname      Person Vorname
string(100)       $person_lastname       Person Nachname
int               $person_birthday       Person Geburtstag ( Unix-Timestamp - kann negativ sein )
string(100)       $person_city           Person Stadt
string(100)       $person_country        Person Land
string(255)       $person_email          Person E-Mail 
int               $person_email_status   E-Mail Status für Serien- E-Mail Funktion, bezieht sich auf die Adresse in ''person_email'' ( ab Version 4.5 )
                                             Zustände:
                                               0 => "nicht freigeschaltet"
                                               1 => "freigeschaltet"
                                               2 => "nicht erreichbar"
                                               3 => "freigeschaltet / nicht erreichbar"
                                               4 => "blockiert"
                                               6 => "abgemeldet"
string(100)       $person_fax            Person Fax-Nummer 
string(100)       $person_mobile         Person Mobilnumber
string(65535)     $person_notes          Person Notizen
string(50)        $person_number         Person Nr. 
string(100)       $person_phone          Person Telefon
string(100)       $person_position       Person Position z.B. CEO 
string(100)       $person_postcode       Person Postleitzahl
string(100)       $person_region         Person Region
string(100)       $person_street         Person Addresse 
string(255)       $person_type           Person Typ
int               $person_extid          Person Externe ID ( ab Version 4.2 )
 
int               $person_chgtime        Unix-Timestamp der letzten Änderung
int               $person_chguser        Userid der letzten Änderung
int               $person_createtime     Unix-Timestamp der Erstellung
int               $person_createuser     Userid der Erstellung

Beispiel:

<?php
 
try {
	$contact = $contacts->crmgetContact(
		array(
			'session_id'	=> $session_id,
			'contact_id'	=> '4742',
			'person_id'		=> '4742'
		)
	);
 
	echo $contact->contact_company." ".$contact->person_lastname;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.14. crmgetContactFields

Syntax:

array crmgetContactFields( array( string $session_id) )

Beschreibung:

Gibt ein Array mit alle Feldern von Kontakten zurück.

Eigenschaften der zurückgegebenen contact fields Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string                  $label                    Anzeige-Name des Feldes
string                  $field                    Name des Feldes
int                     $type                     Datentyp 
                                                  1,5,6,8,9,10,11,12,13,14 : String
                                                  2,3,4,7 : Integer
                                                  15: Text

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetContactFields( array('session_id' => $session_id) );
 
	foreach($result as $field) {
		echo $field->lable." => ". $field->field."<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.15. crmgetContactIds

Syntax:

array crmgetContactIds ( array( string $session_id, int $timestamp) )

Beschreibung:

Gibt ein Array mit contact-IDs zurück, die seit timestamp geändert wurden.

Hinweis: Es werden nur Kontakte zurückgegeben, für die der Authentifizierte Nutzer Leseberechtigungen hat.

Eigenschaften:

Type(Length)      Eigenschaft          Beschreibung
-------------------------------------------------------------------
int               $id                  Contact-Id 

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetContactIds(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 0
		)
	);
 
	foreach($result as $id) {
		echo $id."<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.16. crmgetContactPermission

Syntax:

array crmgetContactPermission ( array(string $session_id, int $contact_id) )

Beschreibung:

Gibt ein Array mit dem Contact-Permission zurück.

Eigenschaften von zurückgegebenen Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
array             $users                          Array mit User-Permission
array             $groups                         Array mit Group-Permission

Eigenschaften von User-Permission:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $id                          Userid
int               $read                        1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $write                       1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $delete                      1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert

Eigenschaften von Group-Permission:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $id                          Groupid
int               $read                        1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $write                       1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $delete                      1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert 

Beispiel:

<?php
 
try {
	$permission = $client_contacts->crmgetContactPermission(
		array(
			'session_id'	=> $session_id,
			'contact_id'	=> 4742
		)
	);
 
	echo "Users:<br>";
 
	foreach($permission->users as $id => $userperm) {
		echo "Userid: $id<br>";
		echo "Read:   {$userperm->read}<br>";
		echo "Write:  {$userperm->write}<br>";
		echo "Delete: {$userperm->delete}<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.17. crmsetContactPermission

Syntax:

boolean crmsetContactPermission ( string $session_id, array $permission )

Beschreibung:

Setzt die Berechtigungen eines einzelnen Kontakts. Gib true beim Erfolg zurück.

Eigenschaften von permission Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $cid                         Contact Id
array             $users                       Array mit users Elemente
array             $groups                      Array mit groups Elemente

Eigenschaften von users and groups Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $key                            User ID | oder Group ID
array             $value                          Array mit Permission

Eigenschaften von permission Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $read                        1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $write                       1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $delete                      1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert 

Beispiel:

<?php
 
try {
	$permission = array(
		'cid'		=> 4243,
		'users'		=> array(
			'55' => array('read' => -1, 'write' => -1, 'delete' => -1)
		),
		'groups' => array(
			'35' => array('read' => -1, 'write' => -1, 'delete' => -1)
		)
	);
 
	$success = $contacts->crmsetContactPermission(
		array(
			'session_id'	=> $session_id,
			'permission'	=> $permission
		)
	);
 
	if($success) {
		echo 'Set permission success!';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.18. crmgetContactUserFields

Syntax:

array crmgetContactUserFields( array( string $session_id, int $cid) )

Beschreibung:

Gibt ein Array mit benutzerdefinierten Feldern von dem mit cid angegebenen Kontakt zurück.

Eigenschaften der zurückgegebenen contact userfields Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $name                     Name des benutzerdefinierten Vertrags-Feldes
string(255)             $value                    Wert des benutzerdefinierten Vertrags-Feldes

Beispiel:

<?php
 
try {
	// Get userdefined fields of contact with ID 100
	$result = $contacts->crmgetContactUserFields(
		array(
			'session_id'	=> $session_id,
			'cid'			=> 100
		)
	);
 
	foreach($result as $field) {
		echo $field->name." => ".utf8_decode($field->value)."<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.19. crmgetPersonFields

Syntax:

array crmgetPersonFields( array( string $session_id) )

Beschreibung:

Gibt ein Array mit alle Feldern von Person zurück.

Eigenschaften der zurückgegebenen person fields Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string                  $label                    Anzeige-Name des Feldes
string                  $field                    Name des Feldes
int                     $type                     Datentyp 
                                                  1,5,6,8,9,10,11,12,13,14 : String
                                                  2,3,4,7 : Integer
                                                  15: Text

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetPersonFields( array('session_id' => $session_id) );
 
	foreach($result as $field) {
		echo $field->lable." => ". $field->field."<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.20. crmgetPersonIds

Syntax:

array crmgetPersonIds ( array( string $session_id, int $timestamp) )

Beschreibung:

Liefert ein Array mit person-IDs die seit timestamp geändert wurden.

Hinweis: Es werden nur Personen zurückgegeben, für die der Authentifizierte Nutzer Leseberechtigungen hat.

Eigenschaften:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------
int               $id                  Person-Id 

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetPersonIds(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 1176304358
		)
	);
 
	foreach($result as $id) {
		echo $id."<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.21. crmgetPersonsByContactIDs

Syntax:

array crmgetPersonsByContactIDs ( array( string $session_id, array $cids) )

Beschreibung:

Liefert ein Array mit person Objekten, die zu dem Kontakt mit den eingegebenen IDs gehören.

Eigenschaften des zurückgegebenen Arrays:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------
int               $key                    Person-Id 
array             $value                  array Personen, die zu dem Kontakt gehören.

Eigenschaften des Personen Arrays:

sind die selben wie für crmgetSinglePerson

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetPersonsByContactIDs(
		array(
			'session_id'	=> $session_id,
			'cids'			=> array(4273)
		)
	);
 
	foreach($result as $cid=>$persons) {
 
		echo "Contact ID: $cid <br>";
 
		foreach($persons as $person) {
			echo "First name : $person->firstname <br>";
			echo "Last name : $person->lastname <br>";
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.22. crmgetPersonUserFields

Syntax:

array crmgetPersonUserFields( array( string $session_id, int $pid) )

Beschreibung:

Gibt ein Array mit benutzerdefinierten Feldern von der mit pid angegebenen Person zurück.

Eigenschaften der zurückgegebenen person userfields Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $name                     Name des benutzerdefinierten Vertrags-Feldes
string(255)             $value                    Wert des benutzerdefinierten Vertrags-Feldes

Beispiel:

<?php
 
try {
	// Get userdefined fields of person with ID 100
	$result = $contacts->crmgetPersonUserFields(
		array(
			'session_id'	=> $session_id,
			'pid'			=> 100
		)
	);
 
	foreach($result as $field) {
		echo $field->name." => ".utf8_decode($field->value)."<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.23. crmgetPicture

Syntax:

array crmgetPicture ( array( string $session_id, int $cid) )

Beschreibung:

Gib den binären Inhalt des Bildes eines Kontaktes zurück.

cid ist die Kontakt-ID.

Eigenschaften von zurückgegebenen Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
string            $big_picture                    String mit binärem Inhalt des Bildes (base64 kodiert)
string            $small_picture                  String mit binärem Inhalt des Bildes (base64 kodiert)

Beispiel:

<?php
 
try {
	$picture_data   = $contacts->crmgetPicture(array('session_id' => $session_id, 'cid' => 1000));
 
	$small_pic_data = base64_decode($picture_data->small_picture);
	$big_pic_data   = base64_decode($picture_data->big_picture);
 
	if (file_put_contents("../fotos/small_picture.jpg", $small_pic_data)) {
		echo 'Small picture created successfully';
	}
	else {
		echo 'Error by creating small picture';
	}
 
	if (file_put_contents("../fotos/big_picture.jpg", $big_pic_data)) {
		echo 'Big picture created successfully';
	}
	else {
		echo 'Error by creating big picture';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.24. crmsetPicture

Syntax:

int crmsetPicture ( array( string $session_id, int $cid, string $picture_data) )

Beschreibung:

Läd ein Bild hoch und weist es einem Kontakt zu. Gib 1 beim Erfolg zurück.

cid ist die Kontakt-ID.

picture_data ist der binäre Inhalt des Bildes (base64-kodiert).

Beispiel:

<?php
 
try {
	$file			= "../fotos/bild.jpg";
	$foto_content	= base64_encode(file_get_contents($file));
 
	$params = array(
		'session_id'	=> $session_id,
		'cid'			=> 1000,
		'pic_data'		=> $foto_content
	);
	$success  = $contacts->crmsetPicture($params);
 
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.25. crmgetPersonPicture

(Version >= 3.4.5382)

Syntax:

array crmgetPersonPicture ( array( string $session_id, int $pid) )

Beschreibung:

Gib den binären Inhalt des Bildes einer Person zurück.

pid ist die Person-ID.

Eigenschaften von zurück gegebenen Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
string            $big_picture                    String mit binärem Inhalt des Bildes (base64 kodiert)
string            $small_picture                  String mit binärem Inhalt des Bildes (base64 kodiert)

Beispiel:

<?php
 
try {
	$picture_data	= $contacts->crmgetPersonPicture(array('session_id' => $session_id, 'pid' => 1000));
	$small_pic_data = base64_decode($picture_data->small_picture);
	$big_pic_data	= base64_decode($picture_data->big_picture);
 
	if (file_put_contents("../fotos/small_picture.jpg", $small_pic_data)) {
		echo 'Small picture created successfully';
	}
	else {
		echo 'Error by creating small picture';
	}
 
	if (file_put_contents("../fotos/big_picture.jpg", $big_pic_data)) {
		echo 'Big picture created successfully';
	}
	else {
		echo 'Error by creating big picture';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.26. crmsetPersonPicture

(Version >= 3.4.5382)

Syntax:

int crmsetPersonPicture ( array( string $session_id, int $pid, string $picture_data) )

Beschreibung:

Läd ein Bild hoch und weist es einer Person zu. Gib 1 beim Erfolg zurück.

pid ist die Person-ID.

picture_data ist der binäre Inhalt des Bildes (base64-kodiert).

Beispiel:

<?php
 
try {
	$file			= "../fotos/bild.jpg";
	$foto_content	= base64_encode(file_get_contents($file));
 
	$params = array(
		'session_id'	=> $session_id,
		'pid'			=> 1000,
		'pic_data'		=> $foto_content
	);
	$success = $contacts->crmsetPersonPicture($params);
 
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.27. crmgetSingleContact

Syntax:

array crmgetSingleContact ( array( string $session_id, int $contact_id) )

Beschreibung:

Gibt ein Array mit Kontakt Objekten mit nur einem Element zurück.

contact_id ist die Contact-Id.

Eigenschaften:

Type(Length)      Eigenschaft          Beschreibung
-------------------------------------------------------------------
int               $cid                   Contact-Id 
int               $ext_id                Externe ID ( ab Version 4.2 )
string(128)       $company               Unternehmen
string(255)       $department            Abteilung
string(100)       $street                Addresse
string(20)        $postcode              Postleitzahl 
string(100)       $city                  Stadt
string(255)       $email                 E-Mail 
string(255)       $email2                E-Mail 2
string(255)       $email3                E-Mail 3
int               $email_status          E-Mail Status für Serien- E-Mail Funktion, bezieht sich auf Feld ''email'' ( ab Version 4.5 )
                                             Zustände:
                                               0 => "nicht freigeschaltet"
                                               1 => "freigeschaltet"
                                               2 => "nicht erreichbar"
                                               3 => "freigeschaltet / nicht erreichbar"
                                               4 => "blockiert"
                                               6 => "abgemeldet"
string(50)        $phone               Telefon 
string(50)        $fax                 Fax 
string(100)       $region              Region 
string(255)       $country             Land
string(255)       $acc_holder          Kontoinhaber
string(20)        $acc_nr              Kontonummer
string(20)        $bankcode            Bankleitzahl
string(255)       $bankname            Name der Bank 
string(100)       $swift               BIC/SWIFT  
string(100)       $iban                IBAN 
string(255)       $branch              Branchen, Format: Branch1:Branch2: ... 
string(255)       $category            Kategorien, Format: Category1:Category2: ... 
string(50)        $code                Code für Schnellsuche 
string(65535)     $notes               Notizen
string(50)        $number              Nummer
string(255)       $superior            Vorgesetzter, Format: Contact-Id:Person-Id 
string(255)       $type                Typ
int               $userid              Verantwortlicher
string(50)        $ustnr               Steuernummer
string(255)       $website             WebSite 

int               $chgtime             Unix-Timestamp der letzten Änderung
int               $chguser             Userid der letzten Änderung
int               $createtime          Unix-Timestamp der Erstellung
int               $createuser          Userid der Erstellung

string(255)       $user27              Benutzerdefiniertes Feld Nr. 27
string(255)       $user28              Benutzerdefiniertes Feld Nr. 28
   :                 :                          :
string(255)       $user81              Benutzerdefiniertes Feld Nr. 81

Beispiel:

<?php
 
try {
   $contact = $contacts->crmgetSingleContact(array('session_id' => $session_id, 'contact_id' => 1276));
 
	foreach($contact as $key => $val) {
		echo "$key => $val<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.28. crmgetSinglePerson

Syntax:

array crmgetSinglePerson ( array( string $session_id, int $person_id) )

Beschreibung:

Liefert ein Array mit person Objekten mit nur einem Element.

person_id = Person-Id.

Eigenschaften:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------

int               $pid                 Person-Id 
int               $cid                 Contact-Id 
int               $ext_id              Externe ID ( ab Version 4.2 )

string(50)        $salutation          Anrede
string(100)       $firstname           Vorname 
string(100)       $lastname            Nachname 
int               $birthday            Geburtstag ( Unix-Timestamp - Kann negativ sein ) 
string(100)       $city                Stadt
string(100)       $country             Land 
string(255)       $email               E-Mail 
string(255)       $email2              E-Mail 2
string(255)       $email3              E-Mail 3
int               $email_status        E-Mail Status für Serien- E-Mail Funktion, bezieht sich auf Feld ''email'' ( ab Version 4.5 )
                                             Zustände:
                                               0 => "nicht freigeschaltet"
                                               1 => "freigeschaltet"
                                               2 => "nicht erreichbar"
                                               3 => "freigeschaltet / nicht erreichbar"
                                               4 => "blockiert"
                                               6 => "abgemeldet"
string(100)       $fax                 Fax-Nummer 
string(100)       $mobile              Mobilnumber
string(65535)     $notes               Notizen
string(50)        $number              Nr. 
string(100)       $phone               Telefon
string(100)       $position            Position z.B. CEO 
string(100)       $postcode            Postleitzahl
string(100)       $region              Region
string(100)       $street              Addresse
string(255)       $type                Typ
 
int               $chgtime             Unix-Timestamp der letzten Änderung
int               $chguser             Userid der letzten Änderung
int               $createtime          Unix-Timestamp der Erstellung
int               $createuser          Userid der Erstellung

string(255)       $user18              Benutzerdefiniertes Feld Nr. 18
string(255)       $user19              Benutzerdefiniertes Feld Nr. 19
   :                 :                            :
string(255)       $user65              Benutzerdefiniertes Feld Nr. 65 

Beispiel:

<?php
 
try {
	$person = $contacts->crmgetSinglePerson(
		array(
			'session_id'	=> $session_id,
			'person_id'		=> 1276
		)
	);
 
	foreach($person as $key => $val) {
		echo "$key => $val<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.29. crmsearchContact

Syntax:

array crmsearchContact ( array( string $session_id, array $search_term, int $count, int offset, boolean $full_search, string $sort_name) )

Beschreibung:

Liefert ein Array mit Kontakt Objekten.

$search_term ist ein Array mit Suchparametern.

count ist die maximale Anzahl an Ergebnissen, die zurückgegeben werden soll.

offset ist die Offset-Position der Ergebnisse, die zurückgegeben werden sollen.

full_search: wenn full_search auf false gesetzt wird, wird nur die Kontakt-ID zurückgeliefert.

sort_name: Wie die zurückgegebenen Daten nach den Firmenname sortiert werden soll (ASC : von A bis Z, DESC : von Z bis A).

Nur mit Version >= 3.4.5360 geht es mit folgenden Parameters

$or ist der SQL-Operator. Ist or auf true gesetzt, werden die Suchbegriffe mit OR verknüpft.

$get_fields is ein Array mit Felder, die zurückgegeben werden sollen. Wenn dieses Parameter nicht gesetzt ist, werden alle Felder wie für crmgetSingleContact zurück geliefert.

Eigenschaften von $search_term Array:

Type(Length)      Eigenschaft                             Beschreibung
------------------------------------------------------------------------------------------- 
string(255)       $field                                  Feldname
string(255)       $value                                  Suchwert

Eigenschaften des zurückgegebenen Arrays, wenn false auf false gesetzt ist.:

Type(Length)  Eigenschaft     Beschreibung
-------------------------------------------------------------------
string(128)   $cid            Contact-Id

Eigenschaften des zurückgegebenen Arrays, wenn false auf true gesetzt ist.:

sind die selben wie für crmgetSingleContact

Beispiel 1: full_search auf true gesetzt.

<?php
 
try {
	$search_term = array(
		'company'	=> '%TecArt%',
		'city'		=> 'Erf%'
	);
   
	$params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search_term,
		'full_search'	=> true,
		'offset'		=> 0,
		'count'			=> 20,
		'sort_name'		=> 'ASC'
	);
 
	$result = $contacts->crmsearchContact($params);
 
	foreach ($result as $contact) {
		echo $contact->company;
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}


Beispiel 2: full_search auf false gesetzt.

<?php
 
try {
	$search_term = array(
		'company'	=> '%TecArt%',
		'city'		=> 'Erf%'
	);
   
	$params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search_term,
		'full_search'	=> false,
		'offset'		=> 0,
		'count'			=> 20,
		'sort_name'		=> 'ASC'
	);
 
	$result = $contacts->crmsearchContact($params);
 
	foreach ($result as $id) {
		echo $id;
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}


Beispiel 3: Komplexe Suche

<?php
 
try {
	// Example 1: Get the first 10 contacts with company name like "tecart" OR like "crm" OR like "groupware"
    $search = array( 'company'  => array('tecart', 'crm', 'groupware') );
 
    // Example 2: Get the first 10 contacts with company name like "tecart" OR like "crm" AND city like "erfurt"
    $search = array( 'company'  => array('tecart', 'crm'), 'city' => 'erfurt');
 
    $params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search,
		'full_search'	=> true,
		'offset'		=> 0,
		'count'			=> 10,
		'sort_name'		=> 'ASC'
	);
 
    $result = $contacts->crmsearchContact($params);
 
    // Example 3: Get the first 10 contacts with company name like "tecart" OR city like "erfurt"
    $search = array( 'company' => 'tecart', 'city' => 'erfurt' );
 
    $params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search,
		'full_search'	=> true,
		'offset'		=> 0,
		'count'			=> 10,
		'sort_name'		=> 'ASC',
		'or'			=> true
	);
 
    $result = $contacts->crmsearchContact($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($contacts as $contact) {
    echo "Name: $contact->company <br/>\n";
    echo "Ort: $contact->city <br/>\n";
}


Beispiel 4: Hole nur bestimmte Felder

<?php
 
try {
	$crmapi_contacts = crmapi::contacts();
 
    // Get the first 10 contacts with name LIKE 'TecArt'
    $search = array( 'company'  => 'TecArt');
 
    // Only company name and city are needed.
    $get_fields = array( 'company', 'city' );
 
    $contacts  = $crmapi_contacts->searchContact($search, 10, 0, true, 'ASC', false, $get_fields);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach($contacts as $contact) {
    echo "Name: $contact['company'] <br/>\n";
    echo "Ort: $contact['city'] <br/>\n";
}



3.1.30. crmsearchContacts

Syntax:

array crmsearchContacts ( array( string $session_id, string $search_term, string $branch, string $category, int $count) )

Beschreibung:

Liefert ein Array mit contact Objekten.

search ist ein freier Suchtext.

branch ist die Branche des Kontakts, unwirksam, wenn auf -1 gesetzt.

category ist die Kategorie des Kontakts, unwirksam, wenn auf -1 gesetzt.

count ist die maximale Anzahl an Ergebnissen die zurückgegeben werden soll.

Eigenschaften:

Type(Length)  Eigenschaft     Beschreibung
-------------------------------------------------------------------
string(128)   $cid            Contact-Id, Format: Contact-Id:Person-Id 
string(128)   $company        Unternehmen 
string(100)   $firstname      Vorname 
string(100)   $lastname       Nachname 

Beispiel:

<?php
 
try {
	$params = array(
		'session_id'	=> $session_id,
		'search_term'	=> 'tecart',
		'branch'		=> -1,
		'category'		=> -1,
		'count'			=> 10
	);
	$result = $contacts->crmsearchContacts($params);
 
	foreach($result as $cid => $contact) {
		echo "{$cid}, {$contact->lastname}, {$contact->firstname}, {$contact->company}<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.31. crmsearchPersons

(Version >= 3.4.5360)

Syntax:

array crmsearchPersons( string $session_id, array $items, int $count, int $offset, string $sort_name, boolean $or, array $get_fields )

Beschreibung:

Gibt ein Array mit Personinformation zurück.

$items ist ein assoziatives Array, bei dem der key das Feld zum Suchen und der value der Suchstring ist. Sie können ein %-Zeichen am Anfang und/oder Ende der Zeichenfolge als Platzhalter verwenden.

$count ist die maximale Anzahl an Ids, die zurückgegeben wird.

$offset ist die Offset Position der Ergebnisse, die zurückgegeben werden sollen.

$sort_name ist die Sortierung, wie die Nachname sortiert werden sollen.

$or ist der SQL-Operator. Ist or auf true gesetzt, werden die Suchbegriffe mit OR verknüpft.

$get_fields is ein Array mit Felder, die zurückgegeben werden sollen. Wenn dieses Parameter nicht gesetzt ist, werden alle Felder wie unten geschrieben zurück geliefert.

Eigenschaften des zurückgegebenen Array: die gleichen wie für crmgetSinglePerson mit dem zusätzlichen Variable company

Type(Length) Eigenschaft Beschreibung


array $company Information der Firma

Eigenschaften des $company Array:

die gleichen wie für crmgetSingleContact

Beispiel:

<?php
 
try {
	// Get the first 10 Persons with firstname like 'John' AND lastname like 'Smith'
    $search = array(
		'firstname'	=> 'John',
		'lastname'	=> 'Smith'
	);
 
    $params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search,
		'count'			=> 10,
		'offset'		=> 0,
		'sort_name'		=> 'ASC'
	);
 
    $persons = $contacts->crmsearchPersons($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach($persons as $person) {
    echo 'Name: '. $person->firstname . ' ' . $person->lastname ."<br>";
    echo '<br>';
}


Beispiel 2: Komplexe Suche

<?php
 
try {
    $crmapi_contacts = crmapi::contacts();
 
    // Get the first 10 Persons with firstname like 'John' OR like 'Peter' OR like 'David'
    $search = array( 'firstname' => array('John', 'Peter', 'David') );
    // Get the first 10 Persons with firstname like 'John' AND lastname like 'Smith'
    $search = array( 'firstname' => 'John', 'lastname' => 'Smith');
 
    $params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search,
		'count'			=> 10,
		'offset'		=> 0,
		'sort_name'		=> 'ASC'
	);
 
    $persons = $contacts->crmsearchPersons($params);
 
    // Get the first 10 Persons with firstname like 'John OR lastname like 'Smith'
    $search = array( 'firstname' => 'John', 'lastname' => 'Smith');
 
    $params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search,
		'count'			=> 10,
		'offset'		=> 0, 
		'sort_name'		=> 'ASC',
		'or' => true
	);
 
    $persons = $contacts->crmsearchPersons($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach($persons as $person) {
    echo 'Name: '. $person->firstname . ' ' . $person->lastname ."<br>";
    echo '<br>';
}


Beispiel 3: Nur bestimmte Felder holen

<?php
 
try {
    $crmapi_contacts = crmapi::contacts();
 
    // Get the first 10 Persons with firstname like 'John' 
    $search = array( 'firstname' => 'John' );
 
    // Need only fields 'firstname' and 'lastname'.
    $get_fields = array( 'firstname', 'lastname' );
 
    $params = array(
		'session_id'	=> $session_id,
		'search_term'	=> $search,
		'count'			=> 10,
		'offset'		=> 0,
		'sort_name'		=> 'ASC',
		'get_fields'	=> $get_fields
	);
 
    $persons = $contacts->crmsearchPersons($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach($persons as $person) {
    echo 'Name: '. $person->firstname . ' ' . $person->lastname ."<br>";
    echo '<br>';
}



3.1.32. crmgetContactsArray

(Version >= 3.4.5005)

Syntax:

array crmgetContactsArray( array('session_id' => $session_id, 'cidpids' => $cidpids) )

Beschreibung:

Gibt ein Array mit Information von Kontakten und Personen zurück.

Element des $cidpids Arrays hat der Format 'cid:pid' oder nur 'cid'.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Eignenschaften von zurückgegebenen array: die gleichen wie für crmgetContact

Beispiel:

<?php
 
try {
    // Get contact with ID = 7, person with ID = 8 AND contact with ID = 9
    $cidpids = array('7:8', '9');
    $results = $contacts->crmgetContactsArray( array('cidpids' => $cidpids) );
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach( $results as $val) {
    echo $val['contact_company'] ."<br/>";
 
    if (isset($val['person_firstname'])) { 
        echo  ". $val['person_firstname'] ."<br/>";
	}
}



3.1.33. crmgetContactIdByExtId

(Version >= 4.2)

Syntax:

array crmgetContactIdByExtId( array( string $session_id, int $ext_id ) )

Beschreibung

Liefert interne ID(s) von Kontakten mit der übergebenen externen ID zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetContactIdByExtId(array(
		'session_id'	=> $session_id,
		'ext_id'		=> 12345
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.1.34. crmgetAllContactExtIds

(Version >= 4.2)

Syntax:

array crmgetAllContactExtIds( array ( string $session_id ) )

Beschreibung

Liefert eine Liste aller externen IDs in Kontakten zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try { 
	$result = $contacts->crmgetAllContactExtIds(array('session_id' => $session_id));
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.1.35. crmgetPersonIdByExtId

(Version >= 4.2)

Syntax:

array crmgetPersonIdByExtId( array( string $session_id, int $ext_id ) )

Beschreibung

Liefert interne ID(s) von Personen mit der übergebenen externen ID zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetPersonIdByExtId(
		array(
			'session_id'	=> $session_id,
			'ext_id'		=> 12345
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.1.36. crmgetAllPersonExtIds

(Version >= 4.2)

Syntax:

array crmgetAllPersonExtIds( array ( string $session_id ) )

Beschreibung

Liefert eine Liste aller externen IDs in Personen zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try { 
	$result = $contacts->crmgetAllPersonExtIds(array('session_id' => $session_id));
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}

3.1.37. crmaddRelation

(Version >= 4.2)

Syntax:

int crmaddRelation( array(string $session_id, int $contact_id , int $type , int $oid) )

Beschreibung

Verknüpft ein Objekt eines bestimmten Typs mit einem Kontakt.

Gibt die ID der angelegten Verknüpfung zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

$contact_id ist interne ID des Kontaktes, für den die Verknüpfung erstellt werden soll.

$type ist der Typ der Verknüfung, die erstellt werden soll. Für den Typ stehen folgende Werte zur Verfügung:

1 ⇒ Kontakte

3 ⇒ Projekte

4 ⇒ Verträge

5 ⇒ Angebote

6 ⇒ Tickets

12 ⇒ Artikel

20 ⇒ Aufträge

$oid ist interne ID des Objektes vom Typ $type, das mit dem Kontakt verknüpft werden soll.

Beispiel: Verknüpft den Vertrag mit der ID 20 mit dem Kontakt mit der ID 99

<?php
 
try {
  $result = $contacts->crmaddRelation( array('session_id' => $session_id, 'contact_id' => 99, 'type' => 4, 'oid' => 20) );
}
catch (CRMException $e) {
  echo $e->getMessage();
}
 
echo $result;



3.1.38. crmdeleteRelation

(Version >= 4.2)

Syntax:

void crmdeleteRelation( array(string $session_id, int $relation_id) )

Beschreibung

Löscht eine Verknüpfung.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $contacts->crmdeleteRelation(
		array(
			'session_id'	=> $session_id,
			'relation_id'	=> 1234
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}



3.1.39. crmgetRelations

(Version >= 4.2)

Syntax:

array crmgetRelations( array(string $session_id, int $contact_id , int $type) )

Beschreibung

Liefert eine Liste aller mit dem Kontakt verknüpften Objekte eines bestimmten Typs.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

$contact_id ist interne ID des Kontaktes, für den die Verknüpfungen ermittelt werden sollen.

$type ist der Typ der Verknüfungen, die ermittelt werden sollten. Für den Typ stehen folgende Werte zur Verfügung:

1 ⇒ Kontakte

3 ⇒ Projekte

4 ⇒ Verträge

5 ⇒ Angebote

6 ⇒ Tickets

12 ⇒ Artikel

20 ⇒ Aufträge

Beispiel: Liefert alle mit dem Kontakt mit der ID 99 verknüpften Verträge

<?php
 
try {
	$result = $contacts->crmgetRelations(
		array(
			'session_id'	=> $session_id,
			'contact_id'	=> 99,
			'type'			=> 4
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
print_r($result);



3.1.40. crmsetDuplicateConfig

(Version >= 4.4)

Syntax:

boolean | string <err_msg> crmsetDuplicateConfig( array( 'session_id' => string <session_id>, 'fields' => array( string <fieldname>, [string <fieldname>...])) )

(Version >= 4.5.17704)

Syntax:

boolean | string <err_msg> crmsetDuplicateConfig( array( 'session_id' => string <session_id>, 'fields' => array( string <fieldname>, [string <fieldname>...])[, string <context "contact">]) )

Beschreibung:

Ermöglicht eine temporäre Überschreibung der Dublettenprüfungsfelder für die Laufzeit der angemeldeten Session.

Parameter fields ist ein Array mit den Feldnamen, die anstatt der aktuell für das Modul festgelegten Felder zur Dublettenprüfung herangezogen werden sollen.

Ab Version 4.5.17704 kann mit optionalem Parameter context zwischen der Feldkonfiguration von Kontakten ("contact" default) und Personen ("person") unterschieden werden.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/contacts';
	$session_id  = session_id();
	$contacts    = new crm_rest_api($rest_url);
 
	$params  = array(
		'session_id' => $session_id,
		'fields'     => array('realnumber', 'email'),
		'context'    => 'contact' // 'contact' is default and put here only for tutoring purposes
	);
	$success = $contacts->crmsetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo ($success ? 'override successful' : $success);



3.1.41. crmgetDuplicateConfig

(Version >= 4.4)

Syntax:

array | string <err_msg> crmgetDuplicateConfig( array( 'session_id' => string <session_id> ) )

(Version >= 4.5.17704)

Syntax:

array | string <err_msg> crmgetDuplicateConfig( array( 'session_id' => string <session_id> [, string <context "contact">]) )

Beschreibung:

Gibt Array mit aktueller Feldkonfiguration der Dublettenprüfung zurück.

Sollte aktuell keine temporäre Überschreibung der Feldkonfiguration aktiv sein (siehe crmsetDuplicateConfig), wird die durch die Administration konfigurierte Feldliste zurückgegeben.

Ab Version 4.5.17704 kann zwischen Feldkonfigurationen von Kontakten ("contact" default) und Personen ("person") unterschieden werden.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/contacts';
	$session_id  = session_id();
	$contacts    = new crm_rest_api($rest_url);
	// fetch duplicate check field configuration for module PERSONS instead of CONTACTS
	$params  = array('session_id' => $session_id, 'context' => 'person');
	$fields  = $contacts->crmgetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo print_r($fields, true);



3.1.42. crmgetsearchfilteredContacts

(Version >= 4.5.16680)

Syntax:

array crmgetsearchfilteredContacts( array( string $session_id, int $filter_id, string $search, int $count, int $offset, array $fields) )

Beschreibung:

Gibt ein Array mit Kontakt-Objekten zurück, die dem angegebenen Suchfilter und Suchbegriff entsprechen, limitiert von count und offset.

Der Parameter search repräsentiert die Eingabe im Suchfeld im CRM (Platzhalter <#search_field#> in Filterbedingungen)

Über den Parameter fields können die zurückgegeben Felder eingeschränkt werden (false = alle Felder)

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Hinweis: Es werden nur Kontakte und Felder zurückgegeben, für die der authentifizierte Nutzer Leseberechtigungen hat.

Eigenschaften:

sind die selben wie für crmgetSingleContact, evtl eingeschränkt nach Parameter fields

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
 
	$contacts = new crm_rest_api("http://hostname/dirname/rest/index.php/contacts");
 
	// Liefert die Felder Nummer, Firma, PLZ und Ort der ersten 10 Kontakte, die dem Suchfilter 11 ohne eingegebenen Suchbegriff entsprechen
	$params = array(
		'session_id'	=> $session_id, 
		'filter_id'		=> 11,
		'search'		=> '',
		'count'			=> 10,
		'offset'		=> 0,
		'fields'		=> array('realnumber', 'company', 'postcode', 'city')
	);
 
	// Liefert alle Felder aller Kontakte, die dem Suchfilter 11 mit eingegebenen Suchbegriff "test" entsprechen
	$params = array(
		'session_id'	=> $session_id, 
		'filter_id'		=> 11,
		'search'		=> 'test',
		'count'			=> 0,
		'offset'		=> 0,
		'fields'		=> false
	);
 
	$result = $contacts->crmgetsearchfilteredContacts($params);
 
	print_r($result);
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.1.43. crmgetContactsByPhoneNumber

(Version >= 4.8)

Syntax:

array crmgetContactsByPhoneNumber( array(string $phone) )

Beschreibung:

Gibt ein Array mit Kontakt- und Personen-Objekten zurück, bei denen die angegebene Telefonnummer eingetragen wurde.

Der Parameter phone ist die Telefonnummer, nach welcher gesucht werden soll.

Rückgabe:

Das Ergebnis ist ein Array mit den Schlüssel 'contacts' (für Kontakte) und 'persons' (für Personen). Diese enthalten jeweils numerische Arrays, welche jeweils 0 oder mehr Objekte des entsprechenden Types enthalten können. Die Eigenschaften einzelner Kontakte sind in der Methode crmgetSingleContact beschrieben und für Personen in crmgetSinglePerson.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
 
	$contacts = new crm_rest_api("http://hostname/dirname/rest/index.php/contacts");
 
	// Liefert alle Kontakte und Personen mit der Nummer 0361 58439602 zurück.
	$params = array('phone' => '+49 361 58439602');
	$result = $contacts->crmgetsearchfilteredContacts($params);
 
	foreach ($params['persons'] as $person) {
		print_r($person);
	}
	foreach ($params['contacts'] as $contact) {
		print_r($contact);
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.2. Rechnungskonten

3.2.1. crmaddClientAccount

(Version >= 4.1)

Syntax:

int crmaddClientAccount( array( string $session_id, int $contact_id))

Beschreibung:

Erzeugt ein neues Rechnungskonto aus den Daten des Kontaktes mit der übergebenen ID.

Beispiel:

<?php
 
try {
    // Add client account to contact with ID = 10
    $result = $contacts->crmaddClientAccount(array('session_id' => $session_id, 'contact_id' => 10));
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo "New client account id: $result<br/>";



3.2.2. crmcopyClientAccountDataFromContact

(Version >= 4.1)

Syntax:

array crmcopyClientAccountDataFromContact( array( string $session_id, int $account_id, int $contact_id))

Beschreibung:

Kopiert die Daten des Kontaktes mit der ID $contact_id zum Rechnungskonto mit der ID $account_id.

Eignenschaften von zurückgegebenen array: die gleichen wie für crmgetClientAccount

Beispiel:

<?php
 
try {
    // Copy data from contact with ID = 10 to client account with ID = 1
    $results = $contacts->crmcopyClientAccountDataFromContact(
		array(
			'session_id'	=> $session_id,
			'account_id'	=> 1,
			'contact_id'	=> 10
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach( $results as $key => $val) {
    echo $key.'=>'.$val;
}



3.2.3. crmgetClientAccountsByContactID

(Version >= 4.1)

Syntax:

array crmgetClientAccountsByContactID(array(string $session_id, int $contact_id))

Beschreibung:

Liefert alle Rechnungskonten eines Kontaktes zurück.

Eigenschaften von zurückgegebenen array: die gleichen wie für crmgetClientAccount

Beispiel:

<?php
 
try {
    // Get client accounts from contact with ID = 10
    $results = $contacts->crmgetClientAccountsByContactID(array('session_id' => $session_id, 'contact_id' => 10));
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach( $results as $result) {
	foreach( $result as $key => $val) {
		echo $key.'=>'.$val;
	}
}



3.2.4. crmgetClientAccount

(Version >= 4.1)

Syntax:

array crmgetClientAccount( array( string $session_id, int $account_id))

Beschreibung:

Liefert das Rechnungskonto mit der ID $account_id.

Eigenschaften von zurückgegebenen array:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------
int		    $id			        Rechnungskonto-ID
int         $ext_id             Externe ID ( ab Version 4.2 )
string		$name			    Rechnungskonto-Name
string		$realnumber		    Rechnungskonto-Nummer
string		$notes			    Notizen
int		    $cid			    Rechnungskonto-Kontakt
bool		$merge_activities	Zusammenführen
int		    $debitor_number		Debitor
int		    $kreditor_number	Kreditor
double	 	$saldo			    Saldo
string		$billing_name_1		alternat. Rechnungsempänger 1
string		$billing_name_2		alternat. Rechnungsempänger 2
string		$billing_name_3		alternat. Rechnungsempänger 3
string		$billing_address_1	alternat. Rechnungsadresse 4
string		$billing_address_2	alternat. Rechnungsadresse 5
string		$billing_postcode	alternat. Rechnungs-PLZ
string		$billing_city		alternat. Rechnungsort
string		$billing_country	alternat. Rechnungsland
bool		$online_billing		Online-Rechnung
string		$email			    E-Mail-Adresse
string		$ust_id			    Umsatzsteuer.ID
int		    $payment_target		Zahlungsziel
string		$skonto			    Konto
string		$skontodays		    Kontotage
string		$fees			    Gebühren
string		$shipping_name_1	alternat. Lieferungssempänger 1
string		$shipping_name_2	alternat. Lieferungssempänger 2
string		$shipping_name_3	alternat. Lieferungssempänger 3
string		$shipping_address_1	alternat. Lieferungssadresse 4
string		$shipping_address_2	alternat. Lieferungssadresse 5
string		$shipping_postcode	alternat. Lieferungss-PLZ
string		$shipping_city		alternat. Lieferungssort
string		$shipping_country	alternat. Lieferungssland
string		$payment_type		Zahlungstyp
string		$bank_account_owner	Bank-Konto-Inhaber
string		$bank_account_iban	IBAN
string		$bank_account_bic	BIC
string		$bank_account_number	Kontonummer
string		$bank_account_code	BLZ
string		$bank_account_name	Name des Kreditinstitus
double		$credit			    Kreditrahmen
int		    $billing_stop		Zahlungsstop bis
int		    $delivery_stop		Lieferstop bis
int		    $admonition_stop	Mahnungsstop bis
bool		$deleted		    Status: Rechnungskonto gelöscht
int		    $chgtime    		Unix-Timestamp der letzten Rechnungskontoänderung 
int		    $chguser     		Userid der letzten  Rechnungskontoänderung
int		    $createtime  		Unix-Timestamp der Rechnungskontoerstellung
int		    $createuser  		Userid der Rechnungskontoerstellung

string(255)	$user18			    Benutzerdefiniertes Feld Nr. 18
string(255)	$user19			    Benutzerdefiniertes Feld Nr. 19
   :                 :                            :
string(255)	$user65			    Benutzerdefiniertes Feld Nr. 65 

Beispiel:

<?php
 
try {
    // Get client account with ID = 1
    $result = $contacts->crmgetClientAccount(array('session_id' => $session_id, 'account_id' => 1));
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach( $result as $key => $val) {
      echo $key.'=>'.$val;
}



3.2.5. crmgetInvoicesByClientAccount

(Version >= 4.1)

Syntax:

array crmgetInvoicesByClientAccount( array( string $session_id, int $account_id))

Beschreibung:

Liefert alle Rechnungen des Rechnungskontos mit der ID $account_id zurück.

Eigenschaften der Elemente von zurückgegebenen array:

Type(Length)	  Eigenschaft				Beschreibung
---------------------------------------------------------------------------------
int		      $id					    Rechnungs-ID
int           $ext_id                   Externe ID ( ab Version 4.2 )
int		      $cid					    Kontakt-ID
int		      $client_account_id		Rechnungskonto-ID
int		      $project_id				Projekt-ID
int		      $contract_id				Vertrags-ID
string		  $realnumber				Belegnummer
int		      $date					    Datum als Unit-Timestamp
int		      $printed				    Druckdatum als Unit-Timestamp
string		  $text					    Text
string		  $notes				    Notizen
int		      $reversed				    zurückgerufen
string		  $name					    Name
string		  $ust_id				    USt-ID
double		  $total_netto				Gesamt - netto
double		  $tax_value				USt-Betrag
double		  $total_brutto				Gesamt - brutto
double		  $ops_value				Betrag offener Posten
double		  $payed				    Betrag gezahlt
int		      $is_payed				    Bezahlt-Datum als Unit-Timestamp
int		      $flow_status				Status
bool		  $is_deposit				Ist Rechnung Abschlagsrechnung
string		  $skonto				    Skonto
string		  $skontodays				Skonto-Tage
int		      $skonto_appointed			Skonto-Stichtag als Unit-Timestamp
string		  $payment_target			Zahlungsziel
int		      $payment_appointed		Zahlungsstichtag als Unit-Timestamp
double		  $discount				    Rabatt
string		  $fees					    Gebühren
string		  $billing_postcode			Rechnung: PLZ
string		  $billing_city				Rechnung: Ort
string		  $billing_name_1			Rechnung: Name 1
string		  $billing_name_2			Rechnung: Name 2
string		  $billing_name_3			Rechnung: Name 3
string		  $billing_address_1		Rechnung: Adresse 1
string		  $billing_address_2		Rechnung: Adresse 2
string		  $shipping_postcode		Lieferschein: PLZ
string		  $shipping_city			Lieferschein: Ort
string		  $shipping_county			Lieferschein: Land
string		  $shipping_name_1			Lieferschein: Name 1
string		  $shipping_name_2			Lieferschein: Name 2
string		  $shipping_name_3			Lieferschein: Name 3
string		  $shipping_address_1		Lieferschein: Adresse 1
string		  $shipping_address_2		Lieferschein: Adresse 2
string		  $shipping_address_2		Lieferschein: Adresse 2
array		  $crmOriginalContactElements		Original-Daten des Kontaktes
array		  $crmOriginalClientAccountElements	Original-Daten des Rechnungskontos
int		      $createuser	        	Benutzer-ID, der Buchung erzeugt hat
int		      $createtime	        	Zeitstempel, an dem Buchung erzeugt wurde
int		      $chguser	        		Benutzer-ID, der Buchung zuletzt geändert hat
int		      $chgtime	        		Zeitstempel, an dem zuletzt geändert wurde

string		  $user29				    Benutzerdefiniertes Feld Nr. 29
string		  $user30				    Benutzerdefiniertes Feld Nr. 30
   :                 :                                            :
string		  $user80				    Benutzerdefiniertes Feld Nr. 80

Beispiel:

<?php
 
try {
    // Get client account with ID = 1
    $results = $contacts->crmgetInvoicesByClientAccount(array('session_id' => $session_id, 'account_id' => 1));
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach( $results as $result) {
	foreach( $result as $key => $val) {
		echo $key.'=>'.$val;
	}
}



3.2.6. crmAddClientAccountDetail

(Version >= 4.1)

Syntax:

int crmAddClientAccountDetail( array( string $session_id, array $crmClientAccountItem))

Beschreibung:

Erzeugt ein neues Rechnungskonto mit übergebenen Daten.

Eigenschaften von $crmClientAccountItem array:

Type(Length)      Eigenschaft             Beschreibung
-------------------------------------------------------------------
string		$name			    Rechnungskonto-Name
string		$realnumber		    Rechnungskonto-Nummer
string		$notes			    Notizen
int		    $cid			    Rechnungskonto-Kontakt
int         $ext_id             Externe ID ( ab Version 4.2 )
bool		$merge_activities	Zusammenführen
int		    $debitor_number		Debitor
int		    $kreditor_number	Kreditor
double		$saldo			    Saldo
string		$billing_name_1		alternat. Rechnungsempänger 1
string		$billing_name_2		alternat. Rechnungsempänger 2
string		$billing_name_3		alternat. Rechnungsempänger 3
string		$billing_address_1	alternat. Rechnungsadresse 4
string		$billing_address_2	alternat. Rechnungsadresse 5
string		$billing_postcode	alternat. Rechnungs-PLZ
string		$billing_city		alternat. Rechnungsort
string		$billing_country	alternat. Rechnungsland
bool		$online_billing		Online-Rechnung
string		$email			    E-Mail-Adresse
string		$ust_id			    Umsatzsteuer.ID
int		    $payment_target		Zahlungsziel
string		$skonto			    Konto
string		$skontodays		    Kontotage
string		$fees			    Gebühren
string		$shipping_name_1	alternat. Lieferungssempänger 1
string		$shipping_name_2	alternat. Lieferungssempänger 2
string		$shipping_name_3	alternat. Lieferungssempänger 3
string		$shipping_address_1	alternat. Lieferungssadresse 4
string		$shipping_address_2	alternat. Lieferungssadresse 5
string		$shipping_postcode	alternat. Lieferungss-PLZ
string		$shipping_city		alternat. Lieferungssort
string		$shipping_country	alternat. Lieferungssland
string		$payment_type		Zahlungstyp
string		$bank_account_owner	Bank-Konto-Inhaber
string		$bank_account_iban	IBAN
string		$bank_account_bic	BIC
string		$bank_account_number Kontonummer
string		$bank_account_code	BLZ
string		$bank_account_name	Name des Kreditinstitus
double		$credit			    Kreditrahmen
int		    $billing_stop		Zahlungsstop bis
int		    $delivery_stop		Lieferstop bis
int		    $admonition_stop	Mahnungsstop bis

string(255)	$user18			    Benutzerdefiniertes Feld Nr. 18
string(255)	$user19			    Benutzerdefiniertes Feld Nr. 19
   :                 :                            :
string(255)	$user65			    Benutzerdefiniertes Feld Nr. 65 

Beispiel:

<?php
 
try {
	$crmClientAccountItem = array(
		'name'				=> 'REST-Test crmAddClientAccountDetail',
		'notes'				=> 'This is a test...',
		'debitor_number'	=> '10001',
		'kreditor_number'	=> '11001',
		'online_billing'	=> 1
	);
 
	$result = $contacts->crmAddClientAccountDetail(
		array(
			'session_id'			=> $session_id,
			'crmClientAccountItem'	=> $crmClientAccountItem
		)
	);
}
catch (Exception $e) {
    echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
 
echo "Client account id: $result<br/>";
 



3.2.7. crmchangeClientAccount

(Version >= 4.1)

Syntax:

int crmchangeClientAccount(array(string $session_id, int $account_id, array $crmClientAccountItem))

Beschreibung:

Ändert Informationen des Rechnungskontos mit der übergebenenen ID.

Eigenschaften von $crmClientAccountItem array: die gleichen wie für crmaddClientAccountDetail

Beispiel:

<?php
 
try {
	$crmClientAccountItem = array(
		'credit'				=> 25000,
		'bank_account_owner'	=> 'REST-Test KG',
		'bank_account_iban'		=> 'DE341234500789000',
		'bank_account_bic'		=> 'HELADEF000'
	);
 
    // Change client account with ID 10
    $result = $contacts->crmchangeClientAccount(
		array(
			'session_id'			=> $session_id,
			'account_id'			=> 10,
			'crmClientAccountItem'	=> $crmClientAccountItem
		)
	);
}
catch (Exception $e) {
    echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}
 
echo "Client account id: $result<br/>";



3.2.8. crmgetClientAccountIdByExtId

(Version >= 4.2)

Syntax:

array crmgetClientAccountIdByExtId( array( string $session_id, int $ext_id ) )

Beschreibung

Liefert interne ID(s) von Rechnungskonten mit der übergebenen externen ID zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $contacts->crmgetClientAccountIdByExtId(
		array(
			'session_id'	=> $session_id,
			'ext_id'		=> 12345
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.2.9. crmgetAllClientAccountExtIds

(Version >= 4.2)

Syntax:

array crmgetAllClientAccountExtIds( array ( string $session_id ) )

Beschreibung

Liefert eine Liste aller externen IDs in Rechnungskonten zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try { 
	$result = $contacts->crmgetAllClientAccountExtIds(array('session_id' => $session_id));
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.3. Kontaktbeziehungen

Diese Funktionen sind nicht zu verwechseln mit crmaddRelation, crmdeleteRelation, crmgetRelations, welche eine Beziehung zu anderen Modulobjekten wie z.B. Verträgen herstellen. Die nachfolgenden Methoden behandeln spezifische Kontakt-zu-Kontakt Beziehungen, die im geöffneten Kontakt unter Registerkarte "Beziehungen" aufgelistet werden.

3.3.1. crmaddContactRelation

(Version >= 4.4)

Syntax:

int|string <err_msg> crmaddContactRelation( array( string $session_id, int|string $cid, int|string $vid, string $category, [string $notes, int $autocreate, string $reversecategory] ) $params)

Beschreibung:

Fügt eine neue Kontakt:Kontakt(+Person)- Beziehung hinzu.

Bei Erfolg wird die neue Beziehungs ID zurückgegeben, andernfalls 0.

Gibt im Fehlerfall folgende Meldungen zurück:

  • No contact ID given

  • No contact ID to relate to

  • No category given

Pflichtfelder sind cid, vid, category

Eigenschaften des zu übergebenden Arrays params

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
string			$session_id		     aktuelle Session ID

int|string		$cid			     Kontakt ID (Format <int>contact ID[:<int>person ID]),
						     an den die Beziehung geknüpft werden soll
int|string		$vid			     Kontakt ID (Format <int>contact ID[:<int>person ID]),
						     auf den sich bezogen werden soll. Dieser Kontakt wird 
						     dann in der Beziehungsliste des Kontakts $cid
						     angezeigt.
string(255)		$category		     Kategorieangabe aus Systemliste "Kontaktbeziehungsarten"
string(4096)		$notes			     Optionale Beschreibung der Beziehung
int			$autocreate		     Automatische Erzeugung einer Gegenbeziehung "$vid:$cid"
						     0 = Nein, 1 = Ja
string(255)		$reversecategory	     Kategorie der Gegenbeziehung aus Systemliste 
						     "Kontaktbeziehungsarten"

Beispiel:

<?php
 
try {
    $contacts	= new crm_rest_api("http://hostname/dirname/rest/index.php/contacts");
    $params		= array(
		'session_id'    => $session_id,
        'cid'           => '1589',
        'vid'           => '654:1235',
        'category'      => 'Tochtergesellschaft',
        'autocreate'    => 0     
    );
    $rel_id = $contacts->crmaddContactRelation($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo ($rel_id > 0 ? 'neue Beziehung hergestellt mit ID: '.$rel_id : 'Beziehung konnte nicht hergestellt werden').'<br />';



3.3.2. crmchangeContactRelation

(Version >= 4.4)

Syntax:

boolean|string <err_msg> crmchangeContactRelation( array( string $session_id, int $id, int|string $cid, int|string $vid, [string $category, string $notes, int $autocreate, string $reversecategory]) )

Beschreibung:

Modifiziert eine bestehende Kontaktbeziehung.

Gibt bei Erfolg TRUE zurück, andernfalls FALSE.

Gibt im Fehlerfall folgende Meldungen zurück:

  • Relation ID missing

Eigenschaften des zu übergebenden Arrays params

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
string			$session_id		     aktuelle Session ID

int			$id			     interne ID der Beziehung
int|string		$cid			     Kontakt ID (Format <int>contact ID[:<int>person ID]),
						     an den die Beziehung geknüpft werden soll
int|string		$vid			     Kontakt ID (Format <int>contact ID[:<int>person ID]),
						     auf den sich bezogen werden soll. Dieser Kontakt wird 
						     dann in der Beziehungsliste des Kontakts $cid
						     angezeigt.
string(255)		$category		     Kategorieangabe aus Systemliste "Kontaktbeziehungsarten"
string(4096)		$notes			     Optionale Beschreibung der Beziehung
int			$autocreate		     Automatische Erzeugung einer Gegenbeziehung "$vid:$cid"
						     0 = Nein, 1 = Ja
string(255)		$reversecategory	     Kategorie der Gegenbeziehung aus Systemliste 
						     "Kontaktbeziehungsarten"

Beispiel:

<?php
 
try {
    // modify the category of relation with ID 1337
    $params  = array(
        'session_id'    => $session_id,
        'id'    => 1337,
        'cid'           => '1589',     // mandatory
        'vid'           => '654:1235',     // mandatory
        'category'      => 'Partner'
    );
    $success = $contacts->crmchangeContactRelation($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo 'Änderungen '.($success ?  'erfolgreich' : 'fehlgeschlagen');



3.3.3. crmgetContactRelation

(Version >= 4.4)

Syntax:

array|string <err_msg> crmgetContactRelation( array( string $session_id, int $relation_id ) $params)

Beschreibung:

Gibt bei Erfolg ein Array mit den Eigenschaften der angefragten Kontakt:Kontakt- Beziehung zurück.

Gibt im Fehlerfall folgende Meldung zurück:

  • Relation ID missing

  • Relation with ID `<relation_id>` not found

Eigenschaften des zurückgegebenen Array

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
int			    $id			     interne ID der Beziehung
int|string		$cid			     Kontakt ID (Format <int>contact ID[:<int>person ID]),
						     an den die Beziehung geknüpft werden soll
int|string		$vid			     Kontakt ID (Format <int>contact ID[:<int>person ID]),
						     auf den sich bezogen werden soll. Dieser Kontakt wird 
						     dann in der Beziehungsliste des Kontakts $cid
						     angezeigt.
string(255)		$category		     Kategorieangabe aus Systemliste "Kontaktbeziehungsarten"
string(4096)	$notes			     Optionale Beschreibung der Beziehung
int			    $autocreate		     Automatische Erzeugung einer Gegenbeziehung "$vid:$cid"
						     0 = Nein, 1 = Ja
string(255)		$reversecategory	     Kategorie der Gegenbeziehung aus Systemliste 
						     "Kontaktbeziehungsarten"
int			$chgtime		     Unix- Timestamp der letzten Änderung
int			$chguser		     User-ID des Benutzers, der die letzte Änderung vorgenommen hat
int			$createtime		     Unix- Timestamp der Erstellung der Beziehung
int			$createuser		     User-ID des Erstellers

Beispiel:

<?php
 
try {
    // fetch data of relation with ID 1337
    $params  = array(
        'session_id'    => $session_id,
        'id'    => 1337
    );
    $relation = $contacts->crmgetContactRelation($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo '<pre>'.print_r($relation, true).'</pre>';



3.3.4. crmgetContactRelations

(Version >= 4.4)

Syntax:

array|string <err_msg> crmgetContactRelations( array( string $session_id, [int $timestamp, int $count = 500, int $offset]) $params)

Beschreibung:

Gibt ein Array mit einem oder mehreren Beziehungsobjekten (als assoziative Arrays) zurück, optional eingeschränkt nach Zeitpunkt der letzten Änderung und limitierter Rückgabe.

  • timestamp: Unix- Timestamp ab welchem Datum der letzten Änderung zurückgegeben werden soll

  • count: Limitierung der zurückgegebenen Einträge (default = 500)

  • offset: definiert, wieviele Einträge von der originalen (ggf. limitierten) Rückgabe übersprungen werden sollen

Gibt im Fehlerfall folgende Meldungen zurück:

  • no relations found

  • CRMException messages

Eigenschaften der zurückgegebenen Beziehungsobjekte sind identisch mit crmgetContactRelation

Beispiel:

<?php
 
try {
    // fetch data of relation with ID 1337
    $params  = array(
        'session_id'    => $session_id,
        'timestamp' => (time()-(3*86400)),
        'count'   => 100
    );
    // fetch the first 100 contact:contact relations that have been
    // modified during the last 3 days
    $relations = $contacts->crmgetContactRelations($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo '<pre>'.print_r($relations, true).'</pre>';



3.3.5. crmgetContactRelationsByContactId

(Version >= 4.4)

Syntax:

array|string <err_msg> crmgetContactRelationsByContactId( array( string $session_id, int|string $cid) $params )

Beschreibung:

Gibt ein Array mit einem oder mehreren Beziehungsobjekten (als assoziative Arrays) zurück, die dem spezifizierten Kontakt zugeordnet sind.

  • cid: Kontakt ID

Gibt im Fehlerfall folgende Meldungen zurück:

  • No contact ID given

  • No relations found for contact `<cid>`

  • CRMException messages

Eigenschaften der zurückgegebenen Beziehungsobjekte sind identisch mit crmgetContactRelation

Beispiel:

<?php
 
try {
    // fetch all relations entered for contact with ID 1589
    $params  = array(
        'session_id'    => $session_id,
        'cid'   => '1589'
    );
    $relations = $contacts->crmgetContactRelationsByContactId($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo '<pre>'.print_r($relations, true).'</pre>';



3.3.6. crmdeleteContactRelation

(Version >= 4.4)

Syntax:

boolean|string <err_msg> crmdeleteContactRelation( array( string $session, int $id) )

Beschreibung:

Löscht eine Kontakt:Kontakt- Beziehung mit spezifizierter ID.

Gibt TRUE bei Erfolg, FALSE bei Fehlschlag zurück.

  • id: interne ID der Beziehung

Beispiel:

<?php
 
try {
    // delete relation with ID 1337
    $params  = array(
        'session_id'    => $session_id,
        'id'    => 1337
    );
    $success = $contacts->crmdeleteContactRelationsByContactId($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo 'Löschung '.($success ? 'erfolgreich' : 'fehlgeschlagen').'<br />';
  • No labels