Necesitas mi libro "Claves para abrir una tienda online y que venda" y lo sabes...


¿Quieres comprarlo en otro sitio?

Amazon | Casa del Libro

Cómo actualizar de Prestashop 1.6 a Prestashop 1.7

Aunque hay algún módulo como este  o servicios como Prestashopmanager, para importar datos y migrar una tienda Prestashop versión 1.6 a la nueva versión 1.7, si no tenemos presupuesto o nuestra tienda es muy grande (el módulo se quedará "colgado" en el proceso de traspaso), tendremos que plantearnos una actualización manual.

Esta actualización pasa por importar los datos de la base de datos actual de la 1.6 a la nuevas base de datos de la 1.7, que independientemente de que use nuevas tablas, las habituales relacionadas con productos, pedidos y clientes, al igual que en cambios de versiones anteriores siempre tienen algún cambio respecto a la otra versión (cambio de nombre de campo, sus propiedades y la inclusión de nuevos campos).

Esta propuesta de actualización manual a Prestashop 1.7 no considera los cambios en archivos y directorios, código fuente y por supuesto plantillas y módulos, estos últimos en su mayoría no serán compatibles con la nueva versión e implica una revisión o actualización de cada elemento, al igual que en la propuesta de Prestashop para la de actualización, sólo se tratan los datos:

"the template system has been rewritten, so your theme will either have to be changed or entirely rewritten. Additionally, your modules will need to be carefully examined and likely adapted, at least in terms of design"

"Take note that this module will only deal with your store’s data. The theme and modules will be those used by default, and your theme from version 1.5/1.6 will be deactivated, as will all of your third-party modules"

Fuente:https://www.prestashop.com/blog/en/prestashop-1-7-answers-questions/)
El objetivo de este artículo se centra en traspasar los datos del catálogo, clientes y pedidos a una nueva instalación de Prestashop 1.7 (una vez tengamos estos datos importados -lo más importante- ya tendremos tiempo de valorar las implicaciones de cambiar o actualizar la anterior plantilla, módulos que usábamos, etc.).

Los pasos para esta actualización o migración de DATOS a Prestashop 1.7 serían:


1) Realizar una nueva instalación de Prestashop 1.7

2) Hacer copia de las tablas actuales de PS 1.6 relacionadas con PRODUCTOS, CLIENTES y PEDIDOS (ej: ps_product_17)

3) Añadir modificaciones a esas tablas para que tengan la misma estructura que PS 1.7 (detalle modificaciones abajo)

Opción 1:
4) Exportar en sql los datos de esas tablas originalmente de 1.6 ahora modificadas para la 1.7 con los datos
5) Insertar datos anteriores en tablas de PS 1.7

Opción 2 (sólo si estamos trabajando en la misma bbdd):
4) Renombrar tablas originales de PS 1.7 (ej: ps_product_ORIGINAL) 
5) Renombrar tablas modificadas de la 1.6 a las tablas originales de PS 1.7 (ej: ps_product_17 a ps_product)

6) Comprobar funcionamiento tienda y acceso a los datos

7) Copiar carpeta imágenes de productos "img/p" de instalación PS 1.6. a directorio instalación PS 1.7





Los archivos SQL de instalación de las respectivas versiones que he tomado como referencia para comparar las versiones de las tablas puedes descargarlos en: https://goo.gl/bthjNJ

Por cierto, ¿te he dicho ya que mi libro sigue de los más vendidos en Amazon?


Modificaciones a realizar en las tablas que se usarán para los datos en PS 1.7


NOTA: Las instrucciones sql las he detallado sólo para la primera tabla "_product" y son orientativas, el nombre de la tabla y/o su prefijo puede variar en cada caso. Tomando como referencia la sintaxis para añadir y renombrar campos se pueden elaborar el resto de sqls.

PRODUCTOS

TABLA "_product"

Nuevo campo isbn (despues de ean13):
ALTER TABLE `_product` ADD `isbn` varchar(13) DEFAULT NULL AFTER ean13
Nuevo campo show_condition (despues de available_date):
ALTER TABLE `_product` ADD `show_condition` tinyint(1) NOT NULL DEFAULT '0' AFTER available_date
Nuevo campo  state (final de tabla):
ALTER TABLE `_product` ADD `state` int(11) unsigned NOT NULL DEFAULT '1'
Campo renombrado id_product_redirected (ahora es `id_type_redirected`):
ALTER TABLE `_product` CHANGE `id_product_redirected` `id_type_redirected` int(10);

TABLA "_product_shop"

Nuevo campo (despues de available_date):
`show_condition` tinyint(1) NOT NULL DEFAULT '0',

Campo renombrado:
"id_product_redirected" ahora es `id_type_redirected`

TABLA "_product_attribute"

Nuevo campo (despues de ean13):
`isbn` varchar(13) DEFAULT NULL,

TABLA "_product_attribute_shop"

Nuevo campo al inicio:
`id_product` int(10) unsigned NOT NULL,

Nuevas claves únicas:
UNIQUE KEY `id_product` (`id_product`, `id_shop`, `default_on`)
TABLA "_product_download"

UNIQUE KEY `id_product` (`id_product`)

TABLA "_product_tag"

Nuevo campo (al final de la tabla):
`id_lang` int(10) unsigned NOT NULL,

Nueva clave:
KEY `id_lang` (`id_lang`,`id_tag`)


TABLA "_specific_price"

KEY `id_product_attribute` (`id_product_attribute`),
KEY `id_shop` (`id_shop`),
KEY `id_customer`(`id_customer`),
KEY `from` (`from`),
KEY `to` (`to`),
UNIQUE KEY `id_product_2` (`id_product`,`id_product_attribute`,`id_customer`,`id_cart`,`from`,`to`,`id_shop`,`id_shop_group`,`id_currency`,`id_country`,`id_group`,`from_quantity`,`id_specific_price_rule`)

TABLA "_image_shop"

Nuevo campo (al inicio de la tabla):
`id_product` int(10) unsigned NOT NULL,

Claves:
PRIMARY KEY (`id_image`, `id_shop`),
UNIQUE KEY `id_product` (`id_product`, `id_shop`, `cover`),
KEY `id_shop` (`id_shop`)

TABLA "_category"

Claves:
KEY `category_parent` (`id_parent`),
KEY `nleftrightactive` (`nleft`, `nright`, `active`),
KEY `level_depth`(`level_depth`),
KEY `nright` (`nright`),
KEY `activenleft` (`active`,`nleft`),
KEY `activenright`(`active`,`nright`)

CLIENTES

TABLA "_customer"

Cambio longitud campo de 32 a 60:
`passwd` varchar(60) NOT NULL,

Nuevos campos (al final de la tabla):
`reset_password_token` varchar(40) DEFAULT NULL,
`reset_password_validity` datetime DEFAULT NULL,

PEDIDOS

TABLA "_orders"

Nuevo campo (despues de round_mode):
`round_type` tinyint(1) NOT NULL DEFAULT '1',

TABLA "_order_invoice"

Nuevo campo (despues de total_wrapping_tax_inc):
`shop_address` text DEFAULT NULL,

Cambio campos decimales de (17,2) a (20,6)

TABLA "_order_detail"

Nuevo campo (despues de product_attribute_id):
`id_customization` int(10) unsigned DEFAULT 0,

Nuevo campo (despues de ean13):
`product_isbn` varchar(13) DEFAULT NULL,

Nuevo campo (al final de la tabla):
`original_wholesale_price` DECIMAL(20, 6) NOT NULL DEFAULT '0.000000',

Mi libro disponible ahora en inglés: Key factors to sell online for real

Me alegra comunicar que está disponible desde hace unos días la nueva versión inglesa, revisada y actualizada de mi libro "Claves para abrir una tienda online y que venda"

El libro está disponible en Amazon tanto en versión digital para Kindle como en versión impresa en tapa blanda.

Key factors to sell online for real: All you need to know before launching an e-commerce