Shopware 6 dynamically change VAT - shopware

Is it possible to change rate of VAT on checkout page?
For example I want to add condition if user is guest and commercial then use 20% rate else 0%

That is currently not possible, but there is a feature currently being implemented which allows for custom tax calculations.
Search for "Interface for tax services" in the public roadmap.
That feature is designed to allow to connect to external tax providers for more complex tax calculation e.g. the US, but it should also allow to change the taxes by rule etc.
However keep in mind that in that case the prices in the store prior to the checkout page may not be accurate, this can have some legal implications depending on the country where the shop is operating.

There is a module* which allows to determine automatically based on the VAT ID entered if the B2B customer should pay tax, and doesn't bill tax to customers with a valid VAT ID.
*I am not affiliated with that module, but also did not test it.

Related

Choosing the right Stripe subscription model if pricing depends on another numerical attribute

I have little experience with payment gateways, and am trying to figure out how to synthesize the type of subscription billing that I am looking for: the monthly price gets rebalanced once a year, based on another attribute (a number that can get as high as seven or eight digits).
So, for example, the monthly subscription price as of January 1st will be a % of a user's credit card debt balance as of Dec 15th in the prior year. But the debt balance can get very high / does not have a cap.
I looked at the Stripe documentation to figure out of there's a way to do this. The only thing I could come up with is to use unit_amount in metered pricing and tying this to the credit balance. In other words, I would grab the debt balance number and use it as the unit_amount, and then apply a %. But then I need to also forward bill, so I trick the logic into shifting by a month, which seem impractical.
Alternatively, I am not sure I could do this with per seat pricing (e.g. $1 in debt = 1 seat). But I assume there's a max to the number of seats (i.e. someone cannot have, say 1m seats). I just couldn't determine this from the documentation...
That's what I was thinking, anyway. Perhaps there's a better way?
You've got a couple different options here:
At the start of the year you update the Subscription to a new price based on the calculations of the customer's credit card debt balance by specifying items[0].price_data. Setting items[0].price_data (see the api ref) allows you to create an "in-line price" that as part of the updating the Subscription, so you don't have to create one separately through a separate API request. If you haven't seen Stripe's docs on how to update the price of a Subscription you can see an example here, and you'll likely want to read about proration_behavior as well.
You have a single Price where 1 seat = $1 in debt, and you control how much you want to charge by changing the number of seats for the Subscription. I don't think Stripe has a limitation to the number of seats (as long as it's a valid integer), but they do have a limitation on the maximum amount you can charge which you can read about here. For USD the maximum charge amount is $999,999.99, so the maximum quantity would be you could specify for a $1 price is 999,999.
You could look into using metered pricing, but given that you don't want to bill at the end of the billing cycle the other two options seem better.
I think the first option (updating the price year by year) is your best one, but definitely try all of them out in test mode and take a look at how the Invoices look to see which one you like best.

Applying Stripe Discount

Does anyone know if there is another way to implement discount in stripe subscription without using coupon stripe features.
I have a feature in my application that admin users can give different discount amount to a subscribe user every month.
Is there a way I can edit the "Upcoming Invoice" amount of the customer through stripe api.
You can never directly edit the total amount of an invoice -- it is automatically calculated from the sum of the values of each line item, taxes, coupons, etc.
If you don't want to use coupons for whatever reason, another thing you can do to reduce the amount of an invoice is to create invoice items with a negative value.

Giving Stripe Customers Credit

I'm working with Stripe. Our users subscribe to our service and they are billed every 2 weeks. We need to implement a way to give them $5 credit every time they refer someone to use our service.
Solutions I have considered so far:
Stripe coupons: Stripe has great documentation. Unfortunately, for
coupons there are many ambiguities. I tried working with coupons but
so far it seems like a coupon can only be applied once for each
invoice, and you can't apply multiple coupons for one invoice. This will not work with us since a user can earn $5 multiple times during the billing period.
Issuing refund: the problem with this is that we have to pay the user actual money while what we actually want is to give them credit to use in our service.
Am I missing anything with coupons? Are there any other solutions/suggestions?
If I understand your use case correctly, I think the best way would be to create an invoice item with an amount of -500 for each referral. When you create an invoice item, by default it is set as "pending" and will automatically be included in the next invoice, i.e. at the end of the current billing period.
Be aware that if the invoice's total is negative (in the case of many referrals), then the total will be added to the customer's account_balance and reduce the amount of the next invoice as well. If this isn't what you want, you'd need to reset the customer's account_balance to zero, or make sure that you don't create invoice items that will make the invoice's total go below zero.
More information about invoice items can be found here: https://stripe.com/docs/subscriptions/guide#adding-invoice-items. The guide only mentions invoice items with positive values (i.e. additional charges), but you can use negative values as well.
Have you considered just checking for available credit in transactions before you charge?
That way you can just store how much credit people currently have in some database, and just apply the balance on transactions. AKA charge them for full_price - total_credits.

NetSuite: How to change the total tax amount in a workflow?

I'm trying to divide my total shipping & handling costs into 3 different buckets, shipping, handling and tax (on the handling).
I currently have a workflow that sets the shipping cost correctly, handling cost correctly (on a Credit Card Sale) but for some reason it doesn't set the tax total correctly.
I think I'm using the wrong field, because in my workflow I tried to just set "Tax Total" = 0.00 and it doesn't work, the tax total is just the same as it was originally. Is there a different field I need to be setting?
Did you check if your line items have a tax code associate with it or it there is a Tax Item applied to the whole transaction?
As far as I know, the 'Tax Total' is computed by NetSuite so it is probably over-writing the value that is being set by the workflow.

How to avoid Shopping Pricing Rule when applying Catalog Cart Price Rule?

I have an ongoing 50% Off Catalog Pricing Rule currently active across my store. A few days back I have also distributed coupon codes on a Radio show with 25% Off. Now i have a situation where customers with these codes are applying the code and receiving a double discount. My $10 product is selling for $3.75 (50% + 25%).
I want a functionality where when the customer applies the coupon code, the code does apply but ONLY on the original price of $10. Thereby selling the product at $7.5. It should overlook the catalog rule. So the customer can choose to either go with the Catalog discount or Coupon discount but not both. Is this possible?

Resources