webidentity/laravel-gls-printing-service

There is no license information available for the latest version (dev-master) of this package.

GLS printing labels service for Laravel framework.

dev-master 2023-02-02 13:15 UTC

This package is auto-updated.

Last update: 2025-04-17 21:21:16 UTC


README

Step 1: Install package

Add the package in your composer.json by executing the command.

composer require webidentity/laravel-gls-printing-service

Step 2: Configuration

First initialise the config file by running this command:

php artisan vendor:publish

With this command, initialize the configuration and modify the created file, located under config/gls-printing-service.php.

Configuration

return [
    'logger' => Webidentity\GLSPrintingService\BaseLogger::class,
    'log-http-communication' => true,
    'credentials' => [
        'username' => '...',
        'password' => '...',
        'senderid' => '...',
    ],
    'printer_templates' => [
        'A6' => 'A6 format, blank label',
        'A6_PP' => 'A6 format, preprinted label',
        'A6_ONA4' => 'A6 format, printed on A4',
        'A4_2x2' => 'A4 format, 4 labels on layout 2x2',
        'A4_4x1' => 'A4 format, 4 labels on layout 4x1',
    ],
    'url' => 'SK',
    'soap_urls' => [
        'HU' => 'https://online.gls-hungary.com/webservices/soap_server.php?wsdl',
        'SK' => 'http://online.gls-slovakia.sk/webservices/soap_server.php?wsdl',
        'CZ' => 'http://online.gls-czech.com/webservices/soap_server.php?wsdl',
        'RO' => 'http://online.gls-romania.ro/webservices/soap_server.php?wsdl',
        'SI' => 'http://connect.gls-slovenia.com/webservices/soap_server.php?wsdl',
        'HR' => 'http://online.gls-croatia.com/webservices/soap_server.php?wsdl',
    ]
];

Examples

U may call any endpoint against GLS api provided in wsdl file. You need pass array args which key is parameter name with values.

GLSPrintingService::printlabel([
    'parameter_name' => 'value'
]);

Print Label

$data = array_merge(config('gls-printing-service.credentials'), [
        'sender_name' => '...',
        'sender_address' => '...',
        'sender_city' => '...',
        'sender_zipcode' => '...',
        'sender_country' => '...',
        'sender_contact' => '...',
        'sender_phone' => '...',
        'sender_email' => '...',
        'consig_name' => '...',
        'consig_address' => '...',
        'consig_city' => '...',
        'consig_zipcode' => '...',
        'consig_country' => '...',
        'consig_contact' => '...',
        'consig_phone' => '...',
        'consig_email' => '...',
        'pcount' => 1,
        'pickupdate' => '...',
        'content' => '',
        'clientref' => '',
        'codamount' => '',
        'codref' => '',
        'services' => [],
        'printertemplate' => 'A4_2x2',
        'printit' => true,
    ], ['timestamp' => GLSPrintingService::getTimestamp()]
);
$data['hash'] = GLSPrintingService::getglshash($data);

$response = GLSPrintingService::printlabel($data)

//pdfdata
echo base64_decode($response->pdfdata)

Delete Label

GLSPrintingService::deletelabels(array_merge(
    config('gls-printing-service.credentials'), ['pclids' => $pclids]
));

Log Http Communication

There is enabled logging (request and response) by default. U may follow these logs by executing the command

tail -f storage/logs/laravel.log

Todos

  • XML serializer for endpoints which needs to work with xml