= API d'Appel d'offre de Clariprint = L'API d'Appel d'Offre permet de lancer des calculs en lots. == API CSV == L'api CSV est adaptée pour des données provenant d'un tableur (Excel). === Base === * Type de requête : POST * url : mon_domaine/optimprokect/csv.wcl === Création d'un appel d'offre === Données du formulaire : * '''key''' : clef API define au niveau du Client Optimproject * '''action''' => "creation" * '''callback''' : URL appelée par le système à la fin du calcul (à tester) * '''sheets''' : tableau de nom de feuille. ex : sheets[]="A"&sheets[]="B") * '''columns''' : tableau des colonne indexé sur les feuilles. ex : columns[A]="projet;code;hauteur;largeur;" * '''rows''' : tableau indexe des ligne de calcul (les projet à calculer) * la clef d'index contient "!" : le nom de la feuille doit correspondre à une feuille de '''sheets''', le num de ligne doit juste permette une clef unique. sous un tableur on utilise le numéro de la ligne * valeurs : sous la forme d'une liste séparée par un ";" qui doit correspondre au colonnes (columns) définies. ==== Données retournées ==== Données retournées en mode CSV. Une ligne retournant la clef de session {{{ SESSION; }}} Pour chaque projet identifié, retourne une ligne {{{ PROJECT;-;;CREATE }}} === Demande de résultats === Données du formulaire : * '''key''' : clef API define au niveau du Client Optimproject * '''session''' : le code session * '''action'''' :"status" * '''nb_responses''' : nombre de résultats retournés par lignes // par default 1 Données retournées : Pour chaque projet, une ligne de type : {{{ PROJET;;;;;;;; }}} En mode CALCUL, les autres données sont vides. == Structures des colonnes == laisser vide si pas de certitudes de l'information. boolean : oui = 1,y,o ||= Colonne =||= Valeurs possible =||= Informations =|| || "ref", "reference", "code", "numero" || texte || référence du produit / devis || "type","composant","produit" || dépliant / folded / feuillet / leaflet / brochure / book / chemise / folder / cover / couverture / cahier / encart / insert / folded insert || type de produit || || "procédé" || || vide pour automatique, sinon une liste parmi : of, ouv, or, oc, n || "quantité totale", "qt" || entier || nombre total d'exemplaires du produit || "livré à plat", "flat" || booléen ||pour un dépliant ou une chemise indique si il est livré à plat va || "assemblage","binding" || || || || "PerfectBinding","DCC" || Dos Carré Collé || || "PerfectBindingPUR","DCCPUR" || Brochage Dos Carré Collé PUR || || "SewnBinding","DCCC" || Brochage Dos Carré Cousu || || "Stitching2","PC","piqure cheval","piqûre cheval" || 2 agrafes || || "Stitching3" || 3 agrafes || || "Stitching4" || 4 agrafes || || "OpenEyesStitching2","PB", "piqure bouclette", "piqûre bouclette" || 2 bouclettes || || "OpenEyesStitching3" || 3 bouclettes || || "OpenEyesStitching4" || 4 bouclettes || || "WireO","WO" || Spirales || || "InlineStiching","PL" || Piqûre en ligne || || "GluedOnFold","CP" || Collage au pli || || "Free","FreeBinding" || libre, dans liaison || || "Folded","NA" || plié non assemblé || "orientation assemblage","binding orientation" || "portrait","landscape" || si vide ou les valeurs données, à la française || "pliage", "folding" || || code JDF ou voir liste ci-dessous || "découpe","découpe","cutting die" || || cf code découpe || "forme exitante" ,"die exists" || bool || si non, le coût de création de la forme de découpe || "nbr de modèle" || entier || // "4" || "quantité par tirage " || entier || quantité par tirage la colonne peut être dupliqué par modèles || "nbr de version (changement/modèle)" || nombre de version par modèle si applicable || "largeur fini", "width" || || en cm || requis || "hauteur fini", "height" || || en cm || requis || "largeur à plat","largeur a plat", "flat width" || || en cm, pour dépliant et chemise || requis || "hauteur à plat","hauteur a plat", "flat height" || || en cm, pour dépliant et chemise || requis || "marque de papier", "brand" || || marque de papier || "type de papier", "qualite de papier","quality","qualité","qualite" || texte || qualité de papier || requis || "grammage","weight" || || grammage papier || requis || "encre r" , "recto" , "front" || Q,C,M,J,K ... || ajoute une encre au recto, pour plusieurs encre dupliquer la colonne || requis || "encre v", "verso","back" || Q,C,M,J,K ... || ajoute une encre au recto, pour plusieurs encre dupliquer la colonne || requis || "r modif version" , "front switch"|| csvChangeEncreRecto(current,lower_data), // "Aucune modification" || "v modif version", "back switch" || csvChangeEncreVerso(current,lower_data), // "Aucune modification" || "finition r", "front finishing" || || voir liste des vernis et autre opération de surfaçage || "finition v", "back finishing" || || voir liste des vernis et autre opération de surfaçage || "trous", "holes" || || trous classeurs || "perforation","perforation" || || "numérotation","numbering" || || "rainage","creasing" || || vide = automatique || "gauffrage hauteur", "gauffrage h" || hauteur gaufrage || "gauffrage largeur", "gauffrage l" || largeur gaufrage || "dorure" || || "dorure hauteur", "dorure h" || || "dorure largeur", "dorure l" || || "dorure matière", "dorure matiere" || || "forme de découpe" || || "quantité conditionnee" || || "nbr de lot" || || "emballage" || || "exemplaire" || || "nbr de point de livraison" || none, // "1" || "livraison point" || || "livraison quantité" || || "nbr de pages","pages" || == Exemples == === Tableau de feuillets simples === || type || ref || qt || hauteur || largeur || Qualité || grammage || recto || verso || || feuillet || A4 || 1000 || 29,7 || 21 || Couché demi-mat || 115|| Q || Q || || feuillet || A4 || 2000 || 29,7 || 21 || Couché demi-mat || 115|| Q || N || || feuillet || A5|| 1000 || 21 || 14,9 || Couché demi-mat || 130|| Q || || || feuillet || A4 || 3000 || 29,7 || 21 || Couché demi-mat || 115|| Q || || ==== Requête HTTP POST ==== {{{ key= action=creation sheets[]=A columns[A]=type;ref;qt;hauteur;largeur;Qualité;grammage;recto;verso rows[A!1]=feuillet;A4;1000;29,7;21;Couché demi-mat;115;Q;Q; rows[A!2]=feuillet;A4;2000;29,7;21;Couché demi-mat;115;Q;N; rows[A!3]=feuillet;A5;1000;21;14,9;Couché demi-mat;130;Q;; rows[A!4]=feuillet;A4;3000;29,7;21;Couché demi-mat;115;Q;; }}} ==== EN PHP Curl === {{{ $data = [ "key" => "", "action" => "creation", "sheets" => [ "A" ], "columns" => [ 'A' => 'type;ref;qt;hauteur;largeur;Qualité;grammage;recto;verso'], "rows" => [ 'A!1' => 'feuillet;A4;1000;29,7;21;Couché demi-mat;115;Q;Q;', 'A!2' => 'feuillet;A4;2000;29,7;21;Couché demi-mat;115;Q;N;', 'A!3' => 'feuillet;A5;1000;21;14,9;Couché demi-mat;130;Q;;', 'A!4' => 'feuillet;A4;3000;29,7;21;Couché demi-mat;115;Q;;' ]]; }}}