Master - store checkout, Tax Identification and Exemption display


#1

During checkout, it’s impossible to disable the “Tax Identification and Exemption” option that occurs on the “Where shall we ship it?” screen.

After some research in the code, this screen should respect the “Show Tax Is Exempt” (Y|N) in the store config option under the “Tax” dropdown. If this is set to either (Y|N), this still shows up. I traced most of the problem to the following file:

applications/shop/webapp/shop/order/customertaxinfo.ftl

In the existing code, it appears that the if statement (i.e. is “Show Tax Is Exempt” = “Y”) is in the wrong place.

<#if (productStore.showTaxIsExempt!"Y") == "Y">
<@field type="select" label=uiLabelMap.PartyTaxAddInfo name="taxAuthPartyGeoIds">
  <option></option>
....

The above shows where the if statement should be. So, that is HALF of the issue.

With the above code tweak, the shop checkout now properly looks at the shop config/Tax option ( “Show Tax Is Exempt” Y|N ) and now the DropDowns associated with tax exempt status no longer appear, but there is still a minor issue.

If seems that even with disabling this store option, the text “Tax Identification and Exemption” still appears on the checkout screen (all by itself)… In “view source”, it appears as:

 <div class="large-2 columns">        <label><strong>Tax Identification and Exemption</strong></label>

Perhaps the above label should be incorporated into the customertaxinfo.ftl file, but only if the config/Tax/Show Tax Is Exempt=Y?

One thing that this FTL does do is set the following:

<!-- Begin Template component://shop/webapp/shop/order/customertaxinfo.ftl -->
    <input type="hidden" name="isExempt" value="N"/>

Which is probably important later.

I traced this annoying leftover text to the PartyTaxIdentification variable in the following file:

applications/shop/webapp/shop/order/checkoutshippingaddress.ft

    <#-- TODO: Uncomment this once template OK
<#if userIsBusiness>-->
<#if true>
<#-- Party Tax Info -->
<@section>
<@row>
  <@cell columns=2>
    <label><strong>${uiLabelMap.PartyTaxIdentification}</strong></label>
  </@cell>
  <@cell columns=6 last=true>
    <@section>
    <#-- SCIPIO: NOTE: Can simply use or omit default-compact to change the look -->
    <@fields type="default-compact">
    <@render resource="component://shop/widget/OrderScreens.xml#customertaxinfo" />
    </@fields>
    </@section>
  </@cell>
</@row>
</@section>

Maybe another “if” statement? Like:

<#if (productStore.showTaxIsExempt!"Y") == "Y">

Not sure.

Thanks


#2

Hi MIke,

Let’s see what others think but in my opinion it isn’t a bug. From my understanding one thing is the party identification and another thing is the exemption flag. The Show Tax Is Exempt store flag is meant to show/hide just the exemption checkbox. Makes sense?


#3

That doesn’t mean that you could comment out that section or introduce a new store flag so you can show/hide party identification (and exemption, of course).


#4

I am not sure I understand the usecase.

Can we clarify which field we are talking about? I took a screenshot for us… is it A or B ?

TaxExempt


#5

Thanks Paul. Yes, it’s both A and B. In my case, A pulls up a list of 800 tax authorities, which I was trying to avoid. I was just trying to disable the whole drop down and the “is except” box.


#6

I tend to agree with you that wrapping both the partyTaxId and isExempt option in the if-loop you outlined.

Generally speaking, I am also inclined to say that the isExempt check is not entirely necessary anymore, either, because companies probably wouldn’t enter the partyTaxId unless they are exempt (and therefore benefit from it). I used to think that isExempt would be required for cases where companies only purchase and sell taxExempt products, but in those cases they wouldn’t be able to register for a taxId anyway, so the checkbox seems rather superfluous now.

So my idea here is to check whether we can remove the isExempt checkbox entirely and then adjust the if-loop for purely B2C driven stores like you are suggesting. I will need to check internally with @rentonize and @mgk to see what their opinion is on this, but apart from that, I am leaning towards what you are suggesting.