PHP über API - fehlerhafte doppelte Erstellung von Artikeln

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PHP über API - fehlerhafte doppelte Erstellung von Artikeln

    Guten Tag,

    über eine API möchte ich auf die Lagerverwaltung eines Web-Servers zugreifen, Artikel anlegen und verwalten und sowas...

    Löschen klappt, ändern klappt, anlegen klappt auch.
    Nur, wenn ich einen Artikel anlege, wird dieser doppelt generiert. Die haben zwar unterschiedliche IDs (ok, klar) aber sonst sind sie identisch.

    Nun, warum ist das so? (bei diesem Satz denke ich an Abenteuer Forschung)

    $item = array("item_inventory" => array(*),"item_header" => array(*));

    *ganz viele Artikeldaten (Schlüssel -> Werte)

    $return = $proxy->additem(Zugangsdaten, $item); //ausführende Zeile

    Der Call AddItem erwartet hinten also "Item", "Item" ist unterteilt in "Item_Inventory" und "Item_Header". Die beiden sind Arrays (und ich weiß nicht ich glaube "Item" eigentlich auch...?)

    Wenn das so durchläuft wird ein Artikel doppelt erstellt.
    (Aber wenigstens wird schon mal was erstellt...)

    Jetzt weiß ich dass...
    $item = array("item_inventory" => array(*),"item_header" => array(*));
    ...ein mehrdimensionales Array ist. Ist das vielleicht falsch? Warum erzeugt der 2 Datensätze?

    Hat jemand einen Keks für mich?

    (Ich bin der Blaue...)
    Last edited by olli k.; 08-02-2006, 09:09.

  • #2
    Ergänzung

    Es handelt sich um die API von AuctionWeb.
    Hier findest du die Doku:

    http://api.auctionweb.info/docu/

    Dort möchte ich Artikel erstellen, was ja auch klappt. Aber leider doppelt!
    Hier ist mal der komplette Code:

    <!doctype html public "-//W3C//DTD HTML 4.0//EN">
    <html>
    <head>
    <title>Untitled web-page</title>
    </head>
    <body>

    <?php require_once "nusoap.php"; // NuSoap-Klasse importieren
    $soapclient = new soapclient('http://api.auctionweb.info/soap.php?wsdl', true); // WSDL-Dokument importieren lassen
    $proxy = $soapclient->getProxy();

    $item = array(

    'item_header' => array(

    'item_id' => "",
    'itmnr' => "",
    'aktiv' => 0,
    'artikel' => "Testartikel", //z.B.
    'hersteller' => "",
    'bezeichnung' => "",
    'zufallsartikel' => "",
    'beschreibung' => "",
    'preis' => 0,
    'versand' => 0,
    'currency' => "",
    'homepage' => "",
    'grafiklink' => "",
    'user_gat' => "",
    'user_def1' => "",
    'user_def2' => "",
    'user_def3' => "",
    'user_def4' => "",
    'user_def5' => "",
    'wawi_001' => "",
    'wawi_002' => "",
    'wawi_003' => "",
    'usepay' => "N",
    'payment' => "",
    'versions' => "",
    'shop_item' => "N",
    'shop_item_title' => "",
    'shop_item_desc' => "",
    'shop_prod_name' => "",
    'shop_prod_url' => "",
    'shop_pic_url' => "",
    'shop_price' => 0,
    'shop_sale' => 0,
    'shop_cat' => "",
    'pcode' => "",
    'pcode_type' => "ean",
    'stock_id' => 0,
    'template_id' => 0,
    'last_change' => "" ),

    'item_inventory' => array(

    'item_softmin' => 0,
    'item_hardmin' => 0,
    'item_reserved' => 0,
    'item_defect' => 0,
    'item_listed' => 0,
    'item_ended' => 0,
    'item_confirmed' => 0,
    'item_waiting' => 0,
    'item_ready' => 0,
    'item_shipped' => 0,
    'lister_ignore' => 0,
    'shop_ignore' => "N",
    'acc_ignore' => 0,
    'inventory_active' => 0,
    'free_quantity' => 0));


    $return = $proxy->additem(/*Zugangsdaten*/, $item);

    print_r($return);


    if( $return['result'] = true ) {
    // Weitere Verarbeitung


    } else { // Wenn ein Fehler aufgetreten ist, die Fehlermeldung zum Fehlercode abfragen.
    $error = $proxy->getErrorString(/*Zugangsdaten*/, $return['error_code'], de );
    echo "Fehler: " . $error['error_string'];
    } ?>

    </body>
    </html>


    Das ist dann die Ausgabe:
    Array ( [result] => 1 [error_code] => 0 [item_id] => AP1503980 )
    Es wurde also der Artikel mit der ID AP1503980 und dem Namen Testartikel erstellt.
    Problem: in meinem Lager befindet sich jetzt auch der Artikel mit der ID AP1503979!
    Und vom Inhalt her sind sie völlig identisch.

    Ich bin für jede Hilfe dankbar!

    Comment

    Working...
    X