Für diverse häufig gebrauchte Funktionen mit dem doch sehr umfangreichen Shopsystem hier eine kleine Übersicht (wird zukünftig noch erweitert):
Diverse Werte
<?php $storeId = Mage::app()->getStore()->getId(); $storeName = Mage::app()->getStore()->getName(); $storeCode = Mage::app()->getStore()->getCode(); $groupId = Mage::app()->getStore()->getGroupID(); $groupName = Mage::app()->getStore()->getGroup()->getName(); $websiteName = Mage::app()->getWebsite()->getName();
Session
<?php $sessionId = Mage::getModel('core/session')->getSessionId(); $customerId = Mage::getModel('customer/session')->getCustomerId(); $vistitorId = Mage::getModel('core/session')->getVisitorId();
Models
<?php $customer = Mage::getModel('customer/customer'); $order = Mage::getModel('sales/order'); $product = Mage::getModel('catalog/product');
Produkt-Model
$product = Mage::getModel('catalog/product')->load($productId); $categories = $product->getCategoryCollection();
Konfiguration
auslesen
$value = Mage::getStoreConfig('[MODULE]/[SECTION]/[FIELD]', $storeId);
und wieder schreiben
// Wert für Store 1 setzen Mage::getConfig()->saveConfig('path/to/config/value', 12343, 'stores', 1); // oder als Defaultwert Mage::getConfig()->saveConfig('path/to/config/value', 12343);
Blocks
<?php
$block = Mage::app()->getLayout()->createBlock('log/...');
Helpers
<?php $helper = Mage::helper('helper');
Logging
<?php Mage::log('Schreibe das ins Logfile');
Sonstiges
Store-Umgebung simulieren
Mage::app()->getLocale()->emulate($storeId);
Events auslösen
Mage::dispatchEvent($eventName);
Es geht weiter…
22.09.2010 um 10:33 Uhr
Danke für deinen Eintrag genau das hab ich gesucht![:)](http://blog.ebene7.com/wp-includes/images/smilies/icon_smile.gif)
Nur hab ich ein komisches Problem. Ich geb die sessionId und die customerId aus und funktioniert.
Nur meine visitorId ist leer und ich weiß nicht warum?
23.09.2010 um 20:27 Uhr
Warum das nicht geht kann ich dir leider auch nicht sagen. Magento ist eben “besonders”…
06.10.2010 um 22:27 Uhr
Die VisitorId bekommst du:
Mage::getSingleton ( ‘log/visitor’ )->getVisitorId ();
und das erzeugt die sogar eine neue, wenn noch keine da ist -> wie beim ersten request
Pingback: Magneto CheatSheet | Best Cheat Sheets
14.11.2011 um 16:05 Uhr
Produkte ausbrüten ohne Reue (und schneller dazu). Zur Erklärung: es gibt im Magento-Core einen Memory-Leak, durch den der von einer Produktinstanz benötigte Speicher auch nach dem Tod der Instanz nicht wieder freigegeben wird (Folge: brütet man bspw. per Schleife viele Produktinstanzen aus, schmiert irgendwann das Skript mangels Speicher ab). Das umgeht man mit der folgenden Konstruktion:
if (!isset ($product)) {
$product = Mage::getModel(‘catalog/product’);
} else {
$product=$product->getResource()->load($product, $product_id);
}