2013-08-07 12 views
5

Ho cercato per ore ma non ho trovato una risposta a questo, o un modulo per aiutare.Categorie elenco opencart all'interno dei produttori

Stiamo costruendo un negozio e il nostro cliente ha bisogno della possibilità di navigare nel negozio per produttore. C'è un modo in cui la pagina del produttore può elencare le categorie e le sottocategorie.

Ci sono due modi per farlo.

  1. Aggiungi marche aggiungendo categorie nella sezione di amministrazione.
  2. Ottieni tutte le categorie all'interno dei marchi unendo operazione durante la visualizzazione del produttore.

Esistono moduli disponibili per collegare le categorie con i produttori in modo che possa visualizzare le categorie All'interno della pagina produttore.

Oppure l'unico modo è interrogare tutti i prodotti all'interno del produttore e ricavarne le categorie ... Immagino non sia una buona soluzione.

Quindi qualsiasi suggerimento sarebbe di grande aiuto.

Grazie.

risposta

2

Ho trovato un modo per trovare le categorie che appartengono a un produttore. La seconda opzione sembra migliore.

Qui è la funzione che ho aggiunto a catalog/model/catalog/manufacturer.php

public function getManufacturerCategories($manufacturer_id) { 
    $query = $this->db->query(" 
     SELECT 
     DISTINCT c.category_id,cd.name 
     FROM 
     ". DB_PREFIX . "manufacturer m 
     LEFT JOIN ". DB_PREFIX. "product p ON (m.manufacturer_id = p.manufacturer_id) 
     LEFT JOIN ". DB_PREFIX. "product_to_category p2c ON (p2c.product_id = p.product_id) 
     LEFT JOIN ". DB_PREFIX. "category c ON (c.category_id = p2c.category_id) 
     LEFT JOIN ". DB_PREFIX. "category_description cd ON (cd.category_id = p2c.category_id) 
     WHERE 
     p.status = 1 
     AND m.manufacturer_id = '".(int)$manufacturer_id."' 
     AND c.status= 1 
     "); 

    return $query->rows; 
} 

qui è la matrice di uscita

stdClass Object (
    [row] => Array 
     (
      [category_id] => 20 
      [name] => Desktops 
     ) 

    [rows] => Array 
     (
      [0] => Array 
       (
        [category_id] => 20 
        [name] => Desktops 
       ) 

      [1] => Array 
       (
        [category_id] => 24 
        [name] => Phones & PDAs 
       ) 

     ) 

    [num_rows] => 2)