문제

아래 이미지에 표시된 "제품 이름"대신 사용자 정의 속성 값을 표시하는 방법을 찾아야합니다.

Grouped products table
(원천: magentocommerce.com)

/app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php로 작업하고 있습니다

아래 코드는 작동하지 않습니다 (사용자 정의 속성은 매년입니다).

<?php if (count($_associatedProducts)): ?>  
<?php foreach ($_associatedProducts as $_item): ?>  
    <tr>  
        <td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td>

모든 도움이 감사하겠습니다.

편집 : 답은 매우 간단한 것으로 판명되었습니다. 내가 위에서 언급하지 못한 것은 ~였다 실제로 출력 ...하지만 숫자 일뿐입니다 (예 : 52). 이것은 해당 사용자 정의 속성 값의 ID 인 것으로 밝혀졌습니다 (드롭 다운 유형의 사용자 정의 속성).

요약하면
이것은 유형 텍스트의 사용자 정의 속성에 대해 작동합니다.

echo $this->htmlEscape($_item->getYearmade())

그러나 다른 모든 유형의 사용자 정의 속성 (내 생각)의 경우 다음을 사용해야합니다.

echo $this->htmlEscape($_item->getAttributeText('yearmade'))

아래의 Alan Storm이 제공 한 가장 훌륭한 답변 없이는 이것을 발견하지 못했을 것입니다. 감사합니다.

도움이 되었습니까?

해결책

모든 Magento 모델에는 "getData"방법을 사용하여 Key/Value 쌍의 PHP 배열을 반환합니다. Grouped.phtml 파일 상단에서 시도해보십시오 ($ _product가 정의 된 후).

print('<pre>');print_r($_product->getData());print('</pre>');

다음과 같은 것처럼 보이는 출력이 보일 것입니다.

Array
(
    [store_id] => 1
    [entity_id] => 3437
    [entity_type_id] => 4
    [attribute_set_id] => 27
    [type_id] => grouped
    [sku] => 
    [category_ids] => 
    [created_at] => 2009-04-16 03:37:51
...     

따라서 다양한 속성을 잡고 키를 꺼낼 수 있습니다. Magento의 편의성/Magic GetX 및 SetX 메소드를 사용할 수도 있습니다. 모든 Magento 모델에서 이름의 Camel Case 버전을 기반으로 메소드를 호출하여 데이터 배열의 모든 속성에 액세스 할 수 있습니다.

$created_at = $_product->getCreatedAt();
$_product->setCreatedAt($date);

따라서 사용자 정의 속성 이름이 무엇이든 상관없이 위의 이름을 사용하여 얻을 수 있어야하며, 확실하지 않은 경우 getData ()에 의해 반환 된 배열의 내용을 확실하지 않은 경우.

마지막으로, 사용자 정의 속성이 관련 제품 중 하나에있는 경우 간단한 제품 중 하나라면 더 좋아하는 것을 원할 것입니다.

$_associatedProducts[0]->getCreatedAt();

다른 팁

나는 같은 문제가 있었다.

  1. Grouped.phtml을 찾아야합니다app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. 항목을 받으십시오$_item[units]

  3. 테이블에 셀을 넣고 에코를 붙여 넣습니다 $_item['units'];

  4. 그게 다야 :)

Ver에서. 1.3. 그리고 1.4에서도 당신은 사용해야합니다 $ _item ~ 아니다 $ _product, 나에게 이것은 그룹 가능한 테이블에서도 잘 작동합니다.

예시:

<?php echo $_item->getAttributeText('your attribute'); ?>

솔루션을 쉽게 해결할 수있는 플러그인이 있습니다. 제품 옵션을 사용하여 그리드에 표시하는 플러그인을 찾을 수 있습니다. http://www.magemechanics.com/product-grid-options.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top