= API d'Appel d'offre de Clariprint = L'API d'Appel d'Offre permet de lancer des calculs en lots. 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;;' ]]; }}} === Brochures === Les composants de la brochure s'enchaines. On peut mettre le format sur la ligne de la brochure pour tous les composants. La livraison se met au niveau de la ligne brochure. || type || ref || qt || assemblage || hauteur || largeur || hauteur a plat || largeur a plat || pages || Qualité || grammage || recto || recto || verso || Brochure || A4 pique sans couverture || 1000 || PC || || || || || || || || || || || cahier || || || || 21 || 29,7 || || || 16 || Couché demi-mat || 130 || Q || || Q || Brochure || Avec couverture || 1000 || PC || || || || || || || || || || || couverture || couv avec PMS || || || 29,7 || 21 || 29,7 || 42 || || Couché demi-mat || 170 || Q || PMS-45 || || cahier || interieur 24pages || || || 29,7 || 21 || || || 24 || Couché demi-mat || 90 || Q || || Q