2013-10-10 2 views
1

"popularity"라는 속성을 만들었습니다.이 속성은 가장 많이 본 제품으로 카탈로그를 구성하는 데 사용됩니다. 아이디어는 제품보기 템플릿 (내 테마에 대한 view.phtml)에서 가치를 얻고 그 값을 증가시키고 업데이트하지만,이 업데이트를 만드는 방법을 모르겠다. 즉, 데이터베이스에 새 값을 저장하는 방법 . I 제품보기 페이지에서이 작업을 넣어했습니다 살펴 :Magento에서 속성 값을 업데이트하는 방법은 무엇입니까?

$popularity = $_product->getData('popularity'); 
$popularity++; 

요점은 $ 인기가 데이터베이스에 새 값으로 저장되지 않는 것입니다. 그 값을 어떻게 저장할 수 있습니까?

나는 제품 페이지 템플릿 (mytheme/템플릿/카탈로그/제품/view.phtml)에 아래의 코드를 넣어하지만 작동하지 않습니다 : 도움을

$from_date = '2010-01-01'; 
$to_date = now(); 
$product_ids = $_product->getId(); 
$viewed = Mage::getResourceModel('reports/product_collection')->addViewsCount($from_date, $to_date)->addFieldToFilter('entity_id', $product_ids); 
foreach($viewed as $view) { 
    $count_views = $view->getData('views'); 
    $product_model->setData('popularity', $count_views)->getResource()->saveAttribute($product_model, $count_views); 
} 

감사합니다! 당신의 속성의 범위는 GLOBAL 경우,

$popularity = $_product->getData('popularity'); 
$popularity++; 
Mage::getSingleton('catalog/product_action') 
    ->updateAttributes(array($_product->getId()), array('popularity', $popularity), 0); 

이 작동합니다

+0

이 나는 ​​제품 페이지 템플릿에이 코드를 넣어 http://stackoverflow.com/questions/15999439/updating-magento-attribute-programatically –

답변

2

이 시도해보십시오. 그것은 다른 무언가가 있다면 당신은이를 사용할 수 있습니다

Mage::getSingleton('catalog/product_action') 
     ->updateAttributes(
      array($_product->getId()), 
      array('popularity', $popularity), 
      Mage::app()->getStore()->getId() 
); 
+0

일 (mytheme 읽기/template/catalog/product/view.phtml) :'$ from_date = '2010-01-01'; $ to_date = now(); $ product_ids = $ _product-> getId(); addViewsCount ($ from_date, $ to_date) -> addFieldToFilter ('entity_id', $ product_ids); $ 표시된 = Mage :: getResourceModel ('보고서/product_collection') foreach ($ view $ view) { \t $ count_views = $ view-> getData ('views'); $ product_model-> setData ('인기도', $ count_views) -> getResource() -> saveAttribute ($ product_model, $ count_views); }'하지만 작동하지 않습니다. : – joaogdesigner

+1

@joaosvu 원래 질문을 편집하여 코드를 추가하십시오. 주석을 읽을 수 없습니다. 감사합니다. – OSdave

+0

물론 확실합니다. 지금 주제를 편집했습니다. :) – joaogdesigner

관련 문제