Community Store addon update

Permalink
Hi guys,

Today i feel brave enoug to try to get an helping hand here.

Question is kinda simple, i have a running C5 website (8.3.2) with Community Store (1.3.2) installed + Stripe Payement Method (1.0.5), the Store is not "publicly" setup yet I didnt create any products.

Do you think it is possible to uninstall everything and install last releases of those addons ?

Since it is clearly stated that 1.x user of community store cant upgrade to 2.x due to compatibility issues, my question could be formatted like this :
If nothing have be done more than clean installs of the addon, does the same rule apply ?

And last question, what is the right way to upgrade to last release ?
(because i tried to upgrade to 1.4.7 on localhost test which had test products and Store settings adjusted, then i got all sort of errors and troubles trying to access product pages)

Thanks in advance

 
mnakalay replied on at Permalink Reply
mnakalay
Hello,

It is strange that you had issues upgrading to 1.4.7. There shouldn't be any problems with that.

Uninstalling your version to install the latest might not work because of left-over attributes data.

Having said so, Ryan (the dev behind Community Store) and I have been working on the new version which, if everything goes according to plan, will make it possible to upgrade from 1.x to the latest 2.x.

So if you could wait a little time you might be able to benefit from that. It is a big upgrade with plenty of new stuff so it's worth the wait I'd, being totally unbiased :)
MattPesquet replied on at Permalink Reply
Hey mnakalay,

As usual you are such a great help, you are a big part of what makes this board alive !

Thanks again for your advises.

I also noticed you are very active on github, especially on community store dev.
I m not familiar at all with github, and i dont really get how everything works (branches, commits..), but i saw you have a branchvery active lately :
mnakalay-v8-thumbnail-types

is it part of some existing release ?

On my side, and before seeing your work i was trying (with no success) to customize product block template to use C5 thumbnail system, so that would be great if i can upgrade to this.

Anyway, i have few things to sort out on store side and products content before publicly turning on the store, so i might follow your advise and wait for that coming great release !

Thanks again Nour !
mnakalay replied on at Permalink Reply
mnakalay
Hey Matt, thank you for your kind words.

In a nutshell, in GIT, a branch is a copy of the main code source (usually Master) that we use to develop one feature. So, for instance, the thumbnail type feature. Once the branch is ready and tested we send a pull request to merge it into the main code. What that means is each branch only contains some of the new features so, by using that branch, you are missing out on all the other new features.

When everything is good and ready we make a release you can find under the release tab in Github. The release is a ready-to-install, fully tested package.

A commit is an indication of a point in time where we saved a modification to the code. Say I am working on a branch and I add 2 lines of code and I save. Then I commit the code to my branch with a commit message that will help me and others know what happened in that commit (what code I modified). Basically, I am adding the code to GIT. Before that, it is saved in my files but not added to GIT. Now I committed it so it is in GIT, it is part of the commit history that allows me to see step by step how the whole thing was modified. Each commit indicates also a time, a user, and a commit number. I can later decide to selectively discard commits, amend them...

So anyway, ideally you would wait for the next release which will be stable and include all the new stuff including the thumbnail types.

It shouldn't be too long but that depends on Ryan. You can always shoot him a message to ask, he might have a deadline in mind.
MattPesquet replied on at Permalink Reply
Hi guys !

Nour, You really deserve the kind words, and i m sure lot of concrete5 user appreciate that you are always up to help plus the big amount of work on C5 dev.

I saw that big update has been released on Github, so i might go further and do the upgrade.
Just to be sure, as if i m not mistaken there is no possibility to upgrade from C5 dashboard (if i go to addons update, community store is not listed), the most simple way to upgrade is to replace community_store directory in concrete5/packages/ ?

Or do i have to copy new community store release into concrete5/updates/ then update through C5 dashboard ?

I have a specific question about community store :
My store will provide only digital products (3d assets), as far as i tested things locally (with Stripe account) when you purchase a product then after payment you get a download link or a list of download links for each product.
Well, i dont really get how C5 and community store handle the "security" or "privacy" of the links provided, i mean (testing locally) i can see in the browser the link url when mouse goes over the link, does that link can be copy pasted, or used by anybody in case it is shared ?

How to handle kind of problems like client buy a product, process payment then is unable to download link immediatly or until completion (hardware crash, power down, connection down, user close the window browser by mistakes,etc), how can he access later and download the files ?

I hope my questions make sens.

Thank you if you can enlighten me a bit !
mesuva replied on at Permalink Reply
mesuva
The way you update any package manually (i.e. not automatically through the marketplace connection) is that you:
- replace the package folder within /packages
- go to 'Update Add-Ons' in the dashboard (/index.php/dashboard/extend/update) and you should see the Update Add-On button for the package listed. Hit that button, wait and bit and it's done.

With any kind of update, especially for a more complex add-on like Community Store it's very sensible to take a full backup of your site.

For the security of download links, things have changed since the version you are running. In more recent versions, what happens now is a special download link is created, one that isn't a direct link to a file. It might look a bit like this:
https://yoursite.com/store_download/12/47/af8c12951307dbabcdd5656128...

That link expires after 48 hours (or a time you specify), so it can't be indefinitely shared around.

The download links are displayed on the checkout complete page, but are also included within the receipt email - so they should be able to get to it later. Also, there's an option for admins to resend receipt emails (only issue is the expiry date doesn't get resent, but if you are resending an email you might as well email the customer their files...)
MattPesquet replied on at Permalink Reply
Thanks a lot Mesuva !

I asked about the update since i tried it locally just the way you describe (from 1.4.2 to 1.4.7) and got some issues, most of Store related pages (dashboard and website) were throwing erros, so i replaced community store directory with older version.

Anyway, thank yu for all the informations, it sounds great about the download links if it now works like that.
Does is support external URLs for download link with the same "encrypted" download link function ?

Best regards.
mesuva replied on at Permalink Reply
mesuva
Any of the 'digital downloads' you offer through the store need to be files within concrete5's file manager, that's how it can find and pass them through the protected links.
MattPesquet replied on at Permalink Reply
That sounds obvious, sorry for the dumb question.
Thanks mesuva !

Regarding the settings of the store, there is something that i cant figure out myself (i didnt find any documentation or existing thread about it) about setting Tax Rates / Tax class correctly.

From what i understand only the Tax class can be attached to the product, and that Tax class got an associated Tax rate (or various i guess), but i dont really get how Tax Rates i have to setup in my case.

My store website is based in France, i want to apply VAT tax (20%) to French and EU customers, but no VAT to other countries.

I guess there is no way that i have to set a tax rate for each country of the world ?

Thanks in advance if you can get me on the way to the best setup.
mnakalay replied on at Permalink Reply
mnakalay
Hey Matt. Yes, unfortunately, you're going to have to create the same tax rate several times, once for each European country. Nothing for all the other countries.

So since you're dealing with European VAT, first go to settings and under the "Tax" tab to decide if you want to enable the VAT number option or not. That will let you decide later if you apply a tax rate to buyers with a valid VAT number.

Also, decide if you enter your product prices inclusive or exclusive of taxes.

Once that's done, click on the blue "Tax Rates" button at the top. On the new screen click on the blue "Add Tax Rate button" at the top.

Let's use France as an example. Enable the Tax Rate then call it VAT France for instance. Make it 20%. Decide if the tax is applied on the order total or total + shipping.

Then select that the rate should apply if the buyer's shipping address matches the country France.

You mentioned you had digital products. If you are only selling digital products then you will not have a shipping address and you will have to use the billing address instead. I am not sure how the European tax law works for digital products so you'll have to check.

Finally, decide if you want to apply the tax when a VAT number is provided or not. Then save.

Repeat this step for all European Countries. Every time change just the label and the country.

Once you have your 15 rates, click on the blue "Add Tax Class" button at the top. Give your class a name, for instance, "European VAT" and list all your 15 previously created tax rates. Then save.

Now whenever you add a product, make sure to set the option "Taxable" to "Yes" and select your "European VAT" tax class from the appropriate list.

Now any time a buyer will buy something to be shipped to one of those countries (or billed in one of those countries depending on your settings), the 20% tax will apply. It won't apply to anybody else.

I hope this helps.
Cahueya replied on at Permalink Reply
If you are selling digital goods that are automatically available after checkout, the MOSS law applies to you within the EU.

http://www2.impots.gouv.fr/e_service_pro/tva_miniguichet/moss_en.ht...

What it means: For products that are digital goods (which don't need manual labour to send out), you have to apply the VAT rate depending on the country of the customer!

This is very recent (January 2015) in the EU and aimed towards reducing the possibility to place a digital-goods-only company in a country with a low tax rate for tax evasion. I think it was originally about amazon in Luxembourg.

So basically you should make a tax class "digital goods" which contains the tax rate for each country based on the billing address with the countries tax rate.

There's a good summary:
https://quaderno.io/resources/eu-vat-guide/...

Hope this helps :-)
MattPesquet replied on at Permalink Reply
Hey guys, thanks a lot for those explanations !

As a statement on my personal case, i already work as freelance charging VAT tax for my usual quotes, so i just want to make things setup correctly regarding laws and be able to include earnings from the store to my main accounting.
So i do have to charge VAT, i do want to display prices inclusive of tax (to display the same price everywhere), then the invoice must display VAT part, when VAT is applied (from what i know and as mnakalay states only in european country for me). To me, those are the minimal requirement to be able to track VAT collected that i need to reverse, and the customer got the part of VAT that he can take into account on his side.
For non european country VAT is not applied (as i cant believe i would have to create a tax rate for each country of the world), the price is the same, i do not collect any VAT (i m almost sure that it is the deal, maybe with a maximal amount of earnings per year as a limit).

@mnakalay> ok, it shouldnt be a big deal to setup differente tax rates if it is limited to each european country (as i do think it have to be, i mean not as Cahueya suggest for each of 197 world country not counting different rates for different USA states...).
So everything makes sense to me and your "how to" step by step is very clear (i already played around with those settings, price are inclusive of taxes, i already switched to billing adress instead of shipping, i created the VAT tax rate for France and associated it to default Tax class for now, but i will follow your advices).

Then the main thing i dont get is about the VAT number option, i clearly dont know anything about the whole benefits or "mechanisms" behind that VAT number (and i guess i must have one).
What is the main reason to use it ? is it something customers want to see because there is some benefits to use it ?
As a simple example (VAT number option turned on), if a european customer get to payment form then enter his VAT number, is it going to change the invoice and price to remove VAT part ? (then i souldnt have to reverse it because i dont collect it)
What are the difference if VAT number option is used or not ?
Why i shouldnt apply the tax if a VAT number is provided ?

@Cahueya> Thanks a lot for the usefull links, but as i said from what i already gathered as informations about last european rules (maybe even more recent than 2015) the VAT tax rate i have to charge is the one in my country, the country where is based the store, and no different tax rates for customer country, that might be some "benefits" of the whole EU idea.
So in my case VAT is 20% in France, that will be the tax rate for all european customers.
For non european countries i m almost sure i read somewhere in Stripe documentation (about VAT rules) that for european store selling to non european country, there is no VAT applied until some amount of earnings per year (at least about 100 000$ from what i remember, and i m not planning to hit the roof).
Once again, i cant believe i would have to create tax rates for each country, or each states of US (then have to reverse to each country ?).

Sorry for the long post.
mnakalay replied on at Permalink Reply
mnakalay
In the guide that Cahuyea posted abovehttps://quaderno.io/resources/eu-vat-guide/... under "When should you charge EU VAT" it explains very clearly why you need the VAT number.

Basically, if your client is a business located in a European country different from yours and they provide you with a VAT number, you don't need to charge them the VAT.

Otherwise, you do.

Read that doc it is very well explained
MattPesquet replied on at Permalink Reply
@mnakalay > well, i think that i better understand the whole thing, i have read again that doc (and googled more informations about B2B and B2C definitions).
So, from what i understand (as it is specified in "When should you charge EU VAT?" section of Cahuyea link above) if sales stay below 10 000€ per year, i have to apply my country tax rate (20%) to all european indivual customers (no business with VAT number), and report it in my accounting as usual.
And if customers are out of europe or a european business providing VAT i dont charge any VAT.

Now i would have a question about entered price, does it remain a matter of choice to enter price inclusive of taxes or not ?
I was planning to enter prices inclusive of taxes, but from what i understand it will charge always the entered amount, or the VAT is part of it or 0% of it when there is no VAT charged (instead of 2 prices, one without VAT, and one with VAT added).
Is it fair ? i mean a buyer with not VAT applied will pay the same cost than the one with VAT applied.
In an other way, and from the store owner point of view that means i would charge always the same amount, when VAT is applied i have to reverse VAT part (my income is entered price without 20% VAT), and when VAT is not applied all the amount go to my income ?

That is kind of a little away from that thread, but do you know if it is possible to display "€" symbol after price number and not before ?

ps: from the beginning i m talking about digital products, but more than a store selling usual digital goods (music, ebooks, movies, etc) it have to be seen as a service i provide (just as i would for my usual clients) with an online access for securised payment. It just makes available to potential clients access to packages of homemade digital assets with the licence to use it commercially (it is more like selling copyrights).
Cahueya replied on at Permalink Reply
Usually you should set your products without the VAT and let the VAT be added by Community Store according to the tax rates/classes you defined. This is not only for the calculations, but the order slip will display vat/no vat depending on your settings there.

If your business is considered a "digital good" or a "service" is lastly decided by the tax authorities, so talking to your tax consultant could be a good thing.

It could happen that no one ever asks about it. I don't know how strongly tax rules are enforced at your place. I've been self-employed since over ten years and had two tax investigations happened in that time, both were before the MOSS laws came out.
MattPesquet replied on at Permalink Reply
@Cahueya > Thanks a lot for those usefull advices, if i understand that the most usual way is to set product price exclusive of taxes, it seems to me this setup brings two drawbacks :
> if you want to have round VAT included prices you have to do the maths to enter each price without VAT, but no VAT applied prices wont be round numbers (or i would have to choose only prices that gives round number with or without VAT @20% tax rate, if i apply France tax rate to all European countries, but it gets more complicated if somehow i have to setup specific VAT taxes rate for each EU countries)
> Product prices are displayed without VAT (product list and product blocks), i also see that VAT included price appears in Cart amount (utility links block) and checkout page, but the most usual way (at least in France, and all digital asset store based in europe that i know do the same) is to display prices inclusive of taxes for each product of a store.

If it is legally possible and if i decide to stick to the most simple setup described in my last post (prices entered inclusive of taxes, 20% taxe rate for France and all EU countries based on my business location in the limit of 10 000€/years, VAT number option on, no VAT applied for non EU countries and valid VAT number), then i can notice a warning message of community store settings that must be totally related to what we discuss here :
"The TVA_europe Tax Class can't contain more than 1 Tax Rate if you change how the taxes are calculated"

I m not sure what this warning involves really (and if it is totally wrong), as from my local tests there is nothing that actually prevent this setup except the warning message, i mean simulated checkouts act as i expect, when VAT is applied the VAT amount is specified on checkout and invoices, when VAT is not applied the price is the same but checkout and invoice dont show any VAT amount (no VAT collected).

When i think about all running stores using this great addon and C5, I feel more and more retarded myself not being able to setup the most correct and simple store according my freelance activity and legal terms.

The perfect option with this setup (price entered inclusive of taxes) would be to be able to remove VAT part at checkout for clients with no VAT applied (non european, and valid VAT number inside EU).
Does that make sense to anybody else that this kind of option is missing or could be usefull ?

Just as the VAT part is correctly visible on checkout and invoice, why you wouldnt want to enter price exclusive of taxes if you can have this simple option that remove the calculated VAT part from the entered price ?

Anyway, thank you all for the help !