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 (in_array($switchObject, ['my_field'])) {
$value = $GLOBALS['import_value'];
$id_prd = (!empty($id_product) ? (int)$id_product : (int)$newprod->id);
$sql = 'SELECT COUNT(*)
FROM ' . _DB_PREFIX_ . 'my_table
WHERE id_product=' . $id_prd;
if (Db::getInstance()->getValue($sql)) {
Db::getInstance()->execute('UPDATE ' . _DB_PREFIX_ . 'my_table
SET `' . $switchObject . "`='" . pSQL($value) . "'
WHERE id_product=" . $id_prd);
} else {
Db::getInstance()->execute('INSERT INTO ' . _DB_PREFIX_ . 'my_table (id_product, `' . $switchObject . '`)
VALUES (' . $id_prd . ',"' . pSQL($value) . '")');
}
}
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.