Queremos añadir el campo "En Oferta" a la rejilla de propiedades Productos > Precios especiales.
Para añadir el campo a la lista de campos disponibles para sus rejillas de productos, haga clic en el botón desde la interfaz "Añadir campo", e introduzca la siguiente información:
¿Cuál es el ID del campo? on_sale
SC crea el campo, ahora debe rellenar la cuadrícula:
Nombre del campo: En oferta
Tabla: Otra tabla
Tipo: Selección múltiple (debe corresponder a su tipo de campo, aquí un campo con valores predefinidos).
En el panel de propiedades avanzadas de la derecha :
- seleccione el menú lista de opciones (sólo si el tipo de campo es "opción múltiple", de lo contrario déjelo en blanco) y rellene :
return array(1=>_l('Yes') , 0=>_l('No'));
- seleccione el menú SQL Select y rellene:
return ' ,prs.on_sale as on_sale';
- seleccione el menú SQL Left Join y rellene:
return " LEFT JOIN "._DB_PREFIX_."product_shop prs ON (sp.id_product= prs.id_product AND prs.id_shop=".(int) SCI::getSelectedShop().")";
- seleccione el menú PHP enAfterUpdateSQL y rellene:
if (isset($_POST['on_sale']))
{
$sql = 'UPDATE '._DB_PREFIX_.'product
SET on_sale='.(int) Tools::getValue('on_sale').'
WHERE id_product=' .(int) $specificPrice->id_product;
Db::getInstance()->Execute($sql);
$sql = 'UPDATE '._DB_PREFIX_.'product_shop
SET on_sale='.(int) Tools::getValue('on_sale').'
WHERE id_product=' .(int) $specificPrice->id_product . '
AND id_shop='.(int) SCI::getSelectedShop();
Db::getInstance()->Execute($sql);
}
Cierre la ventana de edición de los campos personalizados.
El nuevo campo está ahora en la lista de campos disponibles, y puede añadirlo a sus rejillas.