Tryton Release 6.2 – News

We are proud to announce the 6.2 release of Tryton .
This release provides many bug fixes, fine tuning and many performance improvements. But it is also remarkable by the addition of not less than 13 new modules from which we can highlight the basis for a point of sale and an integration with Shopify.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. No manual operations are required.

Here is a list of the most noticeable changes:

Changes for the User

It is now possible to import and export data from binary fields using CSV. The data is encoded into base64 in the file.

You can now customize the name of the records used in the report to construct the filename.

The code of the language must now be unique in the system. This remove possible ambiguity with the translations.

Web Client

The web client has now on each tree view, a button to fold/unfold the selected rows.

Web Client Fold/Unfold button

Keyboard shortcuts (aka accesskey) has been added to every widgets and buttons of the web client. By pressing CTRL+F1, the keys are shown next to each widget and button.


It is now possible to configure rules to automatically debit the customer with a direct debit payment. This rules are compatible with all the payment modules like SEPA, Stripe or Braintree. The payments are created by launching a wizard from the payment menu.

The invoice and dunning form have now an action to launch a wizard to reschedule the payment terms. The wizard allow defining new terms by dividing the existing line.

Reschedule Invoice

When updating an asset now, we store a revision which stores the updated data, a document as origin and a description.
It is also possible to reset to draft an asset that have not yet any posted lines. This gives a grace time to correct mistakes. But it is also possible to force the re-computation of the pending lines.


The invoice creates a tax line for the base of manual taxes.

We added the intra-community VAT for each tax rate of the Spanish chart of account.

There is now a succeed button on the payment group which set as succeeded all its payments.

A date and age fields have been added to the dunning records.

A warning is raised when user is posting an invoice in the future.

The statement journals can now be deactivated when there are no more needed.

We validate that all inactivate accounts have no balance when closing a period.


We have now reporting of commission per agent and period. The amount can be grouped per year, month or day and it is possible to filter only the invoiced commissions.

When creating commissions, it is not possible to select only some agents.


A country of origin can be defined for each product.


It is now possible to define one contact mechanism of each type at the creation of a party. The main usage is to ease importing via CSV parties with their email, phone etc.

When a party is replaced by another, the identifiers of the former one are transferred to the new one but deactivated.


We added the support for Austrian, Ukrainian and Vietnam identifier and defined the Australian Business and Company Number as tax identifiers.


We added a computed field on the variants that compute a name based on their attribute values. This avoid the need to define different suffix for each variant if the attributes are enough to distinct them.

The service and kit products can have now only a fixed cost price. The other methods are all based on stock move which practically does nothing for service nor kit.


The list price field is no more required on the products.

It is no more allowed to define a list or cost price that is not linked to a company. And when the cost price is per warehouse, it is no more possible to set one not linked to a warehouse.


To allocate the production cost between the output products, Tryton use the list price. Now if one of the output product has not list price, the production will raise a warning before ignoring it.


We compute the purchase date for the request created from a requisition. The computation is using the lead time of the defined supplier or the best one found.


The default invoice, shipment and shipment cost methods can now be defined by customer. If they are empty then the general default method is used.

We extended the existing sale reports to have one general without any grouping (useful to have grant total) and another grouped in a tree per customer category.

There is now a wizard to test the setup of a recurrence rule (used for subscription). As rules can be complex it is useful to be able to see the result based on a tested date.


The first cards are now supported on the Point of Sale.

The subscription always fills the date of the invoice it creates.


We added a wizard on the customer shipment (and supplier return) to print all the package labels at once. And also reprint the label just for one package. The client can sent them directly to the default printer of the host machine. (This replace the dummy label report.)

It is again possible to group different warehouses under a view location.

Web Shop

The product images are now used for the web shops. There is a check box to mark the image as to be published on the web shops.

New Modules

Account Budget

The Account Budget Module provides the ability to set budgets for accounts over a defined period of time. These budgets can then be used to track the total amount from relevant transactions against the budgeted amount.

Account Move Line Grouping

The Account Move Line Grouping Module adds a view that displays move lines grouped.

Account Rule

The Account Rule Module allows rules which substitute default accounts with other accounts.

Account Stock Shipment Cost

The Account Stock Shipment Cost Module allocates shipment cost based on invoice.

Analytic Budget

The Analytic Budget Module provides the ability to set budgets for analytic accounts over a defined period of time. These budgets can then be used to track the total amount from relevant transactions against the budgeted amount.

Currency Romanian

The Currency RO Module adds the Romanian National Bank as a source for currency exchange rates.

Currency Serbian

The Currency RS Module adds the Serbian National Bank as a source for currency exchange rates.

Product Image

The Product Image Module adds images to each product and variant.

Product Image Attribute

The Product Image Attribute Module adds attributes to product images.

Sale Point

The Sale Point Module allows retail sales to be handled and recorded.

Stock Package Shipping MyGLS

The Stock Package Shipping MyGLS Module allows package labels to be generated for shipments using MyGLS webservices.

Stock Package Shipping Sendcloud

The Stock Package Shipping Sendcloud Module allows package labels to be generated for shipments made by any of Sendcloud’s supported carriers.

Web Shop Shopify

The Web Shop Shopify Module provides a way to manage Shopify stores. It uploads products, variants and collections to Shopify, and downloads orders, transactions and creates fulfillments.

Changes for the System Administrator

The non-interactive operations (like the scheduled or queued tasks) report now their possible errors in the entry “Administration → Scheduler → Errors”. When the problem has been solved, the administrator can mark it and it will be relaunch automatically.

The configuration wizard on the first login present now an easier step to activate easily new modules.

The trytond-stat command display the ID of the node in addition to the process ID. This allow to know from which node the request come.


We added support for the argon2 and scrypt password hashing methods.

We added an option to start trytond-console with a read-only transaction.


We added two groups which give access rights to edit the accounting fields on parties and products. This gives more flexibility to privilege separation.

Changes for the Developer

In addition to MPTT we support now another method which is based on stored path. This is a method that is faster when the tree is modified but it takes more space.
To simplify the choice, you must use MPTT for tree that are mainly static (like the chart of account) and Path for tree that are modified often (like the project tree).

We improved the management of the digits for numeric field. Now we can set the digits attribute as the name of a field that point to a DigitsMixin model (like the unit of measure).
Also the numeric widgets have now a grouping attribute which specify if the client must group digits or not.
We added also the SymbolMixin which define how to format a number with a symbol (like the unit of measure). The language and report has formatting methods that support the symbols but also empty digits.

We added on the user warning model a class method that standardize the format of warning name based on records.

We enforced even more data structure as immutable. The dictionary of the transaction context can only be changed thanks to the set_context context manager. The value of Dict field uses now tuple instead of list.

The ModelSQL.lock method locks the table when called without records.

When copying records, we do not copy the values of the record that still have the default value. This permits a user to copy record for which he does not have access right on some field if their values are still the default.

Tryton can now store in the global cache of the transaction the result of Function field if it is a read-only transaction. This improves the performance if we have Function fields that are using other Function fields to compute their values.


You can now set the create and delete attribute on the view. This disables the respecting buttons on the user interface.

The DictSchemaMixin has now a method to format their values.

The sql_cast method of Date field accept now an optional timezone to use instead of UTC.

We added as tools a method set_from_header to fill email headers to appear at best from the address.

We support the new version 2.0 of werkzeug.

We removed the record name from the title of the email constructed from an HTML report.

We support PYSON expression as key for the In operation with dictionary.

The ModelStorage has a cached method that return an estimation of the number of record in the table. This can be used to decide query strategy.

The tools receive a method to remove forbidden chars from a string.

When searching with a ‘OR’-ed domain, the ORM will use an UNION of queries instead of multiple joins. The database will run such query faster.

We added a combined method that does the search and return the keys definition. This reduce the number of queries for the clients.

We use the bigdecimal tag for XML-RPC

We added an implementation of the BOOL_AND and BOOL_OR operators for the SQLite back-end.

There is now a generic test that check the validity of the domain defined on the relation fields.

Another generic test has also been added which ensure that objects registered in the pool has __slots__ defined to reduce the memory consumption.

Scripting Client

Tryton is using slow hashing algorithm to prevent brute-force attack but so the scripting client was slow when used remotely because each call were authenticated by hashing the password. Now it is possible to configure the script to create a session and use it for further calls.


We use the bigdecimal tag for XML-RPC


We store the value of the keywords extracted from the statement origin. They can now be used by the rules to find a party for a similar statement origin.

We compute now the warehouse of each invoice line.


We renamed the lockbuttons for fiscal year and period into lock_ because they override the standard method of the same name.

We added on the move line a property which compute the best record name for the origin.


The currency module define a new Monetary field which can be used to store a numeric value linked to a currency field. Such field will have the proper symbol and monetary formatting set automatically.

The currency is now inheriting from DigitsMixin which permit to use it as digits attribute.


The “Replace Party” wizard can now also update reference field to point to the new party.


The unit of measure is now inheriting from DigitsMixin which permit to use it as digit attribute.


The BoM can now have many inputs or outputs with the same product. We removed the unique constraint on the product of the lists.


The projects and tasks are using now the path mechanism instead of MPTT to speed up searching on their tree structure.


The process method have been refactored into different methods. This allowed a design which can process multiple purchases at once and improve the speed.


The process method have been refactored into different methods. This allowed a design which can process multiple sales at once and improve the speed.

In order to group inside the same shipment only moves with the same cost method, the cost method from the sale is now stored on the shipment.


We provide now a unique method that is used to sort the quantities to pick for assignation. This method can be extended to implement custom strategy like FIFO, LIFO or FEFO.

The move has now a property which returns the warehouse to which the move is linked. This property replace the previous cost warehouse.

Source link

Latest articles

Related articles

Leave a reply

Please enter your comment!
Please enter your name here