Edytor WYSIWYG usuwa iframe

Czasami pojawia sie potrzeba aby osadzić na naszej stronię pływająca ramkę iframe. Za pomocą takich ramek umieszczane sa np:

  • filmy YouTube
  • mapy Google
  • reklamy sieci afiliacyjnych

Niestety domyślny edytor WYSIWYG dostarczony z Magento nie obsługuje elementów iframe. Powoduje to że po przełączeniu się do wizualnej edycji strony na której umieszczony mamy np film z YouTube po naszym filmie zostaną tylko śmieci.

Problem ten możemy rozwiązać edytując plik :

js/mage/adminhtml/wysiwyg/tiny_mce/setup.js

Odnajdujemy w nim fragment

var settings = {
        mode : (mode != undefined ? mode : 'none'),
        elements : this.id,
        theme : 'advanced',
        plugins : plugins,
        theme_advanced_buttons1 : magentoPlugins + 'magentowidget,bold,italic,underline,strikethrough, |,justifyleft,justifycenter,justifyright,justifyfull, |,styleselect,formatselect,fontselect,fontsizeselect',
        theme_advanced_buttons2 : 'cut,copy,paste,pastetext,pasteword, |,search,replace,|,bullist,numlist, |,outdent,indent,blockquote,|,undo,redo, |,link,unlink,anchor,image,cleanup,help,code, |,forecolor,backcolor',
        theme_advanced_buttons3 : 'tablecontrols, |,hr,removeformat,visualaid, |,sub,sup, |,charmap,iespell,media,advhr, |,ltr,rtl,|,fullscreen',
        theme_advanced_buttons4 : 'insertlayer,moveforward,movebackward,absolute, |,styleprops, |,cite,abbr,acronym,del,ins,attribs, |,visualchars,nonbreaking,pagebreak',
        theme_advanced_toolbar_location : 'top',
        theme_advanced_toolbar_align : 'left',
        theme_advanced_statusbar_location : 'bottom',
        theme_advanced_resizing : true,

I poniżej dodajemy

extended_valid_elements : 'iframe[src|style|width|height|scrolling|marginwidth|marginheight|frameborder] ,style,script',

Płatność przy odbiorze

Do realizacji funkcjonalności płatności przy odbiorze polecamy wykorzystanie bardzo dobrego modułu: Cash on delivery stworzonego przez firmę Phoenix. Moduł w większości przypadków rozwiązuje nasze problemy w 100%, jednak czasami chcemy wykorzystać go jednocześnie jako płatność za pobraniem i płatność przy odbiorze w sklepie.

Istnieje na to prosty i niezawodny sposób, konfigurujemy nasz odbiór osobisty jako freeshipping_freeshipping. Następnie odszukujemy plik:

app/code/community/Phoenix/CashOnDelivery/ModelCashOnDelivery.php

a w nim w okolicach linii 61

zmienimy

    public function getAddressCosts(Mage_Customer_Model_Address_Abstract $address){
        if ($address->getCountry() == Mage::getStoreConfig('shipping/origin/country_id')) {
            return $this->getInlandCosts();
        } else {
            return $this->getForeignCountryCosts();
        }
    }  

na

    public function getAddressCosts(Mage_Customer_Model_Address_Abstract $address){
        if ($address->getCountry() == Mage::getStoreConfig('shipping/origin/country_id')) {
        	if(Mage::getSingleton('checkout/session') ->getQuote() ->getShippingAddress() ->getShippingMethod() == "freeshipping_freeshipping")
        		return 0;
        	else
            return $this->getInlandCosts();
        } else {
        	if(Mage::getSingleton('checkout/session') ->getQuote() ->getShippingAddress() ->getShippingMethod() == "freeshipping_freeshipping")
        		return 0;
        	else
            	return $this->getForeignCountryCosts();
        }
    }

Dzięki temu od teraz jeżeli klient wybierze odbiór osobisty to za płatność przy odbiorze nie zostanie obciążony dodatkowymi kosztami. Dla każdej innej formy dostawy system doliczy mu koszta ustawione w konfiguracji modułu.

Dostosowywanie rozmiarów obrazów na stronie

Magento w domyślnym szablonie przeskalowuje większość obrazów do kwadratu, co jest często problematyczne. Często projekt graficzny wymaga zachowania odpowiednich proporcji zdjęć.

Domyślnie za skalowanie zdjęc odpowiada funfcja :

helper( 'catalog/image' )->init( $_product, 'small_image' )->resize( 135 ); ?>

Niewiele osób wie że posiada ona kilka ciekawych dodatkowych metod :

  • ConstrainOnly (true) – Nie będzie zmienić rozmiar obrazu, który jest mniejszy niż wymiary wewnętrzne resize ().
  • KeepAspectRatio (true) – Zachowuje proporcje obrazu, wysokość / szerokość.
  • KeepFrame (false) – Wyłącza wyświetlanie białek obramówki wokół obrazu.
  • ->backgroundcolor(’000′, '000′, '000′) – Umożliwia zdefiniowanie koloru obramowania obrazu
  • helper( 'catalog/image' )->init( $_product, 'image' )->constrainOnly( true )->keepAspectRatio( true )->keepFrame( false )->resize( 350, null ) ?>
    

    Powyżej przedstawiamy przykład użycia funkcji, utworzy ona nam miniaturkę o szerokości 350px i szerokości proporcjonalnej do oryginału.

    Poniżej przedstawiamy miejsca gdzie najczęściej wykorzystywana jest funkcja skalowania obrazów:

    / App / design / frontend / default / yourtheme / catalog / product / view / media.phtml (wyświetla obraz na stronie widok produktu)
    / App / design / frontend / default / yourtheme / catalog / product / list.phtml (wyświetla obraz w widoku kategorii)

    Ta wiedza pomogła nam wiele razy. Daj nam znać w komentarzach, jeśli pomoże i tobie!

    Wiele stron jedne Magento ?

    Czasami zachodzi potrzeba stworzenia wielu stron na jednej instalacji Magento. Na szczęście Magento obsługuje w pełni zarówno multisite, multistore jak również multiview.

    O co chodzi z tym podziałem, w skrócie. Każda instalacja magento może posiadać wiele stron, każda strona wiele sklepów a każdy sklep wiele widoków. Dzisiaj opiszemy w jaki sposób stworzyć osobną stronę za pomocą tej samej instalacji Magento.

    Pomijamy oczywiście konfigurację po stronie serwera www i vhostów,

    W panelu administracyjnym klikamy kolejno System->Configuration->Manage Stores
    Następnie klikamy już istniejącą stronę “Main Website” i zmieniamy jej nazwę na “Website 1″
    nazwa ta może być dowolna i powinna nam pomóc w prostej identyfikacji strony później, w polu “code” wpisujemy nazwę przy użyciu tylko małych liter i cyfr np.: “website_1″.

    Da zachowania czytelności warto zmienić również nazwę naszego sklepu i jego widoku np.: “Main Website Store” zmień na “Website store 1″.

    A widok “Default Store View” nazwij na przykład “English Store View”

    Teraz możemy stworzyć drugą stronę
    Klikamy więc „Create website” stronę nazywamy “Website 2″ a w pole kod wpisujemy “website_2″.
    Podobnie dodajemy sklep klikając „Create store” i sklep nazywamy “Website store 2″ na liście rozwijanej w pozycji „Website” wybieramy naszą stronję „Website 2”.

    Z widokiem sklepu postępujemy identycznie, koniecznie musimy utworzyć widok jako iż Magento wyświetla tylko widoki sklepów.

    Aby osiągnąć efekt w którym nasze dwa sklepy będą dostępne za pomocą poniższych adresów url:
    1) http://www.yourdomain.com/website_1
    2) http://www.yourdomain.com/website_2

    Musimy w głównym folderze naszej instalacji Magento stworzyć dwa foldery i nazywamy je kolejno “website_1″ and “website_2″
    Kopiujemy do nich pliki .htacces and index.php z głównej instalacji Magento.

    W .htaccess odnajdujemy linie “RewriteBase /” i zmieniamy ją na “RewriteBase /website_1/” in w pierwszym folderze, dla drugiego folderu “RewriteBase /” zamieniamy na “RewriteBase /website_2/”.

    Następnie w obu folderach otwieramy index.php i zmieniamy w nim “$compilerConfig = ‘includes/config.php’;” na
    $compilerConfig = ‘../includes/config.php’;

    Zamieniamy również $mageFilename = ‘app/Mage.php’; na $mageFilename = ‘../app/Mage.php’;

    Funkcję Mage::run() modyfikujemy w zależności od folderu jedną z poniższych wersji na

    Mage::run(‘website_1′, ‘website’);
    Mage::run(‘website_2′, ‘website’);

    Przechodzimy do panelu administracyjnego System->Configuration wybieramy w panelu Current Configuration Scope: nasz sklep Website 1

    Następnie modyfikujemy parametr Base URL = http://www.yourdomain.com/website_1 (to samo robimy dla strony website_2)

    Od teraz nasze magento obsługuje już dwie strony, w kolejnym wpisie zaprezentujemy jak możemy zmodyfikować cenę niezależnie dla każdej z stron.

    Jak zyskać i utrzymać lojalnych klientów

    Wiele się piszę o znaczeniu zadowolonych klientów, zadowolenie klienta jest konieczne ale nie wystarczające do osiągnięcia sukcesu. To lojalność jest w rzeczywistości najważniejsza. Lojalny klient to klient który wróci do sklepu wielokrotnie, poleci go swoim znajomym i przyjaciołom. Kupi w sklepie nawet wtedy jeżeli cena nie jest najniższa.

    Jeszcze całkiem niedawno panowało przekonanie iż nie ma czegoś takiego jak lojalność klienta. Wszyscy uważali że to cena jest najważniejsza a klient kupi w innym sklepie jeżeli tylko zaoszczędzi tam kilka groszy. Uważamy iż te takie czasy już przeminęły a klienci zaczynają dostrzegać że istnieje coś więcej niż tylko cena. Ludzie są już zmęczeni godzinami szukania aby zaoszczędzić kilka złotych, zaczynają doceniać jakość obsługi i bezpośredni kontakt z nimi.

    Budowanie lojalności wśród naszych klientów oznacza iż powinniśmy się koncentrować na utrzymaniu klientów których sklep już posiada, zamiast za wszelką cenę pozyskiwać nowych. Skoncentrowanie się na nowych klientach często prowadzi do paradoksów, że klientowi bardziej się opłaca kupić w nowym sklepie niż pozostać lojalnym wobec swojego stałego dostawcy.

    Poniżej przedstawiamy kolekcję 7 propozycji jak zbudować i zachować rzeczywistą lojalność klienta.

    1. Komunikuj się z swoim klientem bardziej osobiście. Staraj się poznać swoich klientów, a właściwie ich imiona, nazwiska zapamiętać ich preferencje. Upewnij się, że dostaną biuletyn spersonifikowany specjalnie dla nich. W mailach zwracaj się do nich po imieniu, jeżeli znasz datę urodzenia swojego klienta pamiętaj aby wysłać mu wiadomość z życzeniami urodzinowymi.
    2. Buduj wizerunek firmy. Dzisiejsza technologia pozwala na skorzystanie z wielu narzędzi dzięki którym możesz przedstawić klientowi jak wygląda twoja firma od środka. Pisz bloga firmowego, stwórz swój kanał wideo na youtybe. Niech klient zacznie identyfikować się z firmą i Twoimi produktami.
    3. Lojalność klientów zaczyna się od lojalności pracowników. Jeżeli firma nie potrafi zbudować lojalności wśród swoich pracowników to tym bardziej nie uda się jej to wśród klientów. Zbuduj przyjazną atmosferę w firmie informuj swoich pracowników jak ważni są dla twojej firmy. Organizuj szkolenia w jaki sposób lepiej mają się komunikować z klientem.
    4. Nie traktuj dotychczasowych klientów gorzej od nowych. Wiele firm skupia się tylko jak pozyskać nowych klientów zapominając o dotychczasowych. Poświęć tyle samo zasobów na wynagrodzenie stałego klienta ile poświęcasz na pozyskanie nowego. Nigdy nie dawaj lepszej oferty nowym klienta niż dotychczasowym. Zbuduj system premiowania i upustów dla stałych klientów.
    5. Zapewnij swoim klientom stabilność ceny i jakości. Twój klient z pewnością nie będzie zadowolony jak dowie się, że jego ulubiony produkt podrożał dwukrotnie albo że ma zapłacić za wysyłkę dużo więcej niż dotychczas.
    6. Bądź słowny i elastyczny. Jeżeli obiecujesz klientowi dostawę w 3 dni a coś uniemożliwiło Ci wywiązanie się z tej obietnicy przeproś go za to i postaraj się zrekompensować mu straty. Nie trzymaj się ściśle regulaminu, najważniejsze jest zadowolenie klienta a nie twoje wewnętrzne procedury.
    7. Dbaj o jakość działu obsługi klienta. W miarę rozwoju firmy i rozrastania się działu obsługi klienta, w firmach często pojawia się tendencja do obniżania się jakości obsługi klienta. Zadbaj o niezbędne szkolenia i motywację tego działu. Dział obsługi klienta jest Twoim kluczem do budowania lojalności wśród

    Twoich klientów. Statystyki pokazują iż utrzymanie stałego klienta jest od 3 do 10 razy tańsze od pozyskania nowego. Nie zapominaj o tym w swojej działalności e-commerce.