user4212 Developer De United States Miembro desde jun. 2017 user4212 29 may. 2018 18:52 Hi Tim, Our customer wants to have a "hold for pickup" option, and to not charge a fee for shipping. We are using LiteCart 2.0.1 Is this [i]add-on[/i] the right tool for the job? thanks! Paul
tim Founder De Sweden Miembro desde may. 2013 tim 30 may. 2018 03:15 (Thread split as hijacked another thread) Yes I think so. I mean that's what it does.
user4212 Developer De United States Miembro desde jun. 2017 user4212 30 may. 2018 03:36 Thanks, Tim -- also, to confirm, this add-on will work fine with the v2 LiteCart? The version says 1.3+ but to ask you about compatibility with later versions.
tim Founder De Sweden Miembro desde may. 2013 tim 31 may. 2018 02:25 Yes, the LiteCart v1 shipping and payment modules are compatible with V2. :)
user4212 Developer De United States Miembro desde jun. 2017 user4212 8 jun. 2018 21:08 Hi Tim, This hold-for-pickup (HFP) plugin is working great with v2, thanks -- one taxation issue has surfaced, though... If a customer selects "hold for pickup", they are not getting charged tax. this is incorrect for us: if anyone picks up or delivers to our state, they must pay the state tax. Instead, the HFP plugin is seeing "there's no shipping set, so bypass any tax" because our Tax Policy has to be based on "Shipping" not "Payment/Billing" address. (Again, we don't collect from any other State than ours; thus, Shipping is the driver variable.) So... our development ask is: Can HFP be set to trigger a specific Tax policy? Tax Policy: Maine 5.5% Hold for Pickup: choose which Tax Policy applies. We can pay for this feature if needed! See UI mockup. Thanks!
tim Founder De Sweden Miembro desde may. 2013 tim 8 jun. 2018 21:49 I am confused. The module does not set any fee or tax wither for the shipping or payment option. Are you saying that you want to clear any tax of the cart items upon the customer selecting Hold For Pickup for shipping method?
user4212 Developer De United States Miembro desde jun. 2017 user4212 8 jun. 2018 22:24 Not exactly: the customer selecting [i]Hold For Pickup[/i] [b]needs[/b] to get charged our state tax. The "glitch" exists for us because our tax policies are set on Shipping address; with the HFP plugin, there is no shipping address, thus, no tax policy gets triggered. So customers are incorrectly not paying tax. In my mockup above, it shows a new widget to apply a tax policy to the Hold-For-Pickup module.
tim Founder De Sweden Miembro desde may. 2013 tim 8 jun. 2018 22:49 You want to charge your state tax for what? The cart items? A fee for the choice of Pickup? If no separate shipping address is provided, LiteCart uses the billing address for shipping. And so for your tax calculation.
user4212 Developer De United States Miembro desde jun. 2017 user4212 8 jun. 2018 23:07 We want to charge the state tax for the [b]Cart items [/b]per usual[b].[/b] [i]> If no separate shipping address is provided, LiteCart uses the billing address for shipping. And so for your tax calculation.[/i] I saw that, true, but that is the crux of the issue for us: we need LiteCart to continue to charge tax only on the shipping address, due to our set Tax Rate Policy... and since [b]HFP is in effect "shipping to [u]our[/u] state" [/b] we need that to trigger/apply the same Tax Rate policy. Hence, my GUI mockup shows how a Tax Rate can be applied to the HFP orders. As you note, the fallback is to billing address... we don't/can't charge tax on the billing because they may be out of state. hence, our Tax Rates are tagged to a geoZone of our state. So if they ship to our state, they must pay tax. HFP is like shipping to our state... to our address. Make sense?
tim Founder De Sweden Miembro desde may. 2013 tim 9 jun. 2018 00:05 [quote]So if they ship to our state, they must pay tax. HFP is like shipping to our state... to our address. Make sense?[/quote] That's the sentence that clear this all for me. Lol The one way to do this without modifying the core is to have the module use the internal fee mechanism. That way any amount set by the module will be added to the order but adding tax to the fee cost. But it's not gonna be pretty in the order summary. This is not a problem I have heard of before as merchants usually limit the module to geo zone (let's say your own state) so it is only displayed as an option if the customer is in that same geo zone. Let's look at the process chain: Cart is populated Shipping modules are processed Payment modules are processed Order Total modules are processed Order object is created based on the result of above.
user4212 Developer De United States Miembro desde jun. 2017 user4212 9 jun. 2018 02:53 I'm glad we reached mutual understanding :-) True, this customer is unique, in that [i]out-of-state[/i] buyers will often check "hold for pickup" because they are traveling to the summer program [u]in[/u] our state. Thus, they have to be taxed as "in-state" at p.o.s. I hear your proposal... hmm. I think it would be more ideal to do add a new feature ("Apply Tax Rate") to this HFP module, don't you think? That way it is supporting a real-world use case that is consistent with the system's overall design. If we "hijack" another tool of the system -- in this case the "internal fee" mechanism -- I see two problems arise: You are referring to this module, right? https://www.litecart.net/addons/203/handling-fee (1) it won't be as logical/understandable to the admins (versus my GUI suggestion) since it's not about taxes; feels kludgy. (2) the accurate tax $amount (as required by state government) would not be calculated on all possible combos of cart $totals. Because the handling fee is not a percent (like 5.5% which is what we need).... No flat fee $amount would cover all possible $totals. (3) if it's not understandable to the buyer, they will call to question it or complain. [i](e.g. What is this new fee? we've never paid that before!?)[/i] So I don't think the client can accept this route. I would imagine this is a couple hours to code; do you want my programmer to try to do it and submit via your repo? I'd prefer if you did it, but I understand if you don't have the time. thanks! Paul
tim Founder De Sweden Miembro desde may. 2013 tim 9 jun. 2018 03:30 How about an order total module? You can detect the choice of shipping with it and return an amount of tax that is added to the order tax. Not much of a wiki artice but here is a simple example: [url=https://wiki.litecart.net/doku.php?id=how_to_create_an_order_total_module]https://wiki.litecart.net/doku.php?id=how_to_create_an_order_total_module[/url] Check shipping in $GLOBALS['shipping']->selected. Cycle through the products in cart::$items. Calculate tax with tax::get_tax(). Return the total tax in 'tax' => 0.00 and make sure 'calculate' is set to true when returning. Other than that I suggest a vqmod.
user4212 Developer De United States Miembro desde jun. 2017 user4212 16 jun. 2018 18:07 Hi Tim, We're going with your suggestion, to make a new "order total module" -- it will do this: [quote]add a Tax Rate to the "Hold for Pickup" module if present[/quote] We had a question: Do all the [b]Order Total[/b] modules get processed at checkout? [likely yes?] but in what priority/sequence? thanks!
tim Founder De Sweden Miembro desde may. 2013 tim 16 jun. 2018 20:15 Yes all order total modules are processed in the order/checkout using the method process(). The priority is determined by the value priority (ascending) in each module setting.