{"id":1031,"date":"2012-06-28T10:48:33","date_gmt":"2012-06-28T08:48:33","guid":{"rendered":"http:\/\/www.commercers.com\/blog\/?p=1031"},"modified":"2016-11-30T09:40:39","modified_gmt":"2016-11-30T08:40:39","slug":"magento-individuelle-optionen-custom-options-mit-link-zum-upload","status":"publish","type":"post","link":"https:\/\/www.commercers.com\/blog\/magento-individuelle-optionen-custom-options-mit-link-zum-upload\/","title":{"rendered":"Magento &#8211; Individuelle Optionen \/ Custom Options Datei oder Bild mit Link zum Download"},"content":{"rendered":"<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.commercers.com\/blog\/wp-content\/uploads\/2012\/06\/bild-118.jpg\" alt=\"Bild\" width=\"655\" height=\"248\" \/><\/p>\n<p>Es ist wieder etwas Kurioses aufgefallen<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.commercers.com\/blog\/wp-content\/uploads\/2012\/06\/bild-116.jpg\" alt=\"Bild\" width=\"361\" height=\"181\" align=\"left\" \/><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.commercers.com\/blog\/wp-content\/uploads\/2012\/06\/bild-117.jpg\" alt=\"Bild\" width=\"327\" height=\"175\" align=\"right\" \/>: Nutzt man in Magento die Individuellen Optionen und dort den Eingabetyp &#8220;File&#8221;, um also Kunden die M\u00f6glichkeit zu geben bei bestimmten Produkten eigene Dateien wie z.B. Bilder zum Aufdruck mitzusenden.<\/p>\n<p>Standardm\u00e4\u00dfig wird nur leider weder im Warenkorb, noch im Checkout noch in der Bestellbest\u00e4tigung ein Link oder gar die Datei selber mitgegeben. Es steht nur der Titel der Option (hier &#8220;Bild upload&#8221;). Sollte man aber z.B. Dropshipping verwenden und schon in der Bestellemail dem Zulieferer eine M\u00f6glichkeit bieten, das Produkt anzufertigen, w\u00e4re es sch\u00f6n, wenn er direkten Zugriff auf die Datei h\u00e4tte.<\/p>\n<p>Im rechten Bild ist nun zu sehen, wie es sch\u00f6n w\u00e4re. Ein Link, <!--more-->welches auch bei o.g. Stellen angezeigt wird und auch in der Mail auftaucht. Woher kommt aber der Link?<\/p>\n<p>Anscheinend handelt es sich um einen Magentofehler, dass der Link nicht angezeigt wird. Schaut man sich den Seiten Code im Frontend an, sieht dieser OHNE den gew\u00fcnschten Link so aus<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.commercers.com\/blog\/wp-content\/uploads\/2012\/06\/bild-120.jpg\" alt=\"Bild\" width=\"594\" height=\"108\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>mit dem gew\u00fcnschten Link sieht er so aus<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.commercers.com\/blog\/wp-content\/uploads\/2012\/06\/bild-119.jpg\" alt=\"Bild\" width=\"655\" height=\"75\" \/><\/p>\n<p>Hier scheint also etwas zu fehlen. Die Grundstruktur ist aber schon da. Es fehlt am vollst\u00e4ndigen Link und an der Linkbezeichnung.<\/p>\n<p>Was tun, um den Link zu bekommen?<\/p>\n<p>Wir haben durch Zufall den Link \u00fcberhaupt erst &#8220;kennen gelernt&#8221; und dann einige Zeit gebraucht, um rauszufinden warum er angezeigt wird.<br \/>\nEs liegt an der Extension <a title=\"AITOC\" href=\"http:\/\/www.aitoc.com\/en\/magentomods_custom_product_preview.html\" target=\"_blank\">Custom Product Preview <\/a> von AITOC. Das wirklich komische ist hier n\u00e4mlich, dass man mit dieser Extension wunderbar Texte und Bilder f\u00fcr einen Artikel hochladen kann, diese dann auf dem Produkt verschieben, vergr\u00f6\u00dfern, verkleinern etc. pp.. <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.commercers.com\/blog\/wp-content\/uploads\/2012\/06\/bild-121.jpg\" alt=\"Bild\" width=\"335\" height=\"332\" align=\"left\" \/>Hat man dies getan, wird aber nur ein Bild wie das Produkt nachher aussehen soll an den o.g. Stellen angezeigt aber NICHT der Link zu den Dateien. Dies ist also nicht so optimal und daher f\u00fcr uns nicht nutzbar gewesen. Die Extension lie\u00dfen wir aber auf dem System installiert.<\/p>\n<p>Nun stellte sich aber heraus, dass ein (wahrscheinlich unbekannter) Nebeneffekt dieser Extension ist, dass bei ganz normalen Produkten, die nichts mit der Extension zu tun haben, im Falle von Individuellen Optionen in Form von Dateien, pl\u00f6tzlich der Link angezeigt wird.<\/p>\n<p>Es muss also in dieser Extension die Antwort auf die Frage geben, wie man ein Standardprodukt mit Optionen dazu bewegt den Link mitzuteilen.<\/p>\n<p>AITOC selber teilte \u00fcbrigens auf Nachfrage (BEVOR wir das Ph\u00e4nomen mit den Standardprodukten erkannten) mit, dass es nicht m\u00f6glich sei die Datei oder den Link zu dieser mit der Extension mitzugeben. Es seien nur die Previews in der Funktion umschlossen&#8230;.<\/p>\n<p>Nun hoffen wir bald herauszufinden, wo das Geheimnis liegt, um dann jedem die M\u00f6glichkeit zu geben die gew\u00fcnschten Links zu nutzen. Vorschl\u00e4ge sind wie immer gern gesehen.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Nachtrag vom 29.11.2016<\/strong><\/span><\/p>\n<p>Ein Problem scheint vor allem dann zu bestehen wenn es sich um B\u00fcndel-Produkte handelt. In diesem Fall werden auch <strong>keine Links im Backend<\/strong> angezeigt. Dies kann behoben werden indem man die renderer.phtml im Ordner app\/design\/adminhtml\/default\/default\/template\/bundle\/sales\/order\/view\/items anpasst.<\/p>\n<p>Hier wird zu Anfang zwischen die Zeilen<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php $_index = 0 ?&gt;<\/pre>\n<p>und<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php $_prevOptionId = '' ?&gt;<\/pre>\n<p>die Zeile<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php $_order = $this-&gt;getItem()-&gt;getOrder(); ?&gt;<\/pre>\n<p>eingef\u00fcgt.<\/p>\n<p>Anschlie\u00dfend noch ca. nach Zeile 382<\/p>\n<pre class=\"lang:default decode:true \">                &lt;dl class=\"item-options\"&gt;\r\n                &lt;?php foreach ($this-&gt;getOrderOptions() as $option): ?&gt;\r\n                    &lt;dt&gt;&lt;?php echo $option['label'] ?&gt;:&lt;\/dt&gt;\r\n                    &lt;dd&gt;<\/pre>\n<p>folgenden Code<\/p>\n<pre class=\"lang:default decode:true \">                    &lt;?php  \r\n                        $optionValues = unserialize($option['option_value']);\r\n                        if(isset($optionValues['url'])){\r\n                            $url = Mage::getUrl(\r\n                                $optionValues['url']['route'],\r\n                                array(\r\n                                    '_store' =&gt; $_order-&gt;getStoreId(),\r\n                                    'id' =&gt; $optionValues['url']['params']['id'],\r\n                                    'key' =&gt; $optionValues['url']['params']['key']\r\n                                )\r\n                            );\r\n                        } else {\r\n                            $url = '';\r\n                        }\r\n                    ?&gt;\r\n                    &lt;?php if($url!='') { echo '&lt;a href=\"'.$url.'\" target=\"_blank\"&gt;'.$optionValues['title'].'&lt;\/a&gt;'; } ?&gt;<\/pre>\n<p>Anschlie\u00dfend werden die Links f\u00fcr B\u00fcndelprodukte im Backend angezeigt.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Nachtrag vom 30.11.2016<\/strong><\/span><\/p>\n<p>Nun haben wir auch eine Anpassung vorgenommen, um die <strong>Links zu den Bildern in den Transaktionsemails<\/strong> anzeigen zu lassen.<\/p>\n<p>F\u00fcr <strong>Einfache Produkte<\/strong> wird hier die Datei \/app\/design\/frontend\/base\/default\/template\/email\/order\/items\/order\/default.phtml<\/p>\n<p>ben\u00f6tigt (am besten wieder in den eigenen Template-Ordner kopieren und dort anpassen).<\/p>\n<p>Man f\u00fcgt nach<\/p>\n<pre class=\"lang:default decode:true \">&lt;dd style=\"margin:0; padding:0 0 0 9px;\"&gt;<\/pre>\n<p>(ca. Zeile 36) folgenden Code ein<\/p>\n<pre class=\"lang:default decode:true\">                &lt;?php  \r\n                    $optionValues = unserialize($option['option_value']);\r\n                    $url = '';\r\n\r\n                    if(isset($optionValues['url']['route'])) {\r\n                        $url = Mage::getUrl(\r\n                        $optionValues['url']['route'],\r\n                        array(\r\n                            '_store' =&gt; $_order-&gt;getStoreId(),\r\n                            'id' =&gt; $optionValues['url']['params']['id'],\r\n                            'key' =&gt; $optionValues['url']['params']['key']\r\n                            )\r\n                        );\r\n                    }\r\n                        \r\n                    \/\/var_dump($url);exit;\r\n                ?&gt;\r\n                &lt;?php if($url!=''): ?&gt;\r\n                    &lt;?php echo '&lt;a href=\"'.$url.'\" target=\"_blank\"&gt;'.$optionValues['title'].'&lt;\/a&gt;'; ?&gt;\r\n                &lt;?php else: ?&gt;\r\n                    &lt;?php echo $option['value'] ?&gt;\r\n                &lt;?php endif; ?&gt;\r\n            &lt;\/dd&gt;<\/pre>\n<p>und ersetzt damit den Code<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php echo $option['value'] ?&gt;&lt;\/dd&gt;<\/pre>\n<p>Das war es dann hier.<\/p>\n<p>F\u00fcr <strong>B\u00fcndel Produkte<\/strong> wird hingegen die Datei \/app\/design\/frontend\/base\/default\/template\/bundle\/email\/order\/items\/order\/default.phtml (bzw. im eigenen Template)<\/p>\n<p>Dort f\u00fcgt man folgenden Code nach<\/p>\n<pre class=\"lang:default decode:true\">&lt;dd style=\"margin:0; padding:0 0 0 9px;\"&gt;<\/pre>\n<p>(ca. Zeile 159) ein.<\/p>\n<pre class=\"lang:default decode:true \">                &lt;?php  \r\n                    $optionValues = unserialize($option['option_value']);\r\n                    $url = '';\r\n\r\n                    if(isset($optionValues['url']['route'])) {\r\n                        $url = Mage::getUrl(\r\n                        $optionValues['url']['route'],\r\n                        array(\r\n                            '_store' =&gt; $_order-&gt;getStoreId(),\r\n                            'id' =&gt; $optionValues['url']['params']['id'],\r\n                            'key' =&gt; $optionValues['url']['params']['key']\r\n                            )\r\n                        );\r\n                    }\r\n                        \r\n                    \/\/var_dump($url);exit;\r\n                ?&gt;\r\n                &lt;?php if($url!=''): ?&gt;\r\n                    &lt;?php echo '&lt;a href=\"'.$url.'\" target=\"_blank\"&gt;'.$optionValues['title'].'&lt;\/a&gt;'; ?&gt;\r\n                &lt;?php else: ?&gt;\r\n                    &lt;?php echo $option['value'] ?&gt;\r\n                &lt;?php endif; ?&gt;\r\n            &lt;\/dd&gt;<\/pre>\n<p>und ersetzt damit<\/p>\n<pre class=\"lang:default decode:true \">&lt;?php echo $option['value'] ?&gt;&lt;\/dd&gt;<\/pre>\n<p>Nun werden in der eMail auch die Links zu der hochgeladenen Datei angezeigt und diese k\u00f6nnen direkt aus der eMail angeklickt und ge\u00f6ffnet werden.<\/p>\n<p>Genutzt in Magento Version 1.4.1.1 Kommentare? Erg\u00e4nzungen? Hinweise? Gerne!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es ist wieder etwas Kurioses aufgefallen: Nutzt man in Magento die Individuellen Optionen und dort den Eingabetyp &#8220;File&#8221;, um also Kunden die M\u00f6glichkeit zu geben bei bestimmten Produkten eigene Dateien wie z.B. Bilder zum Aufdruck mitzusenden. Standardm\u00e4\u00dfig wird nur leider weder im Warenkorb, noch im Checkout noch in der Bestellbest\u00e4tigung ein Link oder gar die&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[10],"tags":[398,72,700,595,258,744,652,699,745,23,3,498,508,42],"class_list":["post-1031","post","type-post","status-publish","format-standard","hentry","category-allg_magento_probleme","tag-anzeigen","tag-checkout","tag-custom-options","tag-datei","tag-email","tag-file","tag-grose","tag-individuelle-optionen","tag-klicken","tag-link","tag-magento","tag-show","tag-transaktionsemail","tag-warenkorb"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/posts\/1031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/comments?post=1031"}],"version-history":[{"count":0,"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/posts\/1031\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/media?parent=1031"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/categories?post=1031"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.commercers.com\/blog\/wp-json\/wp\/v2\/tags?post=1031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}