2015-01-22 2 views
2

Magento 매장에서 제품 관계를 프로그래밍 방식으로 조작하려고합니다.관련 제품을 자발적으로 수정하십시오.

내가 읽은 것부터 setRelatedLinkData가 이동해야합니다.

단순한 테스트로서 제품 관련 제품을 아무 것도 (즉, 빈 배열)로 바꾸려고했지만 문제가되는 제품이 여전히 관련 제품을 백 엔드에 표시하고 있습니다.

내가 함께 일하고 있어요 테스트 코드는 다음과 같습니다

  $product = Mage::getModel('catalog/product')->load($product->getId()); 
      $linkData = array(); 
      print_r($linkData); 

      $product->setRelatedLinkData($linkData); 
      echo "Save\n"; 

      $r = $product->save(); 

이 제품은 아직도 내가 백엔드에 다시로드 관련 제품이 그러나 위에서 언급 한 바와 같이.

참고 : 관련된 제품을 제거하고 싶을뿐만 아니라 결국 새로운 항목도 추가 할 수 있기를 원하므로 DELTE FROM ... SQL 쿼리는 내가 찾고있는 것이 아닙니다. 그러나 제품을 제거 할 수 없다면 확실히 추가하지 않을 것입니다. 한 번에 한 걸음 :-)

답변

6

제가 생각할 수있는 가장 빠른 방법은 링크를 사용하는 것입니다. 자원 :

app/code/core/Mage/Catalog/Model/Resource/Product/Link.php saveProductLinks

// sample code 

$product = Mage::getModel('catalog/product')->load(147); 
$linkData = array(); 

Mage::getResourceModel('catalog/product_link')->saveProductLinks(
    $product, $linkData, Mage_Catalog_Model_Product_Link::LINK_TYPE_RELATED 
); 

당신이 제품이 동일한 코드를 사용하지만 $ linkData로이 제공 할당 할 경우 :

$linkData = array( 
    '145' => array('position' => 1), 
    '146' => array('position' => 2) 
); 
+0

예,이 작품 - 감사합니다! –

관련 문제