|
|||
|
Hallo,
ich habe seit einiger Zeit XT am laufen und teste es nun schon seit einigen Monaten ganz erfolgreich, da wir es unter anderem an unsere Warenwirtschaft angebunden haben. Nun haben wir aber ein Problem mit der Länge der Artikelnummern. Diese ist in der Datenbank ja begrenzt auf (int(2147483647)), das haben wir schon geändert und stellt NICHT das Problem dar. Vielmehr macht uns bei diesen langen Artikelnummern das eigentlich System zu schaffen. Wir wissen möglicherweise auch schon woran es liegen könnte. Im Admin Bereich erhalten wir sowie wir einen Artikel mit einer langen Artikelnummer (z.B. 3510110054) bearbeiten wollen folgende Fehlermeldung. Warning: reset(): Passed variable is not an array or object in /srv/www/htdocs/web1/html/tlcc.shop/admin/includes/classes/object_info.php on line 22 Warning: Variable passed to each() is not an array or object in /srv/www/htdocs/web1/html/tlcc.shop/admin/includes/classes/object_info.php on line 23 Das liegt daran das die eigentlich Artikelnummer irgendwo mit (int) "gekürzt" wird. Nun haben wir uns schon auf die Suche gemacht, sind aber leider bisher nicht fündig geworden. Mit var_dump() wurde diese Vermutung auch bestätigt. Auch im Öffentlichen Bereich passiert dies. Klicke ich den Artikel mit der produktnummer 3510110054 an, gibt mir var_dump() die $products_id mit (int(2147483647)) aus. Die Suche im Forum ergab, das wir in der Tabelle "products_model" dies ändern können, diese Tabelle gibt es aber bei uns nicht. Wir benutzen xt:Commerce v3.0.4 SP1. Wäre sehr schön wenn uns jemand helfen kann, wo wir diesen Mißstand abändern können. Ich gehe mal davon aus, das seitens der Entwickler diese Beschränkung nicht gewollt ist. Beste Grüsse |
|
|||
|
Hallo!
Danke erst einmal an @buero-design! Genau das haben wir schon herausbekommen. Ich denke wir sind der Sache auch schon tiefer auf den Grund gekommen. Eventuell kannst auch da schon einen Vorschlag machen bzw. einen Tipp geben. In der products_info.php wird die classe products.php aufgerufen. In genau dieser classe haben wir schon einiges ausprobiert. Jedoch hört nun auch unser technisches Verständnis auf. In dem Object $this steckt die $products_id bereits gekürzt drin. Nun wollten wir das ganze einfach rückwärts verfolgen, ABER wir kommen nicht dahinter wo das Object $this überhaupt herkommt, geschweige denn wo es seine Informationen erhält. Es wäre sehr schön wenn uns hier irgendjemand noch einen weiteren Tipp geben kann. Beste Grüsse |
|
|||
|
DANKE @techway!!!!
Das scheint es auf den ersten Blick tatsächlich zu sein! Erster kleiner Test ist erfolgreich! PHP-Code:
Zu Deiner Frage. Wir haben bisher alles darauf abgestimmt immer auf die $products_id zuzugreifen, wie schon eingehend beschrieben haben wir uns einen Connector geschrieben, mit dem wir einfach per Mausklick die Daten in den Shop transferieren.....per ODBC Verbindung. Das jetzt alles wieder zu ändern währe ein heiden Aufwand. Ich denke mit (float) statt (int) kann man doch leben oder nicht? Vielen, vielen Dank an Dich! Du bist SPITZE! Beste Grüsse |
|
|||
|
Soooo, nachdem wir nun so ziemlich alles ausprobiert und getestet haben gibt es nun doch noch ein Problem. Da wir hier an dieser Stelle auch mal eine Liste posten wollen, wo die ganzen Veränderungen dokumentiert sind und diese auch vollständig sein sollte sind wir nun gehalten dieses eine Problem auch noch in den Griff zu bekommen.
Konkret geht es um folgendes.... - Artikel mit "kleiner Artikelnummer" kann ohne Problem in den Warenkorb gelegt werdem - Artikel mit "großer Artikelnummer" (also größer 2147483647) kann in Verbindung mit einer Option auch in den Warenkorb gelegt werden - Artikel mit "großer Artikelnummer" (also größer 2147483647) kann OHNE Option NICHT in den Warenkorb gelegt werden Selbstverständlich haben wir hier auch schon experimentiert um die Ursache einzukreisen. Wir haben ein weiteren XT Shop aufgesetzt um zu testen ob es möglicherweise an unseren eigenen Modifikation liegt. Jedoch können wir genau dies ausschließen, auch in dem Original XT Shop (also frisch aufgesetzt) ist eine Zugabe eines Artikel mit einer "großen Artikelnummer" OHNE Option nicht möglich. Verschiedene var_dump Ausgaben haben uns hier leider auch nicht weitergebracht. Die Artikelnummer wird nirgends mehr (soweit wir das jetzt verfolgen konnten) "gekürzt". Daran kann es nach unserer Auffassung also nicht mehr liegen. Es muss was mit den Optionen zu tun haben. Wir haben uns dazu auch schon folgende Dateien angesehen.... - shopping_cart.php - cart_actions.php - order_details.php - default.php In all den Dateien können wir nichts finden, und auch die var_dump Ausgaben ließen keine Rückschlüsse zu WO die Ursache für das Problem liegt. Es wäre schön wenn man uns hier noch einen Hinweis geben kann, was genau passiert in dem PHP Code, wenn ich auf den Button "kaufen" clicke. Unserer Meinung wird in der cart_actions.php folgender Code aufgerufen PHP-Code:
Vielen Dank |
|
|||
|
Wir sind noch ein Stück weiter gekommen. Dieser Code hier scheint die Ursache zu sein, bzw. der Verweis auf das Object contents. Artikel die in den Warenkorb gelegt werden verzweigen in die Ausgabe nein, artikel die nicht in den warenkorb gelegt werden können verzweigen in die Ausgabe ja.
Unsere Frage an alle..... - wo finden wir das Object contents - welche funktion hat das objeckt PHP-Code:
Beste Grüsse |
|
||||
|
hi,
contents ist ein array mit den produkten die im warenkorb drin sind! mach doch am besten dies hier: Code:
echo "<pre>"; print_r($_SESSION); echo "</pre>"; d.h. es muss schon beim hinzufügen ein fehler vorkommen, hast du den case 'buy_now' : überprüft (in cart_actions.php) Gruß |
![]() |
| Lesezeichen |
| Stichworte |
| artikelnummer, größer |
| Themen-Optionen | |
| Ansicht | |
|
|