Si vous souhaitez réserver le stock dès le clic de l'acheteur sur le bouton. Vous pouvez procéder de la façon suivante :
1. Vous décrémentez votre stock à l'appel du point d'entré : "/v2/orders/authorize"
2. Vous réincrémentez votre stock dès que Oyst vous notifie :
- d'un décrément de quantité de l'acheteur sur la page récapitulative
- d'une annulation de commande
- d'un échec de paiement
- d'un abandon lors de la création du compte oyst de l'acheteur
Exemple de notification de libération de stock :
{
"data":{
"products":[
{
"reference":"rubiks3x3",
"quantity":4
},
{
"reference":"rubiks4x4",
"quantity":2
}
],
"reason":"cancel_order",
"context_id":"id_context"
},
"event":"order.stock.released"
}
Ci dessus la référence "rubiks3x3" a été libéré en 4 exemplaires et la référence "rubiks4x4" a été libérée en 2 exemplaires.
L'appel est effectué sur l'url que vous avez renseigné dans le champs notifications.url (voir plus bas).
3. Oyst vous interroge à chaque demande d'incrément de stock de l'acheteur.
A chaque demande d'incrément de quantité de l'acheteur Oyst peut vous interroger pour valider que le stock est disponible. Pour cela vous devez ajouter le paramètre "should_ask_stock" dans le body de l'appel. L'appel est effectué sur l'url que vous avez renseigné dans le champs notifications.url.
POST /oneclick/v2/orders/authorize HTTP/1.1
Host: api.sandbox.oyst.eu
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache
Postman-Token: 61988c87-ff4a-51c1-eaa5-5c24760c8329
{
"product":{...},
"context":{
"id": "context_id",
"user_login":"toto25"
},
"notifications": {
"should_ask_for_stock":true,
"url": "http://www.your_notification_url.com"
},
}
Format de l'appel de Oyst pour vous demander si le stock est disponible :
{
"data":{
"quantity":1,
"context_id":"context_id",
"product_reference":"rubiks"
},
"event":"order.stock.book"
}
Format de réponse attendu en cas de stock disponible :
{
"quantity":1,
"product_reference":"rubiks"
}
Format de réponse attendu en cas de stock indisponible :
{
"quantity":0,
"product_reference":"rubiks"
}
Désactivation des modifications de quantité
Vous pouvez aussi désactiver les modifications de quantité en renseignant le paramètre manage_quantity à false dans l'appel.
POST /oneclick/v2/orders/authorize HTTP/1.1
Host: api.sanbox.oyst.eu
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json; charset=utf-8
Cache-Control: no-cache
Postman-Token: 61988c87-ff4a-51c1-eaa5-5c24760c8329
{
"product":{...},
"order":{
"manage_quantity": false
},
"notifications": {
"url": "http://www.your_notification_url.com"
},
}
Les boutons + et - seront ainsi masqué sur la page de récapitulatif de commande.