Precondiciones:
Tener la base instalada.
Evitar mandar correos a los clientes:
UPDATE customer_entity
SET email = 'some@mail.com'
WHERE email != 'other@mail.com';
Evitar mandar correos a los usuarios
UPDATE core_config_data ccd
SET ccd.value = 'some@mail.com'
WHERE ccd.value LIKE '%@%';
Evitar mandar correos sobre ordenes y carritos
UPDATE sales_flat_order
SET customer_email = 'unexistent@mail.com'
WHERE customer_email != 'finalmau@gmail.com';
UPDATE sales_flat_quote
SET customer_email = 'unexistent@mail.com'
WHERE customer_email != 'finalmau@gmail.com';
martes, 1 de abril de 2014
viernes, 12 de abril de 2013
Magento: Borrar Pedidos de Prueba
Otro de c&p
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `sales_flat_creditmemo`;
TRUNCATE `sales_flat_creditmemo_comment`;
TRUNCATE `sales_flat_creditmemo_grid`;
TRUNCATE `sales_flat_creditmemo_item`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_comment`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;
TRUNCATE `sales_flat_order`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_order_status_history`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_quote_payment`;
TRUNCATE `sales_flat_quote_shipping_rate`;
TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_comment`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_track`;
TRUNCATE `sales_invoiced_aggregated`;
TRUNCATE `sales_invoiced_aggregated_order`;
TRUNCATE `log_quote`;
TRUNCATE `downloadable_link_purchased`;
TRUNCATE `downloadable_link_purchased_item`;
TRUNCATE `eav_entity_store`;
ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `downloadable_link_purchased` AUTO_INCREMENT=1;
ALTER TABLE `downloadable_link_purchased_item` AUTO_INCREMENT=1;
ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;
Magento: Borrar Productos de Pruebas
Simple y sencillo, un c&p
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_bundle_option`;
TRUNCATE TABLE `catalog_product_bundle_option_value`;
TRUNCATE TABLE `catalog_product_bundle_selection`;
TRUNCATE TABLE `catalog_product_entity_datetime`;
TRUNCATE TABLE `catalog_product_entity_decimal`;
TRUNCATE TABLE `catalog_product_entity_gallery`;
TRUNCATE TABLE `catalog_product_entity_int`;
TRUNCATE TABLE `catalog_product_entity_media_gallery`;
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;
TRUNCATE TABLE `catalog_product_entity_text`;
TRUNCATE TABLE `catalog_product_entity_tier_price`;
TRUNCATE TABLE `catalog_product_entity_varchar`;
TRUNCATE TABLE `catalog_product_link`;
TRUNCATE TABLE `catalog_product_link_attribute`;
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;
TRUNCATE TABLE `catalog_product_link_attribute_int`;
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;
TRUNCATE TABLE `catalog_product_link_type`;
TRUNCATE TABLE `catalog_product_option`;
TRUNCATE TABLE `catalog_product_option_price`;
TRUNCATE TABLE `catalog_product_option_title`;
TRUNCATE TABLE `catalog_product_option_type_price`;
TRUNCATE TABLE `catalog_product_option_type_title`;
TRUNCATE TABLE `catalog_product_option_type_value`;
TRUNCATE TABLE `catalog_product_super_attribute`;
TRUNCATE TABLE `catalog_product_super_attribute_label`;
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;
TRUNCATE TABLE `catalog_product_super_link`;
TRUNCATE TABLE `catalog_product_enabled_index`;
TRUNCATE TABLE `catalog_product_website`;
TRUNCATE TABLE `catalog_product_entity`;
TRUNCATE TABLE `cataloginventory_stock`;
TRUNCATE TABLE `cataloginventory_stock_item`;
TRUNCATE TABLE `cataloginventory_stock_status`;
INSERT INTO `catalog_product_link_type`(`link_type_id`,`code`) VALUES (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');
INSERT INTO `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');
INSERT INTO `cataloginventory_stock`(`stock_id`,`stock_name`) VALUES (1,'Default');
SET FOREIGN_KEY_CHECKS = 1;
miércoles, 23 de enero de 2013
Ubuntu: Cambiar Colores de la Terminal al Conectarse a ssh
Precondiciones:
- Tener autenticación por certificado rsa al servidor
- Crear un perfil en la terminal, desde el menu Edit > Profiles.
- Agregamos el siguiente alias al archivo ~/.bashrc
- alias ALIAS="gnome-terminal --window-with-profile=PERFIL -e 'ssh USER@SERVER' &"
- ALIAS: Comando con el que ejecutaremos la magía desde la terminal
- PEFIL: Perfil de colores creado en el paso 1
- USER: Usuario del servidor
- SERVER: Servidor al que nos conectaremos.
jueves, 8 de noviembre de 2012
Constitución del Programador Espartano
2. Desde el principio debes pensar que llegaras a ser un programador de élite
a.
Todo becario debe ser formado desde un principio
para ser parte de la élite de programadores; así que:
b.
Todo programador espartano debe tener buen
comportamiento y debe demostrar carácter y valía desde su contratación.
3.
Al llegar a programador Junior, después de haber
cumplido varios requerimientos que nadie más quiere hacer, se te comenzaran a
dar requerimientos más pesados y se te mostrara el significado de la frase,
"Debe quedar hoy, sí ó sí...", a través de desveladas y soportar a
los Comerciales.4. Como programador Junior no recibirás ninguna ayuda, deberás aprender a investigar e indagar las cosas por ti mismo, y además entregar las cosas en tiempo y forma.
5. Si un programador Junior pregunta a un programador Senior se le remitirá inmediatamente a usar el puto google.
a.
El programador Senior tiene derecho a ni
siquiera contestar si la pregunta es una pendejada, pues si no se es capaz de
resolver una pendejada, menos podrá resolver un requerimiento avanzado.
6.
Como programador Junior debes de ser mejor que
el de al lado, pues solo los mejores reciben los aumentos.7. Para convertirte en programador Senior se te enviara solo a una junta, en la cual debes de ser capaz de explicarle todos los puntos a un Comercial y hacer entrar en razón al cliente.
8. A partir que eres programador Senior, tienes el derecho (más bien obligación) de someter al mismo trato a los becarios
9. A los programadores Senior más exitosos siempre se les enfrenta entre ellos por el dominio del departamento de desarrollo.
martes, 11 de septiembre de 2012
Ubuntu: Como enviar correos desde PHP usando una cuenta de gmail
Precondiciones:
- Una cuenta en gmail
- Obvio una máquina con Ubuntu
- Conexión a Internet
Paso 1: Installar nuestro "Conector"
sudo apt-get install msmtp ca-certificates
Paso 2: Configurar msmtp
Creamo el archivo:
sudo vim /etc/msmtprc
Con el contenido, antes de guardar es necesario descomentar la linea 13 o la linea 15 según tu sistema operativo:
defaults
tls on
tls_starttls on
#EN UBUNTU
#tls_trust_file /etc/ssl/certs/ca-certificates.crt
#EN FEDORA 21
#tls_trust_file /etc/pki/tls/certs/ca-bundle.crt
account default
host smtp.gmail.com
port 587
auth on
user username@gmail.com
password yourpass
from username@gmail.com
logfile /var/log/msmtp.log
Paso 3: Decirle a PHP como mandar mails
Con el editor de tu preferencia edita el php.ini que se este cargando y asignamos la siguiente variable
sendmail_path = /usr/bin/msmtp -t
Paso 4: Crear la estructura para el log
Creamos el directorio, junto con sus permisos adecuados:
sudo mkdir /var/log/msmtp
sudo chown www-data:adm /var/log/msmtp
Damos de alta el log, creando el archivo:
sudo vim /etc/logrotate.d/msmtp
Con el contenido:
/var/log/msmtp/*.log {
rotate 12
monthly
compress
missingok
notifempty
}
Listo, si todo salio bien ya podemos enviar correos desde ubuntu, y si no pues revisa, algo omitiste :D
Magento: Bajar un sitio a tu local
Precondiciones
Tener acceso vía ssh y ftp (o sftp) al servidor del que queremos descargar el sitio.
Paso 1 Generar el backup del código
Conectarse al servidor via ssh y generar el tar.gz para nuestro backup, es recomendable omitir las carpetas de media y de var
tar -czf text.tar.gz --exclude=var/* --exclude=media/*
Paso 2 Generar el backuo de la base de datos
Generar el backup de la base de datos, este paso lo hacemos en dos comandos para evitar traer la enorme catidad de información basura guardada en las tablas de log_*
Nota: Son dos comandos cada uno debe ir en una sola linea, los pongo en multilinea para efectos ilustrativos, pero repito son dos comandos
mysqldump -u{username} -p{password} \
--databases \
--ignore-table={database}.log_customer \
--ignore-table={database}.log_quote \
--ignore-table={database}.log_summary \
--ignore-table={database}.log_summary_type \
--ignore-table={database}.log_url \
--ignore-table={database}.log_url_info \
--ignore-table={database}.log_visitor \
--ignore-table={database}.log_visitor_info \
--ignore-table={database}.log_visitor_online \
{database} > {backup_day}.sql
mysqldump -u{username} -p{password} \
--no-data \
{database} \
log_customer \
log_quote \
log_summary \
log_summary_type \
log_url \
log_url_info \
log_visitor \
log_visitor_info \
log_visitor_online \
>> {backup_day}.sql
Paso 3 Crear la base en nuestro local
Una vez descargado nuestro backup de la base de datos, lo ejecutamos en nuestro local,.
Nota: si ejecutaste de manera adecuada los comandos anteriores ya no es necesario crear la base de datos, por que el script la va a crear por nosotros.
mysqldump -u{username} -p{password} < {backup_day}.sql
Paso 4 Reconfigurar las URLs
Luego de eso es necesario reconfigurar nuestras url, para ello no existe una formula exacta, pues es necesario hacer un update al campo de value de todos los registros que salgan con la siguiente consulta:
select * from core_config_data where path in ('web/unsecure/base_url', 'web/secure/base_url');
Paso 5 Reconfigurar nuestra instalación de magento
Una vez descargado nuestro backup, lo descomprimimos y editamos en nuestro archivo app/etc/local.xml los accesos a nuestra base de datos:
Nota: si ejecutaste de manera adecuada los comando anteriores ya no es cambiar la base de datos.
<default_setup>
<connection>
<host><![CDATA[{local server name}]]></host>
<username><![CDATA[{local user name}]]></username>
<password><![CDATA[{local password}]]></password>
<dbname><![CDATA[{database}]]></dbname>
<active>1</active>
</connection>
</default_setup>
Si seguiste estos sencillos pasos ya deberias tener tu sitio funcionando y en linea.
Suscribirse a:
Entradas (Atom)