https://github.com/t3ko/inpost-api-php-sdk
Natrafiam na dość prosty dziwny błąd i nie mam pewności czy to nieprawidłowe użycie klasy (to prosta wrzutka bez specyfikacji) czy błąd twórcy.
Błąd jest mało prawdopodobny bo biblioteka wg mnie jest napisana na wysokim poziomie a jego odtworzenie (pojawienie się) jest bardzo prawdopodobne.
Tak więc chce wysłać jedną paczkę takim kodem:
$api = new Client(config('inpost.login'), config('inpost.password'), config('inpost.testMode') ? Client::SANDBOX_API_ENDPOINT : Client::PRODUCTION_API_ENDPOINT); $package = new SelfSentPackageBuilder('sender@gmail.com', 'A', 'client@gmail.com', '50000000', 'KAT213', ''); // wzorzec builder? $shipments = [$package->build()]; dd($api->registerShipments($shipments));
Paczka się dodaje ale otrzymuje błąd.
Kod
array_merge(): Argument #1 is not an array
Linia 168 https://github.com/t3ko/inpost-api-php-sdk/.../Api/Client.php
Ten błąd pojawi się za każdym razem gdy do metody registerShipments nie wyślę dwóch rodzajów paczek (dostarczanych samodzielnie do paczkomatu SelfSentPackage i odbieranych przez kuriera Package - jak dla mnie w 99% przypadków tak jest właśnie).
Wystarczy mała zmiana - w pliku głównym Client w linii 212 zmienić return z false, na return [] tak aby nie zwracało bool tylko pustą tablicę i wtedy nie wysypie się na mergingu. Niestety klasa jest w Vendors więc nie za bardzo można ją edytować i tak jak pisałem, jest szansa że źle jej używam więc przed jej nadpisywaniem wolałbym się upewnić.