Eigenen Shop anbinden

Datenstruktur für Warenkorb im Shopskeleton.

Rechnungsadresse

  • $warenkorb[name] = "Musterfirma AG"; /* Bei Privatperson direkt Name der Person - Ansprechpartner bleibt dann leer */
  • $warenkorb[anrede]="firma"; /* herr, frau oder firma */
  • $warenkorb[ansprechpartner] = "Max Mustermann";
  • $warenkorb[abteilung] = "Abteilung Entwicklung;
  • $warenkorb[strasse] = "Muster Strasse 12";
  • $warenkorb[plz] = "12345";
  • $warenkorb[ort] = "Musterdorf;
  • $warenkorb[land] = "DE"; /* 2-stellig ISO */
  • $warenkorb[email] = "email@email.de";

Auftragsinformationen

  • $warenkorb[bestelldatum] = "2012-12-01"; /* Datum der Bestellung */
  • $warenkorb[gesamtsumme] = 10.99; /* Endsumme die gezahlt wird */
  • $warenkorb[transaktionsnummer] = 192939; /* z.B. Paypal, iPayment oder Billsafe Transaktionsnummer */
  • $warenkorb[onlinebestellnummer] = 123456; /* Interne Shop Bestellnummer (Wichtig z.B. bei Vorkassen) */
  • $warenkorb[versandkostennetto] = "3.31";
  • $warenkorb[versandkostenbrutto] = "3.95";
  • $warenkorb[freitext] = "Freitext auf Belegen wie Auftrag, Rechnung und Lieferschein";

Steuer Informationen

  • $warenkorb[steuerfrei] = 0; /* oder 1 wenn steuerfrei */
  • $warenkorb['vorabbezahltmarkieren']=1; /* Falls kein Zahlungseingang von Xentral aus gemacht wird */

Lieferung

  • $warenkorb['lieferdatum']="2012-12-24"; /* Wunsch Lieferdatum des Kunden */
  • $warenkorb[lieferung] = "versandunternehmen"; /* bzw. selbstabholer oder gezielt dpd oder dhl */

Abweichende Lieferadresse

Ausfüllen wenn eine andere Lieferadresse vorhanden ist.
  • $warenkorb2[lieferadresse_name] = "";
  • $warenkorb2[lieferadresse_ansprechpartner] = "";
  • $warenkorb2[lieferadresse_strasse] = "";
  • $warenkorb2[lieferadresse_plz] = "";
  • $warenkorb2[lieferadresse_ort] = "";
  • $warenkorb2[lieferadresse_land] = "";
  • $warenkorb2[lieferadresse_abteilung] = "";

Artikel Liste

Beliebig viele Positionen buchen. $articlearray[] = array( 'articleid'=>'12345', /* Artikelnummer aus Xentral */ 'name'=>'Name des Artikels', /* Name des Artikels der im Auftrag, Rechnung und Lieferschein auftaucht. */ 'price'=>'41.97', /* Netto Preis des Artikels */ 'quantity'=>1 /* Menge des Artikels */ ); Das Array am Schluss zuweisen: $warenkorb[articlelist]=$articlearray;

Zahlungsweisen

Zahlungsweisen müssen korrekt gemapped werden. $warenkorb[zahlungsweise] = "bar"; $warenkorb[zahlungsweise] = "rechnung"; $warenkorb[zahlungsweise] = "vorkasse"; $warenkorb[zahlungsweise] = "kreditkarte"; $warenkorb[zahlungsweise] = "lastschrift"; $warenkorb[zahlungsweise] = "paypal"; $warenkorb[zahlungsweise] = "nachnahme"; $warenkorb[zahlungsweise] = "Amazoncba"; $warenkorb[zahlungsweise] = "sofortueberweisung"; $warenkorb[zahlungsweise] = "secupay"; $warenkorb[zahlungsweise] = "billsafe"; $warenkorb[zahlungsweise] = "unbekannt";

Funktionen

<?php

class Import 
{
  //var $error = array();
  function Import($app)
  {
    $this->app=$app; 

    $this->app->ActionHandlerInit($this);

    $this->dump=false;

    // Anmeldung Xentral an Importer
    $this->app->ActionHandler("auth","ImportAuth");
    
    // Neue Artikel bzw. Updates für Artikel
    $this->app->ActionHandler("sendlist","ImportSendList");
    // Lagerzahlen übertragen
    $this->app->ActionHandler("sendlistlager","ImportSendListLager");
    // Abfragen Anzahl neuer Aufträge für Importlauf
    $this->app->ActionHandler("getauftraegeanzahl","ImportGetAuftraegeAnzahl");
    // Abholen nächster verfügbarer Auftrag
    $this->app->ActionHandler("getauftrag","ImportGetAuftrag");
    // Auftrag auf abgeholt setzen
    $this->app->ActionHandler("deleteauftrag","ImportDeleteAuftrag");
    // Auftrag anpassen. Z.B. Trackingnummer und Status bei Versand
    $this->app->ActionHandler("updateauftrag","ImportUpdateAuftrag");
    
    $this->app->DefaultActionHandler("cmd");

    //file_put_contents("/tmp/log", "Init\r\n", FILE_APPEND | LOCK_EX);
    $this->DumpVar("Init"); 

    //  $this->DumpVar($this->app->Secure->GetGET("action"));
    // token pruefen!!! sonst abbruch DIE FOLGENDE ZEILE DARF NIE IM KOMMENTAR STEHEN! SONDERN MUSS AKTIV SEIN
    $this->CatchRemoteAuth();

    $this->app->ActionHandlerListen($app);
  }



  // get checksum list from the files 
  function ImportGetArticle()
  {
    $tmp = $this->CatchRemoteCommand("data");
    $nummer = $tmp['nummer'];
    $params = array(
    'useNumberAsId' => true
    );
    $result = $this->article = $this->app->client->call('articles/'.$nummer,ApiClient::METHODE_GET, $params);

      $this->DumpVar($result);


    if(!isset($result['data']['name']))
    {
       $this->error[]="Artikel in der Shop Datenbank nicht gefunden!";
    } else {
      $data['name']=$result['data']['name'];
      $data['kurztext_de']=$result['data']['description'];
      $data['uebersicht_de']=str_replace('<br />','</p><p>',$result['data']['descriptionLong']);

      if($result['data']['price']!="")
        $data['preis_netto']=$result['data']['price'];
      else
        $data['preis_netto']=$result['data']['mainDetail']['prices'][0]['price'];

      $data['aktiv']=$result['data']['active'];
      $data['restmenge']=$result['data']['lastStock'];

      if($result['data']['pseudoPrice']!="")
        $data['pseudopreis']=$result['data']['pseudoPrice'];
      else
        $data['pseudopreis']=$result['data']['mainDetail']['prices'][0]['pseudoPrice']*((100+$result['data']['tax']['tax'])/100);

      $data['pseudolager']=$result['data']['mainDetail']['inStock'];
      $data['lieferzeitmanuell']=$result['data']['mainDetail']['shippingTime'];

      $this->DumpVar($data);
    }

    echo $this->SendResponse($data);
    exit;
  }

  function ImportTest()
  {
    //print_r($this->GetIdbyNummer("7777"));
    echo "TEST";
    exit;
  }

  // receive all new articles
  function ImportSendListLager()
  {
    $tmp = $this->CatchRemoteCommand("data");
    $this->DumpVar($tmp); // hier alle Datenfelder sehen

    $anzahl = 0;
    for($i=0;$i<count($tmp);$i++)
    {
      $artikel = $tmp[$i][artikel];
      $nummer = $tmp[$i][nummer];
      $lageranzahl = $tmp[$i][anzahl_lager];
      $laststock = $tmp[$i][restmenge];
      $inaktiv = $tmp[$i][inaktiv];
      $shippingtime = $tmp[$i][lieferzeitmanuell];
      $pseudolager = trim($tmp[$i][pseudolager]);
      if($pseudolager > 0) $lageranzahl=$pseudolager;

      if($inaktiv)$aktiv=0;
      else $aktiv=1;

      if($tmp[$i][ausverkauft]=="1"){
        $lageranzahl=0; $laststock="1";
      } 

      if($laststock!="1") $laststock=0;

      if($artikel!="ignore")
      {
        $testArticle = array(
            'name'     => $name_de,
            'lastStock'     => $laststock,
               'active'   => $aktiv,
            'mainDetail' => array(
            'shippingtime'     => $shippingtime,
                'active'   => $aktiv,
                'number' => $nummer,
                'inStock' => $lageranzahl,
            ),
        );

         $this->DumpVar("Nummer $nummer");
         $check = $this->GetIdbyNummer($nummer);
         $this->DumpVar($check);

         if($this->GetIdbyNummer($nummer)==NULL)
         {
            $this->DumpVar("UPDATE1");
            $result = $this->app->client->call('articles', ApiClient::METHODE_POST, $testArticle);
            $this->DumpVar("UPDATE11");
            $this->DumpVar($result);
            //if($result['data']['id'] > 0) $anzahl++;
         } else {
            $this->DumpVar("UPDATE2");
                $updateInStock = array(
                    'active'   => $aktiv,
                    'lastStock'     => $laststock,
                    'mainDetail' => array(
                    'shippingtime'     => $shippingtime,
                    
                    'active'   => $aktiv,
                        'number' => $nummer,
                        'inStock' => $lageranzahl,
                    )
                );
            $result = $this->app->client->call('articles/'.$this->GetIdbyNummer($nummer), ApiClient::METHODE_PUT, $updateInStock);
            $this->DumpVar($result);
         }
            $anzahl++;
      }
    }

    // anzahl erfolgreicher updates
    echo $this->SendResponse($anzahl);
    exit;
  }

  // receive all new articles
  function ImportSendList()
  {
    $tmp = $this->CatchRemoteCommand("data");
    $this->DumpVar($tmp); // hier alle Datenfelder sehen

    $anzahl = 0;
    for($i=0;$i<count($tmp);$i++)
    {
      $artikel = $tmp[$i][artikel];
      $hersteller = $tmp[$i][hersteller];
      $herstellerlink = $tmp[$i][herstellerlink];
      $nummer = $tmp[$i][nummer];
      $name_de = $tmp[$i][name_de];
      $name_en = $tmp[$i][name_en];
      $lageranzahl = $tmp[$i][anzahl_lager];
      $description = $tmp[$i][kurztext_de];
      $description_en = $tmp[$i][kurztext_en];
      $laststock = $tmp[$i][restmenge];
      $inaktiv = $tmp[$i][inaktiv];

      if($hersteller=="")$hersteller="Sonstige";

      if($inaktiv)$aktiv=0;
      else $aktiv=1;

      if($tmp[$i][ausverkauft]=="1"){
        $lageranzahl=0; $laststock="1";
      } 


      if($laststock!="1") $laststock=0;

      if($tmp[$i][kurztext_en]=="") $tmp[$i][kurztext_en] = $tmp[$i][kurztext_de];
      if($tmp[$i][uebersicht_en]=="") $tmp[$i][uebersicht_en] = $tmp[$i][uebersicht_de];
      if($tmp[$i][beschreibung_en]=="") $tmp[$i][beschreibung_en] = $tmp[$i][beschreibung_de];

      /*
      if($tmp[$i][links_de]!=""){
        $description_long = htmlspecialchars_decode($tmp[$i][uebersicht_de])."<br>".htmlspecialchars_decode($tmp[$i][beschreibung_de])."<br><b>Links:</b><br><br>".htmlspecialchars_decode($tmp[$i][links_de]);
      } else {
        $description_long = htmlspecialchars_decode($tmp[$i][uebersicht_de])."<br>".htmlspecialchars_decode($tmp[$i][beschreibung_de]);
      }*/
      $description_long = htmlspecialchars_decode($tmp[$i][uebersicht_de]);

      $preis = $tmp[$i][bruttopreis];
      $einkaufspreis = $tmp[$i][einkaufspreis];

      $pseudopreis = $tmp[$i][pseudopreis];//*1.19;
      $steuersatz = $tmp[$i][steuersatz];

      $pseudolager = trim($tmp[$i][pseudolager]);
      if($pseudolager > 0) $lageranzahl=$pseudolager;

      //for($x=1;$x<=$tmp[$i][anzahl_bilder];$x++){
      //  $images[]=array('link' => 'http://shop2011.embedded-projects.net/index.php?module=artikel&action=bildnummer&nummer='.$nummer.'&pos='.$x);
      //}

      if($artikel!="ignore")
      {

        $testArticle = array(
            'name'     => $name_de,
            'lastStock'     => $laststock,
//            'name_2'     => $name_en,
            'priceGroupId' => 1,
            'tax'      => $steuersatz,          // alternativ 
//             'taxId' => 1,
            'supplier' => $hersteller, // alternativ 'supplierId' => 2,
 //           'description'=>$description,
 //           'description_2'=>$description_en,
//            'descriptionLong'=>$description_long,
               'active'   => $aktiv,
      //      'images' => 
       //       $images
        //    ,

            'mainDetail' => array(
                'active'   => $aktiv,
                'number' => $nummer,
    //            'inStock' => $lageranzahl, //UPDATE LAGER
                'prices' => array(
                    array(
                        'customerGroupKey' => 'EK',
                        'price' => $preis,
                        'pseudoPrice' => $pseudopreis,
                    ),
/*		    array(
                        'customerGroupKey' => '8',
                        'price' => $einkaufspreis*1.19,
                    )
*/
                )
            ),
        );

         $this->DumpVar("Nummer $nummer");
         $check = $this->GetIdbyNummer($nummer);
         $this->DumpVar($check);
         if($this->GetIdbyNummer($nummer)==NULL)
         {
            $this->DumpVar("UPDATE1");
            $result = $this->app->client->call('articles', ApiClient::METHODE_POST, $testArticle);
            $this->DumpVar("UPDATE11");
            $this->DumpVar($result);
            //if($result['data']['id'] > 0) $anzahl++;
         } else {
            $this->DumpVar("UPDATE2");
                $updateInStock = array(
                    'name'     => $name_de,
                    'priceGroupId' => 1,
                    'tax' => $steuersatz,
                    //'taxId' => 1,
                    'description'=>$description,
                    'descriptionLong'=>$description_long,
                    'supplier' => $hersteller, // alternativ 'supplierId' => 2,
                    'active'   => $aktiv,
                    'lastStock'     => $laststock,
                    'descriptionLong'=>$description_long,
                    'mainDetail' => array(
                    'active'   => $aktiv,
                        'number' => $nummer,
//                        'inStock' => $lageranzahl, //UPDATE LAGER
                        'prices' => array(
                    array(
                        'customerGroupKey' => 'EK',
                        'price' => $preis,
                        'pseudoPrice' => $pseudopreis,
                    ),

)

                    )
                );
            $result = $this->app->client->call('articles/'.$this->GetIdbyNummer($nummer), ApiClient::METHODE_PUT, $updateInStock);
            $this->DumpVar("ERGEBNIS ".$this->GetIdbyNummer($nummer));
            $this->DumpVar($result);
         }
            $anzahl++;
          
      }

    }

    // Anzahl erfolgreicher Updates
    echo $this->SendResponse($anzahl);
    exit;
  }

 
 



  function DumpVar($variable)
  {
    if($this->dump)
    {
      ob_start();
      var_dump($variable);
      $result = ob_get_clean();
      file_put_contents("/tmp/log", "$result\r\n", FILE_APPEND | LOCK_EX);
    }
  }

  
 

  //TODO fuer Auftragimport
  //get checksum list from onlineshop
  function ImportGetAuftraegeAnzahl()
  {

    // filter nach orderStatusId
    $filterByOrderStatus = array(
        array(
            'property' => 'status',
            'value'    => 0
        ),
    );
     
    $params = array(
        'filter' => $filterByOrderStatus 
    );

    $result = $this->app->client->call('orders', ApiClient::METHODE_GET,$params);

    //$tmp = $this->app->DB->Select("SELECT COUNT(id) FROM auftraege"); // WHERE noch nicht abgeholt
    echo $this->SendResponse(count($result[data]));
    exit;
  }

  //TODO fuer AuftragImport
  function ImportUpdateAuftrag()
  {
    $tmp = $this->CatchRemoteCommand("data");

    // pruefe ob $tmp[datei] vorhanden wenn nicht lege an, sonst update [inhalt] und [checksum]
    $auftrag = $tmp[auftrag];
    $zahlungok = $tmp[zahlung];
    $versandok = $tmp[versand];
    $tracking = $tmp[tracking];

    if($zahlungok=="ok" || $zahlungok=="1")
      $status_zahlung=12;
    else
      $status_zahlung=1;

   if($versandok=="ok" || $versandok=="1")
      $status_versand=7;
    else
      $status_versand=1;

    $this->DumpVar("UPD Auftrag");
    $this->DumpVar($auftrag);

    $this->app->client->call('orders/'.$auftrag, ApiClient::METHODE_PUT, array(
   // 'paymentStatusId' => $status_zahlung,
    'orderStatusId' => 7,//$status_versand,
    'trackingCode' => $tracking
    //'comment' => 'Neuer Kommentar',
    //'transactionId' => '0',
 //   'clearedDate' => $date,
     ));

    //$this->app->DB->Delete("DELETE FROM auftraege WHERE id='$auftrag' LIMIT 1");

    echo $this->SendResponse("ok");
    exit;
  }

  //TODO fuer AuftragImport
  function ImportDeleteAuftrag()
  {
    $tmp = $this->CatchRemoteCommand("data");

    // pruefe ob $tmp[datei] vorhanden wenn nicht lege an, sonst update [inhalt] und [checksum]
    $auftrag = $tmp[auftrag];

    $this->DumpVar("DEL Auftrag");
    $this->DumpVar($auftrag);
    $this->app->client->call('orders/'.$auftrag, ApiClient::METHODE_PUT, array(
    'orderStatusId' => 1,
     ));

    //$this->app->DB->Delete("DELETE FROM auftraege WHERE id='$auftrag' LIMIT 1");

    echo $this->SendResponse("ok");
    exit;
  }



  //TODO fuer Auftragimport
  // get checksum list from onlineshop
  function ImportGetAuftrag()
  {
        // filter nach orderStatusId
    $filterByOrderStatus = array(
      array(
        'property' => 'status',
        'value'    =>0
      ),
    );
         
    $params = array(
      'filter' => $filterByOrderStatus 
    );

    // holt immer einen Eintrag ab
    $result = $this->app->client->call('orders', ApiClient::METHODE_GET,$params);

    $warenkorb[auftrag] = $result[data][0][id];
    $result = $this->app->client->call('orders/'.$result[data][0][id], ApiClient::METHODE_GET);
    
    // LogFile 
    $this->DumpVar($result);

    $warenkorb[gesamtsumme] = $result[data][invoiceAmount];

    $warenkorb[transaktionsnummer] = $result[data][transactionId];
    $warenkorb[onlinebestellnummer] = $result[data][number];

    $warenkorb[versandkostennetto] = $result[data][invoiceShippingNet];
    $warenkorb[versandkostenbrutto] = $result[data][invoiceShipping];
    $warenkorb[freitext] = $result[data][customerComment];

    if($result[data][billing][company]=="")
      $warenkorb[name] = $result[data][billing][firstName]." ".$result[data][billing][lastName];
    else {
      $warenkorb[name] = $result[data][billing][company];
      $warenkorb[ansprechpartner] = $result[data][billing][firstName]." ".$result[data][billing][lastName];
    }

    if($result[data][billing][salutation]=="mr")
      $warenkorb[anrede]="herr";

    if($result[data][billing][salutation]=="mrs")
      $warenkorb[anrede]="frau";

    if($result[data][billing][company]!="")
      $warenkorb[anrede]="firma";


    $warenkorb[strasse] = $result[data][billing][street]." ".$result[data][billing][streetNumber];
    $warenkorb[plz] = $result[data][billing][zipCode];
    $warenkorb[ort] = $result[data][billing][city];
    $warenkorb[land] = $result[data][billing][country][iso];
    $warenkorb[email] = $result[data][customer][email];
    $warenkorb[affiliate_ref] = $result[data][customer][affiliate];
    $warenkorb[abteilung] = $result[data][billing][department];
    $warenkorb[steuerfrei] = $result[data][taxFree];

    //10 = Komplett in Rechnung gestellt
    //12 = Komplett bezahlt
    //18 = Reserviert ????
    //31 = Der Kredit wurde vorlaeufig akzeptiert.
    //32 = Der Kredit wurde genehmigt.
    //33 = Die Zahlung wurde von der Hanseatic Bank angewiesen.
    if($result[data][paymentStatus][id]==12)
    {
      $warenkorb['vorabbezahltmarkieren']=1;
    } else {
      $warenkorb['vorabbezahltmarkieren']=0;
    }

    switch($result[data][payment][name])
    {
      case "cash": $warenkorb[zahlungsweise] = "bar"; break;
      case "invoice": $warenkorb[zahlungsweise] = "rechnung"; break;
      case "prepayment": $warenkorb[zahlungsweise] = "vorkasse"; break;
      case "ipayment": $warenkorb[zahlungsweise] = "kreditkarte"; break;
      case "paypal": $warenkorb[zahlungsweise] = "paypal"; break;
      case "nachnahme": $warenkorb[zahlungsweise] = "nachnahme"; break;
      case "Amazoncba": $warenkorb[zahlungsweise] = "Amazoncba"; break;
      case "sofortueberweisung": $warenkorb[zahlungsweise] = "sofortueberweisung"; break;
      default: $warenkorb[zahlungsweise] = "unbekannt"; 
    }

    //$warenkorb[lieferung] selbstabholer, versandunternehmen
    if($result[data][dispatch][name]=="Selbstabholung")
      $warenkorb[lieferung] = "selbstabholer";
    else
      $warenkorb[lieferung] = "versandunternehmen";

    $warenkorb[bestelldatum] = substr($result[data][orderTime],0,10);

    $warenkorb[ustid] = $result[data][billing][vatId];
    $warenkorb[telefon] = $result[data][billing][phone];
    $warenkorb[telefax] = $result[data][billing][fax];


    if($result[data][shipping][company]=="")
      $warenkorb2[lieferadresse_name] = $result[data][shipping][firstName]." ".$result[data][shipping][lastName];
    else {
      $warenkorb2[lieferadresse_name] = $result[data][shipping][company];
      $warenkorb2[lieferadresse_ansprechpartner] = $result[data][shipping][firstName]." ".$result[data][shipping][lastName];
    }

    $warenkorb2[lieferadresse_strasse] = $result[data][shipping][street]." ".$result[data][shipping][streetNumber];
    $warenkorb2[lieferadresse_plz] = $result[data][shipping][zipCode];
    $warenkorb2[lieferadresse_ort] = $result[data][shipping][city];
    $warenkorb2[lieferadresse_land] = $result[data][shipping][country][iso];
    $warenkorb2[lieferadresse_abteilung] = $result[data][shipping][department];

    if($warenkorb2[lieferadresse_name]!=$warenkorb[name] ||
       $warenkorb2[lieferadresse_ansprechpartner]!=$warenkorb[ansprechpartner] ||
       $warenkorb2[lieferadresse_strasse]!=$warenkorb[strasse] ||
       $warenkorb2[lieferadresse_plz]!=$warenkorb[plz] ||
       $warenkorb2[lieferadresse_ort]!=$warenkorb[ort] ||
       $warenkorb2[lieferadresse_land]!=$warenkorb[land] ||
       $warenkorb2[lieferadresse_abteilung]!=$warenkorb[abteilung])
    {
      $warenkorb[abweichendelieferadresse]="1";
      $warenkorb[lieferadresse_name]  = $warenkorb2[lieferadresse_name] ;
      $warenkorb[lieferadresse_ansprechpartner] = $warenkorb2[lieferadresse_ansprechpartner];
      $warenkorb[lieferadresse_strasse] = $warenkorb2[lieferadresse_strasse];
      $warenkorb[lieferadresse_plz] = $warenkorb2[lieferadresse_plz];
      $warenkorb[lieferadresse_ort] = $warenkorb2[lieferadresse_ort];
      $warenkorb[lieferadresse_land] = $warenkorb2[lieferadresse_land];
      $warenkorb[lieferadresse_abteilung] = $warenkorb2[lieferadresse_abteilung];
    } 
       
    //articlelist
        //articleid
        //quantity

    for($i=0; $i < count($result[data][details]); $i++)
    {
      $articlearray[] = array('articleid'=>$result[data][details][$i][articleNumber],
                        'name'=>$result[data][details][$i][articleName],
                          'price'=>$result[data][details][$i][price],
                          'quantity'=>$result[data][details][$i][quantity]
      );
    }
    
    foreach($articlearray as $k => $v)
    {
      $articlearray[$k]['price'] = number_format($v['price'],2,'.','');
    }
    
    $warenkorb[articlelist]=$articlearray;

    $tmp[0]['id'] = $warenkorb[auftrag];
    $tmp[0]['sessionid'];
    $tmp[0]['logdatei'];
    $tmp[0]['warenkorb'] = base64_encode(serialize($warenkorb));

    echo $this->SendResponse($tmp);
    exit;
  }

  //TODO fuer Artikelexport
  // get checksum list from onlineshop
  function ImportGetList()
  {
    $tmp = $this->app->DB->SelectArr("SELECT artikel,checksum FROM artikel");
    echo $this->SendResponse($tmp);
    exit;
  }


  
 
  function ImportAuth()
  {
    $checktoken = $this->app->Conf->ImportToken;
    $result = $this->CatchRemoteCommandAES("token");
    if($result==$checktoken)
      echo $this->SendResponse("success");
    else 
      echo $this->SendResponse("failed");

    exit;
  }

  function CatchRemoteCommandAES($value)
  {
    $tmp = $this->app->Secure->GetPOST($value);

    //$z = "12345678912345678912345678912345"; // 256-bit key
    $z = $this->app->Conf->ImportKey;//"12345678912345678912345678912345"; // 256-bit key
    $aes = new AES($z);
    return unserialize($aes->decrypt(base64_decode($tmp)));
  }


  function CatchRemoteCommand($value)
  {
    $tmp = $this->app->Secure->GetPOST($value);

    return unserialize(base64_decode($tmp));
  }

  function CatchRemoteAuth()
  {
    $checktoken = $this->app->Conf->ImportToken;
    $result = $this->CatchRemoteCommandAES("token");
    if($result!=$checktoken)
    {
      $this->SendResponse("failed"); 
      exit;
    }
  }

  function SendResponse($value)
  { 
//    $this->error[]="Artikel in der Shop Datenbank nicht gefunden!";
    $this->DumpVar("BNEEN9999999999");
    $this->DumpVar($this->error);

    if(count($this->error)>0)
    { 
      return base64_encode(serialize("error: ".implode(',',$this->error)));
    } else {
      return base64_encode(serialize($value));
    }
  }
/*
  function SendResponse($value)
  {
    return base64_encode(serialize($value));
  }
*/
  function SendResponseAES($value)
  {
    $z = $this->app->Conf->ImportKey;//"12345678912345678912345678912345"; // 256-bit key
    $aes = new AES($z);
    return base64_encode($aes->encrypt(serialize($value)));
  }




}
?>

  
  </code>






====Artikel übertragen====


===Staffelpreise===

<code>
[staffelpreise] => Array
(
[0] => Array
(
[ab_menge] => 1.0000
[preis] => 5.00000000
[bruttopreis] => 5.95
[waehrung] => EUR
[gruppenkennziffer] => PG01
[gruppenname] => preisgruppe 1
)

[1] => Array
(
[ab_menge] => 10.0000
[preis] => 1.00000000
[bruttopreis] => 1.19
[waehrung] => EUR
)
)

FAQs

War der Artikel hilfreich?
Vielen Dank für Ihr Feedback!

Made with ❤ at zwetschke.de