[+] Project : Vouchers are now replaced by cart rules

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9771 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
dMetzger
2011-11-01 18:50:42 +00:00
parent 1cfd76a66f
commit 486622522c
46 changed files with 2183 additions and 994 deletions
+87 -10
View File
@@ -187,11 +187,88 @@ CREATE TABLE `PREFIX_cart` (
KEY `id_shop` (`id_shop`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_cart_discount` (
CREATE TABLE `PREFIX_cart_rule` (
`id_cart_rule` int(10) unsigned NOT NULL auto_increment,
`id_customer` int unsigned NOT NULL default 0,
`date_from` datetime NOT NULL,
`date_to` datetime NOT NULL,
`description` text,
`quantity` int(10) unsigned NOT NULL default 0,
`quantity_per_user` int(10) unsigned NOT NULL default 0,
`priority` int(10) unsigned NOT NULL default 1,
`code` varchar(254) NOT NULL,
`minimum_amount` decimal(17,2) NOT NULL default 0,
`minimum_amount_tax` tinyint(1) NOT NULL default 0,
`minimum_amount_currency` int unsigned NOT NULL default 0,
`minimum_amount_shipping` tinyint(1) NOT NULL default 0,
`country_restriction` tinyint(1) unsigned NOT NULL default 0,
`carrier_restriction` tinyint(1) unsigned NOT NULL default 0,
`group_restriction` tinyint(1) unsigned NOT NULL default 0,
`cart_rule_restriction` tinyint(1) unsigned NOT NULL default 0,
`product_restriction` tinyint(1) unsigned NOT NULL default 0,
`free_shipping` tinyint(1) NOT NULL default 0,
`reduction_percent` decimal(4,2) NOT NULL default 0,
`reduction_amount` decimal(17,2) NOT NULL default 0,
`reduction_tax` tinyint(1) unsigned NOT NULL default 0,
`reduction_currency` int(10) unsigned NOT NULL default 0,
`reduction_product` int(10) NOT NULL default 0,
`gift_product` int(10) unsigned NOT NULL default 0,
`active` tinyint(1) unsigned NOT NULL default 0,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
PRIMARY KEY (`id_cart_rule`)
);
CREATE TABLE `PREFIX_cart_rule_lang` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`name` varchar(254) NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_lang`)
);
CREATE TABLE `PREFIX_cart_rule_country` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_country` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_country`)
);
CREATE TABLE `PREFIX_cart_rule_group` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_group` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_group`)
);
CREATE TABLE `PREFIX_cart_rule_carrier` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_carrier` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_carrier`)
);
CREATE TABLE `PREFIX_cart_rule_combination` (
`id_cart_rule_1` int(10) unsigned NOT NULL,
`id_cart_rule_2` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule_1`, `id_cart_rule_2`)
);
CREATE TABLE `PREFIX_cart_rule_product_rule` (
`id_product_rule` int(10) unsigned NOT NULL auto_increment,
`id_cart_rule` int(10) unsigned NOT NULL,
`quantity` int(10) unsigned NOT NULL default 1,
`type` ENUM('products', 'categories', 'attributes') NOT NULL,
PRIMARY KEY (`id_product_rule`)
);
CREATE TABLE `PREFIX_cart_rule_product_rule_value` (
`id_product_rule` int(10) unsigned NOT NULL,
`id_item` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_product_rule`, `id_item`)
);
CREATE TABLE `PREFIX_cart_cart_rule` (
`id_cart` int(10) unsigned NOT NULL,
`id_discount` int(10) unsigned NOT NULL,
KEY `cart_discount_index` (`id_cart`,`id_discount`),
KEY `id_discount` (`id_discount`)
`id_cart_rule` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart`,`id_cart_rule`),
KEY (`id_cart_rule`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_cart_product` (
@@ -1027,15 +1104,15 @@ CREATE TABLE `PREFIX_order_detail` (
KEY `id_order_id_order_detail` (`id_order`, `id_order_detail`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_order_discount` (
`id_order_discount` int(10) unsigned NOT NULL auto_increment,
CREATE TABLE `PREFIX_order_cart_rule` (
`id_order_cart_rule` int(10) unsigned NOT NULL auto_increment,
`id_order` int(10) unsigned NOT NULL,
`id_discount` int(10) unsigned NOT NULL,
`id_cart_rule` int(10) unsigned NOT NULL,
`name` varchar(32) NOT NULL,
`value` decimal(17,2) NOT NULL default '0.00',
PRIMARY KEY (`id_order_discount`),
KEY `order_discount_order` (`id_order`),
KEY `id_discount` (`id_discount`)
PRIMARY KEY (`id_order_cart_rule`),
KEY `id_order` (`id_order`),
KEY `id_cart_rule` (`id_cart_rule`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_order_history` (
+5 -5
View File
@@ -230,7 +230,7 @@ INSERT INTO `PREFIX_configuration` (`id_configuration`, `name`, `value`, `date_a
(142, 'PS_SCENE_FEATURE_ACTIVE', '1', NOW(), NOW()),
(143, 'PS_VIRTUAL_PROD_FEATURE_ACTIVE', '0', NOW(), NOW()),
(144, 'PS_CUSTOMIZATION_FEATURE_ACTIVE', '0', NOW(), NOW()),
(145, 'PS_DISCOUNT_FEATURE_ACTIVE', '0', NOW(), NOW()),
(145, 'PS_CART_RULE_FEATURE_ACTIVE', '0', NOW(), NOW()),
(146, 'PS_GROUP_FEATURE_ACTIVE', '0', NOW(), NOW()),
(147, 'PS_PACK_FEATURE_ACTIVE', '0', NOW(), NOW()),
(148, 'PS_ALIAS_FEATURE_ACTIVE', '1', NOW(), NOW()),
@@ -848,7 +848,7 @@ INSERT INTO `PREFIX_tab` (`id_tab`, `class_name`, `id_parent`, `position`) VALUE
(9, 'AdminTools', 0, 10),(82, 'AdminStores', 9, 11),(60, 'AdminTracking', 1, 3),(10, 'AdminManufacturers', 1, 4),(34, 'AdminSuppliers', 1, 5),(11, 'AdminAttributesGroups', 1, 6),
(36, 'AdminFeatures', 1, 7),(58, 'AdminScenes', 1, 8),(66, 'AdminTags', 1, 9),(68, 'AdminAttachments', 1, 10),(12, 'AdminAddresses', 2, 1),(63, 'AdminGroups', 2, 2),
(65, 'AdminCarts', 2, 3),(42, 'AdminInvoices', 3, 1),(55, 'AdminDeliverySlip', 3, 2),(47, 'AdminReturn', 3, 3),(49, 'AdminSlip', 3, 4),(59, 'AdminMessages', 3, 5),
(13, 'AdminStatuses', 3, 6),(54, 'AdminOrderMessage', 3, 7),(14, 'AdminDiscounts', 4, 4),(15, 'AdminCurrencies', 4, 1),(16, 'AdminTaxes', 4, 2),
(13, 'AdminStatuses', 3, 6),(54, 'AdminOrderMessage', 3, 7),(14, 'AdminCartRules', 4, 4),(15, 'AdminCurrencies', 4, 1),(16, 'AdminTaxes', 4, 2),
(17, 'AdminCarriers', 5, 1),(46, 'AdminStates', 5, 2),(18, 'AdminCountries', 5, 3),(19, 'AdminZones', 5, 5),(20, 'AdminRangePrice', 5, 6),
(21, 'AdminRangeWeight', 5, 7),(51, 'AdminStatsConf', 6, 1),(61, 'AdminSearchEngines', 6, 2),(62, 'AdminReferrers', 6, 3),
(22, 'AdminModulesPositions', 7, 4),(30, 'AdminProfiles', 29, 1),(31, 'AdminAccess', 29, 2),(28, 'AdminContacts', 29, 3),(39, 'AdminContact', 8, 1),
@@ -874,7 +874,7 @@ INSERT INTO `PREFIX_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `del
INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES
(1, 1, 'Catalog'),(1, 2, 'Customers'),(1, 3, 'Orders'),(1, 4, 'Payment'),
(1, 5, 'Shipping'),(1, 6, 'Stats'),(1, 7, 'Modules'),(1, 8, 'Preferences'),(1, 9, 'Tools'),(1, 10, 'Manufacturers'),(1, 11, 'Attributes and Groups'),
(1, 12, 'Addresses'),(1, 13, 'Statuses'),(1, 14, 'Vouchers'),(1, 15, 'Currencies'),(1, 16, 'Taxes'),(1, 17, 'Carriers'),(1, 18, 'Countries'),
(1, 12, 'Addresses'),(1, 13, 'Statuses'),(1, 14, 'Cart Rules'),(1, 15, 'Currencies'),(1, 16, 'Taxes'),(1, 17, 'Carriers'),(1, 18, 'Countries'),
(1, 19, 'Zones'),(1, 20, 'Price Ranges'),(1, 21, 'Weight Ranges'),(1, 22, 'Positions'),(1, 23, 'Database'),(1, 24, 'E-mail'),(1, 26, 'Images'),
(1, 27, 'Products'),(1, 28, 'Contacts'),(1, 29, 'Employees'),(1, 30, 'Profiles'),(1, 31, 'Permissions'),(1, 32, 'Languages'),(1, 33, 'Translations'),
(1, 34, 'Suppliers'),(1, 35, 'Tabs'),(1, 36, 'Features'),(1, 37, 'Quick Access'),(1, 38, 'Themes'),(1, 39, 'Contact Information'),(1, 40, 'Keyword Typos'),
@@ -897,7 +897,7 @@ INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES
INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES
(2, 1, 'Catalogue'),(2, 2, 'Clients'),(2, 3, 'Commandes'),(2, 4, 'Paiement'),(2, 5, 'Transport'),
(2, 6, 'Stats'),(2, 7, 'Modules'),(2, 8, 'Préférences'),(2, 9, 'Outils'),(2, 10, 'Marques'),(2, 11, 'Attributs et groupes'),(2, 12, 'Adresses'),(2, 13, 'Statuts'),
(2, 14, 'Bons de réduction'),(2, 15, 'Devises'),(2, 16, 'Taxes'),(2, 17, 'Transporteurs'),(2, 18, 'Pays'),(2, 19, 'Zones'),(2, 20, 'Tranches de prix'),
(2, 14, 'Règles paniers'),(2, 15, 'Devises'),(2, 16, 'Taxes'),(2, 17, 'Transporteurs'),(2, 18, 'Pays'),(2, 19, 'Zones'),(2, 20, 'Tranches de prix'),
(2, 21, 'Tranches de poids'),(2, 22, 'Positions'),(2, 23, 'Base de données'),(2, 24, 'Emails'),(2, 26, 'Images'),(2, 27, 'Produits'),(2, 28, 'Contacts'),
(2, 29, 'Employés'),(2, 30, 'Profils'),(2, 31, 'Permissions'),(2, 32, 'Langues'),(2, 33, 'Traductions'),(2, 34, 'Fournisseurs'),(2, 35, 'Onglets'),
(2, 36, 'Caractéristiques'),(2, 37, 'Accès rapide'),(2, 38, 'Thèmes'),(2, 39, 'Coordonnées'),(2, 40, 'Alias'),(2, 41, 'Import'),(2, 42, 'Factures'),
@@ -994,7 +994,7 @@ INSERT IGNORE INTO `PREFIX_tab_lang` (`id_tab`, `id_lang`, `name`)
FROM `PREFIX_lang` CROSS JOIN `PREFIX_tab`);
INSERT INTO `PREFIX_quick_access` (`id_quick_access`, `link`, `new_window`) VALUES
(1, 'index.php', 0),(2, '../', 1),(3, 'index.php?controller=AdminCatalog&addcategory', 0),(4, 'index.php?controller=AdminCatalog&addproduct', 0),(5, 'index.php?controller=AdminDiscounts&adddiscount', 0);
(1, 'index.php', 0),(2, '../', 1),(3, 'index.php?controller=AdminCatalog&addcategory', 0),(4, 'index.php?controller=AdminCatalog&addproduct', 0),(5, 'index.php?controller=AdminCartRules&addcart_rule', 0);
INSERT INTO `PREFIX_quick_access_lang` (`id_quick_access`, `id_lang`, `name`) VALUES
(1, 1, 'Home'),(1, 2, 'Accueil'),(1, 3, 'Inicio'),(1, 4, 'Start'),(1, 5, 'Home page'),
+94
View File
@@ -222,3 +222,97 @@ ALTER TABLE `PREFIX_carrier` ADD `position` INT( 10 ) UNSIGNED NOT NULL DEFAULT
ALTER TABLE `PREFIX_order_state` ADD COLUMN `shipped` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `delivery`;
UPDATE `PREFIX_order_state` SET `shipped` = 1 WHERE id_order_states IN (4, 5);
CREATE TABLE `PREFIX_cart_rule` (
`id_cart_rule` int(10) unsigned NOT NULL auto_increment,
`id_customer` int unsigned NOT NULL default 0,
`date_from` datetime NOT NULL,
`date_to` datetime NOT NULL,
`description` text,
`quantity` int(10) unsigned NOT NULL default 0,
`quantity_per_user` int(10) unsigned NOT NULL default 0,
`priority` int(10) unsigned NOT NULL default 1,
`code` varchar(254) NOT NULL,
`minimum_amount` decimal(17,2) NOT NULL default 0,
`minimum_amount_tax` tinyint(1) NOT NULL default 0,
`minimum_amount_currency` int unsigned NOT NULL default 0,
`minimum_amount_shipping` tinyint(1) NOT NULL default 0,
`country_restriction` tinyint(1) unsigned NOT NULL default 0,
`carrier_restriction` tinyint(1) unsigned NOT NULL default 0,
`group_restriction` tinyint(1) unsigned NOT NULL default 0,
`cart_rule_restriction` tinyint(1) unsigned NOT NULL default 0,
`product_restriction` tinyint(1) unsigned NOT NULL default 0,
`free_shipping` tinyint(1) NOT NULL default 0,
`reduction_percent` decimal(4,2) NOT NULL default 0,
`reduction_amount` decimal(17,2) NOT NULL default 0,
`reduction_tax` tinyint(1) unsigned NOT NULL default 0,
`reduction_currency` int(10) unsigned NOT NULL default 0,
`reduction_product` int(10) NOT NULL default 0,
`gift_product` int(10) unsigned NOT NULL default 0,
`active` tinyint(1) unsigned NOT NULL default 0,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
PRIMARY KEY (`id_cart_rule`)
);
CREATE TABLE `PREFIX_cart_rule_lang` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`name` varchar(254) NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_lang`)
);
CREATE TABLE `PREFIX_cart_rule_country` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_country` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_country`)
);
CREATE TABLE `PREFIX_cart_rule_group` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_group` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_group`)
);
CREATE TABLE `PREFIX_cart_rule_carrier` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_carrier` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_carrier`)
);
CREATE TABLE `PREFIX_cart_rule_combination` (
`id_cart_rule_1` int(10) unsigned NOT NULL,
`id_cart_rule_2` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_cart_rule_1`, `id_cart_rule_2`)
);
CREATE TABLE `PREFIX_cart_rule_product_rule` (
`id_product_rule` int(10) unsigned NOT NULL auto_increment,
`id_cart_rule` int(10) unsigned NOT NULL,
`quantity` int(10) unsigned NOT NULL default 1,
`type` ENUM('products', 'categories', 'attributes') NOT NULL,
PRIMARY KEY (`id_product_rule`)
);
CREATE TABLE `PREFIX_cart_rule_product_rule_value` (
`id_product_rule` int(10) unsigned NOT NULL,
`id_item` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_product_rule`, `id_item`)
);
ALTER TABLE `PREFIX_cart_discount` CHANGE `id_discount` `id_cart_rule` int(10) unsigned NOT NULL;
ALTER TABLE `PREFIX_order_discount` CHANGE `id_discount` `id_cart_rule` int(10) unsigned NOT NULL;
ALTER TABLE `PREFIX_order_discount` CHANGE `id_order_discount` `id_order_cart_rule` int(10) unsigned NOT NULL;
RENAME TABLE `PREFIX_order_discount` TO `PREFIX_order_cart_rule`;
RENAME TABLE `PREFIX_cart_discount` TO `PREFIX_cart_cart_rule`;
CREATE VIEW `PREFIX_order_discount` AS SELECT *, id_cart_rule as id_discount FROM `PREFIX_order_cart_rule`;
CREATE VIEW `PREFIX_cart_discount` AS SELECT *, id_cart_rule as id_discount FROM `PREFIX_cart_cart_rule`;
INSERT INTO `PREFIX_configuration` (`name`, `value`, `date_add`, `date_upd`) (
SELECT 'PS_CART_RULE_FEATURE_ACTIVE', `value`, NOW(), NOW() FROM `PREFIX_configuration` WHERE `name` = 'PS_DISCOUNT_FEATURE_ACTIVE' LIMIT 1
);
UPDATE `PREFIX_tab` SET class_name = 'AdminCartRules' WHERE class_name = 'AdminDiscounts';