제품 수집 문제-잘못된 가격 데이터 또는 재고 품목이 표시되지 않음


9

현재 카테고리를 기반으로 제품 컬렉션을 검색하고 있습니다. 재고가 있거나 품절 된 제품을 모두 포함하려면이 콜렉션이 필요하며 가격 데이터도 올바르게 표시해야합니다.

내 상점은 세금을 포함하여 제품 가격을 저장하고 상점 앞면에서 가격을 포함 및 독점으로 표시하도록 구성되어 있습니다.

컬렉션을 얻는 코드는 다음과 같습니다.

$category = Mage::registry('current_category'); 
$_productCollection = Mage::getModel('catalog/product')->getCollection()
                ->addCategoryFilter($category)
                ->addAttributeToSelect(['sku', 'name', 'price'])
                ->addAttributeToFilter('status', 1)
                ->addAttributeToSort('jump_number', Varien_Data_Collection::SORT_ORDER_ASC); 

위의 문제는 getPriceHtml()방법을 사용하여 가격 블록을로드 할 때 포함 가격과 독점 가격이 모두 포함 가격으로 표시된다는 것입니다.

조사 결과, addFinalPrice()컬렉션에 방법을 추가 하면 정확한 배타적이고 정확한 가격이 책정됩니다.

그러나이 addFinalPrice()방법을 포함 시키면 컬렉션에 더 이상 품절 된 제품이 포함되지 않습니다.

올바른 가격 데이터를 반환하고 컬렉션에 판매 가능 제품과 품절 제품이 모두 포함되어있는 방법이 있습니까?

답변:


3

addFinalPrice()또한 호출합니다 applyProductLimitationFilters. 이 방법은 현재 상점에서 볼 수있는 제품 만 표시하는 상점 필터와 같이 콜렉션 구성 방식에 따라 여러 필터를 적용합니다.

가격 필터가없는 것처럼 보이는지 여부에 관계없이 모든 제품을로드하려면 다음 호출 하기 전에 상점 필터를 제거하십시오 addFinalPrice().

$collection->setStoreId(null);

@fschmengler-감사합니다. 이것이 더 나은 옵션 인 것 같습니다.
BrynJ

1

지금이 문제를 해결했으며 실제로 매우 간단하고 논리적 Configuration -> Catalog -> Inventory입니다. '디스플레이 품절 표시' 를 로 설정해야했습니다 Yes.

위의로 설정 Yes하고 addFinalPrice()메소드를 컬렉션에 추가하면 이제 모든 제품과 올바른 가격 데이터를 얻습니다.


당신은 어디에서나 재고 제품을 보여주고 싶다면 괜찮습니다 . 이 컬렉션에만 해당되는 경우 아래 답변을 참조하십시오.
Fabian Schmengler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.