Xtc2oxid jetzt mit Import der Bestellungen!

[QUOTE=ladykiller;19308]Version 3.0.3… ist schon etwas alt. sollte jetzt umgestellt werden auf oxid.[/QUOTE]
Dann fehlen wohl noch mehr Felder in der Datenbank…

Hi,

pragmatischer Ansatz: XTC 3.03 Updates der Datenbank auf die aktuellste Version durchführen und dann die Migration starten…

Moin,

vielen Dank für dieses Klasse Import Tool!

Leider klappt bei mir der Kunden und Bestell Import nicht. Bei den Artikeln musste ich in der Functions Datei 2 Abfragen rausnehmen (produtcs_keyweords und products_ean), gibt es in meiner Datenbank nicht.

Bei den Kundendaten wird die fehlende Variable c.customers.status angemeckert. Beim Import der Bestellungen kommt Fehler in Zeile 161 (osc2oxid.php).

Den Import der Bestellungen habe ich auskommentiert.

Bin am überlegen vom OSCommerce umzusteigen. Heute Abend auf meinem Testsystem installiert. Und der erste Eindruck ist schon mal ganz gut.

Die Bestellungen wären nicht so wichtig. Schön wäre eine Übernahme der Kundendaten.

Wie könnte ich die Variable in der functions Datei umbennen? Damit die Kunden doch noch importiert werden?

Danke + Gruß
Christian

Am einfachsten wäre es m.E., wenn Du einfach in der DB die fehlenden Felder anlegst…

Beim Import der Bestellungen kommt Fehler in Zeile 161 (osc2oxid.php).

Welcher Fehler?

Danke, das werde ich probieren.

Fehlermeldung:
Fatal error: Call to undefined method ImportHandler::importOrders() in /modules/import2/osc2oxid.php on line 161

Ups, alle meine Kunden sind in der Rechte Gruppe Admin drin :eek: Wahrscheinlich durch den fehlenden Customer Status?

Gibt es da vielleicht einen SQL Befehl, um alle auf einmal in die Kunden Gruppe zu verschieben?

[QUOTE=Locutus;22488]Ups, alle meine Kunden sind in der Rechte Gruppe Admin drin :eek: Wahrscheinlich durch den fehlenden Customer Status?

Gibt es da vielleicht einen SQL Befehl, um alle auf einmal in die Kunden Gruppe zu verschieben?[/QUOTE]
Das würde ich vor dem Import in der Quelldatenbank machen…

UPDATE customers SET customers_status=1;
UPDATE customers SET customers_status=0 WHERE customers_id=1;

Damit werden alle zu Kunden, außer dem Haupt-Admin…

Was hast Du für eine Quelldatenbank-Version, dass das Feld “customers_status” fehlt?

Momentan setze ich noch OSCommerce ein. Müsste die M2.2 sein, mit manuellen Updates auf die RC2. Habe aber nicht alle Updates eingepflegt.

Es fehlen auch:
customers_cid
customers_date_added
customers_vat_id

[QUOTE=Locutus;22537]Momentan setze ich noch OSCommerce ein. Müsste die M2.2 sein, mit manuellen Updates auf die RC2. Habe aber nicht alle Updates eingepflegt.

Es fehlen auch:
customers_cid
customers_date_added
customers_vat_id[/QUOTE]
Die solltest Du dann auch in die Quelldatenbank einbauen…

Und mit ein paar SQL-Befehlen “veredeln”:

[B]Update customers SET customers_cid=customer_cid+17777; [/B]

Damit wird die Kundennummer auf den internen Zähler + irgendeinen Wert (hier 17777) gesetzt, damit der nicht bei “1” anfängt…

[B]Update customers SET customers_date_added[/B][B]=now()[/B]

Damit wird das Kunden-Aufnahmedatum auf den aktuelle Wert gesetzt.

Hallo,

vielen Dank für das Tool! In der Firma hat es wunderbar funktioniert. Bei einem bekannten habe ich allerdings andere Bedingungen und dementsprechend Fehler.
Leider kenne ich mich nicht weiter mit PHP aus, somit werde ich wohl keine debugging betreiben - aber hier zur Info:

Quellshop: osc, v2.2 RC1
Zielshop: oxid, 4.2.0

SETTING LANGUAGES
Done.

IMPORTING CUSTOMERS
importCustomers -- Unknown column 'c.customers_status' in 'field list'
Done.

IMPORTING MANUFACTURERS
Done.

IMPORTING CATEGORIES
Get categories..
Unknown column 'categories_status' in 'field list'
Rebuilding category tree..
Done.

IMPORTING PRODUCTS
Get Products..
importProducts 1 -- Unknown column 'products_keywords' in 'field list'
Get Relations..
Get Reviews..
Handle variants(options)..
Extended info..
Done.

IMPORTING ORDERS


Fatal error:  Call to undefined method ImportHandler::importOrders() in /***/***/***/***/osc2oxid.php on line 161

Da aus den vorherigen Posts hervorging, dass die DB nicht komplett ist, habe ich in der Import Tabelle, alle DB Skripts aus dem Update 2.2 RC1 -> RC2 ausgeführt.
Leider ohne Besserung.

Für welche OSC Version ist das Import Script geeignet?

[QUOTE=EggSupport;22870]Hallo,

vielen Dank für das Tool! In der Firma hat es wunderbar funktioniert. Bei einem bekannten habe ich allerdings andere Bedingungen und dementsprechend Fehler.
Leider kenne ich mich nicht weiter mit PHP aus, somit werde ich wohl keine debugging betreiben - aber hier zur Info:

Quellshop: osc, v2.2 RC1
Zielshop: oxid, 4.2.0

SETTING LANGUAGES
Done.

IMPORTING CUSTOMERS
importCustomers -- Unknown column 'c.customers_status' in 'field list'
Done.

IMPORTING MANUFACTURERS
Done.

IMPORTING CATEGORIES
Get categories..
Unknown column 'categories_status' in 'field list'
Rebuilding category tree..
Done.

IMPORTING PRODUCTS
Get Products..
importProducts 1 -- Unknown column 'products_keywords' in 'field list'
Get Relations..
Get Reviews..
Handle variants(options)..
Extended info..
Done.

IMPORTING ORDERS


Fatal error:  Call to undefined method ImportHandler::importOrders() in /***/***/***/***/osc2oxid.php on line 161

[/QUOTE]
Also, um osc habe ich mich bei der Umsetzung, mangels Bedarf, nicht weiter spezifisch gekümmert…

Aber ich denke, wir werden folgendes machen:

Ich stelle ein Datei mit SQL.Befehlen zusammen, mit der man vor dem Export in der osc-Datenbank die fehlenden Felder anlegt… (Wobei ich mich schon frage, wie osc ohne diese Felder auskommt…)

Vermutlich müssen wir das in mehreren Schritten machen, weil der Import beim ersten Fehler abbricht, und nicht weiter auf Vollständigkeit prüft…

Fatal error: Call to undefined method ImportHandler::importOrders() in /////osc2oxid.php on line 161
Das ist allerdings eine merkwürdige Fehlermeldung, weil “importOrders” vorhanden ist…

Verwende auch für osc “xtc2oxid.php”…

Hier also der erste Schwung von SQL-Befehlen, um fehlende Felder in die osc-Datenbank einzutragen:
(Kann man auch für ältere xtc-Versionen verwenden…)

ALTER TABLE `customers` ADD `customers_status` TINYINT( 1 ) NOT NULL;
ALTER TABLE `customers` ADD `customers_date_added` DATETIME NOT NULL;
ALTER TABLE `categories` ADD `categories_status` TINYINT( 1 ) NOT NULL;
ALTER TABLE `products_description` ADD `products_keywords` VARCHAR(255) NOT NULL;

Wenn gemeldet wird, dass ein Feld schon vorhanden ist, einfach den entsprechenden SQL-Befehl weg lassen.

Wenn beim Import weitere fehlende Felder moniert werden, bitte die Meldungen hier posten…

Moin!
Werde direkt heute Abend an die Arbeit gehen. Vielen Dank für die Hilfe. Feedback kommt.

ALTER TABLE categories ADD categories_status TINYINT( 1 ) NOT NULL;
ALTER TABLE products_description ADD products_keywords VARCHAR(255) NOT NULL;

konnte ich noch erfolgreich verarbeiten.

So eine neuer Fehlerrequest

SETTING LANGUAGES
Done.

IMPORTING CUSTOMERS
importCustomers -- Unknown column 'c.customers_cid' in 'field list'
Done.

IMPORTING MANUFACTURERS
Done.

IMPORTING CATEGORIES
Get categories..

Rebuilding category tree..
Done.

IMPORTING PRODUCTS
Get Products..
importProducts 1 -- Unknown column 'products_ean' in 'field list'
Get Relations..
Get Reviews..
Handle variants(options)..
Extended info..
Done.

IMPORTING ORDERS


Fatal error:  Call to undefined method ImportHandler::importOrders() in /***/***/***/***/xtc2oxid.php on line 161

Hier die aktualisierte SQL-Datei:

ALTER TABLE `customers` ADD `customers_status` TINYINT( 1 ) NOT NULL;
UPDATE `customers` SET customers_status=1 WHERE customers_id<>1;

ALTER TABLE `customers` ADD `customers_date_added` DATETIME NOT NULL;
UPDATE `customers` SET customers_date_added=now();

ALTER TABLE `customers` ADD `customers_cid` VARCHAR(32) NOT NULL;
UPDATE `customers` SET customers_cid=customers_id+12345;

ALTER TABLE `categories` ADD `categories_status` TINYINT( 1 ) NOT NULL;
UPDATE `categories` SET categories_status=1 WHERE categories_status=NULL;

ALTER TABLE `products` ADD `products_ean` VARCHAR(128) NOT NULL;

ALTER TABLE `products_description` ADD `products_keywords` VARCHAR(255) NOT NULL;

[B]Anmerkung [/B]zu “UPDATE customers SET customers_cid=customers_id+12345;”

Hier wird die fehlende Kundennummer aus der [B]internen Datenbank-ID[/B] abgeleitet und der Wert “12345” dazu addiert, um zu vermeiden, dass die Kunden-Nummer bei “[B]1[/B]” anfängt.

Man kann durch “12345” also bestimmen, bei welchem Wert die Kundennummern beginnen…

Zu dem Fehler
[B]“Fatal error: Call to undefined method ImportHandler::importOrders()”[/B]

Setze mal “$blIsXtc=true;” in der config…

Halli Hallo,

ich würde mich nun gerne einmal in die Diskussion einklinken!
Ich habe einen komplett Import vorgenommen, es hat auch alles geklappt. Nur leider wurde auf die Bruttopreise aus dem Shop nochmals 19% aufgeschlagen! Weiss zufällig jemand wie ich das am einfachsten ändern kann?

Wahrscheinlich wieder nur ein ganz banaler Fehler, ich sage aber schonmal Danke!

Gruß
Fabian

Ps.: Mir ist gerade aufgefallen, das er keine 19% sondern fast 50% aufschlägt!

[QUOTE=avenger;15508]Habe mir das mal im Code angesehen…

Mit folgendem SQL wird prüft OXID bei der Passwort-Funktion, ob die eMail-Adresse im System bekannt ist:

select oxid from oxuser where oxuser.oxactive = 1 and oxuser.oxusername = '[email protected]' and oxuser.oxpassword != '' order by oxshopid = 'oxbaseshop' desc

Da kein Passwort importiert wird, wird die eMail-Adresse wegen der Bedingung "oxuser.oxpassword != ‘’ nicht gefunden, da kein Passwort vorhanden ist…

D.h., beim Import der Kundendaten muss irgendwas in das Feld “oxpassword” geschrieben werden…

Habe den Importer entsprechend angepasst…[/QUOTE]

Halli Hallo,

meine Preise sind inzwischen richtig, aber leider wird von jeder Bestellung nur der erste Artikel aufgelistet (Gesamtpreis stimmt aber) und obwohl “hat ein Passwort” mit Ja gekennzeichnet ist funktioniert die Anforderung eines neuen Passworts nicht!

“E-Mail Adresse ungültig” obwohl die Mail Adressen alle richtig in der DB stehen!

Hallo,
habe neues Feedback:


SETTING LANGUAGES
Done.

IMPORTING CUSTOMERS
importCustomers -- Unknown column 'c.customers_vat_id' in 'field list'
Done.

IMPORTING MANUFACTURERS
Done.

IMPORTING CATEGORIES
Get categories..

Rebuilding category tree..
Done.

IMPORTING PRODUCTS
Get Products..
Get Relations..
Get Reviews..
Handle variants(options)..
Extended info..
importOrders 1 -- Table 'bpsql1.newsletter_recipients' doesn't exist
Done.

IMPORTING ORDERS
importOrders 1 -- Unknown column 'customers_cid' in 'field list'
importOrders 2 -- Unknown column 'allow_tax' in 'field list'
Done.

COPYING IMAGES
Handle manufacturer icons..
Handle category icons..
Handle product images..
Done.

IMPORT DONE!

Ich habe $blIsXtc = true; gesetzt und dann war der Fehler weg. Leider gibt es mit dem Kundenimport weiterhin Probleme. Und die Produktbilder wollten auch noch nicht mit…
mein Ehrgeiz ist allerdings geweckt, werde mir die Tage mal einen Abend Zeit nehmen!

Viele Grüße

[QUOTE=EggSupport;23373]Hallo,
habe neues Feedback:


SETTING LANGUAGES
Done.

IMPORTING CUSTOMERS
importCustomers -- Unknown column 'c.customers_vat_id' in 'field list'
Done.

IMPORTING MANUFACTURERS
Done.

IMPORTING CATEGORIES
Get categories..

Rebuilding category tree..
Done.

IMPORTING PRODUCTS
Get Products..
Get Relations..
Get Reviews..
Handle variants(options)..
Extended info..
importOrders 1 -- Table 'bpsql1.newsletter_recipients' doesn't exist
Done.

IMPORTING ORDERS
importOrders 1 -- Unknown column 'customers_cid' in 'field list'
importOrders 2 -- Unknown column 'allow_tax' in 'field list'
Done.

COPYING IMAGES
Handle manufacturer icons..
Handle category icons..
Handle product images..
Done.

IMPORT DONE!

Ich habe $blIsXtc = true; gesetzt und dann war der Fehler weg. Leider gibt es mit dem Kundenimport weiterhin Probleme. Und die Produktbilder wollten auch noch nicht mit…
mein Ehrgeiz ist allerdings geweckt, werde mir die Tage mal einen Abend Zeit nehmen!

Viele Grüße[/QUOTE]

Also der Bildimport hat bei mir wunderbar geklappt! Kunden gingen auch, wie gesagt bis auf das Passwort!

Ich hatte das letzte Script von Avenger genutzt…

Gruß

Die aktualisierte SQL-Datei:

ALTER TABLE `customers` ADD `customers_status` TINYINT( 1 ) NOT NULL;
UPDATE `customers` SET customers_status=1 WHERE customers_id<>1

ALTER TABLE `customers` ADD `customers_date_added` DATETIME NOT NULL;
UPDATE `customers` SET customers_date_added=now();

ALTER TABLE `customers` ADD `customers_vat_id` VARCHAR(20) NOT NULL;

ALTER TABLE `customers` ADD `customers_vat_id_status` TINYINT( 2 )  NOT NULL;

ALTER TABLE `customers` ADD `customers_cid` VARCHAR(32) NOT NULL;
UPDATE `customers` SET customers_cid=customers_id+12345;

ALTER TABLE `categories` ADD `categories_status` TINYINT( 1 ) NOT NULL;
UPDATE `categories` SET categories_status=1 WHERE categories_status=NULL;

ALTER TABLE `orders` ADD `customers_cid` VARCHAR(32) NOT NULL;
ALTER TABLE `orders` ADD `customers_vat_id` VARCHAR(20) NOT NULL;

ALTER TABLE `orders_products` ADD `allow_tax` TINYINT( 1 ) NOT NULL;

ALTER TABLE `products` ADD `products_ean` VARCHAR(128) NOT NULL;

ALTER TABLE `products_description` ADD `products_keywords` VARCHAR(255) NOT NULL;

CREATE TABLE IF NOT EXISTS `newsletter_recipients` (
  `mail_id` int(11) NOT NULL auto_increment,
  `customers_email_address` varchar(96) NOT NULL default '',
  `customers_id` int(11) NOT NULL default '0',
  `customers_status` int(5) NOT NULL default '0',
  `customers_firstname` varchar(32) NOT NULL default '',
  `customers_lastname` varchar(32) NOT NULL default '',
  `mail_status` int(1) NOT NULL default '0',
  `mail_key` varchar(32) NOT NULL default '',
  `date_added` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`mail_id`)
);