En esta pagina puedes encontrar la lista completa de los hooks que usa Prestashop y como puedes observar algunos son tipo Action y otros Display.
En que se diferencian estos tipos de hook, las propias palabras ya nos están dando unas pistas, los hook Action, son aquellos que realizan alguna accion u orden, los hook tipo Display son aquellos que van a mostrar información tanto en el Fronoffice como en el Backoffice.
Por ejemplo :
Hook Action
actionProductAdd : Este hook se usa cuando un producto se añade, podemos usar este hook para añadir un código el cual se ejecutara cuando un producto se vaya a añadir.
actionProductSave : Este hook, es el que controla cuando un producto se guarda la información, se suele usar cuando queremos añadir opciones o caracteristicas a un producto y que al mismo tiempo que guarda el producto, se guarden nuestras características o ejecute nuestro código
public function hookActionProductSave() { $ID_P = Tools::getValue('id_producto'); $LOT = Tools::getValue('lote'); $Stock = Tools::getValue('stock'); $data = Tools::getValue('fecha_caducidad'); $namewh = Tools::getValue('namewh'); $combination = Tools::getValue('combination'); $pasillo = Tools::getValue('pasillo'); $portal = Tools::getValue('portal'); $altura = Tools::getValue('altura'); $tipo_palet = Tools::getValue('tipo_palet'); if (empty($LOT)) { }else { $lotescaducidad = new lotescaducidad(); $lotescaducidad->id_producto = $ID_P; $lotescaducidad->lote = $LOT; $lotescaducidad->stock = $Stock; $lotescaducidad->namewh = $namewh; $lotescaducidad->combination = $combination; $lotescaducidad->pasillo = $pasillo; $lotescaducidad->portal = $portal; $lotescaducidad->altura = $altura; $lotescaducidad->tipo_palet = $tipo_palet; $lotescaducidad->fecha_caducidad = $data; $lotescaducidad->add(); } }
Hook Display
displayLeftColumn : Hook que controla lo que se va a mostrar en la columna izquierda de nuestra pagina web, podemos usarla para mostrar informacion o código html.
displayProductExtraContent : Con este hook vamos a mostrar información extra en la ficha de los productos, se suele usar para añadir una pestaña , “Tab” nueva que muestre información extra o configurada en nuestro código del modulo que estamos haciendo.
public function hookDisplayAdminProductsExtra() { $id_producto = Tools::getValue('id_product'); $lotes_producto = lotescaducidad::LotesdeProducto($id_producto); $id_pedidos = Tools::getValue('pedidos'); $this->context->smarty->assign('lotillos', $lotes_producto); $StockTotal = 0; $id_lang = Configuration::get('PS_LANG_DEFAULT'); foreach ($lotes_producto as $stockp ){ $StockTotal = $StockTotal + $stockp['stock']; } $warehouses = Warehouse::getWarehouses($ignore_shop = false, $id_shop = null); $product = new Product($id_producto); $combinations = $product->getAttributeCombinations($id_lang); $this->context->smarty->assign('StockTotal', (int)$StockTotal); $this->context->smarty->assign('warehouses', $warehouses); $this->context->smarty->assign('combinations', $combinations); return $this->context->smarty->fetch(dirname(__FILE__).'/views/templates/admin/lotesProducto.tpl'); }