Do we have any out of the box pipeline component for calculating tax in commerce server 2007?Is it recommended to have a custom table in the commerce server transaction related databases to store tax information?
Related Questions in MICROSOFT-COMMERCE-SERVER
- Push mysql database script to server using git
- Git show's file path
- Git > diffs filtered, show only certain changed classes/files
- Pushing to git repository hosted by Visual studio online without entering user name and password
- How do I create my own Git branch to work on?
- Git init --bare giving error fatal: Out of memory? mmap failed: No such device
- Sub-directory into independent repository and later merge back into main repository
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- eclipse errors when try to change to master git branch
- How to have Heroku build my development branch on a staging server?
Related Questions in COMMERCESERVER2007
- Push mysql database script to server using git
- Git show's file path
- Git > diffs filtered, show only certain changed classes/files
- Pushing to git repository hosted by Visual studio online without entering user name and password
- How do I create my own Git branch to work on?
- Git init --bare giving error fatal: Out of memory? mmap failed: No such device
- Sub-directory into independent repository and later merge back into main repository
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- eclipse errors when try to change to master git branch
- How to have Heroku build my development branch on a staging server?
Related Questions in COMMERCESERVER
- Push mysql database script to server using git
- Git show's file path
- Git > diffs filtered, show only certain changed classes/files
- Pushing to git repository hosted by Visual studio online without entering user name and password
- How do I create my own Git branch to work on?
- Git init --bare giving error fatal: Out of memory? mmap failed: No such device
- Sub-directory into independent repository and later merge back into main repository
- How to find the Git Revision Hash in a synced SVN repo using SubGit?
- eclipse errors when try to change to master git branch
- How to have Heroku build my development branch on a staging server?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Whether or not you store tax in the _transactionconfig database is up to you. It depends on the level of sophistication of your tax rules/laws for the nexuses you do business in. If you have to deal with global concerns where the variables that go into calculating tax are constantly changing, then I would recommend using a tax calculation service from a merchant provider, Verisign, FirstDataCorporation and many other providers have web services API that you can access to handle these calculations for you if you setup a paid merchant account. For simple tax calculations, you might even just consider storing that in your app.config or web.config files if its just a flat percentage that rarely changes.
In response to whether or not there are out of the box pipeline component for calculating tax, the answer is no. Commerce Server 2007 only ships with two pipeline components related to tax. If you open up the total.pcf file that can be found in the pipelines folder of your commerce server site, you will notice a stage called tax. You will see a DefaultTaxCy component and a RequiredTaxCy component.
The DefaultTaxCy component initializes the _cy_tax_total (a decimal value representing the total amount of tax on the current orderform) to zero and sets the _cy_tax_included (a boolean value representing whether or not tax is included on the orderform) to false.
The RequiredTaxCy component simply reads the _cy_Tax_total value an dthe _cy_tax_included value and writes errors to the _PurchaseErrors dictionary if an error is encountered.
What you will want to do is create a custom pipeline component to replace the DefaultTaxCy component and set the value of the _cy_tax_total property on the orderform. Instructions can be found on MSDN here http://msdn.microsoft.com/en-US/library/ms916284(v=cs.70).aspx
Here is a simple example of only the Execute method of a custom pipeline component iterating over each lineitem in the order and then incrementing the tax total on the orderform based on a hypothetical method I called "CalculateTaxForLineItem that takes a LineItem dictionary as an argument and then would allow you to calculate that tax using your own custom business logic.