API : rabais

Si notre système de rabais habituel ne suffit pas, vous pouvez tirer parti de notre API REST pour pousser les choses plus loin.

GET /discounts

Cette méthode retourne tous les rabais de votre compte.

URL de la ressource

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

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/discounts \
    -u {API_KEY}:

Exemple de réponse

[
    {
        "id": "2223490d-84c1-480c-b713-50cb0b819313",
        "name": "Discount name",
        "trigger": "Code",
        "code": "SNIP",
        "itemId": "",
        "totalToReach": null,
        "type": "Rate",
        "rate": 30,
        "amount": null,
        "alternatePrice": null,
        "maxNumberOfUsages": 100,
        "expires": null,
        "numberOfUsages": 0,
        "numberOfUsagesUncompleted": 0,
        "shippingDescription": null,
        "shippingCost": null,
        "shippingGuaranteedDaysToDelivery": null,
    },
    ...
]

GET /discounts/{id}

Cette méthode retourne un rabais particulier.

URL de la ressource

GET https://app.snipcart.com/api/discounts/{id}

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 Obligatoire? Type Description
id Oui guid L'identifiant unique du rabais.

Exemple de requête

curl -H "Accept: application/json" \
    https://app.snipcart.com/api/discounts/2223490d-84c1-480c-b713-50cb0b819313 \
    -u {API_KEY}:

Exemple de réponse

{
    "id": "2223490d-84c1-480c-b713-50cb0b819313",
    "name": "Discount name",
    "trigger": "Code",
    "code": "SNIP",
    "itemId": "",
    "totalToReach": null,
    "type": "Rate",
    "rate": 30,
    "amount": null,
    "alternatePrice": null,
    "maxNumberOfUsages": 100,
    "expires": null,
    "numberOfUsages": 0,
    "numberOfUsagesUncompleted": 0,
    "shippingDescription": null,
    "shippingCost": null,
    "shippingGuaranteedDaysToDelivery": null,
}

POST /discounts

Cette méthode crée un nouveau rabais.

URL de la ressource

POST https://app.snipcart.com/api/discounts

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 Le corps de la requête doit être JSON et nous spécifions donc le type de contenu

Paramètres

Nom Obligatoire? Type Description
name Oui string Le nom amical du rabais.
expires Non datetime La date à laquelle ce rabais doit expirer. Si elle est nulle, le rabais n'expirera jamais.
maxNumberOfUsages Non int Le nombre maximum d'utilisations pour le rabais, si null, les clients pourront utiliser ce rabais indéfiniment.
trigger Oui string Condition qui déclenchera le rabais.
Valeurs possibles :
  • Total
  • Code
  • Product
code Lorsque le déclencheur est Code string Le code qui devra être saisi par le client.
totalToReach Lorsque le déclencheur est Total decimal Le montant minimum de la commande.
itemId Lorsque le déclencheur est Product string L'Identifiant unique de votre produit défini avec data-item-id.
type Oui string Le type d'action auquel le rabais s'appliquera.
Valeurs possibles :
  • FixedAmount
  • FixedAmountOnItems
  • Rate
  • AlternatePrice
  • Shipping
  • AmountOnSubscription
  • RateOnSubscription
amount Lorsque le type est FixedAmount ou AmountOnSubscription decimal Le montant qui sera déduit du total de la commande.
productIds Lorsque le type est FixedAmountOnItems string Une liste séparée par des virgules d'identifiants uniques de vos produits définis avec data-item-id. Le montant fixe sera déduit de chaque produit correspondant.
rate Lorsque le type est Rate ou RateOnSubscription decimal Le taux en pourcentage qui sera déduit du total de la commande.
alternatePrice Lorsque le type est AlternatePrice string Le nom de la liste de prix alternative à utiliser.
shippingDescription Lorsque le type est Shipping string Le nom de la méthode de livraison qui sera affichée à vos clients.
shippingCost Lorsque le type est Shipping decimal Le montant de la livraison qui sera disponible pour vos clients.
shippingGuaranteedDaysToDelivery Non int Le nombre de jours que prendra l'expédition, vous pouvez le laisser à nul.
combinable Non boolean Ceci indique si ce rabais peut être appliqué lorsque d'autres rabais se trouvent dans le panier. De plus, lorsqu'un panier contient un rabais qui n'est pas combinable, aucun autre rabais ne peut être ajouté.

Exemple de requête

curl https://app.snipcart.com/api/discounts \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -u {YOUR_API_KEY}: \
  -d "{ name: 'Free shipping',
        trigger: 'Total',
        totalToReach: 150,
        type: 'Shipping',
        shippingDescription: 'Free shipping',
        shippingCost: 0,
        shippingGuaranteedDaysToDelivery: 10 }"

Exemple de réponse

{
    "id": "19a8d615-09f5-4808-80c2-96cd32d141f3",
    "name": "Free shipping",
    "trigger": "Total",
    "code": null,
    "itemId": null,
    "totalToReach": 150,
    "type": "Shipping",
    "rate": null,
    "amount": null,
    "alternatePrice": null,
    "maxNumberOfUsages": null,
    "expires": null,
    "numberOfUsages": 0,
    "numberOfUsagesUncompleted": 0,
    "shippingDescription": "Free shipping",
    "shippingCost": 0,
    "shippingGuaranteedDaysToDelivery": 10,
}

PUT /discounts/{id}

Cette méthode met à jour un rabais existant.

URL de la ressource

PUT https://app.snipcart.com/api/discounts/{id}

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 Le corps de la requête doit être JSON et nous spécifions donc le type de contenu

Paramètres

Nom Obligatoire? Type Description
id Oui guid L'identifiant unique du rabais.
name Oui string Le nom amical du rabais.
expires Non datetime La date à laquelle ce rabais doit expirer. Si elle est nulle, le rabais n'expirera jamais.
archived Non boolean Si le rabais est archivé ou non
combinable Non boolean Ceci indique si ce rabais peut être appliqué lorsque d'autres rabais se trouvent dans le panier. De plus, lorsqu'un panier contient un rabais qui n'est pas combinable, aucun autre rabais ne peut être ajouté.
maxNumberOfUsages Non int Le nombre maximum d'utilisations pour le rabais, si nul, les clients pourront utiliser ce rabais indéfiniment.
trigger Oui string Condition qui déclenchera le rabais.
Valeurs possibles :
  • Total
  • Code
  • Product
code Lorsque le déclencheur est Code string Le code qui devra être saisi par le client.
totalToReach Lorsque le déclencheur est Total decimal Le montant minimum de la commande.
itemId Lorsque le déclencheur est Product string L'Identifiant unique de votre produit défini avec data-item-id.
type Oui string Le type d'action auquel le rabais s'appliquera.
Valeurs possibles :
  • FixedAmount
  • Rate
  • AlternatePrice
  • Shipping
amount Lorsque le type est FixedAmount decimal Le montant qui sera déduit du total de la commande.
rate Lorsque le type est Rate decimal Le taux en pourcentage qui sera déduit du total de la commande.
alternatePrice Lorsque le type est AlternatePrice string Le nom de la liste de prix alternative à utiliser.
shippingDescription Lorsque le type est Shipping string Le nom de la méthode de livraison qui sera affichée à vos clients.
shippingCost Lorsque le type est Shipping decimal Le montant de la livraison qui sera disponible pour vos clients.
shippingGuaranteedDaysToDelivery Non int Le nombre de jours que prendra l'expédition, vous pouvez le laisser à nul.

Exemple de requête

curl https://app.snipcart.com/api/discounts/19a8d615-09f5-4808-80c2-96cd32d141f3 \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -u {YOUR_API_KEY}: \
  -X PUT \
  -d "{ name: 'Free shipping',
        trigger: 'Total',
        totalToReach: 150,
        type: 'Shipping',
        shippingDescription: 'Free shipping',
        shippingCost: 0,
        shippingGuaranteedDaysToDelivery: 10 }"

Exemple de réponse

{
    "id": "19a8d615-09f5-4808-80c2-96cd32d141f3",
    "name": "Free shipping",
    "trigger": "Total",
    "code": null,
    "itemId": null,
    "totalToReach": 150,
    "type": "Shipping",
    "rate": null,
    "amount": null,
    "alternatePrice": null,
    "maxNumberOfUsages": null,
    "expires": null,
    "numberOfUsages": 0,
    "numberOfUsagesUncompleted": 0,
    "shippingDescription": "Free shipping",
    "shippingCost": 0,
    "shippingGuaranteedDaysToDelivery": 10,
}

DELETE /discounts/{id}

Cette méthode permet de supprimer un rabais existant. Veuillez noter que vous ne pouvez pas supprimer un rabais qui a déjà été utilisé dans une commande complétée.

URL de la ressource

DELETE https://app.snipcart.com/api/discounts/{id}

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 Obligatoire? Type Description
id Oui guid L'identifiant unique du rabais.

Exemple de requête

curl https://app.snipcart.com/api/discounts/19a8d615-09f5-4808-80c2-96cd32d141f3 \
  -H "Accept: application/json" \
  -u {YOUR_API_KEY}: \
  -X DELETE