Jump to content

modificar la fecha de creación del artículo desde el BO


Recommended Posts

Quiero crear un cuadro donde pueda modificar la fecha de creación del producto para que especifique en nuevos productos.

Cuando ya no quiero vender un producto, lo que hago es sobrescribirlo con uno nuevo para que no tenga que eliminarlos. pero al hacer esto, prestashop no lo coloca en la sección de nuevos productos

Los archivos de Prestashop son muy desordenados, si alguien pudiera634107158_Ideaprestashop.thumb.png.95da3bcb9f847e4db79cbc803c392ed9.png ayudarme a hacerlo, lo agradecería.
Además, no sé cómo recuperar la fecha de creación de la base de datos y actualizarla desde el backoffice.

Contexto adicional

algo como esto:
https://imgur.com/a/zhu7g0y (misma imagen que a continuación)

Link to comment
Share on other sites

Muy buenas.

Como ya te han recomendado no rehusaría un producto para cambiar los datos por otro nuevo. De todas formas tengo un módulo con el que puedes cambiar la fecha de los productos, ¿qué versión usas para ver si es compatible?.

Un Saludo.

Link to comment
Share on other sites

Muy buenas.

Depende de lo que entiendas por malo.... 

No se que módulos tienes instalado y mas si son de terceros, puede que alguno guarde información de los productos mediante los id, y al añadir productos nuevos de esa forma tendrás datos erróneos.

Me imagino que serás el único que gestiona la tienda online. Te pongo un ejemplo......

Imagínate que me contratas para gestionarte la empresa. Y llega la campaña de navidad, realizo una búsqueda de los 10 productos más vendidos la navidad anterior para realizar una campaña de marketing. Y negocio con proveedores para tener mejores precios y pedir ciertas cantidades. En el producto id 57, te consigo un 50% de descuento, y pido el doble de productos (las navidades pasadas se vendieron 4000 unidades). De repente te encuentras en pleno diciembre con 8000 bañadores amarillos fluorescente personalizados (no se pueden devolver). Al día siguiente estoy despedido, y todavía me pregunto dónde está el error.

Link to comment
Share on other sites

Los módulos son de terceros sí, pero la estructura es exactamente la misma que la del módulo original. Lo único que cambia es que están adaptados en un carrusell.

No sé si guarda la información por id, ¿donde puedo verlo? Y cómo más puede guardar la información?

Link to comment
Share on other sites

La lógica que quieres implementar es cuestionable. Pero si quieres actualizar o sobrescribir un producto, teniendo que editar la fecha manualmente  quizás sea mejor opción sobrescribir la classes/Product.php function update  para que cuando un producto se edite/actualice tome de manera automática la fecha actual o la fecha de actualización, o una fecha en concreto calculada en base a algo

Link to comment
Share on other sites

Así por ejemplo , para versiones 1.7.6

classes/Product.php

Se sobrescribe la function update quedando así

    public function update($null_values = false)
    {
        $return = parent::update($null_values);
        $this->setGroupReduction();

        // Sync stock Reference, EAN13 and UPC
        if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT') && StockAvailable::dependsOnStock($this->id, Context::getContext()->shop->id)) {
            Db::getInstance()->update('stock', array(
                'reference' => pSQL($this->reference),
                'ean13' => pSQL($this->ean13),
                'isbn' => pSQL($this->isbn),
                'upc' => pSQL($this->upc),
            ), 'id_product = ' . (int) $this->id . ' AND id_product_attribute = 0');
        }


       /*** CODE ADDED START ****/

        $result &= Db::getInstance()->update('product', array(
            'date_add' => $this->date_upd,
        ), 'id_product = ' .  (int) $this->id);
        $result &= Db::getInstance()->update('product_shop', array(
            'date_add' => $this->date_upd,
        ), 'id_product = ' . (int) $this->id . Shop::addSqlRestriction());
        
       /*** CODE ADDED END ****/

        Hook::exec('actionProductSave', array('id_product' => (int) $this->id, 'product' => $this));
        Hook::exec('actionProductUpdate', array('id_product' => (int) $this->id, 'product' => $this));
        if ($this->getType() == Product::PTYPE_VIRTUAL && $this->active && !Configuration::get('PS_VIRTUAL_PROD_FEATURE_ACTIVE')) {
            Configuration::updateGlobalValue('PS_VIRTUAL_PROD_FEATURE_ACTIVE', '1');
        }

        return $return;
    }

Al actualizar /editar el producto se guardara la fecha de registro con el valor de la fecha de actualización

  • Like 2
Link to comment
Share on other sites

Millones de gracias, es muy en mi opinión es muy útil, de todos modos ¿crees que es posible añadir un botón para hacer eso?

Es decir, me interesaría que no se actualizara la fecha de creación de todos los productos ya que hay veces que solamente se varía el precio.

Si hubiera la posibilidad de hacer que pulsando un botón en la ficha del producto se actualizase esa fecha sería fantástico o incluso una casilla para ponerle yo una fecha concreta de creación.

 

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...
  • 4 months later...
  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...