Magento Logging „funktioniert nicht“ – lokaler Speicherort

Ein kleiner Tipp zwischendurch: Wenn man lokal (unter Ubuntu/Linux) mit Magento arbeitet, könnte es vorkommen dass man irgendwann entnervt feststellt, dass das Logging irgendwie „nicht funktioniert“. Es funktioniert meistens einwandfrei (wenn man es in der Konfiguration aktiviert hat!), allerdings ist der Speicherort etwas komisch – schaut mal in /tmp/magento/var/log

Online Tracking, Targeted Advertising and User Privacy – Eine Präsentation

Ich besuche momentan das Seminar „Privacy and Web 2.0“ von Prof. Dr. Michael Waidner, Andreas Poller und Hervais Simo Fhom an der TU Darmstadt. Ich bin zusammen mit einer Kommilitonin für das Thema „Online Tracking, Targeted Advertising and User Privacy“ zuständig, wobei ich eher den technischen Part übernehme. Morgen muss ich meine Präsentation halten, die ihr euch hier herunterladen könnt.
Bis Mitte Juli muss ich auch noch ein „Paper“ dazu schreiben, welches ich ebenfalls hier im Blog veröffentlichen werde.
UPDATE 07.02.2012: Das Paper zum Thema ist nun auch verfügbar.

Online Tracking, Targeted Advertising And User Privacy Presentation (PDF) (1988 Downloads)

Nicht über die Dateigröße wundern, die Präsentation ist recht bilderlastig 🙂

Magento Programmatically Create Order

I just had to massively rework an interface to another shopping site for a customer. Therefore, I had to programmatically create orders in Magento, which is really an awful challenge. A pretty nice help for this was the code of Vinai Kopp, published under Pastebin.

A little extension for Vinai’s code: If you already have a customer object $customer and want to use the default billing and shipping address, you can set it like that (compare with line 42/43 of Vinai’s code):

$quote->getBillingAddress()->importCustomerAddress($customer->getPrimaryBillingAddress());
$quote->getShippingAddress()->importCustomerAddress($customer->getPrimaryShippingAddress());

Hope this helps someone 🙂

Magento Tier Prices for Configurable Products

The way Magento handles tier prices related to configurable products is a little bit strange. Assuming we have a basic T-Shirt which is available in red and blue and normally costs 10 Euro. If you purchase 10 or more shirts, the price is only 9 Euro. I (and many others of you out there, too!) would expect to get the cheaper price if you buy e.g. 6 blue and 4 red shirts. Anyways, this is not the case in Magento. In order to achieve this behaviour, the guys from Tridian wrote a nice piece of code. Unfortunately, it seems to be old and unsupported. So I updated the script to Magento 1.4.1.1 and removed a little bug. The script from Tridian works fine for configurable products that have tiering prices. Sadly, there are problems with configurable products that do not have tier prices but a special price. In my version below, this bug is fixed. Magento Tier Prices for Configurable Products weiterlesen

Magento Code Snippet – Do not Show Homepage in Breadcrumbs

A few days ago, I faced the problem that I did not want to have the „Home“ link in the Magento breadcrumbs navigation. To avoid this, we simply have to insert an additional if-condition to app/design/frontend/[yourtheme]/[yourtemplate]/template/page/html/breadcrumbs.phtml

The new breadcrumbs.phtml looks like this (line 06!):


<?php if($crumbs && is_array($crumbs)): ?>
<div>
 <ul>
 <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
 <?php // do not show homepage in breadcrumbs ?>
 <?php if($this->getUrl('') != $_crumbInfo['link']): ?>
 <li>
 <?php if($_crumbInfo['link']): ?>
 <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->htmlEscape($_crumbInfo['title']) ?>"><?php echo $this->htmlEscape($_crumbInfo['label']) ?></a>
 <?php elseif($_crumbInfo['last']): ?>
 <strong><?php echo $this->htmlEscape($_crumbInfo['label']) ?></strong>
 <?php else: ?>
 <?php echo $this->htmlEscape($_crumbInfo['label']) ?>
 <?php endif; ?>
 <?php if(!$_crumbInfo['last']): ?>
 <span>/ </span>
 <?php endif; ?>
 </li>
 <?php endif; ?>
 <?php endforeach; ?>
 </ul>
</div>
<?php endif; ?>

Hope this helps someone.

Programmcode kommentieren – warum ist es so wichtig?

Ich denke, dass so ziemlich jeder Programmierer seine Programme schon mal in irgendeiner Weise kommentiert hat. Doch wie konsequent? Und vor allem, wieso überhaupt die Mühe? Genau das ist der Punkt, den ich euch näher bringen möchte. Programmcode kommentieren – warum ist es so wichtig? weiterlesen

Unirgy GiftCert Email Variables

Since Magento is developed by a company in the US and thus many english-speaking Magento developers exist, I thought I should write the Magento articles in English. No matter how I will write in future, this article is definitely in English and is about Unirgy GiftCert, a Magento extension adding gift certificate functionalities to Magento. I just installed and configured it in a shop of one of my clients and it was really a mess to set up the e-mail templates. So I thought I could help you with this 🙂 Unirgy GiftCert Email Variables weiterlesen

Kleines Tutorial: ICQ-Symbol in der Taskleiste ändern

Als ich vor einiger Zeit meinen Laptop auf Windows 7 umgestellt habe und mir so nach und nach alle Programme installiert hatte ist mir aufgefallen, dass die kleine ICQ Blume und das Windows Live Messenger Symbol (seit der Version 2011 ist dies nicht mehr der Fall) nicht – wie es vorher bei Windows XP oder Windows Vista war – nur im rechten Bereich der Taskleiste angezeigt wird. Denn nachdem ich ICQ minimiert hatte verblieb ein großes Symbol in der mittleren Taskleiste.

Zum Vergrößern auf das Bild klicken

Kleines Tutorial: ICQ-Symbol in der Taskleiste ändern weiterlesen

Updates – ein Appell an Benutzer und Entwickler

Letztens dachte ich, ich gucke mal manuell nach Updates für alle meine installierten Programme. Bis dahin ging ich davon aus, dass ich bei der meisten Software auf dem aktuellsten Stand bin (davon ausgehend, dass Auto-Update Funktionen mittlerweile doch sehr verbreitet sind), aber weit gefehlt! Es ist erschreckend, wie wenig Programme überhaupt eine Auto-Update Funktion haben. Und selbst wenn sie eine haben, werden oft nur kleinere Updates innerhalb einer Version gefunden und keine Major Releases (Sprung von z.B. Version 6.x.x auf 7.x.x). Letztlich war ich eine ganze Zeit lang beschäftigt, alles auf den neuesten Stand zu bringen.

Beispiele gefällig? Updates – ein Appell an Benutzer und Entwickler weiterlesen