Combinación Multitienda: añadir un campo de una tabla externa a las tablas de combinación

Acceda a la parte PRO de la herramienta para añadir campos personalizados:

Para acceder a la sección PRO, haga clic en el icono + de la columna de la derecha titulada «Campos disponibles».

Asegúrese de seleccionar correctamente la cuadrícula en la que desea añadir su campo; en este ejemplo, será la rejilla de MS - combinaciones:

En este ejemplo, añadimos el campo «Label BIO», que se encuentra en la tabla ps_label (id_product_attribute; label_bio (0/1); id_shop). Este campo permitirá distinguir este tipo de producto en la cuadrícula Multitiendas. Variaciones

Añadir el campo

Haga clic en el icono «Añadir» para crear la línea del nuevo campo e indique su ID label_bio (debe coincidir exactamente con el nombre del campo en la base de datos).

La línea del campo se crea en la lista. Ahora hay que introducir la información:

Tabla

Otra tabla

Nombre

Label bio

Tipo

Opción múltiple

Actualizar las combinaciones

No

En el panel de propiedades avanzadas de la derecha:

- seleccione el menú SQL Select e introduzca :

return ' ,lab.label_bio';

- seleccione el menú SQL Leftjoin e introduzca:

return ' LEFT JOIN '._DB_PREFIX_.'label lab ON (lab.id_product_attribute = pas.id_product_attribute AND lab.id_shop=pas.id_shop) ';

- seleccione el menú de PHP definition e introduzca :

$product_attr['label_bio'] = $product_attr_by_shop['label_bio'];

- seleccione el menú PHP onAfterUpdateSQL y rellene:

if (isset($_POST['label_bio']))
{
    $the_id = (int) Db::getInstance()->getValue('SELECT id_product_attribute
                                                    FROM '._DB_PREFIX_.'label
                                                    WHERE id_product_attribute = '.(int) $id_product_attribute.' 
                                                    AND id_shop = '.(int)$id_shop);
    if ($the_id)
    {
        $sql = 'UPDATE '._DB_PREFIX_.'label
                SET label_bio = '.(int) Tools::getValue('label_bio', 0).'
                WHERE id_product_attribute='.(int) $id_product_attribute.' 
                AND id_shop = '.(int)$id_shop;
    }
    else
    {
        $sql = 'INSERT INTO '._DB_PREFIX_.'label (`id_product_attribute`,`label_bio`, `id_shop`)
                VALUES ('.(int) $id_product_attribute.', '.(int) Tools::getValue('label_bio', 0).', '.(int)$id_shop.')';
    }
    Db::getInstance()->execute($sql);
}

- Si desea añadir una opción Sí/No, seleccione el menú Lista de opciones e introduzca:

return array(1=>_l('Yes'), 0=>_l('No'));

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 su cuadrícula de declinación.