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.