El campo debe estar ya presente en la base de datos
Queremos importar información adicional sobre un producto desde un archivo CSV a un campo de la tabla. Si la información ya existe en la tabla, se actualiza. Si no existe, se crea.
Para añadir el campo a la lista de campos disponibles en la asignación de importación 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? mi_campo (debe coincidir exactamente con el nombre del campo en la tabla)
SC crea el campo, ahora hay que rellenar la cuadrícula:
ID: mi_campo
Nombre: mi_campo
En el panel de propiedades avanzadas de la derecha :
- Seleccione el menú Proceso de importación para las combinaciones, y rellene:
if ($switchObject == 'my_field') {
$id_prd = (!empty($id_product) ? (int)$id_product : (int)$newprod->id);
$sql = "SELECT id_product
FROM " . _DB_PREFIX_ . "my_table
WHERE id_product = " . (int)$id_prd;
$exist = Db::getInstance()->getRow($sql);
if (!empty($exist)) {
$TODO[] = "UPDATE " . _DB_PREFIX_ . "my_table
SET " . $switchObject . "='" . pSQL($GLOBALS["import_value"], true) . "'
WHERE id_product=" . (int)$id_prd;
} else {
$TODO[] = "INSERT INTO " . _DB_PREFIX_ . "my_table (id_product, " . $switchObject . ")
VALUES ('" . (int)$id_prd . "','" . pSQL($GLOBALS["import_value"], true) . "')";
}
}
Este código debe adaptarse a sus necesidades.
Cierre la ventana de edición de campos personalizados y utilice el campo en su asignación de importación.