Magento Fehler im Checkout nach Integration der Anrede bei Adressen

19. August 2011 § Ein Kommentar

Heute hat mich ein Fehler in einem Magento Shop (1.4.2.1) im Checkout auf Trab gehalten:

PHP Fatal error:  Call to a member function setAttribute() on a non-object in /app/code/core/Mage/Customer/Model/Attribute/Data.php
Nach einiger Recherche im Magento Forum stieß ich auf diesen Thread, der dann auch die Lösung enthielt.

Bei der Market Ready Germany Extension wird das Payone-Modul mit installiert, und dort fehlen einfach die Input-Datentypen für drei Werte, inklusive dem “Präfix”, was meinen aktuellen Shop dann auch zum Absturz brachte nachdem ich es aktiviert hatte. Abhilfe schafft eine kleine Query, die diese Werte korrekt setzt. Das aktuellste MRG (2.1.3) enthält diesen Fehler übrigens immer noch…

UPDATE eav_attribute SET frontend_input = 'date' WHERE attribute_code = 'customer_address_payone_credit_rating_date';
UPDATE eav_attribute SET frontend_input = 'text' WHERE attribute_code = 'customer_address_payone_credit_rating_score';
UPDATE eav_attribute SET frontend_input = 'text' WHERE attribute_code = 'customer_address_payone_credit_rating_secscore';

Ich hoffe es hilft jemandem die Suchzeit zu verkürzen ;)

Magento Testbestellungen löschen

19. August 2011 § Keine Kommentare

Nach der Installation und Konfiguration eines Magento Shops möchte man natürlich “jungfräulich” anfangen Bestellungen zu empfangen. Es gibt dafür inzwischen eine Extension, aber ich mache es lieber “per Hand” via SQL Query, getestet unter Magento 1.4.2.x. ACHTUNG: Dadurch werden sämtliche Katalogsuchvorgänge, Bestellungen, Tags, Wunschlisten und “Send to Friend” Einträge unwiderruflich gelöscht. Auf jeden Fall ein aktuelles Backup der Datenabank machen vor dem Ausführen!

-- Reset Magento TEST Data
SET FOREIGN_KEY_CHECKS=0;
-- reset dashboard search queries
TRUNCATE `catalogsearch_query`;
ALTER TABLE `catalogsearch_query` AUTO_INCREMENT=1;
-- reset sales order info
TRUNCATE `sales_flat_creditmemo`;
TRUNCATE `sales_flat_creditmemo_comment`;
TRUNCATE `sales_flat_creditmemo_grid`;
TRUNCATE `sales_flat_creditmemo_item`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_comment`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;
TRUNCATE `sales_flat_order`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_order_status_history`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_quote_payment`;
TRUNCATE `sales_flat_quote_shipping_rate`;
TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_comment`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_track`;
TRUNCATE `sales_invoiced_aggregated`;
TRUNCATE `sales_invoiced_aggregated_order`;
TRUNCATE `sales_order_aggregated_created`;
TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;
ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_aggregated_created` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;

Gefunden im Magento Forum

Magentos deutsche Bruttopreise auch in der Schweiz mit Schweizer Mehrwertsteuer verwenden

11. August 2011 § Keine Kommentare

Bei einem aktuellen Projekt gab es die Anforderung, die identischen Produkte mit gleichen Bruttopreisen wie für Deutschland eingestellt auch in der Schweiz zu verkaufen. Allerdings sollten hier natürlich die 8% für die Schweiz eingerechnet werden.

» Rest des Artikels lesen «

Magento erweitertes Exportprofil mit Herstellerfilter

30. Juni 2011 § Ein Kommentar

Über Magentos ‘Dataflow’ lässt sich eine Menge realisieren. Unter anderem natürlich der Im- und Export von Produktdaten um z.B. Preise zu pflegen. Leider sind die Standard-Filtermöglichkeiten nicht gerade berauschend. Will man z.B. alle Produkte eines Herstellers haben, so gibt es dazu bisher keine Möglichkeit. Ich zeige Ihnen hier wie das geht.

» Rest des Artikels lesen «

Google Conversiontracking in Magento einbinden

23. Juni 2011 § Ein Kommentar

Viele Shopbetreiber nutzen Google Analytics zusammen mit Adwords. Und da jeder gern wissen möchte, welche Keywords welchen Umsatz bringen, ist das Conversiontracking unerlässlich. Leider ist das bei Magento gar nicht so einfach einzubinden für den unbedarften Shopeigner. Ich zeige Ihnen daher kurz wie das geht. Diese Anleitung ist für Magento 1.4.x geschrieben worden, sollte aber auch in 1.5.x und 1.6.x funktionieren.

» Rest des Artikels lesen «

Magento mit GMail oder externem SMTP betreiben

21. April 2011 § 2 Kommentare

Nach längerer Suche habe ich eine Extension gefunden die es ermöglicht, Magento mit externem SMTP-Server mit unterschiedlichen Authentifizierungsmethoden, Einstellungen oder sogar via GMail zu betreiben:

ASchroder SMTPPro

Magento DB duplizieren

15. April 2011 § Keine Kommentare

Eine Magento Datenbank lässt sich recht leicht mit PHPMyAdmin oder via Bash kopieren. Danach kann es allerdings zu folgendem Fehler kommen:

Recoverable Error: Argument 1 passed to Mage_Core_Model_Store_Group::setWebsite() must be an instance of Mage_Core_Model_Website, null given

Offensichtlich mag MySQL/PHPMyadmin keine Nullen im auto_increment, denn die Lösung war folgende Query:

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Damit werden die ursprünglich mit ID 0 angelegten Einträge wieder zurückgesetzt. Beim Kopieren bekommen sie hingegen ID 1 oder 2. Die Lösung war hier zu finden.

Magento Module und Hacks

05. März 2011 § 11 Kommentare

Ich nutze so gut wie immer modman für meine eigenen und fremde Module. Dadurch kann ich Änderungen schnell einspielen und bei Bedarf auf eine alte Version zurückspringen. Alles was hier zu finden ist hat daher eine “modman” Datei mit an Bord und kann direkt ausgecheckt werden. » Rest des Artikels lesen «

Magento Snippets

22. Februar 2011 § Keine Kommentare

Da bei der Magento-Entwicklung immer wiederkehrende Hürden und Fragen auftauchen, habe ich in diesem Artikel meine wichtigsten Snippets zusammengetragen. Der Beitrag wird ständig erweitert. » Rest des Artikels lesen «

Meet Magento und positive Resonanzen

11. Februar 2009 § Keine Kommentare

Tja, Meet Magento ist vorbei, und ich habe es verpasst… im nachhinein schon ärgerlich, wenn man nicht die Zeit dafür findet. Dafür berichten andere sehr euphorisch und auch zynisch von dem Event, es muß also hoch her gegangen sein.

» Rest des Artikels lesen «