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

Bitte beachten Sie, dass seit TecArt Version 4.10 und aufwärts der SOAP Webservice nicht mehr weiterentwickelt wird. Ab der TecArt Version 5.1 ist der SOAP Webservice nicht mehr unterstützt.

Please note: with the release of TecArt version 4.10 onwards SOAP Webservice will no longer be updated or expanded. With the release of TecArt version 5.1, the soap webservice will be deprecated.

Das Modul, soweit in der jeweiligen Lizenz enthalten, und sämtliche dazugehörigen Schnittstellen sowie Webservice Funktionalitäten stehen ab Version >= 4.2 zur Verfügung.

1. WSDL-URI

http://hostname/dirname/soap/index.php?op=orders&wsdl

z.B. https://test.tecart-system.de/soap/index.php?op=orders&wsdl

2. Methoden

2.1. crmgetOrder

Syntax

SoapVar crmgetOrder( string $session_id, int $order_id)

Beschreibung:

Gibt eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit einem Auftrag-Objekt als Element zurück.

order_id ist die interne Auftrags- ID.

Eigenschaften der zurückgegebenen order Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Auftrags-ID
string                  $cid                      Contact-ID, Format: Contact-ID:Person-ID
int                     $pid                      Projekt-ID
int                     $offer_id                 Angebot-ID
int                     $parent_id                interne ID eines übergeordneten "Elternauftrages"
int                     $client_account_id        interne ID eines verbundenen Rechnungskontos (abhängig von Contact)
int                     $ext_id                   Externe ID
string(255)             $realnumber               Auftragsnummer
string(65535)           $notes                    Freitext Notizen zum Auftrag
string(255)             $subject                  Betreffzeile des Auftrages
string(255)             $shortnotes               Kurzbeschreibung zum Auftrag
int                     $order_date               Unix- Timestamp Auftragsdatum
int                     $start_date               Unix- Timestamp Datum des Auftragsbeginns
int                     $maturity_date            Unix- Timestamp Datum der Auftragsfälligkeit
double                  $order_volume             Betrag des gesamten Auftragsvolumens
double                  $amount_invoiced          Summe der abgerechneten Beträge/Posten
int                     $flow_status              Bearbeitungsstatus
                                                  0 = In Bearbeitung
                                                  1 = Erstellt
                                                  2 = Geprüft
                                                  3 = Erteilt
                                                  4 = Erledigt
                                                  5 = Abgerechnet
                                                  6 = Storniert

int                     $autoprice                Preisberechnung 
                                                  0 = Nein
                                                  1 = Ja, aktiviert die Artikelliste sofern vorhanden

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ändiges 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 )
int                     $chguser                  User ID der letzten Änderung
int                     $chgtime                  Unix-Timestamp der letzten Änderung
int                     $createuser               User ID 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 
ini_set('soap.wsdl_cache_enabled', '0'); 
//fetch Order with ID 1337 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 
$order_id = 1337; 

try { 
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl'); 
	$session_id 	= $client_logon→crmLogin('test', 'test'); 
	if (!$session_id) { 
		die('invalid login');
 	} 
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl'); 
	$result 		= $client_orders→crmgetOrder($session_id, $order_id); 
}
catch (SOAPFault $f) { 
	print $f→faultstring; 
} 

foreach($result as $order) { 
	foreach($order as $property ⇒ $val) { 
		echo $property.' ⇒ '.$val."<br/>\n"; 
		if (is_array($val)) { 
			echo serialize($val); 
		} 
	} 
} 


2.2. crmgetOrdersFrom

Syntax 

SoapVar crmgetOrdersFrom( string $session_id, int $month, int $year ) 

Beschreibung Gibt eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit allen Auftragsobjekten ab dem gegebenen Zeitpunkt zurück. Referenz hierbei ist das Datum des Auftragsstarts start_date. Wenn month gesetzt ist werden nur Aufträge dieses Monats zurückgegeben. Wenn month auf 0 gesetzt ist werden Aufträge für alle Monate zurückgegeben. Wenn year gesetzt ist werden nur Aufträge dieses Jahres zurückgegeben. Wenn year auf 0 gesetzt ist werden Aufträge für alle Jahre zurückgegeben. 

Eigenschaften der zurückgegebenen order Objekte: sind die selben wie für crmgetOrder 

Beispiel 

<?php 
ini_set('soap.wsdl_cache_enabled', '0');
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try { 
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl'); 
	$session_id 	= $client_logon→crmLogin('test', 'test'); 

	if (!$session_id) { 
		die('invalid login'); 
	} 

	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$result 		= $client_orders→crmgetOrdersFrom($session_id, 0, 0); 
} 
catch (SOAPFault $f) { 
	print $f→faultstring; 
} 

foreach($result as $order) { 
	foreach($order as $property ⇒ $val) { 
		echo $property.' ⇒ '.$val."<br/>\n"; 
		if (is_array($val)) { 
			echo serialize($val); 
		}
	}
}

2.3. crmgetChangedOrders

Syntax: 

SoapVar crmgetChangedOrders( string $session_id, int $timestamp ) 

Beschreibung: Gibt eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit allen Auftragsobjekten zurück, die seit dem gegebenen Zeitpunkt $timestamp modifiziert worden sind. Referenz hierbei ist das Datum der letzten Änderung chgtime. $timestamp ist ein ganzzahliger Unix- Timestamp. Wenn $timestamp mit 0 übergeben wird, werden alle verfügbaren Aufträge erfaßt. 

Eigenschaften der zurückgegebenen order Objekte: sind die selben wie für crmgetOrder 

Beispiel

<?php 
ini_set('soap.wsdl_cache_enabled', '0'); 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 

try { 
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl'); 
	$session_id 	= $client_logon→crmLogin('test', 'test'); 

	if (!$session_id) { 
		die('invalid login');
	} 
	// all orders modified during the last 3 days
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl'); $timestamp = (time() - (3 * 86400));
	$result			= $client_orders->crmgetChangedOrders($session_id, $timestamp);
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}

foreach($result as $order) {
	foreach($order as $property => $val) {
		echo $property.' => '.$val."<br/>\n";
		if (is_array($val)) {
			echo serialize($val);
		}
	}
}



2.4. crmgetChangedOrdersLimit

Syntax:

SoapVar crmgetChangedOrdersLimit( string $session_id, int $timestamp, int $count, int $offset )

Beschreibung:

Gibt eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit allen Auftragsobjekten zurück, die seit dem gegebenen Zeitpunkt $timestamp modifiziert worden sind.

Referenz hierbei ist das Datum der letzten Änderung chgtime.

$timestamp ist ein ganzzahliger Unix- Timestamp. Wenn $timestamp mit 0 übergeben wird, werden alle verfügbaren Aufträge erfaßt.

$count ist ein ganzzahliger Wert, mit dem die maximal zurückgegebene Menge an Aufträgen limitiert werden kann.

$offset ist ein ganzzahliger Wert, mit dem bestimmt werden kann, wieviele Einträge vom Beginn aller erfaßten Aufträge übersprungen werden sollen.

Eigenschaften der zurückgegebenen order Objekte:

sind die selben wie für crmgetOrder

Beispiel

<?php ini_set('soap.wsdl_cache_enabled', '0');

$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {

	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	// all orders modified during the last 3 days
	$timestamp		= (time() - (3 * 86400));	
	// fetch 50 order objects modified during the past 3 days and skipping the first 100 
	// i.e. fetch entries #101 - #150
	$result		= $client_orders->crmgetChangedOrdersLimit($session_id, $timestamp, 50, 100);
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}

foreach($result as $order) {
	foreach($order as $property => $val) {
		echo $property.' => '.$val."<br/>\n";
		if (is_array($val)) {
			echo serialize($val);
		}
	}
}



2.5. crmgetOrderIds

Syntax

SoapVar crmgetOrderIds( string $session_id, int $timestamp )

Beschreibung

Liefert eine Instanz von SoapVar enkodiert als Array (SOAP_ENC_ARRAY) mit Auftragsobjekten zurück, die lediglich die interne ID des Auftrages als Eigenschaft enthalten.

$timestamp ist ein Unix-Timestamp und bestimmt den Zeitpunkt der letzten Änderung, ab dem Auftrags IDs zurückgegeben werden sollen. Wenn $timestamp = 0 werden alle Auftrag IDs zurückgegeben.

Eigenschaften der zurückgegebenen crmgetOrderIdsResult Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Auftrags-ID

Beispiel

<?php
ini_set('soap.wsdl_cache_enabled', '0');

$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$result			= $client_orders->crmgetOrderIds($session_id, 0);
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

foreach($result as $order) {
	echo 'Order ID: '.$order->id.'<br />';
}



2.6. crmgetOrderIdsString

Syntax

string crmgetOrderIdsString( string $session_id, int $timestamp )

Beschreibung

Aufruf und Parameter analog zu crmgetOrderIds.

Die ermittelten Auftrag IDs werden als Zeichenkette mit ":" als Trennzeichen zurückgegeben.

Beispiel

<?php 
ini_set('soap.wsdl_cache_enabled', '0');

$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {

	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$result			= $client_orders->crmgetOrderIdsString($session_id, 0);
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}

$orders = explode(':', $result); echo '<pre>'.print_r($orders, true).'</pre>'; ?>



2.7. crmgetOrderResubmissions

Syntax

SoapVar|string CRMException message crmgetOrderResubmissions( string $session_id, int $order_id, int $user_id )

Beschreibung

Gibt eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit Wiedervorlageobjekten zurück.

Rückgabe muß mit Parametern $order_id und $user_id spezifiziert werden.

Eigenschaften der zurückgegebenen crmgetOrderResubmissionsResult Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       ID der Wiedervorlage
string(255)             $type                     Identifizierung des zugehörigen Moduls (hier z.B. "order")
int                     $oid                      ID des Order Objektes
string(255)             $item                     Betreff des Order Objektes (order->subject)
int                     $date                     Unix-Timestamp des Datums der Wiedervorlage
int                     $maturity                 Unix-Timestamp des Zeitpunkts der Erinnerung auf die Wiedervorlage
int                     $seen                     Unix-Timestamp des Zeitpunkts der ersten Einsichtnahme des betreffenden Benutzers
int                     $createuser               User ID des Erstellers
int                     $createtime               Unix-Timestamp des Zeitpunkts der Erstellung
int                     $chguser                  User ID des Benutzers, der die letzte Änderung vorgenommen hat
int                     $chgtime                  Unix-Timestamp des Zeitpunkts der letzten Änderung

Beispiel

<?php ini_set('soap.wsdl_cache_enabled', '0');

$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	// fetch all resubmissions of order ID 1337 concerning or created by user ID 12
	$result = $client_orders->crmgetOrderResubmissions($session_id, 1337, 12);
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}

foreach($result as $resub) {
	echo 'Resubmission ID: '.$resub->id.'<br />';
} ?>



2.8. crmaddOrder

Syntax

int crmaddOrder( string $session_id, crmOrderItem $crmOrderItem )

Beschreibung

Fügt nach Übergabe eines Objektes $crmOrderItem einen neuen Auftrag hinzu und liefert die interne ID des neu angelegten Auftrages zurück.

Im Falle einer aufgefangenen CRMException wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zu übergebenden crmOrderItem Objektes:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $subject                  Betreffzeile (Pflichtfeld)
string(255)             $shortnotes               Kurzbeschreibung
string(65535)           $notes                    Notizfeld
string                  $cid                      Contact-ID, Format: Contact-ID:Person-ID (Pflichtfeld)
int                     $pid                      Projekt ID
int                     $offer_id                 Angebot ID
int                     $parent_id                interne ID eines übergeordneten "Elternauftrages"
string(255)             $ext_id                   externe ID
int                     $leader                   Zuständiger User, User-ID
int                     $substitute               stellvertretend zuständiger User, User-ID
int                     $client_account_id        ID Rechnungskonto (in Verbindung mit gesetzter $cid)
int                     $order_date               Unix-Timestamp Auftragsdatum (Pflichtfeld)
int                     $start_date               Unix-Timestamp Datum Auftragsbeginn (Pflichtfeld)
int                     $maturity_date            Unix-Timestamp Datum Auftragsfälligkeit
int                     $duration                 ganzzahliger Wert repräsentativ für Monate der Laufzeit (default sollte 1 sein)
double                  $order_volume             Betrag des gesamten Auftragsvolumens
double                  $amount_invoiced          Summe der abgerechneten Beträge/Posten
int                     $flow_status              Bearbeitungsstatus
                                                  0 = In Bearbeitung
                                                  1 = Erstellt
                                                  2 = Geprüft
                                                  3 = Erteilt
                                                  4 = Erledigt
                                                  5 = Abgerechnet
                                                  6 = Storniert

int                     $autoprice                Preisberechnung (Pflichtfeld)
                                                  0 = Nein
                                                  1 = Ja, aktiviert die Artikelliste sofern vorhanden

string(255)             $contact_name             Contact- Ansprechpartner Name
string(255)             $contact_email            Contact- Ansprechpartner E-Mail
string(255)             $contact_phone            Contact- Ansprechpartner Telefon
int                     $serie                    Serientermin
                                                  1 = täglich
                                                  2 = wöchentlich
                                                  3 = monatlich
                                                  4 = jährlich

int                     $intrval                  Serietermin-Interval (z.B. 2) 
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 
class myOrderObject 
{

	// declare my desired properties of crmOrderItem
	public $subject;	// mandatory
	public $shortnotes;
	public $notes;
	public $cid;		// mandatory
	public $pid;
	public $order_date;	// mandatory
	public $start_date;	// mandatory
	public $maturity_date;
	public $duration;
}

ini_set('soap.wsdl_cache_enabled', '0'); 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$new_order 					= new myOrderObject();
	$new_order->subject			= 'My Testorder subject';
	$new_order->shortnotes		= 'we try to add a new order';
	$new_order->notes			= '';
	$new_order->cid				= '512:';	// a contact ID 
	$new_order->order_date		= time();
	$new_order->start_date		= time();
	$new_order->maturity_date	= (time() + (86400 * 6));
	$new_order->duration		= 3;

	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$order_id		= $client_orders->crmaddOrder($session_id, $new_order);
	echo 'new Order created with ID: '.$order_id;
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.9. crmaddOrders

Syntax

boolean crmaddOrders( string $session_id, crmOrderItems|array $crmOrderItems )

Beschreibung

Fügt mehrere Aufträge anhand des übergebenen Arrays mit einem oder mehreren crmOrderItem Objekten hinzu.

$crmOrderItems ist entweder ein Objekt mit einer Eigenschaft crmOrderItems vom Typ Array oder ein Array mit einem Element "crmOrderItems", welches wiederum ein Array ist. (siehe Beispiele)

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

Eigenschaften des zu übergebenden crmOrderItems Parameters:

Möglichkeit 1, ALS OBJEKT:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
array                   $crmOrderItems            Array, in welches alle hinzuzufügenden crmOrderItem- Objekte 
                                                  geladen werden

Möglichkeit 2, ALS ARRAY

Type(Length)            Arrayelement              Beschreibung
---------------------------------------------------------------------------------------------
array                   "crmOrderItems"           Array, in welches alle hinzuzufügenden crmOrderItem- Objekte 
                                                  geladen werden

Beispiel 1

<?php 
class crmOrderItems 
{

	/**
 	 * @var array
 	 */
	public $crmOrderItems;
}

class myOrderObject 
{
	// declare my desired properties of crmOrderItem
	public $subject;	// mandatory
	public $shortnotes;
	public $notes;
	public $cid;		// mandatory
	public $pid;
	public $order_date;	// mandatory
	public $start_date;	// mandatory
	public $maturity_date;
	public $duration;
}

ini_set('soap.wsdl_cache_enabled', '0'); $soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$order1			= new myOrderObject();
	$order2			= new myOrderObject();
	$myOrderItems	= new crmOrderItems();

	// define the order properties
	$order1->subject		= 'My Testorder 1 subject';
	$order1->shortnotes		= 'we try to add a new order';
	$order1->notes			= '';
	$order1->cid			= '150:';
	$order1->order_date		= time();
	$order1->start_date		= time();
	$order1->maturity_date	= (time() + (86400 * 6));
	$order1->duration		= 1;
	$order2->subject		= 'My Testorder 2 subject';
	$order2->shortnotes		= 'we try to add another new order';
	$order2->notes			= 'this is supposed to be Number 2';
	$order2->cid			= '123:4711';	// some contact ID with person ID
	$order2->order_date		= time();
	$order2->start_date		= time();
	$order2->maturity_date	= (time() + (86400 * 6));
	$order2->duration		= 24;
	// dump the crmOrderItem objects to crmOrderItems
	$myOrderItems->crmOrderItems = array($order1, $order2);
	if ($client_orders->crmaddOrders($session_id, $myOrderItems) === true) {
		echo 'all orders added successfully';
	}
	else {
		echo 'failed to insert all orders';
	}
	echo 'new Order created with ID: '.$order_id;
} 
catch (SOAPFault $f) {
	print $f->faultstring;
} 


Beispiel 2

<?php 
class myOrderObject 
{
	// declare my desired properties of crmOrderItem
	public $subject;	// mandatory
	public $shortnotes;
	public $notes;
	public $cid;		// mandatory
	public $pid;
	public $order_date;	// mandatory
	public $start_date;	// mandatory
	public $maturity_date;
	public $duration;
}

ini_set('soap.wsdl_cache_enabled', '0'); $soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$order1			= new myOrderObject();
	$order2			= new myOrderObject();

	// define the order properties
	$order1->subject		= 'My Testorder 1 subject';
	$order1->shortnotes		= 'we try to add a new order';
	$order1->notes			= '';
	$order1->cid			= '150:';
	$order1->order_date		= time();
	$order1->start_date		= time();
	$order1->maturity_date	= (time() + (86400 * 6));
	$order1->duration		= 3;
	$order2->subject		= 'My Testorder 2 subject';
	$order2->shortnotes		= 'we try to add another new order';
	$order2->notes			= 'this is supposed to be Number 2';
	$order2->cid			= '123:4711';	// some contact ID with person ID
	$order2->order_date		= time();
	$order2->start_date		= time();
	$order2->maturity_date	= (time() + (86400 * 6));
	$order2->duration		= 12;
	// here's the crucial difference to example 1 !
	// $myOrderItems is an Array with a designated element "crmOrderItems"
	$myOrderItems = array('crmOrderItems' => array($order1, $order2));
	if ($client_orders->crmaddOrders($session_id, $myOrderItems) === true) {
		echo 'all orders added successfully';
	}
	else {
		echo 'failed to insert all orders';
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
} ?>



2.10. crmaddOrderResubmission

Syntax

boolean|string CRMException message crmaddOrderResubmission( string $session_id, crmOrderResubItem $crmOrderResubItem )

Beschreibung

Fügt eine neue Wiedervorlage für spezifiziertes Auftrags Objekt und betreffenden Benutzer.

Liefert boolean TRUE/FALSE zurück.

Im Falle einer aufgefangenen CRMException wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Eigenschaften des zu übergebenden crmOrderResubItem Objektes:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $oid                      interne ID des Auftrag Objektes
int                     $userid                   User ID des betreffenden Benutzers (default: ID des aktiven Benutzers)
int                     $date                     Unix-Timestamp des Wiedervorlage Datums
int                     $maturity                 Unix-Timestamp des Zeitpunkts der Erinnerung an die Wiedervorlage
string(255)             $subject                  Kommentar-/Betrefftext für die Wiedervorlage

Beispiel

<?php 
class myOrderResubItem 
{
	// declare properties of crmOrderResubItem
	public $subject;
	public $oid;
	public $date;
	public $userid;
}

ini_set('soap.wsdl_cache_enabled', '0'); $soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$new_resub			= new myOrderResubItem();
	$new_resub->subject	= 'new Order resubmission';
	$new_resub->oid		= 1337;				// an Order object ID
	$new_resub->userid	= 12;				// concerning user's ID
	$new_resub->date	= (time() + (86400 * 6));	// resubmission in 3 days
	$client_orders		= new SOAPClient($soap_url.'orders&wsdl');
	$result				= $client_orders->crmaddOrderResubmission($session_id, $new_resub)
	if ($result) {
		echo 'Resubmission added successfully';
	}
	else {
		echo 'Failed to add resubmission: '.$result;
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.11. crmchangeOrder

Syntax

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

Beschreibung

Ändert die in $crmOrderItem übergebenen Eigenschaften eines Auftrages.

Liefert bei Erfolg die ID des Auftrages als Rückgabewert.

Im Falle einer aufgefangenen CRMException wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

$order_id ist die interne ID des zu ändernden Auftrages.

Eigenschaften des zu übergebenden crmOrderItem Objektes: sind identisch mit crmOrderItem in crmaddOrder. Beispiel

<?php 
class myOrderObject 
{
	// declare my desired properties of crmOrderItem
	public $subject;	// mandatory
	public $shortnotes;
	public $notes;
	public $cid;		// mandatory
	public $pid;
	public $order_date;	// mandatory
	public $start_date;	// mandatory
	public $maturity_date;
}

ini_set('soap.wsdl_cache_enabled', '0'); $soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	// let's assume there's an order in the system with ID 1337
	$fetch			= $client_orders->crmgetOrder($session_id, 1337);
	$current_order	= $fetch[0];
	$order			= new myOrderObject();
	// set mandatory properties that won't be changed
	$order->realnumber	= $current_order->realnumber;
	$order->autoprice	= $current_order->autoprice;
	$order->order_date	= $current_order->order_date;
	$order->start_date	= $current_order->start_date;
	$order->cid			= $current_order->cid;
	// set properties that are to be changed
	$order->subject			= 'changed Testorder subject';
	$order->shortnotes		= 'we try to change an order';
	$order->maturity_date	= (time() + (86400 * 14));
	$client_orders			= new SOAPClient($soap_url.'orders&wsdl');
	$check					= $client_orders->crmchangeOrder($session_id, $current_order->id, $order);
	if ($check == $current_order->id) {
		echo 'Order 1337 successfully changed';
	}
	else {
		echo "Failure to change Order 1337: `$check`";
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.12. crmchangeOrders

Syntax

boolean crmchangeOrders( string $session_id, crmOrderItems|array $crmOrderItems )

Beschreibung

Ändert die Eigenschaften der in $crmOrderItems übergebenen crmOrderItem Objekte.

Gibt bei Erfolg boolean TRUE zurück. Im Falle aufgefangener CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

$crmOrderItems ist entweder ein Objekt mit einer Eigenschaft crmOrderItems vom Typ Array oder ein Array mit einem Element "crmOrderItems", welches wiederum ein Array ist. (siehe Beispiele)

Eigenschaften des zu übergebenden crmOrderItems Parameter: sind identisch mit crmOrderItems in crmaddOrders mit dem Zusatz, dass Eigenschaft id vorhanden sein muß !

Beispiel 1

<?php
class crmOrderItems 
{
	/**
 	 * @var array
 	 */
	public $crmOrderItems;
}

ini_set('soap.wsdl_cache_enabled', '0'); $soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	// we assume two order objects present in the system with IDs 1337 and 42
	$fetch		= $client_orders->crmgetOrder($session_id, 1337);
	$order1		= $fetch[0];
	$fetch		= $client_orders->crmgetOrder($session_id, 42);
	$order2		= $fetch[0];
	$myOrderItems	= new crmOrderItems();
	// define properties to be changed
	// note, that no mandatory properties are necessary to be set
	// because we're using the returned crmOrderItem objects from crmgetOrder()
	// NOTE: in order to change multiple Orders the crmOrderItem- objects need
	// to have the 'id' property ! In this example $order1->id is already set
	// from the retrieved orders
	$order1->subject	= 'Testorder 1 with changed subject';
	$order1->shortnotes	= 'we changed some data in this order';
	$order2->subject	= 'Testorder 2 with changed subject';
	$order2->notes		= 'maturity date changed';
	$order2->maturity_date	= (time() + (86400 * 30));
	// dump the crmOrderItem objects to crmOrderItems
	$myOrderItems->crmOrderItems = array($order1, $order2);
	if ($client_orders->crmchangeOrders($session_id, $myOrderItems) === true) {
		echo 'all orders changed successfully';
	}
	else {
		echo 'failed to update all orders';
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}


Beispiel 2

<?php 
class myOrderObject 
{
	// declare my mandatory and desired properties of crmOrderItem
	public $id;		// mandatory (in order to perform multiple updates)
	public $subject;	// mandatory
	public $realnumber;	// mandatory
	public $shortnotes;
	public $notes;
	public $cid;		// mandatory
	public $pid;
	public $order_date;	// mandatory
	public $start_date;	// mandatory
	public $maturity_date;
}

ini_set('soap.wsdl_cache_enabled', '0'); $soap_url = 'https://test.tecart-system.de/soap/index.php?op=';

//in this example we've got some data of our assumed order objects stored in an array 
$current_orders = array(
	array(
		'id'			=> 1337,
		'realnumber'	=> '10010',
		'subject'		=> 'Testorder 1',
		'order_date'	=> time(),
		'start_date'	=> time(),
		'cid'			=> '150:',
		'autoprice'		=> 0
	),
	array(
		'id'			=> 42,
		'realnumber'	=> '10185',
		'subject'		=> 'Testorder 2',
		'order_date'	=> time(),
		'start_date'	=> time(),
		'cid'			=> '123:4711';,
		'autoprice'		=> 0
	)
);

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$order1			= new myOrderObject();
	$order2			= new myOrderObject();

	// define the order properties
	$order1->id		= $current_orders[0]['id'];
	$order1->realnumber	= $current_orders[0]['realnumber'];
	$order1->cid		= $current_orders[0]['cid'];
	$order1->order_date	= $current_orders[0]['order_date'];
	$order1->start_date	= $current_orders[0]['start_date'];
	$order1->autoprice	= $current_orders[0]['autoprice'];
	$order1->subject	= 'Testorder 1 changed';
	$order1->shortnotes	= 'slight changes in the subject';
	// we can transfer the mandatories in a loop as well,
	// let's try this for the 2nd order object
	foreach ($current_orders[1] as $property => $value) {
		if (isset($order2->$key)) {
			$order2->$key = $value;
		}
	}
	$order2->shortnotes	= 'maturity date changed';
	$order2->maturity_date	= (time() + (86400 * 30));
	// $myOrderItems is an Array with a designated element "crmOrderItems"
	$myOrderItems = array('crmOrderItems' => array($order1, $order2));
	if ($client_orders->crmaddOrders($session_id, $myOrderItems) === true) {
		echo 'all orders updated successfully';
	}
	else {
		echo 'failed to update all orders';
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.13. crmdeleteOrder

Syntax

boolean crmdeleteOrder( string $session_id, int $order_id )

Beschreibung

Löscht einen Auftrag mit übergebener ID $order_id und liefert bei Erfolg boolean TRUE zurück.

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

Beispiel

<?php 
// delete Order with ID 1337 ini_set('soap.wsdl_cache_enabled', '0'); 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 
$order_id = 1337; 
try { 
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl'); 
	$session_id		= $client_logon→crmLogin('test', 'test'); 
	if (!$session_id) { 
		die('invalid login'); 
	} 
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl'); 
	$success		= $client_orders→crmdeleteOrder($session_id, $order_id); 
	if ($success === true) { 
		echo "Order $order_id successfully deleted";
	}
	else { 
		echo "Delete failed with return: `$success`"; 
	}
} 
catch (SOAPFault $f) { 
	print $f→faultstring; 
}


2.14. crmdeleteOrders

Syntax

boolean crmdeleteOrders( string $session_id, array $order_ids)

Beschreibung

Beschreibung Löscht alle Aufträge, mit den in Array $order_ids übergebenen IDs und liefert bei Erfolg boolean TRUE zurück. Im Falle von aufgefangenen CRMExceptions wird die daraus resultierende Nachricht als Zeichenkette zurückgegeben.

Beispiel

<?php 
//delete Orders with IDs 1337 and 42 
ini_set('soap.wsdl_cache_enabled', '0');

$soap_url	= 'https://test.tecart-system.de/soap/index.php?op='; 
$order_ids 	= array(1337, 42); 
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$success		= $client_orders->crmdeleteOrders($session_id, $order_ids);

	if ($success === true) {
		echo "All Orders successfully deleted";
	}
	else {
		echo "Delete failed with return: `$success`";
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.15. crmdeleteOrderResubmission

Syntax

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

Beschreibung

Löscht eine mittels $order_id und $resub_id identifizierte Wiedervorlage.

Liefert boolean TRUE/FALSE als Rückgabewert.

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

Beispiel

<?php

ini_set('soap.wsdl_cache_enabled', '0');

$soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 

try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	// delete resubmission with ID 257 belonging to Order object with ID 1337
	$success	= $client_orders->crmdeleteOrderResubmissions($session_id, 1337, 257);

	if ($success === true) {
		echo 'Resubmission successfully deleted';
	}
	else {
		echo "Delete failed with return: `$success`";
	}
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.16. crmgetOrderFields

Syntax

SoapVar crmgetOrderFields( string $session_id )

Beschreibung

Liefert eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit allen Feldern der Auftrags Stammrelation aus dem RDBMS.

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

Eigenschaften des zurückgegebenen array crmgetOrderFieldsResult:

Typ(Länge)              Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             Key                       Fortlaufende Nummer
array                   Value                     Objekt mit Eigenschaften:
                                                  label: der angezeigte Name des Feldes
                                                  field: Name des Feldes in der Datenbank
                                                  type:  Typ des Feldes

Beispiel:

<?php

try {

	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	$order_fields	= $client_orders->crmgetOrderFields($session_id);
	foreach ($order_fields as $fobj) {
		$output = 
			'Field '.$fobj->field.': <br />'.
			'type => '.$fobj->type.'<br />'.
			'label => '.$fobj->label.'<br /><br />';
		echo $output;
	}
} 
catch (CRMException $e) {
	echo $e->getMessage();
}

foreach( $fields as $val) {
	echo $val->field ."<br/>";
}



2.17. crmgetOrderUserFields

Syntax:

array crmgetOrderUserFields( string $session_id, int $order_id )

Beschreibung:

Gibt eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit einem Objekt als einziges Element zurück, dessen Eigenschaft OrderUserFields ein Array mit einer Anzahl Objekten OrderUserField ist, in denen die benutzerdefinierten Felder eines Auftrages abgelegt sind.

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

order_id ist die Auftrag-ID.

Eigenschaften der im Array crmgetOrderUserFieldsResult→OrderUserFields zurückgegebenen OrderUserField Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
array                   $OrderUserFields          Array mit OrderUserField Objekten - Feldnamen und deren Werte

Eigenschaften von OrderUserField:

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

Beispiel

<?php
 
// Get user defined fields of Order ID 1337
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon = new SOAPClient($soap_url.'logon&wsdl');
  	$session_id = $client_logon->crmLogin('test', 'test');
  	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
  	$result			= $client_orders->crmgetOrderUserFields($session_id, 1337);
 
	foreach ($result[0]->OrderUserFields as $field) {
    	echo $field->name." => ".utf8_decode($field->value)."<br>\n";
	}
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.18. crmgetChangedOrdersUserFields

Syntax:

array crmgetChangedOrdersUserFields( string $session_id, int $timestamp )

Beschreibung:

Gibt ein Array mit Benutzerdefinierten Auftragsfeldern zurück, die seit $timestamp geändert wurden

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

Eigenschaften der zurückgegebenen Order userfields Objekte:

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Auftrag-Id 
array                   $OrderUserFields          Array mit OrderUserField Objekte - Feldnamen und deren Werte

Eigenschaften von OrderUserField:

sind die selben wie für OrderUserField object in crmgetOrderUserFields

Beispiel:

<?php
 
// Get userdefined fields of Orders modified in the last 30 days
 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
  	$result			= $client_orders->crmgetChangedOrdersUserFields($session_id, (time() - (86400 * 30));
 
	foreach ($result as $order) {
    	echo 'Order ID: '.$order->id.' ';
 
		foreach ($order->OrderUserFields as $field) {
      		echo $field->name." => ".utf8_decode($field->value)."<br>\n";
    	}
  	}
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.19. crmgetChangedOrdersUserFieldsLimit

Syntax:

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

Beschreibung:

Gibt ein Array mit Benutzerdefinierten Auftragsfeldern zurück, die seit $timestamp geändert wurden, limitiert von $count und $offset.

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

Eigenschaften der zurückgegebenen Order userfields Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Auftrag-Id 
array                   $OrderUserFields          Array mit OrderUserField Objekte - Feldnamen und deren Werte

Eigenschaften von OrderUserField:

sind die selben wie für OrderUserField object in crmgetOrderUserFields

Beispiel:

<?php
 
// Get userdefined fields of first 10 Orders modified in the last 30 days
    
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id 	= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
	}
 
  	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
  	$result			= $client_orders->crmgetChangedOrdersUserFieldsLimit($session_id, (time() - (86400 * 30), 10, 0);
 
	foreach ($result as $order) {
    	echo 'Order ID: '.$order->id.' ';
 
		foreach ($order->OrderUserFields as $field) {
      		echo $field->name." => ".utf8_decode($field->value)."<br>\n";
    	}
  	}
}
catch (SOAPFault $f) {
  	print $f->faultstring;
}

2.20. crmsearchOrders

Syntax

SoapVar crmsearchOrders( string $session_id, crmsearchOrderItems $crmsearchOrdersItems, [array( int timestamp, int count, int offset, int userid)] )

Beschreibung

Liefert eine Instanz von SoapVar kodiert als Array (SOAP_ENC_ARRAY) mit Aufträge- Objekten zurück, die den mit den Suchkriterien in Objekt $crmsearchOrderItems übereinstimmen.

Das Suchergebnis kann mit verschiedenen Argumenten im Array $params kontrolliert werden. Rückgabe der Treffer, deren letzte Änderung $params[timestamp] oder später war. Wenn $params[timestamp] = 0 werden alle gefundenen Aufträge berücksichtigt.

Mit Parametern $params[count] und $params[offset] kann die Anzahl zurückgegebener Aufträge eingeschränkt werden.

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

Elemente von crmsearchOrdersItems werden mit 'AND' verknüpft.

Elemente von crmsearchOrderItemValues werden mit 'OR' verknüpft.

Eigenschaften von crmsearchOrdersItems:

Type(Length)      Eigenschaft                             Beschreibung
------------------------------------------------------------------------------------------- 
string(255)       $field                                  Feldname
array             $crmsearchOrdersItemValues              Objekt mit designiertem Element
                                                          "crmsearchOrdersItemValues" 

Eigenschaften von crmsearchOrdersItemValues:

Type(Length)      Eigenschaft                             Beschreibung
------------------------------------------------------------------------------------------- 
string(255)       $value                                  Suchvariable

Eigenschaften von Array params:

Type(Length)      Arrayelement (Argument)                 Beschreibung
------------------------------------------------------------------------------------------- 
int               timestamp                               Unix- Timestamp
int               count                                   ganzzahliger Wert zur Limitierung der Rückgabe
int               offset                                  ganzzahliger Wert, der die Anzahl der vom Beginn des
                                                          Resultsets zu überspringenden Einträge definiert
int               userid                                  Benutzer ID, wenn gesetzt, werden ggf. vorliegende
                                                          Erinnerungen des Benutzers zu den gefundenen Aufträgen hinzugefügt

Beispiel:

<?php
    
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders = new SOAPClient($soap_url.'orders&wsdl');
 
  	// build the crmsearchOrdersItems parameter in multidimensional array style
	$search = array (
    	'crmsearchOrdersItems' => array(
      		// look in field: "subject"
      		array (
        		'field'       				=> 'subject',
        		'crmsearchOrdersItemValues' => array(array('value' => 'Testorder'))
      		),
      		// AND in field: "realnumber"
      		array (
        		'field'       				=> 'realnumber',
        		'crmsearchOrdersItemValues' => array(
          			array('value' => '10020'),
          			// OR ...
          			array('value' => '10145')
        		)
      		)
    	)
  	);
  	// we fetch all matching order objects without limit or offset
  	$result = $client_orders->crmsearchOrders($session_id, $search);
 
  	foreach ($result as $order) {
    	echo 'Order ID '.$order->id.': '.$order->realnumber.', '.$order->subject;
  	}
}
catch (SOAPFault $f) {
  	print $f->faultstring;
}

2.21. crmToContract

Syntax

int crmToContract( 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.

$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
 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
  	$session_id		= $client_logon->crmLogin('test', 'test');
  	if (!$session_id) {
    	die('invalid login');
  	}
 
	$client_orders = new SOAPClient($soap_url.'orders&wsdl');
  	// we transfer the data of assumed order ID 1337 to a new contract
  	$contract_id = $client_orders->crmToContract($session_id, 1337);
 
  	echo 'new contract with ID '.$contract_id.' created';
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.22. crmCreateFollowUp

Syntax

int crmCreateFollowUp( string $session_id, int $order_id [, $article_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.

$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
 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
  	$session_id 	= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders = new SOAPClient($soap_url.'orders&wsdl');
	// create a new sub-order with the data of assumed order ID 1337
  	$suborder_id = $client_orders->crmCreateFollowUp($session_id, 1337);
 
	echo 'new sub-order created with ID '.$suborder_id;
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.23. crmMergeToContract

Syntax

int crmMergeToContract( 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.

$order_id ist die ID des Auftrages, dessen Daten dem Vertrag hinzugefügt werden sollen.

$contract_id ist die ID des Zielvertrages.

$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

$soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	// merge order with assumed ID 1337 to ...
	// contract with assumed ID 512
	$contract_id	= $client_orders->crmMergeToContract($session_id, 1337, 512);
	echo 'merged with contract ID '.$contract_id.'<br />';
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.24. crmGotoNextFlowStatus

Syntax

void crmGotoNextFlowStatus($session_id, $offer_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

$soap_url = 'https://test.tecart-system.de/soap/index.php?op='; 
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
		die('invalid login');
	}
	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
	// we advance the flow status of Order with assumed ID 1337
	$client_orders->crmGotoNextFlowStatus($session_id, 1337);
} 
catch (SOAPFault $f) {
	print $f->faultstring;
}



2.25. crmUnlockOrder

Syntax

int crmUnlockOrder($session_id, $order_id)

Beschreibung

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

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

Beispiel

<?php
 
$soap_url = 'https://test.tecart-system.de/soap/index.php?op=';
try {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
  	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders = new SOAPClient($soap_url.'orders&wsdl');
  	// unlock assumed Order ID 1337, i.e. set its flow_status back to 0
  	$check = $client_orders->crmUnlockOrder($session_id, 1337);
 
	if ($check == 1337) {
    	echo 'Order '.$check.' unlocked';
  	}
  	else {
    	echo 'Unlock failed: `'.$check.'`';
  	}
}
catch (SOAPFault $f) {
  	print $f->faultstring;
}




2.26. getIdByExtId

Hinweis

 

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 {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
  	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
  	$result			= $client_orders->getIdByExtId('ext_456');
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>";
}

2.27. getAllExtIds

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 {
	$client_logon	= new SOAPClient($soap_url.'logon&wsdl');
  	$session_id		= $client_logon->crmLogin('test', 'test');
	if (!$session_id) {
    	die('invalid login');
  	}
 
  	$client_orders	= new SOAPClient($soap_url.'orders&wsdl');
  	$result			= $crmapi_orders->getAllExtIds();
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
  	echo $id."<br>";
}

2.28. crmGetArticles

Syntax:

array crmGetArticles($session_id, $order_id)

Beschreibung:

Gibt Artikelliste des Auftrages zurück.

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

Beispiel:

<?php
 
try {
	$articles = $client_orders->crmGetArticles($session_id, $order_id);
   
    foreach($articles as $article) {
    	foreach($article as $key => $val) {
			echo "$key => $val<br>\n";
  		}
    }
    echo "<hr/>";
}
catch (SOAPFault $f) {
	print $f->faultstring;
}




2.29. crmAddArticleToList

Syntax:

array crmAddArticleToList($session_id, $order_id, $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 = $client_orders->crmAddArticleToList($session_id, $order_id, 10);    
    echo $success;
 
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.30. crmAddTextToList

Syntax:

array crmAddTextToList($session_id, $order_id, $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 = $client_orders->crmAddTextToList($session_id, $order_id, 'Das ist ein Text');
    echo $success;
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.31. crmAddSpecialToList

Syntax:

array crmAddSpecialToList($session_id, $order_id, $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 kann ein assoziatives Array oder ein Objekt sein.

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 = $client_orders->crmAddSpecialToList($session_id, $order_id, $data);
   	echo $success;
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.32. crmAddGrouplineToList

Syntax:

array crmAddGrouplineToList($session_id, $order_id, $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 kann ein assoziatives Array oder ein Objekt sein.

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 = $client_orders->crmAddGrouplineToList($session_id, $order_id, $data);
   	echo $success;
 
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.33. crmAddMultipleToList

Syntax:

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

Beschreibung:

Fügt der Artikelliste des 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 = $client_orders->crmAddMultipleToList($session_id, $order_id, $items);
 
   echo $success;
 
}
catch (SOAPFault $f) {
  	print $f->faultstring;
}

2.34. crmRemoveArticleFromList

Syntax:

array crmRemoveArticleFromList($session_id, $order_id, $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 = $client_orders->crmRemoveArticleFromList($session_id, $order_id, 11);
   
    echo $success;
}
catch (SOAPFault $f) {
	print $f->faultstring;
}

2.35. crmsetDuplicateConfig

(Version >= 4.4)

Syntax:

int | string <errormessage> crmDuplicateConfig( string $session_id, crmDuplicatecheckFields $crmDuplicatecheckFields )

Beschreibung:

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

Eigenschaften des zu übergebenden crmDuplicatecheckFields Objektes:

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
string			        $fields			     implodiertes Array ( implode(',', $myFields) ) mit gewünschten Feldern, 
						                     auf die eine Dublettenprüfung angewendet werden soll;
						                     wenn Eigenschaft auf NULL gesetzt wird, wird Override zurückgesetzt

Beispiel:

<?php
 
ini_set("soap.wsdl_cache_enabled", "0");
 
try {
	$client_logon	= new SOAPClient("https://test.tecart-system.de/soap/index.php?op=logon&wsdl");
    $session_id		= $client_logon->crmLogin('test', 'test');
    if (!$session_id) {
		die("invalid login");
 	}
	$client_orders	= new SOAPClient("https://test.tecart-system.de/soap/index.php?op=orders&wsdl");
	$fields			= array('fields' => implode(',', array('flow_status', 'order_date')) );
	$success		= $client_orders->crmsetDuplicateConfig($session_id, $fields);
}
catch (SOAPFault $f) {
	print $f->faultstring;
}
 
echo ($success == 1 ? 'override successful' : $success);

2.36. crmgetDuplicateConfig

(Version >= 4.4)

Syntax:

string crmgetDuplicateConfig( string $session_id )

Beschreibung:

Gibt implodiertes Array als Zeichenkette 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
 
ini_set("soap.wsdl_cache_enabled", "0");
 
try {
	$client_logon	= new SOAPClient("https://test.tecart-system.de/soap/index.php?op=logon&wsdl");
    $session_id		= $client_logon->crmLogin('test', 'test');
    if (!$session_id) {
		die("invalid login");
	}
 
   	$client_orders	= new SOAPClient("https://test.tecart-system.de/soap/index.php?op=orders&wsdl");
	$fields			= $client_notes->crmgetDuplicateConfig($session_id);
}
catch (SOAPFault $f) {
	print $f->faultstring;
}
 
$fields = explode(',', $fields);
echo ''.print_r($fields, true).'';
  • No labels