Ir al contenido principal

Drupal Commerce - producto con varios precios


Montando un marketplace con Drupal Commerce, apareció un caso de uso donde el cliente quería agregar a cada producto un precio de envío diferente. Por tanto no valía una Flate Rate u alguna solución clásica de 'shipping', así que pensé que Rules y encontré esta simple solución de Josh Miller:

La idea es agregar un campo 'envío' tipo 'price' al tipo de producto en cuestión, y luego con rules, sumar al precio del producto, el precio del envío.

  1. Crear una nueva regla de cálculo de precio. Ir a admin/commerce/config/product-pricing/rules/add y darle un nombre
  2. Agregamos una primera condición "Entity has field" a la entidad "commerce-line-item" y seleccione el campo "commerce_product". Con este paso se carga el producto para la siguiente inspección.
  3. Segunda condición, cargamos el campo con el precio: "Entity has field" a la entidad "commerce-line-item:commerce-product" y seleccionamos el campo creado previamente en el tipo de producto.
  4. Confirmar que el nuevo campo 'envio' no está vacío. Siempre es buena idea saltar el cálculo si el campo está vacío, por lo cual agregamos una tercera condición: "Data is Empty" y seleccionamos la cantidad (amount) del campo en cuestión. El token debe aparecer similar a "commerce-line-item:commerce-product:field-shipping-price:amount" ... y asegurarse de seleccionar 'NEGATE', pues queremos que los campos NO estén vacíos.
  5. Finalmmente agregar el precio del campo al del producto. Ahora solamente necesitamos agregar una acción llamada "Add an amount to the unit price" dentro de "Line Item". Seleccionamos el campo como mismo hicimos en el paso anterior, similar a "commerce-line-item:commerce-product:field-shipping-price:amount". Finalizamos seleccionando el componente "shipping"
  6. La regla exportada: http://pastebin.com/JmKjNPE4
    Ahora podemos agregar algún precio de envío en nuestros productos y aparecerá durante el checkout. Es interesante que Commerce desglosa el precio total y sabe de dónde viene cada número. Por ejemplo, tenemos un producto que cuesta $50.00 y $10.00 de envío, el total será $60.00, pero durante en la orden aparecerá claramente desglosado los $50.00 del producto, y los $10.00 del envío.

Comentarios

Entradas populares de este blog

Eclipse total de sol, 20 de marzo de 2015

La vida me premió con la oportunidad de ver un evento astronómico espectacular como es un eclipse de sol, que unos pocos afortunados más al norte pudieron disfrutarlo en su versión total, aunque desde el centro de Europa pudimos apreciar más de un 70% del fenómeno y con un clima despejado. El cielo despejado permitió disfrutar el eclipse completo  La diferencia de luz fue notable. A la derecha durante el eclipse, a la izquierda minutos después de concluir.

Actualizar Ruby con RVM en OS X 10.9 Maverick

Cocoapods me pide una versión de Ruby mayor que 2.0, pero Maverick viene por defecto con 1.9.3 así que tiré de rvm pensando que serían un par de líneas pero no, he pasado un buen rato en el proceso. Hagamos el cuento corto: $rvm list known y no aparece ninguna versión 2 o superior, así que: $rvm get latest y ahora con: $rvm list known tenemos: # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.7[-head] # security released on head [ruby-]1.9.1[-p431] [ruby-]1.9.2[-p330] [ruby-]1.9.3[-p551] [ruby-]2.0.0[-p643] [ruby-]2.1.4 [ruby-]2.1[.5] [ruby-]2.2[.1] [ruby-]2.2-head ruby-head ahora si, $rvm install 2.2.1 pero Error running 'requirements_osx_brew_libs_install automake libtool libksba', showing last 15 lines of /Users/hedmon/.rvm/log/1428514809_ruby-2.2.1/package_install_automake_libtool_libksba.log Las dependencias estaban instaladas pero no linkeadas, así que vamos a resolverlo con Homebrew. $brew update $brew upgrade

Cosas que deberías saber - Aplicaciones con Facebook

Si aún tienes dudas de cuán abusivo puede ser Facebook con sus usuarios / desarrolladores, échale un ojo a sus políticas de uso del SDK : cosas que deberías saber Podemos analizar tu aplicación, contenido y datos con cualquier finalidad, incluidos los fines comerciales. Podemos supervisar o recopilar los datos relacionados con tu uso de SDK. Utilizaremos la información que recibamos de ti o en relación con tu integración de la plataforma, en conformidad con nuestra Política de uso de datos. Nos concedes todos los derechos necesarios para habilitar tu aplicación para que funcione con Facebook, incluido el derecho a incorporar la información que nos proporciones en otras partes de Facebook y el derecho a atribuir el origen de la información utilizando tu nombre o tus logotipos. Podemos compartir tu información de contacto con personas que deseen comunicarse contigo. Podemos utilizar tu nombre, tus logotipos, tu contenido y tu información, incluidas las capturas de pantal