0

Magento Fehler: Invalid backend model specified: catalog/attribute_backend_customlayoutupdate

Posted by admin on 28. Januar 2012 in Magento |

Dieser Fehler kann bei einem Update von 1.4.x auf 1.4.2.x auftreten oder wenn man ein Backup einspielt vor so einem Update.

1. phpMyAdmin öffnen
2. Folgende Anweisung unter SQL eingeben.

SELECT *
FROM `DB_NAME`.`eav_attribute`
WHERE (
`attribute_id` LIKE '%customlayoutupdate%'
OR `entity_type_id` LIKE '%customlayoutupdate%'
OR `attribute_code` LIKE '%customlayoutupdate%'
OR `attribute_model` LIKE '%customlayoutupdate%'
OR `backend_model` LIKE '%customlayoutupdate%'
OR `backend_type` LIKE '%customlayoutupdate%'
OR `backend_table` LIKE '%customlayoutupdate%'
OR `frontend_model` LIKE '%customlayoutupdate%'
OR `frontend_input` LIKE '%customlayoutupdate%'
OR `frontend_label` LIKE '%customlayoutupdate%'
OR `frontend_class` LIKE '%customlayoutupdate%'
OR `source_model` LIKE '%customlayoutupdate%'
OR `is_required` LIKE '%customlayoutupdate%'
OR `is_user_defined` LIKE '%customlayoutupdate%'
OR `default_value` LIKE '%customlayoutupdate%'
OR `is_unique` LIKE '%customlayoutupdate%'
OR `note` LIKE '%customlayoutupdate%'
)

Wichtig! DB_NAME durch den entsprechenden Datenbank Namen austauschen!

Das phpMyAdmin sollte jetzt eine oder mehrere Zeilen ausgeben. Diese können gelöscht werden.

Ich übernehme kein Haftung! Also immer ein Backup vorher noch anlegen!

In meinem Fall war der Shop wieder erreichbar.

0

Magento Optimierung Teil 1 von …

Posted by admin on 9. Dezember 2011 in Magento |

Ich wollte hier mal kurz festhalten was meienr Meinung nach als minimum zum Optimieren von einem Magento Shop notwending ist. Wie der Titel schon sagt… es gibt sehr viele wege zu mehr Performance.

Folgende Dinge sind zu beachten um ein Magento Shop zu Optimieren:

1. Den Magento eigenen Cache einschalten.

Dies können Sie im Admin Panel unter System -> Cache-Verwaltung einschalten.

2. CSS und JavaScript Dateien zusammenführen.

Dies können Sie im Admin Panel unter:
System -> Konfiguration -> Entwickleroptionen -> JavaScript Einstellungen -> JavaScript Dateien verbinden -> Ja

System -> Konfiguration -> Entwickleroptionen -> CSS Einstellungen -> CSS Dateien verbinden (beta) -> Ja

Diese Option kann unter umständen Fehler verursachen. Sollte es Probleme mit der Darstellung geben bitte wieder deaktivieren.

3. Browser Cache Controll aktivieren.

Dies können Sie mit folgenden Optionen in der .htaccess Datei einstellen.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/png A604800
ExpiresByType image/gif A604800
ExpiresByType image/jpg A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/javascript A604800
ExpiresByType application/x-javascript A604800
ExpiresByType text/css A604800
</IfModule>

Weitere Informationen können Sie unter folgenden Link entnehmen: http://httpd.apache.org/docs/2.0/mod/mod_expires.html

4. Inhalte Komprimiert übermitteln.

Diese Option können Sie mit folgenden Einträgen in der .htaccess Datei einstellen.

<IfModule mod_deflate.c>

SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby

<FilesMatch "\.(css|js|xml|html)$">
SetOutputFilter DEFLATE
</FilesMatch>

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|jpg|ico|png|pdf|ipk|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:mpg|mpeg|flv|wmv|wma|ogg|avi|mov|mp3|mp4|swf)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|tar|t?gz|cab|zip|t?bz2|iso|bz2|sit|jar|rar|rm|rpm|deb)$ no-gzip dont-vary

Header append Vary User-Agent env=!dont-vary

</IfModule>

<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>

Weitere Informationen können Sie unter folgenden Link entnehmen: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

5. Subdomains nutzen zum landen von Media, JavaScrip tund Skin Daten.

Um diese Möglichkeit nutzen zu können sind mehrere Einstellungen nötig. Als erstes ist es erforderlich im Kundencenter für die Domain 3 Subdomains einzurichten wie zum Beispiel

media.Ihre-Domain.tld, js.Ihre-Domain.tld und skin.Ihre-Domain.tld. Wenn Sie diese angelegt haben gegen Sie bitte ins Magento Admin Panel unter:

System -> Web -> Ungesichert

Und tragen unter Basis Skin URL folgendes ein: http://skin.Ihre-Domain.tld/skin/
Unter Basis Media URL: http://media.Ihre-Domain.tld/media/
und unter Basis JavaScript URL: http://js.Ihre-Domain.tld/js/

Dies kann man auch unter “sicher” eintragen, wenn ein SSL-Zertifikat benutzt wird, allerdings dann mit https:// anstelle von http://

6. Optimierung des Eigenen Design.

Die Erfahrungen haben gezeigt das in diesem Punkt die meiste Performancesteigerung zu holen ist. In der Regel ist immer zu sagen das jedes Bild, Datei, Skript eben jeder Aufruf Zeit

“kostet”. Aus diesem Grund sollte man immer überlegen ob es zum Beispiel “gut” ist auf der Startseite (diese Seite ist in der Regel die meistbesuchte Seite) 16 Artikel anzuzeigen oder

auch 8 Artikel reichen.

Am besten ist wenn das Design aus einem großen Bild besteht, welches dann zum Beispiel mit css positioniert wird. Viele kleine Bilder “kosten” Verbindungen und Zeit.

Ich hoffe das hilft schon mal um etwas mehr Performance zu haben… Es gibt weitere möglichkeiten ;-)

0

Magento Fehler beim Indexer – SQLSTATE[23000]: Integrity constraint violation: … a foreign key constraint fails

Posted by admin on 4. November 2011 in Magento |

Hatte dies Problem jetzt schon öfters und habe folgende Vorgehensweise genommen.

1. Möglichkeit:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`catalog_category_product_index`, CONSTRAINT FK_CATALOG_CATEGORY_PROD_IDX_CATEGORY_ENTITY` FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`entity_id`)

Es ist also keine passende Kategorie in der Tabelle catalog_category_entity mehr.

Per phpMyAdmin schauen welche das sind:

SELECT cp.category_id
FROM catalog_category_product cp
LEFT JOIN catalog_category_entity c ON cp.category_id = c.entity_id
WHERE ISNULL( c.entity_id );

Diese Ids können dann in der Tabelle catalog_category_product gelöscht werden.

2. Möglichkeit:

Product Flat Data index process unknown error: a foreign key constraint fails (`usr_xxxxx_1`.`#sql-xxxxx`, CONSTRAINT `FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`entity_id`) ON DELETE CA)’

Per phpMyAdmin schauen welche das sind:

SELECT pf1.entity_id
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id );

Diese Einträge das in der Tabelle catalog_product_flat_1 löschen.

Dies könnte auch noch bei den Produkte pasieren:

Per phpMyAdmin schauen welche das sind:

SELECT cp.product_id
FROM `catalog_category_product` cp
LEFT JOIN catalog_product_entity p ON cp.product_id = p.entity_id
WHERE ISNULL( p.entity_id )

Diese dann inder Tabelle catalog_category_product löschen.

Ich hoffe das hilft jemanden bei seinem Problem ;-)

0

Magento Update Fehler – Column date does not exists on table catalog_product_index_website

Posted by admin on 26. Oktober 2011 in Magento |

Error in file: “/html/magento/app/code/core/Mage/Catalog/sql/catalog_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php” – Column “date” does not exists on table “catalog_product_index_website”

Dieser Fehler taucht jetzt schon öfters auf. Ich habe einfach über phpMyAdmin die Spalte angelegt:

Feld: date
typ: date
Null: Ja

Speichern und wenn vorhanden die website_date in zum Beispiel zzz_website_date.

Jetzt sollte es funktionieren.

0

Magento Fehler: Mage registry key “_resource_helper/core” already exists

Posted by admin on 14. September 2011 in Magento |

Das gute an diesen Fehler nach einem Update ist das ein einfaches Löschen den Caches und löschen der Sessions ausreichend ist.

z.B. per SSH:
rm -rf app/code/core/Zend/Cache var/cache/* var/session/*

2

Magento 1.4.x und PayPal Express Checkout Problem

Posted by admin on 6. Mai 2011 in Magento |

Hatte gerade folgendes Problem mit dem PayPal Express Checkout, das immer die Meldung gekommen ist:

Error: Please check shipping address information. Please enter last name.

Leider habe ich dafür nur eine “Dreckige Lösung”. Wer also was besseres hat, kann sich gerne melden.

Folgende Funktion in der Datei app/code/core/Mage/Paypal/Model/Express/Checkout.php ändern:

public function returnFromPaypal($token)
{
    $this->_getApi();
    $this->_api->setToken($token)
        ->callGetExpressCheckoutDetails();

    // import billing address
    $billingAddress = $this->_quote->getBillingAddress();
    $exportedBillingAddress = $this->_api->getExportedBillingAddress();

    // import shipping address
    $exportedShippingAddress = $this->_api->getExportedShippingAddress();
    if (!$this->_quote->getIsVirtual()) {
        $shippingAddress = $this->_quote->getShippingAddress();
        if ($shippingAddress) {
            if ($exportedShippingAddress) {
                foreach ($exportedShippingAddress->getExportedKeys() as $key) {
                    if('firstname' == $key || 'lastname' == $key){
                        continue;
                    } // if
                    $shippingAddress->setDataUsingMethod($key, $exportedShippingAddress->getData($key));
                    $billingAddress->setDataUsingMethod($key, $exportedShippingAddress->getData($key));
                }

                // Correct First- and Lastnames
                list($_firstname, $_lastname) = explode(' ', $exportedShippingAddress->getData('firstname'));

                $shippingAddress->setDataUsingMethod('firstname', $_firstname);
                $billingAddress->setDataUsingMethod('firstname', $_firstname);

                $shippingAddress->setDataUsingMethod('lastname', $_lastname);
                $billingAddress->setDataUsingMethod('lastname', $_lastname);

                $shippingAddress->setCollectShippingRates(true);
            }

            // import shipping method
            $code = '';
            if ($this->_api->getShippingRateCode()) {
                if ($code = $this->_matchShippingMethodCode($shippingAddress, $this->_api->getShippingRateCode())) {
                     // possible bug of double collecting rates :-/
                    $shippingAddress->setShippingMethod($code)->setCollectShippingRates(true);
                }
            }
            $this->_quote->getPayment()->setAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_SHIPPING_METHOD, $code);
        }
    }
    $this->_ignoreAddressValidation();

    // import payment info
    $payment = $this->_quote->getPayment();
    $payment->setMethod($this->_methodType);
    Mage::getSingleton('paypal/info')->importToPayment($this->_api, $payment);
    $payment->setAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_PAYER_ID, $this->_api->getPayerId())
        ->setAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_TOKEN, $token)
    ;
    $this->_quote->collectTotals()->save();
}

Danach nicht vergessen… Cache Löschen! ;-)

0

Magento Update: Zahlungsarten geht nicht mehr

Posted by admin on 26. April 2011 in Magento |

Nach einem Magento Update bleibt im Admin Panel unter Konfiguration die Zahlungsarten “leer” bzw. eine “weiße Seite” wird angezeigt.

Schaltet man die php errors an bekommt man folgendes:

Fatal error: Class 'Varien_Data_Form_Element_Linkpnso' not found in /html/magento/lib/Varien/Data/Form/Abstract.php on line 122

Das Problem ist das Modul “Sofortüberweisung”. Dies einmal neu installiert und schon sollte alle wieder laufen.

1

Magento Upload Neuen Ordner anlegen geht nicht…

Posted by admin on 14. April 2011 in Magento |

Bin gerade auf einen Bug in Magento gestossen der vieleicht immer in der Version 1.5.0.1 vorkommt.

Wenn man unter CMS –> Seiten verwalten –> Neue Seite anlegen –> Inhlat –> Bild Einfügen –> Image URL –> (Pop Up) Lege Ordner an

Versucht einen neuen Ordner anzulegen dann kommt die Fehlermeldung das die Tabelle core_directory_storage nicht existiert.

SQLSTATE[42S02]: Base table or view not found: 1146 Tabelle ‘core_directory_storage’ existiert nicht

Diese kann man einfach wie folgt anlegen (z.B. über phpMyAdmin):

CREATE TABLE IF NOT EXISTS `core_directory_storage` (
          `directory_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
          `name` varchar(255) NOT NULL DEFAULT '',
          `path` varchar(255) NOT NULL DEFAULT '',
          `upload_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          `parent_id` int(10) unsigned DEFAULT NULL,
          PRIMARY KEY (`directory_id`),
          UNIQUE KEY `IDX_DIRECTORY_PATH` (`name`, `path`),
          KEY `parent_id` (`parent_id`),
          CONSTRAINT `FK_DIRECTORY_PARENT_ID` FOREIGN KEY (`parent_id`)
          REFERENCES `core_directory_storage` (`directory_id`) ON DELETE CASCADE ON UPDATE CASCADE
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Directory storage';

Zu empfehlen ist die Ordner die man “versucht” hat anzulegen unter media zu löschen, da diese schon vorhanden sind aber nicht in der DB.

3

Magento Update 1.4.2.0 Checkout Problem

Posted by admin on 1. März 2011 in Magento |

Bei der Installation von Market Ready Germany gibt es ein Problem in der Kundenverwaltung / Bestellungen und im Checkout.
Dies kommt aber nicht von Market Ready Germany sondern von dem Payone-Modul was von Market Ready Germany mit installiert wird.
Um dieses Problem zu beheben ist es erforderlich direkt in der Magento Datenbank die Payone Einträge, in der Tabelle eav_attribute zu ändern.

1. PhpMyAdmin aufrufen
2. Tabelle eav_attribute anwählen
3. Auf Suche klichen
4. Im Feld attribute_code den Begriff customer_address_payone_credit_rating_date eingeben und auf OK klicken.
5. Im gefundenen Datensatz auf den Bleistift klicken (für Datensatz ändern)
6. Im Feld frontend_input = date eintragen und auf OK klicken.

Für die attribute_code’s customer_address_payone_credit_rating_score und customer_address_payone_credit_rating_secscore die Schritte 3 – 6 jeweils wiederholen, aber für frontend_input = text eintragen!

Cache löschen und es sollte wieder funktionieren.

0

Magento Update auf 1.4.2.0 Fehler Wishlist

Posted by admin on 11. Dezember 2010 in Magento |

Beim Update auf Version 1.4.2.0 kann es vorkommen das folgender Fehler auftritt:

Invalid method Mage_Wishlist_Block_Links::addWishlistLink(Array) ...

Als einfache Lösung damit der Shop erst mal wieder läuft habe ich folgendes gemacht…

Man geht in sein Template Verzeichnis z.B. app/design/frontend/default/dein-template/layout und benennt die Datei wishlist.xml in wishlist.xml.old um.

Anschließend Kopiert man aus app/design/frontend/base/default/layout die wishlist.xml Datei in sein Template. Danach sollte der Shop erst mal wieder funktionierten.

Ich habe noch keine Ahnung ob dann alles geht. Ich wäre Dankbar für jede Info.

Copyright © 2010-2012 Christian Rohde Blog All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.0.2, from BuyNowShop.com.