CmsFan Posted December 30, 2014 Share Posted December 30, 2014 (edited) Hola, Debido a temas de logística y diferentes proveedores, tengo que indicar plazos de entrega diferentes según un producto u otro (los que son con envío gratis, productos digitales, no hay problema, esto solo afecta a los físicos). Dónde puedo indicar el plazo de entrega de cada artículo? Además, al final del proceso de compra, a pesar de estar todo bien configurado con mi transportista, aparece el texto en inglés "deliver next day", como lo cambio? Muchas gracias ! Edited January 3, 2015 by Bcnserv (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted December 30, 2014 Share Posted December 30, 2014 Donde lo quieres mostrar, en la pagina de producto¿? Link to comment Share on other sites More sharing options...
CmsFan Posted December 30, 2014 Author Share Posted December 30, 2014 Hola Ventura, Exacto. Lo ideal sería esto. Si no puede ser, lo añadiría al final de pedido, aunque ya no es tan óptimo...Hay tipos de producto que se pueden enviar en cosa de 24h -48h, pero otros pueden tardar 10 o 15 días... Link to comment Share on other sites More sharing options...
ventura Posted December 30, 2014 Share Posted December 30, 2014 Aqui tienes un post sobre este tema http://www.prestashop.com/forums/topic/377910-solucionadoestimaci%C3%B3n-de-tiempo-de-entrega-en-el-producto-ps16/ Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Hola Ventura, He hecho exactamente lo que indicas en http://www.prestashop.com/forums/topic/377910-solucionadoestimaci%C3%B3n-de-tiempo-de-entrega-en-el-producto-ps16/ , pero no hay ningún resultado Alguna idea? si se puede poner texto manualmente o algo para cada producto o similar, ya me valdría... Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 Tienes que tener transportista/s agregados en cada producto para que se muestren. Manualmente lo puedes hacer desde el campo de descripcion o descripcion corta Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Si, todos los productos tienen transportistas. La mitad, que son servicios, tienen transportista gratuito. La otra mitad, productos, tienen transportista normal de pago. Ambos los transportistas están activados... Creo que lo mejor será indicarlo en el texto o similar. No sería posible indicarlo debajo o encima del precio. O, quizás, debajo de la descripción corta como un pequeño campo aparte? Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 Haciendo el desarrollo del post que te indicado lo podrias colocar sin problemas, adjunto captura, funciona sin problemas en 1.6. Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Pues que raro... Tiene que ser algo de donde se introducen las sentencias que indicabas. Te pregunto más abajo las dudas En el archivo classes/Product.php Añade esta funcion debajo de la getCarriers por ejemplo, asi tendrás los transportistas y el plazo de entrega que tienen /*** getCarriersDelay return an array of carriers name and delays** @return array with carriers dates*/public function getCarriersDelay() DONDE, en que linea o espacio?{return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT cl.`delay`, c.`name`FROM `'._DB_PREFIX_.'carrier_lang` clLEFT JOIN`'._DB_PREFIX_.'product_carrier` pcON (pc.`id_carrier_reference` = cl.`id_carrier`)LEFT JOIN `'._DB_PREFIX_.'carrier` cON (c.`id_reference` = pc.`id_carrier_reference` AND c.`deleted` = 0)WHERE pc.`id_product` = '.(int)$this->id.'AND cl.`id_lang`='.(int)$this->id_lang.'ORDER BY c.name ASC');} Luego en el archivo controllers/front/ProductController.php Añade esto en la funcion public function initContent() DONDE, en que linea o espacio? En la parte: $this->context->smarty->assign(array( Añades otra linea con este codigo ( no olvidar la coma al final) 'carriersdelay' => $this->product->getCarriersDelay($this->context->language->id), DONDE, en que linea o espacio? ** EN ESTE caso, hay varias lineas de código con $this->context->smarty->assign(array( En cual de ellas? Despues en el archivo themes/tu_tema/product.tpl En la parte que quieras que aparezca colocas esto: {if $carriersdelay} <p>{l s='Carriers list'}<p/>{foreach from=$carriersdelay item=carrier}{$carrier.name} : {$carrier.delay}"><br/>{/foreach} {/if} Puede ponerse al final del código directamente? Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 Creo que lo mejor será se hagas esto. Añade el archivo adjunto en esta ruta override/classes/ Luego en el archivo controllers/front/ProductController.php En el array linea 255 aprox, $this->context->smarty->assign(array( añades esta variable junto con las que hay, donde quieras 'carriersdelay' => $this->product->getCarriersDelay($this->context->language->id), Y por ultimo en el archivo themes/tu_tema/product.tpl Si quieres que aparezca debajo de la descripcion corta, ponlo asi {if $product->description_short || $packItems|@count > 0} <div id="short_description_block"> {if $product->description_short} <div id="short_description_content" class="rte align_justify" itemprop="description">{$product->description_short}</div> <!-- Empieza lista de carriers --> {/if} {if $carriersdelay} <p><strong>{l s='Carriers list'}</strong><p/> {foreach from=$carriersdelay item=carrier} <strong>{$carrier.name}</strong> : {$carrier.delay|escape:'html':'UTF-8'}<br/> {/foreach} {/if} <!-- Termina lista de carriers --> Es conveniente que borres archivo caches/class_index.php Y vaciar el cache desde Parametros avanzados/ Rendimiento Product.php Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Hola de nuevo Ventura, Perfecto! Ahora me aparece esto para los productos físicos que tienen gastos de envío: Carriers list Transportista Courier : Delivery next day! Para los que tienen envío Gratis, no sale nada. Esto es correcto, verdad? En relación a esto, ahora como edito el texto de "Carriers List" y lo de "Delivery next day!) para indicar los plazos de entrega de cada producto? Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 (edited) Te deben aparecer todos los transportistas que tenga seleccionado el producto, gratuito o no. El texto que aparece es el que tiene asociado el transportista desde TRANSPORTE / TRANSPORTISTA Tiempo de transito --->Delivery next day! Y el de Carriers list LOCALIZACIÓN / TRADUCCIONES --> Traducciones del Front office Elige la plantilla y el idioma a editar + Expande todos los campos Y buscas el texto Control+F para sacar el buscador del navegador Está en product Edited December 31, 2014 by ventura (see edit history) Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Ya veo. Los que tengo como productos gratuitos, no están asociados a ningún transportista y no aparece nada. Ya me va bien, porque son servicios con tiempos muy variables de entrega, dependiendo de carga de trabajo y demás. Por el tema del deliver Next day, ya estaba bien traducido y también he buscado en las traducciones de front office, pero está todo bien. Algo hay, que no deja que actualice bien, a pesar que en el back office aparece todo correctamente traducido... En qué archivo podría modificarlo ni que sea manualmente? Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 Si no hay manera lo puedes hacer desde la base de datos tabla ps_carrier_lang Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Ui, eso no me atrevo mucho...Que instrucción habría que introducir o como puedo entrar de una manera un poco gráfica? Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 Lo mas rapido y sencillo es mediante este modulo http://www.prestashop.com/forums/topic/74828-module-phpmyadmin/ Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Perfecto, ya lo he insalado y estoy dentro. He hecho un "Browse" Yo tengo la tienda en 4 idiomas, pero veo que en esta tabla hay 68 campos. Es normal? Link to comment Share on other sites More sharing options...
ventura Posted December 31, 2014 Share Posted December 31, 2014 (edited) Si, es normal, cada vez que se edita el transportista cambia su id, es decir se genera otro para no comprometer a pedidos ya realizados Edited December 31, 2014 by ventura (see edit history) Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Ok. Pues no sé que hacer para cambiarlo, parce que están bien aquí en esta tabla Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Veo "inspeccionando el elemento desde Chrome" y el product.tpl, que lo que habría que localizar en las tablas es la variable o campo $carrier.delay y el $carrier.name Donde puedo modificarlos? Link to comment Share on other sites More sharing options...
CmsFan Posted December 31, 2014 Author Share Posted December 31, 2014 Bueno, machacando uno por uno lo he solucionado. Lo doy por solucionado a través de Myphpadmin Muchas gracias Ventura, eres un crack !! Link to comment Share on other sites More sharing options...
Recommended Posts