Aide - Recherche - Membres - Calendrier
Version complète : Echange Oscommerce / logiciel Gestion commerciale
Forum osCommerce-fr > Adapter OsCommerce MS2 > Echanges développeurs
Pages : 1, 2
NoZic
Bonjour,

Je suis en train de développer notre site sur oscommerce. Bon j'y arrive mais c'est un peu la lutte car dès qu'on change le moindre détail il faut changer tout le reste, c'est normal, c'est prevu pour du general et pas du cas par cas, mais c'est un peu fastidieux... rien qu'à voir les changements a faire pour integrer mademoiselle dans des civilité au lieu de genres...

Evidemment le must serait de raccorder EBP, notre gesco, a la base du site pour avoir toujours les stocks a jour sur le site et EBP.

Il y a une solution fiable mais fastidieuse, exporter un bl en xml pour voir la tete des donnes, s'en servir pour faire un bl type que tu remplis bien pour faire tes sorties de stocks (les entrees j'ai pas encore regardé). EBP comprend bien un BL importé par cette méthode et met parfaitement a jour les bases sans erreur, ni reindexation des donnees, donc tout va bien. Il doit y avoir un moyen similaire pour les entrees.
Le problème c'est que cce n'est pas automatique...

La seule solution automatique c'est de passer par par le driver ODBC que fournit EBP pour 151€ mais :
- il faut signer une decharge a EBP comme quoi tu touches aux bases donc que tu es responsable en cas de plantage de base... la compta va t'en vouloir...
- sauf si tu connais par coeur l'architecture des bases de EBP quand tu mettras a jour une info, il manquera immanquablement une autre info que tu auras oublié de changer (ne connaissant pas son existence et sa correlation avec l'info changee).
J'ai regardé ce matin rien que pour changer la quantité en stock (qui n'existe pas dans la base produit de EBP...) il y a au moins trois infos en correlation :
quantité ajoutée, quantite initiale, ecart, il doit y en avoir d'autres mais j'ai pas tout regardé c'est enorme... J'ai quand meme remarqué qu'en changeant juste quantité ajoutée la base se met bien a jour correctement sans erreur (sans reindexer toutes les données) donc pour ca, ce devrait aller mais pour d'autres choses ca risque d'etre folklo.
Je m'y attaque, bon pas tout de suite car je dois d'abord reussir a faire fonctionner le site comme nous voulons (vraiment differement d'oscommerce 2.2 d'origine, particulierement au niveau des fiches produits), je ferais peut etre une remontee dans sept ans quand j'aurais reussi... (je suis seul sur le projet, deja qu'oscommerce c'est enorme, donc ebp...)

Si vous avez plus d'infos... je prend.
Bon courage
zedave
Pardon de n'avoir jamais répondu aux sollicitation sur la liaison EBP/Osc, mais je suis peu connecté et ai zappé le thread quand je me connectais.

Nous 'avons abandonné le principe d'export via EBP pour une seule raison principale, et évoquée sur ce thread :

EBP gestco ne sert à rien : Avec des petits developpement, OSC, ou un module séparé peut facilement gérer tout ce qui manque à OSC :
- gérer les mouvements d'entrées/sorties ( achats, E/S de stock, inventaire )
- Gérer les produits composants et composés
- Gérer la facturation avec numéro qui se suivent
- Gérer les paiements et les remises en banque
- Exporter les données propres pour la compta

Quand on sait que EBP exporte très mal en compte ( impossible d'associer un produit à 2 comptes comptable 70700x automatiquement en fonction d'une famille client ou d'une destination ), l'intéret de synchroniser Osc et EBP était pas génial.

Pour info, vu les bugs à l'import de commande XML, on exporte que les clients en CSV et saisissons les factures à la main twisted.gif jusqu'a ce que notre module gestco/intranet fonctionant avec Osc soit en route.

zedave
Il se trouve qu'avec OScommerce, on va se heurter vite à des problèmes de performance vu la structure des tables, et les trop gros rajouts font vraiment ramer le site, malgré un nouveau serveur, l'audience croissante semble plutot inciter à laisser le minimum online, et avoir un outil interne qui gère tout.

Et plutot que tout refaire, je me demande quelle solution de gestion choisir. Il me semble plus opportun d'acheter une gestco plutot que mla developper de zéro, les contraintes et nombreux changements comptables sont lourd à gérer dans une petite structure ayant une gestco prioritaire.

Un export csv des commandes simple depuis Oscommerce nous suffitrait, et est facile à faire.

Par contre importer dans quoi ?

Si vous connaissez un logiciel de gestion, qui permet :
- l'export en compta de manière précise ( code comptable de vente produit 707xxx avec terminaison personnalisable par destination/entité ) je suis preneur
- valorisation FIFO du stock

Je suis preneur wink.gif

Merci.
DianeMars
WinBiz fait cela... Par contre, c'est un soft Suisse, donc adapté à notre marché et nos lois, je pense....
tihtasgnes
Je relance ce sujet car la facturation m'importe énormément actuellement. En effet je dois réaliser un site e-commerce pour une entité qui souhaiterait utiliser SAGE pour la facturation cependant j'ai un peu de difficulté quant à savoir par quel bout prendre cette interopérabilité avec l'ERP en question puisque je n'ai jamais utiliser d'ERP et donc jamais SAGE . Par contre pour pouvoir réaliser une facture il me semble que cela nécessite un ensemble de données (champs) dans un fichier CSV. Or Sage permet d'importer des données via un fichier de ce format, cela me redonne de l'espoir sur la réussite de ce projet à réaliser. Mais bon, apprement c'est pas encore gagner car ça l'air un peu plus complexe que ça. C'est pourquoi j'ai réussi à avoir un Rendez-Vous avec un Technicien de SAGE la semaine prochaine pour discuter de la faisabilité de cette réalisation.

De ce fait je lance donc un appel à vous tous qui souhaiteriez connaître un peu plus sur la manière dont SAGE traite les données pour la facturation à fin de trouver un moyen efficace pour l'extraction de données puis l'importation.
Que lui poseriez vous comme questions?
Kheops92
Quand tu parle de facturation tu parle bien de Sage Gestion Commerciale ?

Si oui sur quelle version Ligne 30, Ligne 100, X3 ?

Pour info lorsque tu as un CD de la ligne 100 tu a un fichier qui s'appelle 'Strucfic.pdf' qui décrit toute la structure des tables et des champs de la Ligne 100 (Compta, Paye, Gestion Commerciale, Immobilisations, Moyens de paiements).

Ensuite il faut savoir le type de base de données qu'il y a derrière aussi (Cbase propriétaire, Sage SQL, MS SQL Server)

Et enfin pour finir il faut savoir que tu ne peut insérer des articles dans les documents de ventes Sage que si ces articles existent déjà dans la base Sage Gestion Commerciale.

Je te conseil le forum du revendeur Sage Zoom qui à une section sur le développement.
menelrana
En recherchant des CRM opensource, je suis tombé sur SugarCRM qui propose une version gratuite : http://www.sugarcrm.com/crm/

La version 4.5 est traduite en français et possède un plug in OsCommerce, je vais le tester sous peu, ainsi que Dolibarr

http://www.sugarforge.org/frs/?group_id=110

Quelqu'un a t il déjà testé cette solution, en tant que CRM il à l'air très sympa et agréable d'utilisation, il ressemble étrangement à l'interface de Roundcube
bolox
Bonjour,

Je souhaite faire communiquer CEGID et Oscommerce.
Quelqu'un l'a déjà fait ?

Sinon quelle est la meilleure facon de proceder ?

Merci
tschmit
Bonjour,

Je suis en train de faire une étude de faisabilité/maquette dans ce sens.
Cela me semble faisable via PgiSide (module eCommerce de CEGID).
Avec l'hypothèse PHP > 5.2
Valider sur:
- importation d'artciles depuis CEGID -> OsCommerce
- exportation de clients OsCommerce -> CEGID
- exportation de commandes OsCommerce -> CEGID (petit pb avec les frais de port à suivre)

Donc pour moi c'est faisable.
Il me reste à faire
- l'importation de Bons de Livraisons, Factures CEGID -> OsCommerce
- améliorer la gestion des articles, mais il ne fat pas rêver on ne reproduira pas toutes les possibilités de CEGID dans ce domaine sans défigurer les tables products d'OsCommerce

Je ne sais pas si je finirais (donc si mes travaux seront publiés). C'est un test interne pour l'instant.

bon courage
sebkill
Bonjour tout le monde,

Ce sujet est très intéressant !

Est-ce que quelqu'un aurait au final un module OsCommerce qui serait capable d'importer des données : article et client

Et exorter les données comme les commandes.

Quel que soit le format d'entrée ou de sortie je suis intéressé.

Merçi
zedra
Citation (sebkill @ 19 Dec 2008, 12:10) *
Bonjour tout le monde,

Ce sujet est très intéressant !

Est-ce que quelqu'un aurait au final un module OsCommerce qui serait capable d'importer des données : article et client

Et exorter les données comme les commandes.

Quel que soit le format d'entrée ou de sortie je suis intéressé.

Merçi


Bonjour à tous et meilleurs voeux

Je suis aussi à la recherche d'une solution pour interfacer une gestion APISOFT 8 avec OSCommerce.
Si vous avez une solution...

Merci
maxime
Bonjour Zedra,

Si tu nous disais en quoi la solution exposée dans ce fil de discussion ne te convient pas, cela sera plus simple de te répondre.
zedra
Citation (maxime @ 23 Dec 2008, 03:11) *
Bonjour Zedra,

Si tu nous disais en quoi la solution exposée dans ce fil de discussion ne te convient pas, cela sera plus simple de te répondre.


Bonjour Maxime

En fait je me suis fait une petite moulinette sous access 97 pour exporter les articles de ma Gestion APISOFT 8 dans OSCommerce compatible avec EasyPopulate..
Pour l'instant je n'exporte que les articles (code, stock, tarifs, TVA, Ecotaxe, poids, description, image, familles, fabricants, dispo ...).C'est encore un peu manuel mais çà fonctionne.
Je travaille sur l'import dans ma gestion des clients avec une différenciation des clients saisit directement dans la gestion et ceux provenant d'OSCommerce et aussi l'import des commandes.
Je recherche donc d'autres personnes ayant interfacé le logiciel APISOFT Gestion 8 avec Oscommerce pour échanger nos solutions.
maxime
Ok, c'est plus clair smile.gif
As tu pensé à un schéma comme celui-ci : une connexion odbc avec php sur ta base access, et un webservice soap (ou dans dans l'idéal un accès direct MySQL) pour mettre à jour ces informations ? J'ai travaillé là-dessus pour une synchro des stocks.
zedra
Merci , je vais faire des recherches dans ce sens.
Ta solution d'accès direct à la base access serai bien sûr l'idéal. Pour l'instant je privilégie l'intégrité de ma base principale access car elle est liée avec ma compta 8 aussi sous APISOFT.Je passe donc par une autre base ayant des tables lièes avec ma base principale pour l'export de mes données.
J'avance doucement car cette gestion 8 étant sous access 97 permet d'envisager une interface avec OSCommerce.
LouisCypher
Juste pour info, il est très simple de générer le fichier export XIMPORT.txt demandé par CIEL compta depuis oscommerce.

Il s'agit grosso-modo d'une adaptation de la contrib "order export".
A partir de cette contrib, moyennant un petit peu de temps de prog, il est possible d'exporter ce que l'"on veut vers n'importe quel logiciel !

D'autre part, il existe des solutions d'exports vers EBP et vers SAGE. voir du cote du site de oscteam.
Nicko500
Pour information , car j'ai longtemps cherché une solution d'échange entre Oscommerce et EBP gestion commerciale.

J'ai découvert récemment OSC-Import une petite passerelle qui permet d'importer automatique les commandes OSC dans EBP en commandes Client.

Sans être parfait ca fonctionne pas mal du tout wink.gif
EtienneZ
Existe aussi, pour info, la solution synchro ecommerce entre OsCommerce et EBP, et d'après le site bientôt pour Magento.
Ca fonctionne facilement après quelques paramétrages et rapatrie fiches clients et commandes dans la gestion commerciale.
armoise
Bonjour,

Pour info, je travaille avec Talend pour la gestion des import export, un utilitaire open source de gestion de base de donnée.

Pour les synchronisation avec erp/crm (notamment sugar crm), je n'ai pas trouver mieux !
maxime
Citation (armoise @ 27 May 2009, 14:06) *
Bonjour,

Pour info, je travaille avec Talend pour la gestion des import export, un utilitaire open source de gestion de base de donnée.

Pour les synchronisation avec erp/crm (notamment sugar crm), je n'ai pas trouver mieux !


Bonjour Armoise,

Utiliser Talend pour "seulement" synchroniser des données entre osc et sugar, c'est pas un peu trop usine à gaz blink.gif ?
Il y a une contrib qui faut un peu bricoler de mémoire, mais cela reste quand même bien plus rapide que faire ça avec Talend non ? Quels sont les raisons du choix de Talend pour interfacer Sugar et osc ?

Merci de ton retour d'expérience wink.gif
armoise
Bonjour Maxime,

Merci pour ton message. C'est une possibilté offerte par Talend que je n'utilise pas.

Personnellement, je synchronise mes contacts et mes ventes de mon CRM (qui n'a pas d'interface avec oscommerce) avec Talend dans le but d'automatiser les procédures de contrôle ( type de paiement, programme de fidélité, avoir en cours etc ...) et les envois d'email (workflow). Il gère également les abonnements à la newsletter
@+
maxime
Je comprends mieux. Pas trop long l'apprentissage de Talend ? Je n'ai que vaguement regardé. C'est très intéressant, mais je n'ai jamais sauté le pas pour réellement travailler avec.
armoise
Bonjour Maxime,

Dur dur effectivement. Il demande une connaissance du mysql. Un site m'a beaucoup aidé dans sa compréhesion : http://www.labdecisionnel.com Un grand merci pour sa qualité didactitielle rare sur le web

@+
FastFrench
Bonjour,

pour info, en version 15 (tout juste sortie), EBP a pas mal amélioré Gescom Exchange pour connecter la Gestion Commerciale EBP avec osCommerce.

Un point sympa notamment, c'est qu'il est possible d'essayer gratuitement le module en version d'évaluation. Par ailleurs, ce module est maintenant couplé aux contrats d'assistance: désormais EBP propose un support technique sur Gescom Exchange, ce qui n'était pas le cas avant.

L'import des commandes et l'export articles sont aussi bien plus souple qu'avant. D'après "des sources proches d'EBP" blink.gif , l'import d'articles et de clients sont aussi dans les cartons.
milie000
Bonjour,

Je me permets de relancer ce sujet car je travaille aujourd'hui avec Ciel et ait absolument besoin d importer mes commandes afin de ne pas resaisir manuellement les coordonnées de mes clients.
J 'ai bien compris qu'avec Ciel cela était impossible.
Je me suis tournée vers Sage, mais on arrive sur un budget très important et une solution surdimensionnée..
Je suis en train de me pencher sur EBP et j'aimerai avoir vos retours d'experience à ce sujet.
D'autant plus que j'ai beaucoup de mal à obtenir des informations claires de la part d'ebp et des revendeurs, y a t il plusieurs niveaux de connexion possible (import manuel, import automatique....) ? Est ce que EBP à développer la passerelle ? Faut il se tourner vers un revendeur pour développer ?
Bref je suis un peu perdue, vos experiences m'aideraient à prendre une décision

MERCI !
xaglo
Citation (milie000 @ 24 Feb 2011, 12:10) *
J 'ai bien compris qu'avec Ciel cela était impossible.
Ah bon??? blink.gif

Ciel permet l'import de cvs ou de fichier txt... Il suffit donc de faire un petit script pour exporter tes commandes et ça roule!!! J'ai bricolé ça et ça fonctionne bien! Voilà le script si tu veux, mais ce sera plus pour que tu vois le principe, c'est beaucoup trop personnalisé à nos besoins spécifiques pour être utilisé de façon universelle par plug and play.
Code
<?php
/*
  $Id: export_ciel.php v1.0 2009/07/19

  osCommerce, Open Source E-Commerce Solutions
  [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

  Copyright © 2004 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');
  include(DIR_WS_CLASSES . 'order.php');

  $dossier = DIR_FS_ADMIN . '/export_ciel/';
  $file = 'export_ciel.txt';
  $raw_date =0;
  
  function virgule($montant){
    $montant = number_format($montant, 2, ',', '');
    return $montant;
  }
  
  function echeance($raw_date, $echeance) {
    if ($raw_date == '') return false;  
    $year = substr($raw_date, 6, 4);
    $month = (int)substr($raw_date, 3, 2);
    $day = (int)substr($raw_date, 0, 2) + $echeance;
    return date(DATE_FORMAT, mktime(0, 0, 0, $month, $day, $year));
  }

  
  if ($_GET['action']) {
    switch ($_GET['action']) {
      case 'create_file':
      $from = tep_db_prepare_input($_POST['from']);
      $to = tep_db_prepare_input($_POST['to']);
      $orders_query = tep_db_query("SELECT orders_id from " . TABLE_ORDERS . " WHERE orders_id >= '" . $from . "' AND orders_id <= '" . $to . "' order by orders_id");
      while($orders = tep_db_fetch_array($orders_query)) {
        $order = new order($orders['orders_id']);
        $TVA_true = 0;
        $debit = 0;
        $credit = 0;
        $error = 0;
        $libelle_sup = '';
  // Méthode de paiement
        switch (substr($order->info['payment_method'], 0, 3)){
          case 'Car':
            $payment_method = 'cbl';
            break;
          case 'Chè':
            $payment_method = 'ch';
            break;
          case 'Esp':
            $payment_method = 'es';
            break;
          case 'Vir':
            $payment_method = 'vir';
            break;
          case '3x ':
            $payment_method = '3x';
            break;
          default :
            $payment_method = '';
            break;
        }
  // date
        $date = tep_date_short($order->info['date_purchased']);
  // Total
        $totalTTC_query = tep_db_query("select value from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$orders['orders_id'] . "' and class='ot_total'");
        $totalTTC = tep_db_fetch_array($totalTTC_query);
        $totalTTC = $totalTTC['value'];
        $totalTVA_query = tep_db_query("select value from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$orders['orders_id'] . "' and class='ot_tax'");
        $totalTVA = tep_db_fetch_array($totalTVA_query);
        $totalTVA = $totalTVA['value'];
        
        if ($totalTVA!=0 || $totalTTC!=0) {

// CREDIT articles
        for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
        if (!$order->products[$i]['final_price'] || $order->products[$i]['final_price'] == 0) continue;
  // compte
          switch ($order->products[$i]['tax']){
            case '19.6000':
              $compte = '7070000';
              break;
            case '5.5000':
              $compte = '7070015';
              break;
            default :
              $compte = '7079000';
              break;
          }
        if (strtolower(substr($order->products[$i]['name'], 0, 8)) == 'location') $compte = '7083000';
        $libelle_sup = '';
        if ($order->products[$i]['model'] == 'chqCado') {
          $compte = '4191000';
          $libelle_sup = '-ca';
        }
  // Analytique
        switch ($order->customer['id']){
          case '1':
            $analytique = 'LOO';
            break;
          case '3':
            $analytique = 'MAG';
            break;
          default :
            $analytique = 'SITJ';
            break;
          }
        if ($order->products[$i]['name'] == 'Jeu de Go TEACHER') $analytique = 'GO';
        if ($order->products[$i]['model'] == 'chqCado') $analytique = "";
  // Montant
        $price_brut = $order->products[$i]['final_price'] * $order->products[$i]['qty'];
        $price = virgule($price_brut);
        $credit += tep_round($price_brut, 2);
        
        $ciel_list .= "VT" . chr(9); //  \t ou chr(9)
        $ciel_list .= $date . "\t"; // date
        $ciel_list .= $compte . "\t"; // N° compte
        $ciel_list .= "" . "\t"; // débit (total) laisser vide
        $ciel_list .= $price . "\t"; // crédit (détail)
        $ciel_list .= $orders['orders_id'] . $libelle_sup . "\t"; // libellé
        $ciel_list .= "" . "\t"; // Echéancce laisser vide
        $ciel_list .= $analytique . "\t"; // code analytique
        $ciel_list .= "" . "\t"; // mode de paiement laisser vide
        $ciel_list .= chr(13); //  \n chr(13) en CRLF
// TVA
        if ($order->products[$i]['tax'] != 0){
          $TVA_true = 1;
          $TVA_brut = tep_round($price_brut * $order->products[$i]['tax']/100, 2);
          $TVA = virgule($TVA_brut);
          $credit += tep_round($TVA_brut, 2);
   // compte
          switch ($order->products[$i]['tax']){
            case '19.6000':
              $compte = '4457130';
              break;
            case '5.5000':
              $compte = '4457100';
              break;
          }
          $ciel_list .= "VT" . chr(9); //  \t ou chr(9)
          $ciel_list .= $date . "\t"; // date
          $ciel_list .= $compte . "\t"; // N° compte
          $ciel_list .= "" . "\t"; // débit (total) laisser vide
          $ciel_list .= $TVA . "\t"; // crédit (détail)
          $ciel_list .= $orders['orders_id'] . "\t"; // libellé
          $ciel_list .= "" . "\t"; // Echéancce laisser vide
          $ciel_list .= "" . "\t"; // code analytique laisser vide
          $ciel_list .= "" . "\t"; // mode de paiement laisser vide
          $ciel_list .= chr(13); //  \n chr(13) en CRLF
        }
      } // end for sizeof products
// SHIPPING
        $shippingTTC_query = tep_db_query("select value from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$orders['orders_id'] . "' and class='ot_shipping'");
        $shippingTTC = tep_db_fetch_array($shippingTTC_query);
        $shippingTTC = tep_round($shippingTTC['value'],2);
        $credit += $shippingTTC;
        if ($shippingTTC && $shippingTTC!='0'){
   // compte shipping
          if ($TVA_true){
            $compte = '7085000';
            $shipping = tep_round($shippingTTC/1.196, 2);
            $shipping_ok = virgule($shipping);
            $TVA_shipping = virgule($shippingTTC - $shipping);
          } else {
            $compte = '7089000';
            $shipping_ok = virgule($shippingTTC);
          }
          $ciel_list .= "VT" . chr(9); //  \t ou chr(9)
          $ciel_list .= $date . "\t"; // date
          $ciel_list .= $compte . "\t"; // N° compte
          $ciel_list .= "" . "\t"; // débit (total) laisser vide
          $ciel_list .= $shipping_ok . "\t"; // crédit (détail)
          $ciel_list .= $orders['orders_id'] . "\t"; // libellé
          $ciel_list .= "" . "\t"; // Echéancce laisser vide
          $ciel_list .= "" . "\t"; // code analytique laisser vide
          $ciel_list .= '' . "\t"; // mode de paiement laisser vide
          $ciel_list .= chr(13); //  \n chr(13) en CRLF
   // TVA shipping
          if ($TVA_true){
            $ciel_list .= "VT" . chr(9); //  \t ou chr(9)
            $ciel_list .= $date . "\t"; // date
            $ciel_list .= '4457130' . "\t"; // N° compte
            $ciel_list .= "" . "\t"; // débit (total) laisser vide
            $ciel_list .= $TVA_shipping . "\t"; // crédit (détail)
            $ciel_list .= $orders['orders_id'] . "\t"; // libellé
            $ciel_list .= "" . "\t"; // Echéancce laisser vide
            $ciel_list .= "" . "\t"; // code analytique laisser vide
            $ciel_list .= "" . "\t"; // mode de paiement laisser vide
            $ciel_list .= chr(13); //  \n chr(13) en CRLF
          }
        } // end if shippingTTC
// DEBIT compte 411
  // compte
        switch ($order->customer['id']){
          case '3':
            $compte = '411m000';
            break;
          case '1':
            $compte = '4110000';
            break;
          default :
            $compte = '411s000';
            break;
        }
        $debit = $credit;
  // montant
        if ($payment_method == '3x') {
          $tiers = tep_round($debit/3, 2);
          $montant['1'] = virgule($tiers);
          $montant['2'] = virgule($debit - 2 * $tiers);
          $montant['3'] = virgule($tiers);
        } else {
          $montant['3'] = virgule($debit);
        }
        $i=3;
        if ($payment_method == '3x') $i=1;
        do {
          if ($i==1) $date_ech = echeance($date, 30);
          if ($i==2) $date_ech = echeance($date, 60);
          if ($i==3) $date_ech = '';
          $ciel_list .= "VT" . chr(9); //  \t ou chr(9)
          $ciel_list .= $date . "\t"; // date
          $ciel_list .= $compte . "\t"; // N° compte
          $ciel_list .= $montant[$i] . "\t"; // débit (total)
          $ciel_list .= "" . "\t"; // crédit laisser vide
          $ciel_list .= $orders['orders_id'] . '-' . $payment_method . "\t"; // libellé
          $ciel_list .= $date_ech . "\t"; // Echéancce
          $ciel_list .= "" . "\t"; // code analytique
          $ciel_list .= $payment_method . "\t"; // mode de paiement
          $ciel_list .= chr(13); //  \n chr(13) en CRLF
          $i++;
          } while($i < 4);
// Paiement CHQ CADEAU
        $custom_query = tep_db_query("select value from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$orders['orders_id'] . "' and class='ot_custom'");
        $custom = tep_db_fetch_array($custom_query);
        $custom = $custom['value'];
        $value = virgule (-$custom);
        if ($custom && $custom!='0'){
          $cado_query = tep_db_query("select title from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$orders['orders_id'] . "' and class='ot_custom'");
          $cado = tep_db_fetch_array($cado_query);
          $cado = $cado['title'];

          $ciel_list .= "OD" . chr(9); //  \t ou chr(9)
          $ciel_list .= $date . "\t"; // date
          $ciel_list .= '4191000' . "\t"; // N° compte
          $ciel_list .= $value . "\t"; // débit (cheque cadeau)
          $ciel_list .= "" . "\t"; // crédit (détail)
          $ciel_list .= $cado . "(" . $orders['orders_id'] . ")" . "\t"; // libellé
          $ciel_list .= "" . "\t"; // Echéancce laisser vide
          $ciel_list .= "" . "\t"; // code analytique laisser vide
          $ciel_list .= '' . "\t"; // mode de paiement laisser vide
          $ciel_list .= chr(13); //  \n chr(13) en CRLF

          $ciel_list .= "OD" . chr(9); //  \t ou chr(9)
          $ciel_list .= $date . "\t"; // date
          $ciel_list .= $compte . "\t"; // N° compte
          $ciel_list .= "" . "\t"; // débit (cheque cadeau)
          $ciel_list .= $value . "\t"; // crédit (détail)
          $ciel_list .= $cado . "(" . $orders['orders_id'] . ")" . "\t"; // libellé
          $ciel_list .= "" . "\t"; // Echéancce laisser vide
          $ciel_list .= "" . "\t"; // code analytique laisser vide
          $ciel_list .= '' . "\t"; // mode de paiement laisser vide
          $ciel_list .= chr(13); //  \n chr(13) en CRLF

        } // end if custom

// CONTROLE
        if ($credit - $totalTTC + $custom> 0.011 || $credit - $totalTTC + $custom < -0.011) {
          $error = 1;
          break;
        }
        } // enf if totalTTC
      } // end while orders
      if ($error ==1) {
        $messageStack->add_session('erreur sur la commande <b>' . $orders['orders_id'] .'</b><br/> credit = ' . $credit .'<br> totalTTC = ' . $totalTTC .'<br> chèque cadeau = ' . $custom, 'error');
        tep_redirect(tep_href_link('export_ciel.php'));
        break;
      } else {
        $fp= fopen($dossier . $file,"w");
        fputs($fp, $ciel_list);
        fclose($fp);
      
        $fp= fopen($dossier . 'derniere.txt',"w");
        fputs($fp, $to+1);
        fclose($fp);
        
        $messageStack->add_session('Le fichier d\'export a été généré correctement', 'success');
        tep_redirect(tep_href_link('export_ciel.php'));
      break;
      }
    }
  }

  if (is_file($dossier . 'derniere.txt')) {
    $fp= fopen($dossier . 'derniere.txt',"r");
    $from = fgets($fp,32);
    fclose($fp);
  } else $from = 1;
  
// mise de la commande finale par défaut  
  $orders_query = tep_db_query("SELECT orders_id from " . TABLE_ORDERS . " ORDER by orders_id DESC LIMIT 1");
  $orders = tep_db_fetch_array($orders_query);
  $last = $orders['orders_id'];
//  $to = 100 * tep_round(($last - 100)/100, 1);
  
// taille et date du dernier fichier téléchargé
  if (is_file($dossier . $file)) {
    $sizefile = filesize($dossier . $file);
    $sizeformatted = sprintf("%0.0f octets", $sizefile);
    $datefile = strftime(DATE_FORMAT_SHORT, filemtime($dossier . $file));
  }
?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Export Ciel</title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="3">
  <tr>
    <td width="5%" valign="top">&nbsp;</td>
<!-- body_text //-->
    <td width="95%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
      <tr>
        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td class="pageHeading">Export Ciel Compta</td>
          </tr>
        </table></td>
      </tr> <!--titre //-->
      <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
       </tr>
      <tr>
         <td class="main">Le dernier fichier a été généré le "<b><?php echo $datefile; ?></b>" jusqu'à la commande "<b><?php echo $from - 1; ?></b>". La dernière commande passée est la <b><?php echo $last; ?></b>.</td>
       </tr>
      <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '20'); ?></td>
       </tr>
      <tr>
         <td class="pageHeading">Générer un nouveau fichier</b></td>
       </tr>
      <tr>
        <td><table border="0" cellspacing="0" cellpadding="10px"><?php echo tep_draw_form('orders', 'export_ciel.php?action=create_file', '', 'post'); ?>
          <tr>
            <td class="main">de la commande</td>
            <td class="main"><?php echo tep_draw_input_field('from', $from) ?></td>
            <td class="main">à la commande</td>
            <td class="main"><?php echo tep_draw_input_field('to', $to) ?></td>
            <td class="main"><?php echo tep_image_submit('button_save.gif', 'sauver') ?></td>
          </tr>
        </form></table></td>
      </tr> <!--form orders //-->
      <tr>
        <td><table width="100%" cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td class="main">
            <?php
              if (is_file($dossier . $file)) {
                echo 'Télécharger (clic droit, enregister sous) ou copier/coller dans un fichier txt-> <a href="export_ciel/export_ciel.txt" target="_blank\">' . '<font color="red">' . $sizeformatted . ' du ' . $datefile . '</font></a>';
              } else echo 'Pas de fichier dans ' . $dossier; ?>
            </td>
          </tr>
         </table></td>
      </tr> <!--export //-->
<!-- body_text_eof //-->
</table>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>


Je me répète, mais ce code ne pourra pas être utilisé tel quel et je n'en assurerai pas le support tongue.gif
Il faudra bien sûr créer le dossier export_ciel qui accueillera le fichier texte et modifier les lignes de code pour s'adapter à tes besoin (chèque cadeau, 3x sans frais, numéros de compte, mode de paiements...) Mais le code est limpide et linéaire, facile à suivre.

Je te laisse libre de l'adapter à tes besoins

Bon code
N.Serge
Avec le logiciel Ekseller, celà est tout à fait possible de gerer le stock logicile - oscommerce ou oscommerce-logiciel

Serge
N.Serge
Rectification : la société Ekseller ne répond plus , je me suis fais de nouveau avoir de 189,00 € pour l'achat du modue Publiweb !!!!!!!
Donc éviter la société Canadienne Ekseller
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.