Get Price from Database

6. November 2013 at 17:34
  1. eav_entity_type ——> See catalog_product’s Id (10)
  2. SELECT * FROM `eav_attribute` WHERE `attribute_code` = ‘price’
  3. Get attribute_id where entity_type_id=’10’ (69)
  4. SELECT * FROM `catalog_product_entity_decimal` WHERE `attribute_id` = ‘69’
  5. The value you get is the Price of the Product Whose Id correspond entity_id

Sitemap.xml

11. Oktober 2013 at 10:49

Es muss eine sitemap.xml erstellt werden zur einen Auflistung der einzelnen Seiten für die Suchmaschinen. Diese sollte regelmäßig bei Änderungen automatisch durch ein Cron aktualisiert werden.

Infos zur Sitemap.xml unter http://de.wikipedia.org/wiki/Sitemaps-Protokoll

Bei Sitemaps mit vielen Inhalten, daher > 10.000 URLs bitte eine gepackte sitemap.gz zur Verfügung stellen. Google akzeptiert zum aktuellen Stand max. 50.0000 Produkte/URLs pro ungepackter sitemap.xml.

Die sitemap.xml sollte in der robots.txt sowie in den Google Webmastertools eintragen werden.

Zu beachten ist, dass Links nicht doppelt gelistet werden dürfen und die Links immer eindeutig sein müssen. Daher auch darauf achten dass die Links einheitlich sind, z.B immer mit oder ohne endenden Slash, etc.!

Wenn z.B. an allen URLs automatisch per 301-Weiterleitung ein endender Slash angehängt wird, um zu vermeiden dass dadurch duplicate Content entsteht, so muss die endende URL in der Sitemap.xml eingetragen werden. In der Sitemap dürfen keine Links enthalten sein welche umgeleitet werden, dies führt zu Fehlermeldungen seitens Google. Generell ist in den Google Webmastertools zu prüfen ob die Sitemap.xml erfolgreich validiert wurde bzw. entsprechende Fehlermeldungen auszuwerten.

Die enthaltenen URLs müssen identisch mit den real verwendeten Shop-URLs sein, daher keine Weiterleitungen, da diese bei der Aufnahme durch Google abgelehnt werden.

Tipp

Ebenfalls zu beachten ist, dass bei einem Multi Domain Shop jeweils eine eigene robots.txt pro Domain ausgeliefert wird und auch die Sitemap.xml jeweils mit der korrekten Domain verlinkt ist.

Magento: Change Attribute Type – Select to Multiselect

13. September 2013 at 17:51

Ihr möchtet den Attribute Type von Select auf Multiselect ändern?

so geht’s

$installer = $this;
$this->startSetup();
//$installer->updateAttribute('catalog_product', 'attributename', array('type' => 'varchar', 'input' => 'multiselect'));
$entityTypeId = $installer->getEntityTypeId('catalog_product', 'attributename');
$idAttributeOldSelect = $this->getAttribute($entityTypeId, 'attributename', 'attribute_id');
$installer->updateAttribute($entityTypeId, $idAttributeOldSelect, array(
    'frontend_input' => 'multiselect',
    'backend_type' => 'varchar'
));
$this->endSetup();

Magento Problem:catalog/product_collection wird mit falscher Store-ID-Flat-Table geladen – hier die Lösung

24. Juli 2013 at 14:00

Solltet ihr in Magento die Collection „catalog/product_collection“ in einer Schleife laden wollen und jeweils die store-id ändern, so erhaltet ihr eine falsche flat-table zurück (immer die des ersten geladenen stores.

Die Lösung: Vorher auf dem ResourceSingleton jeweils noch mal explizit mit setStoreId die ID des aktuellen stores setzen, hier der Quellcode dazu:

        Mage::getResourceSingleton("catalog/product_flat")->setStoreId($store->getId());
        $products = Mage::getResourceModel("catalog/product_collection")
            ->setStoreId($store->getId())
            ->addStoreFilter($store->getId());

War der Tipp für euch hilfreich?
Dann gibt ihn doch ein +1 oder like bzw. teilt diesen Artikel bei Google+ oder Facebook!

Danke für euren Support!

In Magento die final erzeugte config.xml ausgeben / Get full merged config.xml in magento

28. Mai 2013 at 15:21

Die einzelnen Module enthalten jeweils diverse config.xml-Dateien. Diese werden final von Magento zu einer einzigen config-xml-datei zusammen gefügt. Diese könnt ihr euch mit folgendem PHP-Code ausgeben lassen:

Mage::log(Mage::app()->getConfig()->getNode()->asNiceXml(), Zend_Log::DEBUG, "config-xml.log");

War der Tipp für euch hilfreich?
Dann gibt ihn doch ein +1 oder like bzw. teilt diesen Artikel bei Google+ oder Facebook!

Danke für euren Support!

Magento: Liste aller Events der aktuell geladenen Seite in eine Log-File ausgeben.

28. Mai 2013 at 14:34

magento ecommerce logo

Bei der Entwicklung bzw. der Erweiterung bestehender Methoden, ist es oft hilfreich eine Übersicht aller aktuell geladenen Events einer bestimmten Seite zu erhalten.

So erhaltet ihr eine Liste der Events der aktuell geladenen Seite

In der Funktion public static function dispatchEvent($name, array $data = array())“ in der Datei“/app/Mage.php“ fügt ihr folgenden Code ein:

file_put_contents('var/log/magento-events.log'
 , date('Y-m-d H:i:s', time()) . ' - '
 . (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'CLI') . ' - '
 . (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_FILENAME']) . ' - '
 . $name . chr(10),
 FILE_APPEND);

Nach dem neuladen der Seite findet ihr eine entsprechende Auflistung in der Datei var/log/magento-events.log .

War der Tipp für euch hilfreich?
Dann gibt ihn doch ein +1 oder like bzw. teilt diesen Artikel bei Google+ oder Facebook!

Danke für euren Support!

Magento SEO: URL mit /index.php/ in der URI umleiten auf URL ohne

15. April 2013 at 15:32

Per Standard ist es in Magento möglich alle URLs jeweils mit /index.php/ in der URI, als auch ohne aufzurufen.
Hierdurch entsteht im schlimmstenfall ein „duplicate content“ Problem.

Um das Problem zu lösen, ist es sinnvoll die URL mit der /index.php/ auf die URL ohne diesen URI-Part zu leiten,
daher per mod_rewrite von z.b. /index.php/katalog auf /katalog

So geht’s:

RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

Zu empfehlen ist den Admin-Bereich auszugliedern, da Suchmaschinen auf diesen sowieso kein Zugriff haben (sollten)!

Admin Bereich als Ausnahme definierfen

RewriteCond %{REQUEST_URI} !^/index.php/admin/
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

 

Fandet ihr diesen Tipp nützlich?
Dann bewertet diesen doch bitte und teilt ihn bei Google+ oder Facebook, danke!

Magento: Fehler beim Anlegen der sitemap.xml – die Lösung zum Problem

11. Januar 2013 at 15:07

Das Problem

Beim anlegen einer sitemap.xml im Magento-Admin-Backend erhaltet ihr, ab dem Moment wo ihr von dem Namen „sitemap.xml“ abweicht ggf. eine Fehlermeldung wie z.B. die folgende „Der Pfad „/var/sitemaps/sitemap-de.xml“ ist nicht verfügbar und kann nicht verwendet werden.“ und das obwohl, der Pfad /var/sitemaps/ existiert und auch vom Webserver beschreibbar ist.

Ursache? Ggf. Magento-Bug …

Die Lösung

Legt pro sitemap ein Unterordner an, z.B. „/var/sitemaps/de/“, dort packt ihr jeweils die „sitemap.xml“ rein (muss immer so heißen) und schon funktionierts.

Magento: Admin_User Passwort per SQL in der Datenbank ändern

10. Januar 2013 at 11:19

Mit dem folgenden SQL-Update-Script ist es möglich das Passwort eines Admin_Users direkt in der Datenbank zu ändern.

Dabei ist zu beachten, dass der String „qX“ nicht geändert werden kann, den String „password“ mit dem neuen Passwort ersetzen.

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username='admin';

 

 

Mysql: ibdata zu groß – Daten aufteilen mit „innodb_file_per_table“

8. Januar 2013 at 11:17

Per Standard Konfiguration des mySql-Servers, werden alle Daten aus allen Datenbanken, in eine einzige Datei Namens „ibdata“ im mysql-data-ordner geschrieben. Diese Datei wächst kontinuierlich, auch beim löschen von Datenbanken bleibt die Größe erhalten (schrumpfen nicht möglich).

In der Praxis ist das nicht gerade optimal, lösen könnt ihr dieses Problem durch hinzufügen des Eintrages „innodb_file_per_table“ in der my.ini bzw. my.cnf im [mysqld]-Abschnitt der Konfigurations-Datei. Danach werden (Server-Neustart) jeweils pro Datenbank entsprechende ibdata-files angelegt, diese können dann auch beim löschen einer Datenbank mit gelöscht werden.