rezadri Posted January 16, 2023 Share Posted January 16, 2023 Buenas, quiero añadir un nuevo checkbox en la ficha del producto que se llamará producto_descatalogado en Prestashop 1.7.8.3 Mi problema es que cuando marco el checkbox y le doy a guardar no aparece ningún error, pero cuando vuelvo a refrescar la ficha del producto, se desmarca el checkbox y en la base de datos no cambia el valor a 1. He visto varios tutoriales pero no encuentro la solución, ya que son bastante antiguos. Estos son los pasos que he seguido, adjunto capturas para ver si se puede encontrar una solución. 1.- Añadir campo en la base de datos 2.- Creo el archivo product.php en override/classes/Product.php <?php public $producto_descatalogado ; public function __construct ( $id_product = null , $full = false , $id_lang = null , $id_shop = null , Context $context = null ) { self::$definition['fields']['producto_descatalogado'] = array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'); } ?> 3.- Añado las siguientes lineas en src/PrestaShopBundle/Form/Admin/Product/ProductInformation.php ->add('producto_descatalogado', FormType\CheckboxType::class, [ 'label' => $this->translator->trans('producto descatalogado', [], 'Admin.Global'), 'required' => false, ]) 4.- Añado las siguientes lineas en src/PrestaShopBundle/Model/Product/AdminModelAdapter.php: private $multiShopKeys = [ [...] 'producto_descatalogado', ]; private $translatableKeys = [ [...] 'producto_descatalogado', ]; private $unmapKeys = [ [...] 'producto_descatalogado', ]; private function mapStep1FromData(Product $product) { [...] 'producto_descatalogado' => $product->producto_descatalogado== 0 ? false : true, ]; } 5.- Añado las siguientes líneas en src/PrestaShopBundle/Resources/views/Admin/Product/ProductPage/product.html.twig: {# PANEL ESSENTIALS #} {% block product_panel_essentials %} {% set formQuantityShortcut = form.step1.qty_0_shortcut is defined ? form.step1.qty_0_shortcut : null %} {{ include('@Product/ProductPage/Panels/essentials.html.twig', { [...] 'formDescatalogado': form.step1.producto_descatalogado, }) }} {% endblock %} 6. Añado las siguientes líneas src/PrestaShopBundle/Resources/views/Admin/Product/ProductPage/Panels/essentials.html.twig <div class="form-group mb-4"> <h2>Descatalogado</h2> {{ form_widget(formDescatalogado) }} </div> Adjunto captura de la ficha del producto con el checkbox Eso es todo, gracias. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now