Od czasu aktualizacji do najnowszej wersji Magento zauważyłem, że na stronie kasy pojawił się nowy wpis z prośbą o drugie imię / inicjał klienta.
Jak usunąć wpis „Drugie imię / inicjał” ze strony kasy?
Od czasu aktualizacji do najnowszej wersji Magento zauważyłem, że na stronie kasy pojawił się nowy wpis z prośbą o drugie imię / inicjał klienta.
Jak usunąć wpis „Drugie imię / inicjał” ze strony kasy?
Odpowiedzi:
Miałem ten sam problem podczas aktualizacji do Magento CE 1.9.2.1 z Magento CE 1.9.2.0 . Aktualizacja spowodowała wyświetlenie Drugiego imienia, ale kiedy sprawdziłem administratora, System > Configuration > Customers > Customer Configuration > Name and Address Options
ustawienie „Pokaż drugie imię (początkowe)” wyświetlało już „Nie” - tego właśnie chciałem. Zmieniłem ustawienie na „Tak”, a następnie z powrotem na „Nie”, zanim kliknąłem „Zapisz konfigurację”, a to natychmiast usunęło drugie imię / inicjał z kasy, kiedy odświeżyłem stronę.
W moim przypadku pracuję nad aktualizacją sklepu z Magento 1.8.x do Magento 1.9.x. W moim środowisku programistycznym zaktualizowałem wersję z 1.9.2.0 do 1.9.2.1. Aby zaktualizować witrynę na żywo, kiedy uruchomimy aktualizację z wersji 1.8.x do 1.9.x, będziemy musieli zaktualizować wiele ustawień administratora, co planujemy wykonać bezpośrednio w bazie danych za pomocą zapytania. W bazie danych możesz zobaczyć, jak Magento zmienia ustawienie Drugiego imienia.
Tabela „core_config_data` obsługuje ustawienie administratora dla„ Pokaż drugie imię (początkowe) z zapisem gdzie `core_config_data`.`path`='customer/address/middlename_show'
.
Ten rekord zawiera ustawienie w polu „wartość” (0 = „Nie”, 1 = „Tak”). To pole nie ulega zmianie, gdy pojawia się drugie imię po aktualizacji do Magento CE 1.9.2.1 . Jeśli zapiszesz zmianę „Pokaż drugie imię (początkowe)” w ustawieniach administratora po tym, jak Magento dokona zmian podczas aktualizacji do 1.9.2.1, zmieni tutaj wartość „core_config_data`.
Aktualizacja do 1.9.2.1 nie zmieniła rekordu w `core_config_data`, a zatem co jest wyświetlane w ustawieniach administratora. Ale aktualizacja zmienia inny zapis innej tabeli.
W moich wielu instancjach deweloperskich Magento, tabela `eav_attribute` ma 2„ drugie imię ”„ kod_atrybutu ”, przy czym„ atrybut_id ”to 6 i 21 . `Customer_eav_attribute` tabela widoczności atrybutu z pola` is_visible`.
`is_visible` = 0
. `is_visible` = 1
.`is_visible`=0
ponownie, a drugie imię i drugie pole zniknęły z kasy.Magento CE 1.9.2.1 Aktualizacja przerzucony ustawienie drugie imię w tabeli `customer_eav_attribute` bez wpływu na to, co jest wyświetlane w admin Magento pod„Pokaż drugie imię (początkowy)”ustawienie. Możesz to naprawić w taki sposób, że ustawienie jest zwykle dostosowywane przez administratora, bez dokonywania daleko idących dostosowań szablonów, przełączając ustawienie „Pokaż drugie imię (początkowe)”.
Jeśli z jakiegoś powodu musisz przenieść to ustawienie administratora do wielu kopii sklepu lub w pakiecie aktualizacji administratora, na przykład podczas uaktualniania sklepu w celu dopasowania do środowiska programistycznego ... Możesz użyć następującej instrukcji SQL dla tego ustawienia ( pod warunkiem, że wiesz, że „drugie imię” w twoim sklepie to „id_atrybutu” 6 i 21. Jest to standard w Magento, ale dla bezpieczeństwa najpierw sprawdź najpierw tabelę „eav_attribute”).
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);
Opcja konfiguracji systemu ma model zaplecza ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
), którego _afterSave
metoda dokonuje tej samej zmiany w atrybucie EAV klienta (tabela:) customer_eav_attribute
.
Wartość opcji konfiguracji systemu i wartość atrybutu EAV is_visible
niekoniecznie muszą być zsynchronizowane (albo z powodu aktualizacji Magento, albo jeśli opcja konfiguracji została zmieniona programowo lub z innego powodu).
Kilkukrotne naciśnięcie przycisku naprawi go, a jeśli jesteś podobny do mnie i używasz skryptów instalacji / aktualizacji do wszystkiego, możesz wykonać następujące czynności:
Mage::getModel('core/config')
->saveConfig('customer/address/middlename_show', 0);
try {
$attribute = Mage::getSingleton('eav/config')
->getAttribute('customer', 'middlename')
->setIsVisible(0)
->save();
$attribute = Mage::getSingleton('eav/config')
->getAttribute('customer_address', 'middlename')
->setIsVisible(0)
->save();
} catch (Exception $e) {
Mage::logException($e);
throw $e;
}
$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
Najłatwiejszy sposób:
Magento ver. 1.9.2.1
System > Configuration > Customers > Customer configuration > Name and Address Options
Show Middle Name (initial)
= No
Usunięcie {{depend middlename}}{{var middlename}}
sugerowane przez @sr_magento w odpowiedzi nie powoduje usunięcia Show Middle Name (initial)
pola z samej strony kasy. Usuwa je tylko z obszarów, w których dane adresowe klienta są renderowane / drukowane, np. W obszarze administracyjnym, plikach PDF i szablonach e-mail.
Nie ma potrzeby usuwania pola z szablonów wiadomości e-mail. Jest to przesada i musisz ponownie dodać te wpisy do szablonów wiadomości e-mail, na wypadek gdybyś zdecydował się włączyć je Show Middle Name(initial)
w przyszłości.
Zauważyłem też tę usterkę po aktualizacji z Magento CE 1.9.2.0 do Magento CE 1.9.2.1 za pomocą downloadera Magento. Wydaje się, że aktualizacja dostosowuje ustawienie dla Show Middle Name (initial)
under
System > Configuration > Customers > Customer Configuration > Name and Address Options
z „Nie” na „Tak” . Zdarzyło mi się to w kilku sklepach na różnych serwerach.
Aby to cofnąć, po prostu ustaw go ponownie na „Nie” i zapisz konfigurację. Show Middle Name (initial)
Pola nie będą wyświetlane na stronie transakcji.
Address Templates
sugerowanego sposobu nie zmienia pól wejściowych Strona kasy w interfejsie sklepu. Wpływa tylko na szablony do drukowania adresów. Proszę przeczytać następującą dokumentację . Masz rację co do obszarów klienta w panelu administracyjnym. Przeformułuję tę część mojej odpowiedzi.