Magento: Einzelne EAV-Attribute speichern

25. Mai 2012 at 17:22

Möchtet ihr bei einem Produkt, Bestellung, oder ähnlich in Magento ein Attribute speichern, so geht das in der Regel wie folgt (Bsp. an einem Produkt):

// Produkt laden
$product = Mage::getModel("catalog/product")->load(123);
// Attribut ändern
$product->setTitle("Asdf");
// Produkt speichern
$product->save();

Allerdings funktioniert das Speichern nicht an jeder Stelle, hinzu kommt das bei dem obigen Beispiel jeweils das gesamte Produkt inkl. alle Werte gespeichert wird. Da das EAV-Model ein komplexes Konstrukt ist, kann der Speichervorgang unnötig viele Ressourcen verschwenden.

Deshalb ist das Speichern einzelner Attribute direkt über das Resource-Model die bessere Wahl.
Hier am Beispiel des Produktes:

// Produkt laden
$product = Mage::getModel("catalog/product")->load(123);
// Attribut ändern
$product->setTitle("Asdf");
// geändertes Attribute über das Resource-Model des Produktes speichern
$product->getResource()->saveAttribute($product, "title");

Sollte euch der Artikel geholfen haben, so teilt diesen doch bitte bei Google+ und/oder Facebook!

Wartungsseite / Wartungsmodus über mod_rewrite definieren? Wartungsseiten in Magento

18. Mai 2012 at 14:18

Ihr möchtet eine Wartungsseite über mod_rewrite für verschiedene Hosts (Domains / Webseiten) und als Ausnahme z.B. das interne Firmennetzwerk definieren?

Hier die Lösung über mod_rewrite:

############################################
## Maintenance window
RewriteCond %{HTTP_HOST} ^domain1\.de$
RewriteCond %{HTTP:x-forwarded-for} !^192\.168\.0\.13$
RewriteCond %{REQUEST_URI} !^/media/ [NC]
RewriteRule .* tools/wartung/maintenance_page1.php [L]
RewriteCond %{HTTP_HOST} ^domain2\.de$
RewriteCond %{HTTP:x-forwarded-for} !^192\.168\.0\.13$
RewriteCond %{REQUEST_URI} !^/media/ [NC]
RewriteRule .* tools/wartung/maintenance_page2.php [L]
RewriteCond %{HTTP_HOST} ^domain3\.de$
RewriteCond %{HTTP:x-forwarded-for} !^192\.168\.0\.13$
RewriteCond %{REQUEST_URI} !^/media/ [NC]
RewriteRule .* tools/wartung/maintenance_page3.php [L]

 

Gleichseitig sollte auf der maintenance_page ein 503-Status-Code ausgegeben werden, z.B. mit folgender Seite:

<?php

<?php
ob_start();
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
header('X-Powered-By:');
?><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>503 Service Temporarily Unavailable</title>
</head><body>
<h1>Service Temporarily Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
</body></html>

?>

Gefällt euch der Artikel? Dann bitte bewerten und bei Facebook & Google+ teilen!
Danke für euren Support!

SEO – Mehrsprachigkeit: Was ist besser? Mehrere Länderdomains oder eine .com?

8. Mai 2012 at 18:23

Auf der Suche nach geeigneten Domains für eine neue Webseite wird oft die Frage gestellt „Mehrere Länderdomains oder eine .com?“. Als Beispiel fällt mir ein Web-Shops ein, welcher in verschiedenen Ländern präsent sein soll.

Klares Pro-Argument ist ein psychologischer Faktor, und zwar werden bei der breiten Masse der Internetbenutzer (primär ältere Nutzer) Webseiten mit der Länderdomain des jeweiligen Landes, als vertrauenswürdiger angesehen und damit auch mehr genutzt. Google selbst kann die Seiten ebenfalls besser zuordnen, vor allem bei der lokalen-Suche kann dieser Faktor ein Mehrwert sein. Auch kann es durchaus sein dass Anwender die jeweilige Domain intuitiv eingeben oder teile der Domain bei google.de, so dass diese als Vorschlag erscheint.

Aber was ist jetzt SEO-technisch die beste Lösung?

Da großer internationaler Konzern, lieber eine „große“ .com oder .eu Domain mit vielen Unterseiten und den jeweiligen Sprachversionen als Unterkategorien oder doch lieber mehrere Domains mit Länderendungen (.de, .co.uk, .fr, etc.)?

Und was ist jetzt bei gleichsprachigen Ländern wie z.B. Österreich (.at) und gleichzeitig Deutschland (.de)?
Wie wird da verhindert das Google beide  Seiten bzgl. duplicate content abstraft?

Viele Fragen, auf die ich in diesem Artikel eingehen möchte.

Bei der Lösung mit jeweils eigenständigen Länder-Domains, erfolgt eine Aufsplittung der eingehenden Linkpower, wobei bei der 1-Domain-Lösung (z.B. über .com oder .eu mit jeweils Unterseiten pro Land) die Domain den gesamten Link-Juice abbekommt.

Ist das überhaupt ein Problem? Ist mit diesem Faktor schon die Entscheidung gefallen?

Nicht ganz und vor allem ist es weit wichtiger, auch über die regionalen Suche gefunden zu werden.

Mit der .com wird die Seite zwar auch gefunden, wenn jemand „Seiten aus Deutschland“ bei Google anklickt (oder je nach dem aus welchem Land die IP kommt), jedoch nicht Seiten aus Östereich / Seiten aus der Schweiz etc.!

Mit .de, .ch, .at etc. wird automatisch auch die Seite mit der Regionalen Suche gefunden. Was wiederum einfacher zu optimieren ist.

Und wie lösen wir das Duplicate Content Problem bei Seiten mit der selben Sprache aber unterschiedlicher Domain?

Jetzt steht weiterhin dass Problem, der doppelten Inhalte auf zwei verschiedenen Webseiten/Domains mit der selben Sprache, im Raum (z.B. .de und .at). Wie lösen? Durch 301 oder canonical-link würden nicht beide Varianten auch in den SERPs gelistet, was allerdings gewollt ist.

Internationale und mehrsprachige Websites

Schauen wir doch mal bei Google in der FAQ dort wird unser Beispiel genannt.
Gerade im spanischen Raum (Latainamerika, Spanien, etc.) kommt es zu ähnlichen Problen.
Hier geht Google im Detail auf das Problem „Duplizierter Content und internationale Websites“ ein.

Interessant ist meiner Meinung nach die Kombination beider Varianten, daher schon auf die jeweiligen Länderdomains setzen, allerdings auch ein offizielles Länder-Kürzel mit in die URL aufzunehmen, z.B. bei der kanadischen Domain:

http://example.ca/fr/vélo-de-montagne.html http://fr.example.ca/vélo-de-montagne.html

Google sagt dazu

Ein Hinweis auf die Sprache in der URL kann auch dabei helfen, Probleme mit mehrsprachigem Content auf Ihrer Website zu ermitteln.

„Ein Hinweis auf die Sprache in der URL kann auch dabei helfen, Probleme mit mehrsprachigem Content auf Ihrer Website zu ermitteln.

Zusätzlich geht Google auf das Thema „Duplizierter Content und internationale Websites“ ein, allerdings wird genau das Problem nicht erklärt, sondern darauf verwiesen per canonical oder redirect auf die als „bevorzugte Version“ fest gelegte Seite zu leiten. Aber genau das wollen wir ja nicht, die Seiten sollen sowohl mit der .de-domain in den deutschen SERPs als auch mit der .AT-Domain in den Österreichischen SERPs gelistet werden, auch mit dem selben Content.

Ich denke dieser Weg ist Bestandteil der Lösung (neben einbinden der Sprache in der URI):

Einstellungen für die geografische Ausrichtung (Geotargeting). Mithilfe des Geotargeting-Tools in den Webmaster-Tools können Sie für Google angeben, dass Ihre Website auf ein bestimmtes Land ausgerichtet ist. Dies sollten Sie jedoch nur tun, falls Ihre Website eine gTLD (Generic Top-Level Domain) aufweist. Falls sich Ihre Website an mehrere Länder richtet, sollten Sie dieses Tool nicht verwenden. Es wäre beispielsweise sinnvoll, für eine Website über Restaurants in Montreal „Kanada“ als Ziel einzustellen. Hingegen ist dieses Ziel für eine Website, die sich an französischsprachige Nutzer in Frankreich, Kanada und Mali richtet, nicht geeignet.

Zuständlich sollte das Markup Linkelements „rel=“alternate“ hreflang  zur Auszeichnung verwendet werden:

<link rel="alternate" hreflang="es" href="http://www.example.com/" />
<link rel="alternate" hreflang="es-ES" href="http://es-es.example.com/" />
<link rel="alternate" hreflang="es-MX" href="http://es-mx.example.com/" />
<link rel="alternate" hreflang="en" href="http://en.example.com/" />

Anwendungsbeispiel für Österreich, Schweiz & Deutschland

URL: www.website.de/beispielseite/
<link rel=“alternate“ hreflang=“de-AT“ href=“http://www.website.at/beispielseite/“ />
<link rel=“alternate“ hreflang=“de-CH“ href=“http://www.website.ch/beispielseite/“ />

URL: www.website.ch/beispielseite/
<link rel=“alternate“ hreflang=“de-AT“ href=“http://www.website.at/beispielseite/“ />
<link rel=“alternate“ hreflang=“de-DE“ href=“http://www.website.de/beispielseite/“ />

URL: www.website.at/beispielseite/
<link rel=“alternate“ hreflang=“de-CH“ href=“http://www.website.ch/beispielseite/“ />
<link rel=“alternate“ hreflang=“de-DE“ href=“http://www.website.de/beispielseite/“ />

Über hreflang wird also neben der Sprache auch die Region hinterlegt, in der die jeweilige Seite ausgespielt werden soll.

Quelle: googlewebmastercentral-de.blogspot.de/2011/12/neues-markup-fur-mehrsprachige-inhalte.html

Was meint Ihr zu diesem Thema?
Ich würde mich freuen wenn ihr eure Meinung als Kommentar schreibt.

 

Anwendungsbeispiel


URL: www.website.de/beispielseite/

<link rel=“alternate“ hreflang=“de-AT“ href=“http://www.website.at/beispielseite/“ />
<link rel=“alternate“ hreflang=“de-CH“ href=“http://www.website.ch/beispielseite/“ />

URL: www.website.ch/beispielseite/
<link rel=“alternate“ hreflang=“de-AT“ href=“http://www.website.at/beispielseite/“ />
<link rel=“alternate“ hreflang=“de-DE“ href=“http://www.website.de/beispielseite/“ />

URL: www.website.at/beispielseite/
<link rel=“alternate“ hreflang=“de-CH“ href=“http://www.website.ch/beispielseite/“ />
<link rel=“alternate“ hreflang=“de-DE“ href=“http://www.website.de/beispielseite/“ />

Über hreflang wird also neben der Sprache auch die Region hinterlegt, in der die jeweilige Seite ausgespielt werden soll.