Kit de développement: PHP
Avec notre kit de développement PHP, intégrez votre module Cherry Checkout en quelques étapes seulement:
Téléchargement
Pour commencer, téléchargez la dernière version de notre SDK, au format que vous souhaitez:
cherrycheckout-sdk-php.zipL'archive contient un dossier cherrycheckout. Décompressez la quelque part dans votre projet.
Pour la suite, vous aurez également besoin de vos clés API. Vous trouverez dans votre dashboard, deux jeux de clés (un premier jeu pour le mode test, et un second jeu pour le mode prod). Nous vous conseillons, dans un premier temps, de tester avec les clés de test (pk_test_xxxxxx et sk_test_yyyyyy).
Premier appel
Créez un fichier first.php, et ajoutez y les lignes suivantes:
<?php
// Include the SDK loader
require_once('path/to/cherrycheckout/lib/cherrycheckout.php');
use CherryCheckout\Api;
use CherryCheckout\Customer;
use CherryCheckout\Me;
use CherryCheckout\Order;
use CherryCheckout\Exceptions\CustomerEmailMissingException;
use CherryCheckout\Exceptions\CustomerNotSetException;
use CherryCheckout\Exceptions\NoCharityAvailableException;
use CherryCheckout\Exceptions\OrderNotFoundException;
use CherryCheckout\Exceptions\TrackIdAlreadyExistsException;
use CherryCheckout\Exceptions\TrackIdMissingException;
$apiEndPoint = "https://api.cherrycheckout.com/v2";
// Set your keys
$publicKey = "YOUR_PUBLIC_KEY_HERE";
$secretKey = "YOUR_SECRET_KEY_HERE";
// Create your API instance
$api = new Api($apiEndPoint, $publicKey, $secretKey);
try {
// Make the first call to see if our configuration is good
$me = $api->getMe();
echo "Configuration is ok !";
}
catch (\Exception $ex) {
echo "There was an error making first API call: " . $ex->getMessage();
}
Exécutez ce script et vérifiez que la configuration est bonne. Si tout est ok, vous pouvez passer à la suite.
Créer une commande
Une fois que votre instance API est configurée et fonctionnelle, vous allez devoir créer une instance de commande.
// First, create a customer object
$customer = new Customer();
$customer
->setFirstname('Michael')
->setLastname('Jackson')
->setEmail('kingofpop@mjcompany.com')
->setBirthday('1958-08-29')
->setGender('m')
->setAddress('55 rue de la république')
->setZipCode('75000')
->setCity('Paris')
->setCountry('France');
// Then, create an order object
$order = new Order();
$order
->setOrderPrice(85.90)
->setCherryPrice(2)
->setTrackId('ODR-5736')
->setCurrency('eur')
->setCustomer($customer)
->setStatus('validated');
CherryCheckout\Customer | ||
---|---|---|
Firstname* | string | Le prénom du client. |
Lastname* | string | Le nom du client. |
Email* | string | L'adresse e-mail du client. |
Birthday | string | La date de naissance du client. Format attendu: 'YYYY-MM-DD' |
Gender | string | Le genre du client. Valeurs acceptées: 'm', 'f' |
Address | string | L'adresse du client, avec le numéro, ainsi que le type et le nom de la rue. |
ZipCode | string | Le code postal du client |
City | string | La ville du client |
Country | string | Le pays du client |
CherryCheckout\Order | ||
---|---|---|
OrderPrice* | float | Le prix total de la commande, en excluant le montant de la cerise. |
CherryPrice* | integer | Le montant de la participation souhaité le client. |
TrackId* | string | L'ID de la commande, doit être unique pour chaque création de commande. |
Currency* | string | La devise de la commande. Valeurs acceptées: 'chf', 'eur' |
Customer* | Customer | Un objet Customer |
Status* | string | Le statut de la commande. Valeurs acceptées: 'validated', 'canceled' |
Maintenant que votre instance de commande est prête, vous pouvez l'envoyer à l'API.
Effectuez cette opération uniquement dans le cas où votre client a ajouté l'option Cherry Checkout. Il n'est pas utile, et même déconseillé d'envoyer des commandes qui ne concernent pas Cherry Checkout.
// Finally, try to send the order to API
try {
$api->createOrder($order);
echo "Ok, order successfully created!";
}
catch(TrackIdAlreadyExistsException $ex) {
echo "Error, this track id already exists.";
}
catch(NoCharityAvailableException $ex) {
echo "Error, no charity available.";
}
catch(CustomerNotSetException $ex) {
echo "Error, customer was missing.";
}
catch(CustomerEmailMissingException $ex) {
echo "Error, customer e-mail was missing.";
}
catch(\Exception $ex) {
echo "Unknown error: " . $ex->getMessage();
}
CherryCheckout\Exceptions | ||
---|---|---|
TrackIdAlreadyExistsException | 3001 | Cette exception est levée si vous tentez de créer une deuxième commande avec un track id déjà utilisé. Si vous souhaitez modifier une commande, utiliser plutôt la méthode updateOrder() |
NoCharityAvailableException | 3004 | Cette exception est levée parce qu'aucune œuvre caritative n'est rattachée à votre site e-commerce. Dans ce cas, contactez nous. |
CustomerNotSetException | 3006 | Cette exception est levée lorsque vous omettez de soumettre les informations du client. |
CustomerEmailMissingException | 3010 | Cette exception est levée si vous oubliez de renseigner l'adresse e-mail du client. |
Si vous n'avez pas d'erreur à ce niveau, vous pouvez vérifier que votre commande a bien été créée. Pour cela, rendez-vous dans votre dashboard et affichez vos commandes. (Pensez à régler le mode sur 'prod' ou 'test' en fonction du jeu de clés que vous avez utilisé)
Modifier une commande
Vous pouvez être amené à modifier une commande. Par exemple, si le montant total a changé, ou bien si la commande a été annulée. Pour cela, créez une nouvelle instance de commande, avec le même track id que vous avez utilisé pour la création, ainsi que les champs que vous souhaitez modifier.
// Create a new order object, to update it
$order = new Order();
$order
->setTrackId('ODR-5736')
->setStatus('canceled')
->setOrderPrice(95.90);
// Try to update the order to API
try {
$api->updateOrder($order);
echo "Ok, order successfully updated!";
}
catch(TrackIdMissingException $ex) {
echo "Error, the track id was not set.";
}
catch(OrderNotFoundException $ex) {
echo "Error, order was not found with that track id.";
}
catch(\Exception $ex) {
echo "Unknown error: " . $ex->getMessage();
}
CherryCheckout\Exceptions | ||
---|---|---|
TrackIdMissingException | 3100 | Cette exception est levée si vous avez instancié un objet Order sans track id. |
OrderNotFoundException | 3101 | Cette exception est levée si le track id que vous avez renseigné n'existe pas chez Cherry Checkout. Dans ce cas, vous devez d'abord créer la commande à l'aide de la méthode createOrder() |
Si tout se déroule sans erreur, allez vérifier dans votre dashboard, que la commande a bien été modifiée.
Afficher Cherry Checkout aux clients
Et visuellement alors, comment êtes-vous censé représenter ça à vos clients ? A vrai dire, vous êtes libres de faire ce que vous voulez. Nous recommandons cependant quelques points :
- Afficher le module sur votre page checkout, une fois que le client a terminé de composer son panier, et juste avant de valider sa commande.
- Afficher les modalités du jeu. Précisez à quelle association va aller le don, quelles sont les chances au client de gagner, ainsi que le montant du gain potentiel.
- Affichez clairement le prix de la participation
- Ajoutez un bouton de participation. Lorsque le client clique sur ce bouton, vous devez enregister cette information dans votre commande.
- Lorsque le client décide de participer, masquez le module, ou remplacez le par un message de confirmation. Ajoutez une ligne dans le panier, pour indiquer la participation Cherry Checkout.
- Laissez la possibilité au client d'annuler sa participation. Dans ce cas, ré-affichez le plugin dans son état initial.
Si vous ne l'avez pas encore vu, testez notre démonstration de plugin en ligne.
Besoin d'aide ?
Vous rencontrez un problème avec l'intégration de notre SDK - PHP ? Contactez notre support technique.