API
ik ben nog nieuw op deze forum en hoop dat ik het niet verkeerd heb geplaatst.
ik ben bezig met mijn webshop en heb van mijn distributeur een API key gekregen zodat ik realtime de voorraadstatus en dergelijke kan laten opvragen.
ik heb maar 1 topic op het internet gezien waar ze hetzelfde mee willen doen maar daar zijn ze waarschijnlijk ook niet meer verder in gaan verdiepen. Ik zit momenteel klem en wil graag hulp vragen van jullie. Weet iemand hierover meer informatie of heeft hij/zij het al eerder gedaan?
Wat ik heb:
Werkende webshop
Een API KEY
Dit zijn de dingen die ik van mijn distributeur heb gekregen:
Quote:
Mijn Twindis API
Gebruik de Twindis API om op Uw website altijd de correcte gegevens van onze producten te krijgen.
Mijn API Key
API uitleg
Wat is een API?
Momenteel verkeert de API in BETA fase, het is mogelijk dat er veranderingen in geplaatst worden.
Een API request zal altijd een JSON object terug geven. Een API request ziet er als volgt uit:
http://www.twindis.com/api/functie?apikey=key&andere parameters
Momenteel is alleen de getStatus functie beschikbaar; hierbij hoeft u behalve uw API key alleen de ID variabele mee te geven van het betreffende product.
bijvoorbeeld
http://www.twindis.com/api/getStatus?apikey=eEnApIkEy&id=P0000001
Gebruik de Twindis API om op Uw website altijd de correcte gegevens van onze producten te krijgen.
Mijn API Key
API uitleg
Wat is een API?
Momenteel verkeert de API in BETA fase, het is mogelijk dat er veranderingen in geplaatst worden.
Een API request zal altijd een JSON object terug geven. Een API request ziet er als volgt uit:
http://www.twindis.com/api/functie?apikey=key&andere parameters
Momenteel is alleen de getStatus functie beschikbaar; hierbij hoeft u behalve uw API key alleen de ID variabele mee te geven van het betreffende product.
bijvoorbeeld
http://www.twindis.com/api/getStatus?apikey=eEnApIkEy&id=P0000001
vervolg wat is een api
Quote:
API staat voor Application Programming Interface, een soort 'tussenvoegsel' waardoor een computerprogramma kan communiceren met een ander programma. Met behulp van een API hoeft bijvoorbeeld een tekenprogramma niet de details te weten van de aansturing van de printer, maar kan het deze printer wel gebruiken; het enige wat het tekenprogramma hoeft te doen is de afdruk-API, een stuk gespecialiseerd software in een bibliotheek, aan te roepen om de tekening te printen.
In dit geval zorgt de Twindis API ervoor dat uw eigen database realtime kan communiceren met de Twindis database, bijvoorbeeld om de real-time voorraad van Twindis direct te linken aan uw eigen voorraad.
Ingelogde gebruikers kunnen sinds kort op https://www.twindis.com/account/mijn-api-key/ hun API key vinden.
Een voorbeeld van een key is "E2EE2E8DE201EFF104DE51E16F867EAF". (Deze key verschilt per klant)
Als u naar de volgende URL gaat:
http://www.twindis.com/api/getStatus?apikey=E2EE2E8DE201EFF104DE51E16F867EAF&id=p0002079
dan krijgt u het volgende resultaat terug:
{
"ID": "p0002079",
"STOCK": 1068,
"LEADTIME": 0,
"LEADTIMETEXT": "Op voorraad"
}
Dit resultaat is in JSON formaat voor data-uitwisseling, uw website developer weet wat hiermee moet gebeuren.
De ID is het artikelnummer zoals het bij Twindis bekend is
De STOCK is de realtime actuele voorraad bij Twindis.
De LEADTIME betekent hoeveel dagen dat het duurt voor Twindis het product kan opsturen.
De LEADTIMETEXT is de exacte tekst zoals Twindis die op de website gebruikt.
In dit geval zorgt de Twindis API ervoor dat uw eigen database realtime kan communiceren met de Twindis database, bijvoorbeeld om de real-time voorraad van Twindis direct te linken aan uw eigen voorraad.
Ingelogde gebruikers kunnen sinds kort op https://www.twindis.com/account/mijn-api-key/ hun API key vinden.
Een voorbeeld van een key is "E2EE2E8DE201EFF104DE51E16F867EAF". (Deze key verschilt per klant)
Als u naar de volgende URL gaat:
http://www.twindis.com/api/getStatus?apikey=E2EE2E8DE201EFF104DE51E16F867EAF&id=p0002079
dan krijgt u het volgende resultaat terug:
{
"ID": "p0002079",
"STOCK": 1068,
"LEADTIME": 0,
"LEADTIMETEXT": "Op voorraad"
}
Dit resultaat is in JSON formaat voor data-uitwisseling, uw website developer weet wat hiermee moet gebeuren.
De ID is het artikelnummer zoals het bij Twindis bekend is
De STOCK is de realtime actuele voorraad bij Twindis.
De LEADTIME betekent hoeveel dagen dat het duurt voor Twindis het product kan opsturen.
De LEADTIMETEXT is de exacte tekst zoals Twindis die op de website gebruikt.
Hopelijk kan iemand mij hiermee helpen.
EDIT:
dit is het link die ik heb kunnen vinden:
http://forum.opencart.com/viewtopic.php?f=106&t=95645
Gewijzigd op 05/10/2014 15:43:24 door Omer Sari
Slimmerik... haal even je API key uit het bericht weg!!!
Ozzie PHP :) thnx
;)
Als je wilt dat wij jou een duwtje in de rug gaan geven dan zul je met specifieke vragen moeten komen.
Een vraag zou bijvoorbeeld kunnen zijn: Hoe lees ik die JSON's uit in PHP?
Die link wijst naar opencart.com. Is jouw webshop een opencart webshop?
Mijn kennis is zeer beperkt maar ben wel bereid om te leren.
Ik heb een draaiende webshop met OpenCart.
In die link heb ik die code wel kunnen plakken op de product pagina.
Bij de laatste antwoord hebben ze het over de : url: 'http://www.twindis.com/api/getStatus?apikey=E2EE2E8DE201EFF104DE51E16F867EAF&id=', dit moet zijn $model;
als ik dit doe:
link: http://www.twindis.com/api/getStatus?apikey=MIJNAPIKEY&id=<br>
geeft hij het wel netjes aan in PHP, maar in deze script niet:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: 'http://www.twindis.com/api/getStatus?apikey=MIJNAPIKEY&id=',
type: 'post',
dataType: 'json',
beforeSend: function() {
$('#stock').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['ID']) {
$('#stock').html(json['STOCK']);
$('#leadtime').html(json['LEADTIME']);
$('#leadtimetext').html(json['LEADTIMETEXT']);
}
},
error: function() {
$('#leadtimetext').html('Onbekend');
}
});
});
</script>
Aantal:<span id="stock"></span><br />
Levertijd:<span id="leadtime"></span><br />
Voorraad:<span id="leadtimetext"></span><br />[/quote]
wat is er mis mee met dit stukje code?
Roep eens een script aan op je eigen server. laten we zeggen "api.php?model=foobar".
in api.php staat vervolgens:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$response = file_get_contents('http://www.twindis.com/api/getStatus?apikey=MIJNAPIKEY&id='. $_GET['model]);
echo $response;
?>
$response = file_get_contents('http://www.twindis.com/api/getStatus?apikey=MIJNAPIKEY&id='. $_GET['model]);
echo $response;
?>
NB: check even de inhoud van $_GET['model'] voor je live gaat: er kan rommel in zitten
Daarmee geef je ook niet de api key in handen van de bezoekers van de site.
Toevoeging op 05/10/2014 17:10:23:
afhankelijk van wat die api terug geeft, kan je op regel 5 ook nog een json_encode() nodig hebben
Waar het om gaat is dat je weet welke url's je moet hebben voor welke actie. Je kan de url's in PHP heel makkelijk uitvoeren met file_get_contents(). de JSON komt dan weer in een object of een array te staan welke met de functie json_decode().
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Gewijzigd op 05/10/2014 17:19:02 door Frank Nietbelangrijk
Nee dit werkt niet.
@Frank Nietbelangrijk:
Hoe zou jij het doen?
---------
Wat een gedoe om 3 woorden uit te lezen zeg :)
Ik heb wel wat gelezen over de API maar had het eerlijk niet verwacht dat het zo moeilijk moest zijn.
http://www.phptuts.nl/view/39/6/
Toevoeging op 05/10/2014 17:22:07:
Zal even een compleet voorbeeldje maken ...
Dit werkt wel.
Wat het nu is, is dat ik meerdere producten heb.
http://www.twindis.com/api/getStatus?apikey=MIJNAPIKEY&id=P0000001
bij elke product veranderd die Pxxxxxx
Op dezelfde pagina wordt wel de Modelnummer aangegeven. deze zou ik toch ergens in dat stukje code moeten opgeven.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$sleutel = '<Jouw sleutel>';
$id = 'p0002079';
$url = 'http://www.twindis.com/api/getStatus?apikey=' . $sleutel . '&id=' . $id;
$array = json_decode(file_get_contents($url), true);
/*
echo '<pre>';
print_r($array);
echo '</pre>';
*/
echo 'id: '. $array['ID'] . '<br>';
echo 'op voorraad: '. $array['STOCK'] . '<br>';
echo 'levertijd: '. $array['LEADTIME'] . '<br>';
echo 'omschrijving: '. $array['LEADTIMETEXT'] . '<br>';
?>
$sleutel = '<Jouw sleutel>';
$id = 'p0002079';
$url = 'http://www.twindis.com/api/getStatus?apikey=' . $sleutel . '&id=' . $id;
$array = json_decode(file_get_contents($url), true);
/*
echo '<pre>';
print_r($array);
echo '</pre>';
*/
echo 'id: '. $array['ID'] . '<br>';
echo 'op voorraad: '. $array['STOCK'] . '<br>';
echo 'levertijd: '. $array['LEADTIME'] . '<br>';
echo 'omschrijving: '. $array['LEADTIMETEXT'] . '<br>';
?>
Gewijzigd op 05/10/2014 18:07:04 door Frank Nietbelangrijk
Ongelofelijk!
Ik heb er geen woord ervoor over.
Enige wat ik moest doen was $id = $model ;
Nogmaals bedankt!
Ik was er al vanaf vanmorgen ermee bezig!
hopelijk wel $id = $_GET['model'], want anders heb je nog wel een ander probleem in het verschiet...
In je eerste post is nog steeds de API sleutel te lezen.
Zo te zien is dat een demo-APIkey ;)
in welke php locatie's of bestanden kan ik dit instellen in opencart om dit werkend te krijgen? Wie wil dit mij duidelijk uitleggen?
Ik zou u heel erg dankbaar zijn hiervoor