Jak ustawić ustawienia domyślne dla witryny w pliku config.xml?

13

W przypadku modułów niestandardowych wolę umieszczać ustawienia konfiguracji systemu w pliku config.xml (część ustawień domyślnych). Ułatwia to przepychanie kodu z mojego komputera lokalnego do środowiska deweloperskiego / tymczasowego / na żywo, ponieważ nie muszę wchodzić w ustawienia administratora i ponownie wchodzić w ustawienia. Są też inne zalety - szybsze wykonywanie czynności w edytorze tekstu i zawsze możesz mieć rozsądne ustawienie domyślne, jeśli jest coś w pliku config.xml.

Chciałbym to zrobić w przypadku sklepu Magento z wieloma witrynami, który ma różne ceny wysyłki dla różnych stron internetowych (i wyświetleń sklepu). W tej chwili moje sklepy noszą nazwy „euro”, „usd” i „gbp”. Widok „euro” przyjmuje domyślne ustawienia administratora bez nadmiaru na poziomie strony internetowej, podczas gdy widoki „gbp” i „usd” są nadrzędne na poziomie strony internetowej.

    ...
    <default>
    <carriers>
        <my_courier>
            <stuff_goes_here_such_as_price/>
            <price>15.00</price>
            ...
        </my_courier>
    </carriers>
</default>

Kot Henry'ego
źródło

Odpowiedzi:

21

Możesz to dodać za pomocą <stores>węzła w pliku config.xml w następujący sposób.

<stores>
    <store_code>

Możesz to również zrobić na poziomie witryny za pomocą <websites>węzła w pliku config.xml w następujący sposób.

<websites>
    <website_code>

Jedynymi przykładami tego w kodzie podstawowym jest strona administratora, ponieważ są to jedyne strony internetowe lub sklepy, które na pewno są w systemie. Sprawdź app/code/core/Mage/Adminhtml/etc/config.xmlprzykład.

<websites>
    <admin>
        <web>
            <routers>
                <frontend>
                    <disabled>true</disabled>
                </frontend>
            </routers>
            <default>
                <no_route>admin/index/noRoute</no_route>
            </default>
        </web>
    </admin>
</websites>
David Manners
źródło
Nie wiedziałem tego! Czy możesz rozwinąć, aby pokazać to z przykładowymi wartościami domyślnymi, aby było jasne, dokąd zmierza?
Jonathan Hussey
Dziękuję Ci bardzo! Podejrzewam, że będę musiał przeprowadzić pewne eksperymenty, aby rzeczywiście działał z moim konkretnym modułem, ale świetnie jest nauczyć się czegoś nowego! Dzięki jeszcze raz!
Henry's Cat
@David Manners - to właściwie działa dobrze. Następne pytanie - pola wyboru „użyj domyślnej”, jak mogę je rozbroić na poziomie sklepu / strony internetowej?
Henry's Cat
Warto zauważyć, że działa to również w Magento 2!
Josh Davenport,