zekinash Posted October 8, 2015 Share Posted October 8, 2015 Tengo un campo personalizado en el artículo, campo que he añadido mediante la utilización de overrides. Todo funciona correctamente, se muestra en el backoffice para dar de alta/modificar un artículo, lo guarda correctamente en la base de datos e incluso lo muestro en la vista de la ficha del artículo bajo el nombre del mismo. En product.tpl he añadido esto: <h5>Ref. Proveedor: {if $product->ref_prov}{$product->ref_prov}{/if}</h5> Y se visualiza sin problemas El caso es que ahora quiero hacer lo mismo para mostrarlo en el resumen del Pedido, pero me encuentro que no aparece ya que la carga de los datos se hace de forma diferente. Intento acceder a $product->ref_prov y no carga nada desde la plantilla shopping-cart-product-line.tpl e incluso fijándome como muestra otros campos $product.ref_prov pero no hay forma. El código sería esta: {if $product.description_short}<p>{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}</p>{/if} <small class="cart_ref">{l s='Ref. Prov'}{$smarty.capture.default}{$product.ref_prov|escape:'html':'UTF-8'}</small> En este caso no se accede a la totalidad de los datos del producto, imagino que debe haber una consulta previa de los campos extraídos de dicho artículo, pero no sé donde poder personalizar dicha consulta para cargar también éste campo. A ver si alguien me puede echar un mano. Link to comment Share on other sites More sharing options...
zekinash Posted October 8, 2015 Author Share Posted October 8, 2015 He visto que en la tabla de productos hay un campo que se llama supplier_reference Justo lo que yo necesito, pero que no se le da uso en ninguno de los formularios de PrestaShop, no al menos hasta dónde he podido ver. Así que he quitado el Override de la clase Product.php ya que no me hace falta añadir ningún campo personalizado. He modificado el override de Informations.tpl para que muestre en el formulario de altas de artículos dicho campo, y lo muestro también de forma correcta en product.tpl Problema, pues que en el carrito de la compra no puedo mostrarlo. Utilizo cualquier campo de la tabla Product y lo muestra, pero al intentar apuntar al campo supplier_reference no saca nada. ¿Alguién me podría echar una mano? Yo voy a seguir investigando a ver por qué ese campo no es accesible desde el carrito de la compra. Link to comment Share on other sites More sharing options...
ventura Posted October 8, 2015 Share Posted October 8, 2015 (edited) Para que te aparezca en el resumen de compra tienes que añadirlo en la funcion getproducts en classes\Cart.php para acceder a la referencia del proveedor en el select añade ps.`product_supplier_reference` AS supplier_reference luego en el .tpl añade $product.supplier_reference Edited October 8, 2015 by ventura (see edit history) 1 Link to comment Share on other sites More sharing options...
zekinash Posted October 13, 2015 Author Share Posted October 13, 2015 (edited) Muchísimas gracias por la respuesta, me estaba volviendo loco entre manuales, libros, foros... No sabía de dónde se alimentaba la vista y mira que estuve repasando la clase en cuestión. Ahora lo tengo mucho más claro, incluso me servirá para un futuro. Sin embargo me he encontrado con esto: // Build SELECT $sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, pl.`name`, p.`is_virtual`, pl.`description_short`, pl.`available_now`, pl.`available_later`, product_shop.`id_category_default`, p.`id_supplier`, p.`id_manufacturer`, product_shop.`on_sale`, product_shop.`ecotax`, product_shop.`additional_shipping_cost`, product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`, stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`, p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category, CONCAT(LPAD(cp.`id_product`, 10, 0), LPAD(IFNULL(cp.`id_product_attribute`, 0), 10, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery, product_shop.advanced_stock_management, ps.`product_supplier_reference` AS supplier_reference, IFNULL(sp.`reduction_type`, 0) AS reduction_type'); Como se puede apreciar en la última línea del SELECT ya estaba incluído ps.`product_supplier_reference` tan sólo que estaba así: ps.`product_supplier_reference` supplier_reference En vez de: ps.`product_supplier_reference` AS supplier_reference Desde la vista "shopping-cart-product-line.tpl" intento acceder a este campo de la siguiente manera: <small class="cart_ref"> {l s='Ref. Prov'}{$smarty.capture.default} {$product.supplier_reference|escape:'html':'UTF-8'} </small> Es decir, empleo $product.supplier_reference para mostrar dicho campo pero nada, sigue vacío. ¿Qué estoy haciendo mal? Por otra parte, ¿sería posible hacerlo mediante override para evitar tocar los archivos del core de PrestaShop? -override -classes -Cart.php Edited October 13, 2015 by zekinash (see edit history) Link to comment Share on other sites More sharing options...
zekinash Posted October 13, 2015 Author Share Posted October 13, 2015 (edited) Solu cionado. Veamos, el campo que he de añadir es el siguiente: p.`supplier_reference` AS supplier_reference2 De ta tabla p = products y no de la tabla ps = product supplier Y en la vista "shopping-cart-product-line.tpl" muestro el campo así: <small class="cart_ref"> {l s='Ref. Prov'}{$smarty.capture.default} {$product.supplier_reference2|escape:'html':'UTF-8'} </small> ¡OJO! Ya que como alias hay que darlo un nombre diferente al campo, ya que sino no funcionará correctamente, en mi caso le he dado supplier_reference2 ya que ya existe un campo con el mismo nombre. Y también me contesto a lo de hacerlo con override. Así es. He creado la estructura que antes mencionaba y he incluído lo que necesitaba cambiar de la clase Cart.php para conseguir este campo, que como apunte personal me ha sorprendido que no estuviera ya contemplado en la SELECT ya que pienso puede ser un campo de valor para el cliente, más incluso que la referencia propia de la tienda. Muchísimas gracias por la ayuda!!! Edited October 13, 2015 by zekinash (see edit history) 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