https://github.com/paysera/lib-delivery-api-merchant-client
Api client to interact with checkout delivery application
https://github.com/paysera/lib-delivery-api-merchant-client
Last synced: 5 months ago
JSON representation
Api client to interact with checkout delivery application
- Host: GitHub
- URL: https://github.com/paysera/lib-delivery-api-merchant-client
- Owner: paysera
- Created: 2021-06-07T10:39:05.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-22T08:12:48.000Z (over 1 year ago)
- Last Synced: 2024-03-23T16:02:46.698Z (about 1 year ago)
- Language: PHP
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
## paysera/lib-delivery-api-merchant-client
Provides methods to manipulate `MerchantClient` API.
It automatically authenticates all requests and maps required data structure for you.#### Usage
This library provides `ClientFactory` class, which you should use to get the API client itself:
```php
use Paysera\DeliveryApi\MerchantClient\ClientFactory;$clientFactory = new ClientFactory([
'base_url' => 'https://delivery-api.paysera.com/rest/v1/', // optional, in case you need a custom one.
'basic' => [ // use this, it API requires Basic authentication.
'username' => 'username',
'password' => 'password',
],
'oauth' => [ // use this, it API requires OAuth v2 authentication.
'token' => [
'access_token' => 'my-access-token',
'refresh_token' => 'my-refresh-token',
],
],
// other configuration options, if needed
]);$merchantClient = $clientFactory->getMerchantClient();
```Please use only one authentication mechanism, provided by `Vendor`.
Now, that you have instance of `MerchantClient`, you can use following methods
### Methods
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$filter = new \Paysera\Component\RestClientCommon\Entity\Filter();
$filter->setLimit($limit);
$filter->setOffset($offset);
$filter->setOrderBy($orderBy);
$filter->setOrderDirection($orderDirection);
$filter->setAfter($after);
$filter->setBefore($before);
$result = $merchantClient->getDefaultPackageSizes($filter);
```
---
Get shipment method by id```php
$result = $merchantClient->getMethod($id);
```
---Get shipment methods
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$methodsFilter = new Entities\MethodsFilter();
$methodsFilter->setProjectId($projectId);
$methodsFilter->setFromCountryCode($fromCountryCode);
$methodsFilter->setToCountryCode($toCountryCode);
$methodsFilter->setShipments($shipments);
$result = $merchantClient->updateMethod($methodsFilter);
```
---
Gateway methods filter```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$gatewayMethodsFilter = new Entities\GatewayMethodsFilter();
$gatewayMethodsFilter->setProjectId($projectId);
$gatewayMethodsFilter->setFromCountryCode($fromCountryCode);
$gatewayMethodsFilter->setToCountryCode($toCountryCode);
$result = $merchantClient->getGatewayMethods($id, $gatewayMethodsFilter);
```
---Get shipment gateway by id
```php
$result = $merchantClient->getGateway($id);
```
---Get shipment gateways
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$gatewaysFilter = new Entities\GatewaysFilter();
$gatewaysFilter->setProjectId($projectId);
$gatewaysFilter->setFromCountryCode($fromCountryCode);
$gatewaysFilter->setToCountryCode($toCountryCode);
$gatewaysFilter->setShipments($shipments);
$gatewaysFilter->setShipmentMethodCode($shipmentMethodCode);
$result = $merchantClient->updateGateway($gatewaysFilter);
```
---
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$postOfficeFilter = new Entities\PostOfficeFilter();
$postOfficeFilter->setCity($city);
$postOfficeFilter->setCountry($country);
$postOfficeFilter->setShipmentGatewayCode($shipmentGatewayCode);
$result = $merchantClient->getPostOffices($postOfficeFilter);
```
---
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$parcelMachineFilter = new Entities\ParcelMachineFilter();
$parcelMachineFilter->setCity($city);
$parcelMachineFilter->setCountry($country);
$parcelMachineFilter->setShipmentGatewayCode($shipmentGatewayCode);
$result = $merchantClient->getParcelMachines($parcelMachineFilter);
```
---
Import shipment points from file```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$file = new \Paysera\Component\RestClientCommon\Entity\File();
$file->setName($name);
$file->setContent($content);
$file->setMimeType($mimeType);
$file->setSize($size);
$result = $merchantClient->createShipmentPointsImport($file);
```
---
Get shipment point by id```php
$result = $merchantClient->getShipmentPoint($id);
```
---Update shipment-point
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentPointCreate = new Entities\ShipmentPointCreate();
$shipmentPointCreate->setProjectId($projectId);
$shipmentPointCreate->setType($type);
$shipmentPointCreate->setSaved($saved);
$shipmentPointCreate->setContact($contact);
$shipmentPointCreate->setPostOfficeId($postOfficeId);
$shipmentPointCreate->setParcelMachineId($parcelMachineId);
$shipmentPointCreate->setAdditionalInfo($additionalInfo);
$shipmentPointCreate->setDefaultContact($defaultContact);
$result = $merchantClient->updateShipmentPoint($id, $shipmentPointCreate);
```
---Delete shipment point
```php
$merchantClient->deleteShipmentPoint($id);
```
---Add a new shipment point
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentPointCreate = new Entities\ShipmentPointCreate();
$shipmentPointCreate->setProjectId($projectId);
$shipmentPointCreate->setType($type);
$shipmentPointCreate->setSaved($saved);
$shipmentPointCreate->setContact($contact);
$shipmentPointCreate->setPostOfficeId($postOfficeId);
$shipmentPointCreate->setParcelMachineId($parcelMachineId);
$shipmentPointCreate->setAdditionalInfo($additionalInfo);
$shipmentPointCreate->setDefaultContact($defaultContact);
$result = $merchantClient->createShipmentPoint($shipmentPointCreate);
```
---Standard SQL-style Result filtering
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentPointFilter = new Entities\ShipmentPointFilter();
$shipmentPointFilter->setType($type);
$shipmentPointFilter->setTitlePart($titlePart);
$shipmentPointFilter->setDefaultContact($defaultContact);
$shipmentPointFilter->setProjects($projects);
$result = $merchantClient->getShipmentPoints($shipmentPointFilter);
```
---
Import orders from file```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$file = new \Paysera\Component\RestClientCommon\Entity\File();
$file->setName($name);
$file->setContent($content);
$file->setMimeType($mimeType);
$file->setSize($size);
$result = $merchantClient->createOrdersImport($file);
```
---
Get current default package size```php
$result = $merchantClient->getProjectDefaultPackageSize($projectId);
```
---Update default package size
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$defaultPackageSizeCode = new Entities\DefaultPackageSizeCode();
$defaultPackageSizeCode->setCode($code);
$result = $merchantClient->updateProjectDefaultPackageSize($projectId, $defaultPackageSizeCode);
```
---Remove default package size
```php
$merchantClient->deleteProjectDefaultPackageSize($projectId);
```
---Update project shipment gateway
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentGatewayCreate = new Entities\ShipmentGatewayCreate();
$shipmentGatewayCreate->setEnabled($enabled);
$result = $merchantClient->updateProjectGateway($projectId, $gatewayId, $shipmentGatewayCreate);
```
---Standard SQL-style Result filtering
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$filter = new \Paysera\Component\RestClientCommon\Entity\Filter();
$filter->setLimit($limit);
$filter->setOffset($offset);
$filter->setOrderBy($orderBy);
$filter->setOrderDirection($orderDirection);
$filter->setAfter($after);
$filter->setBefore($before);
$result = $merchantClient->getProjectGateways($projectId, $filter);
```
---Update project gateways
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentGatewayCreateCollection = new Entities\ShipmentGatewayCreateCollection();
$shipmentGatewayCreateCollection->setList($list);
$result = $merchantClient->updateProjectGateways($projectId, $shipmentGatewayCreateCollection);
```
---Update project shipment method
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentMethodCreate = new Entities\ShipmentMethodCreate();
$shipmentMethodCreate->setEnabled($enabled);
$result = $merchantClient->updateProjectMethod($projectId, $methodId, $shipmentMethodCreate);
```
---Standard SQL-style Result filtering
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$filter = new \Paysera\Component\RestClientCommon\Entity\Filter();
$filter->setLimit($limit);
$filter->setOffset($offset);
$filter->setOrderBy($orderBy);
$filter->setOrderDirection($orderDirection);
$filter->setAfter($after);
$filter->setBefore($before);
$result = $merchantClient->getProjectMethods($projectId, $filter);
```
---Update project methods
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$shipmentMethodCreateCollection = new Entities\ShipmentMethodCreateCollection();
$shipmentMethodCreateCollection->setList($list);
$result = $merchantClient->updateProjectMethods($projectId, $shipmentMethodCreateCollection);
```
---Standard SQL-style Result filtering
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$filter = new \Paysera\Component\RestClientCommon\Entity\Filter();
$filter->setLimit($limit);
$filter->setOffset($offset);
$filter->setOrderBy($orderBy);
$filter->setOrderDirection($orderDirection);
$filter->setAfter($after);
$filter->setBefore($before);
$result = $merchantClient->getProjects($filter);
```
---
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderFilter = new Entities\OrderFilter();
$orderFilter->setProjects($projects);
$orderFilter->setOrderStatuses($orderStatuses);
$orderFilter->setReceiverCountryCode($receiverCountryCode);
$orderFilter->setReceiverNamePart($receiverNamePart);
$orderFilter->setReceiverPhonePart($receiverPhonePart);
$orderFilter->setReceiverStreetPart($receiverStreetPart);
$orderFilter->setCreatedDateFrom($createdDateFrom);
$orderFilter->setCreatedDateTill($createdDateTill);
$orderFilter->setNumber($number);
$orderFilter->setTrackingCode($trackingCode);
$orderFilter->setShippingGatewayCode($shippingGatewayCode);
$orderFilter->setWithManifest($withManifest);
$orderFilter->setWithLabel($withLabel);
$orderFilter->setEshopOrderId($eshopOrderId);
$result = $merchantClient->getOrdersExport($orderFilter);
```
---
Confirm orders```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderIdsList = new Entities\OrderIdsList();
$orderIdsList->setOrderIds($orderIds);
$result = $merchantClient->createOrdersConfirm($orderIdsList);
```
---Prepaid orders
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderIdsList = new Entities\OrderIdsList();
$orderIdsList->setOrderIds($orderIds);
$result = $merchantClient->createOrdersPrepaid($orderIdsList);
```
---
Generate manifest and call courier for "label_generated" order```php
$result = $merchantClient->createOrderManifest($id);
```
---Get manifest file
```php
$result = $merchantClient->getOrderManifest($id);
```
---Generate labels for "in progress" order
```php
$result = $merchantClient->createOrderLabel($id);
```
---Get label file
```php
$result = $merchantClient->getOrderLabel($id);
```
---reset order to draft state
```php
$result = $merchantClient->resetOrderToDraft($id);
```
---Get order by id
```php
$result = $merchantClient->getOrder($id);
```
---Update order
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderUpdate = new Entities\OrderUpdate();
$orderUpdate->setProjectId($projectId);
$orderUpdate->setShipmentGatewayCode($shipmentGatewayCode);
$orderUpdate->setShipmentMethodCode($shipmentMethodCode);
$orderUpdate->setShipments($shipments);
$orderUpdate->setSenderId($senderId);
$orderUpdate->setSender($sender);
$orderUpdate->setReceiverId($receiverId);
$orderUpdate->setReceiver($receiver);
$orderUpdate->setNotes($notes);
$orderUpdate->setEshopOrderId($eshopOrderId);
$orderUpdate->setOrderCreationType($orderCreationType);
$orderUpdate->setOrderNotification($orderNotification);
$result = $merchantClient->updateOrder($id, $orderUpdate);
```
---Delete order
```php
$merchantClient->deleteOrder($id);
```
---Add a new order
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderCreate = new Entities\OrderCreate();
$orderCreate->setProjectId($projectId);
$orderCreate->setShipmentGatewayCode($shipmentGatewayCode);
$orderCreate->setShipmentMethodCode($shipmentMethodCode);
$orderCreate->setShipments($shipments);
$orderCreate->setSenderId($senderId);
$orderCreate->setSender($sender);
$orderCreate->setReceiverId($receiverId);
$orderCreate->setReceiver($receiver);
$orderCreate->setNotes($notes);
$orderCreate->setEshopOrderId($eshopOrderId);
$orderCreate->setOrderCreationType($orderCreationType);
$orderCreate->setOrderNotification($orderNotification);
$orderCreate->setOrderInitialStatus(Entities\OrderCreate::ORDER_INITIAL_STATUS_PREPAID);
$result = $merchantClient->createOrder($orderCreate);
```
---Standard SQL-style Result filtering
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderFilter = new Entities\OrderFilter();
$orderFilter->setProjects($projects);
$orderFilter->setOrderStatuses($orderStatuses);
$orderFilter->setReceiverCountryCode($receiverCountryCode);
$orderFilter->setReceiverNamePart($receiverNamePart);
$orderFilter->setReceiverPhonePart($receiverPhonePart);
$orderFilter->setReceiverStreetPart($receiverStreetPart);
$orderFilter->setCreatedDateFrom($createdDateFrom);
$orderFilter->setCreatedDateTill($createdDateTill);
$orderFilter->setNumber($number);
$orderFilter->setTrackingCode($trackingCode);
$orderFilter->setShippingGatewayCode($shippingGatewayCode);
$orderFilter->setWithManifest($withManifest);
$orderFilter->setWithLabel($withLabel);
$orderFilter->setEshopOrderId($eshopOrderId);
$result = $merchantClient->getOrders($orderFilter);
```
---
List order prices```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderPriceFilter = new Entities\OrderPriceFilter();
$orderPriceFilter->setProjectId($projectId);
$orderPriceFilter->setSenderId($senderId);
$orderPriceFilter->setSender($sender);
$orderPriceFilter->setReceiverId($receiverId);
$orderPriceFilter->setReceiver($receiver);
$orderPriceFilter->setShipments($shipments);
$result = $merchantClient->updateOrderPrice($orderPriceFilter);
```
---
Activity filter```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$activityFilter = new Entities\ActivityFilter();
$activityFilter->setProjects($projects);
$activityFilter->setDateFrom($dateFrom);
$activityFilter->setDateTill($dateTill);
$result = $merchantClient->getStatisticExport($activityFilter);
```
---Standard SQL-style Result filtering
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$lastActivityFilter = new Entities\LastActivityFilter();
$lastActivityFilter->setProjects($projects);
$result = $merchantClient->getStatisticLastActivity($lastActivityFilter);
```
---Activity filter
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$activityFilter = new Entities\ActivityFilter();
$activityFilter->setProjects($projects);
$activityFilter->setDateFrom($dateFrom);
$activityFilter->setDateTill($dateTill);
$result = $merchantClient->getStatistics($activityFilter);
```
---
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$countryFilter = new Entities\CountryFilter();
$countryFilter->setShipmentGatewayCode($shipmentGatewayCode);
$result = $merchantClient->getCountries($countryFilter);
```
---
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$cityFilter = new Entities\CityFilter();
$cityFilter->setCountry($country);
$cityFilter->setGatewayCode($gatewayCode);
$result = $merchantClient->getCities($cityFilter);
```
---
List credentials```php
$result = $merchantClient->getCourierApiCredential($projectId);
```
---Update credentials
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$courierApiCredentialsCreate = new Entities\CourierApiCredentialsCreate();
$courierApiCredentialsCreate->setProject($project);
$courierApiCredentialsCreate->setGateway($gateway);
$courierApiCredentialsCreate->setUsername($username);
$courierApiCredentialsCreate->setPassword($password);
$courierApiCredentialsCreate->setCountry($country);
$courierApiCredentialsCreate->setClientId($clientId);
$result = $merchantClient->updateCourierApiCredential($id, $courierApiCredentialsCreate);
```
---Delete credentials
```php
$merchantClient->deleteCourierApiCredential($id);
```
---Create new credentials
```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$courierApiCredentialsCreate = new Entities\CourierApiCredentialsCreate();
$courierApiCredentialsCreate->setProject($project);
$courierApiCredentialsCreate->setGateway($gateway);
$courierApiCredentialsCreate->setUsername($username);
$courierApiCredentialsCreate->setPassword($password);
$courierApiCredentialsCreate->setCountry($country);
$courierApiCredentialsCreate->setClientId($clientId);
$result = $merchantClient->createCourierApiCredential($courierApiCredentialsCreate);
```
---
Standard SQL-style Result filtering```php
use Paysera\DeliveryApi\MerchantClient\Entity as Entities;$orderFilter = new Entities\OrderFilter();
$orderFilter->setProjects($projects);
$orderFilter->setOrderStatuses($orderStatuses);
$orderFilter->setReceiverCountryCode($receiverCountryCode);
$orderFilter->setReceiverNamePart($receiverNamePart);
$orderFilter->setReceiverPhonePart($receiverPhonePart);
$orderFilter->setReceiverStreetPart($receiverStreetPart);
$orderFilter->setCreatedDateFrom($createdDateFrom);
$orderFilter->setCreatedDateTill($createdDateTill);
$orderFilter->setNumber($number);
$orderFilter->setTrackingCode($trackingCode);
$orderFilter->setShippingGatewayCode($shippingGatewayCode);
$orderFilter->setWithManifest($withManifest);
$orderFilter->setWithLabel($withLabel);
$orderFilter->setEshopOrderId($eshopOrderId);
$result = $merchantClient->getOrdersCount($orderFilter);
```
---