ShopNix

Tagebuch eines Shops auf Basis von osCommerce

Eclipse PHP, seltsamer Fehler beim Debug

Hinterlasse einen Kommentar »

Einen äußerst seltsamen Fehler hatte ich heute beim debuggen eines Scripts mit Eclipse.

Unten rechts blieb die Meldung „launching debug“ bei 57% stehen. Das Ergebnis einer llS-Session war: Ich hatte einen Kommentar mit „/*“ eröffnet, aber nicht abgeschlossen.

Sachen gibts, die gibts gar nicht.

Achso: llS = lausig lange Sucherei.

Geschrieben von spessart

1. Dezember 2011 um 16:10

Veröffentlicht in Allgemein, Eclipse

Artikel Import aus xtCommerce und CAO nach OpenERP

Hinterlasse einen Kommentar »

Ein Kunde will von seinem alten Warenwirtschaftssystem CAO auf OpenERP umsteigen. Natürlich will er seine Artikel nicht noch einmal von Hand eintupfen.

Dabei stellt sich das Problem, daß er nur die aktiven Artikel aus dem Shop übernehmen will, wesentliche Daten jedoch nur in CAO vorhanden sind.

Deshalb werde ich die Artikel aus dem Shop holen und nach OpenERP importieren. Anschließend schiebe ich einzelne Attribute aus CAO nach.

Die Kunden sollen komplett aus CAO WaWi übernommen werden.

Direkt in die Datenbank von OpenERP zu schreiben ist zwar möglich, aber es bietet sich an, die XML-RPC-Schnittstelle des ERP-Systems zu nutzen. Damit soll sichergestellt werden, daß alle notwendigen Referenzen und Abhängigkeiten erfüllt werden.

Grundlage ist das Beispiel aus der Dokumentation.

Die Methode funktioniert an sich sehr gut. Die Ermittlung der erforderlichen Attribute kann über den Debug-Modus des OpenERP-Clients erfolgen. Dazu wird der Client im Terminal mit dem entsprechenden Parameter gestartet und die Ausgabe auf eine Datei umgeleitet.
./openerp-client.py -l debug_rpc &> ~/debug_rpc.txt

Ein Problem, das ich nicht lösen konnte: Der Primärschlüssel wird ignoriert. Im Allgemeinen ist das nicht kritisch, lediglich für den Kategoriebaum kann ich die Daten nicht übernehmen.

Sollte irgendjemand in der großen weiten Welt eine Lösung haben, möge er die Kommentarfunktion nutzen!

Geschrieben von spessart

27. August 2011 um 09:09

Eclipse auf Debian (squeeze)

Hinterlasse einen Kommentar »

Die intergrierte Entwicklungsumgebung (IDE) Eclipse lässt zwar kaum einen Wunsch offen, Installation und Einrichtung sind allerdings nicht ganz profan.

Debians reguläre JRE (Java Runtime Environment) kommt schon mal nicht damit zurecht. Es ist also notwendig, die JRE von Sun zu installieren. Der einfachste Weg führt über Debians Paketmanagement, wobei zunächst die non-free-Pakete in /etc/apt/sources.list zu aktivieren sind.

Beispiel:
deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

Anschließend ist mit aptitude install sun-java6-jre das Paket schnell installiert.

Geschrieben von spessart

27. August 2011 um 08:52

Veröffentlicht in Allgemein

epay, ein Zahlungsverfahren im eBusiness

Hinterlasse einen Kommentar »

Die transact Elektronische Zahlungssysteme GmbH ist ein innovativer und unabhängiger Dienstleister für die Abwicklung bargeldloser Zahlungen mit ec-Karte, Geldkarte sowie Kreditkarten.

Mit transact SecurePay steht ein Formular zur Verfügung, das über ein <iframe> in eine bestehende Applikation eingebunden werden kann.

Der Ablauf ist dem Verfahren bei PayPal ähnlich, durch die Einbindung des <iframe> wird der Übergang vom Shop zu einem externen Dienstleister nicht so drastisch in Erinnerung gebracht, der ganze Ablauf wirkt homogener.

Ein Zahlungsmodul für xtcModified ist verfügbar, das mit kleinen Änderungen auch auf osCommerce und xtCommerce läuft. Anfragen bitte per Kommentarfunktion.

Geschrieben von spessart

22. August 2011 um 20:34

OpenERP auf Debian

mit 2 Kommentaren

Den Server als Debianpaket herunterladen und mit dpkg -i <Datei> installieren. Das Paket zieht benötigte Pakete leider nicht nach, gibt aber immerhin Meldungen zu nicht erfüllten Abhängigkeiten aus.

Im Folgenden habe ich die Pakete gelistet, die ich nachinstallieren mußte:

postgresql postgresql-client python-dateutil python-libxslt1 python-lxml python-psycopg2 python-pydot python-pychart python-reportlab python-tz python-pyparsing python-yaml python-mako

Wegen Laufzeitfehlern in Abhängigkeit von den installierten Modulen innerhalb des OpenERP-Servers installierte ich nach:

python-egenix-mxdatetime python-vobject

Das Debian-Paket installiert den Server nach /usr/share/pyshared/openerp-server. Locate liefert mir nach der Installation weitere Verzeichnisse mit dem Begriff openerp:
/var/lib/openerp-server
/var/log/openerp-server.log
/var/run/openerp-server.pid
/usr/share/python-support/openerp-server.public
/usr/lib/pymodules/python2.6/openerp-server/

und natürlich die StartUp-Scripts sowie die Konfigurationsdatei:
/etc/init.d/openerp-server
/etc/openerp-server.conf
/etc/rc0.d/K01openerp-server
/etc/rc1.d/K01openerp-server
/etc/rc2.d/S02openerp-server
/etc/rc3.d/S02openerp-server
/etc/rc4.d/S02openerp-server
/etc/rc5.d/S02openerp-server
/etc/rc6.d/K01openerp-server

Für den Client brauchen wir:

aptitude install python-gtk2 python-glade2 python-matplotlib python-egenix-mxdatetime python-lxml python-tz python-hippocanvas python-pydot

Geschrieben von spessart

22. August 2011 um 20:29

Veröffentlicht in Allgemein, Installation, OpenERP

Konsistenzprüfungen per SQL

Hinterlasse einen Kommentar »

Beispiel: Kategorien zu Kategorie-Bezeichnung:

select categories_id from categories_description where not exists (select * from categories where categories_description.categories_id = categories.categories_id );

bzw. umgekehrt:

select categories_id from categories where not exists (select * from categories_description where categories_description.categories_id = categories.categories_id );

Angleichen durch Einfügen leerer Datensätze in die Bezeichungen, wobei 2 für die deutsche Sprache steht:

insert ignore into categories_description (categories_id, language_id) select categories_id, 2 as language_id from categories;

Geschrieben von spessart

25. Juli 2011 um 22:24

Veröffentlicht in Allgemein, SQL

xtcModified, css für Suchmaschinen optimieren

Hinterlasse einen Kommentar »

Warum sollte man ein Stylesheet für die Suchmaschine optimieren?

Ganz einfach: Weiße Schrift auf weißen Grund war ein beliebter Trick, um Links für Suchmaschinen zu hinterlegen ohne sie sichbar werden zu lassen. Aber auch die Betreiber von Suchmaschinen sind nicht doof und bewerten derartige Tricks negativ.

Nun sind derartige Tricks im Standard-Template von xtcModified sicherlich nicht beabsichtigt, was uns allerdings nicht vor einer Abwertung schützt. Der Validator von Jigsaw bringt solche (und andere) Macken an den Tag:

http://jigsaw.w3.org/css-validator/

URI : http://example.com/templates/xtm5/css/thickbox.css

43 Die gleichen Farben für den Vordergrund und den Hintergrund in den zwei Kontexten .TB_overlayBG und #TB_window a:hover

Geschrieben von spessart

28. Mai 2011 um 20:50

Veröffentlicht in Allgemein, xtcModified

Template für Cross-Sell nach Gruppen

Hinterlasse einen Kommentar »

Ziel der Aktion ist es, Cross-Sell-Artikel zu gruppieren und auf der Produktseite (products_info.php) in Tabs (in Karteireitern) geordnet darzustellen.

Die Gruppierung ist in der Datenbank bereits vorgesehen und die Verwaltung im Backend (Konfiguration -> Cross-Marketing Gruppen) bereits im Standard implementiert. Auf dieser Seite ist also keine Änderung notwendig. Für den Shop existiert bereits ein Template (product_info_tabs_v1.html), das als Ausgangsbasis tauglich scheint und die Anforderungen an das gewünschte Layout erfüllt.

XTC-Modified verwendet wie sein Ursprung XT-Commerce die Smarty-Template-Engine. Daher müssen Änderungen in verschiedenen Bereichen vorgenommen werden.

Zunächst kopierte ich das vorhandene Template product_info_tabs_v1.html nach product_info_tabs_v2.html, kam aber allein über das Template nicht zum gewünschten Ergebnis. Daher ändere ich noch das Modul cross_sell.php im Quellcode. Reverse-Cross-Selling ist noch nicht implementiert.

Download

Noch ein Bildchen vom Ergebnis:

Cross Marketing Gruppen

Screen Shot

Geschrieben von spessart

28. Mai 2011 um 14:06

Veröffentlicht in Allgemein, xtcModified

Produktvarianten per Stückliste

Hinterlasse einen Kommentar »

Hierbei handelt es sich um eine einfache Methode, Produktvarianten mittels Stückliste zu hinterlegen und in dieser Form in den Warenkorb zu transferieren. Dazu benötigen wir eine zusätzliche Tabelle, in die der Hauptartikel, eine laufende Nummer pro Produktvariante, die Stücklistenposition und deren Menge eingepflegt wird. Dies geschieht zumindest vorläufig auf Basis einer Excel-Tabelle, die anschließend in die Tabelle sx_variant der Shop-Datenbank importiert wird.

Das Programm product_info.php erhällt eine kleine Erweiterung, die diese Stückliste ggfls ausliest und in den Warenkorb kopiert.

Beispiel für den Aufruf: http://xxx/product_info.php?products_id=34437&variant=1

Geschrieben von spessart

2. März 2010 um 13:19

Seite wird nicht angezeigt (IE 8)

Hinterlasse einen Kommentar »

Gelegentliche Beschwerden, der Internet Explorer 8 zeige eine leere Seite, scheint durch Erzwingen des Quirks-Modus (auch compatible mode) behoben zu sein. Der erste Versuch, dies per Eintrag in der Datei .htaccess zu erledigen, scheint erfolgreich zu sein. Beispiel:

# ShopNix: force compatibility mode for IE8
<IfModule headers_module>
  Header set X-UA-Compatible: IE=5
</IfModule>
# ShopNix.end

Geschrieben von spessart

27. Februar 2010 um 18:33

Follow

Get every new post delivered to your Inbox.