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
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);
}