Skip to content
Santiago edited this page Sep 29, 2020 · 11 revisions

CoopCycle

Contenido


Acerca de CoopCycle

La federación

CoopCycle es una federación de cooperativas de entrega por bicicleta. Gobernada democráticamente por las cooperativas, su fundamento es la solidaridad entre ellas, lo cual les permite reducir sus costos mediante la mutualización de los servicios. Crea una fuerza colectiva para negociar, y para defender los derechos de lxs repartidorxs.

CoopCycle Argentina

Iniciativa impulsada por FACTTIC con el objetivo de llevar a cabo la localización total de la plataforma en Argentina. El proyecto pretende guíar y capacitar trabajadorxs para fomentar la utilización de CoopCycle a nivel territorial.


Guía de desarrollo

Configuración de ambiente

Próximamente cambiar por el repo que va a estar en la organización de facttic en GitHub

git clone https://github.com/coopcycle/coopcycle-web

Variables de ambiente

Renombrar el archivo .env.dist a .env y completar los campos:

  • GOOGLE_API_KEY=xxxxxxxxxx-xxxx_xxxx-xxxxxxxxxxxxxxxxxx
  • COOPCYCLE_REGION_LAT_LNG=-34.6089756,-58.379539
    • Se puede elegir otro par de coordenadas.
  • COOPCYCLE_LEGACY_TAXES=0
    • Esta variable corresponde a la utilización de taxes legacy o default (francia). la deshabilitamos para poder usar las que están cargadas en taxation.yml para ar.
  • COOPCYCLE_OSRM_HOST=url-del-servidor-osrm
    • Mex nos gestionó voluntariamente un servidor OSRM para Argentina.
  • COOPCYCLE_COUNTRY=ar
  • COOPCYCLE_LOCALE=es
  • COOPCYCLE_REGION=ar

Al abrir la plataforma en el navegador (más adelante detallo ese paso), por alguna razón me pide permisos de lectura en un archivo var/jwt/private.pem. Quizas esto sea manejado de otra manera en un futuro. De momento le di permisos de lectura a others manualmente:

sudo chmod 604 var/jwt/private.pem

Permisos

# Output de los permisos originales del archivo
ls -l var/jwt/private.pem
-rw------- 1 root root 3326 Aug 10 16:42 var/jwt/private.pem
# Output de los permisos del archivo después de chmod
-rw----r-- 1 root root 3326 Aug 10 16:42 var/jwt/private.pem

Por alguna razón, en las distribuciones de Linux hay algunos problemas de permisos. Por ejemplo, al clickear en un restaurant de la homepage. Error:

The stream or file "/var/www/html/var/logs/timing.dev-2020-08-21.log" could not be opened: failed to open stream: Permission denied

Conversación en Slack

Workaround:

docker-compose exec php chown -R www-data var/logs

Inicialización

make install

Este script de Makefile se utiliza para:

  • Crear esquemas de la base de datos
  • Instanciar la demo
  • Creación de fixtures
  • Correr migraciones
  • Descargar archivo pbf de coopcycle.org/osm/paris-france.osm.pbf para OpenStreetMaps (*)
  • Correr tests
  • Y otras acciones más...

(*) Será necesario editar éste archivo para tomar información de argentina para la instancia de osrm

Al finalizar, podremos visitar localhost e ingresar a la plataforma. Deberíamos visualizar restaurants en el mapa.


Cuentas de prueba

Cuentas de CoopCycle

Administración

Acceso a todas las funciones de la plataforma, incluso restaurants, edición de su configuración, menú y productos.

  • cuenta: admin
  • password: admin
Restaurant

Acceso a un restaurant, conexión con el medio de pagos de la plataforma, edición de menú y productos.

  • cuenta: resto_xx
  • password: resto_xx

Reemplazar xx por un número del 1 al 50, correspondiente a los 50 restaurants de prueba cargados.

Tienda

Acceso a tienda, conexión con el medio de pagos de la plataforma, edición de catálogo y productos.

  • cuenta: store_xx
  • password: store_xx

Reemplazar xx por un número del 1 al 25, correspondiente a los 25 restaurants de prueba cargados.

Rider

Acceso a mi información personal, pedidos asignados, direcciones, entregas y seguimiento de tareas.

  • cuenta: bot_xx
  • password: bot_xx

Reemplazar xx por un número del 1 al 50, correspondiente a los 50 riders de prueba cargados.

Cuentas de Mercadopago

Para poder utilizar el medio de pago es necesario crear cuentas de prueba de Mercadopago. Se deben crear 3 cuentas, una para la plataforma (Marketplate), otra para el restaurant y otra para una cuenta de comprador. Esta cuentas deberán ser las utilizadas para la configuración de la plataforma, configuración de restaurant y durante el checkout de compra.

Crear cuentas de prueba
curl -X POST \
-H "Content-Type: application/json" \
"https://api.mercadopago.com/users/test_user?access_token=ACCESS_TOKEN" \
-d '{"site_id":"MLA"}'

El valor de ACCESS_TOKEN se obtiene en la configuración de credenciales de tu cuenta de mercadopago, en Mercadopago developers.


Configuración de Plataforma

A continuación se detallan instrucciones e información esencial para configurar los parámetros obligatorios de la plataforma.

Barra de navegación

Ajustes

En la barra de navegación clickear en Configuración, luego Ajustes. Configurar:

  • Email de administración
  • Número de teléfono
  • Credenciales de Mercadopago: completar los 5 campos.
  • Clave API de google
  • Moneda

Luego de completar los datos mencionados será posible conectar las cuentas de Mercadopago de Restaurants con la plataforma.


Configuración de Restaurant

La configuración de restaurants se debe realizar con una cuenta administrador o restaurant.

Configuración de medio de pago

La configuración del medio de pago implica conectar la cuenta de Mercadopago de un restaurant con la cuenta de Mercadopago de la plataforma. Para ello se intentará iniciar sesión en Mercadopago. Si ya existe una sesión abierta, la conexión se dará automáticamente a hacer click en el botón Conectar. Por ello es recomendable verificar si existen sesiones activas en Mercadopago antes de realizar la conexión.

  • Ingresar a un restaurant.
  • Clickear en Pago, en el panel de navegación de la izquierda.
  • Click en Conectar con Mercadopago.

Checkout de prueba

Una vez configurado el ambiente, la plataforma y un restaurant, podemos proceder a realizar una prueba de compra. Se puede realizar con la cuenta de administración. En éste ejemplo se utiliza el restaurant de prueba con id 40. Es necesario configurar el medio de pago para éste restaurant o bien utilizar otro restaurant de prueba.

Selección de menú

  • Ingresamos a http://localhost/es/restaurant/40 para ver el menú disponible.
  • Ingresamos una dirección de recibo del envío cercana al restaurant. Por ejemplo: Catamarca 2000 CABA. Al aparecer la sugerencia de Google, hacer click en la dirección completa.
  • Seleccionamos productos hasta superar el monto mínimo de pedido 15,00 ARS y hacemos click en Pedir.

Dirección

En éste paso es posible describir instrucciones para encontrar el domicilio y dejar comentarios al restaurant. No es necesario agregar mucho más para realizar las pruebas. Podemos simplemente hacer click en Pedir.

Realizar pago

En éste paso ingresaremos la información necesaria para completar el pago

Detalles del comprador
  • Ingresar email de la cuenta de comprador
  • Seleccionar tipo de documento
  • Ingreasr número de documento
Información de su pago

Utilizar nombre de titular y números de las tarjetas de prueba en la sección Pruebas de Mercadopago

  • Ingresar nombre de titular de la tarjeta de crédito a utilizar
  • Ingresar datos de la tarjeta: número, vencimiento, cvc
  • Hacer click en Pagar xx,xx ARS

A este punto se ha realizado la autorización de un pago por xx,xx ARS, es decir, una reserva de fondos que luego podrá ser capturada. El flujo de un pago finaliza cuando el pedido es entregado por una cuenta Rider.

Orden de compra pendiente de confirmación por parte del restaurant



Aceptación de pedido

  • Ingresar con una cuenta Restaurant o Admin
  • Ir a Pedidos en el Panel de Administración
  • Hacer click en el número de orden
  • Hacer click en Aceptar

Panel de administración de Restaurant de una orden de compra



Luego de aceptar, se puede observar la actualización de la orden de compra



Asignación de tareas

La asignación de tareas corre por cuenta del admin e implica seleccionar una cuenta Rider encargada de recibir y entregar el pedido.

  • Ir al Panel e control o visitar http://localhost/admin/dashboard.
  • Podemos observar la opden aceptada y los puntos de recepción y entrega dibujados en el mapa.

Asignar Rider

En el cuadro de Asignado aprecerán las cuentas Rider disponibles para realizar tareas. De no contar con ninguna, debemos asignar alguna. Simplemente clickeamos en el botón +, seleccionamos una cuenta de la lista y hacemos click en Añadir.

Asignar tareas

En el cuadro titulado No asignado podremos ver 2 tareas nuevas, que corresponden a la orden aceptada recientemente. La primera es la tarea de recepción del pedido, la segunda corresponde a la entrega de éste, y ambas están ligadas. Es decir, no pueden asignarse a distintas cuentas Rider.

  • Arrastrar una de las tareas hacia el cuadro Asignado, en el bloque de la cuenta Rider asignada anteriormente.
  • Observar que ambas tareas se mueven al cuadro

Realizar tareas

Las tareas pueden ser marcadas como realizadas tanto por una cuenta de Administración como con una cuenta de Rider. En éste ejemplo utilizaremos una cuenta de Administración.

Recogida de paquete

  • Hacer doble click en la primer tarea
  • Hacer click en el botón Modificar, luego click en Completar
  • Aparece una modal donde es posible ingresar comentarios. Obviar esa opción y hacer click en Completar.

Luego de completar la primera tarea de recolección, se puede observar la actualización de la orden de compra



Entrega de paquete

  • Hacer doble click en la segunda tarea
  • Hacer click en el botón Modificar, luego click en Completar
  • Aparece una modal donde es posible ingresar comentarios. Obviar esa opción y hacer click en Completar.

Luego de completar la primera tarea de recolección, se puede observar la actualización de la orden de compra



Al realizar la entrega del paquete, el pago previamente autorizado es capturado.