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/orders

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

2. Methoden

2.1. crmaddOrder

Syntax:

int crmaddOrder( array(string $session_id, array $crmOrderItem) )

Beschreibung:

Liefert bei Erfolg die ID des neu angelegten Auftrages zurück.

crmOrderItem ist ein assoziatives Array.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften von crmOrderItem Array:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $realnumber               Auftragsnummer
string(255)             $subject                  Betreffzeile (Pflichtfeld)
string(255)             $shortdesc                Kurzbeschreibung
string(65535)           $notes                    Freitext für Notizen
string(255)             $cid                      Contact-Id, Format: Contact-Id:Person-Id (Pflichtfeld)
int                     $client_account_id        Rechnungskto. (mit Rechnungsmodul, in Verb. mit Contact-ID)
int                     $pid                      Projekt-ID
int                     $offer_id                 Angebot-ID
int                     $parent_id                ID des übergeordneten Elternauftrages
int                     $ext_id                   externe ID
int                     $order_date               Unix-Timestamp Auftragsdatum (Pflichtfeld)
int                     $start_date               Unix-Timestamp Auftragsbeginn (Pflichtfeld)
int                     $maturity_date            Unix-Timestamp Auftragsfälligkeit
int                     $duration                 ganzzahliger Wert repräsentativ für Monate der Laufzeit
double                  $order_volume             Vertragsvolumen (bei autoprice = 1 read-only mit autom. Berechnung)
double                  $amount_invoiced          abgerechneter Gesamtbetrag (bei autoprice read-only mit autom. Berechnung)
int                     $autoprice                0 - keine Artikelpostenliste verwenden
                                                  1 - Artikelpostenlisten verwenden (autom. Ber. order_volume, amount_invoiced)

int                     $flow_status              Bearbeitungsstatus
                                                  0 = In Bearbeitung
                                                  1 = Erstellt
                                                  2 = Geprüft
                                                  3 = Erteilt
                                                  4 = Erledigt
                                                  5 = Abgerechnet
                                                  6 = Storniert

string(255)             $contact_name             Contact- Ansprechpartner Name
string(255)             $contact_email            Contact- Ansprechpartner E-Mail
string(255)             $contact_phone            Contact- Ansprechpartner Telefon
int                     $leader                   Zuständiger User, User-ID
int                     $substitute               stellvertretend zuständiger User, User-ID
int                     $serie                    Serientermin
                                                  1 = täglich
                                                  2 = wöchentlich
                                                  3 = monatlich
                                                  4 = jährlich

int                     $serie_type               $serie == 1 ? 1 = täglich, 2 = jeden Werktag
                                                  $serie == 2 ? 2
                                                  $serie == 3 ? 1 = Tag und Monat, 2 = Intervall
                                                  $serie == 4 ? 1 = Tag und Monat, 2 = Intervall  

int                     $serie_parent             id des Elternobjekts, wenn dieses Element geändert wurde
int                     $serie_pdate              Datum des ursprünglichen aktuellen Elements, bevor es zu 
                                                  einem anderen Zeitpunkt geändert wurde



int                     $intrval                  Serietermin-Interval (z.B. 2) 
int                     $instance                 1 = erste,
                                                  2 = zweite,
                                                  3 = dritte,
                                                  4 = vierte,
                                                  5 = letzte dayofweekmask des Monats oder Jahres

int                     $day_of_week_mask         S M T W T F S = binary bitmask
                                                  Sonntag    = 01000000  (64)
                                                  Montag     = 00100000  (32)
                                                  Dienstag   = 00010000  (16)
                                                  Mittwoch   = 00001000  (8)
                                                  Donnerstag = 00000100  (4)
                                                  Freitag    = 00000010  (2)
                                                  Samstag    = 00000001  (1)

                                                  Wählen Sie beispielsweise Mittwoch UND Freitag
                                                  Mittwoch   = 00001000  (8)
                                                  Freitag    = 00000010  (2)
                                                  --------------------------
                                                  bitwise OR = 00001010  (10)

int                     $day_of_month             Tag des Monats, 1 - 31 
int                     $month_of_year            Monat des Jahres, 1 - 12
int                     $occurrences              Anzahl der Ereignisse
int                     $end_type                 3 = an bestimmten Datum enden,
                                                  2 = Ende nach bestimmten Anzahl von Ereignissen,
                                                  1 = open end

int                     $serieend                 Unix-Timestamp des Serienendes ( ab Version 3.7 )

mixed                   $user20                   Benutzerdefiniertes Feld Nr. 20
mixed                   $user21                   Benutzerdefiniertes Feld Nr. 21
  :                        :                                   :
mixed                   $user80                   Benutzerdefiniertes Feld Nr. 80

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
 
	$order = array(
		'shortdesc'		=> 'Webservice Test',
		'subject'		=> 'REST Testorder 1',
		'cid'			=> '512:53'    // a contact ID and person ID
		'order_date'	=> time(),
		'start_date'	=> time(),
		'autoprice'		=> 0,
		'duration'		=> 1
	);
 
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'crmOrderItem'	=> $order
	);
 
	$new_id = $orders->crmaddOrder($params);
 
	echo 'new Order created with ID: '.$new_id;
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.2. crmaddOrderResubmission

Syntax

boolean crmaddOrderResubmission( array( string $session, array crmOrderResubItem))

Beschreibung

Fügt eine neue Wiedervorlage für ein Order Objekt und spezifizierbaren Benutzer hinzu.

Gibt boolean TRUE/FALSE zurück.

Eigenschaften von crmOrderResubItem Array:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $date                     Unix-Timestamp des Wiedervorlage Datums
int                     $userid                   User ID des betreffenden Benutzers (default: aktiver Benutzer)
int                     $oid                      interne Objekt ID des Auftrages
string(255)             $subject                  Kommentar-/Betrefftext für die Wiedervorlage

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'		=> $session_id,
		'crmOrderResubItem'	=> array(
			'date'		=> (time() + (3*86400)), // resubmission in 3 days
			'oid'		=> 1337,
			'userid'	=> 12,
			'subject'	=> 'Remember this Order !'
		)
	);
 
	if ($orders->crmaddOrderResubmission($params)) {
		echo 'Resubmission added successfully';
	}
	else {
		echo 'Failed to add resubmission';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.3. crmdeleteOrder

Syntax

int|string crmdeleteOrder( array( string $session, int $order_id) )

Beschreibung

Löscht den Auftrag mit übergebener ID $order_id und gibt bei Erfolg int 1 zurück.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// delete assumed Order #1337
	$result = $orders->crmdeleteOrder($params);
 
	if ($result == 1) {
		echo 'Order deleted';
	}
	else {
		echo 'Delete failed: `'.$result.'`';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.4. crmdeleteOrderResubmission

Syntax

boolean|string crmdeleteOrderResubmission( array( string $session_id, int $order_id, int $resub_id) )

Beschreibung

Löscht die mit ID spezifizierte Wiedervorlage.

Gibt boolean TRUE/FALSE zurück.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337,
		'resub_id'		=> 257
	);
 
	// delete assumed Order #1337
	$result = $orders->crmdeleteOrderResubmission($params);
 
	if ($result == true) {
		echo 'Resubmission deleted';
	}
	else {
		echo 'Failed to delete resubmission';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.5. crmgetOrder

Syntax

array|string crmgetOrder( array( string $session_id, int $order_id) )

Beschreibung

Gibt bei Erfolg ein assoziatives Array mit allen Eigenschaften des Auftrages zurück. Übergabe Parameter order_id spezifiziert die interne ID des Auftrages.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zurückgegebenen Auftrag Objektes:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Auftrag-Id 
int                     $ext_id                   Externe ID
string(255)             $realnumber               Auftragsnummer
string(255)             $shortdesc                Kurzbeschreibung des Auftrages
string(255)             $cid                      Contact-Id, Format: Contact-Id:Person-Id
int                     $client_account_id        Rechnungskonto ID (mit Rechnungsmodul, in Verb. Contact ID)
double                  $order_volume             Auftragsvolumen
double                  $amount_invoiced          aktuell abgerechneter Gesamtbetrag
int                     $order_date               Unix-Timestamp Auftragsdatum
int                     $start_date               Unix-Timestamp Auftragsbeginn
int                     $maturity_date            Unix-Timestamp der Auftragsfälligkeit
int                     $duration                 ganzzahliger Wert repräsentativ für Monate der Laufzeit
int                     $flow_status              Bearbeitungsstatus
                                                  0 = In Bearbeitung
                                                  1 = Erstellt
                                                  2 = Geprüft
                                                  3 = Erteilt
                                                  4 = Erledigt
                                                  5 = Abgerechnet
                                                  6 = Storniert

int                     $pid                      Projekt-ID
int                     $offer_id                 Angebot-ID
int                     $parent_id                ID des übergeordneten Elternauftrages
string(255)             $pname                    Projekt-Name
string(255)             $cname                    Contact-Name
string(255)             $oname                    Angebot-Name 
string(65535)           $notes                    Notizen
string(255)             $subject                  Betreffzeile
int                     $leader                   zuständiger Benutzer, User-ID
int                     $substitute               stellvertretend zuständiger Benutzer, User-ID

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

mixed                   $user20                   Benutzerdefiniertes Feld Nr. 20
mixed                   $user21                   Benutzerdefiniertes Feld Nr. 21
  :                        :                                   :
mixed                   $user80                   Benutzerdefiniertes Feld Nr. 80

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// fetch data of assumed Order #1337
	$result = $orders->crmgetOrder($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.6. crmgetOrdersResubmissions

Syntax

array|string crmgetOrderResubmissions( array( string $session_id, int $order_id [,int $user_id] ))

Beschreibung

Liefert ein mehrdimensionales assoziatives Array mit den Datensätzen der Wiedervorlagen zurück, die mit User ID und Auftrag ID spezifiziert werden können.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zu übergebenden $params Array:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $session_id               Session ID
int                     $order_id                 interne ID eines Order Objektes
int                     $user_id                  User ID (default: aktiver Benutzer)

Eigenschaften des zurückgegebenen $result Array[ID][]:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       interne ID der Wiedervorlage
string(255)             $type                     Zeichenkette zur Identifizierung des zugrundeliegenden Moduls
int                     $oid                      interne ID des Order Objektes
int                     $userid                   ID des betreffenden Benutzers
int                     $date                     Unix-Timestamp des Wiedervorlagen Datums
int                     $maturity                 Unix-Timestamp der Fälligkeit einer Erinnerung an die Wiedervorlage
string(255)             $item                     Betreff des anhänglichen Modulobjektes (des Auftrages)
string(255)             $subject                  Kommentar-/Betrefftext der Wiedervorlage
int                     $seen                     Unix-Timestamp des Zeitpunktes der ersten Wiedervorlagen Einsicht
int                     $createuser               User ID des erstellenden Benutzers
int                     $createtime               Unix-Timestamp des Zeitpunkts der Erstellung
int                     $chguser                  User ID des Benutzers, der die letzte Änderung durchgeführt hat
int                     $chgtime                  Unix-Timestamp des Zeitpunkts der letzten Änderung

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337, // Order ID
		'user_id'		=> 12    // User ID
	);
 
	// fetch all Orders from the current month, this year
	$result = $orders->crmgetOrderResubmissions($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.7. crmgetOrdersFrom

Syntax

array|string crmgetOrdersFrom( array( string $session_id, int $month, int $year) )

Beschreibung

Liefert ein assoziatives Array mit Auftrag-ID als Index, dessen Element wiederum ein assoziatives Array mit den Eigenschaften des jeweiligen Auftrages ist.

Wenn month gesetzt ist, werden nur Aufträge dieses Monats zurückgegeben. Setzen Sie ihn auf 0, um alle Monate zurückzubekommen. Wenn year gesetzt ist, werden nur Aufträge von diesem Jahr zurückgegeben. Setzen Sie ihn auf 0, um alle Jahre zu bekommen.

Bezugseigenschaft von month und year ist der Auftragsbeginn start_date.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der zurückgegebenen Auftrag Objekte: sind identisch mit denen in crmgetOrder

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'month'			=> (int)date('m'),
		'year'			=> (int)date('Y')
	);
 
	// fetch all Orders from the current month, this year
	$result = $orders->crmgetOrder($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.8. crmchangeOrder

Syntax

int|string crmchangeOrder( array( string $session_id, int $order_id, array $crmOrderItem) )

Beschreibung

Ändert die in Parameter $crmOrderItem übergebenen Eigenschaften eines Auftrages mit ID $order_id.Gibt Fehlermeldungen als Zeichenkette zurück, sollten Parameter $order_id oder $crmOrderItem nicht im Parameterarray der Übergabe enthalten sein.

Bei Erfolg wird die ID des geänderten Auftrages zurückgegeben.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zu übergebenden crmOrderItem Objektes sind identisch zu denen in crmaddOrder

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	// fetch data of assumed Order #1337, returned as an object
	$myOrder  = $orders->crmgetOrder(array('session_id' => $session_id, 'order_id' => 1337));
 
	// adjust some properties of that order
	$myOrder->shortnotes = 'order changed ...slightly';
	$myOrder->maturity_date  = (time() + (86400 * 30));
 
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> $myOrder->id,
		'crmOrderItem'	=> $myOrder
	);
 
	// fetch all Orders from the current month, this year
	$result = $orders->crmchangeOrder($params);
 
	if ($result == $myOrder->id) {
		echo 'Order '.$result.' successfully modified';
	}
	else {
		echo 'Failed to change order '.$myOrder->id.': `'.$result.'`';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.9. crmgetChangedOrders

Syntax

array|string crmgetchangedOrders( array( string $session_id, int $timestamp) )

Beschreibung

Liefert alle Aufträge zurück, die seit Parameter timestamp geändert worden sind. Wenn timestamp = 0 werden alle Aufträge zurückgegeben.

Gibt Fehlermeldung als Zeichenkette zurück, wenn Parameter timestamp nicht im Übergabearray gefunden werden kann.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der zurückgegebenen Auftrag Objekte: sind identisch mit denen in crmgetOrder

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> (time() - (86400 * 30))
	);
 
	// fetch all Orders that have been modified within the last 30 days
	$result = $orders->crmgetChangedOrders($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.10. crmgetChangedOrdersLimit

Syntax

array|string crmgetChangedOrdersLimit( array( string $session_id, int $count, int $offset) )

Beschreibung

Rückgabe wie crmgetChangedOrders

Mit Parametern count und offset kann die Anzahl zurückgegebener und Zahl der vom Beginn des Resultsets übersprungenen Einträge kontrolliert werden.

Gibt Fehlermeldung als Zeichenkette zurück, sollte eines der Parameter nicht im Übergabearray gefunden werden.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der zurückgegebenen Auftrag Objekte: sind identisch mit denen in crmgetOrder

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> (time() - (86400 * 30)),
		'count'			=> 100,    // 100 entries
		'offset'		=> 0   // from the start
	);
 
	// fetch first 100 Orders that have been modified within the last 30 days
	$result = $orders->crmgetChangedOrdersLimit($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.11. crmgetOrderIds

Syntax

array|string crmgetOrderIds( array( string $session_id, int timestamp) )

Beschreibung

Liefert ein Array mit den internen IDs der Aufträge zurück, die seit Parameter timestamp geändert worden sind.

Gibt Fehlermeldung als Zeichenkette zurück, wenn Parameter timestamp nicht im Übergabearray gefunden werden kann.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> (time() - (86400 * 30))
	);
 
	// fetch all Order IDs that have been modified within the last 30 days
	$result = $orders->crmgetOrderIds($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}
 



2.12. crmgetChangedOrdersUserFields

Syntax

array|string crmgetChangedOrdersUserFields( array( string $session_id, int $timestamp) )

Beschreibung

Liefert ein Array mit den benutzerdefinierten Feldern aller Aufträge zurück, die seit Parameter timestamp geändert worden sind.

Gibt eine Fehlermeldung als Zeichenkette zurück, wenn Parameter timestamp nicht im Übergabearray gefunden werden kann. Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der zurückgegebenen Auftrag-UserField Arrays

Type(Length) Arrayelement Beschreibung


int $id Auftrag-ID array $user_fields beinhaltet benutzerdefinierte Felddaten

als assoziative Arrays mit den Elementen:
'name' => string Feldname 'value' => mixed Feldwert

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> (time() - (86400 * 30))
	);
 
	// fetch userdefined fields of all Orders that have been modified within the last 30 days
	$result = $orders->crmgetChangedOrdersUserFields($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.13. crmgetChangedOrdersUserFieldsLimit

Syntax

array|string crmgetChangedOrdersUserFieldsLimit( array( string $session_id, int $timestamp, int $count, int $offset) )

Beschreibung

Rückgabe wie crmgetChangedOrders

Mit Parametern count und offset kann die Anzahl zurückgegebener und Zahl der vom Beginn des Resultsets übersprungenen Einträge kontrolliert werden.

Gibt Fehlermeldung als Zeichenkette zurück, sollte eines der Parameter nicht im Übergabearray gefunden werden.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der zurückgegebenen Auftrag-UserField Arrays sind identisch mit denen von crmgetChangedOrdersUserFields

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> (time() - (86400 * 30)),
		'count'			=> 100,    // max. 100 entries
		'offset'		=> 0   // beginning from the start
	);
 
	// fetch userdefined fields of first 100 Orders that have been modified within the last 30 days
	$result = $orders->crmgetChangedOrdersUserFieldsLimit($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.14. crmgetOrderFields

Syntax

array|string crmgetOrderFields( array( string $session_id) )

Beschreibung

Liefert ein Array mit den Felddefinitionen der Auftragsrelation des RDBMS.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des Rückgabe Arrays

Typ(Länge)              Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     Key                       Fortlaufende Nummer
array                   Value                     assoziatives Array mit Elementen:
                                                  label: der angezeigte Name des Feldes
                                                  field: Name des Feldes in der Datenbank
                                                  type:  Typ des Feldes

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'  => $session_id
	);
 
	// fetch a field description of Orders database relation
	$result = $orders->crmgetOrderFields($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.15. crmgetOrderUserFields

Syntax

array|string crmgetOrderUserFields( array( string $session_id, int $order_id) )

Beschreibung

Liefert ein Array mit den Daten der benutzerdefinierten Felder eines mit Parameter order_id spezifizierten Auftrages zurück. Bei fehlendem Parameter order_id im Übergabearray wird eine Fehlermeldung als Zeichenkette zurückgegeben

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der Arrayelemente der Rückgabe:

Type(Length)            Arrayelement              Beschreibung
---------------------------------------------------------------------------------------------
string(255)             name                      Name des benutzerdefinierten Auftrags-Feldes
string(255)             value                     Wert des benutzerdefinierten Auftrags-Feldes

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// fetch userdefined fields of assumed Order #1337
	$result = $orders->crmgetOrderUserFields($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.16. crmsearchOrders

Syntax

array|string crmsearchOrders( array( string $session_id, array $serch_term, int $timestamp [, int $count, int $offset, array $sort, int $userid]) )

Beschreibung

Liefert ein Array mit Aufträgen zurück, die auf die in Parameter search_term angegebenen Kriterien passen und seit Parameter timestamp geändert worden sind. Wenn timestamp = 0 werden alle Treffer zurückgegeben.

Gibt Fehlermeldung als Zeichenkette zurück, sollte eines der Parameter search_term oder timestamp nicht im Übergabearray gefunden werden. Mit den optionalen Parametern count und offset kann die Anzahl zurückgegebener Einträge sowie die Zahl vom Beginn des Resultsets übersprungener Einträge kontrolliert werden.

Mit dem optionalem Parameter sort kann das Resultset nach Vorgaben sortiert werden.

Der optionale Parameter userid ermöglicht, für die übergebene Benutzer ID ggf. vorliegende Erinnerungen den zurückgegebenen Aufträgen hinzuzufügen.

Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften der zurückgegebenen Auftrag Objekte: sind identisch mit denen in crmgetOrder

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders	= new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params	= array(
		'session_id'	=> $session_id,
		'search_term'	=> array(
			// fieldname => searchvalue
			'subject'	=> 'Testorder',
			// AND fieldname => multiple values ...
			'shortdesc' => array(
				'service',
				'Test'
			),
		),
		'timestamp'	=> (time() - (86400 * 30)),
		'count'		=> 100,
		'offset'	=> 0,
		'userid'	=> 0,
		'sort'		=> array( 'order_date' => 'desc')
	);
 
	// fetch first 100 Orders matching above searchterms that have been modified
	// within the last 30 days and sort it by order_date descending
	$result = $orders->crmsearchOrders($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.17. crmCreateFollowUp

Syntax

int|string crmCreateFollowUp( array( string $session_id, int $order_id [, string $article_list_ids]) )

Beschreibung

Erstellt einen Unterauftrag aus den Daten des Auftrages mit übergebener ID order_id und liefert bei Erfolg die ID des angelegten Unterauftrages zurück.

Parameter article_list_ids ist eine optionale Doppelpunkt-getrennte Liste von Artikel-IDs aus der Artikelliste eines Angebotes. Die Verwendung von Artikelposten Listen setzt das Vorhandensein der Artikelverwaltung als Bestandteil des Rechnungsmoduls voraus.

Gibt eine Fehlermeldung als Zeichenkette zurück, sollte das Parameter order_id nicht im Übergabearray gefunden werden.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// create a sub-order from the dataof assumed Order #1337
	// Order #1337 will be the "parent order" of the new sub-order
	$new_id = $orders->crmCreateFollowUp($params);
 
	echo 'new sub-order created with ID: '.$new_id;
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.18. crmToContract

Setzt das Vorhandensein des Vertrags- Moduls im TecArt-System voraus.

Syntax

int|string crmToContract( array( string $session_id, int $order_id [, string $article_list_ids]) )

Beschreibung

Erzeugt einen neuen Vertrag aus den Daten des Auftrages mit übergebener ID order_id und liefert bei Erfolg die ID des angelegten Vertrages zurück.

Parameter article_list_ids ist eine optionale Doppelpunkt-getrennte Liste von Artikel-IDs aus der Artikelliste eines Angebotes. Die Verwendung von Artikelposten Listen setzt das Vorhandensein der Artikelverwaltung als Bestandteil des Rechnungsmoduls voraus.

Gibt eine Fehlermeldung als Zeichenkette zurück, sollte das Parameter order_id nicht im Übergabearray gefunden werden.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// create a new contract from the data of assumed Order #1337
	$new_id = $orders->crmToContract($params);
 
	echo 'new Contract created with ID: '.$new_id;
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.19. crmGotoNextFlowStatus

Syntax

void|string crmGotoNextFlowStatus( array( string $session_id, int $order_id) )

Beschreibung

Setzt den Bearbeitungsstand des angegebenen Auftrages um eine Stufe nach oben.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// advance the flow_status of assumed Order #1337
	$result = $orders->crmGotoNextFlowStatus($params);
 
	if ($result) {
		echo 'Failed to advance flow_status: `'.$result.'`';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.20. crmMergeToContract

Syntax

int|string crmMergeToContract( array( string $session_id, int $order_id, int $contract_id [, string article_list_ids]) )

Beschreibung

Fügt einen Auftrag zu einem Vertrag hinzu. Gibt die ID Zielvertrags zurück. Parameter order_id ist die ID des Auftrages, dessen Daten dem Vertrag hinzugefügt werden sollen. Parameter contract_id ist die ID des Zielvertrages. Parameter article_list_ids ist eine Doppelpunkt-getrennte Liste von Artikel-IDs aus der Artikelliste eines Angebotes (optional).

article_list_ids ist eine optionale Doppelpunkt-getrennte Liste von Artikel-IDs aus der Artikelliste eines Angebotes. Die Verwendung von Artikelposten Listen setzt das Vorhandensein der Artikelverwaltung als Bestandteil des Rechnungsmoduls voraus.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders	= new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params = array(
		'session_id'	=> $session_id,
		'order_id'		=> 1337
	);
 
	// advance the flow_status of assumed Order #1337
	$result = $orders->crmGotoNextFlowStatus($params);
 
	if ($result) {
		echo 'Failed to advance flow_status: `'.$result.'`';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.21. crmUnlockOrder

Syntax

int|string crmUnlockOrder( array( string $session_id, int $order_id) )

Beschreibung

Gibt einenAuftrag wieder zur Bearbeitung frei. Gibt im Erfolgsfall die ID des Auftrages zurück.

Gibt eine Fehlermeldung als Zeichenkette zurück, wenn Parameter order_id nicht im Übergabearray gefunden werden kann.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$order_id = 1337;
	$params   = array(
		'session_id'	=> $session_id,
		'order_id'		=> $order_id
	);
 
	// advance the flow_status of assumed Order #1337
	$result = $orders->crmUnlockOrder($params);
 
	if ($result != $order_id) {
		echo 'Failed to unlock Order: `'.$result.'`';
	}
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.22. getIdByExtId

(Version >= 4.2)

 

getIdByExtId() steht nur mit vorhandenem Rechnungsmodul zur Verfügung.


Syntax

array getIdByExtId( string $external_id ) 

Beschreibung

Liefert interne ID(s) von Aufträgen mit der übergebenen externen ID zurück.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zurückgegebenen order IDs array:

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

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params   = array(
		'session_id'	=> $session_id,
		'ext_id'		=> 54678
	);
 
	$result = $orders->crmIdByExtId($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.23. getAllExtIds

(Version >= 4.2)

Hinweis

 

getAllExtIds() steht nur mit vorhandenem Rechnungsmodul zur Verfügung.

Syntax

array getAllExtIds() 

Beschreibung

Liefert eine Liste aller externen IDs in Aufträgen zurück.

Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zurückgegebenen order IDs array:

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
int			$id			     externe Auftrag-Id 

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$orders   = new crm_rest_api('http://hostname/dirname/rest/index.php/orders');
	$params   = array(
		'session_id'  => $session_id
	);
 
	$result = $orders->crmAllExtIds($params);
 
	echo print_r($result, true);
}
catch (CRMException $e) {
	echo 'Exception catched: ' .$e->getMessage(). "\n";
}



2.24. crmGetArticles

(Version >= 4.2)

Syntax:

array crmGetArticles(array( string $session_id, int $order_id))

Beschreibung:

Gibt Artikelliste des Auftrages zurück.

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

Beispiel:

<?php
 
try {
	$articles = $orders->crmGetArticles(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $order_id
		)
	);
   
	foreach($articles as $article) {
		foreach($article as $key => $val) {
			echo "$key => $val<br>\n";
		}
	}
	echo "<hr/>";
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.25. crmAddArticleToList

(Version >= 4.2)

Syntax:

array crmAddArticleToList( array( string $session_id, int $order_id, int $article_id))

Beschreibung:

Fügt den Artikel mit der übergebenen ID zu einem Auftrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

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

Beispiel:

<?php
 
try {
	$success = $orders->crmAddArticleToList(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $order_id,
			'article_id'	=> 10
		)
	);    
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.26. crmAddTextToList

(Version >= 4.2)

Syntax:

array crmAddTextToList( array( string $session_id, int $order_id, string $text))

Beschreibung:

Fügt einen Artikel-Text zu einem Auftrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

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

Beispiel:

<?php
 
try {
	$success = $orders->crmAddTextToList(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $order_id,
			'text'			=> 'Das ist ein Text'
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.27. crmAddSpecialToList

(Version >= 4.2)

Syntax:

array crmAddSpecialToList( array( string $session_id, int $order_id, array $crmBillingItem))

Beschreibung:

Fügt einen Sonderartikel zu einem Auftrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

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

crmBillingItem ist ein assoziatives Array.

Eigenschaften:

Typ             Eigenschaft                          Beschreibung
---------------------------------------------------------------------------------------------
int             $quantity                            Menge
string          $realnumber                          Artikelnummer
string          $name                                Bezeichnung
int             $taxrate                             Steuersatz-Index
double          $discount                            Rabatt
int             $interval                            Abrechnungszeitraum-Index
string          $description                         Beschreibung
int             $ext_id                              Externe ID ( ab Version 4.2 )

Beispiel:

<?php
 
try {
	$data = array(
		'quantity'		=> 10,
		'realnumber'	=> '100001',
		'name'			=> 'API Special Article',
		'description'	=> 'API Special Article',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1
	);
 
	$success = $orders->crmAddSpecialToList(
		array(
			'session_id'		=> $session_id,
			'object_id'			=> $order_id,
			'crmBillingItem'	=> $data
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.28. crmAddGrouplineToList

(Version >= 4.2)

Syntax:

array crmAddGrouplineToList( array( string $session_id, int $order_id, array $crmBillingItem))

Beschreibung:

Fügt eine Gruppenzeile zu einem Auftrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

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

crmBillingItem ist ein assoziatives Array.

Eigenschaften:

Typ             Eigenschaft                          Beschreibung
---------------------------------------------------------------------------------------------
int             $quantity                            Menge
string          $name                                Bezeichnung
int             $taxrate                             Steuersatz-Index
double          $discount                            Rabatt
int             $interval                            Abrechnungszeitraum-Index
string          $description                         Beschreibung
int             $ext_id                              Externe ID ( ab Version 4.2 )

Beispiel:

<?php
 
try {
	$data = array(
		'quantity'		=> 3,
		'name'			=> 'API Groupline',
		'description'	=> 'API Groupline',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1
	);
 
	$success = $orders->crmAddGrouplineToList(
		array(
			'session_id'		=> $session_id,
			'object_id'			=> $order_id,
			'crmBillingItem'	=> $data
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.29. crmAddMultipleToList

(Version >= 4.2)

Syntax:

array crmAddMultipleToList( array( string $session_id, int $order_id, array $crmMultipleListItems))

Beschreibung:

Fügt der Artikelliste eines Auftrages mehrere Artikel, Texte und/oder Gruppenzeilen hinzu. Im Erfolgsfall wird 1 zurückgegeben.

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

crmMultipleListItems ist ein Array von Artikeln, die Eigenschaften sind die selben wie crmAddArticleToList, crmAddTextToList, crmAddSpecialToList und crmAddGrouplineToList. Die Unterscheidung erfolgt über das Feld "type".

Eigenschaften:

Typ             Eigenschaft                          Beschreibung
---------------------------------------------------------------------------------------------
array           $crmMultipleListItems                Artikelliste

Beispiel:

<?php
 
try {
	$items = array();
 
	$items['crmMultipleListItems'][] = array('type' => 'article', 'id' => 10);
	$items['crmMultipleListItems'][] = array('type' => 'text','text' => 'API-AddMultiple Text');
 
	$specialItem = array(
		'quantity'		=> 10,
		'realnumber'	=> '100001',
		'name'			=> 'API Special Article',
		'description'	=> 'API Special Article',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1,
		'type'			=> 'special'
	);    
	$items['crmMultipleListItems'][] = $specialItem;
 
	$data = array(
		'quantity'		=> 3,
		'name'			=> 'API Groupline',
		'description'	=> 'API Groupline',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1,
		'type'			=> 'groupline'
	);
	$items['crmMultipleListItems'][] = $specialItem;
   
	$success = $orders->crmAddMultipleToList(
		array(
			'session_id'		=> $session_id,
			'object_id'			=> $order_id,
			'crmBillingItem'	=> $items
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.30. crmRemoveArticleFromList

(Version >= 4.2)

Syntax:

array crmRemoveArticleFromList( array( string $session_id, int $order_id, int $article_id))

Beschreibung:

Löscht den Artikel mit der angegeben ID aus der Artikelliste des Auftrages. Im Erfolgsfall wird 1 zurückgegeben.

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

Beispiel:

<?php
 
try {
	$success = $orders->crmRemoveArticleFromList(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $order_id,
			'article_id'	=> 11
		)
	);
   
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



2.31. crmsetDuplicateConfig

(Version >= 4.4)

Syntax:

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

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.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/orders';
	$session_id  = session_id();
	$orders      = new crm_rest_api($rest_url);
 
	$params  = array(
		'session_id'	=> $session_id,
		'fields'		=> array('flow_status', 'order_date')
	);
	$success = $orders->crmsetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo ($success ? 'override successful' : $success);



2.32. crmgetDuplicateConfig

(Version >= 4.4)

Syntax:

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

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.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/orders';
	$session_id  = session_id();
	$orders      = new crm_rest_api($rest_url);
 
	$params	= array('session_id' => $session_id);
	$fields	= $orders->crmgetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo print_r($fields, true);
  • No labels