Articles in this section

Manage Walmart sales tax for states with Marketplace tax facilitator

Walmart decided to take over 100% of sales tax responsibility (including filing and remittance) for the states of WA, MN, CT, IA, OK, PA, SD, NJ, AL, DC, NE, SC, NY, ID, AR, IN, KY, NM, ND, RI, VA, VT, WV, WY, OH, AZ, CA, CO, ME, MD, MA, NV, TX, UT, HI, WI, IL, MI, NC, and GA. Based on applicable tax laws, Walmart now calculates, collects, and remits sales tax for orders shipped to customers in these states. In case you are shipping an order to these states, the requirement is for you to be able to import the same order in NetSuite with 0 sales tax.

To understand more about the Sales Tax collection in Walmart, refer here.

Workaround for the order flows

You can overwrite the tax calculation logic by configuring mappings for the Order flow. After you configure the below mappings and run the Walmart Order to NetSuite Order Add flow, the order is imported with 0 sales tax. 

Important: The below handlebar expressions are for selective states. Configure the handlebar expressions as per your required state.

  1. Login to your integrator.io account.
  2. Click Walmart - NetSuite Integration App tile.
  3. Go to Integration Flows > Order > Walmart Order to NetSuite Order Add.
  4. Click on the Field Mappings icon next to the flow. The Mappings window is displayed.
  5. Based on your tax setup in your NetSuite account, such as line-level or body level taxes, add new mappings.
    Export Field (HTTP) Import Field (NetSuite)
    Body Level taxes 
    {{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}F{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}} istaxable
    {{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}0{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}} taxrate
    Line Level Taxes 
    {{#if orderLines.orderLine[*].item.sku}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}0{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{else}}{{/if}} item[*].taxrate1
    {{#if orderLines.orderLine[*].item.sku}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}0{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{else}}{{/if}} item[*].taxAmount
    {{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}0{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}} shippingtax1rate
  6. Click Save & Close

Tip: To see the imported taxes on the sales order, go to Sales Order > Etail tab > ETAIL TAX TOTAL VARIANCE.

Identifying tax setup in NetSuite

To verify your tax setup in your NetSuite account:

  1. Login to your NetSuite account.
  2. Go to Setup > Accounting > Set Up Taxes.  
  3. On the Set Up Taxes page:
    • If the “per-line taxes on transactions” box is selected, the taxes are applicable at the line level.
    • If the “per-line taxes on transactions” box is unchecked, the taxes are applicable at the body level.

Configure tax settings

Information: The settings to update the sales tax remittances in NetSuite has been moved from Settings > Orders > Tax to Settings > General > Tax.

The settings under Settings > General > Tax tab enables you to configure how the tax totals will appear in NetSuite, whether the tax totals need to appear at line-level, the default NetSuite tax code to be used when no match is found, and if you want to apply a default tax code to all orders.

Configure Tax Settings.png

The options that appear for the tax settings will differ based on the option selected in the How would you like to bring sales tax into NetSuite? setting.

Option 1: Overwrite taxes with Walmart tax amounts selected in the How would you like to bring sales tax into NetSuite? setting

  • How would you like to bring sales tax into NetSuite?: This setting allows you to specify your preference on mapping tax totals between NetSuite and Walmart. Select the following option:
    • Overwrite taxes with Walmart tax amounts: This is the preferred option for most users. The leading practice is to overwrite NetSuite tax totals with values from Walmart. This option will overwrite the NetSuite tax rate/percentage with the tax rate/percentage from Walmart. The tax amount for the sales order will be calculated in NetSuite based on the tax rate/percentage from Walmart. If this option is selected, you will be able to view the following options.
  • Per-line taxes on transaction enabled in NetSuite: Check this box if taxes are enabled in NetSuite at line-level. You can find this preference in NetSuite by navigating to Setup > Accounting > Taxes (Setup Taxes) or perform a global search for Setup Taxes.
    Setup taxes in NetSuite.png
    • If the Per-line taxes on transactions box is checked in the Setup Taxes page of NetSuite, check the Per-line taxes on transaction enabled in NetSuite box in integrator.io. The tax amounts will be displayed at line-item level.
    • If the Per-line taxes on transactions box is not checked in the Setup Taxes page of NetSuite, uncheck the Per-line taxes on transaction enabled in NetSuite box in integrator.io. The tax amounts will not be displayed at line-item level.
  • Default tax code when no match is found in NetSuite: This is a mandatory setting. For every sales order, NetSuite selects the tax code based on the shipping address. If the shipping address is not found in NetSuite, it would generate an error message. For this purpose, you need to provide the internal id of a default NetSuite tax code that will be used when there is no match for the shipping address in NetSuite. This default tax code is posted to each order or order line when no matching tax code is found inside of NetSuite. You can either create a new tax code or use an existing one set up in your NetSuite account under Setup > Accounting > Taxes (Tax Codes).
    Accessing tax code.png
    Click View to view the details of the tax code. You can get the internal ID from the URL in this page (as highlighted).
    Viewing_internal_ID_of_tax_code.png
  • Assign the default tax code to all orders: Check this box if you want to assign a default tax code to each order or line item in NetSuite for all the orders received from the Walmart marketplace. You need to enter a value in the Default tax code when no match is found in NetSuite setting if you check this setting.

Option 2: NetSuite calculates taxes using its own tax engine selected in the How would you like to bring sales tax into NetSuite? setting

  • How would you like to bring sales tax into NetSuite?: This setting allows you to specify your preference on mapping tax totals between NetSuite and Walmart. Select the following option:
    • NetSuite calculates taxes using its own tax engine: If this option is selected, NetSuite will calculate and apply taxes to the sales orders based on its tax rules. If this option is selected, no other option will be displayed.

Option 3: Add total tax against a single line item in NetSuite selected in the How would you like to bring sales tax into NetSuite? setting

  • How would you like to bring sales tax into NetSuite?: This setting allows you to specify your preference on mapping tax totals between NetSuite and Walmart. Select the following option::
    • Add total tax against a single line item in NetSuite: Select this option if you don’t want to leverage overriding the NetSuite tax rates with Walmart tax rates. If this option is selected, the tax amounts will appear at line-item level for each sales order. If this option is selected,
  • Per-line taxes on transaction enabled in NetSuite: Refer to the description provided for the Per-line taxes on transaction enabled in NetSuite setting in Option 1.
  • NetSuite item to track Walmart tax amount as a line item: Lets you choose the corresponding NetSuite item to track total sales tax in Walmart against a single line item on the sales order. You need to create a Non-Inventory item in NetSuite and add it here.

    Note: It's recommended to uncheck the Can be Fulfilled/Received (isfulfillable) checkbox on the selected item record.

Was this article helpful?
0 out of 1 found this helpful

Comments

6 comments
Date Votes
  • I tried adding these handlebars but am getting an error when running the flow that the expression is incorrect.

    0
  • Hello David Eisen
    Can we please get more details on the issue. What is the tax setup you are using? Are you using Line level Taxes or Body Level Taxes? Can you also please provide the error you are getting in the flow run.

    0
  • Sure,

    We're using body level taxes, here's the error:

    "Failed to add Walmart Order# 2815784269456. Could not compile handle bar \"{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' ‘KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (u...

    0
  • Hi Khaisar,

    Have you had a chance to look into this error?

     

    0
  • Hello David Eisen

    Sorry for the delay. Yes, I tried debugging this further and able to find the issue. If you observe the below screenshot, for the state code KS, it is opened with an incorrect symbol. It has to be a single quote. I have pasted the updated handlebar below for both the mentioned mappings, 

    For "istaxable" field mapping

    {{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}F{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}

    For "taxrate" mapping

    {{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'AK'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'DE'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'FL'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'KS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'LA'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MS'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MO'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'MT'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'NH'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'OR'}}{{#compare (uppercase shippingInfo.postalAddress.state) '!==' 'TN'}}0{{else}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}{{/compare}}

     

    Please review this and let us know if you are still facing the issue. 

    0
  • Your fix is working well, 

    Thank you!

    0

Please sign in to leave a comment.