FlexiBee API - PHP XML zápis dat do FlexiBee

V minulém článku jsem načetl data z FlexiBee a zobrazil je jako tabulku. Jak ale do FlexiBee data zapsat? Dnes popíšu zápis ve formátu XML.

Všechno již máme od minula zjištěno a zařízeno takže dneska už to bude jednoduché.
Připravíme si XML soubor, který bude obsahovat jednoduchý záznam adresáře.
<winstrom version="1.0">
   <adresar>
     <nazev>CharlieB</nazev>
     <ulice>Lochotínská 18</ulice>
     <mesto>Plzeň</mesto>
     <psc>301 00</psc>
     <tel>+420 371 124 321</tel>
     <email>podpora@flexibee.eu</email>
   </adresar>
</winstrom>

Tento XML soubor založí do adresáře záznam s názvem CharlieB, adresou, telefonním číslem a mailem. To jsou základní informace, které potřebuje libovolný eshop vědět o svých zákaznících. Zkratka bude vygenerována automaticky na základě názvu. Takže ji řešit nemusíme.

Teď jen trochu upravíme kód který známe již z předchozího článku.

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
Změníme HTTP metodu na PUT.

curl_setopt($ch, CURLOPT_POSTFIELDS, '
<winstrom version="1.0">
  <adresar>
    <nazev>CharlieB</nazev>
    <ulice>Lochotínská 18</ulice>
    <mesto>Plzeň</mesto>
    <psc>301 00</psc>
    <tel>+420 371 124 321</tel>
    <email>podpora@flexibee.eu</email>
  </adresar>
</winstrom>
');

Nastavíme co chceme do FlexiBee odeslat.

Musíme také změnit zpracování výsledku.

Celý program tedy bude vypadat například takto:

<?php
// URL with xml data
$url = "https://demo.flexibee.eu/c/demo/adresar.xml";

// create curl resource
$ch = curl_init();

// return content as a string from curl_exec
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

// follow redirects (compatibility for changes in FlexiBee)
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

// HTTP authentication
curl_setopt($ch, CURLOPT_HTTPAUTH, TRUE);

// FlexiBee by default uses Self-Signed certificates
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

// for debugging
// curl_setopt($ch, CURLOPT_VERBOSE, TRUE);

// set username and password
curl_setopt($ch, CURLOPT_USERPWD, "winstrom:winstrom");

// set URL
curl_setopt($ch, CURLOPT_URL, $url);

// set HTTP method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

// set data
curl_setopt($ch, CURLOPT_POSTFIELDS, '
<winstrom version="1.0">
  <adresar>
    <nazev>CharlieB</nazev>
    <ulice>Lochotínská 18</ulice>
    <mesto>Plzeň</mesto>
    <psc>301 00</psc>
    <tel>+420 371 124 321</tel>
    <email>podpora@flexibee.eu</email>
  </adresar>
</winstrom>
');

// execute
$output = curl_exec($ch);

// FlexiBee return value
header("Content-Type: application/xml");
print ($output);

// close curl resource to free up system resources
curl_close($ch);
?>

Program se opět připojí k serveru demo.flexibee.eu. HTTP autentizací se přihlásí jako uživatel winstrom s heslem winstrom do firmy i identifikátorem demo. Do této firmy založí nový záznam do adresáře s názvem CharlieB.

Ukázka která založí adresář na demo.flexibee.eu

Prověření zda byl záznam opravdu vytvořen

Takto tedy můžeme velmi jednoduše zapisovat data do FlexiBee. Může se jednat nejen o adresář ale i o objednávky přijaté nebo vydané faktury.

ABRA FlexiBee, REST API, XML

- (28. 7. 2017)
Kája z Norska
Kája z Norska

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.