Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Tax Rate Help Needed


aclema

Recommended Posts

Posted

Its better to sort them by zip code and setup the tax-zones accordingly in the admin panel. There is no easy way something like easypopulate for tax-zones would be ideal.

 

I also remember a contribution for Ohio where there was the tax listed for every county. But I havent seen one for all states. And somehow this has to be updated every so often since counties change taxes.

Posted
Its better to sort them by zip code and setup the tax-zones accordingly in the admin panel. There is no easy way something like easypopulate for tax-zones would be ideal.

 

I also remember a contribution for Ohio where there was the tax listed for every county. But I havent seen one for all states. And somehow this has to be updated every so often since counties change taxes.

 

 

Do you mean set up the tax zones according to zip code instead of county??

Posted
no counties because the zip codes can span over counties  :lol: That was wrong there, counties is better but there are scripts maybe you could modify. The contribution is here:

http://www.oscommerce.com/community/contributions,2956

ny state sales tax is calculated by county zone the item is delivered to. zip code tax rates will deliver an improper tax owed to the state. also know this: shipping is taxable too, if the item is taxable, tax the shipping.

there are documents available at nystax.gov <--huge fun reading that, but its a good idea to know the tax laws.

 

i have implemented a few contributions to make my sales tax in ny a little smoother.

1) ohio tax zones by county i used the Joe McFrederick 16 Mar 2005 update, its just a base to work with.

i used this as a base to dump the ny zones into if you want i can offer you the sql i plugged into my database to create the ny values...?hmmm???

2)after that was all going smooth i saw that any new new york customers after they typed in the state were given an error and had to scroll through 60+ new york entries. Discover:

country state selector

implement. implement. implement. tweak. fix existing ny customers to the proper ny state entry...(manual labor by hand edit each one already in the database to reflect their county)

create all the ny tax zones.

i can get the values i used and offer them to you if you like. time. it aint on my side but i can get them. ??hmmm????

ask and ill post the sql here when i can. (but you can do it yourself in a few hours) :rolleyes:

Posted
ny state sales tax is calculated by county zone the item is delivered to. zip code tax rates will deliver an improper tax owed to the state. also know this: shipping is taxable too, if the item is taxable, tax the shipping.

there are documents available at nystax.gov <--huge fun reading that, but its a good idea to know the tax laws.

 

i have implemented a few contributions to make my sales tax in ny a little smoother.

1) ohio tax zones by county i used the Joe McFrederick 16 Mar 2005 update, its just a base to work with.

i used this as a base to dump the ny zones into if you want i can offer you the sql i plugged into my database to create the ny values...?hmmm???

2)after that was all going smooth i saw that any new new york customers after they typed in the state were given an error and had to scroll through 60+ new york entries. Discover:

country state selector

implement. implement. implement. tweak. fix existing ny customers to the proper ny state entry...(manual labor by hand edit each one already in the database to reflect their county)

create all the ny tax zones.

i can get the values i used and offer them to you if you like. time. it aint on my side but i can get them. ??hmmm????

ask and ill post the sql here when i can. (but you can do it yourself in a few hours)  :rolleyes:

 

 

 

Since I'm having enough problems with the contribution I just installed being that I don't know SQL or PHP if you could when you have time post the information I would appreciate it. I'm sure I'll have enough problems getting it in and working without having to try to figure out the sql. I'm starting to think it might have been easier to pay someone to set this up instead of constantly fighting it.

 

Thank you for your help.

Posted
Since I'm having enough problems with the contribution I just installed being that I don't know SQL or PHP if you could when you have time post the information I would appreciate it.  I'm sure I'll have enough problems getting it in and working without having to try to figure out the sql.  I'm starting to think it might have been easier to pay someone to set this up instead of constantly fighting it.

 

Thank you for your help.

ok, this is for the ny tax zones. the country/state selector you will have to figure out later. it is not really needed but is nice for the customer where they will get no error on account creation.

 

I assume you first back up your database. if you don't know how, then research

here: http://dev.mysql.com/doc/mysql/en/index.html and here: http://www.phpmyadmin.net/home_page/docs.php

 

database backed up? save a copy for emergency reload? get into the good habit of making regular backups needed or not. its when you are in a "not" that you will find you shoulda been in a "needed". back up the database.

 

this sql will drop these tables:

geo_zones

tax_rates

zones

zones_to_geo_zones

from your existing database AND re-create them with the ny info.

 

if you added any info to those tables that needs preserving you will have to edit this sql or add mine to yours.

 

run this query on your database:

-- --------------------------------------------------------

-- 
-- Table structure for table `geo_zones`
-- 

DROP TABLE IF EXISTS `geo_zones`;
CREATE TABLE `geo_zones` (
 `geo_zone_id` int(11) NOT NULL auto_increment,
 `geo_zone_name` varchar(32) NOT NULL default '',
 `geo_zone_description` varchar(255) NOT NULL default '',
 `last_modified` datetime default NULL,
 `date_added` datetime NOT NULL default '0000-00-00 00:00:00',
 PRIMARY KEY  (`geo_zone_id`)
) TYPE=MyISAM;

-- 
-- Dumping data for table `geo_zones`
-- 

INSERT INTO `geo_zones` VALUES (4, 'NY Tax 8%', '8% tax ny', NULL, '2005-06-16 07:44:57');
INSERT INTO `geo_zones` VALUES (3, 'usa check zone', 'checks from here only', '2005-01-11 17:43:28', '2005-01-11 17:40:04');
INSERT INTO `geo_zones` VALUES (5, 'NY Tax 8 1/2%', '8.5% tax ny', NULL, '2005-06-16 08:02:32');
INSERT INTO `geo_zones` VALUES (6, 'NY Tax 8 3/8%', '8 3/8% tax ny', NULL, '2005-06-16 08:04:49');
INSERT INTO `geo_zones` VALUES (7, 'NY Tax 8 1/4%', '8 1/4% tax ny', NULL, '2005-06-16 08:28:04');
INSERT INTO `geo_zones` VALUES (8, 'NY Tax 7 3/4%', '7 3/4% tax ny', NULL, '2005-06-16 08:31:22');
INSERT INTO `geo_zones` VALUES (9, 'NY Tax 8 1/8%', '8 1/8% tax ny', NULL, '2005-06-16 08:34:07');
INSERT INTO `geo_zones` VALUES (10, 'NY Tax 7%', '7% tax ny', NULL, '2005-06-16 08:36:16');
INSERT INTO `geo_zones` VALUES (11, 'NY Tax 8 5/8%', '8 5/8% tax ny', NULL, '2005-06-16 08:41:29');
INSERT INTO `geo_zones` VALUES (12, 'NY Tax 9 1/2%', '9 1/2% tax ny', NULL, '2005-06-16 08:43:47');
INSERT INTO `geo_zones` VALUES (13, 'NY Tax 7 3/8%', '7 3/8% tax ny', NULL, '2005-06-16 08:46:05');
INSERT INTO `geo_zones` VALUES (14, 'NY Tax 7 1/2%', '7 1/2% tax ny', NULL, '2005-06-16 08:48:47');
INSERT INTO `geo_zones` VALUES (15, 'NY Tax 7 7/8%', '7 7/8% tax ny', NULL, '2005-06-16 08:50:54');
INSERT INTO `geo_zones` VALUES (16, 'store pickup zone', 'store pickup', NULL, '2005-06-16 17:44:44');

-- --------------------------------------------------------

-- 
-- Table structure for table `tax_rates`
-- 

DROP TABLE IF EXISTS `tax_rates`;
CREATE TABLE `tax_rates` (
 `tax_rates_id` int(11) NOT NULL auto_increment,
 `tax_zone_id` int(11) NOT NULL default '0',
 `tax_class_id` int(11) NOT NULL default '0',
 `tax_priority` int(5) default '1',
 `tax_rate` decimal(7,4) NOT NULL default '0.0000',
 `tax_description` varchar(255) NOT NULL default '',
 `last_modified` datetime default NULL,
 `date_added` datetime NOT NULL default '0000-00-00 00:00:00',
 PRIMARY KEY  (`tax_rates_id`)
) TYPE=MyISAM;

-- 
-- Dumping data for table `tax_rates`
-- 

INSERT INTO `tax_rates` VALUES (1, 4, 1, 1, 8.0000, 'NY Sales Tax 8%', '2005-06-16 08:01:48', '2005-04-06 20:31:49');
INSERT INTO `tax_rates` VALUES (2, 5, 1, 1, 8.5000, 'NY Sales Tax 8 1/2%', NULL, '2005-06-16 08:04:12');
INSERT INTO `tax_rates` VALUES (3, 6, 1, 1, 8.3750, 'NY Sales Tax 8 3/8%', NULL, '2005-06-16 08:27:08');
INSERT INTO `tax_rates` VALUES (4, 7, 1, 1, 8.2500, 'NY Sales Tax 8 1/4%', NULL, '2005-06-16 08:30:35');
INSERT INTO `tax_rates` VALUES (5, 8, 1, 1, 7.7500, 'NY Sales Tax 7 3/4%', NULL, '2005-06-16 08:33:14');
INSERT INTO `tax_rates` VALUES (7, 9, 1, 1, 8.1250, 'NY Sales Tax 8 1/8%', NULL, '2005-06-16 08:35:46');
INSERT INTO `tax_rates` VALUES (8, 10, 1, 1, 7.0000, 'NY Sales Tax 7%', NULL, '2005-06-16 08:40:43');
INSERT INTO `tax_rates` VALUES (9, 11, 1, 1, 8.6250, 'NY Sales Tax 8 5/8%', NULL, '2005-06-16 08:43:12');
INSERT INTO `tax_rates` VALUES (10, 12, 1, 1, 9.5000, 'NY Sales Tax 9 1/2%', NULL, '2005-06-16 08:45:24');
INSERT INTO `tax_rates` VALUES (11, 13, 1, 1, 7.3750, 'NY Sales Tax 7 3/8%', NULL, '2005-06-16 08:47:50');
INSERT INTO `tax_rates` VALUES (12, 14, 1, 1, 7.5000, 'NY Sales Tax 7 1/2%', NULL, '2005-06-16 08:50:02');
INSERT INTO `tax_rates` VALUES (13, 15, 1, 1, 7.8750, 'NY Sales Tax 7 7/8%', NULL, '2005-06-16 08:52:10');

-- --------------------------------------------------------

-- 
-- Table structure for table `zones`
-- 

DROP TABLE IF EXISTS `zones`;
CREATE TABLE `zones` (
 `zone_id` int(11) NOT NULL auto_increment,
 `zone_country_id` int(11) NOT NULL default '0',
 `zone_code` varchar(32) NOT NULL default '',
 `zone_name` varchar(100) NOT NULL default '',
 PRIMARY KEY  (`zone_id`)
) TYPE=MyISAM;

-- 
-- Dumping data for table `zones`
-- 

INSERT INTO `zones` VALUES (1, 223, 'AL', 'Alabama');
INSERT INTO `zones` VALUES (2, 223, 'AK', 'Alaska');
INSERT INTO `zones` VALUES (3, 223, 'AS', 'American Samoa');
INSERT INTO `zones` VALUES (4, 223, 'AZ', 'Arizona');
INSERT INTO `zones` VALUES (5, 223, 'AR', 'Arkansas');
INSERT INTO `zones` VALUES (6, 223, 'AF', 'Armed Forces Africa');
INSERT INTO `zones` VALUES (7, 223, 'AA', 'Armed Forces Americas');
INSERT INTO `zones` VALUES (8, 223, 'AC', 'Armed Forces Canada');
INSERT INTO `zones` VALUES (9, 223, 'AE', 'Armed Forces Europe');
INSERT INTO `zones` VALUES (10, 223, 'AM', 'Armed Forces Middle East');
INSERT INTO `zones` VALUES (11, 223, 'AP', 'Armed Forces Pacific');
INSERT INTO `zones` VALUES (12, 223, 'CA', 'California');
INSERT INTO `zones` VALUES (13, 223, 'CO', 'Colorado');
INSERT INTO `zones` VALUES (14, 223, 'CT', 'Connecticut');
INSERT INTO `zones` VALUES (15, 223, 'DE', 'Delaware');
INSERT INTO `zones` VALUES (16, 223, 'DC', 'District of Columbia');
INSERT INTO `zones` VALUES (17, 223, 'FM', 'Federated States Of Micronesia');
INSERT INTO `zones` VALUES (18, 223, 'FL', 'Florida');
INSERT INTO `zones` VALUES (19, 223, 'GA', 'Georgia');
INSERT INTO `zones` VALUES (20, 223, 'GU', 'Guam');
INSERT INTO `zones` VALUES (21, 223, 'HI', 'Hawaii');
INSERT INTO `zones` VALUES (22, 223, 'ID', 'Idaho');
INSERT INTO `zones` VALUES (23, 223, 'IL', 'Illinois');
INSERT INTO `zones` VALUES (24, 223, 'IN', 'Indiana');
INSERT INTO `zones` VALUES (25, 223, 'IA', 'Iowa');
INSERT INTO `zones` VALUES (26, 223, 'KS', 'Kansas');
INSERT INTO `zones` VALUES (27, 223, 'KY', 'Kentucky');
INSERT INTO `zones` VALUES (28, 223, 'LA', 'Louisiana');
INSERT INTO `zones` VALUES (29, 223, 'ME', 'Maine');
INSERT INTO `zones` VALUES (30, 223, 'MH', 'Marshall Islands');
INSERT INTO `zones` VALUES (31, 223, 'MD', 'Maryland');
INSERT INTO `zones` VALUES (32, 223, 'MA', 'Massachusetts');
INSERT INTO `zones` VALUES (33, 223, 'MI', 'Michigan');
INSERT INTO `zones` VALUES (34, 223, 'MN', 'Minnesota');
INSERT INTO `zones` VALUES (35, 223, 'MS', 'Mississippi');
INSERT INTO `zones` VALUES (36, 223, 'MO', 'Missouri');
INSERT INTO `zones` VALUES (37, 223, 'MT', 'Montana');
INSERT INTO `zones` VALUES (38, 223, 'NE', 'Nebraska');
INSERT INTO `zones` VALUES (39, 223, 'NV', 'Nevada');
INSERT INTO `zones` VALUES (40, 223, 'NH', 'New Hampshire');
INSERT INTO `zones` VALUES (41, 223, 'NJ', 'New Jersey');
INSERT INTO `zones` VALUES (42, 223, 'NM', 'New Mexico');
INSERT INTO `zones` VALUES (43, 223, 'NY', 'New York (Albany County)');
INSERT INTO `zones` VALUES (44, 223, 'NY', 'New York (Allegany County)');
INSERT INTO `zones` VALUES (45, 223, 'NY', 'New York (Bronx County)');
INSERT INTO `zones` VALUES (46, 223, 'NY', 'New York (Broome County)');
INSERT INTO `zones` VALUES (47, 223, 'NY', 'New York (Cattaraugus- all except)');
INSERT INTO `zones` VALUES (48, 223, 'NY', 'New York (Cattaraugus- Olean City)');
INSERT INTO `zones` VALUES (49, 223, 'NY', 'New York (Cattaraugus- Salamanca City)');
INSERT INTO `zones` VALUES (50, 223, 'NY', 'New York (Cayuga- all except)');
INSERT INTO `zones` VALUES (51, 223, 'NY', 'New York (Cayuga- Auburn City)');
INSERT INTO `zones` VALUES (52, 223, 'NY', 'New York (Chautauqua County)');
INSERT INTO `zones` VALUES (53, 223, 'NY', 'New York (Chemung County)');
INSERT INTO `zones` VALUES (54, 223, 'NY', 'New York (Chenango- all except)');
INSERT INTO `zones` VALUES (55, 223, 'NY', 'New York (Chenango- Norwich City)');
INSERT INTO `zones` VALUES (56, 223, 'NY', 'New York (Clinton County)');
INSERT INTO `zones` VALUES (57, 223, 'NY', 'New York (Columbia County)');
INSERT INTO `zones` VALUES (58, 223, 'NY', 'New York (Cortland County)');
INSERT INTO `zones` VALUES (59, 223, 'NY', 'New York (Delaware County)');
INSERT INTO `zones` VALUES (60, 223, 'NY', 'New York (Dutchess County)');
INSERT INTO `zones` VALUES (61, 223, 'NY', 'New York (Erie County)');
INSERT INTO `zones` VALUES (62, 223, 'NY', 'New York (Essex County)');
INSERT INTO `zones` VALUES (63, 223, 'NY', 'New York (Franklin County)');
INSERT INTO `zones` VALUES (64, 223, 'NY', 'New York (Fulton- all except)');
INSERT INTO `zones` VALUES (65, 223, 'NY', 'New York (Fulton- Gloversville City)');
INSERT INTO `zones` VALUES (66, 223, 'NY', 'New York (Fulton- Johnstown City)');
INSERT INTO `zones` VALUES (67, 223, 'NY', 'New York (Genesee County)');
INSERT INTO `zones` VALUES (68, 223, 'NY', 'New York (Greene County)');
INSERT INTO `zones` VALUES (69, 223, 'NY', 'New York (Hamilton County)');
INSERT INTO `zones` VALUES (70, 223, 'NY', 'New York (Herkimer County)');
INSERT INTO `zones` VALUES (71, 223, 'NY', 'New York (Jefferson County)');
INSERT INTO `zones` VALUES (72, 223, 'NY', 'New York (Kings County)');
INSERT INTO `zones` VALUES (73, 223, 'NY', 'New York (Lewis County)');
INSERT INTO `zones` VALUES (74, 223, 'NY', 'New York (Livingston County)');
INSERT INTO `zones` VALUES (75, 223, 'NY', 'New York (Madison- all except)');
INSERT INTO `zones` VALUES (76, 223, 'NY', 'New York (Madison- Oneida City)');
INSERT INTO `zones` VALUES (77, 223, 'NY', 'New York (New York County)');
INSERT INTO `zones` VALUES (78, 223, 'NY', 'New York (Monroe County)');
INSERT INTO `zones` VALUES (79, 223, 'NY', 'New York (Montgomery County)');
INSERT INTO `zones` VALUES (80, 223, 'NY', 'New York (Nassau County)');
INSERT INTO `zones` VALUES (81, 223, 'NY', 'New York (Niagra County)');
INSERT INTO `zones` VALUES (82, 223, 'NY', 'New York (Oneida- all except)');
INSERT INTO `zones` VALUES (83, 223, 'NY', 'New York (Oneida- Rome City)');
INSERT INTO `zones` VALUES (84, 223, 'NY', 'New York (Oneida- Sherrill City)');
INSERT INTO `zones` VALUES (85, 223, 'NY', 'New York (Oneida- Utica City)');
INSERT INTO `zones` VALUES (86, 223, 'NY', 'New York (Onondaga County)');
INSERT INTO `zones` VALUES (87, 223, 'NY', 'New York (Ontario- all except)');
INSERT INTO `zones` VALUES (88, 223, 'NY', 'New York (Ontario- Canandaigua City)');
INSERT INTO `zones` VALUES (89, 223, 'NY', 'New York (Ontario- Geneva City)');
INSERT INTO `zones` VALUES (90, 223, 'NY', 'New York (Orange County)');
INSERT INTO `zones` VALUES (91, 223, 'NY', 'New York (Orleans County)');
INSERT INTO `zones` VALUES (92, 223, 'NY', 'New York (Oswego- all except)');
INSERT INTO `zones` VALUES (93, 223, 'NY', 'New York (Oswego- Fulton City)');
INSERT INTO `zones` VALUES (94, 223, 'NY', 'New York (Oswego- Oswego City)');
INSERT INTO `zones` VALUES (95, 223, 'NY', 'New York (Otsego County)');
INSERT INTO `zones` VALUES (96, 223, 'NY', 'New York (Putnam County)');
INSERT INTO `zones` VALUES (97, 223, 'NY', 'New York (Queens County)');
INSERT INTO `zones` VALUES (98, 223, 'NY', 'New York (Rensselaer County)');
INSERT INTO `zones` VALUES (99, 223, 'NY', 'New York (Richmond County)');
INSERT INTO `zones` VALUES (100, 223, 'NY', 'New York (Rockland County)');
INSERT INTO `zones` VALUES (101, 223, 'NY', 'New York (St. Lawrence County)');
INSERT INTO `zones` VALUES (102, 223, 'NY', 'New York (Saratoga- all except)');
INSERT INTO `zones` VALUES (103, 223, 'NY', 'New York (Saratoga- Saratoga Springs City)');
INSERT INTO `zones` VALUES (104, 223, 'NY', 'New York (Schenectady County)');
INSERT INTO `zones` VALUES (105, 223, 'NY', 'New York (Schoharie County)');
INSERT INTO `zones` VALUES (106, 223, 'NY', 'New York (Schuyler County)');
INSERT INTO `zones` VALUES (107, 223, 'NY', 'New York (Seneca County)');
INSERT INTO `zones` VALUES (108, 223, 'NY', 'New York (Steuben- all except)');
INSERT INTO `zones` VALUES (109, 223, 'NY', 'New York (Steuben- Corning City)');
INSERT INTO `zones` VALUES (110, 223, 'NY', 'New York (Steuben- Hornell City)');
INSERT INTO `zones` VALUES (111, 223, 'NY', 'New York (Suffolk County)');
INSERT INTO `zones` VALUES (112, 223, 'NY', 'New York (Sullivan County)');
INSERT INTO `zones` VALUES (113, 223, 'NY', 'New York (Tioga County)');
INSERT INTO `zones` VALUES (114, 223, 'NY', 'New York (Tompkins- all except)');
INSERT INTO `zones` VALUES (115, 223, 'NY', 'New York (Tompkins- Ithaca City)');
INSERT INTO `zones` VALUES (116, 223, 'NY', 'New York (Ulster County)');
INSERT INTO `zones` VALUES (117, 223, 'NY', 'New York (Warren- all except)');
INSERT INTO `zones` VALUES (118, 223, 'NY', 'New York (Warren- Glens Falls City)');
INSERT INTO `zones` VALUES (119, 223, 'NY', 'New York (Washington County)');
INSERT INTO `zones` VALUES (120, 223, 'NY', 'New York (Wayne County)');
INSERT INTO `zones` VALUES (121, 223, 'NY', 'New York (Westchester- all except)');
INSERT INTO `zones` VALUES (122, 223, 'NY', 'New York (Westchester- Mount Vernon City)');
INSERT INTO `zones` VALUES (123, 223, 'NY', 'New York (Westchester- New Rochelle City)');
INSERT INTO `zones` VALUES (124, 223, 'NY', 'New York (Westchester- White Plains City)');
INSERT INTO `zones` VALUES (125, 223, 'NY', 'New York (Westchester- Yonkers City)');
INSERT INTO `zones` VALUES (126, 223, 'NY', 'New York (Wyoming County)');
INSERT INTO `zones` VALUES (127, 223, 'NY', 'New York (Yates County)');
INSERT INTO `zones` VALUES (128, 223, 'NC', 'North Carolina');
INSERT INTO `zones` VALUES (129, 223, 'ND', 'North Dakota');
INSERT INTO `zones` VALUES (130, 223, 'MP', 'Northern Mariana Islands');
INSERT INTO `zones` VALUES (131, 223, 'OH', 'Ohio');
INSERT INTO `zones` VALUES (132, 223, 'OK', 'Oklahoma');
INSERT INTO `zones` VALUES (133, 223, 'OR', 'Oregon');
INSERT INTO `zones` VALUES (134, 223, 'PW', 'Palau');
INSERT INTO `zones` VALUES (135, 223, 'PA', 'Pennsylvania');
INSERT INTO `zones` VALUES (136, 223, 'PR', 'Puerto Rico');
INSERT INTO `zones` VALUES (137, 223, 'RI', 'Rhode Island');
INSERT INTO `zones` VALUES (138, 223, 'SC', 'South Carolina');
INSERT INTO `zones` VALUES (139, 223, 'SD', 'South Dakota');
INSERT INTO `zones` VALUES (140, 223, 'TN', 'Tennessee');
INSERT INTO `zones` VALUES (141, 223, 'TX', 'Texas');
INSERT INTO `zones` VALUES (142, 223, 'UT', 'Utah');
INSERT INTO `zones` VALUES (143, 223, 'VT', 'Vermont');
INSERT INTO `zones` VALUES (144, 223, 'VI', 'Virgin Islands');
INSERT INTO `zones` VALUES (145, 223, 'VA', 'Virginia');
INSERT INTO `zones` VALUES (146, 223, 'WA', 'Washington');
INSERT INTO `zones` VALUES (147, 223, 'WV', 'West Virginia');
INSERT INTO `zones` VALUES (148, 223, 'WI', 'Wisconsin');
INSERT INTO `zones` VALUES (149, 223, 'WY', 'Wyoming');
INSERT INTO `zones` VALUES (150, 38, 'AB', 'Alberta');
INSERT INTO `zones` VALUES (151, 38, 'BC', 'British Columbia');
INSERT INTO `zones` VALUES (152, 38, 'MB', 'Manitoba');
INSERT INTO `zones` VALUES (153, 38, 'NF', 'Newfoundland');
INSERT INTO `zones` VALUES (154, 38, 'NB', 'New Brunswick');
INSERT INTO `zones` VALUES (155, 38, 'NS', 'Nova Scotia');
INSERT INTO `zones` VALUES (156, 38, 'NT', 'Northwest Territories');
INSERT INTO `zones` VALUES (157, 38, 'NU', 'Nunavut');
INSERT INTO `zones` VALUES (158, 38, 'ON', 'Ontario');
INSERT INTO `zones` VALUES (159, 38, 'PE', 'Prince Edward Island');
INSERT INTO `zones` VALUES (160, 38, 'QC', 'Quebec');
INSERT INTO `zones` VALUES (161, 38, 'SK', 'Saskatchewan');
INSERT INTO `zones` VALUES (162, 38, 'YT', 'Yukon Territory');
INSERT INTO `zones` VALUES (163, 81, 'NDS', 'Niedersachsen');
INSERT INTO `zones` VALUES (164, 81, 'BAW', 'Baden-W?rttemberg');
INSERT INTO `zones` VALUES (165, 81, 'BAY', 'Bayern');
INSERT INTO `zones` VALUES (166, 81, 'BER', 'Berlin');
INSERT INTO `zones` VALUES (167, 81, 'BRG', 'Brandenburg');
INSERT INTO `zones` VALUES (168, 81, 'BRE', 'Bremen');
INSERT INTO `zones` VALUES (169, 81, 'HAM', 'Hamburg');
INSERT INTO `zones` VALUES (170, 81, 'HES', 'Hessen');
INSERT INTO `zones` VALUES (171, 81, 'MEC', 'Mecklenburg-Vorpommern');
INSERT INTO `zones` VALUES (172, 81, 'NRW', 'Nordrhein-Westfalen');
INSERT INTO `zones` VALUES (173, 81, 'RHE', 'Rheinland-Pfalz');
INSERT INTO `zones` VALUES (174, 81, 'SAR', 'Saarland');
INSERT INTO `zones` VALUES (175, 81, 'SAS', 'Sachsen');
INSERT INTO `zones` VALUES (176, 81, 'SAC', 'Sachsen-Anhalt');
INSERT INTO `zones` VALUES (177, 81, 'SCN', 'Schleswig-Holstein');
INSERT INTO `zones` VALUES (178, 81, 'THE', 'Th?ringen');
INSERT INTO `zones` VALUES (179, 14, 'WI', 'Wien');
INSERT INTO `zones` VALUES (180, 14, 'NO', 'Nieder?sterreich');
INSERT INTO `zones` VALUES (181, 14, 'OO', 'Ober?sterreich');
INSERT INTO `zones` VALUES (182, 14, 'SB', 'Salzburg');
INSERT INTO `zones` VALUES (183, 14, 'KN', 'K?rnten');
INSERT INTO `zones` VALUES (184, 14, 'ST', 'Steiermark');
INSERT INTO `zones` VALUES (185, 14, 'TI', 'Tirol');
INSERT INTO `zones` VALUES (186, 14, 'BL', 'Burgenland');
INSERT INTO `zones` VALUES (187, 14, 'VB', 'Voralberg');
INSERT INTO `zones` VALUES (188, 204, 'AG', 'Aargau');
INSERT INTO `zones` VALUES (189, 204, 'AI', 'Appenzell Innerrhoden');
INSERT INTO `zones` VALUES (190, 204, 'AR', 'Appenzell Ausserrhoden');
INSERT INTO `zones` VALUES (191, 204, 'BE', 'Bern');
INSERT INTO `zones` VALUES (192, 204, 'BL', 'Basel-Landschaft');
INSERT INTO `zones` VALUES (193, 204, 'BS', 'Basel-Stadt');
INSERT INTO `zones` VALUES (194, 204, 'FR', 'Freiburg');
INSERT INTO `zones` VALUES (195, 204, 'GE', 'Genf');
INSERT INTO `zones` VALUES (196, 204, 'GL', 'Glarus');
INSERT INTO `zones` VALUES (197, 204, 'JU', 'Graub?nden');
INSERT INTO `zones` VALUES (198, 204, 'JU', 'Jura');
INSERT INTO `zones` VALUES (199, 204, 'LU', 'Luzern');
INSERT INTO `zones` VALUES (200, 204, 'NE', 'Neuenburg');
INSERT INTO `zones` VALUES (201, 204, 'NW', 'Nidwalden');
INSERT INTO `zones` VALUES (202, 204, 'OW', 'Obwalden');
INSERT INTO `zones` VALUES (203, 204, 'SG', 'St. Gallen');
INSERT INTO `zones` VALUES (204, 204, 'SH', 'Schaffhausen');
INSERT INTO `zones` VALUES (205, 204, 'SO', 'Solothurn');
INSERT INTO `zones` VALUES (206, 204, 'SZ', 'Schwyz');
INSERT INTO `zones` VALUES (207, 204, 'TG', 'Thurgau');
INSERT INTO `zones` VALUES (208, 204, 'TI', 'Tessin');
INSERT INTO `zones` VALUES (209, 204, 'UR', 'Uri');
INSERT INTO `zones` VALUES (210, 204, 'VD', 'Waadt');
INSERT INTO `zones` VALUES (211, 204, 'VS', 'Wallis');
INSERT INTO `zones` VALUES (212, 204, 'ZG', 'Zug');
INSERT INTO `zones` VALUES (213, 204, 'ZH', 'Z?rich');
INSERT INTO `zones` VALUES (214, 195, 'A Coru?a', 'A Coru?a');
INSERT INTO `zones` VALUES (215, 195, 'Alava', 'Alava');
INSERT INTO `zones` VALUES (216, 195, 'Albacete', 'Albacete');
INSERT INTO `zones` VALUES (217, 195, 'Alicante', 'Alicante');
INSERT INTO `zones` VALUES (218, 195, 'Almeria', 'Almeria');
INSERT INTO `zones` VALUES (219, 195, 'Asturias', 'Asturias');
INSERT INTO `zones` VALUES (220, 195, 'Avila', 'Avila');
INSERT INTO `zones` VALUES (221, 195, 'Badajoz', 'Badajoz');
INSERT INTO `zones` VALUES (222, 195, 'Baleares', 'Baleares');
INSERT INTO `zones` VALUES (223, 195, 'Barcelona', 'Barcelona');
INSERT INTO `zones` VALUES (224, 195, 'Burgos', 'Burgos');
INSERT INTO `zones` VALUES (225, 195, 'Caceres', 'Caceres');
INSERT INTO `zones` VALUES (226, 195, 'Cadiz', 'Cadiz');
INSERT INTO `zones` VALUES (227, 195, 'Cantabria', 'Cantabria');
INSERT INTO `zones` VALUES (228, 195, 'Castellon', 'Castellon');
INSERT INTO `zones` VALUES (229, 195, 'Ceuta', 'Ceuta');
INSERT INTO `zones` VALUES (230, 195, 'Ciudad Real', 'Ciudad Real');
INSERT INTO `zones` VALUES (231, 195, 'Cordoba', 'Cordoba');
INSERT INTO `zones` VALUES (232, 195, 'Cuenca', 'Cuenca');
INSERT INTO `zones` VALUES (233, 195, 'Girona', 'Girona');
INSERT INTO `zones` VALUES (234, 195, 'Granada', 'Granada');
INSERT INTO `zones` VALUES (235, 195, 'Guadalajara', 'Guadalajara');
INSERT INTO `zones` VALUES (236, 195, 'Guipuzcoa', 'Guipuzcoa');
INSERT INTO `zones` VALUES (237, 195, 'Huelva', 'Huelva');
INSERT INTO `zones` VALUES (238, 195, 'Huesca', 'Huesca');
INSERT INTO `zones` VALUES (239, 195, 'Jaen', 'Jaen');
INSERT INTO `zones` VALUES (240, 195, 'La Rioja', 'La Rioja');
INSERT INTO `zones` VALUES (241, 195, 'Las Palmas', 'Las Palmas');
INSERT INTO `zones` VALUES (242, 195, 'Leon', 'Leon');
INSERT INTO `zones` VALUES (243, 195, 'Lleida', 'Lleida');
INSERT INTO `zones` VALUES (244, 195, 'Lugo', 'Lugo');
INSERT INTO `zones` VALUES (245, 195, 'Madrid', 'Madrid');
INSERT INTO `zones` VALUES (246, 195, 'Malaga', 'Malaga');
INSERT INTO `zones` VALUES (247, 195, 'Melilla', 'Melilla');
INSERT INTO `zones` VALUES (248, 195, 'Murcia', 'Murcia');
INSERT INTO `zones` VALUES (249, 195, 'Navarra', 'Navarra');
INSERT INTO `zones` VALUES (250, 195, 'Ourense', 'Ourense');
INSERT INTO `zones` VALUES (251, 195, 'Palencia', 'Palencia');
INSERT INTO `zones` VALUES (252, 195, 'Pontevedra', 'Pontevedra');
INSERT INTO `zones` VALUES (253, 195, 'Salamanca', 'Salamanca');
INSERT INTO `zones` VALUES (254, 195, 'Santa Cruz de Tenerife', 'Santa Cruz de Tenerife');
INSERT INTO `zones` VALUES (255, 195, 'Segovia', 'Segovia');
INSERT INTO `zones` VALUES (256, 195, 'Sevilla', 'Sevilla');
INSERT INTO `zones` VALUES (257, 195, 'Soria', 'Soria');
INSERT INTO `zones` VALUES (258, 195, 'Tarragona', 'Tarragona');
INSERT INTO `zones` VALUES (259, 195, 'Teruel', 'Teruel');
INSERT INTO `zones` VALUES (260, 195, 'Toledo', 'Toledo');
INSERT INTO `zones` VALUES (261, 195, 'Valencia', 'Valencia');
INSERT INTO `zones` VALUES (262, 195, 'Valladolid', 'Valladolid');
INSERT INTO `zones` VALUES (263, 195, 'Vizcaya', 'Vizcaya');
INSERT INTO `zones` VALUES (264, 195, 'Zamora', 'Zamora');
INSERT INTO `zones` VALUES (265, 195, 'Zaragoza', 'Zaragoza');
INSERT INTO `zones` VALUES (266, 105, 'IT', 'Italy');

-- --------------------------------------------------------

-- 
-- Table structure for table `zones_to_geo_zones`
-- 

DROP TABLE IF EXISTS `zones_to_geo_zones`;
CREATE TABLE `zones_to_geo_zones` (
 `association_id` int(11) NOT NULL auto_increment,
 `zone_country_id` int(11) NOT NULL default '0',
 `zone_id` int(11) default NULL,
 `geo_zone_id` int(11) default NULL,
 `last_modified` datetime default NULL,
 `date_added` datetime NOT NULL default '0000-00-00 00:00:00',
 PRIMARY KEY  (`association_id`)
) TYPE=MyISAM;

-- 
-- Dumping data for table `zones_to_geo_zones`
-- 

INSERT INTO `zones_to_geo_zones` VALUES (6, 223, 62, 4, '2005-09-09 15:54:09', '2005-06-16 07:45:23');
INSERT INTO `zones_to_geo_zones` VALUES (5, 223, NULL, 3, '2005-01-11 17:44:03', '2005-01-11 17:40:32');
INSERT INTO `zones_to_geo_zones` VALUES (7, 223, 46, 4, NULL, '2005-06-16 07:45:42');
INSERT INTO `zones_to_geo_zones` VALUES (8, 223, 47, 4, NULL, '2005-06-16 07:46:06');
INSERT INTO `zones_to_geo_zones` VALUES (9, 223, 48, 4, NULL, '2005-06-16 07:46:17');
INSERT INTO `zones_to_geo_zones` VALUES (10, 223, 49, 4, NULL, '2005-06-16 07:46:29');
INSERT INTO `zones_to_geo_zones` VALUES (11, 223, 50, 4, NULL, '2005-06-16 07:46:40');
INSERT INTO `zones_to_geo_zones` VALUES (12, 223, 51, 4, NULL, '2005-06-16 07:46:54');
INSERT INTO `zones_to_geo_zones` VALUES (13, 223, 53, 4, NULL, '2005-06-16 07:47:10');
INSERT INTO `zones_to_geo_zones` VALUES (14, 223, 54, 4, NULL, '2005-06-16 07:47:27');
INSERT INTO `zones_to_geo_zones` VALUES (15, 223, 55, 4, NULL, '2005-06-16 07:47:39');
INSERT INTO `zones_to_geo_zones` VALUES (16, 223, 57, 4, NULL, '2005-06-16 07:48:03');
INSERT INTO `zones_to_geo_zones` VALUES (17, 223, 58, 4, NULL, '2005-06-16 07:48:24');
INSERT INTO `zones_to_geo_zones` VALUES (18, 223, 59, 4, NULL, '2005-06-16 07:48:49');
INSERT INTO `zones_to_geo_zones` VALUES (102, 223, 61, 7, NULL, '2005-08-05 13:48:12');
INSERT INTO `zones_to_geo_zones` VALUES (20, 223, 67, 4, NULL, '2005-06-16 07:49:32');
INSERT INTO `zones_to_geo_zones` VALUES (21, 223, 68, 4, NULL, '2005-06-16 07:51:00');
INSERT INTO `zones_to_geo_zones` VALUES (22, 223, 70, 4, NULL, '2005-06-16 07:51:23');
INSERT INTO `zones_to_geo_zones` VALUES (23, 223, 74, 4, NULL, '2005-06-16 07:52:05');
INSERT INTO `zones_to_geo_zones` VALUES (24, 223, 75, 4, NULL, '2005-06-16 07:52:24');
INSERT INTO `zones_to_geo_zones` VALUES (25, 223, 76, 4, NULL, '2005-06-16 07:52:40');
INSERT INTO `zones_to_geo_zones` VALUES (26, 223, 78, 4, NULL, '2005-06-16 07:52:57');
INSERT INTO `zones_to_geo_zones` VALUES (27, 223, 79, 4, NULL, '2005-06-16 07:53:10');
INSERT INTO `zones_to_geo_zones` VALUES (28, 223, 81, 4, NULL, '2005-06-16 07:53:29');
INSERT INTO `zones_to_geo_zones` VALUES (108, 223, 62, 8, NULL, '2005-09-09 16:09:47');
INSERT INTO `zones_to_geo_zones` VALUES (30, 223, 91, 4, NULL, '2005-06-16 07:54:06');
INSERT INTO `zones_to_geo_zones` VALUES (31, 223, 92, 4, '2005-06-16 07:54:38', '2005-06-16 07:54:19');
INSERT INTO `zones_to_geo_zones` VALUES (32, 223, 93, 4, NULL, '2005-06-16 07:54:54');
INSERT INTO `zones_to_geo_zones` VALUES (33, 223, 94, 4, NULL, '2005-06-16 07:55:06');
INSERT INTO `zones_to_geo_zones` VALUES (34, 223, 95, 4, NULL, '2005-06-16 07:55:31');
INSERT INTO `zones_to_geo_zones` VALUES (35, 223, 98, 4, NULL, '2005-06-16 07:55:49');
INSERT INTO `zones_to_geo_zones` VALUES (36, 223, 100, 4, NULL, '2005-06-16 07:56:11');
INSERT INTO `zones_to_geo_zones` VALUES (37, 223, 104, 4, NULL, '2005-06-16 07:56:34');
INSERT INTO `zones_to_geo_zones` VALUES (38, 223, 105, 4, NULL, '2005-06-16 07:56:50');
INSERT INTO `zones_to_geo_zones` VALUES (39, 223, 106, 4, NULL, '2005-06-16 07:57:05');
INSERT INTO `zones_to_geo_zones` VALUES (40, 223, 107, 4, NULL, '2005-06-16 07:57:23');
INSERT INTO `zones_to_geo_zones` VALUES (41, 223, 108, 4, NULL, '2005-06-16 07:57:42');
INSERT INTO `zones_to_geo_zones` VALUES (42, 223, 109, 4, NULL, '2005-06-16 07:57:58');
INSERT INTO `zones_to_geo_zones` VALUES (43, 223, 110, 4, NULL, '2005-06-16 07:58:29');
INSERT INTO `zones_to_geo_zones` VALUES (44, 223, 113, 4, NULL, '2005-06-16 07:58:51');
INSERT INTO `zones_to_geo_zones` VALUES (45, 223, 114, 4, NULL, '2005-06-16 07:59:16');
INSERT INTO `zones_to_geo_zones` VALUES (46, 223, 115, 4, NULL, '2005-06-16 07:59:27');
INSERT INTO `zones_to_geo_zones` VALUES (47, 223, 116, 4, NULL, '2005-06-16 07:59:51');
INSERT INTO `zones_to_geo_zones` VALUES (48, 223, 120, 4, NULL, '2005-06-16 08:00:12');
INSERT INTO `zones_to_geo_zones` VALUES (49, 223, 126, 4, NULL, '2005-06-16 08:00:40');
INSERT INTO `zones_to_geo_zones` VALUES (50, 223, 127, 4, NULL, '2005-06-16 08:00:54');
INSERT INTO `zones_to_geo_zones` VALUES (51, 223, 44, 5, NULL, '2005-06-16 08:03:07');
INSERT INTO `zones_to_geo_zones` VALUES (52, 223, 45, 6, NULL, '2005-06-16 08:08:33');
INSERT INTO `zones_to_geo_zones` VALUES (53, 223, 72, 6, NULL, '2005-06-16 08:09:13');
INSERT INTO `zones_to_geo_zones` VALUES (54, 223, 77, 6, NULL, '2005-06-16 08:24:30');
INSERT INTO `zones_to_geo_zones` VALUES (55, 223, 97, 6, NULL, '2005-06-16 08:24:49');
INSERT INTO `zones_to_geo_zones` VALUES (56, 223, 99, 6, NULL, '2005-06-16 08:25:17');
INSERT INTO `zones_to_geo_zones` VALUES (57, 223, 122, 6, NULL, '2005-06-16 08:25:48');
INSERT INTO `zones_to_geo_zones` VALUES (58, 223, 123, 6, NULL, '2005-06-16 08:26:06');
INSERT INTO `zones_to_geo_zones` VALUES (59, 223, 125, 6, NULL, '2005-06-16 08:26:16');
INSERT INTO `zones_to_geo_zones` VALUES (111, 223, 43, 4, NULL, '2005-09-09 16:16:47');
INSERT INTO `zones_to_geo_zones` VALUES (110, 223, 52, 7, NULL, '2005-09-09 16:13:35');
INSERT INTO `zones_to_geo_zones` VALUES (106, 223, 112, 14, NULL, '2005-09-09 16:08:30');
INSERT INTO `zones_to_geo_zones` VALUES (63, 223, 71, 8, NULL, '2005-06-16 08:32:18');
INSERT INTO `zones_to_geo_zones` VALUES (64, 223, 73, 8, NULL, '2005-06-16 08:32:37');
INSERT INTO `zones_to_geo_zones` VALUES (65, 223, 60, 9, NULL, '2005-06-16 08:34:29');
INSERT INTO `zones_to_geo_zones` VALUES (66, 223, 90, 9, NULL, '2005-06-16 08:34:57');
INSERT INTO `zones_to_geo_zones` VALUES (67, 223, 63, 10, NULL, '2005-06-16 08:36:34');
INSERT INTO `zones_to_geo_zones` VALUES (68, 223, 64, 10, NULL, '2005-06-16 08:36:48');
INSERT INTO `zones_to_geo_zones` VALUES (69, 223, 65, 10, NULL, '2005-06-16 08:37:03');
INSERT INTO `zones_to_geo_zones` VALUES (70, 223, 66, 10, NULL, '2005-06-16 08:37:13');
INSERT INTO `zones_to_geo_zones` VALUES (71, 223, 69, 10, NULL, '2005-06-16 08:37:28');
INSERT INTO `zones_to_geo_zones` VALUES (72, 223, 87, 10, NULL, '2005-06-16 08:37:48');
INSERT INTO `zones_to_geo_zones` VALUES (73, 223, 88, 10, NULL, '2005-06-16 08:38:02');
INSERT INTO `zones_to_geo_zones` VALUES (74, 223, 89, 10, NULL, '2005-06-16 08:38:14');
INSERT INTO `zones_to_geo_zones` VALUES (75, 223, 101, 10, NULL, '2005-06-16 08:38:35');
INSERT INTO `zones_to_geo_zones` VALUES (76, 223, 102, 10, NULL, '2005-06-16 08:38:51');
INSERT INTO `zones_to_geo_zones` VALUES (77, 223, 103, 10, NULL, '2005-06-16 08:39:10');
INSERT INTO `zones_to_geo_zones` VALUES (78, 223, 117, 10, NULL, '2005-06-16 08:39:32');
INSERT INTO `zones_to_geo_zones` VALUES (79, 223, 118, 10, NULL, '2005-06-16 08:39:45');
INSERT INTO `zones_to_geo_zones` VALUES (80, 223, 119, 10, NULL, '2005-06-16 08:40:04');
INSERT INTO `zones_to_geo_zones` VALUES (81, 223, 80, 11, NULL, '2005-06-16 08:41:50');
INSERT INTO `zones_to_geo_zones` VALUES (82, 223, 111, 11, NULL, '2005-06-16 08:42:14');
INSERT INTO `zones_to_geo_zones` VALUES (83, 223, 82, 12, NULL, '2005-06-16 08:44:04');
INSERT INTO `zones_to_geo_zones` VALUES (84, 223, 83, 12, NULL, '2005-06-16 08:44:19');
INSERT INTO `zones_to_geo_zones` VALUES (85, 223, 84, 12, NULL, '2005-06-16 08:44:33');
INSERT INTO `zones_to_geo_zones` VALUES (86, 223, 85, 12, NULL, '2005-06-16 08:44:51');
INSERT INTO `zones_to_geo_zones` VALUES (109, 223, 96, 15, NULL, '2005-09-09 16:11:25');
INSERT INTO `zones_to_geo_zones` VALUES (88, 223, 121, 13, NULL, '2005-06-16 08:46:54');
INSERT INTO `zones_to_geo_zones` VALUES (107, 223, 56, 8, NULL, '2005-09-09 16:09:26');
INSERT INTO `zones_to_geo_zones` VALUES (90, 223, 124, 15, NULL, '2005-06-16 08:51:09');
INSERT INTO `zones_to_geo_zones` VALUES (91, 223, 87, 16, NULL, '2005-06-16 17:53:38');
INSERT INTO `zones_to_geo_zones` VALUES (92, 223, 88, 16, NULL, '2005-06-16 17:53:55');
INSERT INTO `zones_to_geo_zones` VALUES (93, 223, 89, 16, NULL, '2005-06-16 17:54:08');
INSERT INTO `zones_to_geo_zones` VALUES (94, 223, 78, 16, NULL, '2005-06-16 17:55:25');
INSERT INTO `zones_to_geo_zones` VALUES (95, 223, 120, 16, NULL, '2005-06-16 17:55:37');
INSERT INTO `zones_to_geo_zones` VALUES (96, 223, 74, 16, NULL, '2005-06-16 17:55:54');
INSERT INTO `zones_to_geo_zones` VALUES (97, 223, 107, 16, NULL, '2005-06-16 17:56:09');
INSERT INTO `zones_to_geo_zones` VALUES (98, 223, 127, 16, NULL, '2005-06-16 17:56:44');
INSERT INTO `zones_to_geo_zones` VALUES (99, 223, 108, 16, NULL, '2005-06-16 17:57:00');
INSERT INTO `zones_to_geo_zones` VALUES (100, 223, 109, 16, NULL, '2005-06-16 17:57:13');
INSERT INTO `zones_to_geo_zones` VALUES (101, 223, 110, 16, NULL, '2005-06-16 17:57:36');
INSERT INTO `zones_to_geo_zones` VALUES (112, 223, 86, 4, NULL, '2005-09-09 16:42:57');

this sets up the new york state as having 85 entries as found in this publication if that link breaks, try here: http://www.nystax.gov/pubs_and_bulls/publi.../sales_pubs.htm and find the PUB-718 get the most recent one to find your current tax rates. the pdf i linked to has the rates as of SEPTEMBER 1st, 2005. and the sql i posted is updated to hold those rates. ny changes tax rates often, and you must update your zones as needed. that should get you set up however at least until january or feb.

 

there are two zones in there that i use for my store. you can delete them from your store admin after you load them.

1- usa check zone.

2- store pickup zone

 

all they really do is allow anyone with a usa address to see the option to pay by check and if anyone in ny state is in any zone i deemed close enough, they may drive on out to pick up an order and save shipping. remember in ny you must tax the shipping on taxable items.

 

backup. run this sql. open your store admin and check it out. good luck.

Posted

ArtRat, first thank you very much for the sql and tutorial for ny state tax, you saved me a lot of time.

 

how did you solve the problem of calculating tax on shipping?

 

since i am very new to commerce i have one question that may be silly, but we charge sale tax only to clients that are from new york where we operate from, right?

Posted
ArtRat, first thank you very much for the sql and tutorial for ny state tax, you saved me a lot of time.

 

how did you solve the problem of calculating tax on shipping?

 

since i am very new to commerce i have one question that may be silly, but we charge sale tax only to clients that are from new york where we operate from, right?

 

 

 

According to the department of taxation you charge tax in the tax zone THEY are in unless they buy in your store physically located in your county.

Posted

backup. run this sql. open your store admin and check it out. good luck.

 

 

 

 

ArtRat,

 

Thank you so very very much. This was wonderful. Backed up the info, ran the sql and it worked perfectly. The only thing I had to do was add my NJ tax back in but that wasn't the end of my world. You are a life saver.

 

I hadn't heard that you needed to charge tax on shipping also. Is that only NY?? I know NJ doesn't do that. How do I set it to charge NY tax on shipping?

 

Thanks for all your help.

Posted

kamurj: tax on shipping is a setting in each shipping module you load.

since i am very new to commerce i have one question that may be silly, but we charge sale tax only to clients that are from new york where we operate from, right?
you really should find out all your business tax rules from your state tax people, your tax lawyer, or some qualified mountain guru.

 

tax on shipping faq

Question

  Is shipping and handling subject to New York State sales tax?

 

Answer

  If you charge your customer for shipping or delivery on the sale

of tangible personal property or tangible personal property on which a

taxable service has been performed, the amount on which the sales

tax is to be computed includes your charges for shipping or delivery.

However, if the customer arranges delivery by a third person and pays

this person directly, the third person?s delivery charge is not taxable.

See TSB-M-92(2)S, Delivery Charge Added to Taxable Receipt

Effective September 1, 1991 for more information.

 

 

 

TSB-M-92 (2)S

Sales Tax

January 13, 1992

New York State Department of Taxation and Finance

Taxpayer Services Division

Technical Services Bureau

DELIVERY CHARGE ADDED TO TAXABLE

RECEIPT EFFECTIVE SEPTEMBER 1, 1991

The sales tax law had provided, that when determining the amount of sales tax to collect on a taxable

receipt, charges included on such receipt that represent the seller's cost of transporting the purchase

to the retail purchaser (if such transportation charge was separately stated on the bill rendered to the

purchaser), could be excluded from the taxable receipt.

As a result of an amendment to the sales tax law, effective September 1, 1991, shipping or delivery

charges billed by the vendor (which had been previously excluded from taxation as the cost of

transportation, if separately stated) are part of the taxable receipt subject to sales tax, regardless of

whether such charges are separately stated or whether the shipping or delivery is provided by the

vendor or a third party.

Billings for Taxable Sales

When a customer pays the vendor for a taxable product or service and for its delivery, any charge

for the cost of delivery that the vendor includes on the bill, invoice or other memorandum of sale

given to the customer, becomes part of the receipt subject to sales tax.

Accordingly, when billing for taxable sales that are delivered within New York State (whether such

shipment originates from inside or outside this state) on or after September 1, 1991, sales tax must

be computed on the sum of all the component charges that comprise the taxable receipt including

any charge for transportation, delivery, shipping, postage, freight, handling or similar charges. It is

the vendor's responsibility to collect the tax on such charges regardless of whether the vendor ships

the property by means of its own employees, a contract carrier, common carrier, the mail, or any

other delivery service.

Example (1) A customer purchases a kitchen appliance (including service contract) from a major

department store chain that has its own delivery vehicles. The department store

delivers the appliance to the customer's home and charges $20.00 for its delivery.

Thestore issues the following bill to the customer:

Appliance $499.95

Service contract 30.00

Delivery charge 20.00

Total (before tax) $549.95

Sales tax must be computed on the total receipt of $549.95.

that was taken directly from the website i posted earlier. it holds the key to all your nys tax delemas.

 

aclema

I hadn't heard that you needed to charge tax on shipping also. Is that only NY?? I know NJ doesn't do that. How do I set it to charge NY tax on shipping?
again, if you are doing business in more than one state you better go find the rules for each state you are businessing in and learn their regulations.

charging shipping tax to ny customers and not nj ones...that is a scenario i do not use. maybe you can set up a zone for that through the admin panel. experiment with two test customers, one from each state and make test orders to check how it calculates taxes.

read PUB-32 from your friendly nys tax people about making sales with nj/ny as buddies. take it from there.

Posted

ArtRat/Michael -

 

Thank you, that was a very generous post and you have saved me a lot of time and effort. Now I just need to tweak the code to calculate tax on the shipping ;-)

 

RS

Posted
ArtRat/Michael -

 

Thank you, that was a very generous post and you have saved me a lot of time and effort.  Now I just need to tweak the code to calculate tax on the shipping ;-)

 

RS

goto your store admin

 

click modules

click shipping

 

pretend you have ups as one of your shipping modules.

highlight it (select it) then choose the edit button.

scroll down to tax class.

select the tax class (taxable or whatever tax class you need or have used)

click update.

 

now this shipping module will be taxed.

 

rinse. repeat.

Posted

I was wondering if tax zones could be set up for cities as well? In Oklahoma we have to charge for county and city as well as state.

 

 

Thanks, Kevin

Posted
I was wondering if tax zones could be set up for cities as well? In Oklahoma we have to charge for county and city as well as state.

Thanks, Kevin

why not? all you need to do is add them to the database, then create the zones and rates for them.

 

ny has a state rate 4% (today), then theres county tax, and a few of those have a metropolitan commuter transportation district tax added on them.

originally i had added those to my ny tax zones as separate zones but it looked weird in the cart.

example order total looked like this:

 

items: $45.00

State tax 4% + County tax 3% + MCTD tax 3/8%: $3.32

 

 

I combined those rates into one zone and added whatever areas fit into that rate.

Better:

 

items: $45.00

NY Sales Tax 7 3/8%: $3.32

  • 2 years later...
Posted

For those of you who used the New York method for specifying tax

subzones within states! I tried this with Louisiana and got mixed

results. Yes it is possible to specify any state in the USA, and

within Louisiana to specify the subzone, but there are so many

due to the parishes being subdivided by city, school

districts, economic districts, drainage districts, etc

that it makes an awkward list. The user sees all the states

normally down to Louisiana, then a huge number of Louisiana sub-

zones, then all the rest of the states below that.

So I made a few code changes to the catalog software

to make Louisiana a two-step process, and the subzones within

Louisiana are never seen by anyone except people trying

to enter Louisiana addresses.

 

A difference between the New York method and the Louisiana

method detailed here is that there is a "master" zone for the

state of Louisiana, which allows it to appear in the state list

as in a normal store. But if the user selects a state for which

there other zones sharing the same two-letter state code and

which can be identified as subzones by their parentheses, then

the software prompts the user to choose a region within the state.

 

Here are the zone entries you will need:

 

...

Kansas KS United States

Kentucky KY United States

Louisiana LA United States

La (Bossier City & Shrevept) LA United States

La (Cameron) LA United States

...

 

If anyone wants to compare notes on the subzones I identified,

send me a message and I'll send you the list.

 

Here are the code changes:

 

cil/english.php

 

about line 208 find

 

define('ENTRY_STATE_ERROR_SELECT', 'Please select a state from the States pull down menu.');

 

 

replace with

 

define('ENTRY_STATE_ERROR_SELECT', 'Please select a state from the States pull down menu.');

define('ENTRY_STATE_SUBZONE_SELECT', 'Please specify region in the States pull down menu.');

 

In the four places:

c/create_account.php about line 170, [with create_account left as shown below],

c/address_book_process.php about line 116 [with create_account changed to addressbook],

c/checkout_payment_address.php about line 102 [with create_account changed to checkout_address],

c/checkout_shipping_address.php about line 116 [with create_account changed to checkout_address],

find

 

if ($entry_state_has_zones == true) {

$zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name like '" . tep_db_input($state) . "%' or zone_code like '%" . tep_db_input($state) . "%')");

if (tep_db_num_rows($zone_query) == 1) {

$zone = tep_db_fetch_array($zone_query);

$zone_id = $zone['zone_id'];

} else {

$error = true;

 

$messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);

}

} else {

 

replace with

 

if ($entry_state_has_zones == true) {

if (strpos(tep_db_input($state), '(')) // customer specified state with subzone?

{

$zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and (zone_name like '" . tep_db_input($state) . "%' or zone_code like '%" . tep_db_input($state) . "%')"); // use list with subzones

if (tep_db_num_rows($zone_query) == 1)

{

$zone = tep_db_fetch_array($zone_query);

$zone_id = $zone['zone_id']; // success case for state w/ subzone

} // end if successfully specified one subzone

else //zone query did not find exactly one subzone

{

$error = true; // prompt to select state

$messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);

} // end else (zone query did not find exactly one subzone)

} // end if customer specified state with subzone

else

{ // customer trying to specify state only

$zone_query = tep_db_query("select distinct zone_id, zone_code from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and LOCATE('(', zone_name) < 1 and (zone_name like '" . tep_db_input($state) . "%' or zone_code like '%" . tep_db_input($state) . "%')"); // exclude subzones

if (tep_db_num_rows($zone_query) == 1)

{ //shopper successfully specified one state

$zone = tep_db_fetch_array($zone_query);

$subzone_state_code = $zone['zone_code']; // subzones for specified state?

$zone_query = tep_db_query("select distinct zone_id from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and LOCATE('(', zone_name) > 0 and zone_code like '%" . $subzone_state_code . "%'"); // use matching subzones

if (tep_db_num_rows($zone_query) > 0) // unique state with subzones?

{

$error = true; // prompt user to specify region

$messageStack->add('create_account', ENTRY_STATE_SUBZONE_SELECT);

}// end if unique state with subzones

else // unique state having no subzones

{ // do NOT load zone again, keep the ID from the previous query!

$zone_id = $zone['zone_id']; // success case for state w/o subzones

}

} // end if successfully specified one state

else //zone query did not find exactly one state

{

$error = true; // prompt to select state

$messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);

} // end else (zone query did not find exactly one state)

} // end else (customer did not specify subzone)

} else {

 

In the three places:

c/create_account.php about line 481,

cim/address_book_details.php about line 110,

cim/checkout_new_address.php about line 83,

find

 

$zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' order by zone_name");

 

replace with

 

if (isset($subzone_state_code) && $error) // show subzones for correctly entered state?

$zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and LOCATE('(', zone_name) > 0 and zone_code = '" . $subzone_state_code . "'order by zone_name");

else // show states

$zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' and LOCATE('(', zone_name) < 1 order by zone_name");

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...