<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Magento Programmierer ›› Magento Freelancer ›› Carmen Bremen ›› Magento-Entwickler</title>
	<atom:link href="http://NeoShops.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://NeoShops.de</link>
	<description>Freiberuflicher Magento Programmierer mit Projekterfahrung und Referenzen. Module. Templates. Einrichtung und Konfiguration.</description>
	<lastBuildDate>Sat, 19 May 2012 21:21:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Neunos Agentos auf dem 3. Magento Stammtisch Köln</title>
		<link>http://NeoShops.de/2012/05/19/neunos-agentos-auf-dem-3-magento-stammtisch-koln/</link>
		<comments>http://NeoShops.de/2012/05/19/neunos-agentos-auf-dem-3-magento-stammtisch-koln/#comments</comments>
		<pubDate>Sat, 19 May 2012 11:17:42 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=866</guid>
		<description><![CDATA[Ich sitze im Zug nach Leipzig, auf dem Weg zur Meet Magento. Ich sitze und mein Fahrrad hängt. Am Vorderrad. Wenn es twittern könnte, würde es jetzt twittern, da bin ich mir sicher. Es kann dem Zugführer beim Zugführen zusehen, darf aber nicht näher an den Zugführerverfügungsraum herantreten, ebenso wenig wie Koffer. Es sah sehr [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://NeoShops.de/wp-content/uploads/2012/05/3StammtischKoelnAgentos.jpg"><img src="http://NeoShops.de/wp-content/uploads/2012/05/3StammtischKoelnAgentos-1024x682.jpg" alt="" title="3StammtischKoelnAgentos" width="498" height="333" class="alignright size-large wp-image-867" /></a></p>
<p>Ich sitze im Zug nach Leipzig, auf dem Weg zur Meet Magento. Ich sitze und mein Fahrrad hängt. Am Vorderrad. Wenn es twittern könnte, würde es jetzt twittern, da bin ich mir sicher. Es kann dem Zugführer beim Zugführen zusehen, darf aber nicht näher an den Zugführerverfügungsraum herantreten, ebenso wenig wie Koffer. Es sah sehr etwas hilflos aus, als ich das Fahrradabteil latent hektisch verließ um vom ersten Abteil des Zuges im Halblaufschritt zum letzten Abteil zu rappeln, wo ich dann die nächsten sechs Stunden verbringen werde. </p>
<p><a href="http://NeoShops.de/wp-content/uploads/2012/05/IMG_0296.jpg"><img src="http://NeoShops.de/wp-content/uploads/2012/05/IMG_0296-1024x768.jpg" alt="" title="IMG_0296" width="498" height="333" class="alignleft size-large wp-image-880" /></a></p>
<p><br clear="all"/></p>
<p>Nun habe ich also Zeit, um vom dritten Kölner Stammtisch zu berichten. </p>
<p>Der Kölner Stammtisch zeichnet sich ja noch ein wenig dadurch aus, dass sich noch kein Stamm gefunden hat. Aus diesem Grunde gibt’s hier auch noch keine Vorträge. Stammtisch eins war wild gemixt, Stammtisch zwei bestach durch Abwesenheit der Angemeldeten und einer hohen Präsenz von Aachenern, daher war ich doch mal sehr gespannt auf Stammtisch drei! </p>
<p>Er fand in einer anderen Location statt, weil ich hoffte, dass es Mitte Mai schon so warm sein würde, dass wir in dem wunderbaren Biergarten sitzen könnten. 10 Grad haben das verhindert. Im Innenraum war es verhältnismäßig laut, so dass man entweder ausschließlich Megaphone oder das Ohr des unmittelbaren Sitznachbarn nutzen konnte. Wohl einer der Gründe, warum bei der Platzreservierung das Magento M verloren ging. </p>
<p>Diesmal habe ich also für 6 Personen bestellt, weil 6 angemeldet waren und prompt saßen wir irgendwann zu neunt am Tisch. Neun Agentos also. Zwei davon kannte ich, die anderen waren neu. Und diesmal war kein einziger Aachener dabei! Einer hat den weiten Weg aus Dortmund auf sich genommen – vielleicht der Dortmunder Stammtischorganisator in spe? Ansonsten war diesmal tatsächlich Köln oder das Kölner Umfeld vertreten (darf man Bonn als Kölner Umfeld bezeichnen? Bei Düsseldorf darf man das ja, aber Bonn?) </p>
<p>Schön fand ich den Mix an Magento-Zuständen. Zwei waren ganz neu dabei, zwei schon seit 2008 infiziert und zwei haben schon wieder aufgehört mit Magento zu arbeiten.</p>
<p>In meinem Abteil befindet sich ein kleiner Junge, der es sehr bedauert, noch kein Handwerker zu sein, damit er im Zug Fenster einbauen kann. Vielleicht ein guter Zeitpunkt, ihn als zukünftigen Agento zu akkreditieren. </p>
<p>Bleibt mir nur das Schlusswort und der Ausblick: </p>
<p><i>Los Agentos, espero que la próxima reunión en Colonia. Estoy buscando un lugar tranquilo con un montón de espacio. Ahora tengo que cuidar a mis Fahrrodos. Saludos Queridos Agentos Colonia. Su Miss Magenta. </i></p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2012/05/19/neunos-agentos-auf-dem-3-magento-stammtisch-koln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento: Neu in Version 1.7: das Top Menü</title>
		<link>http://NeoShops.de/2012/05/05/magento-neu-in-version-1-7-das-top-menu/</link>
		<comments>http://NeoShops.de/2012/05/05/magento-neu-in-version-1-7-das-top-menu/#comments</comments>
		<pubDate>Sat, 05 May 2012 09:31:20 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=852</guid>
		<description><![CDATA[Es gibt einen neuen Block in Magento 1.7 und jeder, der das Navigationsmenü in älteren Versionen überschrieben hat, wird seine Änderungen in der Magento 1.7 nicht mehr wiederfinden. In Magento 1.6 war diese Klasse zuständig für die Navigationsaufbereitung: Mage_Catalog_Block_Navigation und der funktionierende Rewrite war dieser: &#60;global&#62; &#60;blocks&#62; &#60;catalog&#62; &#60;rewrite&#62; &#60;navigation&#62;MeinNameSpace_MeinModul_Block_Navigation&#60;/navigation&#62; &#60;/rewrite&#62; &#60;/catalog&#62; &#60;/blocks&#62; &#60;/global&#62; In [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt einen neuen Block in Magento 1.7 und jeder, der das Navigationsmenü in älteren Versionen überschrieben hat, wird seine Änderungen in der Magento 1.7 nicht mehr wiederfinden. </p>
<p>In Magento 1.6 war diese Klasse zuständig für die Navigationsaufbereitung:<br />
Mage_Catalog_Block_Navigation<br />
und der funktionierende Rewrite war dieser:</p>
<pre style="font-size:10px;">
&lt;global&gt;
   &lt;blocks&gt;
       &lt;catalog&gt;
        &lt;rewrite&gt;
            &lt;navigation&gt;MeinNameSpace_MeinModul_Block_Navigation&lt;/navigation&gt;
        &lt;/rewrite&gt;
    &lt;/catalog&gt;
    &lt;/blocks&gt;
&lt;/global&gt;
</pre>
<p><br/></p>
<p>In der neuen Magento Version hat man sich also von dieser Klasse verabschiedet. Die Navigation ist nun in einem völlig neuen Block untergebracht: dem &#8220;Topmenu&#8221; innerhalb des Page-Moduls. </p>
<p>In der page.xml wird man also auch fündig:</p>
<pre style="font-size:10px;">
&lt;block type="page/html_header" name="header" as="header"&gt;
    &lt;block type="page/template_links" name="top.links" as="topLinks"/&gt;
    &lt;block type="page/switch" name="store_language" as="store_language"
         template="page/switch/languages.phtml"/&gt;
    <b>&lt;block type="core/text_list" name="top.menu" as="topMenu" translate="label"&gt;
        &lt;label&gt;Navigation Bar&lt;/label&gt;
        &lt;block type="page/html_topmenu" name="catalog.topnav"
             template="page/html/topmenu.phtml"/&gt;
    &lt;/block&gt;</b>
    &lt;block type="page/html_wrapper" name="top.container" as="topContainer" translate="label"&gt;
        &lt;label&gt;Page Header&lt;/label&gt;
        &lt;action method="setElementClass"&gt;&lt;value&gt;top-container&lt;/value&gt;&lt;/action&gt;
    &lt;/block&gt;
&lt;/block&gt;
</pre>
<p><br/></p>
<p>Die neue Zuständigkeit für das Rendern der Navigation hat also die Klasse<br />
<i>Mage_Page_Block_Html_Topmenu</i><br />
übernommen. </p>
<p>Und in dieser Klasse scheint es neue Events zu geben:<br />
<i>page_block_html_topmenu_gethtml_before</i><br />
und<br />
<i>page_block_html_topmenu_gethtml_after</i><br />
(welche bei Google noch 0 Treffer liefern, was ich hiermit ändern möchte!)</p>
<p>Der _after Event-Observer liefert das fertige Menu und den fertigen HTML-Code der Navigation.</p>
<p>Wie man mit dem _before Event das Menu beeinflusst, möchte ich kurz zeigen.</p>
<p>Erstmal Magento mitteilen, dass man diesen Event gerne nutzen möchte:</p>
<pre style="font-size:10px;">
&lt;frontend&gt;
     &lt;events&gt;
            &lt;page_block_html_topmenu_gethtml_before&gt;
                &lt;observers&gt;
                    &lt;meinnamespace_page_block_html_topmenu_gethtml_before&gt;
                        &lt;type&gt;singleton&lt;/type&gt;
                        &lt;class&gt;meinnamespace_meinmodulname/observer&lt;/class&gt;
                        &lt;method&gt;topmenuGethtmlBefore&lt;/method&gt;
                    &lt;/meinnamespace_page_block_html_topmenu_gethtml_before&gt;
                &lt;/observers&gt;
            &lt;/page_block_html_topmenu_gethtml_before&gt;
        &lt;/events&gt;
&lt;/frontend&gt;
</pre>
<p><br/></p>
<p>Dann die Observer-Klasse mit der observierenden Funktion anlegen:</p>
<pre style="font-size:10px;">
class MeinNameSpace_MeinModul_Model_Observer {
   public function topmenuGethtmlBefore (Varien_Event_Observer $observer) {
        /** @var $event Varien_Event */
        $event = $observer-&gt;getEvent();

        ....
   }
}
</pre>
<p><br/></p>
<p>Was im Event-Objekt nun zur Verfügung steht, kann man in der Mage_Page_Block_Html_Topmenu Klasse erfahren:</p>
<pre style="font-size:10px;">
public function getHtml($outermostClass = '', $childrenWrapClass = '')
{
    Mage::dispatchEvent('page_block_html_topmenu_gethtml_before', array(
        'menu' =&gt; $this-&gt;_menu
    ));

    $this-&gt;_menu-&gt;setOutermostClass($outermostClass);
    $this-&gt;_menu-&gt;setChildrenWrapClass($childrenWrapClass);

    $html = $this-&gt;_getHtml($this-&gt;_menu, $childrenWrapClass);

    Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array(
        'menu' =&gt; $this-&gt;_menu,
        'html' =&gt; $html
    ));

    return $html;
}
</pre>
<p><br/></p>
<p>Nutzt man also den page_block_html_topmenu_gethtml_before Event, so steht einem mittels </p>
<pre style="font-size:10px;">
/** @var $menu Varien_Data_Tree_Node */
$menu = $event-&gt;getMenu();
</pre>
<p><br/></p>
<p>das Objekt zur Verfügung, das die Navigationselemente enthält. </p>
<p>(bei page_block_html_topmenu_gethtml_after stünde einem noch der generierte HMTL-String des Menüs zur Verfügung mittels: $html = $event-&gt;getHtml(); )</p>
<p>Nun kann man das Menü manipulieren. </p>
<p>Man kann beispielsweise den Namen eines Menüpunkts ändern:</p>
<pre style="font-size:10px;">
public function topmenuGethtmlBefore (Varien_Event_Observer $observer) {
        /** @var $event Varien_Event */
        $event = $observer-&gt;getEvent();

        /** @var $menu Varien_Data_Tree_Node */
        $menu = $event-&gt;getMenu();

        /** @var $menuCollection Varien_Data_Tree_Node_Collection */
        $menuCollection = $menu-&gt;getChildren();

        /** @var $item Varien_Data_Tree_Node */
        foreach ($menuCollection as $item) {
            if ($item-&gt;getName() == 'Alter Name') {
                $item-&gt;setName('Neuer Name');
            }
        }
    }
}
</pre>
<p><br/></p>
<p>Oder man kann Menüpunkte entfernen, beispielsweise alle Unterkategorien einer Kategorie:</p>
<pre style="font-size:10px;">
public function topmenuGethtmlBefore (Varien_Event_Observer $observer) {
        /** @var $event Varien_Event */
        $event = $observer-&gt;getEvent();

        /** @var $menu Varien_Data_Tree_Node */
        $menu = $event-&gt;getMenu();

        /** @var $menuCollection Varien_Data_Tree_Node_Collection */
        $menuCollection = $menu-&gt;getChildren();

        /** @var $item Varien_Data_Tree_Node */
        foreach ($menuCollection as $item) {
            if ($item-&gt;getName() == 'Alter Name') {

                $item-&gt;setName('Neuer Name');

                /** @var $childNode Varien_Data_Tree_Node */
                foreach ($item-&gt;getAllChildNodes() as $childNode) {
                    $item-&gt;removeChild($childNode);
                }
            }
        }
    }
}
</pre>
<p><br/></p>
<p>Man kann natürlich hier auch Menüpunkte hinzufügen. Und verschieben. Und was sonst noch, muss ich noch herausfinden. Aber dafür ist Magento ja da.</p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2012/05/05/magento-neu-in-version-1-7-das-top-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento &#8211; Warum man bestimmte Klassen nicht überschreiben kann</title>
		<link>http://NeoShops.de/2012/04/17/magento-warum-man-bestimmte-klassen-nicht-uberschreiben-kann/</link>
		<comments>http://NeoShops.de/2012/04/17/magento-warum-man-bestimmte-klassen-nicht-uberschreiben-kann/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 08:10:30 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=828</guid>
		<description><![CDATA[In diesem Beitrag soll es nicht um abstrakte Klassen gehen. Wer aber hier gegooglegelandet ist, weil er versucht, eine abstrakte Klasse in Magento zu überschreiben, für den gibt es denn doch einen Satz dazu: Es gibt keine Möglichkeit eine abstrakte Klasse (hier nennen wir sie Foo) in Magento zu überschreiben. Wenn andere Klassen (nennen wir [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Beitrag soll es nicht um abstrakte Klassen gehen. Wer aber hier gegooglegelandet ist, weil er versucht, eine abstrakte Klasse in Magento zu überschreiben, für den gibt es denn doch einen Satz dazu: </p>
<p>Es gibt keine Möglichkeit eine abstrakte Klasse (hier nennen wir sie Foo) in Magento zu überschreiben. Wenn andere Klassen (nennen wir sie Bar und Pub) von Foo abgeleitet sind, und man möchte nun eigentlich Foo erweitern, damit sowohl Bar, als auch Pub über neue oder geänderte Methoden verfügen, so geht das nur, indem man Bar und Pub überschreibt. </p>
<p>In diesem Beitrag soll es aber nicht um eine abstrakte Klasse gehen, sondern um ein anderes Phänomen am Beispiel der Klasse:<br />
Mage_Payment_Block_Form_Container</p>
<p>Diese Klasse ist nicht abstrakt, sondern eigentlich eine nette, normale Blockklasse, der man zum Beispiel begegnet, wenn man die Payment-Methods im Checkout bearbeiten möchte. </p>
<p>Diese Klasse kann man nicht überschreiben. Das glaubt man nun zunächst nicht&#8230; und starrt hinlänglich auf xml, das einfach nur korrekt aussieht. </p>
<pre>
&lt;blocks&gt;
 &lt;paymentmethods&gt;
  &lt;class&gt;NameSpace_ModulName_Block&lt;/class&gt;
   &lt;/paymentmethods &gt;
    &lt;payment&gt;
     &lt;rewrite&gt;
      &lt;form_container&gt;
      NameSpace_ModulName_Block_Form_Container
      &lt;/form_container&gt;
     &lt;/rewrite&gt;
  &lt;/payment&gt;
 &lt;/blocks&gt;
</pre>
<p><br/><br />
Mir ging es im Speziellen um das Überschreiben der Methode <i>getMethods()</i>, weil ich bestimmte Payment-Methoden aufgrund bestimmter Produkte im Warenkorb ausschließen wollte. </p>
<pre style="font-size:10px;">
public function getMethods()
    {
        $methods = $this->getData('methods');
        if (is_null($methods)) {
            $quote = $this->getQuote();
            $store = $quote ? $quote->getStoreId() : null;
            $methods = $this->helper('payment')->getStoreMethods($store, $quote);
            $total = $quote->getBaseSubtotal();
            foreach ($methods as $key => $method) {
                if ($this->_canUseMethod($method)
                    &#038;&#038; ($total != 0
                        || $method->getCode() == 'free'
                        || ($quote->hasRecurringItems() &#038;&#038; $method->canManageRecurringProfiles()))) {
                    $this->_assignMethod($method);
                } else {
                    unset($methods[$key]);
                }
            }
            $this->setData('methods', $methods);
        }
        return $methods;
    }
</pre>
<p><br/></p>
<p>Der Grund:</p>
<p>Der Block <i>Mage_Payment_Block_Form_Container</i> wird bereits von der Klasse <i>Mage_Checkout_Block_Onepage_Payment_Methods</i> beerbt. </p>
<pre>
class Mage_Checkout_Block_Onepage_Payment_Methods
        extends Mage_Payment_Block_Form_Container
</pre>
<p><br/></p>
<p>Magento berücksichtigt beim Aufbau des Checkouts daher nicht direkt den Block <i>Mage_Payment_Block_Form_Container</i> auf, sondern <i>Mage_Checkout_Block_Onepage_Payment_Methods</i>, daher nützt das Überschreiben des From_Containers auch nichts. </p>
<p>Die Lösung daher:<br />
Überschreiben des Blocks <i>Mage_Checkout_Block_Onepage_Payment_Methods</i> und dort die Methode <i>getMethods()</i> einfügen und nach seinen individuellen Bedürnissen anpassen. </p>
<p>Und der Vollständigkeit halber: der Aufruf der Methode erfolgt im Template-Block:</p>
<pre style="font-size:10px;">
/app/design/frontend/default/meintheme/template/checkout/onepage/payment/methods.phtml
 ($methods = $this->getMethods();)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2012/04/17/magento-warum-man-bestimmte-klassen-nicht-uberschreiben-kann/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kategorieimport aus Datenbanksicht</title>
		<link>http://NeoShops.de/2012/03/29/kategorieimport-aus-datenbanksicht/</link>
		<comments>http://NeoShops.de/2012/03/29/kategorieimport-aus-datenbanksicht/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 15:33:40 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=810</guid>
		<description><![CDATA[Kategorieimport mit Unterkategorien ohne Rekursionen &#8211; so wollte ich den Artikel eigentlich nennen&#8230;. Gibt es das Wort &#8220;Rekursionen&#8221; &#8211; im Laufe dieses Beitrags werde ich es nachschlagen und Ihr müsst bis zum Ende lesen, bevor ich das Nachschlageergebnis zum besten geben werde. Solange rede ich halt vom Kategorieimport. Der Kategorieimport ist denkbar simpel &#8211; auf [...]]]></description>
			<content:encoded><![CDATA[<p>Kategorieimport mit Unterkategorien ohne Rekursionen &#8211; so wollte ich den Artikel eigentlich nennen&#8230;.</p>
<p>Gibt es das Wort &#8220;Rekursionen&#8221; &#8211; im Laufe dieses Beitrags werde ich es nachschlagen und Ihr müsst bis zum Ende lesen, bevor ich das Nachschlageergebnis zum besten geben werde.</p>
<p>Solange rede ich halt vom Kategorieimport. </p>
<p>Der Kategorieimport ist denkbar simpel &#8211; auf den ersten Blick. </p>
<p>Im ersten Adventskalendertürchen im Magento-Webguys-Adventskalender-2010 (<a href="http://www.webguys.de/magento/turchen-01-eine-kategorie-anlegen/">Türchen 01: Eine Kateogrie anlegen</a>) steht&#8217;s geschrieben: </p>
<p><pre>
$category = Mage::getModel('catalog/category');
$category->setPath( '1/2' );
$category->setName( $name );
$category->save();</pre>
</p>
<p>Um einen Vergleich zu haben, wie es aus Datenbanksicht richtig aussieht, habe ich zunächst eine Kategorie über das Magento-Backend eingepflegt. Und eine Unterkategorie gab&#8217;s auch noch. Das sieht dann so aus: </p>
<p>Meine Kategorien heißen &#8216;Top-Categoy-Backend&#8217; und &#8216;Sub-Category-Backend&#8217;.</p>
<p>Wenn man nun die Motorhaube einmal aufmacht, dann findet man diese Kategorien in der Tabelle &#8216;catalog_category_entity&#8217; wieder:</p>
<p><a href="http://NeoShops.de/wp-content/uploads/2012/03/richtig1.png"><img src="http://NeoShops.de/wp-content/uploads/2012/03/richtig1.png" alt="" title="Category Import" width="518" height="176" class="alignright size-full wp-image-813" /></a></p>
<p><strong>entity_id</strong> -> ist die Entity ID der Kategorie, also quasi der Primärschlüssel.</p>
<p><strong>entity_type_id </strong>-> 3 ist der Typ &#8220;Kategorie&#8221;</p>
<p><strong>attribute_set_id </strong>-> ist das Attributset für Kategorien (Kategorien haben ja auch Attribute, nicht nur Produkte). Dies fehlt im obigen Beispiel. Diese ID sollte man also auf jeden Fall noch setzen. </p>
<p><strong>parent_id</strong> -> ist die entity_id der Kategorie, unter der die Kategorie eingruppiert wird.</p>
<p><strong>created_at</strong> und <strong>updated_at</strong> erklär ich mal nicht. </p>
<p><strong>path</strong> -> Im Feld Path werden die entity_id&#8217;s beginnend mit der obersten (der Root Catalog) gesetzt, bis man bei der entity_id angelangt ist, die zur Kategorie selbst gehört.<br />
path = 1 ist also die ID der Root-Catalog &#8211; der Container für alle Kategorie-Container, sozusagen. Den wird man nie im Frontend namentlich zu sehen bekommen&#8230;. Dann folgt in diesem Fall die &#8216;Default Category&#8217;, das ist der Kategorie-Container für den jeweiligen Store, der in den Manage-Store-Einstellungen zugewiesen wird. Und dann folgen schließlich die entity_id&#8217;s der im Shop sichtbaren Kategorien: 3 für die Top-Category-Backend und 4 für die Sub-Category-Backend.</p>
<p>Demnach hätte eine weitere Top-Category-Backend-2 mit der Entity ID 5 den Pfad: 1/2/5.<br />
Und eine weitere Sub-Category-Backend-2 mit der Entity ID 6 den Pfad 1/2/3/6, wenn sie denn zur Top-Category-Backend gehört. Wenn sie zur Top-Category-Backend-2 gehören würde wäre es ein 1/2/5/6-Pfad. </p>
<p><em>Hausaufgaben: Pfade bauen. </em></p>
<p>Die Position erklärt sich dann schon fast wieder von selbst. Das ist die Position, die die Kategorie in ihrer jeweiligen Parent-Kategorie inne hat. </p>
<p>Der Level besagt, wie weit sich diese Kategorie im Baumgeäst befindet. Erste Ebene. zweite Ebene. Die &#8216;Default Category&#8217; nimmt Level 1 ein. Die erste im Shop sichtbare Kategorie hat demnach Level 2. </p>
<p><em>Testfrage: Wechen Level hat die Kategorie mit dem Pfad 1/2/5/6? </em></p>
<p>Children Count gibt die Summe der Kategorien an, die sich innerhalb dieser Kategorie befinden. Die Summe aller Kategorien kann man daher in der Kategorie &#8216;Root Catalog&#8217; ablesen, wenn es 200 Kategorien gibt, hat diese 200 Children. In meinem Beispiel hat die &#8216;Default Category&#8217; 2 Kinder, wenn ich die beiden weiteren Kategorien gespeichert hätte, wären es vier&#8230; usw. usf. </p>
<p>Warum ich das alles erkläre?</p>
<p>Weil man sehr sehr leicht und sehr sehr schnell die Pfade vergißt&#8230; und dann würde ein</p>
<p><pre>
$category = Mage::getModel('catalog/category');
$category->setName( $name );
$category->save();</pre>
</p>
<p>zu einem solchen Ergebnis führen: </p>
<p><a href="http://NeoShops.de/wp-content/uploads/2012/03/falsch.png"><img src="http://NeoShops.de/wp-content/uploads/2012/03/falsch.png" alt="" title="falsch" width="520" height="85" class="alignright size-full wp-image-814" /></a></p>
<p>Dann wäre die Kateogrie nicht zu sehen. </p>
<p>Unliebsam wird es dann, wenn der Kategoriebaum größer wird und man bei den Importinformationen nur den Namen der nächsten Parent-Kategorie hat, nicht aber alle IDs der übergeordneten Kategorien &#8211; sprich: was tun, wenn man nicht sicher weiß, dass man immer nur &#8220;1/2&#8243; schreiben muss, um das Menü zu füllen.</p>
<p>Da gibt es dann zwei Möglichkeiten:<br />
Laden der Parent-Kategorie und deren Pfad (z.B. 1/2/7) verwenden, um diesen als Path beim neuen Model zu setzen. </p>
<p>Oder:<br />
Neue Category speichern &#8211; ohne Pfad. Und dann mittels der Methode &#8216;move()&#8217; die Kategorie in die vorgesehene verschieben. Dann werden alle Pfade von Magento gesetzt:<br />
$category = Mage::getModel(&#8216;catalog/category&#8217;)->load($catId);<br />
$category->move($parentCategoryId, 1);<br />
Das geht allerdings nur, wenn die Kategorie einmal mittels ->save() gepseichert wurde, dann kann man die ID laden und für move() verwenden. </p>
<p>Ach &#8211; und nun hätt ich&#8217;s fast vergessen. Das Wort, worauf am End, ich kommen wollte. </p>
<p><i><br />
Als Rekursion (lat. recurrere „zurücklaufen“) bezeichnet man die Technik in Mathematik, Logik und Informatik, eine Funktion durch sich selbst zu definieren (rekursive Definition). Wenn man mehrere Funktionen durch wechselseitige Verwendung voneinander definiert, spricht man von wechselseitiger Rekursion.<br />
</i></p>
<p>Ist das nicht hübsch? Eine Funktion durch sich selbst zu definieren. </p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2012/03/29/kategorieimport-aus-datenbanksicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zweiter Kölner Magento-Stammtisch</title>
		<link>http://NeoShops.de/2011/10/31/zweiter-kolner-magento-stammtisch/</link>
		<comments>http://NeoShops.de/2011/10/31/zweiter-kolner-magento-stammtisch/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 10:36:32 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=771</guid>
		<description><![CDATA[Auf dem zweiten Kölner Magento Stammtisch waren ausschließlich Männer mit Bärten. Damit ich dann auch ins Bild passe, habe ich mir auch einen Bart angeklebt. Es war &#8211; dies muss allerdings zugegeben werden &#8211; nicht allzu schwer, gemeinsame Merkmale zu finden. Denn es war ein wirklich kleiner Stammtisch (obwohl der Tisch groß war). Vier waren [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem zweiten Kölner Magento Stammtisch waren ausschließlich Männer mit Bärten. Damit ich dann auch ins Bild passe, habe ich mir auch einen Bart angeklebt. Es war &#8211; dies muss allerdings zugegeben werden &#8211; nicht allzu schwer, gemeinsame Merkmale zu finden. Denn es war ein wirklich kleiner Stammtisch (obwohl der Tisch groß war). Vier waren wir. Nun müssen die Ursachen für &#8220;nur vier&#8221; durchdacht werden, wo es doch elf Anmeldungen gab und sieben &#8220;Vielleicht&#8221;&#8230; </p>
<p>Möglichkeit a) es gibt keine Magento-Programmierer in Köln oder sie dachten, man müsse einen Bart tragen, um am Stammtisch teilnehmen zu können. Ich hätte dazu schreiben sollen, dass es am Eingang eine Bartkiste gibt.</p>
<p>Möglichkeit b)  man sollte einen Tag vor  dem Stammtischtischeln eine Erinnerungs-E-Mail an alle schreiben, womöglich einfach mit einem Ortswechsel, wie es in Aachen der Fall war. Das mache ich beim nächsten Mal. (Notizenkritzelgeräusch).</p>
<p>Möglichkeit c) ich habe mich im Datum vertan und die drei anderen Bärte auch.</p>
<p>Dennoch war es sehr sehr nett in dieser bärtigen Runde (mit Vieren kriegt man schon ein Rund hin). Das Thema &#8220;Magento&#8221; war auch gar nicht das dominanteste des Tages. Schul- und Ortsfragen gab es auch. Denn neben den Bärten gab es eine weitere Gemeinsamkeit: alle außer mir kamen aus Aachen. </p>
<p>Und dann gab es ein paar Neidthemen. Andreas und ich haben ausgiebig alle beneidet, die im Oktober bei der X.commerce Innovate Conference in San Francisco dabei waren. Ich habe dann noch Andreas ausgiebig beneidet, weil er tags drauf zum Foocamp fahren wird. Und dann haben wir überlegt, wo man denn noch so hinfahren könnte. Einer am Tisch wusste noch nichts von Leipzig und der MeetMagento. </p>
<p>Wie frei ist man, wenn man frei arbeitet war vor allem im Hinblick auf die räumlichen und zeitlichen Freiheiten Thema. Ich bin ja sehr froh, dass mein Büro &#8216;inner Stadt&#8217; liegt und ich mich aus dem Haus begeben muss, um besohlt oder bereift die Strecke zurückzulegen. (Zumal es da neuerdings in Büronähe diesen Sushi-Laden gibt&#8230;) Die @Home-Freien sind froh, schnell beim Kinde sein zu können und wegen der verlustfreien Zeit schnell zwischen Job und Privat switchen zu können. Mal mehr oder weniger von Haushaltsgeräten abgelenkt.  </p>
<p>Meine Notizen für den nächsten Stammtisch:<br />
* unbedingt kurz vorher einen Ortswechsel ankündigen<br />
* dazu schreiben, dass es am Eingang Bärte gibt<br />
* einen modularen Tisch bestellen<br />
* vorher Damian fragen, wann er in Köln ist<br />
* unbedingt sagen, dass, wenn man in Köln ein<br />
 &#8220;großes&#8221; Kölsch bestellt, ein 0,3 Bier kommt</p>
<p><img src="http://NeoShops.de/wp-content/uploads/2011/10/miss_magenta_mit_bart.jpg" alt="Magento - Mr. - mit Bart" title="miss_magenta_mit_bart" width="130" height="129"  /></p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2011/10/31/zweiter-kolner-magento-stammtisch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Suchbegriffe</title>
		<link>http://NeoShops.de/2011/09/08/magento-suchbegriffe/</link>
		<comments>http://NeoShops.de/2011/09/08/magento-suchbegriffe/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 19:50:56 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=748</guid>
		<description><![CDATA[Man baut eine Homepage mit dem Zweck, dass sie gesehen und gelesen wird. Und ist neugierig, ob und wann und vor allem wieso sie denn besucht wird, die Homepage. Die Website. Die Page. Die Internetseite. Die&#8230;. hier halt. Ja. Und um zu wissen, am besten sofort, am besten in genau diesem Moment, wer nach was [...]]]></description>
			<content:encoded><![CDATA[<p>Man baut eine Homepage mit dem Zweck, dass sie gesehen und gelesen wird. Und ist neugierig, ob und wann und vor allem <em>wieso</em> sie denn besucht wird, die Homepage. Die Website. Die Page. Die Internetseite. Die&#8230;. hier halt.</p>
<p>Ja. Und um zu wissen, am besten sofort, am besten in genau diesem Moment, wer nach was gesucht hat und augrund dieser Suche auf meiner Homepage, Website, Page, Internetseite, ja hier halt&#8230; gelandet ist, ja, dafür braucht man Tooooools. Die gibt es. Und so weiß ich, warum jemand mich kennengelernt hat. </p>
<p>Da gibt es die Suchbegriffe, die hierher gehören, die hier landen dürfen/sollen/wollen/können/müssen/uswusf. &#8220;Magento Freelancer&#8221;, &#8220;Magenot Programmierer&#8221; , &#8220;Magento Experte&#8221;, &#8220;Magento Hilfe&#8221; (alles männliche Formen übrigens, ist es Ihnen aufgefallen?)&#8230;. Und je nachdem, was ich an Geschreibsel bereits von mir gegeben habe, kommt hinzu &#8220;E-Mailvorlage Magento&#8221; oder &#8220;Magento Singelton&#8221; oder &#8220;Magento Cache leeren&#8221; oder &#8220;Magento Template&#8221;, oder oder oder. Alles richtig, hier gehören Sie hin. </p>
<p>Was ich aber eigentlich toll finde und zwar ungefähr sooooo toll, wie viele oooo&#8217;s in&#8217;s Wort Tooooool (gesprochen &#8220;Tuuuuuhl&#8221;) zu schreiben ist, nein sind &#8211; die Suchbegriffe, die ja so rein gar nix mit dem zu tun haben, was ich mache, die aber so herrlich eine Tür öffnen in die Welt der Wünsche, Nöte und Bedürfnisse der Suchenden. Und so habe ich mir vorgenommen sie zu sammen, die Suchen, die Suchenden, die Google hierhin geschickt hat. </p>
<p>Und eben, grade eben hat Google jemanden hierhin geschickt, der gesucht hat nach:</p>
<p><strong>aufräumer köln</strong></p>
<p>Toll, oder? </p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2011/09/08/magento-suchbegriffe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erster Kölner Magento Stammtisch</title>
		<link>http://NeoShops.de/2011/07/22/erster-kolner-magento-stammtisch/</link>
		<comments>http://NeoShops.de/2011/07/22/erster-kolner-magento-stammtisch/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 06:18:01 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=725</guid>
		<description><![CDATA[Der erste Kölner Magento Stammtisch fand in einer kölschen Traditionskneipe statt, wo man sich nach dem Zurufen von zünftigen Trinksprüchen und laut vorgetragenen Stammtisch-Witzen schließlich zum Singen von Magento-Volksweisen zusammenfand&#8230;. break; Der erste Kölner Magento Stammtisch fand&#8230;. in der Sonne statt. Dies erstmal vorweg. Das war großartig, denn somit konnten wir im Biergarten des Cinenova [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://NeoShops.de/wp-content/uploads/2011/07/Magento-Stammtisch-2.jpg" alt="Magento-Stammtisch-Buchgewinn-Mitbring-Tasche" title="Magento-Stammtisch-Buchgewinn-Mitbring-Tasche" width="300" height="225" class="alignleft size-full wp-image-726" /><br />
<br clear="all"/><br />
<em>Der erste Kölner Magento Stammtisch fand in einer kölschen Traditionskneipe statt, wo man sich nach dem Zurufen von zünftigen Trinksprüchen und laut vorgetragenen Stammtisch-Witzen schließlich zum Singen von Magento-Volksweisen zusammenfand&#8230;.</em></p>
<p>break;</p>
<p>Der erste Kölner Magento Stammtisch fand&#8230;. in der Sonne statt. Dies erstmal vorweg. Das war großartig, denn somit konnten wir im Biergarten des Cinenova Platz finden. Und mein mutig für 10 bestellter Tisch war dann irgendwann mit 11en befüllt. Am weitesten angereist war im Grunde genommen Andreas, weil er frisch aus der Schweiz kam, der am weitesten weg Wohnende war wohl aber Damian, der den in Köln ansässigen Tontechniker des Magento-Podcasts mitgebracht hat. Somit ist der Podcast ja quasi multibundeslandar (nur quasi, ich weiß, aber multistadtistisch klingt nicht so gut). Ansonsten waren viele bekannte Aachener da und zwei neue Gesichter von einer Agentur aus Köln, die einfach mal zu einem Xing-Event wollten (wer will das nicht mal) und einfach mal was über Magento erfahren wollten (wer will das nicht mal). Das haben sie ganz bestimmt und viele Wörter und Akronyme, die halt fallen, wenn Entwickler sich unterhalten, mitgenommen.</p>
<p>Puh, was waren die Themen&#8230;. Von Unterschieden zwischen den Shopsystemen (ePages, XT:Commerce, Oxid und Magento), über das Foocamp, allgemeine und spezielle Entwicklerthemen, Kunden und Unkunden, von frischgeborenen Kindern (nochmals meine herzlichsten Glückwünsche an Ralf, wie war die Nacht?), Magento-Events und wie &#8220;awesome&#8221; und lohnenswert welches Event denn wohl ist, von den Anfängen von Magento bis zur Gegenwart, über die Entstehung und die Themen des Magento-Podcasts, konsonantenlastige Nachnamen&#8230; wirklich ein breites Themenspektrum. Dabei haben wir glaube ich gar nicht über ebay gesprochen (außer der Frage von links: &#8220;Welches Shopsystem benutzt eigentlich ebay?&#8221;).</p>
<p>Die traditionelle Erst-Stammtisch-Buch-Verlosung aus dem Hause Galileo Computing brachte drei Buchgewinner und meine Magento-Dollars-Trostpreise warfen die Gültigkeitsdauerfrage auf und irgendwie bin ich sie nicht los geworden&#8230; </p>
<p>Da jede Planung ihre Fehler braucht, darf nicht unterwähnt bleiben, dass wir den Biergarten um viertel vor zehn verlassen mussten, weil dort Open Air ein Film gezeigt wurde. Ein kleiner Restkreis nahm nochmal in den Innenräumen Platz, und dann war er doch irgendwann vorbei. Der erste Kölner Magento-Stammtisch. </p>
<p><img src="http://NeoShops.de/wp-content/uploads/2011/07/Magento-Stammtisch-1.jpg" alt="" title="Magento-Stammtisch-Mit-Damian-Mit-Essen-Ohne-Kahm" width="300" height="225" class="alignleft size-full wp-image-727" /> <img src="http://NeoShops.de/wp-content/uploads/2011/07/Magento-Stammtisch-31.png" alt="" title="Magento-Stammtisch-Ohne-Damian-Ohne-Essen-Mit-Kahm" width="300" height="227" size-full wp-image-729" /></p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2011/07/22/erster-kolner-magento-stammtisch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transaktions-E-Mails in Magento &#8211; wo ist eigentlich welche E-Mail?</title>
		<link>http://NeoShops.de/2011/07/13/transaktions-e-mails-in-magento-wo-ist-eigentlich-welche-e-mail/</link>
		<comments>http://NeoShops.de/2011/07/13/transaktions-e-mails-in-magento-wo-ist-eigentlich-welche-e-mail/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 14:55:46 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=706</guid>
		<description><![CDATA[Wo ist eigentlich welche E-Mail? Dieser Beitrag ist so eine Art Checkliste für die Zuweisung von Transaktions-E-Mail-Vorlagen. Für diesen Beitrag habe ich allerlei Bindestriche benötigt. Sollten also irgendwo doch noch welche rumliegen &#8211; gerne-mir-zusenden&#8230;. Es geht hier also um die Transaktions-E-Mail-Vorlagen. Also der E-Mails, die bei bestimmten Aktionen innerhalb des Shops versendet werden. Die Hallo-Willkommen-E-Mail, [...]]]></description>
			<content:encoded><![CDATA[<p><em>Wo ist eigentlich welche E-Mail? Dieser Beitrag ist so eine Art Checkliste für die Zuweisung von Transaktions-E-Mail-Vorlagen. Für diesen Beitrag habe ich allerlei Bindestriche benötigt. Sollten also irgendwo doch noch welche rumliegen &#8211; gerne-mir-zusenden&#8230;. </em></p>
<p>Es geht hier also um die Transaktions-E-Mail-Vorlagen. Also der E-Mails, die bei bestimmten Aktionen innerhalb des Shops versendet werden. Die Hallo-Willkommen-E-Mail, die an neue Kunden geht, das vergessene Passwort, die Bestellbestätigung undsoweiterundsofort. Da kommt so einiges zusammen &#8211; und wenn man diese gerne mit eigenen Texten und gar noch einer eigenen Gestaltung versehen will, geht einige Zeit ins Land, bis man sie stolz sein eigen Werk nennen darf. </p>
<p>Zu finden ist dieser ganze E-Mail-Haufen (<i>&#8220;E-Mail&#8221; ist übrigens richtig geschrieben, nicht eMail oder email oder EMail.</i>) im Backend/Administrationsbereich unter:<br />
<strong>System->Transaktions-E-Mails </strong></p>
<p>Wer MarketReadyGermany installiert hat, findet dort tatsächlich einen Haufen, alle anderen finden dort &#8211; ich glaube maximal &#8211; drei. </p>
<p>Eine neue E-Mail wird erstellt, indem man auf <strong>&#8220;(+) Neue Vorlage&#8221;</strong> klickt, in dem sich daraufhin präsentierenden Formular die Vorlage auswählt, auf der die neue E-Mail basieren soll und diese lädt, also in das Textfeld <strong>&#8220;Vorlagen-Inhalt&#8221;</strong> kopieren lässt, indem man auf tattaaaa &#8220;Vorlage laden&#8221; klickt. Hernach kann man seiner Vorlage einen neuen Namen geben (der nur intern gesehen wird), den Betreff wählen (den natürlich auch die Kunden sehen) und den Inhalt gestalten und füllen&#8230;.<br />
Im Feld <strong>&#8220;Vorlagen-Stile&#8221;</strong> können CSS Angaben gemacht werden. </p>
<p>Damit die Absendeadressen nicht allzu merkwürdig aussehen, muss man vorab die E-Mailadressen, mit denen Magento die E-Mails versendet, angeben. Dies kann man netterweise natürlich für alle Storeviews seperat machen unter:<br />
<strong>System->Konfiguration->Allgemein->Store-E-Mail-Adressen</strong></p>
<p>Und dann? Dann beginnt die Nadelheuhaufen suche, wo man denn welche Vorlage jetzt zuweist&#8230; Denn Magento muss jetzt natürlich noch wissen, welche E-Mail-Vorlage verwendet werden soll&#8230;</p>
<p>Zur Erleichterung hier ein paar Pfeile, die ich auf den Heuhaufen klebe:</p>
<p>Der Heuhaufen findet sich zunächst unter: <strong>System->Konfiguration</strong>. Und hier die Pfeile:</p>
<p><strong>Das Kontaktformular: </strong><br />
Allgemein->Kontakte->E-Mail Optionen</p>
<p><strong>Produktbenachrichtigungen:</strong><br />
Katalog->Katalog->Produktbenachrichtigungen<br />
Katalog->Katalog->Ausführungseinstellungen für Produktbenachrichtigungen</p>
<p><strong>Wenn Fehler bei der Sitemap-Erstellung auftreten:</strong><br />
Katalog->Google Sitemap->Einstellungen für die Erstellung</p>
<p><strong>E-Mail an einen Freund:</strong><br />
Katalog->E-Mail an einen Freund->E-Mail Vorlagen</p>
<p><strong>Gleich drei Vorlagen gibt&#8217;s zur Newsletteranmeldung:</strong><br />
Kunden->Newsletter->Abonnementoptionen</p>
<p><strong>Die E-Mails für die Kundenkonto-Anlegen-Vorlagen finden sich unter:</strong><br />
Kunden->Kundenkonfiguration->Benutzerkonto anlegen Optionen</p>
<p><strong>Gleich darunter, die Vorlage für das vergessene Passwort:</strong><br />
Kunden->Kundenkonfiguration->Passwortoptionen</p>
<p><strong>Die Wunschzettel-Verteiler-Vorlage findet sich unter:</strong><br />
Kunden->Wunschzettel->Verteilungsoptionen</p>
<p><strong>Unter Verkäufe->Verkaufs-E-Mails kann man folgende Vorlagen zuweisen:</strong><br />
Bestellbestätigung (auch für Gäste)<br />
Bestellkommentare (auch für Gäste)<br />
Rechnung (auch für Gastrechnungen)<br />
Rechnungskommentare (auch für Gäste, Kommentare meint sowas wie &#8220;kurze Nachricht&#8221;)<br />
Versand (ich lass das auch-für-Gäste jetzt mal weg)<br />
Versandkommentar (auch für &#8211; ach ja)<br />
Gutschrift (&#8230;)<br />
Gutschriftkommentare</p>
<p><strong>Wenn die Zahlung nicht geklappt hat, gibt&#8217;s auch eine E-Mail:</strong><br />
Verkäufe->Zur Kasse->E-Mails bei fehlgeschlagener Zahlung</p>
<p>Unter ->Erweitert, also da, wo man eigentlich gar nicht mehr so viele E-Mails erwartet, findet man noch zwei:<br />
<strong>Für das vergessene Admin-Passwort:</strong><br />
Admin->Admin Bentuzer-E-Mails<br />
<strong>Und für das Protokoll, wenn was schief läuft:</strong><br />
System-Protokoll bereinigen</p>
<p>Jetzt sind alle Bindestriche alle und ich bin mir immer noch nicht sicher, ob ich sämtliche Vorlagenzuweisungen gefunden habe&#8230; Wer also noch welche findet&#8230;. Kontaktdaten stehen rechts&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2011/07/13/transaktions-e-mails-in-magento-wo-ist-eigentlich-welche-e-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Katze im ebay-Sack heißt: X.Commerce kriegt Magento</title>
		<link>http://NeoShops.de/2011/06/16/die-katze-im-ebay-sack-heisst-xcommerce-kriegt-magent/</link>
		<comments>http://NeoShops.de/2011/06/16/die-katze-im-ebay-sack-heisst-xcommerce-kriegt-magent/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 14:47:45 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=669</guid>
		<description><![CDATA[Magento ist nun also doch in vollen Zügen an eBay gefallen. Nach dem Kauf von 49% der Anteile, kuschelten sich die Entwickler beruhigt an die 1%, die die Mehrheit auf Seiten Variens sicherten. Und nun sind die Gründer Roy Rubin und Yoav Kutner in erster Linie unergründlich und nehmen noch &#8220;Aufgaben wahr&#8221;. Und das, was [...]]]></description>
			<content:encoded><![CDATA[<p>Magento ist nun also doch in vollen Zügen an eBay gefallen. Nach dem Kauf von 49% der Anteile, kuschelten sich die Entwickler beruhigt an die 1%, die die Mehrheit auf Seiten Variens sicherten. Und nun sind die Gründer Roy Rubin und Yoav Kutner in erster Linie unergründlich und nehmen noch &#8220;Aufgaben wahr&#8221;. Und das, was sich so nach Community und OpenSource anfühlte, nach Ideologie und Innovation gehört nun einem Wirtschaftsunternehmen mit Positionierungsschwierigkeiten. </p>
<p>Die Warums werden gewälzt. Finanzielle Erwägungen, nu-abba-ma-Feierabend-Erwägungen? Der rechtzeitige Rückzug, ein Ruhephasenwunsch oder nette Verträge von denen wir alle lieber nichts wissen wollen? </p>
<p>Zu den Warums gesellen sich die Was-Nu. Wird nun Magento ein 100%iges kostenpflichtiges Lizenzprodukt? Das hängt wohl in erster Linie davon ab, welche Verkaufsstrategien eBay verfolgt. Sind Gewinne über Lizenzen das Ziel oder strebt man an, sich als Zahlungsanbieter durchzusetzen und an den Bezahlvorgängen zu verdienen? Im letzteren Fall hätten sie wohl wenig Interesse daran, den Quellcode mit Schloss zu versehen, auf dem ein Preis steht. Dann würde man das Kleinvieh vergraulen. Aber Marketing ist ja nicht immer durchdacht und logisch. </p>
<p>Magento soll Bestandteil von X.Commerce werden, darf aber seinen Namen (und seine Eigenständigkeit, Anm. von @avstudnitz ;-]) behalten und somit sind die kleinen Pictos in den Entwickler-Twitter-Bildern erstmal nicht zu ersetzen. </p>
<p>Und der nächste Namens-X-Versuch, der in Deutschland nicht in die Deutschsprechköpfe will scheint nun auch geboren. Bei &#8220;Crossing&#8221; hat man nun auch verstanden, dass alle Deutschen &#8220;Xing&#8221; sagen und das mit dem Cross nicht internalisiert haben. So sieht X.Commerce XT:Commere nicht nur wahnsinnig ähnlich, so hört es sich auch noch wahnsinnig ähnlich an. Sucht (sorry: googelt) man nach X.Commerce finden sich noch allerlei XT-Treffer unter den Ergebnissen. Soviel zum Thema durchdachtes Marketing. </p>
<p>Ich reihe mich in die Rätselrater ein und schau mich ein wenig um, während ich weiterhin mit Magento Händchen halte. </p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2011/06/16/die-katze-im-ebay-sack-heisst-xcommerce-kriegt-magent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frühjahrsputz: Aufräumen von und Platzschaffen auf Magento-Installationen</title>
		<link>http://NeoShops.de/2011/06/05/fruhjahrsputz-aufraumen-und-platzschaffen-von-magento-installationen/</link>
		<comments>http://NeoShops.de/2011/06/05/fruhjahrsputz-aufraumen-und-platzschaffen-von-magento-installationen/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 10:01:11 +0000</pubDate>
		<dc:creator>Carmen Bremen</dc:creator>
				<category><![CDATA[Magento-Blog]]></category>

		<guid isPermaLink="false">http://NeoShops.de/?p=655</guid>
		<description><![CDATA[Magento läuft und wächst und läuft und wächst und läuft und wächst&#8230; und irgendwann ist dann der Serverplatz eng geworden. Dann heißt es für Magento Programmierer oder versierte Shopbetreiber: Elektrohandschuhe anziehen und den Bytekehrer ausgepackt &#8211; nur wo anfangen? Der Festplattenplatz downloader/perlib/download Hier liegen alle einmal heruntergeladenen Archive von Extensions. Wenn Erweiterungen fehlerhaft sind, wird [...]]]></description>
			<content:encoded><![CDATA[<p><i>Magento läuft und wächst und läuft und wächst und  läuft und wächst&#8230; und irgendwann ist dann der Serverplatz eng geworden. Dann heißt es für Magento Programmierer oder versierte Shopbetreiber: Elektrohandschuhe anziehen und den Bytekehrer ausgepackt &#8211; nur wo anfangen?</i></p>
<p><b>Der Festplattenplatz</b></p>
<p>
<pre>downloader/perlib/download</pre>
</p>
<p>Hier liegen alle einmal heruntergeladenen Archive von Extensions. Wenn Erweiterungen fehlerhaft sind, wird bei &#8220;reinstall&#8221; auf dieses Archiv zurückgegriffen. Kann man &#8211; sollte man aber nicht unbedingt löschen, es sei denn man hat die Extension bereits deinstalliert, dann kann man sie hier auch löschen.</p>
<p>
<pre>var/log</pre>
</p>
<p>Hier liegen die Fehler- und Meldungs-Logdateien, die man (als Datenmessi) auch mal sichern und dann löschen kann. Die liegen allerdings nur hier, wenn das Fehler-Logging im Admin eingeschaltet ist. </p>
<p>
<pre>var/backup</pre>
</p>
<p>Hier liegen die gezippten Datenbank-Backups, die man auch mal (als Datenmessi) lokal speichern und dann löschen kann. Am besten über das Backend unter System->Werkzeuge->Sicherungen</p>
<p>
<pre>var/session</pre>
</p>
<p>Im Ordner Session liegen &#8211; tataaaa, die Sessionfiles, wenn Sessions auf File-Ebene und nicht auf Datenbankebene eingestellt wurde, dieser Ordner kann auch mal geleert werden &#8211; außer aktuelle Sessions&#8230; und ein Backup ist hier auch nicht nötig. </p>
<p>
<pre>media</pre>
</p>
<p>Hier liegen alle Produktbilder &#8211; und Magento hat eine (mir noch nicht schlüssige) Besonderheit: Bilder werden NIE gelöscht. Tauscht man ein Produktbild durch ein anderes aus, wird das erste Bild beibehalten. Diese Ordner wachsen oft riesenhaft an, erstrecht wenn der Shopbetreiber dazu neigt, leinwandgroße Bilddateien hochzuladen oder auch bei automatischen Imports, die vielleicht auch öfter mal durchlaufen&#8230;. Diese ungenutzten Bilder kann man nicht mit Magento-Boardmitteln finden, sondern man muss hierfür ein Script schreiben, in welchem abgeglichen wird, ob zu jeder Grafikdatei im Ordner media ein Eintrag in der Datenbank existiert. </p>
<p><b>Die Datenbank</b></p>
<p>Tabellen, die mit log_  anfangen (log_url, log_url_info, log_visitor, log_visitor_info, NICHT die log_summary_type) können geleert (nicht gelöscht!) werden.<br />
Im Backend unter -> System -> Konfiguration -> Erweitert -> System ->Protokoll bereinigen kann man einstellen, dass die Logs auch mal gelöscht werden sollen. Diese Log-Dateien wachsen oft riesenhaft an und hier lohnt sich grade nach einer längeren Laufzeit des Shops ein Blick in die Log-Tabellen, da per &#8220;default&#8221; das automatische Bereinigen auf &#8220;Nein&#8221; steht&#8230;</p>
<p>Hab ich was vergessen? Dann freu ich mich über Mails mit Hausfrauentipps.</p>
<p>So. Viel Spaß nun beim Aufräumen wünscht sich den Bytestaub von den Händen klopfend&#8230;<br />
Carmen Wingenbach. </p>
]]></content:encoded>
			<wfw:commentRss>http://NeoShops.de/2011/06/05/fruhjahrsputz-aufraumen-und-platzschaffen-von-magento-installationen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

