IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Rest et Prestashop


Sujet :

API, COM et SDKs Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut Rest et Prestashop
    Bonjour

    avant de me lancer, quelqu'un a-t'il une idée de la faisabilité ?

    d'après mes premiers tests
    on ne peut obtenir que du XML via les API
    c'est une galère pour obtenir les détail des lignes d'une commande

    mais peut-être que le prestataire qui a créé la boutique ne me fourni pas les bonnes API ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut
    Bonjour j'ai déjà travaillé avec PrestaShop pour créer automatiquement les fichiers images utilisés par le serveur. Ce genre de produit génère beaucoup de fichiers. Tu souhaites intégrer ton serveur Rest à quel niveau ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pour l'instant il ne s'agit pas de mettre un serveur (mais ce serait certainement une solution plus efficace) il s'agit de récupérer les informations de lignes de commandes pour les importer dans mon logiciel
    Pour moi, je trouve que Prestashop ne propose pas vraiment une solution api pratique : que du XML que des requêtes simples sans jointures (je suis trop habitué au SQL) c'est gavant d'avoir à faire appel à je ne sais combien de requête pour obtenir les infos !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut
    Sur le projet sur lequel j'ai travaillé il y avait une base MySQL

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Il y en a bien sûr une mais, hébergé par ovh, je n'y ai pas accès et je en crois pas que ce soit possible
    je doit donc dans un premier temps me dépatouillé avec les XML fournis par les API auxquelles j'ai accès c'est pour ça que j'ai d'abord pensé à REST malheureusement les données ne sont pas fournies en JSON. Pour l'instant (j'espère) voilà ce que j'obtiens en interrogeant l'api https://monmagasin.com/shop/api/orde...ls?shema=blank (j'en suis encore à trouver les paramètres possibles)
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?xml version="1.0" encoding="UTF-8"?>
    <prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <order_details>
    <order_detail id="1" xlink:href="https://monmagasin.com/shop/api/order_details/1"/>
    <order_detail id="2" xlink:href="https://monmagasin.com/shop/api/order_details/2"/>
    <order_detail id="3" xlink:href="https://monmagasin.com/shop/api/order_details/3"/>
    <order_detail id="4" xlink:href="https://monmagasin.com/shop/api/order_details/4"/>
    <order_detail id="5" xlink:href="https://monmagasin.com/shop/api/order_details/5"/>
    <order_detail id="6" xlink:href="https://monmagasin.com/shop/api/order_details/6"/>
    <order_detail id="7" xlink:href="https://monmagasin.com/shop/api/order_details/7"/>
    <order_detail id="8" xlink:href="https://monmagasin.com/shop/api/order_details/8"/>
    <order_detail id="9" xlink:href="https://monmagasin.com/shop/api/order_details/9"/>
    <order_detail id="10" xlink:href="https://monmagasin.com/shop/api/order_details/10"/>
    <order_detail id="11" xlink:href="https://monmagasin.com/shop/api/order_details/11"/>
    <order_detail id="12" xlink:href="https://monmagasin.com/shop/api/order_details/12"/>
    <order_detail id="13" xlink:href="https://monmagasin.com/shop/api/order_details/13"/>
    <order_detail id="14" xlink:href="https://monmagasin.com/shop/api/order_details/14"/>
    </order_details>
    </prestashop>
    une ligne détail (ligne 1)
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?xml version="1.0" encoding="UTF-8"?>
    <prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <order_detail>
    	<id><![CDATA[1]]></id>
    	<id_order xlink:href="https://monmagasin.com/shop/api/orders/1"><![CDATA[1]]></id_order>
    	<product_id xlink:href="https://monmagasin.com/shop/api/products/2"><![CDATA[2]]></product_id>
    	<product_attribute_id xlink:href="https://monmagasin.com/shop/api/combinations/10"><![CDATA[10]]></product_attribute_id>
    	<product_quantity_reinjected><![CDATA[0]]></product_quantity_reinjected>
    	<group_reduction><![CDATA[0.00]]></group_reduction>
    	<discount_quantity_applied><![CDATA[0]]></discount_quantity_applied>
    	<download_hash></download_hash>
    	<download_deadline><![CDATA[0000-00-00 00:00:00]]></download_deadline>
    	<id_order_invoice><![CDATA[0]]></id_order_invoice>
    	<id_warehouse><![CDATA[0]]></id_warehouse>
    	<id_shop><![CDATA[1]]></id_shop>
    	<id_customization><![CDATA[0]]></id_customization>
    	<product_name><![CDATA[Blouse - Color : White, Size : M]]></product_name>
    	<product_quantity><![CDATA[1]]></product_quantity>
    	<product_quantity_in_stock><![CDATA[1]]></product_quantity_in_stock>
    	<product_quantity_return><![CDATA[0]]></product_quantity_return>
    	<product_quantity_refunded><![CDATA[0]]></product_quantity_refunded>
    	<product_price><![CDATA[26.999852]]></product_price>
    	<reduction_percent><![CDATA[0.00]]></reduction_percent>
    	<reduction_amount><![CDATA[0.000000]]></reduction_amount>
    	<reduction_amount_tax_incl><![CDATA[0.000000]]></reduction_amount_tax_incl>
    	<reduction_amount_tax_excl><![CDATA[0.000000]]></reduction_amount_tax_excl>
    	<product_quantity_discount><![CDATA[0.000000]]></product_quantity_discount>
    	<product_ean13></product_ean13>
    	<product_isbn></product_isbn>
    	<product_upc></product_upc>
    	<product_reference><![CDATA[demo_2]]></product_reference>
    	<product_supplier_reference></product_supplier_reference>
    	<product_weight><![CDATA[0.000000]]></product_weight>
    	<tax_computation_method><![CDATA[0]]></tax_computation_method>
    	<id_tax_rules_group><![CDATA[0]]></id_tax_rules_group>
    	<ecotax><![CDATA[0.000000]]></ecotax>
    	<ecotax_tax_rate><![CDATA[0.000]]></ecotax_tax_rate>
    	<download_nb><![CDATA[0]]></download_nb>
    	<unit_price_tax_incl><![CDATA[27.000000]]></unit_price_tax_incl>
    	<unit_price_tax_excl><![CDATA[27.000000]]></unit_price_tax_excl>
    	<total_price_tax_incl><![CDATA[27.000000]]></total_price_tax_incl>
    	<total_price_tax_excl><![CDATA[27.000000]]></total_price_tax_excl>
    	<total_shipping_price_tax_excl><![CDATA[0.000000]]></total_shipping_price_tax_excl>
    	<total_shipping_price_tax_incl><![CDATA[0.000000]]></total_shipping_price_tax_incl>
    	<purchase_supplier_price><![CDATA[0.000000]]></purchase_supplier_price>
    	<original_product_price><![CDATA[26.999852]]></original_product_price>
    	<original_wholesale_price><![CDATA[8.100000]]></original_wholesale_price>
    <associations>
    <taxes nodeType="tax" api="taxes"/>
    </associations>
    </order_detail>
    </prestashop>
    et, bien sûr ces données sont intraitable tel quel (par exemple xlink: n'est pas très apprécié )
    Bref tout cela implique beaucoup de code
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Re,

    Après de nombreuses recherches j'ai trouvé cette phrase
    You just have to append at the end ?output_format=JSON of your URL.
    du coup cela éclaircit un peu ma journée, je peux enfin obtenir du JSON
    Code json : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"order_detail":{"id":1,"id_order":"1","product_id":"2","product_attribute_id":"10","product_quantity_reinjected":"0","group_reduction":"0.00","discount_quantity_applied":"0","download_hash":"","download_deadline":"0000-00-00 00:00:00","id_order_invoice":"0","id_warehouse":"0","id_shop":"1","id_customization":"0","product_name":"Blouse - Color : White, Size : M","product_quantity":"1","product_quantity_in_stock":"1","product_quantity_return":"0","product_quantity_refunded":"0","product_price":"26.999852","reduction_percent":"0.00","reduction_amount":"0.000000","reduction_amount_tax_incl":"0.000000","reduction_amount_tax_excl":"0.000000","product_quantity_discount":"0.000000","product_ean13":"","product_isbn":"","product_upc":"","product_reference":"demo_2","product_supplier_reference":"","product_weight":"0.000000","tax_computation_method":"0","id_tax_rules_group":"0","ecotax":"0.000000","ecotax_tax_rate":"0.000","download_nb":"0","unit_price_tax_incl":"27.000000","unit_price_tax_excl":"27.000000","total_price_tax_incl":"27.000000","total_price_tax_excl":"27.000000","total_shipping_price_tax_excl":"0.000000","total_shipping_price_tax_incl":"0.000000","purchase_supplier_price":"0.000000","original_product_price":"26.999852","original_wholesale_price":"8.100000"}}
    l'idéal eut été d'obtenir directement les données mais c'est un début prometteur

    Un peu de RESTDebugger et j'obtiens enfin quelque chose de compréhensible (à mon niveau)
    Nom : Capture.PNG
Affichages : 530
Taille : 12,2 Ko

    Est-ce qu'un tutoriel existe sur ce sujet ou faut-il, comme moi, tâtonner ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut
    J'ai retrouvé dans mes archives la table des commandes a pour nom "ps_orders"
    A l'époque j'avais téléchargé et installé la version de prestaSHop comme suit :
    Solution intégrée : WampServer 2.2 (Installation Standard) incluant
     Internet Server : Apache 2.2.22
     PHP Server : Php 5.3.13
     DataBase Server MYSQL : MySQL - Server v5.5.24

    Driver ODBC MYSQL : MySQL ODBC 5.1 Driver
    Version Prestatshop : prestashop_ 1.5.3

  8. #8
    Candidat au Club Avatar de emltri
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Est-ce qu'un tutoriel existe sur ce sujet ou faut-il, comme moi, tâtonner ?
    Hello,

    Nous développons une appli qui utilise le web service de PrestaShop.

    Voici quelques liens pour t'aider :
    http://doc.prestashop.com/display/PS...op+Web+Service
    http://doc.prestashop.com/display/PS...+documentation
    http://doc.prestashop.com/display/PS...rvice+tutorial
    http://doc.prestashop.com/display/PS...vice+reference
    https://github.com/PrestaShop/PrestaShop

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [j3d] HeavyComponent affiche au dessus du reste
    Par FarookFreeman dans le forum 3D
    Réponses: 3
    Dernier message: 10/07/2004, 23h44
  2. Réponses: 7
    Dernier message: 20/04/2004, 16h55
  3. automationn excel, Champ nombre reste en text ???
    Par mat_lefebvre dans le forum Access
    Réponses: 16
    Dernier message: 09/12/2003, 12h37
  4. Ecrire dans un fichier sans supprimer le reste
    Par koan_sabian dans le forum Linux
    Réponses: 4
    Dernier message: 20/02/2003, 16h44
  5. TBitBtn reste enfoncé
    Par TRINCAL Sylvain dans le forum C++Builder
    Réponses: 8
    Dernier message: 25/06/2002, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo