Jump to content

Añadir campos numéricos a la ficha del producto


Recommended Posts

Buenos días a todos.

Tengo un problema añadiendo 3 campos numéricos opcionales a la ficha del producto, solo se muestran si existen.

Por más que busco en internet todo lo que me sale es añadiendo campos de texto.

Deseo añadir 3 variables a la ficha del producto en la pestaña precios de la siguiente forma:

uds_caja - int(10) - UNIDADES POR CAJA

precio_ud - boolean - MOSTRAR PRECIO POR UNIDAD - es un check 

pvp_rec - decimal(10,2) - PVP RECOMENDADO

Agrego las variables en la base de datos en la tabla PS_PRODUCT:

image.thumb.png.27e3a4ac4919534fc2982504b6ac59c9.png

Posterioremente he agregado en el fichero CLASSES/PRODUCT.PHP lo siguiente:

$uds_caja;
$precio_ud = false;
$pvp_rec;
             'uds_caja' =>            array('type' => self::TYPE_INT, 'shop' => true, 'validate' => 'isUnsignedInt'),
             'precio_ud' =>                    array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'),
            'pvp_rec' =>                    array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice'),

 

También he agregado en el archivo ADMIN.../THEMES/DEFAULT/TEMPLATE/CONTROLLERS/PRODUCTS/PRICES.TPL lo siguiente:

<!-- UNIDADES POR CAJA -->
	<div class="form-group" {if !$country_display_tax_label || $tax_exclude_taxe_option}style="display:none;"{/if} >
		<label class="control-label col-lg-3" for="uds_caja">{l s='Unidades por caja'}</label>
		<div class="input-group col-lg-2">
			<input type="text" id="uds_caja" name="uds_caja" value="{$product->uds_caja|default:'UTF-8'}"/>
		</div>
	</div> 

<!-- PRECIO POR UNIDAD -->
 	<div class="form-group">
		<div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="precio_ud" type="default"}</span></div>
		<label class="control-label col-lg-2" for="precio_ud">&nbsp;</label>
		<div class="col-lg-9">
			<div class="checkbox">
				<label class="control-label" for="precio_ud" >
					<input type="checkbox" name="precio_ud" id="precio_ud" {if $product->on_sale}checked="checked"{/if} value="1" />
					Mostrar precio por unidad
				</label>
			</div>
		</div>
	</div> 

<!-- PVP RECOMENDADO -->
	<div class="form-group" {if !$country_display_tax_label || $tax_exclude_taxe_option}style="display:none;"{/if} >
		<label class="control-label col-lg-3" for="pvp_rec">{l s='PVP recomendado'}</label>
		<div class="input-group col-lg-2">
			<span class="input-group-addon">{$currency->prefix}{$currency->suffix}</span>
			<input type="text" id="pvp_rec" name="pvp_rec" value="{$product->pvp_rec|default:'UTF-8'}"/>
		</div>
	</div> 

 

Y en el modelo vista, en el fichero MYTHEME/PRODUCT.TPL he agregado lo siguiente (precio por unidad lo quiero con 2 decimales solo):

<!-- UNIDADES POR CAJA -->
			{if $product->uds_caja}
				<div id="unidades_caja">
					<p style="margin-bottom: 30px;"><strong>Unidades por caja: </strong>{$product->uds_caja}</p>
				</div>
			{/if}

<!-- PRECIO POR UNIDAD -->
			{if $product->uds_caja && $product->price && $product->precio_ud}
				<div id="precio_unidad">
					<p style="margin-bottom: 30px;"><strong>Precio por unidad: </strong>{($product->uds_caja / $productPrice)|string_format:"%.2f}</p>
				</div>
			{/if}

<!-- PRECIO RECOMENDADO -->
			{if $product->pvp_rec}
				<div id="precio_recomendado">
					<p style="margin-bottom: 30px;"><strong>PVP Recomendado: </strong><span itemprop="price" content="{$product->pvp_rec}">{convertPrice price=$product->pvp_rec|floatval}</span></p>
				</div>
			{/if}

 

Bien, el caso es que cuando intento guardar el artículo me sale lo siguiente:

image.png.6e481407d19fd2f7490208f10b4e6fa3.png

 

Aun con este error se me guardan las variables en la base de datos, menos el check, que una vez que lo activo, por mucho que lo desactive ya no me hace caso.

Prácticamente está todo hecho, pero por más que he buscado por internet no encuentro solución.

Alguien sabe qué puede ocurrir ?

Un cordial saludo de antemano.

 

Link to comment
Share on other sites

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...