PHP XML zápis dat do ABRA Flexi

Jak zapsat data do ABRA Flexi ve formátu XML

Lenka Haringerová avatar
Autor: Lenka Haringerová
Aktualizováno před více než týdnem

Navazujeme na článek PHP načtení dat z ABRA Flexi, který popisoval načtení dat ze systému ABRA Flexi a jejich zobrazení jako tabulky. Tento článek popisuje, jak naopak data do ABRA Flexi zapsat ve formátu XML.

Úvodní nastavení již bylo popsáno v minulém článku.

V prvním kroku si připravte XML soubor, který bude obsahovat jednoduchý záznam adresáře.

<?xml version="1.0"?>
<winstrom version="1.0">
  <adresar>
    <nazev>CharlieB</nazev>
    <ulice>Lochot&#xED;nsk&#xE1; 18</ulice>
    <mesto>Plze&#x148;</mesto>
    <psc>301 00</psc>
    <tel>+420 371 124 321</tel>
    <email>podporaflexi@abra.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 provozovatel e-shopu 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íte.

Upravte kód, který již byl použit v předchozím článku:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

Změňte 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> ');

Nastavte, které informace potřebujete do ABRA Flexi odeslat a změňte 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 s identifikátorem demo. Do této firmy založí nový záznam v adresáři s názvem CharlieB.
Ukázka která založí adresář na demo.flexibee.eu

Návod popisuje jednoduchý způsob zápisu dat do ABRA Flexi. Může se jednat nejen o adresář, ale i o objednávky přijaté nebo vydané faktury.

Dostali jste odpověď na svou otázku?