Si je m'en tiens au tuto cela fonctionne. Mais je voudrais aussi récupérer le prix des produits je n'y parviens pas.
Voici mon code actuel :
<?php
$product = $_POST['product'];
?>
<html>
<head>
<title>eBay Search Results</title>
<style type="text/css">body { font-family: arial,sans-serif;} </style>
</head>
<body>
<h1>eBay Search Results</h1>
<div id="results"></div>
<script>
// Parse the response and build an HTML table to display search results
function _cb_findItemsByKeywords(root) {
var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
var html = [];
html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>');
for (var i = 0; i < items.length; ++i) {
var item = items[i];
var title = item.title;
var pic = item.galleryURL;
var viewitem = item.viewItemURL;
if (null != title && null != viewitem) {
html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' +
'<td><a href="' + viewitem + '" target="_blank">' + title + '</a></td><td>'+price+'</td></tr>');
}
}
html.push('</tbody></table>');
document.getElementById("results").innerHTML = html.join("");
} // End _cb_findItemsByKeywords() function
// Create a JavaScript array of the item filters you want to use in your request
var filterarray = [
{"name":"MaxPrice",
"value":"25",
"paramName":"Currency",
"paramValue":"USD"},
{"name":"FreeShippingOnly",
"value":"true",
"paramName":"",
"paramValue":""},
{"name":"ListingType",
"value":["AuctionWithBIN", "FixedPrice", "StoreInventory"],
"paramName":"",
"paramValue":""},
];
// Define global variable for the URL filter
var urlfilter = "";
// Generates an indexed URL snippet from the array of item filters
function buildURLArray() {
// Iterate through each filter in the array
for(var i=0; i<filterarray.length; i++) {
//Index each item filter in filterarray
var itemfilter = filterarray[i];
// Iterate through each parameter in each item filter
for(var index in itemfilter) {
// Check to see if the paramter has a value (some don't)
if (itemfilter[index] !== "") {
if (itemfilter[index] instanceof Array) {
for(var r=0; r<itemfilter[index].length; r++) {
var value = itemfilter[index][r];
urlfilter += "&itemFilter\(" + i + "\)." + index + "\(" + r + "\)=" + value ;
}
}
else {
urlfilter += "&itemFilter\(" + i + "\)." + index + "=" + itemfilter[index];
}
}
}
}
} // End buildURLArray() function
// Execute the function to build the URL filter
buildURLArray(filterarray);
var product = <?php echo json_encode($product); ?>;
// Construct the request
// Replace MyAppID with your Production AppID
var url = "http://svcs.ebay.com/services/search/FindingService/v1";
url += "?OPERATION-NAME=findItemsByKeywords";
url += "&SERVICE-VERSION=1.0.0";
url += "&SECURITY-APPNAME=*********************************";
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&callback=_cb_findItemsByKeywords";
url += "&REST-PAYLOAD";
url += "&keywords="+encodeURI(product);
url += "&paginationInput.entriesPerPage=3";
url += urlfilter;
// Submit the request
s=document.createElement('script'); // create script element
s.src= url;
document.body.appendChild(s);
// Display the request as a clickable link for testing
document.write("<a href=\"" + url + "\">" + url + "</a>");
</script>
</body>
</html>
et voici un morceau de ma réponse JSON :
Dont j'ai un peu facilité la lecture avec json formatter :
J'ai tronqué quelques parties mais la partie qui m'intéresse est donc sellingStatus. Mais je ne sais pas comment récupérer le prix. J'ai essayé toutes les solutions qui me sont venues à l'esprit et rien y fait, soit j'ai une erreur js, soit ma variable est indéfinie, soit cela m'affiche "object Object".
Non je n'ai pas testé, je ne vois pas trop comment faire...
J'ai un autre problème depuis en plus, comme je vous l'ai dit je dois essayer de faire des statistiques avec les résultats que j'obtiens. J'ai réussi à trier par vente réussies mais je voudrais pouvoir faire mes stats sur une certaine période. Et ma réponse JSON me donne la date de vente dans un format un peu bizarre :
Je pense que "endTime" correspond à la date et l'heure de vente.
Mais je voudrais tronquer cette variable pour n'obtenir que la date.
J'ai essayé :
var endTime = item.listingInfo[0].endTime;
var date = endTime.slice(0,10);
Mais ça n'a pas l'aire de marcher : La date s'affiche toujours de la même façon :
Et comment je peux faire pour ne sélectionner les ventes que sur une certaine période à partir de cette date tronquée ? Puis-je utiliser les opérateurs > et < comme en SQL ?
Pouvez vous m'aider ? Je peux ouvrir un nouveau sujet si vous préférez.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)