Geis Parcel API pre automatizovaný import zásielok - PHP skript

GEIS

PHP knihovna využívá Geis G-Service CZ a SK / G-Service EN / G-Service PL

  • Funguje pre CZ, SK, PL
  • Import zásielok
  • Tlač štítkov a podacieho hárku
  • Objednávka zvozu
  • a všetky ďalšie funkcie popísané v dokumentácii G-Service

Vďaka tejto knižnici už nemusíte generovať CSV, prihlasovať sa do Geis, importovať CSV, ukladať CSV a tlačiť štítky!
O všetko sa postará API.

Môžem tiež poslať staršiu verziu skriptu, ktorá pracuje vo forme HTTP parsera pre GClient, a oproti G-Service má potenciál väčší funkčnosti. Tá však funguje len pre CZ.

Funguje PHP 5.3+, PHP 7

class_geis.php
Objednávka
(pre vlastné použitie; zákaz ďalej šíriť alebo predávať; aktualizácia podľa dohody)

Faktúru a skript zasielam obratom.
Ďakujem za záujem a verím, že budete spokojní.

Príklad použitia

<?php
/**
* Ukážka použitia Geis API
*/
require 'class_geis_v2.php';


try {
   
// prihlasovacie údaje k službe G-Service musíte vyžiadať u Geis, sú iné než u GClienta
   
$G = new Geis(
       $clientNumber =
'70905941', $clientPassword = 'ws15511',
       $service =
'CZ', // iné hodnoty: SK, PL, PL2 (if you use etlogistik.com)
       
$testService = true // ak prebieha len testovanie
   
);
   
   
// $G->setEncoding('CP1250'); // UTF-8 je predvolený
   
   // sets default distribution channel (default is Geis::PARCEL)
   // $G->setDefaultDistribution(Geis::CARGO);
   
   
   //--------- V KNIŽNICI SÚ IMPLEMENTOVANÉ VŠETKY FUNKCIE Z GEIS DOKUMENTÁCIA
   
   
echo '<h1>G-Service API</h1>';
   echo
'<pre>';

   
// či služba beží a aká verzia
   
print_r( $G->IsHealthy() );
   
   
// vracia zoznam manipulačných jednotiek povolených pre zákazníka v primárnom systéme
   
print_r( $G->WrapList() );
   print_r( $G->ServiceList() ); 
// výpis povolených služieb
   
print_r( $G->AddServiceList(10) ); // extras pre službu CODE = 10 (parciel expedície)
   
   // vráti dátum nasledujúceho pracovného dňa, ak je pred 12:00, tak vráti rovnaký deň
   
echo $G->getNextPossiblePickup(1200);
   
   
// objedná zvoz
   
$G->CreatePickup('2019-02-06','732848164', 'mzvarik@gmail.com', $pocetBaliku = 1);
   
   
   
//-------------------------------
   // NOVÁ ZASIELKA
   // Bude vyzdvihnutý na vašej zvozovej adrese
   
$receiver = Geis::getFullAddress(
       
'Jan Novák',
       
'Václavské nám. 100',
       
'Praha',
       
'11000',
       
'CZ',
       
'novak@jan.cz',
       
'603123456'
   
);
   
   
// Zoznam balíkov v zásielke (obvykle 1)
   // rozmery nie je nutné zadávať - prípadne uvádzať v metroch a stačí len u prvého balíka
   
$packages = array();
   $packages[] = array(0.5); 
// hmotnost_kg
   
$packages[] = array(0.72, 1.2, 0.33, 0.22); // hmotnost_kg | šírka | výška | dĺžka
   
   
$ret = $G->InsertExport(
       
'2019-02-06', // deň zvoz
       
$receiver, // príjemca zásielky
       
$packages,
       
'Doručit ve 12 hodin', // poznámka vodiči
       
array(150, 'CZK', '55555'), // dobierka, mena, variabilný symbol
       
false, // či poslať príjemcovi balíka potvrdzovací email
       
'balik_01', // referencie zásielky (voliteľne)
       
true, // či ide o súkromnú adresu (B2C)
       
'' // Geis Pickup Point - ID destinácie
   
);
   echo $ret->PackNumber;
   
// ak ste poslali viac balíkov
   
$additionalPackNumbers = (array) $ret->MergedPackNumbers->string;
   
   
   
//------------
   // NOVÁ OBJEDNÁVKA - z miesta A do B (nie je nutné objednávať zvoz)
   // napríklad ak vám zákazník niečo posiela naspäť
   
$sender = Geis::getFullAddress(
       
'Jana Krásná',
       
'Krásnohorská 100',
       
'Brno',
       
'50000',
       
'CZ',
       
'jana@krasnohorska.cz',
       
'731888999'
   
);
   $ret = $G->InsertOrder(
// táto funkcia je zhodná s InsertExport, ale začína odosielateľom
       
$sender, // odosielateľ zásielky
       
'2019-02-06', // deň zvozu
       
$receiver, // príjemca zásielky
       
$packages
   );
   echo $ret->PackNumber;
   
   
   
//------------
   # VRÁTI PDF ŠTÍTKY
   
$shipmentNumbers = array('35700145379', '35700145380', '35700145381');
   
// $G->GetLabel($shipmentNumbers, $Position = 1); // vráti PDF string
   
$G->PrintLabel($shipmentNumbers); // vytlačí PDF
   
   # ZOZNAM ZÁSIELOK
   
$shipments = $G->ListOfShipments('2019-02-06');
   print_r($shipments);
   
   
# INFORMÁCIE O ZÁSIELKE
   
$detail = $G->ShipmentDetail('35700145389');
   print_r($detail);
   
   
# STAV ZÁSIELKY
   
$status = $G->ShipmentStatus('35700145389');
   print_r($status);
   
   
# STORNO ZÁSIELKY
   
$res = $G->DeleteShipment(array('35700145385', '35700145379'));
   print_r($res);
   
   
# PICKUP LIST PROTOCOL - vracia preberací protokol
   // $G->GetPickupList('2019-02-06'); // vráti PDF string
   // $G->PrintPickupList('2019-02-06'); // vytlačí 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>';
}

Individuálne napojenie na Váš eShop

V případě zájmu o individuální napojení na Váš eshop na míru nebo wordpress (woocommerce), 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.

História zmien

26.05.2019 - Plugin pro Wordpress (úplná integrace s GEIS)
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

Posledné spätné linky