Hola, estoy liado con implementar la tienda en mi web y al dedicarme a la venta de vinos y aceites, quisiera realizar las ventas además2 de por unidad, por cajas. (6 uds., 12 Uds...)
Esto conllevaría diferentes precios del artículo y diferentes costes de envío.
Cómo podría realizar esto? Estoy dándole vueltas y no se si se tratará como si fueran tallas?
El tema es que el comprador al entrar en el producto tenga un desplegable para elegir la cantidad que quiere, no en unidades, sino si quiere una caja de 6 o de 12 (ya digo, independientemente de las uds. de cajas que quiera) y que se modifique el precio en función de esto, junto con el coste de los portes.
Cómo podría hacerlo?
(Ahora tengo la tienda desactivada).
Saludos.
URL del sitio: Contenido solo visible a usuarios registrados
Hola Víctor.
Lo puedes realizar desde los atributos de woocomerce.
Los atributos de productos en WooCommerce sirven para definir características variables de un producto, de forma que permitan al cliente elegir algunos aspectos de ese producto según sus necesidades.
Para poder asignar atributos a un producto en WooCommerce, lo primero que hay que hacer es crear dicho atributo, para hacer esto hay que ir a “Productos => Atributos“, darle un nombre al atributo y por último hacer clic en “Añadir atributo“.
Una vez creado el atributo, debes ir a la página del producto en el que se deseas aplicar el atributo y en el apartado “Información del producto” seleccionar “Producto variable“. El siguiente paso es añadir a la ficha del producto el atributo que se haya creado antes. Para ello haces clic en la pestaña “Atributo“, después seleccionas “Nombre atributo” y haces clic en “Añadir“.
Ahora hay que definir las opciones que hay disponibles para ese producto en concreto. Esto se hace clicando en “Añadir nuevo” e introduciendo el número productos que quieres. Hay que repetir el proceso por cada cantidad que se quiera añadir. Después se marcan las casillas “Visible en la página de producto” y “Usado para variaciones” y por último hay que hacer clic en “Guardar atributos“.
Para que el cliente pueda elegir el producto usando el atributo que hemos definido, hay que crear variaciones para cada pack. Esto se hace entrando a la pestaña “Variaciones” y haciendo clic en “Añadir variación“.
Ahora hay que rellenar los campos que se muestran: stock, precio, peso, etc. Puedes configurar diferentes precios para diferentes packs. Cuando se haya completado toda la información, hay que indicar a qué pack corresponde esos datos. De nuevo hay que repetir el proceso para cada uno.
Por último, hacemos clic en “Publicar” y ya se debería de mostrar la opción en la página de producto.
Un saludo
Gracias Pepe,
Voy a probar a ver si le saco punta.
Parece que me voy aclarando.
Cabría la posibilidad de que mostrara el precio unitario, además de el de los packs?
Esto me vendría bien, ya que en algunos productos como el aceite, hay dos tipos de envase (vidrio y PET) y sería interesante para no tener que dar de alta todos los productos de un mismo tipo de envase, pero de diferente capacidad.
Es decir, en vidrio, por ejemplo, tener el precio unitario correspondiente y poder elegir entre 250cc, 500cc y 750cc. En PET serían 1, 2 y 5L. Según el tamaño que indicara el precio unitario y el del pack.
También me interesaría que no mostrara el rango de precios. (adjunto imagen).
Saludos.
Hola Victor.
También me interesaría que no mostrara el rango de precios.
Tienes que añadir algo de código al fichero function.php, La forma más sencilla de hacerlo es entrando en tu panel de administración de WordPress y yendo a la sección “Apariencia => Editor“. Una vez dentro, a la derecha, en el apartado “Plantillas“, haz clic sobre “Funciones del tema” y se cargará en el editor el código de tu archivo function.php.
Por último, sólo tienes que desplazarte hasta la última línea del archivo, pegar el siguiente código y hacer clic en “Actualizar archivo” para guardar los cambios.
get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) ); $price = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); // Sale Price $prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) ); sort( $prices ); $saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); if ( $price !== $saleprice ) { $price = '' . $saleprice . '' . $price . ''; } return $price; } ?>
Recuerda realizar una copia del archivo antes hacer cualquier modificación, simplemente con copia y pega en el bloc de notas lo tienes realizado.
Sobre lo otro que me comentas no lo entiendo muy bien pero supongo que si quieres hacerlo por clase de envase, los pasos serían los mismos.
Un saludo
Hola Victor.
Sobre lo otro que me comentas no lo entiendo muy bien pero supongo que si quieres hacerlo por clase de envase, los pasos serían los mismos.
Un saludo
Me refiero a que además de que indique el precio del pack seleccionado, indique también el precio unitario. Es decir, si el pack se compone de 6 uds. que indique el precio de una ud. sola.
Gracias.
Hola Pepe,
he hecho lo que me has dicho con el código que has indicado pero se me queda la pantalla en blanco tanto en el backend como en el frontend, sin posibilidad de hacer nada.
He ido a CPanel y desde ahí he localizado el archivo en cuestión, lo he dejado como estaba y se ha resuelto el problema.
Habrá algo mal en ese código?
Hola Víctor.
Perdona por mi confusión te puse el código entre las etiquetas ““. Solamente debes copiar y pegar el código que hay entre ellas.
// Use WC 2.0 variable price format, now include sale price strikeout add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 ); function wc_wc20_variation_price_format( $price, $product ) { // Main Price $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) ); $price = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); // Sale Price $prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) ); sort( $prices ); $saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); if ( $price !== $saleprice ) { $price = '' . $saleprice . '' . $price . ''; } return $price; }
Un saludo
Hola
Actualmente no se muestra lo que comentas
Contenido solo visible a usuarios registrados
Tienes algun tipo de restricción para los visitantes?, si se requiere usuario registrado tendrías que enviarnos los datos para probar o indicarnos exactaemtne como obtener la pantalla que has enviado
Saludos.
Hola Jhon, tenía la tienda desactivada. Ahora está visible.
Hola,
Cambios que te había indicado Pepe tendrían que funcionar. Son los que se explican en la siguiente página:
http://gerhardpotgieter.com/2014/02/13/woocommerce-2-1-variation-prices-revert-to-2-0-format/
Es posible que no los hayas aplicado correctamente o que exista algún problema de compatibilidad entre estos cambios y la plantilla Helena que estás usando.
Adjúntanos en un zip el archivo functions.php actual para ver si los cambios se han aplicado correctamente.
Hola
El archivo enviado tiene un error de sintaxis, has colocado mal el código, prueba con el siguiente archivo adjunto.
Saludos.
Ahora sí. Gracias Jhon.
Ahora pone "From: x €"
Cómo puedo hacer para que en la web en español salga en español y en la de inglés en su idioma?
Hará falta algún plugin tipo "CodeStyling Localization"?
EDITO:
Lo correcto sería cambiar ese "From:" por "por unidad" después del precio. Pero en el correspondiente idioma. (ES, EN)