2010-12-10 3 views
6

В пурпуре, как получить идентификатор категории каждого продукта из его идентификатора продукта.ID категории Magento от ID продукта

$items = $request->getAllItems(); 
    $c   = count($items); 

    for ($i = 0; $i < $c; $i++) { 
     if ($items[$i]->getProduct() instanceof Mage_Catalog_Model_Product) { 

      if ($items[$i]->getProduct()->getId()) { 
       $this->_dhlAllowed = false; 
       } 
     } 
    } 

Здесь $items[$i]->getProduct()->getId() ID продукта. Я хочу его идентификатор категории.

+2

$ пунктов [$ I] -> getProduct() -> getCategoryIds(); Это возвращает идентификатор категории на одном сервере, но не на другом сервере. Есть идеи? – Elamurugan

+0

Вы пытались перевернуть таблицы плоских категорий на сервере? Такие странные вещи обычно связаны с устаревшим (или поврежденным) индексом. – mcmil

ответ

6
public function getProductCategory() { 
    /* @var $product Mage_Catalog_Model_Product */ 
    $product = Mage::registry('current_product'); 
    if ($product->getId()) { 
     $categoryIds = $product->getCategoryIds(); 
     if (is_array($categoryIds) and count($categoryIds) >= 1) { 
      return Mage::getModel('catalog/category')->load($categoryIds[0]); 
     }; 
    } 
    return false; 
} 
+1

'count ($ categoryIds)' должно быть '> = 1' – aki

2
Mage::registry('current_product')->getCategoryId(); 

таким образом, категория идентификатор текущего продукта может быть получить.

2

Предположим, если вы хотите, чтобы все идентификаторы категорий от текущего идентификатора продукта вы можете получить от

Mage::registry('current_product')->getCategoryIds(); 

это может помочь вам

Смежные вопросы