Jump to content

Carlostlr

Members
  • Posts

    46
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Carlostlr's Achievements

Newbie

Newbie (1/14)

3

Reputation

  1. Nadie puede ayudarme? no consigo encontrar la forma de hacerlo. Necesito ayuda por favor
  2. @ventura Gracias por la respuesta, he estado viendo varios módulos pero en casi todos obtiene los datos del producto que está cargado actualmente. Lo que yo quiero es poder pasarle un id de un producto, el cual cambiará cada X tiempo y solo consigo que me devuelva los datos que he puesto antes.
  3. Buenas, gracias de antemano. Estoy desarrollando un modulo en el cual se podrá indicar hasta 20 productos de forma manual para mostrarlos en la portada. El problema que tengo es que al recuperar la información del producto aparecen muchos campos en blanco o con isUnsignedId. Este es mi código: $id_product = 10474; $anyproduct = new Product($id_product, true, $this->context->language->id, $this->context->shop->id); $images = $anyproduct->getImages($this->context->language->id); $list_image = array(); foreach ($images as $img) { $image['cover'] = (bool)$img['cover']; $image['url'] = $this->context->link->getImageLink($anyproduct->link_rewrite, $img['id_image'], 'home_default'); $image['position'] = $img['position']; array_push($list_image,$image); } var_dump($anyproduct); Con esto obtengo la imagen y los datos del producto, el array devuelto es el siguiente: object(Product)[354] public 'tax_name' => string 'deprecated' (length=10) public 'tax_rate' => float 21 public 'id_manufacturer' => string '94' (length=2) public 'id_supplier' => string '0' (length=1) public 'id_category_default' => string '108' (length=3) public 'id_shop_default' => string '1' (length=1) public 'manufacturer_name' => string 'Xiaomi' (length=6) public 'supplier_name' => boolean false public 'name' => string 'Smartphone XIAOMI REDMI 8A - Azul, 32GB/2GB, 6.2", Octa-Core, 4G' (length=64) public 'description' => string '' (length=0) public 'description_short' => string '<p>- Cámara trasera de 12MP dual pixel + 8MP (selfie).</p> <p>- Potente procesador Octa-core Qualcomm Snapdragon 439</p> <p>- Sistema operativo Android 9 con MIUI 10</p> <p>- Pantalla HD+ de 1560x720 pixeles</p>' (length=216) public 'quantity' => int 28 public 'minimal_quantity' => string '1' (length=1) public 'low_stock_threshold' => null public 'low_stock_alert' => string '0' (length=1) public 'available_now' => string '' (length=0) public 'available_later' => string '' (length=0) public 'price' => float 90.823278 public 'specificPrice' => array (size=19) 'id_specific_price' => string '1465488' (length=7) 'id_specific_price_rule' => string '0' (length=1) 'id_cart' => string '0' (length=1) 'id_product' => string '10474' (length=5) 'id_shop' => string '1' (length=1) 'id_shop_group' => string '0' (length=1) 'id_currency' => string '0' (length=1) 'id_country' => string '0' (length=1) 'id_group' => string '1' (length=1) 'id_customer' => string '0' (length=1) 'id_product_attribute' => string '0' (length=1) 'price' => string '-1.000000' (length=9) 'from_quantity' => string '1' (length=1) 'reduction' => string '0.120100' (length=8) 'reduction_tax' => string '1' (length=1) 'reduction_type' => string 'percentage' (length=10) 'from' => string '0000-00-00 00:00:00' (length=19) 'to' => string '0000-00-00 00:00:00' (length=19) 'score' => string '50' (length=2) public 'additional_shipping_cost' => string '0.00' (length=4) public 'wholesale_price' => string '0.000000' (length=8) public 'on_sale' => string '0' (length=1) public 'online_only' => string '0' (length=1) public 'unity' => string '' (length=0) public 'unit_price' => int 0 public 'unit_price_ratio' => string '0.000000' (length=8) public 'ecotax' => string '0.000000' (length=8) public 'reference' => string '0000989735' (length=10) public 'supplier_reference' => string '' (length=0) public 'location' => string '' (length=0) public 'width' => string '0.000000' (length=8) public 'height' => string '0.000000' (length=8) public 'depth' => string '0.000000' (length=8) public 'weight' => string '0.000000' (length=8) public 'ean13' => string '6941059630623' (length=13) public 'isbn' => string '' (length=0) public 'upc' => string '' (length=0) public 'link_rewrite' => string 'smartphone-xiaomi-redmi-8a-azul-32gb2gb-62-octa-core-4g' (length=55) public 'meta_description' => string '' (length=0) public 'meta_keywords' => string '' (length=0) public 'meta_title' => string '' (length=0) public 'quantity_discount' => string '0' (length=1) public 'customizable' => string '0' (length=1) public 'new' => boolean false public 'uploadable_files' => string '0' (length=1) public 'text_fields' => string '0' (length=1) public 'active' => string '1' (length=1) public 'redirect_type' => string '404' (length=3) public 'id_type_redirected' => string '0' (length=1) public 'available_for_order' => string '1' (length=1) public 'available_date' => string '0000-00-00' (length=10) public 'show_condition' => string '1' (length=1) public 'condition' => string 'new' (length=3) public 'show_price' => string '1' (length=1) public 'indexed' => string '1' (length=1) public 'visibility' => string 'both' (length=4) public 'date_add' => string '2019-11-06 15:17:03' (length=19) public 'date_upd' => string '2019-11-20 17:07:19' (length=19) public 'tags' => boolean false public 'state' => string '1' (length=1) public 'base_price' => string '103.220000' (length=10) public 'id_tax_rules_group' => string '1' (length=1) public 'id_color_default' => int 0 public 'advanced_stock_management' => string '0' (length=1) public 'out_of_stock' => int 0 public 'depends_on_stock' => boolean false public 'isFullyLoaded' => boolean true public 'cache_is_pack' => string '0' (length=1) public 'cache_has_attachments' => string '0' (length=1) public 'is_virtual' => string '0' (length=1) public 'id_pack_product_attribute' => null public 'cache_default_attribute' => string '0' (length=1) public 'category' => string 'smartphones' (length=11) public 'pack_stock_type' => string '3' (length=1) public 'additional_delivery_times' => string '1' (length=1) public 'delivery_in_stock' => string '' (length=0) public 'delivery_out_stock' => string '' (length=0) protected 'webserviceParameters' => array (size=4) 'objectMethods' => array (size=2) 'add' => string 'addWs' (length=5) 'update' => string 'updateWs' (length=8) 'objectNodeNames' => string 'products' (length=8) 'fields' => array (size=12) 'id_manufacturer' => array (size=1) ... 'id_supplier' => array (size=1) ... 'id_category_default' => array (size=1) ... 'new' => array (size=0) ... 'cache_default_attribute' => array (size=0) ... 'id_default_image' => array (size=3) ... 'id_default_combination' => array (size=3) ... 'id_tax_rules_group' => array (size=1) ... 'position_in_category' => array (size=2) ... 'manufacturer_name' => array (size=2) ... 'quantity' => array (size=2) ... 'type' => array (size=2) ... 'associations' => array (size=9) 'categories' => array (size=2) ... 'images' => array (size=2) ... 'combinations' => array (size=2) ... 'product_option_values' => array (size=2) ... 'product_features' => array (size=2) ... 'tags' => array (size=2) ... 'stock_availables' => array (size=3) ... 'accessories' => array (size=3) ... 'product_bundle' => array (size=3) ... public 'id' => int 10474 protected 'id_lang' => int 1 protected 'id_shop' => int 1 public 'id_shop_list' => null protected 'get_shop_from_context' => boolean false protected 'table' => string 'product' (length=7) protected 'identifier' => string 'id_product' (length=10) protected 'fieldsRequired' => array (size=1) 0 => string 'price' (length=5) protected 'fieldsSize' => array (size=6) 'reference' => int 32 'supplier_reference' => int 32 'location' => int 64 'ean13' => int 13 'isbn' => int 32 'upc' => int 12 protected 'fieldsValidate' => array (size=48) 'id_shop_default' => string 'isUnsignedId' (length=12) 'id_manufacturer' => string 'isUnsignedId' (length=12) 'id_supplier' => string 'isUnsignedId' (length=12) 'reference' => string 'isReference' (length=11) 'supplier_reference' => string 'isReference' (length=11) 'location' => string 'isReference' (length=11) 'width' => string 'isUnsignedFloat' (length=15) 'height' => string 'isUnsignedFloat' (length=15) 'depth' => string 'isUnsignedFloat' (length=15) 'weight' => string 'isUnsignedFloat' (length=15) 'quantity_discount' => string 'isBool' (length=6) 'ean13' => string 'isEan13' (length=7) 'isbn' => string 'isIsbn' (length=6) 'upc' => string 'isUpc' (length=5) 'cache_is_pack' => string 'isBool' (length=6) 'cache_has_attachments' => string 'isBool' (length=6) 'is_virtual' => string 'isBool' (length=6) 'state' => string 'isUnsignedId' (length=12) 'additional_delivery_times' => string 'isUnsignedId' (length=12) 'id_category_default' => string 'isUnsignedId' (length=12) 'id_tax_rules_group' => string 'isUnsignedId' (length=12) 'on_sale' => string 'isBool' (length=6) 'online_only' => string 'isBool' (length=6) 'ecotax' => string 'isPrice' (length=7) 'minimal_quantity' => string 'isUnsignedInt' (length=13) 'low_stock_threshold' => string 'isInt' (length=5) 'low_stock_alert' => string 'isBool' (length=6) 'price' => string 'isPrice' (length=7) 'wholesale_price' => string 'isPrice' (length=7) 'unity' => string 'isString' (length=8) 'additional_shipping_cost' => string 'isPrice' (length=7) 'customizable' => string 'isUnsignedInt' (length=13) 'text_fields' => string 'isUnsignedInt' (length=13) 'uploadable_files' => string 'isUnsignedInt' (length=13) 'active' => string 'isBool' (length=6) 'redirect_type' => string 'isString' (length=8) 'id_type_redirected' => string 'isUnsignedId' (length=12) 'available_for_order' => string 'isBool' (length=6) 'available_date' => string 'isDateFormat' (length=12) 'show_condition' => string 'isBool' (length=6) 'condition' => string 'isGenericName' (length=13) 'show_price' => string 'isBool' (length=6) 'indexed' => string 'isBool' (length=6) 'visibility' => string 'isProductVisibility' (length=19) 'advanced_stock_management' => string 'isBool' (length=6) 'date_add' => string 'isDate' (length=6) 'date_upd' => string 'isDate' (length=6) 'pack_stock_type' => string 'isUnsignedInt' (length=13) protected 'fieldsRequiredLang' => array (size=0) empty protected 'fieldsSizeLang' => array (size=9) 'delivery_in_stock' => int 255 'delivery_out_stock' => int 255 'meta_description' => int 255 'meta_keywords' => int 255 'meta_title' => int 128 'link_rewrite' => int 128 'name' => int 128 'available_now' => int 255 'available_later' => int 255 protected 'fieldsValidateLang' => array (size=11) 'delivery_in_stock' => string 'isGenericName' (length=13) 'delivery_out_stock' => string 'isGenericName' (length=13) 'meta_description' => string 'isGenericName' (length=13) 'meta_keywords' => string 'isGenericName' (length=13) 'meta_title' => string 'isGenericName' (length=13) 'link_rewrite' => string 'isLinkRewrite' (length=13) 'name' => string 'isCatalogName' (length=13) 'description' => string 'isCleanHtml' (length=11) 'description_short' => string 'isCleanHtml' (length=11) 'available_now' => string 'isGenericName' (length=13) 'available_later' => string 'IsGenericName' (length=13) protected 'tables' => array (size=0) empty protected 'image_dir' => null protected 'image_format' => string 'jpg' (length=3) protected 'translator' => null protected 'def' => array (size=7) 'table' => string 'product' (length=7) 'primary' => string 'id_product' (length=10) 'multilang' => boolean true 'multilang_shop' => boolean true 'fields' => array (size=61) 'id_shop_default' => array (size=2) ... 'id_manufacturer' => array (size=2) ... 'id_supplier' => array (size=2) ... 'reference' => array (size=3) ... 'supplier_reference' => array (size=3) ... 'location' => array (size=3) ... 'width' => array (size=2) ... 'height' => array (size=2) ... 'depth' => array (size=2) ... 'weight' => array (size=2) ... 'quantity_discount' => array (size=2) ... 'ean13' => array (size=3) ... 'isbn' => array (size=3) ... 'upc' => array (size=3) ... 'cache_is_pack' => array (size=2) ... 'cache_has_attachments' => array (size=2) ... 'is_virtual' => array (size=2) ... 'state' => array (size=2) ... 'additional_delivery_times' => array (size=2) ... 'delivery_in_stock' => array (size=4) ... 'delivery_out_stock' => array (size=4) ... 'id_category_default' => array (size=3) ... 'id_tax_rules_group' => array (size=3) ... 'on_sale' => array (size=3) ... 'online_only' => array (size=3) ... 'ecotax' => array (size=3) ... 'minimal_quantity' => array (size=3) ... 'low_stock_threshold' => array (size=4) ... 'low_stock_alert' => array (size=4) ... 'price' => array (size=4) ... 'wholesale_price' => array (size=3) ... 'unity' => array (size=3) ... 'unit_price_ratio' => array (size=2) ... 'additional_shipping_cost' => array (size=3) ... 'customizable' => array (size=3) ... 'text_fields' => array (size=3) ... 'uploadable_files' => array (size=3) ... 'active' => array (size=3) ... 'redirect_type' => array (size=3) ... 'id_type_redirected' => array (size=3) ... 'available_for_order' => array (size=3) ... 'available_date' => array (size=3) ... 'show_condition' => array (size=3) ... 'condition' => array (size=5) ... 'show_price' => array (size=3) ... 'indexed' => array (size=3) ... 'visibility' => array (size=5) ... 'cache_default_attribute' => array (size=2) ... 'advanced_stock_management' => array (size=3) ... 'date_add' => array (size=3) ... 'date_upd' => array (size=3) ... 'pack_stock_type' => array (size=3) ... 'meta_description' => array (size=4) ... 'meta_keywords' => array (size=4) ... 'meta_title' => array (size=4) ... 'link_rewrite' => array (size=6) ... 'name' => array (size=5) ... 'description' => array (size=3) ... 'description_short' => array (size=3) ... 'available_now' => array (size=4) ... 'available_later' => array (size=4) ... 'associations' => array (size=7) 'manufacturer' => array (size=1) ... 'supplier' => array (size=1) ... 'default_category' => array (size=3) ... 'tax_rules_group' => array (size=1) ... 'categories' => array (size=4) ... 'stock_availables' => array (size=4) ... 'l' => array (size=3) ... 'classname' => string 'Product' (length=7) protected 'update_fields' => null public 'force_id' => boolean false Cómo hago para que me devuelva todos los datos del artículo
  4. Para cambiar esto, tenemos que ir al archivo app -> resources -> Translations -> es-ES -> ShopThemeCatalog.es-ES.xlf y dentro de este archivo buscar las siguientes líneas: <source>New</source> <target xml:lang="es-ES">Novedad</target> Cambiamos la palabra Novedad por lo que queramos, guardamos y borramos cache.
  5. Buenas, estoy configurando el modulo realexpayments, necesito que al realizar el pago pase algunos datos a la plataforma de pago, como los artículos que se han pedido por ejemplo. Necesito mandar el numero de referencia del pedido pero no encuentro la forma obtenerlo en el módulo, alguien que me pueda echar una mano por favor.
  6. El problema es que esa información la cambié hace mas de un mes, por lo que google ya debería de haberlo cambiado. Probaré a ralizar las opciones que me as indicado @maryano. Muchas gracias por tu ayuda.
  7. Hola, estoy intentado cambiar la meta descripción de mi presashop 1.7 pero no encuentro la forma de hacerlo. Entro en Parámetros de la tienda -> Trafico y SEO -> Index y modifico el campo meta descripción pero al buscarlo en google aparece esto: Buscar. Artículo (0). (0). No se han añadido productos al carrito. Ofertas · Cámaras · Cámaras Réflex · Cámaras Instantáneas · Accesorios de ... que puede estar fallando? existe algo mas que modificar para cambiarlo o que es necesario hacer para ello?
  8. Hola, he vistoq ue en archivo cart.php dentro de classes, existe este código /** * Get all deliveries options available for the current cart * @param Country $default_country * @param bool $flush Force flushing cache * * @return array array( * 0 => array( // First address * '12,' => array( // First delivery option available for this address * carrier_list => array( * 12 => array( // First carrier for this option * 'instance' => Carrier Object, * 'logo' => <url to the carriers logo>, * 'price_with_tax' => 12.4, * 'price_without_tax' => 12.4, * 'package_list' => array( * 1, * 3, * ), * ), * ), * is_best_grade => true, // Does this option have the biggest grade (quick shipping) for this shipping address * is_best_price => true, // Does this option have the lower price for this shipping address * unique_carrier => true, // Does this option use a unique carrier * total_price_with_tax => 12.5, * total_price_without_tax => 12.5, * position => 5, // Average of the carrier position * ), * ), * ); * If there are no carriers available for an address, return an empty array */ Alguien podría decirme como podría utilizarse o para que sirve? ya que estaría interesado en poder mostrar todos los transportistas disponibles, gracias.
  9. Muchas gracias, me has dado una muy buena idea, lo que haré es asignarle el transporte especial a todos los productos, a los productos especiales añadirles un atributo indicando envio especial - si y luego comprobar los productos que hay en carrito si alguno tiene ese atributo o no, y en función de eso, que las opciones de envío salgan habilitadas o deshabilitadas. Muchas gracias por tu ayuda, un saludo.
  10. Hola @Rolige, sería posible hacer que al agregar al carrito el producto A y B y aparezcan ambos transportistas 1 y 2? y seleccionar solo uno de ellos, ya que tengo un envío estándar y otro especial el cual solo tienen algunos productos, es por ello que necesito que se mostrase al seleccionar uno que lo tiene y otro que no, en ese caso el cliente seleccionaría el transportista que estándar o el especial (posteriormente manualmente haría el envío de cada producto con el que le corresponda)
  11. Hola, existe alguna forma de hacer que si tengo un producto A con un transportista asociado llamado 1, y otro producto B con otro transportista distinto asociado llamado 2, al agregar los dos productos al carrito aparezcan ambos transportistas en vez de solo uno de ellos? actualmente solo salen los que tienen en común y necesito que se muestren los transportistas que tienen asociados los productos que hay en el carrito. Gracias de antemano.
  12. Ya he conseguido solucionarlo, no se si será la mejor forma de hacerlo, pero mi código quedaría así: mimodulo.tpl <script> $(document).ready(function() { $("#formulario").submit(function(e) { e.preventDefault(); var url = "{$link->getModuleLink('Productwarranty', 'ajax', array())}"; $.ajax( { type: 'POST', url: , data: $('#formulario').serialize(), success: function(response) { alert("Ha funcionado"); }, error: function() { alert("Algo ha fallado"); } }); }); }); </script> <form method="post" id="formulario"> <input type="hidden" name="valor" value="valor a pasar"> <input name="submitPrueba" type="submit" value="enviar"/> </form> ajax.php class MymoduloAjaxModuleFrontController extends ModuleFrontController { public function initContent() { $this->ajax = true; echo(var_dump($_POST)); parent::initContent(); } } Con esto al hacer el echo me devuelve los datos que necesitaba por POST.
  13. Hola @Rolige gracias por tu ayuda, he estado mirando el módulo del ps_shoppingcart como me has comentado, he creado un archivo ajax.php en mi modulo y en mi formulario mando los datos post al archivo modules/mimodulo/controllers/front/ajax.php, si hago por ejemplo un echo(var_dump($_POST)); al principio de a la clase recoge los datos perfectamente, pero no consigo que lo coja dentro de la clase en el método class mimoduloAjax extends ModuleFrontController { public function initContent() { parent::initContent(); if (Tools::isSubmit('submitPrueba') == true) { $hola = 'Funciona!!'; $archivo="datos.txt"; $file=fopen($archivo,"a"); fwrite($file,$hola); fclose($file); } } } Soy nuevo en esto y es mi primer módulo y estoy un poco perdido con el tema de los formularios, por favor, he mirado en el módulo del carrito pero no encuentro nada que apunte a este archivo ajax.php, gracias de nuevo.
  14. Buenas, estoy creando un modulo con el que añado un formulario en la ventana modal de cuando añades un producto al carrito. He creado un hook para anclarlo en este modal. El problema que tengo es con el formulario, lo estoy mandando por ajax pero no consigo recoger los datos desde mi archivo php del modulo, he probado a mandar el formulario a un archivo nuevo php y veo que manda los datos por POST sin problema alguno, pero en mi archivo controlador del modulo no hay forma de hacerlo, mi código es el siguiente : mimodulo.php public function hookanclaNuevo($params) { if (Tools::isSubmit('submitPrueba')) { // si funciona redirigirá a google de prueba header('location:www.google.es'); } //cargamos el archivo tpl return $this->display(__FILE__, 'views/templates/hook/mimodulo.tpl'); } mimodulo.tpl <script> $(document).ready(function() { $("#formulario").submit(function(e) { e.preventDefault(); $.ajax( { type: 'POST', url: '', data: $('#formulario').serialize(), success: function(response) { alert("Ha funcionado"); }, error: function() { alert("Algo ha fallado"); } }); }); }); </script> <form method="post" id="formulario"> <input type="hidden" name="valor" value="valor a pasar"> <input name="submitPrueba" type="submit" value="enviar"/> </form> modules/ps_shoppingcart/modal.tpl <div class="cart-content"> <p><strong>{l s='Total:' d='Shop.Theme.Checkout'}</strong> {$cart.totals.total.value} {$cart.labels.tax_short}</p> <div class="cart-content-btn ttvproduct-cart-btn"> <button type="button" class="btn btn-secondary" data-dismiss="modal">{l s='Continue shopping' d='Shop.Theme.Actions'}</button> <a href="{$cart_url}" class="btn btn-primary"><i class="ion-android-done"></i>{l s='Tramitar Pedido' d='Shop.Theme.Actions'}</a> </div> <--! Anclo mimodulo a este lugar --> {hook h='anclaNuevo'} </div> Necesito ayuda, no comprendo como lo hace prestashop para cuando es pulsado el botón vuelva a ejecutar el código y procese los datos del post.
  15. Buenas. Tengo que añadir una pequeña función cuando se hace click en el botón comprar de algún artículo, el problema que tengo es que no encuentro la función la cual hace esta tarea para integrar mi código, por favor alguien que pueda ayudarme, sería posible llamar a esta función con ajax o alguna manera? Gracias.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More