Les trucs, les stratégies marketing, les logiciels, les astuces à utiliser ...


Auteur Sujet: La requête SQL pour créer la table nécessaire pour stocker les infos de l'API  (Lu 7905 fois)

Hors ligne FortTrafic

  • Modérateur Global
  • Membre Héroïque
  • *****
  • Messages: 1243
  • Karma: +19/-18
  • Sexe: Homme
  • Les Fameuses Vidéos
    • Voir le profil
    • CLUB AFFILIATION FACILE
Salut,
Peut être que ça peut servir à quelqu'un pour gagner 10 minutes, voici le code SQL :

CREATE TABLE `ventes` (
  `facturec` varchar(200) NOT NULL,
  `amountc` varchar(200) NOT NULL,
  `datec` varchar(200) NOT NULL,
  `heurec` varchar(200) NOT NULL,
  `nomprodc` varchar(200) NOT NULL,
  `affic` varchar(200) NOT NULL,
  `vendc` varchar(200) NOT NULL,
  `trackc` varchar(200) NOT NULL,
  `nomc` varchar(200) NOT NULL,
  `adressc` varchar(200) NOT NULL,
  `codepc` varchar(200) NOT NULL,
  `villec` varchar(200) NOT NULL,
  `paysc` varchar(200) NOT NULL,
  `emailc` varchar(200) NOT NULL,
  `datac` varchar(200) NOT NULL,
  `rembc` varchar(200) NOT NULL,
  `numprodc` varchar(200) NOT NULL,
  `gainsvendc` varchar(200) NOT NULL,
  `gainsaffc` varchar(200) NOT NULL,
  PRIMARY KEY (`facturec`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

J'ai tout mis en vachar(200) ce n'est sans doute pas idéal, je n'en sais rien, en tous cas ça permet de stocker les infos reçus de l'API affilié de 1TPE qui est ici :

http://www.1tpe.com/cpt-API1tpe.php

J'ai ajouté le champ facturec puisqu'elle n'est pas retournée par l'API mais il nous la faut pour interroger l'API, elle sert d'identifiant (clé primaire) dans la table.

Si j'ai fais n'importe quoi, qu'il y a mieux à faire en SQL, merci de me le dire je connais juste assez pour m'en sortir mais j'aimerais bien l'optimiser si c'est mieux. :-)

Hors ligne FortTrafic

  • Modérateur Global
  • Membre Héroïque
  • *****
  • Messages: 1243
  • Karma: +19/-18
  • Sexe: Homme
  • Les Fameuses Vidéos
    • Voir le profil
    • CLUB AFFILIATION FACILE
Voici également le script PHP (à sauver dans un fichier nommé mesventes.php) là ça vous fait gagner une bonne heure, pour prendre les informations de l'API et les mettre dans la table ventes :

<?php
// accepte à la fois en POST et en GET (en get pour ajouter vos anciennes factures)
if (isset($_POST['fac'])){$fac=$_POST['fac'];}
if (isset(
$_GET['fac'])){$fac=$_GET['fac'];}
if (
$fac == '') exit; 

$membreid=XXXXX// votre Membre ID N° 1tpe en bas de la page "configuration" de votre compte
$code1tpeapi=YYYYY// votre Code activation API en bas de la page "configuration" de votre compte
$facture=$fac

include(
"1tpe-acces-api.php");

if(
$ce1tpe=="VALIDE") { 

$db_server "XXXX"//adresse du serveur MySQL
$db_name "YYYYY"//nom de la base de données
$db_user_login "ZZZZ"//nom d'utilisateur pour la BD
    
$db_user_pass "MOTDEPASSE"//mot de passe pour la BD

    
$link mysqli_connect($db_server,$db_user_login,$db_user_pass,$db_name)
    or die(
"error connection");      // Connection au serveur mySQL
    
    
mysqli_set_charset($link"utf8");
    
    
$myquery "REPLACE INTO ventes (facturec, amountc, datec, heurec, nomprodc, affic, vendc, trackc, nomc, adressc, codepc, villec, paysc, emailc, datac, rembc, numprodc, gainsvendc, gainsaffc) VALUES ('".mysqli_real_escape_string($link$facture)."', '".mysqli_real_escape_string($link$amountc)."', '".mysqli_real_escape_string($link$datec)."', '".mysqli_real_escape_string($link$heurec)."', '".mysqli_real_escape_string($link$nomprodc)."', '".mysqli_real_escape_string($link$affic)."', '".mysqli_real_escape_string($link$vendc)."', '".mysqli_real_escape_string($link$trackc)."', '".mysqli_real_escape_string($link$nomc)."', '".mysqli_real_escape_string($link$adressc)."', '".mysqli_real_escape_string($link$codepc)."', '".mysqli_real_escape_string($link$villec)."', '".mysqli_real_escape_string($link$paysc)."', '".mysqli_real_escape_string($link$emailc)."', '".mysqli_real_escape_string($link$datac)."', '".mysqli_real_escape_string($link$rembc)."', '".mysqli_real_escape_string($link$numprodc)."', '".mysqli_real_escape_string($link$gainsvendc)."', '".mysqli_real_escape_string($link$gainsaffc)."');";
    
    
$q mysqli_query($link$myquery) or die(mysqli_error($link));
mysqli_close($link);
} else {
echo "Probleme de numero de facture inconnu.";
}
?>


Une fois ce fichier sur votre serveur (n'oubliez pas le fichier de l'API non plus 1tpe-acces-api.php) vous devez aller en bas de la page configuration de votre compte : http://www.1tpe.com/cpt-config.php
Et entrer l'url de votre fichier mesventes.php dans le champ :
Indiquez ci-dessus, l'url de votre page vers laquelle nous enverrons la requète :

Voilà à partir de maintenant quand vous vendrez un produit en tant qu'affilié (pour les vendeurs ça ne marche pas encore automatiquement, il faut le faire sur la page de téléchargement du produit et si on vend avec 1TPEGO c'est mort on peut rien faire à part les ajouter à la main) les informations seront stockées dans votre table ventes en même temps que vous recevrez l'email de notification.

Pour que la base de données se mette à jour lors des remboursements, il faut faire un autre code php qui va lire chaque jour les ventes des derniers 30 jours et redemande les informations à l'API.

Ce n'est pas la peine que je vous donne ce code car il faut aussi installer un "cron job", une tâche automatique et il est possible que bientôt il n'y ait plus besoin de tout ça car il suffirait que 1TPE envoie une nouvelle notification en POST lors des remboursements. Comme j'ai utilisé REPLACE INTO au lieu de INSERT INTO en ayant comme clé primaire le numéro de facture, le script fonctionnerait sans modification et mettrait à jour de lui même le champ rembc lors d'un remboursement.
« Modifié: 04 juin 2015 à 08:29:39 par FortTrafic »

Hors ligne sylvain

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 521
  • Karma: +3/-1
  • Sexe: Homme
    • Voir le profil
    • 1TPE Affiliation pour produits numériques

Merci James,

Oui cela peut faire gagner un certain temps lorsque l'on a pas
l'habitude de magner du code :))

Sylvain
Sylvain MILON
Administrateur du Forum
Gérant 1TPE .com

Hors ligne FortTrafic

  • Modérateur Global
  • Membre Héroïque
  • *****
  • Messages: 1243
  • Karma: +19/-18
  • Sexe: Homme
  • Les Fameuses Vidéos
    • Voir le profil
    • CLUB AFFILIATION FACILE
De rien, c'est vrai que j'aurais préféré trouver le code sur le forum plutôt que de le faire moi-même, alors j'imagine que c'est pour tout le monde pareil :-)

S'il y a des pros du code qui veulent bien me donner une version améliorée, optimisée de ce code, ils sont les bienvenus !