Si hablamos de CMS o sistema de gestión de contenido para comercio electrónico, sin duda uno de los más famosos y utilizados es PrestaShop, que está disponible de forma gratuita y es de código abierto; si tienes productos o artículos que vender, tan solo necesitas un dominio, un servidor web e instalar PrestaShop. Aunque como CMS se podría utilizar para hacer otros tipos de páginas web, es en un eCommerce donde demuestra todo su potencial y para lo que fue específicamente diseñado; pero si por ejemplo queremos crear una página solo para subastas, simplemente habría que instarle un módulo o plugin específico para llevar la gestión y el conteo de las pujas. La única pega es que nos podemos encontrar con algún remanente de la estructura de una tienda online y que no es necesario para un sistema de subastas, como por ejemplo el icono y la función del carrito de la compra. Y como es verdad que para modificar y adaptar algunas cosas en PrestaShop es fundamental y necesario tener conocimientos de programación, vamos a ver en este post una forma de eliminar el carrito de la compra en PrestaShop paso a paso.
El entorno PrestaShop
Aunque con unos mínimos conocimientos es posible montar un eCommerce con PrestaShop, también es verdad que se necesita un cierto nivel técnico para llevar un pasito más allá el diseño de la página o tirar de tarjeta de crédito para pagar los diferentes módulos que añadirán nuevas funcionalidades y así conseguir un site más profesional. De todas formas, el desarrollo de una web con PrestaShop es un proceso fácil e intuitivo siempre y cuando no nos salgamos del patrón preestablecido para crear una tienda online; la mayoría de recursos están grabados a fuego en las tripas del programa y todo sigue unas pautas definidas de ejecución y presentación. Incluso las plantillas que instalemos se rigen por esas pautas y no dejan mucho margen de maniobra.
Todo cambio de guión en PrestaShop lleva implícito un ajuste en sus mecánicas internas que conlleva la inevitable apertura de archivos y edición del código de los mismos. Para el caso que vamos a tratar en esta entrada, una página web de subastas con PrestaShop, nos encontramos que algunas funcionalidades nos van a seguir sirviendo en nuestro propósito, como la base de datos del catálogo de productos, las categorías o el registro de clientes; otras como las reglas de precios o los carritos de la compra son totalmente prescindibles e incluso no aportan nada a nuestro objetivo.
En una subasta, el usuario entra en la página, se registra y puja por los artículos de su elección; cuando termina el periodo de subasta, se cierran las pujas y se comunica a cada ganador el resultado final. En este caso, no hay nada que añadir al carrito de la compra, no hay un listado en donde guardar productos y luego pagar para hacer el pedido, por lo que esta característica no nos sirve de nada. Aunque debería ser sencillo eliminarlo de nuestra página, es más complicado de lo que parece, y según la plantilla que estemos utilizando, nos podemos encontrar en el menú de nuestra página el icono fantasma del carrito y que al pulsar sobre él no haga nada, simplemente está ahí.
Como ya tenemos claro cuál es nuestra misión, vamos al lío.
Objetivo: el carrito de la compra en PrestaShop
Lo primero, y desde nuestro back-office de PrestaShop, habrá que ir al menú Módulos->Módulos, buscar el del carrito de la compra (Blockcart en inglés) y deshabilitarlo. Una vez hecho esto, entramos ahora en el submenú Módulos->Posiciones de los módulos y lo eliminamos de la categoría Top of pages/Header of pages.
Aunque es posible que con estos pasos ya no aparezca en nuestra web, es probable que la plantilla por defecto siga mostrando el icono en pantalla. Para eliminarlo completamente, hay que editar un mismo archivo que se encuentra en dos localizaciones diferentes; para ello, y desde el administrador de archivos de nuestro hosting, debemos encontrar el archivo blockuserinfo.tlp (controla la información que aparece en el bloque de cabecera) y que está en dos ubicaciones diferentes:
- /modules/blockuserinfo/blockuserinfo.tlp
- /themes/tutema/modules/blockuserinfo/blockuserinfo.tlp
donde «tutema» es el nombre del directorio de la plantilla que estés utilizando. Una vez localizado estos dos archivos (que son el mismo pero uno es el genérico de la web y el otro de la plantilla), sustituimos el código de cada archivo por el siguiente:
<!-- Block user information module HEADER --> <div id="header_user"> <ul id="header_nav"> <!--{if !$PS_CATALOG_MODE} <li id="shopping_cart"> <a href="{$link->getPageLink($order_process, true)}" title="{l s='Your Shopping Cart' mod='blockuserinfo'}">{l s='Cart:' mod='blockuserinfo'} <span class="ajax_cart_quantity{if $cart_qties == 0} hidden{/if}">{$cart_qties}</span> <span class="ajax_cart_product_txt{if $cart_qties != 1} hidden{/if}">{l s='product' mod='blockuserinfo'}</span> <span class="ajax_cart_product_txt_s{if $cart_qties < 2} hidden{/if}">{l s='products' mod='blockuserinfo'}</span> <span class="ajax_cart_total{if $cart_qties == 0} hidden{/if}"> {if $cart_qties > 0} {if $priceDisplay == 1} {assign var='blockuser_cart_flag' value='Cart::BOTH_WITHOUT_SHIPPING'|constant} {convertPrice price=$cart->getOrderTotal(false, $blockuser_cart_flag)} {else} {assign var='blockuser_cart_flag' value='Cart::BOTH_WITHOUT_SHIPPING'|constant} {convertPrice price=$cart->getOrderTotal(true, $blockuser_cart_flag)} {/if} {/if} </span> <span class="ajax_cart_no_product{if $cart_qties > 0} hidden{/if}">{l s='(empty)' mod='blockuserinfo'}</span> </a> </li> {/if}--> <li id="your_account"><a href="{$link->getPageLink('my-account', true)}" title="{l s='Your Account' mod='blockuserinfo'}">{l s='Your Account' mod='blockuserinfo'}</a></li> </ul> <p id="header_user_info"> {l s='Welcome' mod='blockuserinfo'} {if $logged} <a href="{$link->getPageLink('my-account', true)}" class="account"><span>{$cookie->customer_firstname} {$cookie->customer_lastname}</span></a> <a href="{$link->getPageLink('index', true, NULL, "mylogout")}" title="{l s='Log me out' mod='blockuserinfo'}" class="logout">{l s='Log out' mod='blockuserinfo'}</a> {else} <a href="{$link->getPageLink('my-account', true)}" class="login">{l s='Log in' mod='blockuserinfo'}</a> {/if} </p> </div> <!-- /Block user information module HEADER -->
El código simplemente le dice a PrestaShop que no muestre por pantalla ningún «shopping cart» en la cabecera; si entiendes algo de código, podrás ver que este solo cambia las líneas de instrucciones que hacen referencia al carrito de la compra y las define como comentarios en la programación. Si lo deseas, añade el comando a mano o lo más rápido, pega todo el código encima y listo.
Y ya está. Sonaba más complicado de lo que finalmente es, pero como has comprobado el proceso no lleva más de un rato; y si ya estás familiarizado con PrestaShop, ahora que has visto con este ejemplo un poco más de la mecánica interna, espero que te animes a seguir indagando en busca de atajos para poder personalizar aún más tu web creada con este CMS. Y si necesitabas conocer el truco para tu proyecto de web, me alegra ser de ayuda.
Si algún paso no está del todo claro o necesitas algún consejo más, rellena los comentarios con todas tus dudas.