2012-07-20 4 views
0

난 그냥 내가 product_collection이있는 경우 (예를 들어, 카탈로그 페이지에서 생성 된 컬렉션)젠토 - 제품 모델 및 product_collection 항목

가 // 이벤트가 $ productCollection = $ 관찰자를 catalog_product_collecion_after_load 것을 알고 평면 카탈로그 모드에서 서로 다른 특성을 가지고 -> getEvent() -> getCollection();

이 컬렉션에서 항목을 가져 와서 상대 모델과 비교하면 $ _product = Mage :: getModel ('catalog/product') -> load ($ item-> getEntityId());

동일한 엔티티의이 2 인스테이스는 다른 속성을가집니다!

플랫 카탈로그 모드로 작업하고 있습니다. 컬렉션의 항목이 제품 모델과 다른 이유는 무엇입니까? 이것이 올바른 행동인지 그리고 두 객체 모두에서 동일한 속성을 갖는지를 알고 싶습니다.

미안하지만, 마 젠토는 매우 어두운 :(

답변

0

flat_mode가있는 catalog_product_collection이 더 복잡합니다. 항목의 컬렉션 제품 항목에있는 속성은 catalog_product_flat 테이블과 제품 엔터티의 EAV 속성 간의 조인입니다.

그래서에서 제품 모델 :

  • 수집 우리는 속성이 catalog_product_flat 테이블과 EAV 속성
  • 을 getModel ('카탈로그/제품') 우리 모두가 EAV를 사이에 가입해야 속성

이러한 속성을 통해 우리는 분명히 다른 속성을 갖게 될 것이라고 생각합니다.

이제 어떤 속성이 catalog_product_flat에 있습니까? 단순함은 magento 속성을 사용하여 "제품 목록에 사용됨"으로 확인한 속성입니다! :)

하지만 일부 속성에서는이 옵션을 변경할 수 없으며 선택한 유형에 따라 다릅니다. 속성 유형 이미지는 "제품 목록에 사용"플래그가 없으므로 새 이미지를 제품 목록에 표시하려면 catalog_eav_attribute를 수정해야합니다.

음,이 사실을 알기 위해 2 일을 보냈습니다. 다른 불운 한 마젠타 개발자에게 유용 할 것입니다. :)

젠토 버전 1.5

1

로드 Mage::getModel('catalog/product')->load($item->getEntityId()); 때문에에만 지정된 제품에 대한 모든 속성과 컬렉션로드 상황에서 다른 속성. 그런 다음 attributes 같은 app/code/core/Mage/Catalog/etc/config.xml 무언가 (CTRL + F)를 찾을 수있다 제품 컬렉션을 위해 기본으로로드 된 모든 속성 목록을 볼 수 있으며 또한 모듈 또는 카탈로그 config.xml에서 직접 변경할 수 있습니다. 그러나 디버그를 제외한 app/code/core/Mage/Catalog/etc/config.xml에서 변경하는 것이 가장 좋지 않습니다.

+0

네 좋은! 나는 flat_catalog_product 테이블을 가지고 있으며 "image"를 검색하려는 속성이이 테이블에 없다는 것을 알게되었습니다!그러나 이것은 제품의 EAV 구조에 존재합니다. 평면 테이블에도 존재할 수 있습니다 ... 무엇인가 잘못되었습니다! :( –