API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Omer Sari

Omer Sari

05/10/2014 15:40:05
Quote Anchor link
Beste,

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


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.


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
 
PHP hulp

PHP hulp

26/04/2024 17:22:20
 
Ozzie PHP

Ozzie PHP

05/10/2014 15:42:47
Quote Anchor link
Slimmerik... haal even je API key uit het bericht weg!!!
 
Omer Sari

Omer Sari

05/10/2014 15:44:02
Quote Anchor link
Ozzie PHP :) thnx
 
Ozzie PHP

Ozzie PHP

05/10/2014 15:45:55
Quote Anchor link
;)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 16:55:47
Quote Anchor link
Ja goed, wat een API is weet ik wel. Wat weet je zelf van PHP beste Omer? Je vraagt of iemand kan helpen. Wij zijn er niet om jouw code te gaan schrijven. Wil je iemand zoeken die dat voor je doet dan kun je een vacature plaatsen.

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?
 
Omer Sari

Omer Sari

05/10/2014 17:01:53
Quote Anchor link
Hoi Frank,

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=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $product_id; ?>
', dit moet zijn $model;

als ik dit doe:

link: http://www.twindis.com/api/getStatus?apikey=MIJNAPIKEY&id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $model; ?>
<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=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $model; ?>
',
type: 'post',
dataType: 'json',
beforeSend: function() {
$('#stock').after('<span class="wait">&nbsp;<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?
 
Ivo P

Ivo P

05/10/2014 17:09:21
Quote Anchor link
kun je middels ajax wel zomaar een url buiten je eigen domein aanroepen?

Roep eens een script aan op je eigen server. laten we zeggen "api.php?model=foobar".


in api.php staat vervolgens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

$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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 17:10:32
Quote Anchor link
Dat is javascript met JQuery. Dat zou ik persoonlijk liever niet gebruiken want dan ligt direct je API sleutel weer te grabbel. javascript wordt namelijk in de bron van je pagina meegestuurd naar de browser. Iedereen kan de bron van een webpagina bekijken en dan valt daarin jouw api-sleutel te lezen.

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

$url
= 'http://jouw-url.com';
$json = file_get_contents($url);

echo 'JSON in een object:';
$object = json_decode($json);
echo '<pre>';
var_dump($object);
echo '</pre>';

echo 'JSON in een array:';
$array = json_decode($json, true);
echo '<pre>';
print_r($array);
echo '</pre>';

?>
Gewijzigd op 05/10/2014 17:19:02 door Frank Nietbelangrijk
 
Omer Sari

Omer Sari

05/10/2014 17:19:03
Quote Anchor link
@Ivo P:

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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 17:21:02
Quote Anchor link
Het valt wel mee. Maar minimaal een beetje kennis van array's is wel nodig:
http://www.phptuts.nl/view/39/6/

Toevoeging op 05/10/2014 17:22:07:

Zal even een compleet voorbeeldje maken ...
 
Omer Sari

Omer Sari

05/10/2014 17:22:49
Quote Anchor link
@Frank Nietbelangrijk:

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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 17:36:37
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';

?>
Gewijzigd op 05/10/2014 18:07:04 door Frank Nietbelangrijk
 
Omer Sari

Omer Sari

05/10/2014 17:45:57
Quote Anchor link
@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!
 
Ivo P

Ivo P

05/10/2014 17:49:50
Quote Anchor link
hopelijk wel $id = $_GET['model'], want anders heb je nog wel een ander probleem in het verschiet...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/10/2014 18:12:37
Quote Anchor link
In je eerste post is nog steeds de API sleutel te lezen.
 
- Ariën  -
Beheerder

- Ariën -

05/10/2014 18:18:21
Quote Anchor link
Zo te zien is dat een demo-APIkey ;)
 
JHA Freak

JHA Freak

23/10/2014 12:34:36
Quote Anchor link
Hoi ik ben hier al een tijd mee bezig ik kom er niet uit met opencart.
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.