La plataforma autoadministrable de E-commerce de Werken
Lee la documentación »
Reportar Problema
·
Solicitar Funcionalidad
Requerimientos mínimos de servidor:
- 1 CPU (Doble Nucleo)
- 1GB RAM
- 25GB SSD
- 1 TB Transferencia
Requerimientos recomendados de servidor:
- 1 CPU (Doble Nucleo)
- 2GB RAM
- 25 GB SSD
- 2 TB Transferencia
La configuración recomendada es LAMP Stack.
- Ubuntu - 18.04
- Apache2 - 2.4.29
- MySQL server 5.7.23
- PHP - 7.2
- Fail2ban - 0.10.2
- Postfix - 3.3.0
- Certbot - 0.26.1
- Phpmyadmin (OPCIONAL)
Tambien es posible implementar la plataforma en un Stack LEMP
- Ubuntu - 18.04
- Nginx - 1.14.0
- MySQL server 5.7.23
- PHP - 7.2
- Fail2ban - 0.10.2
- Postfix - 3.3.0
- Certbot - 0.26.1
- Phpmyadmin (OPCIONAL)
Las instrucciones de instalación se enfocarán en Apache 2, si se implementa en Nginx hacer modificaciones en donde sea necesario.
### Configuración de Servidor
sudo apt-get install git
sudo apt-get install unzip
sudo apt-get install curl php8.0-curl php8.0-xml php8.0-gd php8.0-opcache php8.0-mbstring php8.0-zip php7.4-curl php7.4-xml php7.4-gd php7.4-opcache php7.4-mbstring php7.4-zip
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo phpenmod mbstring
sudo a2enmod rewrite
sudo systemctl restart apache2
cd /var/www/html
git clone [RUTA DEL PROYECTO]
sudo chmod -R 777 [NOMBRE_DE_LA_CARPETA]
cd /[NOMBRE_DE_LA_CARPETA]
composer update
cp .env.example .env
php artisan key:generate
Es importante abrir el archivo .env para configurar la conexión a la base de datos si es que se requiere.
/etc/apache2/sites-available/default.com.conf
<VirtualHost *:80>
ServerName [RUTA].com
DocumentRoot /var/www/html/[[ NOMBRE_DE_LA_CARPETA ]]/public
<Directory /var/www/html/[[ NOMBRE_DE_LA_CARPETA ]]/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Si es necesario utilizar un certificado de seguridad utilizar el puerto 443 y activar las capacidades SSL del servidor por medio de la linea de comandos. Es importante que el certificado se encuentre en la ruta correcta que se determina en ese documento.
service apache2 reload
Para comenzar a usar este paquete debes usar el siguiente comando para agregarlo a tu instalación de Laravel.
composer require nowyouwerkn/wecommerce
Es necesario agregar proveedores al proyecto para poder utilizar todas las funciones de las librerias utilizadas por el paquete. Esto se agrega en el archivo config/app.php
'providers' => [
// ...
Nowyouwerkn\WeCommerce\WeCommerceServiceProvider::class,
Maatwebsite\Excel\ExcelServiceProvider::class,
];
'aliases' => [
// ...
'Excel' => Maatwebsite\Excel\Facades\Excel::class
];
Publica todos los assets del paquete y sus dependencias usando
php artisan vendor:publish --provider="Nowyouwerkn\WeCommerce\WeCommerceServiceProvider" --force
Para que funcione correctamente el sistema es OBLIGATORIO publicar los archivos de migrations
, seeders
, theme
, public
y config
. Puedes escoger que elemento quieres publicar con las siguientes etiquetas.
Etiquetas de elementos publicables:
- --tag=werkn-bootstrap (Tema principal)
- --tag=error-views
- --tag=translations
- --tag=public
- --tag=config
- --tag=seeders
Recomendamos correr la publicación automáticamente pero puedes seleccionar que es lo que necesitas. Principalmente los temas.
IMPORTANTE: El sistema utiliza Fortify para Autenticar usuarios asi que es importante publicar tambien los recursos de fortify con el siguiente comando:
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"
Esto creará una carpeta llamada Actions
dentro de app
. En esta carpeta se encuentran los archivos de autenticación de Fortify. Si no has eliminado o editado tu archivo User
dentro de tu carpeta de Modelos no necesitas hacer más, en caso contrario para que funcione con WeCommerce tendrás que editar el archivo CreateNewUser
cambiando lo siguiente:
use App\Models\User;
cambiar por...
use Nowyouwerkn\WeCommerce\Models\User;
Actualiza tu archivo app.php
con el proveedor de Fortify Esto se agrega en el archivo config/app.php
App\Providers\FortifyServiceProvider::class,
Limpia el caché de tu configuración
php artisan optimize:clear
#o
php artisan config:clear
El sistema necesita utilizar la ruta "/" que usa Laravel como vista de ejemplo en las rutas. Accede al documento web.php
de tu proyecto de Laravel y sobreescribe la información con el archivo que se encuentra aqui: https://github.com/nowyouwerkn/wecommerce/blob/main/src/routes.php
. Al realizarlo podrás usar.
php artisan serve
para prender tu servidor y acceder a /instalador
para comenzar la instalación. Si estás usando Homestead no es necesario usar php artisan serve
.
Si prefieres preparar manualmente el proyecto sigue los siguientes comandos.
php artisan migrate
php artisan db:seed
- Cambiar en el archivo RouteServiceProvider la ruta de redirección a:
public const HOME = '/profile';
- En tu archivo
app.php
dentro de la carpetaconfig
sobreescribe la información de zona horaria con lo siguiente:
'timezone' => 'America/Mexico_City',
- (OPCIONAL) Si quieres usar las traducciones en español debes sobreescribir tu objeto
locale
de tu archivoapp.php
dentro de la carpetaconfig
con lo siguiente. Si publicaste los archivos del paquete correctamente el sistema automáticamente usará la traducción:
'locale' => 'es',
El paquete publica automáticamente las vistas de front que verán los compradores asi como todos los estilos relacionados a su funcionamiento. Puedes editar las vistas de front que se encuentran en resources/views/front/theme/werkn-backbone-bootstrap
.
Estructura:
- 📂 theme
- 📂 werkn-backbone-bootstrap
- 📂 auth
- login.blade.php
- register.blade.php
- forgot-password.blade.php
- reset-password.blade.php
- 📂 checkout
- 📂 utilities
- _order_address.blade.php
- _order_address.blade.php
- _order_contact.blade.php
- _order_payment.blade.php
- _order_shipping.blade.php
- _order_summary.blade.php
- index.blade.php
- 📂 utilities
- 📂 layouts
- 📂 checkout
- footer.blade.php
- header.blade.php
- main.blade.php
- 📂 partials
- cookies_notice.blade.php
- _headerbands.blade.php
- _messages_errors.blade.php
- _messages.blade.php
- _modal_messages.blade.php
- _modal_popup.blade.php
- werkn_bar.blade.php
- 📂 utilities
- cart_item.blade.php
- filter_sidebar.blade.php
- order_card.blade.php
- product_card.blade.php
- _filter_sidebar.blade.php
- footer.blade.php
- header.blade.php
- main.blade.php
- nav-user.blade.php
- 📂 checkout
- 📂 search
- element.blade.php
- index.blade.php
- query.blade.php
- 📂 user_profile
- account.blade.php
- address.blade.php
- edit_address.blade.php
- image.blade.php
- profile.blade.php
- shopping.blade.php
- wishlist.blade.php
- cart.blade.php
- catalog.blade.php
- catalog_filter.blade.php
- detail.blade.php
- faqs.blade.php
- legal.blade.php
- order_tracking.blade.php
- purchase_complete.blade.php
- index.blade.php 🏠
- 📂 auth
- 📂 werkn-backbone-bootstrap
La plataforma esta preparada para recibir eventos de Facebook integrando el código de pixel desde Integraciones del Sistema
en la sección de Preferencias Generales
de la configuración, asi como la conexión con la API de Conversiones de Facebook.
Los eventos que el sistema monitorea son:
- PageView
- ViewContent
- Search
- Purchase
- InitiateCheckout
- Contact
- AddToWishlist
- AddToCart
- AddPaymentInfo
Para activar el evento Contact agrega la clase contact_action
a los links que ejecuten una acción de contacto. (mailto, tel, chat, etc.)
Para hacer cambios en los estilos puedes modificar libremente el archivo main.blade.php
dentro de layouts
para modificar o eliminar los archivos originales de la plantilla. Para sobreescribir los preexistentes recomendamos hacer todo dentro de la carpeta css
en el archivo w-custom.css
Si prefieres crear un nuevo tema que no se sobreescriba al actualizar puedes copiar y pegar la carpeta werkn-backbone-bootstrap
y ponerle el nombre de tu proyecto. Siguiendo la estructura de la sección anterior el controlador FrontController
vinculará automaticamente las vistas a la carpeta dentro de theme
. Este cambio de estilo se debe configurar en el panel administrativo en Configuración > Apariencia y dar de alta el nombre de la carpeta.
Recomendación: Para mantener limpio el proyecto para facilitar su actualización a futuro lo mejor es colocar los estilos básicos de tu nuevo tema dentro de la carpeta public > themes > [NOMBRE DE TU TEMA]. Los estilos particulares los puedes encontrar en la carpeta css.
Estructura de carpeta theme
- 📂 themes
- werkn-backbone-bootstrap
- [...]
- [TU PROYECTO]
- werkn-backbone-bootstrap
Estructura de carpeta css:
- 📂 css
- w-custom.css (Estilos particulares globales)
- w-checkout.css (Para personalizar tu checkout)
Revisa los tickets abiertos para una lista estructurada de las funcionalidades propuestas y problemas conocidos en producción.
MIT License
Copyright (c) [2024] [Werken Lab S.A de C.V]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Werken Lab S.A de C.V - @nowyouwerkn - rca@werken.mx Link de Proyecto: https://github.com/nowyouwerkn/wecommerce