Magento: más configuraciones

Mirando los borradores del blog, me he encontrado con este, que no sé porqué no llegué a publicar en su día (es de Septiembre del 2010). Lo recupero y publico, esperando que sea de utilidad.

A base de pelearme con Magento, he descubierto algunas opciones muy muy básicas pero que me vienen de maravilla (aviso, este es un post para los que como yo, son principiantes con Magento):

Mostrar productos fuera de stock

Si queremos que nuestros productos se muestren en nuestra web aún cuando no tenemos existencias, podemos hacerlo, asegurándonos de que no se van a poder comprar.
En la versión 1.4.1.1 esto se hace desde Sistema -> Configuración -> Catálogo -> Inventario, desde donde además de poder poner a «Si» la opción «Display Out of Stock Products», podremos gestionar la cantidad máxima de productos permitidos en un mismo carrito de la compra (que vendrá muy bien si tienes unos gastos de envío variables que has subido con un csv).

Mostrar productos por defecto en línea en lugar de en cuadrícula

La verdad, no me gusta nada la vista por defecto de Magento, que muestra los productos ordenados en cuadrícula. Queda mucho más elegante, por lo menos con mi tema y mis productos, la vista en lista. Desde Sistema -> Configuración -> Catálogo -> Catálogo -> frontend, podremos cambiar este punto en la opción «Modo de la lista».

Permitir pagos con Paypal para el producto de menor peso

Un problema que me he encontrado, es que he trabajado con «tablerates» para definir los gastos de envío en función del peso y el destino (explicado en este post, en el apartado «Gastos de envío»). Pues bien, como cada producto tiene asociado un peso, se debe definir el coste de los gastos de envío para todos y cada uno de los destinos para el producto de peso menor (o para peso cero), ya que si no podemos tener problemas en las ventas. Por ejemplo, si tengo definidos 2 gastos de envío (Barcelona y Madrid) y tengo un producto de 0,5kg, no podré vender si tengo los siguientes gastos de envío:

  • Barcelona: 0 kg = 5€, 10kg = 10€
  • Madrid: 10kg = 10€

No podré vender mi producto de 0,5kg aún cuando el destino sea Barcelona (y por tanto tenga definidos los gastos de envío correctamente). Necesitaré definir también los gastos para Madrid.

Tienda multilenguaje

Finalmente, me he decidido a hacer mi tienda en varios idiomas, aprovechando la poténcia de Magento, y siguiendo los pasos aquí descritos, y que resumo a continuación:

  1. Descargar y descomprimir los idiomas para nuestra web del sitio oficial. http://www.magentocommerce.com/langs/list/
  2. Subir a Magento los idiomas descomprimidos. Cada idioma ya viene con la estructura creada, así que únicamente deberemos subir el directorio «app» del idioma a la raíz de nuestra instalación de Magento en el servidor. Esto nos creará para cada idioma, un directorio en app\design\frontend\default\default\local y otro en app\locale.
  3. Desde la administración de Magento, desde Sistema -> Gestionar tiendas, crearemos una nueva «Vista de tienda» para cada uno de los nuevos idiomas. Cada vista de tienda, deberá tener los siguientes parámetros:
    • Store: Main Store
    • Name: Idioma
    • Code: idioma (NOTA: Existen algunas aplicaciones extra que muestran banderas en lugar del nombre del idioma. Para ello, es necesario usar como código el código del idioma. P.ej. US para inglés americano).
    • Status: Enabled
    • Sort order: 0 (Opcional. Si todos los idiomas se dejan a 0, se ordenarán por orden alfabético)
  4. Finalmente, desde Sistema > Configuración, cambiaremos el alcance de la configuración actual (el desplegable de arriba a la izquierda, justo encima del menú izquierdo) para acceder a la vista del uno de los idiomas. Desde General -> General, desmarcaremos el checkbox «usar sitio web» y posteriormente seleccionaremos el País para el idioma. Deberemos hacer esto para cada idioma.
  5. Seguramente, hará falta refrescar la caché para que funcione. Esto podremos hacerlo desde Sistema -> Gestor de la cache -> Flush Magento Caché.

Además de estas opciones, creando nuevas vistas para los diferentes idiomas podremos:

  1. Con el ámbito de la vista de idioma seleccionado en el «scope», desde Sistema -> Configuración -> General -> Diseño, especificar un diseño personalizado para cada uno de los idiomas, si por ejemplo queremos dar la sensación de tener diferentes webs según el idioma.

Lo más importante, sin embargo, es que con el cambio de idioma, no únicamente cambie el idioma de la tienda, si no que además cambien los títulos de las categorías, así como las descripciones de los diferentes productos. Esto se podrá hacer tal y como sigue:

  1. Desde Catálogo -> Gestionar las categorías, seleccionando el ámbito de la vista del idioma que queremos, en el desplegable de vistas de la esquina superior izquierda, podremos ver los valores definidos para la Categoría en la vista actual. Símplemente desmarcando el checkbox «Usar el valor por defecto», podremos dar un nuevo valor, por ejemplo, a el nombre o la descripción de la categoría, para que corresponda con el idioma de la vista.
  2. Exactamente igual, desde Catálogo -> Gestionar los productos, y usando el selector de la vista actual, podremos cambiar las textos de cada producto, así como adaptar su coste,

La información está sacada de este fantástico vídeo.

¿Qué páginas tiene mi tienda?

Desde la opción CMS -> Páginas, se tiene acceso a un listado completo de las páginas que conforman nuestra tienda. Y cuando hablo de páginas me refiero a las páginas y los templates que usa cada una de ellas. Esto es ideal para editar la información de cada página de forma sencilla, a la vez que proporciona un listado de los templates usados, por si se quieren hacer modificaciones más drásticas (como cambiar todos los pies de página de la tienda o eliminar banners).

Más información sobre Magento: https://helloit.es/?tag=magento

Magento: pago contra reembolso

Contra reembolsoUno de los métodos de pago más sencillos y seguros, es el pago contra reembolso. Prácticamente no tienes que configurar nada en tu e-commerce (puesto que no necesitas integraciones para pagos con tarjetas de crédito) y el usuario paga únicamente cuando recibe el paquete (lo que da seguridad).

Las pegas:

  1. El usuario pagará una pequeña cantidad por usar el pago contra reembolso (en torno a un 3% más, en función del transportista).
  2. Esta opción no viene de forma nativa con Magento 1.4.1

Como es lógico, la segunda pega es la que más me preocupa.

Sin embargo, según he visto aquí, existe una utilidad llamada Cash on Delivery que permite introducir este método de pago en Magento.

Voy a explicar los pasos que he seguido para introducir esta funcionalidad:

  1. Realizamos una copia de seguridad TOTAL de nuestro e-commerce.
  2. Preparamos la instalación para el uso de Magento Connect (cambiando los permisos de la estructura de ficheros de Magento a 777).
  3. Vamos a la página de la extensión «Cash on Delivery» y pulsa sobre «Get Extensio Key» (solo podrás verlo si estás logueado en la página. El registro es gratuito).
  4. Seleccionamos la versión de Magento Connect apropiada (la 1 si usas la versión de Magento de la Comunidad 1.4.1.1 o inferior).
  5. Copiamos la Key.
  6. Entramos al panel de administració de Magento de tu e-commerce.
  7. Vamos a Sistema -> Magento Connect -> Magento Connect Manager.
  8. Introducimos de nuevo las credenciales de administración de Magento.
  9. Pegamos la Key que hemos copiado en el punto 5, y pulsar sobre «Instalar».
  10. Al finalizar, veremos el mensaje «Procedure completed. Please check the output frame for useful information and refresh the page to see changes.» justo debajo de la ventana negra que simula un shell de linux.
  11. Pulsamos sobre «refresh» para ver como efectivamente aparece listada la extensión instalada.
  12. Si lo queremos, mediante el enlace «Return to admin» podremos volver al panel de administración de Magento para gestionar la nueva extensión.
  13. Si lo queremos, podemos descargar el archivo csv con la traducción, tal y como comentan los amigos de elblogdemagento.
  14. Descomprimimos el archivo csv y lo subimos a app/locale/es_ES
  15. Refrescamos la caché para ver la extensión en español, desde Sistema > Gestor de la cache > Control de la cache > Seleccionamos «Seleccionar Todo» > Refrescar.
  16. Ahora ya tendremos la extensión de pago contra reembolso instalada, y en español.
  17. Desde Sistema > Configuración > Ventas > Métodos de pago, podremos ver el nuevo pago «Contrareembolso».
  18. Desde aquí, cambiaremos el nombre del método para adecuarlo a nuestro idioma, y nos aseguraremos de que únicamente se acepten pagos desde «Todos los países permitidos».
  19. Al pulsar sobre «Guardar la configuración» aplicaremos los cambios y tendremos listo el pago contra reembolso, a falta de aplicar los gastos del servicio.
  20. Desde Ventas > Reglas de pago contrareembolso > Envíos nacionales, añadiremos una nueva regla donde especificaremos, por ejemplo, que «aplique desde» 0 (entiendo que es el coste del pedido), y el coste (se deberá usar el punto como separador decimal).
  21. Con esto quedará finalmente, configurado el pago contra reembolso en nuestra web.
  22. Una vez acabado el proceso de instalación y configuración de la extensión, deberemos volver a cambiar los servicios de nuestro sistema de ficheros, a su estado anterior, tal y como se explica aquí.

Flickr! Foto por borman818

Magento Connect: permisos

Magento tiene una utilidad llamada «Magento Connect» que nos permite instalar extensiones de forma automática. Ahora bien, esta utilidad tiene el inconveniente de que requiere cambiar todos los permisos de nuestra estructura de directorios de nuestra instalación Magento, a «todos los permisos», es decir, +777 (permisos totales, también de escritura, para el grupo «todos»).

Esto es un problema de seguridad, puesto que se está dando acceso tanto de lectura, como de escritura y ejecución de todos los archivos y carpetas de nuestro e-commerce a cualquier persona.

Para remediarlo, he encontrado esta entrada que explica de forma muy clara cómo proceder cuando se usa Magento Connect.

Básicamente, lo que propone es lo siguiente:

  1. Queremos instalar una extensión mediante Magento Connect
  2. Para ello, cambiamos todos los permisos de nuestra estructura de ficheros a 777 (puedes usar tu cliente FTP favorito, como FileZilla). Esto suele durar un buen rato si lo haces así.
  3. Una vez cambiado, instalamos la aplicación con Magento Connect
  4. Finalmente, y ya acabada la instalación, reseteamos los permisos, ya sea de forma manual, o mediante la aplicación Magento Cleanup Tool. Con esta última aplicación, haríamos lo siguiente:
    • Descomprimir la aplicación en la raíz de nuestro e-commerce (por ejemplo, justo en el directorio «magento» si nuestro e-commerce está ahí).
    • Navegar a http://yourdomain.com/magento/magento-cleanup.php (si como antes, nuestro e-commerce se encuentra dentro del directorio magento), para restablecer los permisos iniciales.

Magento: copias de seguridad

MagentoEn este post intentaré explicar cómo realizar copias de seguridad con Magento. Existen varias utilidades que realizan estas funciones de copia de seguridad, pero antes de instalarlas se recomienda (precisamente) realizar una copia de seguridad, por si la instalación fallase o provocase algún tipo de problema.

Así pues, explicaré cómo realizar una copia de seguridad manual, o por lo menos, como la haría yo.

Backup nativo de Magento

  1. Nos logueamos al panel de administración de Magento.
  2. Hacemos click en Sistema -> Herramientas -> Copias de seguridad.
  3. Pulsamos sobre «Crear copia de seguridad» en la esquina superior derecha.
  4. Al cabo de unos segundos, no aparecerá el mensaje «The backup has been created» y podremos ver listada la copia de seguridad recién creada.
  5. Pulsaremos sobre el link «gz» de la columna «Descargar» de la fila correspondiente al backup que hemos creado, y procederemos a descargar el archivo en local.

Backup con phpMyAdmin

Además del backup de la base de datos realizado en el apartado anterior, en mi caso he realizado un backup manual con la utilidad phpMyAdmin que me proporciona mi hosting (y que proporcionan de forma gratuita la mayoría de hostings). Se han seguido los pasos de aquí, y han sido los siguientes:

  1. Vamos a nuestra página de administración del hosting y nos logueamos.
  2. Entre las diferentes utilidades, seguramente en la sección de «gestión de las bases de datos», veremos la utilidad phpMyAdmin.
  3. Con phpMyAdmin podremos ver las diferentes tablas que conforman la base de datos de Magento (más de 300 en mi caso).
  4. Desde el menú de la izquierda, pulsaremos sobre la base de datos de magento (la que incluye todas las tablas, que tiene un número entre paréntesis al lado).
  5. Posteriormente, pulsaremos sobre la pestaña «Exportar».
  6. Pincharemos en el enlace «seleccionar todo», lo que seleccionará todas las tablas y pulsamos (o dejamos seleccionada) la opción «SQL».
  7. Bajo la opción «Estructura», marcaremos las casillas ««, «Añadir IF NOT EXISTS», «Añadir el valor AUTO_INCREMENT», así como «Usar «backquotes» con tablas y nombres de campo».
  8. Bajo la opción «Datos», marcaremos las casillas «Completar los INSERTS», «INSERTs extendidos» y «Usar hexadecimal para campos binarios».
  9. Finalmente marcaremos el checkbox «Enviar» y sin utilizar compresión (compresión «ninguna») pulsaremos sobre «Continuar».
  10. Nos aparecerá el fichero SQL listo para descargar, con la copia de la base de datos.

Backup de los ficheros

Este último paso (al igual que el anterior), no es estrictamente necesario, pero para mayor seguridad, he preferido hacer un backup del sistema de ficheros en producción de mi e-commerce.

  1. Para ello he abierto mi cliente FTP favorito y me he conectado a mi hosting.
  2. Después únicamente he arrastrado toda la carpeta «magento» con sus directorios, sub-directorios y ficheros a mi disco duro (esto ha llevado un rato largo).

Con todo esto, ya me he quedado más tranquilo de cara a cualquier fallo en mi e-commerce.

Cupones de descuento

Una funcionalidad interesante en Magento, es la posibilidad de usar «cupones de descuento» o «códigos promocionales» para ofrecer descuentos a ciertos clientes.

De esta forma, un cliente puede entrar en tu tienda, e introducir un código promocional para beneficiarse de un descuento préviamente definido.

Esto se puede hacer, desde el panel de administración de Magento, desde Promociones -> Reglas de precios del carrito de compras -> Añadir nueva regla. Desde aquí, se podrán definir cosas tan interesantes como:

  • Si el descuento se dará únicamente al introducir un código de cupón, o se dará siempre. En caso de requerir cupón, se podrá introducir un código de cupón manual, que posteriormente deberán introducir los clientes para obtener el descuento.
  • El número de usos que se podrá hacer del cupón (para controlar el número máximo de compras que se podrán hacer con este mismo cupón).
  • Fecha de inicio y fecha de fin de validez del cupón.
  • Tipo de descuento: porcentaje, fijo o ofertas tipo «compra 3 y paga 2».
  • Cantidad del descuento.
  • Posibilidad de envío gratuito.
  • Posibilidad de aplicar el cupón al total de la compra, en lugar de aplicarse al precio base del producto.

Un gran invento este de los cupones de descuento.

Error Magento y PayPal Express

MagentoHace unos días publiqué una entrada hablando sobre cómo integrar Magento (1.4.1.1) con PayPal Express. Todo parecía funcionar de fábula cuando se realizaban compras desde cuentas de PayPal. Sin embargo, si el comprador no tenía una cuenta de PayPal y únicamente quería efectuar un pago con tarjeta de crédito, la compra se realizaba de forma satisfactoria pero mostraba el siguiente mensaje al final del proceso de venta:

«El pago no se puede procesar mediante su cuenta de paypal en este momento»

¡Toma ya! La compra se realiza correctamente pero se le dice al comprador justo lo contrario. Feo, feo.

Después de mucho pelearme contacté con el soporte técnico de PayPal, quien ha estado ayudándome (y mucho) a solucionar la incidencia.

El problema es el siguiente:

Cuando se realiza el proceso de compra, se utiliza una función de PayPal llamada «DoExpressCheckoutPayment». En las compras que funcionan, el campo «successpageredirectrequested» está a «false», mientras que las compras que también funcionan pero a las que se les muestra el mensaje de error anterior, este campo está a «true».

En palabras del soporte ténico de PayPal:

De acuerdo con este enlace
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_DoExpressCheckoutPayment

«Flag to indicate whether you need to redirect the customer to back to PayPal after completing the transaction. »

Es una opción para indicar si se necesitar redirigir al comprador de nuevo a PayPal tras completar la transacción, que no tiene mucho sentido ya que la transacción ya ha finalizado correctamente.

Finalmente, he aquí la conclusión por parte de PayPal:

SUCCESSPAGEREDIRECTREQUESTED se solía utilizar en versiones muy antiguas de PayPal, y tenía como propósito indicar que el comprador había pagado con tarjeta directamente, para que las integraciones que así lo tuvieran dispuesto, redirigieran al comprador de nuevo a la página de PayPal por si quería abrir una cuenta para usarla en un futuro (en vez de seguir pagando como invitado).

Parece que esto ya no está en vigor, por lo que una redirección final provocaría un error.

Es decir, Magento está usando un método obsoleto, y esto está devolviendo un mensaje de error falso, en el proceso de compra.

Siguiendo las indicaciones de este foro de discusión (y también los consejos del soporte de PayPal), he pasado a modificar el archivo app/code/core/Mage/Paypal/Controller/Express/Abstract.php

Concretamente, de la siguiente función, he comentado las líneas en negrita:

public function placeOrderAction()
{
try {
$this->_initCheckout();
$this->_checkout->place($this-

>_initToken());

// prepare session to success or cancellation page
$session = $this->_getCheckoutSession();
$session->clearHelperData();

// «last successful quote»
$quoteId = $this->_getQuote()->getId();
$session->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId);

// an order may be created
$order = $this->_checkout->getOrder();
if ($order) {
$session->setLastOrderId($order->getId())
->setLastRealOrderId($order->getIncrementId());
// as well a billing agreement can be created
$agreement = $this->_checkout->getBillingAgreement();
if ($agreement) {
$session->setLastBillingAgreementId($agreement->getId());
}
}

// recurring profiles may be created along with the order or without it
$profiles = $this->_checkout->getRecurringPaymentProfiles();
if ($profiles) {
$ids = array();
foreach($profiles as $profile) {
$ids[] = $profile->getId();
}
$session->setLastRecurringProfileIds($ids);
}

// redirect if PayPal specified some URL (for example, to Giropay bank)
$url = $this->_checkout->getRedirectUrl();
//if ($url) {
//$this->getResponse()->setRedirect($url);
// return;
//}

$this->_initToken(false); // no need in token anymore
$this->_redirect(‘checkout/onepage/success’);
return;
}
catch (Mage_Core_Exception $e) {
$this->_getSession()->addError($e->getMessage());
}
catch (Exception $e) {
$this->_getSession()->addError($this->__(‘Unable to place the order.’));
Mage::logException($e);
}
$this->_redirect(‘*/*/review’);
}

Con esto se evita la redirección por parte de Magento al recibir el parámetro obsoleto, y se consigue completar correctamente el proceso de compra, esta vez, sin mensajes de error.

ATENCIÓN: Se recomienda realizar todos los tests que se crean convenientes antes de adaptar esta solución a tu sitio web en producción.

PD: Sí, ya he contactado con Magento para avisarles de este error, que podéis ver explicado aquí (si tenéis cuenta en Magento).

Integrar Magento con PayPal

A día de hoy, la mejor integración que he encontrado para realizar pagos con PayPal a través de Magento es usar el método PayPal Express. Esto nos permite que los datos recogidos por el formulario de Magento se envíen al formulario de pago de PayPal, consiguiendo así que el usuario no tenga que introducir sus datos por duplicado (una vez en Magento y otra en PayPal).

Para conseguir esta integración, hemos de seguir estos pasos:

  1. Desde nuestra cuenta de Paypal, iremos a Mi cuenta -> Perfil -> Más opciones
  2. En la columna izquierda, iremos a Información de cuenta -> Acceso a API
  3. Desde aquí, seleccionaremos la segunda opción «Opción 2: Solicitar credenciales de API para crear su nombre de usuario y su contraseña propios de API.». Esta opción será la ideal para trabajar con nuestro Magento. Una vez creada la firma de API, deberemos guardar a buen recaudo esta información (siempre será accesible desde esta opción en PayPal).
  4. Posteriormente, desde la administración de Magento, nos dirigiremos a Sistema -> Configuración -> Ventas -> Paypal, desde donde activaremos el checkbox PayPal Express (yo recomendaría deshabilitar la casilla de PayPal normal, para no crear confusión al usuario).
  5. Desde «API/Integration Settings» podremos añadir el nombre de usuario, password y firma creados en el punto 3.
  6. Desde «Express Checkout Settings» podremos personalizar un poco el tipo de compra que se realizará. Así por ejemplo, podremos cambiar la «Acción de pago» por «Venta», así como permitir las compras de usuarios «Invitado» en Magento.

Actualización 1: En el segundo comentario se explica con detalle esta configuración.

Actualización 2: Se ha detectado un error con PayPal Express y Magento 1.4.1.1, explicado y solucionado en este otro post.

Cambiar el idioma en Magento

MagentoPodemos cambiar el idioma de Mangento al Español (o a cualquier otro lenguaje) siguiendo estos pasos:

  1. Descargar el paquete del idioma seleccionado en la página oficial de Magento, sección de traducciones.
  2. Una vez descargado, subir el directorio «app» que contiene el paquete de la traducción, a la raíz de la instalación de Magento en nuestro servidor. De esta manera, no subiríamos el directorio «es_ES» si no que en su lugar subiríamos directamente el directorio «app» que se encuentra dentro de «es_ES».
  3. Posteriormente, desde el panel de administración de Magento, nos dirigiremos a System -> Configuration -> General tab -> Locale options, y seleccionaremos el idioma del paquete que acabamos de subir. En el ejemplo «español (España)».
  4. Guardaremos los cambios.
  5. Finalmente, desde System -> Caché Management, seleccionaremos todas las opciones y pulsaremos sobre «Enviar» una vez seleccionada la opción «Refresh».
  6. Con esto tendremos Magento configurado al Español.

Fuentes:

Primeros pasos con Magento

¿Cómo empezar con Magento?

Una vez instalado Magento, he pasado a intentar configurarlo siguiendo los pasos descritos a continuación:
  • Entrar en el panel de control de Magento, desde http://myweb.com/magento/index.php/admin
  • Desde System -> Configuration -> General, configurar las opciones básicas sobre la tienda, además de delimitar las ventas para un determinado país (Paypal no nos lo permitía).
  • En mi caso he tenido que re-indexar algunas tablas de la base de datos al advertir un aviso en el menú superior de Magento, símplemente pinchando en el enlace que me ha proporcionado el mensaje de aviso, y seleccionando «reindexación».
  • También he tenido que aplicar el parche 1.4.1.1 (tenía otro aviso al respecto) descargándolo desde aquí y subiéndolo directamente al servidor, pero parece que no se da por enterado y continúa apareciéndome el mensaje.

Ahora, bien, ¿Cómo empezamos a montar nuestra tienda?

Productos y Categorías

  • Desde Catalog -> Manage Categories, podemos empezar por crear una nueva categoría que cuelgue de la categoría Default Category. Es importante no eliminar esta categoría por defecto, puesto que nuestra tienda por defecto (System -> Manage Stores -> Main Website Stores) tiene como «root category» esta categoría «Default Category».
  • Una vez creada la categoría, podremos crear nuestro primer producto desde Catalog -> Manage Products, donde deberemos indicar todo un seguido de detalles respecto a nuestro producto. Destaco lo siguiente:
    • Prices -> Price: El precio sin IVA ni gastos de envío ni manipulación.
    • Prices -> Cost: El coste real del producto (únicamente como información interna, y por lo tanto, no visible para el cliente final).
    • Prices -> Tax Class: Aquí seleccionaremos el tipo de impuestos que se le aplicará al producto. Se recomienda dejar la opción por defecto y posteriormente modificarla.
  • Posteriormente, y de nuevo desde Catalog -> Manage Categories, deberemos seleccionar la pestaña «Category Products» y marcar el producto que hemos creado, recordando guardar los cambios, para incluir el producto en la nueva categoría.
  • IMPORTANTE: Para que el producto sea visible en la web, deberemos desde Catalog -> Manage Products, editar el producto y desde la opción «Inventory», asegurarnos de tener como «Qty» (cantidad) un valor mayor que el indicado en «Qty for Item’s Status to become Out of Stock», que por defecto es cero. Así, podemos poner como «Qty» por ejemplo, que tenemos un stock de «50» unidades. Además, deberemos asegurarnos de cambiar el valor de «Stock Availability» de la misma sección, a «In Stock».

Impuestos

  • Desde Sales -> Tax -> Products Tax Clases, crearemos un nuevo impuesto para nuestros productos. Desde aquí únicamente crearemos el nombre del impuesto (por ejemplo, IVA).
  • Una vez creado el nuevo impuesto, desde Sales -> Tax -> Manage Tax Zones & Rates, podremos definir un nuevo valor para nuestro impuesto creado en el punto anterior. Por defecto, vienen dos reglas de impuestos para Estados Unidos. Para España, bastará con crear un nueva entrada seleccionando como país «España», como «Rate Percent» un «18» (por ciento), con el resto de opciones por defecto.
  • Finalmente, desde Sales -> Tax -> Manage Tax Rules, podremos crear el nuevo impuesto seleccionando el «Product Tax Class» y el «Tax Rate» creados en los dos pasos anteriores. Esta nueva «Tax Rule» será la que deberemos especificar en nuestros productos desde Catalog -> Manage Products -> Editamos el producto -> Prices -> Tax Class.
Gastos de envío

  • Los gastos de envío se pueden especificar desde System-> Configuration -> Sales -> Shipping Methods, donde en primer lugar deberemos desactivar el método de envío «Flat Rate» cambiando «Enabled» a «No».
  • Posteriormente, cambiaremos a «Table Rates» para habilitar esta opción, haciendo los cambios deseados, y a continuación guardaremos. Hay que tener en cuenta, que los campos «Title» y «Method Name» se mostrarán durante el proceso de compra del artículo, al cliente.
  • Una vez guardado, desde la opción «Current Configuration Scope» en la parte superior del menú izquierdo, seleccionaremos la opción «Main Website«. Desde aquí, podremos primero descargar un archivo csv que rellenaremos con los datos de los envíos, para posteriormente subir este mismo archivo, ya con los precios de los envíos. A continuación un ejemplo de hoja de envío, donde se ha introducido el código ESP para España, y las regiones de Barcelona y Baleares tal cual aparecen en el desplegable que muestra Magento al seleccionar las regiones de España durante una compra:
Country Region/State Zip/Postal Code Weight (and above) Shipping Price
ESP Barcelona * 10 15,7
ÊSP Baleares * 10 25,8
ESP * * 10 20,82
Enlaces
Y finalmente, enlaces útiles con más información sobre estas configuraciones:

Cómo instalar Magento

MagentoÚltimamente me había interesado por cómo crear un carrito de la compra con Paypal, para vender productos a través de Internet. Sin embargo, después de mucho buscar, el servicio técnico de Paypal, muy amablemente me ha comentado que:

  1. Paypal no puede restringir las compras según la ubicación geográfica. Así pues, si vendes usando los botones de compra de Paypal, tienes que vender forzosamente a todo el mundo, y no únicamente a una región o país concreto.
  2. Paypal no puede calcular los costes de envío según la dirección de destino del cliente. Así pues, con Paypal tienes que definir los gastos de envío para un paquete que irá a tu misma ciudad, o a la otra punta del mundo.

Sin embargo, el servicio técnico de Paypal me ha recomendado mirar «carritos de terceros» que se integran con Paypal, para realizar este tipo de configuraciones. Desde Paypal, recomiendan los siguientes:

Carros de código fuente abierto

Carros alojados

Me he decidido a probar Magento, básicamente porqué era el que más me sonaba (por no decir que era el único que me sonaba, a parte de osCommerce).

¿Cómo instalar Magento?

  • Primero tenemos que registrarnos en la web de Magento y descargar la última versión.
  • Después, en mi caso, he modificado el archivo robots.txt de mi servidor para denegar el acceso a la carpeta que contendrá el e-commerce (no me interesa que Google y el resto de buscadores indexen este tipo de contenido), tal y como sigue:

User-agent: Googlebot
Disallow: /magento/

User-agent: *
Disallow: /magento/

  • Una vez subida la nueva versión del archivo robots.txt, he subido el directorio magento (que contiene los más de 9000 ficheros que componen la aplicación) a la raíz de mi servidor.
Siguiendo los pasos descritos aquí, he conseguido instalar y configurar Magento. Por si las moscas, describo los pasos a continuación, ya que algún paso extra he tenido que hacer:
  • En mi hosting, he creado una nueva base de datos MySQL que usará Magento. Esto dependerá del hosting, pero la mayoría de hostings ponen muchas facilidades para hacer este tipo de tareas.
  • Posteriormente, he cambiado los atributos de los siguientes archivos y directorios, a 777 (tranquilos, esto también lo comenta la documentación oficial de instalación de Magento). Esto se puede hacer con el comando «chmod» o haciendo click derecho sobre el arhivo o carpeta desde tu cliente FTP favorito:
    • Archivo magento/var/.htaccess
    • Directorios magento/app/etc y magento/var
    • Todos los directorios dentro de magento/media (no incluido)
  • Además de esto (y con tal de solucionar un «ERROR 500 – Internal Server Error»), he tenido que modificar el archivo .htaccess de la raíz de mi servidor (no el archivo .htaccess de magento), para permitir la escritura del directorio magento, añadiéndo la siguiente línea:

RewriteBase /magento/

  • Una vez cambiados los permisos y el archivo .htaccess de mi servidor, he entrado por navegador a la dirección http://miweb.com/magento/install.php, el cual ha mostrado un asistente para la configuración de Magento, que ha consistido en:
    • Aceptar las condiciones de uso
    • Seleccionar las opciones de ubicación, zona horaria, y moneda.
    • Indicar el nombre del host, base de datos y credenciales para la base de datos MySQL creada anteriormente para Magento. En este punto, además, se me han presentado diversas opciones para modificar el acceso web a Magento, así como para almacenar las opciones de sesión. NOTA: Al aceptar este punto, se ha pasado a crear la base de datos de Magento, lo cual en mi caso, ha tardado varios minutos.
    • Indicar los diversos datos del que será el administrador de Magento, así como los datos de inicio de sesión.
  • Con esto he conseguido tener Magento instalado en mi servidor.
En breve (espero) un nuevo post sobre los primeros pasos con la configuración de una tienda con Magento.