public class SimpleTaxProvider extends Object implements TaxProvider
Simple factor-based tax module that can be configured by adding rates for specific postalCodes, city, state, or country.
Through configuration, this module can be used to set a specific tax rate for items and shipping for a given postal code, city, state, or country.
Utilizes the fulfillment group's address to determine the tax location.
Useful for those with very simple tax needs that want to configure rates programmatically.
| Modifier and Type | Field and Description |
|---|---|
protected Double |
defaultFulfillmentGroupTaxRate |
protected Double |
defaultItemTaxRate |
protected EntityConfiguration |
entityConfig |
protected Map<String,Double> |
fulfillmentGroupCityTaxRateMap |
protected Map<String,Double> |
fulfillmentGroupCountryTaxRateMap |
protected Map<String,Double> |
fulfillmentGroupPostalCodeTaxRateMap |
protected Map<String,Double> |
fulfillmentGroupStateTaxRateMap |
protected Map<String,Double> |
itemCityTaxRateMap |
protected Map<String,Double> |
itemCountryTaxRateMap |
protected Map<String,Double> |
itemPostalCodeTaxRateMap |
protected Map<String,Double> |
itemStateTaxRateMap |
protected boolean |
taxFees |
| Constructor and Description |
|---|
SimpleTaxProvider() |
| Modifier and Type | Method and Description |
|---|---|
Order |
calculateTaxForOrder(Order order,
ModuleConfiguration config)
Calculates taxes on an entire order.
|
void |
cancelTax(Order order,
ModuleConfiguration config)
Some tax providers store tax details from an order on an external system for reporting and tax reconcilliation.
|
boolean |
canRespond(ModuleConfiguration config) |
Order |
commitTaxForOrder(Order order,
ModuleConfiguration config)
This method provides the implementation an opportunity to finalize taxes on the order.
|
BigDecimal |
determineItemTaxRate(Address address)
Uses the passed in address to determine if the item is taxable.
|
BigDecimal |
determineTaxRateForFulfillmentGroup(FulfillmentGroup fulfillmentGroup)
Uses the passed in address to determine if the item is taxable.
|
Double |
getDefaultFulfillmentGroupTaxRate() |
Double |
getDefaultItemTaxRate() |
Map<String,Double> |
getFulfillmentGroupCityTaxRateMap() |
Map<String,Double> |
getFulfillmentGroupCountryTaxRateMap() |
Map<String,Double> |
getFulfillmentGroupPostalCodeTaxRateMap() |
Map<String,Double> |
getFulfillmentGroupStateTaxRateMap() |
Map<String,Double> |
getItemCityTaxRateMap() |
Map<String,Double> |
getItemCountryTaxRateMap() |
Map<String,Double> |
getItemPostalCodeTaxRateMap() |
Map<String,Double> |
getItemStateTaxRateMap() |
protected boolean |
isFeeTaxable(FulfillmentGroupFee fee) |
protected boolean |
isItemTaxable(FulfillmentGroupItem item) |
Double |
lookupCityRate(Map<String,Double> cityTaxRateMap,
String city)
Changes the city to upper case before checking the
configuration.
|
Double |
lookupCountryRate(Map<String,Double> countryTaxRateMap,
Country country)
Returns the taxAmount for the passed in country or
null if no match is found.
|
Double |
lookupPostalCodeRate(Map<String,Double> postalCodeTaxRateMap,
String postalCode)
Returns the taxAmount for the passed in postal code or
null if no match is found.
|
Double |
lookupStateRate(Map<String,Double> stateTaxRateMap,
State state)
Returns the taxAmount for the passed in state or
null if no match is found.
|
void |
setDefaultFulfillmentGroupTaxRate(Double defaultFulfillmentGroupTaxRate) |
void |
setDefaultItemTaxRate(Double defaultItemTaxRate) |
void |
setFulfillmentGroupCityTaxRateMap(Map<String,Double> fulfillmentGroupCityTaxRateMap) |
void |
setFulfillmentGroupCountryTaxRateMap(Map<String,Double> fulfillmentGroupCountryTaxRateMap) |
void |
setFulfillmentGroupPostalCodeTaxRateMap(Map<String,Double> fulfillmentGroupPostalCodeTaxRateMap) |
void |
setFulfillmentGroupStateTaxRateMap(Map<String,Double> fulfillmentGroupStateTaxRateMap) |
void |
setItemCityTaxRateMap(Map<String,Double> itemCityTaxRateMap) |
void |
setItemCountryTaxRateMap(Map<String,Double> itemCountryTaxRateMap) |
void |
setItemPostalCodeTaxRateMap(Map<String,Double> itemPostalCodeTaxRateMap) |
void |
setItemStateTaxRateMap(Map<String,Double> itemStateTaxRateMap) |
protected Map<String,Double> fulfillmentGroupPostalCodeTaxRateMap
protected Double defaultItemTaxRate
protected Double defaultFulfillmentGroupTaxRate
protected boolean taxFees
protected EntityConfiguration entityConfig
public boolean canRespond(ModuleConfiguration config)
canRespond in interface ModuleProviderpublic Order calculateTaxForOrder(Order order, ModuleConfiguration config) throws TaxException
TaxProvidercalculateTaxForOrder in interface TaxProviderTaxExceptionpublic Order commitTaxForOrder(Order order, ModuleConfiguration config) throws TaxException
TaxProvidercommitTaxForOrder in interface TaxProviderTaxExceptionpublic void cancelTax(Order order, ModuleConfiguration config) throws TaxException
TaxProvidercancelTax in interface TaxProviderTaxExceptionpublic Double lookupPostalCodeRate(Map<String,Double> postalCodeTaxRateMap, String postalCode)
postalCode - public Double lookupCityRate(Map<String,Double> cityTaxRateMap, String city)
cityTaxRateMap, - citypublic Double lookupStateRate(Map<String,Double> stateTaxRateMap, State state)
stateTaxRateMap, - statepublic Double lookupCountryRate(Map<String,Double> countryTaxRateMap, Country country)
countryTaxRateMap, - stateprotected boolean isItemTaxable(FulfillmentGroupItem item)
protected boolean isFeeTaxable(FulfillmentGroupFee fee)
public BigDecimal determineItemTaxRate(Address address)
address - public BigDecimal determineTaxRateForFulfillmentGroup(FulfillmentGroup fulfillmentGroup)
fulfillmentGroup - public void setItemPostalCodeTaxRateMap(Map<String,Double> itemPostalCodeTaxRateMap)
public void setItemCountryTaxRateMap(Map<String,Double> itemCountryTaxRateMap)
public Map<String,Double> getFulfillmentGroupPostalCodeTaxRateMap()
public void setFulfillmentGroupPostalCodeTaxRateMap(Map<String,Double> fulfillmentGroupPostalCodeTaxRateMap)
public void setFulfillmentGroupCityTaxRateMap(Map<String,Double> fulfillmentGroupCityTaxRateMap)
public void setFulfillmentGroupStateTaxRateMap(Map<String,Double> fulfillmentGroupStateTaxRateMap)
public Map<String,Double> getFulfillmentGroupCountryTaxRateMap()
public void setFulfillmentGroupCountryTaxRateMap(Map<String,Double> fulfillmentGroupCountryTaxRateMap)
public Double getDefaultItemTaxRate()
public void setDefaultItemTaxRate(Double defaultItemTaxRate)
public Double getDefaultFulfillmentGroupTaxRate()
public void setDefaultFulfillmentGroupTaxRate(Double defaultFulfillmentGroupTaxRate)
Copyright © 2014. All Rights Reserved.