Skip to main content

Providers

A provider is a logistics provider: a company that provides shipping and delivery, including home delivery and pickup point delivery. Delivery Gateway connects e-commerce platforms - called merchants in our system - with providers, allowing a seamless connection to all your partners via a single platform.

Providers vs operators

Providers and operators both play an important part in the Delivery Gateway ecosystem but they are quite different. Providers are the companies that ship your products: they deliver to the customer's address or to a pickup location. Operators, on the other hand, manage delivery pickup location such as parcel lockers or physical stores.

A company can be a provider and an operator at the same time: for example, several providers have their own parcel locker system.

Provider configuration

note

This section is about provider configuration via the Merchant API. For information on how to configure your merchant in the Admin dashboard, see Provider configuration.

Delivery Gateway offers a large number of providers. After providing the right credentials, you can enable any of them to use for deliveries. You can also add custom providers.

With the Merchant API, you can create and update your provider configuration via the Provider object type. Each provider can be configured separately, based on their id:

GraphQL query
query {
providers {
id
name
icon
isEnabled
isAvailable
}
}
JSON response
{
"data": {
"providers": [
{
"id": "Best Prov Inc"
},
{
"id": "Second Best Prov Inc"
},
]
}
}

Provider configuration works similarly to the merchant configuration: the configurations field takes a ProviderConfiguration object type with two required subfields:

  • key: The enumerator for a given configuration option, for example, PICKUP_POINT_INFORMATION. Check the available options here: ProviderConfigurationEnum.
  • value: The value of that configuration option. For example, the text of the pickup point information.

You can query the configuration of every provider:

GraphQL query
query {
providers {
id
configurations {
key
value
}
}
}
JSON response
{
"data": {
"providers": [
{
"id": "BEST_PROV",
"configurations": [
{
"key": "TITLE",
"value": "Best Provider Inc"
},
{
"key": "AVAILABLE",
"value": "false"
},
{
"key": "FORCE_AVAILABLE",
"value": "false"
},
{
"key": "HOME_DELIVERY_AVAILABLE",
"value": "true"
},
{
"key": "PICKUP_POINT_AVAILABLE",
"value": "true"
},
]
},
]
}
}

You can also update the provider configuration using these key-value pairs with the updateProviderConfiguration and the updateProviderConfigurations types, depending on whether you want to update multiple settings.

For example, here's how you can use updateProviderConfigurations to update two settings at the same time. The input field needs:

  • A provider subfield, in addition to key and value, to identify the provider. It takes an id value from the Provider object type.
  • An array with all the configuration options you wish to update.
mutation {
updateProviderConfigurations(
input: [{
provider: BEST_PROV,
key: AVAILABLE,
value: "true",
},
{
provider: BEST_PROV,
key: PICKUP_POINT_INFORMATION,
value: "0-24 parcel locker service"
}]
) {
key
value
}
}
JSON response
{
"data": {
"updateProviderConfigurations": [
{
"key": "AVAILABLE",
"value": "true"
},
{
"key": "PICKUP_POINT_INFORMATION",
"value": "0-24 parcel locker service"
}
]
}
}