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 § Keine Kommentare

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 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 «

Magento Optionstitel übersetzen (Workaround)

18. Dezember 2008 § 7 Kommentare

Wenn man einen mehrsprachigen Magento-Shop umsetzt, kommt man früher oder später in die Verlegenheit, die Titel der auswählbaren Attribute bei einem Artikel übersetzen zu müssen. Leider gibt es an der Stelle einen Bug bzw. eine fehlende Funktion, so daß die Bezeichnungen nur in einer Sprache angegeben werden können. Abhilfe schafft ein kleiner Kniff an der richtigen Stelle.

» Rest des Artikels lesen «

Magento Steuersätze für Europa

29. September 2008 § 6 Kommentare

Da ich es oft brauche, und es sicher auch anderen weiterhilft, hier eine (lange) SQL-Query, die sämtliche Steuersätze für die europäische Union in einem frischen Magento Shop anlegt. Für jedes Mitgliedsland jeweils 7 und 19 Prozent.

» Rest des Artikels lesen «