API : commandes

Vous pouvez rechercher vos commandes, récupérer une commande spécifique ou mettre à jour les informations relatives aux commandes via notre API.

GET /orders

Cette méthode retourne toutes les commandes qui ont été complétées.

URL de la ressource

GET https://app.snipcart.com/api/orders

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.

Paramètres

Nom Nom Type Description
offset Oui int Nombre de résultats à ignorer. La valeur par défaut est 0.
limit Oui int Nombre de résultats à récupérer. La valeur par défaut est 20.
status Non string Un critère d'état pour votre collection de commandes. Valeurs possibles : (InProgress, Processed, Disputed, Shipped, Delivered, Pending, Cancelled)
invoiceNumber Non string Le numéro de facture de la commande à récupérer.
productId Non string Retourne uniquement les commandes contenant ce produit. **Notez qu'il doit s'agir de l'identifiant défini par l'utilisateur, et non de l'identifiant unique défini par Snipcart.
placedBy Non string Le nom de la personne qui a effectué l'achat.
from Non datetime Retourne uniquement les commandes passées après cette date.
to Non datetime Retourne uniquement les commandes passées avant cette date.
isRecurringOrder Non bool Retourne uniquement les commandes qui sont récurrentes ou non.

Exemple de requête

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/orders?offset=0&limit=50&status=processed \
    -u {API_KEY}:

Exemple de réponse

{
    "totalItems": 10,
    "offset": 0,
    "limit": 50,
    "items": [
        {
            "token": "d16e2f60-39f1-4a4c-b1c3-8a2e166d3f70",
            "creationDate": "2013-10-21T20:36:26.46Z",
            "modificationDate": "2013-10-21T20:36:26.46Z",
            "status": "Processed",
            "paymentMethod": "CreditCard",
            "invoiceNumber": "SNIP-0001",
            "email": "geeks@snipcart.com",
            "cardHolderName": "Geeks Snipcart",
            "creditCardLast4Digits": "4242",
            "billingAddressName": "Geeks Snipcart",
            "billingAddressCompanyName": "Snipcart",
            "billingAddressAddress1": "4885 1ere Avenue",
            "billingAddressAddress2": "",
            "billingAddressCity": "Québec",
            "billingAddressCountry": "CA",
            "billingAddressProvince": "QC",
            "billingAddressPostalCode": "G1H2T5",
            "billingAddressPhone": "1-877-301-4813",
            "notes": null,
            "shippingAddressName": "Geeks Snipcart",
            "shippingAddressCompanyName": "Snipcart",
            "shippingAddressAddress1": "4885 1ere Avenue",
            "shippingAddressAddress2": "",
            "shippingAddressCity": "Québec",
            "shippingAddressCountry": "CA",
            "shippingAddressProvince": "QC",
            "shippingAddressPostalCode": "G1H2T5",
            "shippingAddressPhone": "1-877-301-4813",
            "shippingAddressSameAsBilling": true,
            "finalGrandTotal": 443,
            "shippingFees": 0,
            "shippingMethod": "Free shipping",
            "items": [],
            "taxes": [],
            "promocodes": [],
            "willBePaidLater": false,
            "customFields": [],
            "paymentTransactionId": "gateway_payment_id",
        },
        ...
    ]
}

GET /orders/{token}

Cette méthode retourne une commande particulière avec tous les articles, codes de promotion et taxes qui ont été appliqués à cette commande.

URL de la ressource

GET https://app.snipcart.com/api/orders/{token}

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.

Paramètres

Nom Nom Type Description
code Oui guid Le jeton unique de la commande

Exemple de requête

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/orders/d16e2f60-39f1-4a4c-b1c3-8a2e166d3f70 \
    -u {API_KEY}:

Exemple de réponse

{
    "token": "93c4604e-35ac-4db7-b3f1-2871476e9e6a",
    "creationDate": "2013-10-22T20:54:40.377Z",
    "modificationDate": "2013-10-22T20:55:45.617Z",
    "status": "Processed",
    "paymentMethod": "CreditCard",
    "invoiceNumber": "SNIP-1427",
    "email": "geeks@snipcart.com",
    "cardHolderName": "Geeks Snipcart",
    "creditCardLast4Digits": "4242",
    "billingAddressName": "Geeks Snipcart",
    "billingAddressCompanyName": "Snipcart",
    "billingAddressAddress1": "4885 1ere Avenue",
    "billingAddressAddress2": null,
    "billingAddressCity": "Quebec",
    "billingAddressCountry": "CA",
    "billingAddressProvince": "QC",
    "billingAddressPostalCode": "G1H2T5",
    "billingAddressPhone": "1-877-301-4813",
    "notes": null,
    "shippingAddressName": "Geeks Snipcart",
    "shippingAddressCompanyName": "Snipcart",
    "shippingAddressAddress1": "4885 1ere Avenue",
    "shippingAddressAddress2": null,
    "shippingAddressCity": "Quebec",
    "shippingAddressCountry": "CA",
    "shippingAddressProvince": "QC",
    "shippingAddressPostalCode": "G1H2T5",
    "shippingAddressPhone": "1-877-301-4813",
    "shippingAddressSameAsBilling": true,
    "finalGrandTotal": 287.44,
    "shippingFees": 10,
    "shippingMethod": "Shipping",
    "items": [
        {
            "uniqueId": "1aad3398-1260-419c-9af4-d18e6fe75fbf",
            "id": "1",
            "name": "Un poster",
            "price": 300,
            "quantity": 1,
            "url": "http://snipcart.com",
            "weight": 10,
            "description": "Bacon",
            "image": "",
            "customFieldsJson": "[]",
            "stackable": true,
            "maxQuantity": null,
            "totalPrice": 300,
            "totalWeight": 10
        },
        ...
    ],
    "taxes": [
        {
            "taxName": "TPS",
            "taxRate": 0.05,
            "amount": 12.5,
            "numberForInvoice": ""
        },
        {
            "taxName": "TVQ",
            "taxRate": 0.09975,
            "amount": 24.94,
            "numberForInvoice": ""
        },
        ...
    ],
    "rebateAmount": 0,
    "subtotal": 310,
    "itemsTotal": 300,
    "grandTotal": 347.44,
    "totalWeight": 10,
    "hasPromocode": true,
    "totalRebateRate": 20,
    "promocodes": [
        {
            "code": "PROMO",
            "name": "PROMO",
            "type": "Rate",
            "rate": 20,
        },
        ...
    ],
    "willBePaidLater": false,
    "customFields": [
        {
            "name":"Slug",
            "value": "An order"
        },
        ...
    ],
    "paymentTransactionId": null,
}

PUT /orders/{token}

Cette méthode permet de mettre à jour l'état de la commande spécifiée. Vous pouvez utiliser ce point de terminaison pour définir le numéro de suivi de la commande, modifier son état ou ajouter des informations de métadonnées utiles.

Passer l'état d'une commande de Pending à Processed et l'état du paiement de Authorized à Paid capturera un paiement. Cela s'applique uniquement aux paiements en deux étapes proposés par Stripe.

URL de la ressource

PUT https://app.snipcart.com/api/orders/{token}

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 Assurez-vous de spécifier le bon Content-Type. Notre API est uniquement JSON, nous ne supportons pas et ne supporterons pas d'autres types de contenu tels que XML.

Paramètres

Nom Nom Type Description
token Oui guid Le jeton unique de la commande. Ce paramètre doit être transmis par l'URL.
status Oui string L'état de la commande. Valeurs possibles : (InProgress, Processed, Disputed, Shipped, Delivered, Pending, Cancelled)
paymentStatus Non string L'état du paiement de la commande. Valeurs possibles : (Paid, Deferred, PaidDeferred, ChargedBack, Refunded, Paidout, Failed, Pending, Expired, Cancelled, Open, Authorized).
trackingNumber Non string Le numéro de suivi associé à la commande.
trackingUrl Non string L'URL où le client pourra suivre sa commande.
metadata Non object Un simple objet JSON qui peut contenir toutes les données associées à cette commande. { "internal_id": "12345", "external_user_id": "user_id_1" }

Exemple de requête

curl https://app.snipcart.com/api/orders/c7af6278-1c06-411d-b009-22a839efda75 -X PUT \
-H "Content-Type: application/json" \
-H "Accept: application/json" -u {YOUR_API_KEY}: \
-d "{'status': 'Delivered'}"

Réponse

Exemple de réponse

{
    "token": "c7af6278-1c06-411d-b009-22a839efda75",
    "creationDate": "2013-10-22T20:54:40.377Z",
    "modificationDate": "2013-10-22T20:55:45.617Z",
    "status": "Delivered",
    "paymentMethod": "CreditCard",
    "invoiceNumber": "SNIP-1427",
    "email": "geeks@snipcart.com",
    "cardHolderName": "Geeks Snipcart",
    "creditCardLast4Digits": "4242",
    "billingAddressName": "Geeks Snipcart",
    "billingAddressCompanyName": "Snipcart",
    "billingAddressAddress1": "4885 1ere Avenue",
    "billingAddressAddress2": null,
    "billingAddressCity": "Quebec",
    "billingAddressCountry": "CA",
    "billingAddressProvince": "QC",
    "billingAddressPostalCode": "G1H2T5",
    "billingAddressPhone": "1-877-301-4813",
    "notes": null,
    "shippingAddressName": "Geeks Snipcart",
    "shippingAddressCompanyName": "Snipcart",
    "shippingAddressAddress1": "4885 1ere Avenue",
    "shippingAddressAddress2": null,
    "shippingAddressCity": "Quebec",
    "shippingAddressCountry": "CA",
    "shippingAddressProvince": "QC",
    "shippingAddressPostalCode": "G1H2T5",
    "shippingAddressPhone": "1-877-301-4813",
    "shippingAddressSameAsBilling": true,
    "finalGrandTotal": 287.44,
    "shippingFees": 10,
    "shippingMethod": "Shipping",
    "items": [
        {
            "uniqueId": "1aad3398-1260-419c-9af4-d18e6fe75fbf",
            "id": "1",
            "name": "Un poster",
            "price": 300,
            "quantity": 1,
            "url": "http://snipcart.com",
            "weight": 10,
            "description": "Bacon",
            "image": "",
            "customFieldsJson": "[]",
            "stackable": true,
            "maxQuantity": null,
            "totalPrice": 300,
            "totalWeight": 10
        },
        ...
    ],
    "taxes": [
        {
            "taxName": "TPS",
            "taxRate": 0.05,
            "amount": 12.5,
            "numberForInvoice": ""
        },
        {
            "taxName": "TVQ",
            "taxRate": 0.09975,
            "amount": 24.94,
            "numberForInvoice": ""
        },
        ...
    ],
    "rebateAmount": 0,
    "subtotal": 310,
    "itemsTotal": 300,
    "grandTotal": 347.44,
    "totalWeight": 10,
    "hasPromocode": true,
    "totalRebateRate": 20,
    "promocodes": [
        {
            "code": "PROMO",
            "name": "PROMO",
            "type": "Rate",
            "rate": 20,
        },
        ...
    ],
    "willBePaidLater": false,
    "customFields": [],
    "paymentTransactionId": null,
}