API : méthodes de livraison personnalisées

Ce point de terminaison de l'API REST vous permet de créer des méthodes de livraison personnalisées.

GET /api/shipping_methods

Cette méthode retourne la liste des méthodes de livraison existantes.

URL de la ressource

https://app.snipcart.com/api/shipping_methods

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Exemple de requête

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/shipping_methods
    -u {API_KEY}:

Exemple de réponse

[
  {
    "name": "International shipping",
    "guaranteedEstimatedDelivery": {
      "minimumDaysForDelivery": 10,
      "maximumDaysForDelivery": null
    },
    "location": {
      "country": null,
      "province": null
    },
    "rates": [
      {
        "cost": 20,
        "weight": {
          "to": 1000
        }
      },
      {
        "cost": 30,
        "weight": {
          "from": 1000,
          "to": 2000
        }
      },
      {
        "cost": 60,
        "weight": {
          "from": 3000
        }
      }
    ],
    "id": "e4aba83a-8ff5-41f1-b9f6-a3e3aea3fdde",
    "creationDate": "2017-04-04T15:04:53.377Z",
    "modificationDate": "2017-04-04T15:04:53.377Z"
  },
  {
    "postalCodeRegex": "G1K.*",
    "name": "Local shipping",
    "guaranteedEstimatedDelivery": {
      "minimumDaysForDelivery": 2,
      "maximumDaysForDelivery": null
    },
    "location": {
      "country": "CA",
      "province": "QC"
    },
    "rates": [
      {
        "cost": 0,
        "weight": {
          "to": 1000
        }
      },
      {
        "cost": 5,
        "weight": {
          "from": 1000,
          "to": 2000
        }
      },
      {
        "cost": 7.5,
        "weight": {
          "from": 2000
        }
      }
    ],
    "id": "1391ecc9-3f1b-4a85-bc8e-beb745e4c6d2",
    "creationDate": "2017-04-04T15:06:31.967Z",
    "modificationDate": "2017-04-04T15:06:31.967Z"
  },
  {
    "postalCodeRegex": "G1K.*",
    "name": "Domestic shipping",
    "guaranteedEstimatedDelivery": {
      "minimumDaysForDelivery": 5,
      "maximumDaysForDelivery": null
    },
    "location": {
      "country": "CA",
      "province": null
    },
    "rates": [
      {
        "cost": 5,
        "weight": {
          "to": 1000
        }
      },
      {
        "cost": 10,
        "weight": {
          "from": 1000,
          "to": 2000
        }
      },
      {
        "cost": 20,
        "weight": {
          "from": 2000
        }
      }
    ],
    "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
    "creationDate": "2017-04-04T15:05:42.873Z",
    "modificationDate": "2017-04-04T15:05:42.873Z"
  }
]

GET /api/shipping_methods/{id}

Cette méthode retourne les informations d'une méthode de livraison spécifique.

URL de la ressource

https://app.snipcart.com/api/shipping_methods/{id}

Paramètres d'URL

Nom Obligatoire? Type Description
id Oui guid L'identifiant unique de la méthode de livraison.

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Exemple de requête

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/shipping_methods/0222da02-ab21-4c4c-ad4e-c06f89f3c966
    -u {API_KEY}:

Exemple de réponse

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ],
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "creationDate": "2017-04-04T15:05:42.873Z",
  "modificationDate": "2017-04-04T15:05:42.873Z"
}

POST /api/shipping_methods

Cette méthode vous permet de créer une méthode de livraison personnalisée.

URL de la ressource

https://app.snipcart.com/api/shipping_methods

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.
Content-Type application/json Oui Spécifie le type de contenu du corps de la demande.

Paramètres de la méthode de livraison personnalisée

Nom Obligatoire Type Description
name Oui string Le nom de la méthode de livraison
location Non object Le lieu où la méthode de livraison est disponible. Peut être spécifié avec les propriétés country et province. Vous devez utiliser le code du pays et le code de la province. Exemple :
{ "country": "CA", "province": "QC" }
Si location n'est pas précisé, la méthode de livraison sera proposée pour n'importe quelle adresse de livraison.
guaranteedEstimatedDelivery Non object Le nombre de jours estimés pour la livraison. Exemple :
{ "minimumDaysForDelivery": 1, "maximumDaysForDelivery": 5 }
Vous pouvez définir uniquement la valeur minimale ou maximale si nécessaire.
rates Oui object[] Les taux associés à cette méthode de livraison. Reportez-vous à la section suivante pour définir un objet rate.

Paramètres des taux

Nom Obligatoire Type Description
cost Oui decimal Le coût du taux de livraison. Doit être une valeur décimale valide.
weight Non object La plage de poids à laquelle le taux est applicable. Exemple :
{ "from": 10, "to": 100 }
L'unité doit être spécifiée en grammes. S'il n'est pas spécifié, le taux de livraison sera disponible quel que soit le poids total de la commande.
location Non object Si elle est spécifiée, le taux ne sera disponible que si l'adresse de livraison de la commande correspond à cette localisation. Exemple : { "country": "CA", "province": "QC" }

Exemple de payload de requête

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ]
}

Exemple de réponse

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ],
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "creationDate": "2017-04-04T15:05:42.873Z",
  "modificationDate": "2017-04-04T15:05:42.873Z"
}

PUT /api/shipping_methods/{id}

Cette méthode vous permet de mettre à jour une méthode de livraison personnalisée existante.

URL de la ressource

https://app.snipcart.com/api/shipping_methods/{id}

Paramètres d'URL

Nom Obligatoire? Type Description
id Oui guid L'identifiant unique de la méthode de livraison.

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.
Content-Type application/json Oui Spécifie le type de contenu du corps de la demande.

Paramètres de la méthode de livraison personnalisée

Nom Obligatoire Type Description
name Oui string Le nom de la méthode de livraison
location Non object Le lieu où la méthode de livraison est disponible. Peut être spécifié avec les propriétés country et province. Vous devez utiliser le code du pays et le code de la province. Exemple :
{ "country": "CA", "province": "QC" }
Si location n'est pas précisé, la méthode de livraison sera proposée pour n'importe quelle adresse de livraison.
guaranteedEstimatedDelivery Non object Le nombre de jours estimés pour la livraison. Exemple :
{ "minimumDaysForDelivery": 1, "maximumDaysForDelivery": 5 }
Vous pouvez définir uniquement la valeur minimale ou maximale si nécessaire.
rates Oui object[] Les taux associés à cette méthode de livraison. Reportez-vous à la section suivante pour définir un objet rate.

Paramètres des taux

Nom Obligatoire Type Description
cost Oui decimal Le coût du taux de livraison. Doit être une valeur décimale valide.
weight Non object La plage de poids à laquelle le taux est applicable. Exemple :
{ "from": 10, "to": 100 }
L'unité doit être spécifiée en grammes. S'il n'est pas spécifié, le taux de livraison sera disponible quel que soit le poids total de la commande.
location Non object Si elle est spécifiée, le taux ne sera disponible que si l'adresse de livraison de la commande correspond à cette localisation. Exemple : { "country": "CA", "province": "QC" }

Exemple de payload de requête

{
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ]
}

Exemple de réponse

{
  "postalCodeRegex": "G1K.*",
  "name": "Domestic shipping",
  "guaranteedEstimatedDelivery": {
    "minimumDaysForDelivery": 5,
    "maximumDaysForDelivery": null
  },
  "location": {
    "country": "CA",
    "province": null
  },
  "rates": [
    {
      "cost": 5,
      "weight": {
        "to": 1000
      }
    },
    {
      "cost": 10,
      "weight": {
        "from": 1000,
        "to": 2000
      }
    },
    {
      "cost": 20,
      "weight": {
        "from": 2000
      }
    }
  ],
  "id": "0222da02-ab21-4c4c-ad4e-c06f89f3c966",
  "creationDate": "2017-04-04T15:05:42.873Z",
  "modificationDate": "2017-04-04T15:10:42.873Z"
}

DELETE /api/shipping_methods/{id}

Cette méthode vous permet de supprimer une méthode de livraison personnalisée. En cas de succès, elle retourne une réponse 204 No Content avec un corps vide.

URL de la ressource

https://app.snipcart.com/api/shipping_methods/{id}

Paramètres d'URL

Nom Obligatoire? Type Description
id Oui guid L'identifiant unique de la méthode de livraison.

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.