Geis Parcel API pro automatizovaný import zásilek – PHP skript
GEISPHP knihovna využívá Geis G-Service CZ a SK / G-Service EN / G-Service PL
- Funguje pro CZ, SK, PL
- Import zásilek
- Tisk štítků a protokolu
- Objednávka svozu
- Výpis Geis Point poboček podle regionu, podle města, včetně možnosti disk-cache podle dnů
- a všechny další funkce popsané v dokumentaci G-Service
Díky této knihovně už nemusíte generovat CSV, přihlašovat se do Geis, importovat CSV, ukládat CSV a tisknout štítky!
O všechno se postará API.
Mohu také poslat starší verzi skriptu, která pracuje ve formě HTTP parseru pro GClient, a oproti G-Service má potenciál větší funkčnosti. Ta ovšem funguje jen pro CZ.
Funguje PHP 5.3+, PHP 7
Příklad použití
<?php
/**
* Ukázka použití Geis API
*/
require 'class_geis_v2.php';
try {
// přihlašovací údaje ke službě G-Service musíte vyžádat u Geis, jsou jiné než u GClienta
$G = new Geis(
$clientNumber = '70905941', $clientPassword = 'ws15511',
$service = 'CZ', // jiné hodnoty: SK, PL, PL2 (if you use etlogistik.com)
$testService = true // pokud probíhá jen testování
);
// $G->setEncoding('CP1250'); // UTF-8 je výchozí
// nastaví výchozí distribuční kanál (výchozí je Geis::PARCEL)
// $G->setDefaultDistribution(Geis::CARGO);
//--------- V KNIHOVNĚ JSOU IMPLEMENTOVÁNY VŠECHNY FUNKCE Z GEIS DOKUMENTACE
echo '<h1>G-Service API</h1>';
echo '<pre>';
// zda služba běží a jaká verze
print_r( $G->IsHealthy() );
// vrací seznam manipulačních jednotek povolených pro zákazníka v primárním systému
print_r( $G->WrapList() );
print_r( $G->ServiceList() ); // výpis povolených služeb
print_r( $G->AddServiceList(10) ); // extras pro službu CODE=10 (parcel expedice)
// vrátí datum příštího pracovního dne, pokud je před 12:00, tak vrátí stejný den
echo $G->getNextPossiblePickup(1200);
// objedná svoz
$G->CreatePickup('2019-02-06','732848164', 'mzvarik@gmail.com', $pocetBaliku = 1);
//-------------------------------
// NOVÁ ZÁSILKA
// Bude vyzvednuto na vaší svozové adrese
$receiver = Geis::getFullAddress(
'Jan Novák',
'Václavské nám. 100',
'Praha',
'11000',
'CZ',
'novak@jan.cz',
'603123456'
);
// Seznam balíků v zásilce (obvykle 1)
// rozměry není nutno zadávat - popřípadě uvádět v metrech a stačí jen u prvního balíku
$packages = array();
$packages[] = array(0.5); // hmotnost_kg
$packages[] = array(0.72, 1.2, 0.33, 0.22); // hmotnost_kg | šířka | výška | délka
$ret = $G->InsertExport(
'2019-02-06', // den svozu
$receiver, // příjemce zásilky
$packages,
'Doručit ve 12 hodin', // poznámka řidiči
array(150, 'CZK', '55555'), // dobírka, měna, variabilní symbol
false, // zda poslat příjemci balíku potvrzovací email
'balik_01', // reference zásilky (volitelně)
true, // zda jde o soukromou adresu (B2C)
'' // Geis Pickup Point - ID destinace
);
echo $ret->PackNumber;
// pokud jste poslali více balíků
$additionalPackNumbers = (array) $ret->MergedPackNumbers->string;
//------------
// NOVÁ OBJEDNÁVKA - z místa A do B (není nutno objednávat svoz)
// například pokud vám zákazník něco posílá nazpět
$sender = Geis::getFullAddress(
'Jana Krásná',
'Krásnohorská 100',
'Brno',
'50000',
'CZ',
'jana@krasnohorska.cz',
'731888999'
);
$ret = $G->InsertOrder( // tato funkce je shodná s InsertExport, ale začíná odesílatelem
$sender, // odesílatel zásilky
'2019-02-06', // den svozu
$receiver, // příjemce zásilky
$packages
);
echo $ret->PackNumber;
//------------
# VRÁTÍ PDF ŠTÍTKY
$shipmentNumbers = array('35700145379', '35700145380', '35700145381');
// $G->GetLabel($shipmentNumbers, $Position = 1); // vrátí PDF string
$G->PrintLabel($shipmentNumbers); // vytiskne PDF
# SEZNAM ZÁSILEK
$shipments = $G->ListOfShipments('2019-02-06');
print_r($shipments);
# INFORMACE O ZÁSILCE
$detail = $G->ShipmentDetail('35700145389');
print_r($detail);
# STAV ZÁSILKY
$status = $G->ShipmentStatus('35700145389');
print_r($status);
# STORNO ZÁSILKY
$res = $G->DeleteShipment(array('35700145385', '35700145379'));
print_r($res);
# PICKUP LIST PROTOCOL - vrací předávací protokol
// $G->GetPickupList('2019-02-06'); // vrátí PDF string
// $G->PrintPickupList('2019-02-06'); // vytiskne PDF
}
catch (Exception $e)
{
echo '<div style="color:#000;padding:10px;margin:10px;font-family:Tahoma;font-size:13px;font-weight:bold">';
echo 'Geis Error ['.$e->getCode().']: '.$e->getMessage();
echo '</div>';
}
//------ PŘÍKLAD POUŽITÍ GEIS POINT POBOČEK
require 'class_geispoint.php';
$GPOINT = new GeisPoint();
$GPOINT->setCache(2); // nastaví cache na 2 hodiny, jinak dejte 0 pro aktuální výpisy
$GPOINT->setOrdering(true); // seřadí pobočky podle města, ulice, názvu - jinak nejsou řazené
$regions = $GPOINT->getRegions('CZ');
print_R($regions);
$cities = $GPOINT->getCities('CZ', 19);
print_R($cities);
$pobocky = $GPOINT->searchGP('CZ');
print_R($pobocky);
$info = $GPOINT->getGPDetail('GP11000301');
print_R($info);
Časté otázky
- Při objednání svozu je nutno znát předem počet balíků?
Stejně jako v GClient (webová správa Geis) je to povinný údaj, nicméně v praxi ten sloupec považujte za orientační a klidně tam nechte vždy 1 balík.
Následně můžete importovat třeba 20 balíků anebo žádný a dopravce stejně přijede pro svoz!
- Importoval jsem balík a potřebuji změnit adresu.
Geis API je oddělené od GClient a importované balíky nelze v jejich administraci měnit. Nelze je měnit ani přes toto API. Jediná možnost je balík stornovat a importovat znovu.
Individuální napojení na Váš eShop
V případě zájmu o individuální napojení na Váš eshop na míru nebo wordpress (woocommerce), Shoptet, Magento, ale i systémy na jednotné doméně jako UPgates mě kontakujte. V podstatě stačí pokud Váš eshop umožňuje export objednávek a můžete jedním klikem vložit všechny objednávky k odeslání přímo do GEIS, hromadně vytisknout štítky a protokoly.
CLI rozhraní
K dispozici také možnost ovládat přes příkazový řádek (cmd.exe) a import zásilek přes TXT soubor s detekcí všech chyb.
Historie změn
26.05.2019 - Plugin pro Wordpress (úplná integrace s GEIS)
24.05.2019 - Doplněna třída Geis Point pro výpis poboček
01.01.2019 - Geis v2, aktualizace funkcí
22.11.2018 - CLI (příkazový řádek) rozhraní
10.07.2018 - Upgates rozhraní
03.05.2018 - Drobné změny, přidána volba formátu tisku štítků
01.04.2017 - Změna z HTTP API na G-Service
17.12.2016 - Přidáno