Set data

De volgende functies kunnen aangeroepen worden voor het plaatsen en bijhouden van data met betrekking jouw Spari Zakelijk beheerpaneel.

Registreer nieuwe Spari account

Zodra jouw klant nog geen Spari consumenten account heeft, kan je op basis van de bekende account gegevens jouw klant via één druk op de knop hiervan voorzien. De pagina waarnaar deze druk op de knop zal leiden hoeft vervolgens enkel voorzien worden van de volgende code.

// Register a new user with just one click
// Results will be a Json string containing the sessionCustomer
// Notice: this feature fully depends on your Spari App Premissions
$spari->registerCustomer($id, $email, $firstname, $lastname, $gender, $birthday, $street = '', $suburb = '', $zipcode = '', $city = '', $country = '');

Reserveer de te ontvangen stempels

Wanneer de klant een bestelling plaatst kan je de te ontvangen stempels 'reserveren'. Door te reserveren zullen de stempels klaar gezet worden en zullen ter vorkoming van fraude pas opgeleverd worden zodra deze reservering definitief gemaakt wordt. Het definitief maken van een reservering doe je daarom ook meestal pas zodra de betaling is ontvangen.

/*/ 
 * This is the format the API will require to receive and to be able to set the rewards 
 * The array will contain demo data, you have to adjust these to your own software
 * Notice: this will be the demo data we're referring to when using the variable in other codeblocks
/*/
$rewards = array(
  // this is the total value of the order, which is used for
  'value' => '100.00', 

  // the items element will be containing all the product and category id's
  'items' => array( 
     // this array will contain all the product ids and attached data
     'products' => array(
	'1' => array( // this array will contain all the necessary product data
	   'category_id' => '8', // tell the API what the category_id of the product is
	   'amount' => '2', // provide the amount of products in the cart that have this product_id
	   'name' => 'Test product 1' // tell the API what the name of this product is
	)
     )
  )
);

// Make an reservation for the new stamps the following way
$results = $spari->requestStamp($rewards);

// The output on $results will be containing the reservation key
// NOTICE: Make sure to store this key somewhere attached to the order, so you will be able to make the reservation official on completing 
$results = array('status' => 'CREATED', 'succes' => true, 'reserved_key' => 'this_is_the_key_you_have_to_store');

Reserveer de te gebruiken stempels

Wanneer er een volle kaart met stempels ingewisseld moet worden, kan je de huidige stempels wederom 'reserveren'. In dit geval zullen de stempels dan, zolang de reservering staat, de stempels niet meer ingewisseld kunnen worden via bijvoorbeeld de app of een andere bestelling. Deze stempels zijn in dit geval dan dus ook volledig niet meer te gebruiken. Wanneer een bestelling niet doorgaat kunnen de gereserveerde stempels weer gebruikt worden als de reservering geannuleerd wordt.

/*/ 
 * This function requires to send the cards that have to be claimed, we will use variable $cards in this example which presents the format 
 * Notice: this will be the demo data we're referring to when using the variable in other codeblocks
/*/ 
$cards = array(
  'the_first_card_id_goes_here' => 'amount_of_first_cards_that_will_be_exchanged_goes_here', 
  'the_second_card_id_goes_here' => 'amount_of_second_cards_that_will_be_exchanged_goes_here' 
  // if more cards are being exchanged, follow the template above.
  // this array may also contain just one card
);

// Mark the stamps as being reserved
$results = $spari->requestClaim($cards);

// The output on $results should be as following
$results = array(
  // as usual, it will return the default variables
  'reserved_key' => 'the_reserved_key_can_be_used_for_your_validation', 
  'status' => 'CREATED', 
  'succes' => true, 

  // and finally it will return the rewards
  'rewards' => array( 
     // this array will contain all the data attached to the card which the user exchanged
     '23' => array(
	'type' => 'cash', // the reward type will either be cash or product

	// When the reward type is product, the API will return the free product id the following way
	'products' => array( // this array will contain all the product id's that will be free on the order
	   '0' => '123' // the 123 will be the free product id that has been set through our platform
	)

	// When the reward type is cash, the API will return the following discount array
	'discount' => array( // this array will contain all the necessary product data
	   'value' => '1.97', // the value of the discount will be mentioned here, where the type has to be applied on
	   'type' => 'fixed' // this will be the discount type applied with the value, which is either fixed or percent
	)

	// It's either the products array or the discount array, at this moment we won't return both at the same time
     )
  )
);

Bewerk een reservering

Het bewerken van een reservering kan op twee wijzes, namelijk het bewerken van de nog te plaatsen stempels of bewerken van de geclaimde stempels. De keuze is geheel aan welke functie er aangeroepen zal worden, waarbij bijde functies hieronder in aparte codeblocks zijn omschreven.

/*/ 
 * First we'll be editing the stamps a user will receive 
 * For this example we'll be using the previous $rewards array example.
/*/ 
$results = $spari->updateStamp("the_reserved_key_goes_here", $rewards);

// The output on $results should be as following
$results = array('status' => 'DONE', 'succes' => true, 'reserved_key' => 'the_reserved_key_can_be_used_for_your_validation');

/*/ 
 * And last we'll be editing the claimed stamps that are reserved 
 * For this example we'll be using the previous $cards array example.
/*/ 
$results = $spari->updateClaim("the_reserved_key_goes_here", $cards);

// The output on $results should be as following
$results = array('status' => 'DONE', 'succes' => true, 'reserved_key' => 'the_reserved_key_can_be_used_for_your_validation');

Annuleer een reservering

Zodra de bestelling (onherroepelijk) geannuleerd wordt moet je de reservering annuleren. Voor zowel het reserveren van te ontvangen- als te gebruiken stempels kan deze functie aangeroepen worden. Je hebt namelijk enkel de reserverings id nodig die verstreken is op het moment dat de reservering geplaatst werd.

// Cancel the reservation for claiming or setting new stamps 
$cancel = $spari->cancelRequest("the_reserved_key_goes_here");

// The function will return the following array
$cancel = array('succes' => true, 'status' => 'CANCELED', 'reserved_key' => 'the_reserved_key_can_be_used_for_your_validation'); 

Maak reservering definitief

Op het moment dat je bijvoorbeeld de betaling hebt ontvangen en/of de producten zijn opgeleverd, moet de reservering definitief gemaakt worden. In geval van nieuwe stempels is het namelijk nodig dat deze gebruikt kunnen worden en bij het claimen van stempels moeten deze uiteraard niet meer ongedaan gemaakt kunnen worden. Hiervoor kan je deze functie gebruike welke de reservering definitief maakt.

// Make the reservation official and available 
$confirm = $spari->confirmRequest("the_reserved_key_goes_here");

// The function will return the following array
$confirm = array('succes' => true, 'status' => 'DONE', 'reserved_key' => 'the_reserved_key_can_be_used_for_your_validation');