Avec la configuration dynamique la logique des choix des modes d'expédition et calcul des tarifs est exécutée de votre coté.

Après le clic d'un acheteur sur le bouton, Oyst vous appelle alors avec :

1. l'adresse de l'acheteur,
2. le détail des produits de la commande,
3. le contexte que vous avez renseigné en amont. 

Vous retournez alors à Oyst :

1. la liste des modes d'expéditions disponibles pour cette commande ;
2. les tarifs associés pour chaque mode d'expéditions.

Oyst affichera à l'acheteur les modes d'expédition avec les tarifs que vous avez défini. Le mode d'expédition choisi par l'acheteur (et son tarif) vous seront transmis avec la commande.

L'implémentation se fait en 2 étapes :

  1. Renseigner le paramètre "should_ask_shipments": true dans l'appel à l'authorize.
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

{  
   "product":{...},
   "order":{...},
   "notifications":{  
       "should_ask_shipments":true,
       "url":"http://YOUR_NOTIFICATION_URL"
   }, 
}
  1. Implémenter votre endpoint pour qu'il retourne les modes d'expéditions disponibles pour une commande et les tarifs associés.

🚧

End point = URL de notification

L'URL de votre endpoint est l'URL que vous spécifiez dans l'appel de l'URL de 1click. C'est la même URL que celle sur laquelle Oyst vous notifie de vos nouvelles commandes.

Format d'appel de Oyst :

{  
   "data":{  
      "context":{...},
      "items":[  
         {  
            "quantity":1,
            "reference":"rubikscube4"
         }
      ],
      "user":{  
         "id":"d32da0b0-9219-11e7-9a00-ff39340c62ad",
         "email":"[email protected]",
         "phone":"+33600000000",
         "address":{  
            "city":"Paris",
            "label":"Travail",
            "region":"ile-de-france",
            "street":"33 rue lafayette",
            "country":"france",
            "postcode":"75009",
            "last_name":"Jean",
            "first_name":"Dupond",
            "company_name":"Oyst",
            "complementary":"etage -1"
         },
         "language":"FR",
         "last_name":"Jean",
         "first_name":"Dupont"
      }
   },
   "event":"order.shipments.get"
}

Format de retour attendu par Oyst :

{  
   "shipments":[  
      {  
         "amount":{  
            "currency":"EUR",
            "value":690
         },
         "delay":48, 			//delai de livraison moyen en jours
         "primary":true, 	//true si c'est le mode d'expédition par défault
         "carrier":{  
            "id":"colissimo",
            "name":"Colissimo",
            "type":"home_delivery"
         }
      },
      {  
         "amount":{  
            "currency":"EUR",
            "value":390
         },
         "delay":48,
         "primary":false,
         "carrier":{  
            "id":"mondial_relay",
            "name":"Mondial Relay",
            "type":"mondial_relay"
         }
      },
      {  
         "amount":{  
            "currency":"EUR",
            "value":449
         },
         "delay":48,
         "primary":false,
         "carrier":{  
            "id":"pick_up",
            "name":"La navette PickUp",
            "type":"pick_up"
         }
      }
   ]
}