Pourquoi je ne peux pas mettre à jour l'image de cette façon?

Bigcommerce::createProductImage($product_id, array('image_file'=>'/home/user/bigcommerce/api/picture.jpg'));

Le code suivant fonctionne:

Bigcommerce::createProductImage($product_id, array('image_file'=>'https://cdn6.bigcommerce.com/s-0cvdh/products/32/images/299/apitec71q__46081.1484240387.1280.1280__30161.1484331218.1280.1280.jpg'));
0
Andrey P. 16 janv. 2017 à 18:47

2 réponses

Meilleure réponse

Selon la documentation, il n'est pas possible de télécharger une image localement. Les documents disent:

When specifying a product image, the image_file should be specified as either: 
a path to an image already uploaded via FTP to the import directory (with the path 
relative to the import directory); or a URL to an image accessible on the internet.
1
user6438501user6438501 16 janv. 2017 à 20:03

Cela ne fonctionne pas car les serveurs BigCommerce n'ont aucune idée de l'endroit où se trouve "/home/user/bigcommerce/api/picture.jpg". C'est un fichier qui existe sur votre ordinateur local et vous transmettez une chaîne à BigCommerce lui indiquant où obtenir le fichier. Cela fonctionne dans le second cas car BigCommerce peut accéder à cet URI.

En termes plus généraux, vous devez télécharger l'image vers un emplacement auquel BigCommerce peut y accéder, puis transmettre un URI que BigCommerce peut utiliser pour récupérer l'image. Cela peut sembler un peu fastidieux, mais cela évite à BigCommerce de devoir diffuser de grandes quantités de données via son API.

0
CueBallSTL 16 janv. 2017 à 20:04