Je travaille sur une application web personnalisée utilisant l'API Shopify. L'idée est d'utiliser l'application comme vitrine exclusive et de ne faire que des demandes à l'API Shopify. J'ai configuré une application privée dans mon compte Shopify pour ce faire.
Je n'ai aucun problème à récupérer les produits à partir de l'API (en utilisant le point de terminaison de l'API /admin/produits.json). Mais j'ai beaucoup de mal à faire en sorte que le produit soit ajouté au panier à partir de mon domaine, en utilisant le point de terminaison de l'API API Ajax J'obtiens la réponse JSON appropriée lorsque j'utilise mon client REST (j'utilise l'extension Postman de Google Chrome), mais je ne parviens pas à la faire fonctionner dans ma propre application.
Dans mon application, j'envoie une requête AJAX à mon propre serveur, qui appelle à son tour le point de terminaison de l'API à l'aide de curl et renvoie une réponse JSON (pour éviter le problème de l'inter-domaine/de l'utilisation de JSONP). Bien que les deux réponses JSON soient identiques, l'article n'est pas ajouté au panier dans mon application Web.
Code échantillon :
Javascript :
$(".add-to-cart").on('click', function() {
// sample initialization code here
// ...
$.post("/url-to-server", {
id: id, // this is the variant ID
quantity: 1
}, function(response) {
// more checking to make sure we have proper response
});
return false;
});
Code côté serveur (PHP) :
protected function _ajax_add_item_to_cart()
{
$args = $this->input->post();
// custom app method that makes curl request
$result = $this->_shopify_request('post', 'cart/add.js', $args);
// custom app method that returns valid JSON
return $this->json_response(true, 'Item Added!', [
'item' => $result
]);
}
Exemple de réponse JSON (même résultat en utilisant le client REST de Postman) :
{
"id": 313743963,
"title": "All Natural GumBits 16oz",
"price": 3800,
"line_price": 3800,
"quantity": 1,
"sku": "",
"grams": 0,
"vendor": "horseshow",
"properties": null,
"variant_id": 313743963,
"url": "/products/all-natural-gumbits-16oz",
"image": "http://cdn.shopify.com/s/files/1/0235/4155/products/gumbits.png?43",
"handle": "all-natural-gumbits-16oz",
"requires_shipping": true
}
C'est la première application que je construis en utilisant l'API de Shopify, donc j'apprécierais toute aide que je pourrais obtenir. J'ai envisagé de m'inscrire auprès d'une application partenaire et d'utiliser l'authentification OAuth, mais cela semble excessif pour ce que je dois faire puisque je ne veux pas utiliser la vitrine Shopify et que je ne prévois pas de proposer mon application dans l'App Store de Shopify.