Strona główna forum Wsparcie Problemy z działaniem Inne wyciąganie atrybutów.

Inne wyciąganie atrybutów.

Wszystkie problemy związane z działaniem sklepu...

Post 1 sie 2011, o 11:55

Posty: 5
Gadu-Gadu: 0

Witam

Zależy mi, aby w pliku Mage\Catalog\Model\Url.php, a dokładniej w metodzie getProductRequestPath wyciągnąć atrybut produktu.
Na chwilę obecną robię to w ten sposób:

$atrybut = Mage::getModel('catalog/product')->load($product->getId())->getData('atrybut');

Oczywiście to działa poprawnie, jednak generuje spore obciążenie.
Jeśli jest to możliwe, chciałbym odwołać się do atybutu od razu, bez konieczności pobierania całego obiektu produktu.
Jest to możliwe?

Inne wyciąganie atrybutów.

PostTeraz jest 19 kwi 2024, o 12:02
Google

Posty: 427
Lokalizacja: Internet

Post 14 wrz 2011, o 22:58

Posty: 14
Gadu-Gadu: 0

może
$product->getData('atrybut');

?
Masz już raz załadowany model produktu, więc po co to robić drugi raz? Poza tym można kombinować z Mage::getSingleton(), który tworzy jeden obiekt danej klasy.

Post 15 wrz 2011, o 00:13

Posty: 98
Lokalizacja: Opole
Gadu-Gadu: 0

Tylko pytanie: Ty potrzebujesz atrybut czy wartość atrybutu dla danego produktu?
Jeżeli wartość to masz najszybszy sposób już podany przez luciddreams.
http://magento.kamilborkowski.pl/

Post 15 wrz 2011, o 08:59

Posty: 5
Gadu-Gadu: 0

Potrzebuję wartości.
Niestety, w modelu produktu, który jest załadowany, nie ma potrzebnych mi danych. Nie ma atrybutu (cechy) ISBN przypisanej do produktu (cecha to pole tekstowe).
Więc albo uda mi się rozszerzyć ten model (jeszcze nie wiem gdzie), albo wyciągnąć dodatkowo ten atrybut.

Post 15 wrz 2011, o 11:04

Posty: 98
Lokalizacja: Opole
Gadu-Gadu: 0

W takim razie wczytując nowy model produktu najlepiej użyć tej metody, którą już wskazałeś. Może rzeczywiście uda Ci się rozszerzyć ten model...
http://magento.kamilborkowski.pl/

Post 15 wrz 2011, o 11:20

Posty: 14
Gadu-Gadu: 0

Tutaj znalazłem jeszcze rozwiązanie, które może pomóc: http://www.magentocommerce.com/boards/viewthread/10048/

przed wywołaniem metody load() na modelu produktu zrób takie coś: $product->addAttribute('atrybut');

Post 15 wrz 2011, o 12:20

Posty: 98
Lokalizacja: Opole
Gadu-Gadu: 0

O! Dzięki luciddreams, pewnie mi też to się przyda. W sumie można byłoby sprawdzić czy przypadkiem nie zadziała po prostu dodanie tej metody w tym miejscu (load() wcale wcześniej nigdzie nie musiał być wykonywany).
http://magento.kamilborkowski.pl/

Post 16 wrz 2011, o 17:13
jemoon Avatar użytkownika
Administrator

Posty: 529
Lokalizacja: Gdańsk
Gadu-Gadu: 0

witam,
Skoro to tekstowy atrybut nie możesz użyć
$product->getKodAtrybutu()

w przypadku gdy atrybut ma np kod (id) kod_atrybutu.

Post 16 wrz 2011, o 20:49

Posty: 98
Lokalizacja: Opole
Gadu-Gadu: 0

@jemoon - nie ma znaczenia czy to atrybut tekstowy czy nie, podana przez Ciebie metoda zadziała zawsze (choć zwróci różne wartości w zależności od rodzaju atrybutu). Problem tutaj jest inny: model na którym operuje JCromwell nie zawiera potrzebnych mu danych. Pisał o tym wcześniej.
http://magento.kamilborkowski.pl/


Powrót do Problemy z działaniem



cron