For now, I'm just in the information collection and design phase.
Later there will be the need to have testers.
Hi,
I will maybe have the opportunity to start working on a simple POS module
for Tryton. As I already explained many times, I think extending the
sale object is wrong because the workflows are too much different.
Also for me, a POS should work with tax included price as bases, it
should not create shipments nor invoice by default.
Point of sale wold be very welcome feature! I have some comments below...
On 16 Aug 2015 15:39, "Cédric Krier" <cedric...@b2ck.com> wrote:
>
> Hi,
>
> I will maybe have the opportunity to start working on a simple POS module
> for Tryton. As I already explained many times, I think extending the
> sale object is wrong because the workflows are too much different.
The sale object would serve the purpose for data requirements, but as you say the workflow is not geared towards a retail storefront with lots of cash sales. This could be handled with wizards automating the process behind the scenes (have played with nereid web shop to do this) but a new module and classes would likely be a cleaner solution.
> Also for me, a POS should work with tax included price as bases, it
> should not create shipments nor invoice by default.
>
Stock moves are required for inventory control but full shipments are not as POS use cases rarely require collection of customer name and address.
As for taxes, in North America it is actually quite unusual to work on a tax included basis. The only common exception seems to be petrol(gasoline) which is advertised per litre (or gallon in US) tax included. The exception for fuel is supposedly because when sales taxes were introduced retrofitting fuel pumps to calculate and display the tax separately would have been too expensive.
In Canada is is a requirement by law to either show the price NOT including tax, unless you also have a sign that says "posted price includes x% tax". So instead of having a sign on every shelf with that message as required by law stores prefer to show prices with tax excluded (on fuel pumps you always find such a message printed on them somewhere, and in the attached garage/store all other prices are posted without tax included).
Also from a marketing perspective the number without taxes is lower, so if you have a sign that says "4.99 (includes 12% HST)" and your competitor has a sign that simply says 4.46 you look more expensive at first glance. So even if tax included is more convenient retail here has gone with the custom of showing base price without tax.
Regardless of how prices are displayed, invoices and till receipts by law are always required to show the base price and tax separated, preferably line by line as some items are tax exempt.
Sales taxes can be a complex issue in some jurisdictions, so you cannot oversimplify. Best to keep the price list as is and just have a tax included function field with feature to allow the user to work one way or the other at the interface level.
> So the idea is to have a quite simple object with only:
>
> - order number
> - employee
> - shop
> - lines (product, quantity, unit price (tax included), price)
> The price will come from a new list price tax included on the
> product.
As stated above, a new list price is not convenient for many users if it requires them to work on a tax included basis. Please make that optional.
>
> It will have a button to add payments registered as lines on it:
>
> - journal
> - amount
>
> with change line created on cash journal.
>
> Once it is fully paid, the order will create:
>
> - an account move for the sale (on account define in the
> configuration)
> - stock moves from shop location to customer
>
> But this default workflow could be modified by requesting an invoice, if
> so the party will be requested. This request should be possible on
> already paid POS order.
> Of course the account move generated by the POS order should be the same
> as the one generated by the invoice.
>
> The design should be take into account such possible extension:
>
> - using a wizard to add lines
> - allow to request a shipment (included back-order)
> - support for sale_extra and sale_promotion
> - fidelity card
>
Agreed that these are the most common POS features.
> The design should not care about price list, nor grouping modules.
>
> I think it could be the foundation for more complex POS using specific
> UI (like a web base).
>
> Did I forget something? Or do you see a use case that could not be
> supported?
Hospitality industry (hotels and restaurants) would have some special use cases, which may differ in Europe vs North America in some places. In these cases customers usually have an open bill or tab that they pay upon leaving the establishment. On restaurant tabs there are frequently cases where prices are adjusted on the fly (substituted item in a meal, price reduction for dissatisfied diner etc). Plus it is customary in many places to leave a gratuity for the serving staff which may need to be accounted for and/or paid out of the till.
Such a use case could be handled if POS is extensible by specialty modules.
In our case (Argentina) POS sales are usually the case with sales over the counter where the client picks up the product. We have a kind of tax entity called "Final Consumer" for this type of client. This type of transaction does not require to show the tax ammount in the invoice report (though the tax is included in the price and the company needs to declare it at the end of the taxable month/semester/year).We have a special type of invoice for this kind of sales: It is a legal invoice but the tax is not detailed).In our case, we are are using the sale_pos from ZikZaKMedia, which also haves an option to set "Self PIck UP" by default so it handles stock movements automatically.
Hi,
I will maybe have the opportunity to start working on a simple POS module
for Tryton.
As I already explained many times, I think extending the
sale object is wrong because the workflows are too much different.
Also for me, a POS should work with tax included price as bases,
it should not create shipments nor invoice by default.
On 18 Aug 2015 07:45, "Cédric Krier" <cedric...@b2ck.com> wrote:
>
> On 2015-08-18 20:02, David Bruchmann wrote:
> > >
> > >
> > >> In our case (Argentina) POS sales are usually the case with sales over
> > > the counter where the client picks up the product. We have a kind of tax
> > > entity called "Final Consumer" for this type of client. This type of
> > > transaction does not require to show the tax ammount in the invoice report
> > > (though the tax is included in the price and the company needs to declare
> > > it at the end of the taxable month/semester/year).
> > > We have a special type of invoice for this kind of sales: It is a legal
> > > invoice but the tax is not detailed).
> > > In our case, we are are using the *sale_pos
> > > <https://bitbucket.org/zikzakmedia/trytond-sale_pos>* from ZikZaKMedia,
> > > which also haves an option to set "Self PIck UP" by default so it handles
> > > stock movements automatically.
> > >
> >
> >
> > This shows what I thought already, that taxes are not handled the same in
> > each country,
>
> I higly doubt about that. A Tax is simply a tax.
I've never encountered a tax that is simple ;-)
Taxes are not only handled differently in some countries, but even within one country depending on location and industry. In Canada retail operations even have different rules for businesses operated on aboriginal reserve land for example.
A general purpose module need not handle every specific case, however some aspects if tax calculation and display must be configurable.
>
> > furthermore it might depend on the kind of business if and
> > how they are shown (i.e. for gnu health different than for a warehouse).
>
> I still doubt about that.
Service stations are a common example in north america as i mentioned earlier. Prices for fuel dispensed at pumps is displayed tax included. All other goods without. Typically only very small retail operations that are exempt from taxes or operate heavily with non electronic cash transactions (and so round prices to whole dollars and need little signage notifying the tax is included) operate on a tax included basis here...food trucks, snack food concession stands at hockey arenas, etc
>
> > While on the one hand it would be nice to cover any existing standards, on
> > the other hand being able to meet national requirements by configuration.
>
> Here what they call another type of invoice is not what we named in
> Tryton an invoice. So I'm pretty sure that the POS order will have all
> the requirements to be considered as this kind of invoice.
What is an invoice in Tryton is a proper invoice. This other document in a point of sale situation here is referred to as a till receipt. Both are records of a transaction and have some common information but a till receipt doesn't have detailed descriptions, payment terms or a workflow since it is a record of a sale already concluded. That makes them different documents to me rather than being different variants of the same document.
I agree it is not logical, but in Canada and US retail is often not a logical business! The culture here is much more anti-tax than in Europe and business owners and the public in general exert a lot of pressure to make sure people are informed of how much tax is being paid to government. It is a cultural and historical thing--if what you are being taxed is not prominently displayed then people worry the rate can be too easily raised or shopkeepers are being dishonest. It is not logical but it's how things work.
It is also due to sales taxes being overly complicated. Many items are tax exempt and people need to be informed which are. For example, a single bottle of a beverage 1 litre or less is taxable, but the same exact product sold in a box of more than 5 or a bottle bigger than 1 litre is tax exempt because it is bulk/grocery.
That said your solution would work fine--if both prices are easily accessible how it is managed behind the scenes is irrelevant
> > Sales taxes can be a complex issue in some jurisdictions, so you cannot
> > oversimplify. Best to keep the price list as is and just have a tax
> > included function field with feature to allow the user to work one way or
> > the other at the interface level.
>
> No, we will not adapt the design of the POS just because Americans are
> the only one to show tax exclude price to the customers. We will not
> repeat the history of the %m/%d/%y date format.
> The Americans will have to adapt the solution to there needs so as far
> as I see it only requires to store the tax excluded price on the
> product.
>
Don't get me started on dates...there are different preferences even between canada/us/Mexico! Plus the US being so insistent with avoiding metric when even Canada and Mexico have long since adopted metric...
Anyways special needs can be addressed with modules like chart of accounts do ..
A module to modify for
On 2015-08-18 20:02, David Bruchmann wrote:
> >
> >
> >> In our case (Argentina) POS sales are usually the case with sales over
> > the counter where the client picks up the product. We have a kind of tax
> > entity called "Final Consumer" for this type of client. This type of
> > transaction does not require to show the tax ammount in the invoice report
> > (though the tax is included in the price and the company needs to declare
> > it at the end of the taxable month/semester/year).
> > We have a special type of invoice for this kind of sales: It is a legal
> > invoice but the tax is not detailed).
> > In our case, we are are using the *sale_pos
> > <https://bitbucket.org/zikzakmedia/trytond-sale_pos>* from ZikZaKMedia,
> > which also haves an option to set "Self PIck UP" by default so it handles
> > stock movements automatically.
> >
>
>
> This shows what I thought already, that taxes are not handled the same in
> each country,
I higly doubt about that. A Tax is simply a tax.
Just a side note to clarify in regard to my comment about taxes and types of invoices. In Argentina one may need to use three different type of invoices: A, b or c. The first one is used to bill companies, the second one to end users (final consumer where tax isI included) and the third one to tax exent organizations. So in Tryton we use three different sequences to handle invoices according to the type of customer. This is managed by the account__ar module created by Gcoop (sorry I don't provide with a link but I'm on the road with little access to data coverage). This module adds a field in the party's module where you can set the Vat condition for that party (a, b or c). Just to comment how invoices are handled and that, in our case, there are different types.
> furthermore it might depend on the kind of business if and
> how they are shown (i.e. for gnu health different than for a warehouse).
I still doubt about that.
> While on the one hand it would be nice to cover any existing standards, on
> the other hand being able to meet national requirements by configuration.
Here what they call another type of invoice is not what we named in
Tryton an invoice. So I'm pretty sure that the POS order will have all
the requirements to be considered as this kind of invoice.
--
Cédric Krier - B2CK SPRL
Email/Jabber: cedric...@b2ck.com
Tel: +32 472 54 46 59
Website: http://www.b2ck.com/
Taxes are quite complicated.In Germany for common products are 2 different taxes on common products: either 7% or 19%.
For some higher taxes like for Tobacco and Patrol Products I don't know how it's calculated at the POS. In general it's possible that it's calculated at the POS with 19% but with a different value at a B2B point - honestly I just don't know.
Furthermore there existed some special tax for salt which was abolished but it had to be expected perhaps that resembling taxes still exist in other countries,
As long as you plan to include an option for different unlimited tax-classes I don't see a problem here, but concerning the abolished salt-tax I don't know if there have been even 2 taxes on one product.
As far as I see a configurable option would be nice, so even for US never had to be programmed anything extra.
So the idea is to have a quite simple object with only:
- order number
- employee
- shop
- lines (product, quantity, unit price (tax included), price)
The price will come from a new list price tax included on the
product.
It will have a button to add payments registered as lines on it:
- journal
- amount
with change line created on cash journal.
Hi,
I will maybe have the opportunity to start working on a simple POS module
for Tryton. As I already explained many times, I think extending the
sale object is wrong because the workflows are too much different.
Also for me, a POS should work with tax included price as bases, it
should not create shipments nor invoice by default.
So the idea is to have a quite simple object with only:
- order number
- employee
- shop
- lines (product, quantity, unit price (tax included), price)
The price will come from a new list price tax included on the
product.
It will have a button to add payments registered as lines on it:
- journal
- amount
with change line created on cash journal.
Once it is fully paid, the order will create:
- an account move for the sale (on account define in the
configuration)
- stock moves from shop location to customer
But this default workflow could be modified by requesting an invoice, if
so the party will be requested. This request should be possible on
already paid POS order.
Of course the account move generated by the POS order should be the same
as the one generated by the invoice.
The design should be take into account such possible extension:
- using a wizard to add lines
- allow to request a shipment (included back-order)
- support for sale_extra and sale_promotion
- fidelity card
The design should not care about price list, nor grouping modules.
I think it could be the foundation for more complex POS using specific
UI (like a web base).
Did I forget something? Or do you see a use case that could not be
supported?
Thanks,