Blog

Prestashop

Prestashop (39)

Miércoles, 26 Octubre 2016 21:45

¿Cómo resolver los errores 500 en prestashop?

Esrito por

Lo primero de todo, hay que detectar de donde viene ese error, la mayoría de veces cuando ves esta pantalla te bloqueas y no entiendes porque ocurre esto.

En Prestashop 1.5.4 puede pasarte a menudo, o darte otros errores, pero la mayoría de veces nos pasara, sobre todo cuando migramos la página web de un hosting a otro

Pasos para Reconocer el Error 500 en Prestashop
Hay diferentes formas de que te encuentre con este error son estas:

“500 Internal Server Error”

“HTTP 500 – Error interno del servidor”

“Error interno del servidor”

“HTTP 500 Error interno”

“Error 500”

“HTTP Error 500”

Una frase que acompaña este este error es esta: “El servidor encontró una condición inesperada que le impidió cumplir con la solicitud del cliente”.

La mayoría de veces el error 500 es un mensaje del servidor que nos dice que “Algo salió mal y yo no sé qué es” esto se suele llamar “Server-side” Eso quiere decir que algo salió mal con el servidor que aloja el sitio web. La mayoría de errores suele ser por problemas de configuración del hosting o incluso de tu Prestashop.

Primer paso para Solucionar Error 500 en Prestashop
Activar el informe de errores en Prestashop para esto haz lo siguiente:

Para PrestaShop v1.4 hasta v1.5.2

1. Abre config / config.inc.php

2. En línea 28 se encuentra esta línea @ ini_set (‘display_errors’, ‘off’);

3. Cambie la línea para que @ ini_set (‘display_errors’, ‘on’);

Para PrestaShop v1.5.3 +

1. Abre config / defines.inc.php

2. En la línea 28 se encuentra esta línea define (‘_PS_MODE_DEV_’, false);

3. Cambie esta línea para leer define (‘_PS_MODE_DEV_’, true);

Bien ahora quizás ya no veamos la pantalla de error 500 pero si podremos ver algún mensaje que nos de la consola de errores.

Domingo, 02 Octubre 2016 21:01

Cómo integrar google analytics en una tienda prestashop

Esrito por

El propio prestashop incorpora un módulo para integrar google analytics en la tienda. Sólo hay que introducir el ID de la cuenta, y activar el módulo

 

 

Para cambiar la visualización de los productos en el módulo novedades en prestashop hay que acudir al fichero \classes\Product.php

Y buscar la función getNewProducts que se encuentra en la línea 2248 aprox (Prestashop 1.6.x). 

 

Hay que añadir una condición más en la sentencia SQL, para que no visualice productos cuya variable quantity = 0

 

 

 

1id_productPrimariaÍndiceint(10)UNSIGNEDNoNingunaAUTO_INCREMENT    

2id_supplierÍndiceint(10)UNSIGNEDSíNULL    

3id_manufacturerÍndiceint(10)UNSIGNEDSíNULL    

4id_category_defaultÍndiceint(10)UNSIGNEDSíNULL    

5id_shop_defaultint(10)UNSIGNEDNo1    

6id_tax_rules_groupint(11)UNSIGNEDNoNinguna    

7on_saletinyint(1)UNSIGNEDNo0    

8online_onlytinyint(1)UNSIGNEDNo0    

9ean13varchar(13)SíNULL    

10upcvarchar(12)SíNULL    

11ecotaxdecimal(17,6)No0.000000    

12quantityint(10)No0    

13minimal_quantityint(10)UNSIGNEDNo1    

14pricedecimal(20,6)No0.000000    

15 wholesale_price decimal(20,6) No 0.000000      

16 unity varchar(255) Sí NULL      

17unit_price_ratiodecimal(20,6)No0.000000    

18additional_shipping_costdecimal(20,2)No0.00    

19referencevarchar(32)SíNULL    

20supplier_referencevarchar(32)SíNULL    

21locationvarchar(64)SíNULL    

22widthdecimal(20,6)No0.000000    

23heightdecimal(20,6)No0.000000    

24depthdecimal(20,6)No0.000000    

25weightdecimal(20,6)No0.000000    

26out_of_stockint(10)UNSIGNEDNo2    

27quantity_discounttinyint(1)Sí0    

28customizabletinyint(2)No0    

29uploadable_filestinyint(4)No0    

30text_fieldstinyint(4)No0    

31activetinyint(1)UNSIGNEDNo0    

32redirect_typeenum('', '404', '301', '302')No    

33id_product_redirectedint(10)UNSIGNEDNo0    

34available_for_ordertinyint(1)No1    

35available_datedateNo0000-00-00    

36conditionenum('new', 'used', 'refurbished')Nonew    

37show_pricetinyint(1)No1    

38indexedÍndicetinyint(1)No0    

39visibilityenum('both', 'catalog', 'search', 'none')Noboth    

40cache_is_packtinyint(1)No0    

41cache_has_attachmentstinyint(1)No0    

42is_virtualtinyint(1)No0    

43cache_default_attributeint(10)UNSIGNEDSíNULL    

44date_addÍndicedatetimeNoNinguna    

45date_upddatetimeNoNinguna    

46advanced_stock_managementtinyint(1)No0    

47 pack_stock_type int(11) UNSIGNED No 3    

He aquí la solución para que los productos de la página principal de una tienda prestashop salgan aleatorios (módulo novedades)

Hay que modificar en  /modules/blocknewproducts/blocknewproducts.php

la linea 113, aproximadamente, 

$newProducts = Product::getNewProducts((int) $this->context->language->id, 0, (int)Configuration::get('NEW_PRODUCTS_NBR'));

por

$newProducts = Product::getNewProducts((int) $this->context->language->id, 0, 100);shuffle($newProducts);array_splice($newProducts, Configuration::get('NEW_PRODUCTS_NBR') );

 

Si en prestashop queremos que salgan todas las banderas de la web en la parte superior derecha (no en forma de lista desplegable)

Hay que ir al fichero blocklanguages.tpl ubicado en themes\default-bootstrap\modules\blocklanguages

Y usar el siguiente bloque de código. Recomiendo que antes se haga una copia de seguridad del fichero inicial

<!-- Block languages module -->

{if count($languages) > 1}

<div id="languages-block-top" class="languages-block">

{foreach from=$languages key=k item=language name="languages"}

{if $language.iso_code == $lang_iso}

<img style="border: solid 1px #fff; margin-right:1px;" src="/{$img_lang_dir}{$language.id_lang}.jpg" alt="{$language.iso_code}" width="16" height="12" /><!-- /Flag image -->

{/if}

{if $language.iso_code != $lang_iso}

{assign var=indice_lang value=$language.id_lang}

{if isset($lang_rewrite_urls.$indice_lang)}

<img style="border: solid 1px #fff; margin-right:1px;" src="/{$img_lang_dir}{$language.id_lang}.jpg" alt="{$language.iso_code}" width="16" height="12" /><!-- /Flag image -->

<a href="/{$lang_rewrite_urls.$indice_lang|escape:'html':'UTF-8'}" title="{$language.name|escape:'html':'UTF-8'}" rel="alternate" hreflang="{$language.iso_code|escape:'html':'UTF-8'}">

{else}

<img style="border: solid 1px #fff; margin-right:1px;" src="/{$img_lang_dir}{$language.id_lang}.jpg" alt="{$language.iso_code}" width="16" height="12" /><!-- /Flag image -->

<a href="/{$link->getLanguageLink($language.id_lang)|escape:'html':'UTF-8'}" title="{$language.name|escape:'html':'UTF-8'}" rel="alternate" hreflang="{$language.iso_code|escape:'html':'UTF-8'}">

{/if}

{/if}

<span>{$language.name|regex_replace:"/\s\(.*\)$/":""}</span>

{if $language.iso_code != $lang_iso}

</a>

{/if}

 

{/foreach}

</div>

{/if}

<!-- /Block languages module -->

En Prestashop 1.6.X cuando se muestra un producto, se refleja también el campo Condición (nuevo, usado, etc)

Para quitar este campo hay que seguir los siguientes pasos:

1) En /themes/default-bootstrap/product.tpl

2) Localizar el bloque de código 

                      <p id="product_condition">

<label>{l s='Condition:'} </label>

{if $product->condition == 'new'}

<link itemprop="itemCondition" href="https://schema.org/NewCondition"/>

<span class="editable">{l s='New product'}</span>

{elseif $product->condition == 'used'}

<link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>

<span class="editable">{l s='Used'}</span>

{elseif $product->condition == 'refurbished'}

<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>

<span class="editable">{l s='Refurbished'}</span>

{/if}

</p>

 

3) Dejarlo así 

                      {*<p id="product_condition">

<label>{l s='Condition:'} </label>

{if $product->condition == 'new'}

<link itemprop="itemCondition" href="https://schema.org/NewCondition"/>

<span class="editable">{l s='New product'}</span>

{elseif $product->condition == 'used'}

<link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>

<span class="editable">{l s='Used'}</span>

{elseif $product->condition == 'refurbished'}

<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>

<span class="editable">{l s='Refurbished'}</span>

{/if}

</p>*}

¿Cómo eliminar la etiqueta nuevo que aparece en la esquina de los productos?

La solución es muy fácil: 

Hay que localizar el siguiente código en el fichero global.css

.new-label {

  font: 700 14px/12px Arial, Helvetica, sans-serif;

  color: white;

  background: #6ad4ff;

  text-transform: uppercase;

  padding: 9px 0 7px;

  text-shadow: 1px 1px rgba(0, 0, 0, 0.24);

  width: 130px;

  text-align: center;

  display: block;

  position: absolute;

  left: -33px;

  top: 16px;

  z-index: 1;

  -webkit-transform: rotate(-45deg);

  -ms-transform: rotate(-45deg);

  transform: rotate(-45deg); }

 

Entre los corchetes, hay que añadir la siguiente línea de código:

display: none;

Para todos los que hayáis trabajado con la plantilla bootstrap de Prestashop 1.6.X, seguramente os habrá llamado la atención el que el módulo DIAPOSITIVAS DE IMÁGENES no se visualiza en dispositivos móviles. 

Pues bien, es porque en la instalación por defecto de la plantilla, este módulo no está habilitado para móviles

Martes, 23 Febrero 2016 22:32

Cambiar número de productos por fila en homefeatured

Esrito por

Resumen de los pasos a seguir para lograr cambiar el número de productos por fila de la página de inicio. Puede servir como pequeña guía para lograr el msimo efecto en otras páginas de productos - como categorías o productos más vistos.

 

1 - Crear un estilo css como el que sigue:

.col-md-23 {

     width: 20%; 

}

 

Un 20% nos permitirá mostrar 5 productos por fila. Lo insertamos entre .col-md-2 y .col-md-3

Para mostrar 4 productos por fila en categorías, no necesitamos más CSS del que ya está especificado en la plantilla.

 

2- Editar product-list.tpl

{if $page_name !='index' && $page_name !='product'}

{assign var='nbItemsPerLine' value=4}

{assign var='nbItemsPerLineTablet' value=2}

{assign var='nbItemsPerLineMobile' value=3}

{else}

{assign var='nbItemsPerLine' value=5}

{assign var='nbItemsPerLineTablet' value=3}

{assign var='nbItemsPerLineMobile' value=2}

{/if}

 

3- Cambio del tamaño de las imágenes

En Preferencias > Imágenes cambiamos el tamaño de las imágenes home_default de 250 x 250 a 200 x 250. Regeneramos las miniaturas correspondientes en la misma sección.

 

4- Uso de la clase css que hemos creado (en product-list.tpl)

 

Original:

<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-12 col-sm-4 col-md-3{else} col-xs-12 col-sm-6 col-md-4{/if}

 

Modificado:

<li class="ajax_block_product{if $page_name == 'index' || $page_name == 'product'} col-xs-10 col-sm-4 col-md-23{else} col-xs-12 col-sm-4 col-md-3{/if}

En el fichero global.css, hay que buscar el siguiente código

.new-label 

En el bloque hay que añadir la siguiente línea de código:

display:none;

Página 3 de 3

Sobre CNERIS

CNERIS es una empresa constituida por jóvenes emprendedores procedentes de diferentes sectores del mundo de la información. Nuestro equipo está compuesto por programadores, administradores de sistemas, administradores de base de datos, diseñadores gráficos, maquetadores,