Pokud máte vytvořen vlastní internetový obchod nebo jen jednoduchý objednávkový formulář a rádi byste jej propojili s FlexiBee, můžete využít technologii FlexiBee Sync.
Aby byly jednotlivé ukázky jednodušší, připravíme si společný kód, který nám připraví prostředí:
// konfigurace serveru
$host = "https://demo.flexibee.eu:5434";
$firma = "demo";
require_once "HTTP/Request.php";
$req =& new HTTP_Request();
// Nastavení autorizačních údajů (jméno a heslo)
$req->setBasicAuth("winstrom", "winstrom");
A případně i vypíše chyby:
// Následující kód již jen vizualizuje, zda se operace povedla
if (PEAR::isError($response)) {
printf ("Při komunikaci se serverem nastala síťová chyba: %s", $response->getMessage());
} else {
// HTTP požadavek uspěl:
if ($req->getResponseCode() != 200) {
// Součástí odpovědi je JSON zpráva, která obsahuje důvod selhání
$error = json_decode($req->getResponseBody(), true);
printf ("Při operaci nastala chyba (HTTP %d: %s): %s",
$req->getResponseCode(),
$req->getResponseReason(),
$error["winstrom"]["message"]);
} else {
echo "Operace provedena";
}
}
Doklad můžete vytvořit odesláním jednoduchého XML (ve formátu FlexiBee XML), které zařídí založení dokladu.
// Požadavek odešleme ve formátu XML
$req->setURL($host."/c/".$firma."/faktura-vydana.xml");
// Nastavení samotné operace
$req->setMethod(PUT);
// Nastavení parametrů pro založení jednoduché faktury
$req->setBody('
<winstrom version="1.0">
<faktura-vydana>
<typDokl>code:FAKTURA</typDokl>
<firma>code:WINSTROM</firma>
<popis>Moje faktura v PHP</popis>
<sumZklZakl>1000.0</sumZklZakl>
<bezPolozek>true</bezPolozek>
</faktura-vydana>
</winstrom>
');
// Proveď samotnou operaci
$response = $req->sendRequest();
Identifikátor vytvořené faktury je předán několika způsoby (více viz podporované HTTP operace):
Location: http://demo.flexibee.eu:5434/c/demo/faktura-vydana/105<winstrom version="1.0">
<success>true</success>
<result>
<id>105</id>
</result>
</winstrom>
To samé můžete provést i ve formátu JSON:
// Požadavek odešleme ve formátu JSON
$req->setURL($host."/c/".$firma."/faktura-vydana.json");
// Nastavení samotné operace
$req->setMethod(PUT);
// Nastavení parametrů pro založení jednoduché faktury
$faktura = array(
"winstrom" => array (
"faktura-vydana" => array(
"typDokl" => "code:FAKTURA",
"firma" => "code:WINSTROM",
"popis" => "Moje Faktura v PHP",
"sumDphZakl" => "1000.0",
"bezPolozek" => "true",
)
)
);
$req->setBody(json_encode($faktura));
// Proveď samotnou operaci
$response = $req->sendRequest();
Pokud bychom tedy chtěli nově vytvořenou fakturu převést do PDF, stačí nám k tomu tento kód:
// po založení záznamu je v hlavičce Location adresa nově vytvořeného dokumentu.
// Když na konec tohoto URL přidáme .pdf a provedeme na něj dotaz GET, dostaneme PDF formu faktury.
$url = $req->getResponseHeader("Location").".pdf";
$req->setURL($url);
$req->setMethod(GET);
$req->sendRequest();
// nastavíme, že posíláme PDF a pošleme jej.
header("Content-type: application/pdf");
print ($req->getResponseBody());
Doklad můžete přečíst v mnoha formátech včetně XML, JSON, PDF či ISDOC (přehled podporovaných formátů):
// Požadavek chceme ve formátu ISDOCX
$req->setURL($host."/c/".$firma."/faktura-vydana/19.isdocx");
// Nastavení samotné operace
$req->setMethod(GET);
// Proveď samotnou operaci
$response = $req->sendRequest();
// Odešleme výsledek do prohlížeče uživatele
header("Content-Type: application/x-isdocx");
print ($req->getResponseBody());
Pokud chcete smazat doklad, stačí nad ním vyvolat HTTP operaci DELETE:
// Nastavení URL. JSON na konci je proto, abychom dostali případnou // chybovou odpověď ve formát JSON. $req->setURL($host."/c/".$firma."/faktura-vydana/19.json"); // Nastavení samotné operace $req->setMethod(DELETE); // Proveď samotnou operaci $response = $req->sendRequest();