]]>

Rozszerzamy funkcjonalność kategorii Magento

2011-11-13 16:49 przez administrator

We wdrożeniach paltformy Magento często stajemy przed koniecznością rozszerzenia funkcjonalności kategorii produktów naszego sklepu.

Najbardziej wygodnym i praktycznym rozwiązaniem będzie wtedy dołożenie dodatkowego atrybutu dla kategrii dostępnego na karcie ich edycji w panelu zarządzania.

Jeśli nie jesteś developerem Magento i nie chcesz zgłębiać tajników wdrażania własnych modułów rozszerzających funkcjonalność Magento (co może być bolesne), pokażemy Ci prosty i szybki sposób jak tego dokonać.

Wystarczy, że zalogujesz się do PhpMyAdmin, wybierzesz swoją bazę i wydasz następujące polecenia MySQL (możesz je wkleić jednocześnie). Ponizszy kod utworzy dodatkowe pole tekstowe z obsługą html i WYSYWIG.

INSERT INTO `eav_attribute` (
`attribute_id` ,
`entity_type_id` ,
`attribute_code` ,
`attribute_model` ,
`backend_model` ,
`backend_type` ,
`backend_table` ,
`frontend_model` ,
`frontend_input` ,
`frontend_label` ,
`frontend_class` ,
`source_model` ,
`is_required` ,
`is_user_defined` ,
`default_value` ,
`is_unique` ,
`note`
)
VALUES ( NULL , '3', 'kod_atrybutu', NULL , '', 'text', NULL , NULL , 'textarea', 'Pole textowe html', NULL , NULL , '0', '0', NULL , '0', '' );

SET @attribute_id = LAST_INSERT_ID();

INSERT INTO `eav_entity_attribute` (
`entity_attribute_id` ,
`entity_type_id` ,
`attribute_set_id` ,
`attribute_group_id` ,
`attribute_id` ,
`sort_order`
)
VALUES ( NULL , '3', '3', '3', @attribute_id, '30' );

INSERT INTO `catalog_eav_attribute` (
`attribute_id` ,
`frontend_input_renderer` ,
`is_global` ,
`is_visible` ,
`is_searchable` ,
`is_filterable` ,
`is_comparable` ,
`is_visible_on_front` ,
`is_html_allowed_on_front` ,
`is_used_for_price_rules` ,
`is_filterable_in_search` ,
`used_in_product_listing` ,
`used_for_sort_by` ,
`is_configurable` ,
`apply_to` ,
`is_visible_in_advanced_search` ,
`position` ,
`is_wysiwyg_enabled`
)
VALUES ( @attribute_id, NULL , '1', '1', '0', '0', '0', '1', '1', '0', '0', '0', '0', '1', '', '0', '', '1' );

  Możliwe do wykorzystania atrybuty i odpowiadające im wartości możesz sobie podejrzeć zagladając w tabele SQL:

eav_attribute, eav_entity_attribute, catalog_eav_attribute

Pamiętaj, że interesują Cię głównie atrybuty o entity_type_id = 3

Dostęp do wartości utworzonych atrybutów z poziomu szablonu otrzymujemy w następujący sposób:

PHP: Mage::registry('current_category')->getData('kod_atrybutu');

Kod testowany na wersjach Magento 1.4.x, 1.5.x, ale powinien z powodzeniem działać takze na pozostałych.

Przed zabawą nie zapomnij o backupie bazy danych swojego sklepu :)

Wróć

Zobacz również