2013-02-12 3 views
12

나는 magento로 가격을 프로그래밍 방식으로 업데이트합니다. 이 업데이트 이후 어떻게 가격을 다시 색인화 할 수 있습니까? 이제 SSH 명령을 사용했습니다 :MAGENTO : 프로그래밍 방식으로 가격 다시 인덱스

php indexer.php --reindex catalog_product_price 
+1

ssh 명령의 문제점은 무엇입니까? –

답변

39

다음은 각 색인을 다시 색인화합니다.

for ($i = 1; $i <= 9; $i++) { 
    $process = Mage::getModel('index/process')->load($i); 
    $process->reindexAll(); 
} 

for 루프의 id를 하드 코딩하지 않고 Magento 컬렉션 모델을 사용하여 각 색인을로드 할 수도 있습니다.

$process = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price'); 
$process->reindexAll(); 
+0

David 감사합니다 – dido

+0

다행 당신에게 대답을 찾을 수있었습니다. – dmanners

+0

나는 루프에서 '9'를 좋아하지 않는다. 이 대안이 있습니까? – MatheusJardimB

2

을 다음 SSH 명령을 사용하여 : 당신은 그냥 가격을 인덱싱 할 경우

/* @var $indexCollection Mage_Index_Model_Resource_Process_Collection */ 
$indexCollection = Mage::getModel('index/process')->getCollection(); 
foreach ($indexCollection as $index) { 
    /* @var $index Mage_Index_Model_Process */ 
    $index->reindexAll(); 
} 

그러나 ID는 다음과 같이 2

$process = Mage::getModel('index/process')->load(2); 
$process->reindexAll(); 

당신은 또한 기능 getProcessByCode를 부를 수있다 모든 색인을 다시 색인화 할 수 있습니다.

php shell/indexer.php reindexall 

그러나 당신은 catalog_product_price를 다시 인덱싱하려는 경우 당신은 코드 아래에 사용할 수 있습니다.

php shell/indexer.php --reindex catalog_product_price 
+2

이것은 그가 이미하고있는 일을 설명하는 것일뿐입니다. OP는 프로그래밍 방식으로 작업하는 방법을 알고 싶어합니다. –

1
php -f indexer.php help 

당신은 SSH를 통해 인덱싱 관련된 모든 명령이 명령을 사용할 수 있습니다.

for ($i = 0; $i <= 8; $i++) { 
     $process = Mage::getModel('index/process')->load($i); 
     $process->reindexAll(); 
    } 

For More Info

0

당신이 만약이

$indexer = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price') 
$indexer->reindexEverything(); 

또는 수행하면 다음 코드 방법을 좋아하는 경우에

php indexer.php -- reindex [process_code] 

    e.g: php indexer.php --reindex catalog_product_price 

당신이 코드를 아래를 통해 갈 필요가 SSH를 통해입니다 평평한 테이블을 가지고 있고 왜 (오늘 내가했던 것처럼) 프로그래밍 방식으로 업데이트 된 가격이 fr에 표시되지 않는지 궁금해.

php shell/indexer.php reindexall 

참고의 순서를 : 당신이 정상을 할 경우

php shell/indexer.php -reindex catalog_product_price 
php shell/indexer.php -reindex catalog_product_flat 

: 당신이 가격을 인덱싱 후에 ONT 끝이없이 다시 색인 얼마나 많은 시간, 대부분의 아마 당신은 제품 플랫 인덱스를 다시 할 필요가 없습니다 다시 색인 :

은 제품 플랫 가격하기 전에 색인
Category Flat Data index was rebuilt successfully in 00:00:00 
Product Flat Data index was rebuilt successfully in 00:00:00 
Stock Status index was rebuilt successfully in 00:00:00 
Catalog product price index was rebuilt successfully in 00:00:00 
... 

, 가격 업데이트가 평평한 테이블에 업데이트되지 않았습니다이 이물 (즉, catalog_product_flat_2). 플랫 테이블에서 프로그래밍 방식으로 업데이트 된 가격이 설정되어 있는지 확인하십시오.

+0

또한 n98에서 순서가 올바른 것으로 나타났습니다. –

관련 문제