diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index e92e60739d..ceb207eb39 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -122,16 +122,42 @@ and security.")
      "This package provides the Tryton GTK client.")
     (license license:gpl3+)))
 
-(define-public python-trytond-country
+(define-public python-proteus
   (package
-    (name "python-trytond-country")
+    (name "python-proteus")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_country" version))
+       (uri (pypi-uri "proteus" version))
        (sha256
-        (base32 "0k1xw5r2pfd5mvvg3pn3vavwjwpgmm5i6nsc8x421znk4gvvns78"))))
+        (base32 "0kxac5pkps243wf0xbmbd1g5bml96xl94j88y6yyzm093vyli150"))))
+    (build-system python-build-system)
+    ;; Tests require python-trytond-party which requires python-proteus.
+    (arguments
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)))
+    (home-page "http://www.tryton.org/")
+    (synopsis "Library to access a Tryton server as a client")
+    (description
+     "This package provides a library to access Tryton server as a client.")
+    (license license:lgpl3+)))
+
+;;;
+;;;  Tryton modules - please sort alphabetically
+;;;
+
+(define-public python-trytond-account
+  (package
+    (name "python-trytond-account")
+    (version "5.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "trytond_account" version))
+       (sha256
+        (base32 "17q0cxp3vkymbv62ir4c6kg9y8lx8xvz30p0asrbsnbgwl6sjm30"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -145,11 +171,9 @@ and security.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               ;; Doctest contains one test that requires internet access.
-               (invoke "python" runtest "-m" "country" "--no-doctest")))))))
+               (invoke "python" runtest "-m" "account")))))))
     (native-inputs
-     `(("python" ,python)
-       ("python-dateutil" ,python-dateutil)
+     `(("python" ,python-minimal-wrapper)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
@@ -157,28 +181,35 @@ and security.")
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
-       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-pycountry" ,python-pycountry)
+     `(("python-dateutil" ,python-dateutil)
+       ("python-simpleeval" ,python-simpleeval)
+       ("python-sql" ,python-sql)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)
        ("trytond" ,trytond)))
-    (home-page "http://www.tryton.org/")
-    (synopsis "Tryton module with countries")
+    (home-page "https://www.tryton.org/")
+    (synopsis "Tryton module for accounting")
     (description
-     "This package provides a Tryton module with countries.")
+     "This package provides a Tryton module that defines the fundamentals for
+most of accounting needs.")
     (license license:gpl3+)))
 
-(define-public python-trytond-party
+(define-public python-trytond-account-invoice
   (package
-    (name "python-trytond-party")
-    (version "5.6.0")
+    (name "python-trytond-account-invoice")
+    (version "5.6.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_party" version))
+       (uri (pypi-uri "trytond_account_invoice" version))
        (sha256
-        (base32 "0wh7g1g67g4vwxm797ra6fkfvmd3w77vl7nxj76y856cy217gbzp"))))
+        (base32 "0ic5zghg50m6jwdr88y4vgzy58g1h17b63sbhh61brys1cp2dxhc"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -192,11 +223,9 @@ and security.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               ;; Doctest 'scenario_party_phone_number.rst' fails.
-               (invoke "python" runtest "-m" "party" "--no-doctest")))))))
+               (invoke "python" runtest "-m" "account_invoice")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
-       ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
@@ -207,27 +236,39 @@ and security.")
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-sql" ,python-sql)
-       ("python-stnum" ,python-stdnum)
-       ("python-trytond-country" ,python-trytond-country)
+     `(("python-dateutil" ,python-dateutil)
+       ("python-sql" ,python-sql)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-account-product"
+        ,python-trytond-account-product)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)
+       ("python-trytond-product"
+        ,python-trytond-product)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for parties and addresses")
+    (synopsis "Tryton module for invoicing")
     (description
-     "This package provides a Tryton module for (counter)parties and
-addresses.")
+     "This package provides a Tryton module that adds the invoice, payment
+term.")
     (license license:gpl3+)))
 
-(define-public python-trytond-currency
+(define-public python-trytond-account-invoice-stock
   (package
-    (name "python-trytond-currency")
+    (name "python-trytond-account-invoice-stock")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_currency" version))
+       (uri (pypi-uri
+             "trytond_account_invoice_stock"
+             version))
        (sha256
-        (base32 "1x6ynxpbafjpky5vfir9favijj6v5gl62szshladlx14ng6qgm68"))))
+        (base32 "1ky39ab8ax7hla5d9qgmp0p4ra4q6n29xc3wba5qdw3ij8wkn96f"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -241,41 +282,45 @@ addresses.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "currency")))))))
+               (invoke "python" runtest "-m" "account_invoice_stock")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
-       ("python-forex-python" ,python-forex-python)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
        ("python-passlib" ,python-passlib)
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
-       ("python-pycountry" ,python-pycountry)
        ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-sql" ,python-sql)
+     `(("python-trytond-account-invoice"
+        ,python-trytond-account-invoice)
+       ("python-trytond-product"
+        ,python-trytond-product)
+       ("python-trytond-stock" ,python-trytond-stock)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module with currencies")
+    (synopsis "Tryton module to link stock and invoice")
     (description
-     "This package provides a Tryton module that defines the concepts of
-currency and rate.")
+     "This package provides a Tryton module that adds link between invoice
+lines and stock moves.  The unit price of the stock move is updated with the
+average price of the posted invoice lines that are linked to it.")
     (license license:gpl3+)))
 
-(define-public python-trytond-company
+(define-public python-trytond-account-product
   (package
-    (name "python-trytond-company")
+    (name "python-trytond-account-product")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_company" version))
+       (uri (pypi-uri "trytond_account_product" version))
        (sha256
-        (base32 "0fa2yswfal1fbmm0ml845lm6bwcm65fln6s1xq1wqi17xqbbx44x"))))
+        (base32 "0iyk07adixf37jlvn7n27ac12hk23zx09w4s78dr9sfp0lsf8vv8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -289,7 +334,7 @@ currency and rate.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "company")))))))
+               (invoke "python" runtest "-m" "account_product")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
@@ -304,27 +349,32 @@ currency and rate.")
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-trytond-currency"
-        ,python-trytond-currency)
-       ("python-trytond-party" ,python-trytond-party)
+     `(("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-analytic-account"
+        ,python-trytond-analytic-account)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-product"
+        ,python-trytond-product)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module with companies and employees")
+    (synopsis "Tryton module to add accounting on product")
     (description
-     "This package provides a Tryton module that defines the concepts of
-company and employee and extend the user model.")
+     "This package provides a Tryton module that adds accounting on product
+and category.")
     (license license:gpl3+)))
 
-(define-public python-trytond-product
+(define-public python-trytond-analytic-account
   (package
-    (name "python-trytond-product")
-    (version "5.6.1")
+    (name "python-trytond-analytic-account")
+    (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_product" version))
+       (uri (pypi-uri "trytond_analytic_account" version))
        (sha256
-        (base32 "0k1sw1jfgsm9qhyhv4lzama31db6ccjx5f2a7xw96ypflfl9f1xz"))))
+        (base32 "02hv3mmhadz248vy4azrw8rs2mwgsixd4cnzsm82z15gjmfxl34q"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -338,7 +388,7 @@ company and employee and extend the user model.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "product")))))))
+               (invoke "python" runtest "-m" "analytic_account")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
@@ -353,27 +403,31 @@ company and employee and extend the user model.")
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
      `(("python-sql" ,python-sql)
-       ("python-stdnum" ,python-stdnum)
+       ("python-trytond-account"
+        ,python-trytond-account)
        ("python-trytond-company"
         ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module with products")
+    (synopsis "Tryton module for analytic accounting")
     (description
-     "This package provides a Tryton module that defines two concepts: Product
-Template and Product.")
+     "This package provides a Tryton module that adds the fundamentals
+required to analyse accounting using multiple different axes.")
     (license license:gpl3+)))
 
-(define-public python-trytond-account
+(define-public python-trytond-company
   (package
-    (name "python-trytond-account")
-    (version "5.6.1")
+    (name "python-trytond-company")
+    (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_account" version))
+       (uri (pypi-uri "trytond_company" version))
        (sha256
-        (base32 "17q0cxp3vkymbv62ir4c6kg9y8lx8xvz30p0asrbsnbgwl6sjm30"))))
+        (base32 "0fa2yswfal1fbmm0ml845lm6bwcm65fln6s1xq1wqi17xqbbx44x"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -387,9 +441,10 @@ Template and Product.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "account")))))))
+               (invoke "python" runtest "-m" "company")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
+       ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
@@ -397,35 +452,31 @@ Template and Product.")
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-simpleeval" ,python-simpleeval)
-       ("python-sql" ,python-sql)
-       ("python-trytond-company"
-        ,python-trytond-company)
-       ("python-trytond-currency"
+     `(("python-trytond-currency"
         ,python-trytond-currency)
        ("python-trytond-party" ,python-trytond-party)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for accounting")
+    (synopsis "Tryton module with companies and employees")
     (description
-     "This package provides a Tryton module that defines the fundamentals for
-most of accounting needs.")
+     "This package provides a Tryton module that defines the concepts of
+company and employee and extend the user model.")
     (license license:gpl3+)))
 
-(define-public python-trytond-analytic-account
+(define-public python-trytond-country
   (package
-    (name "python-trytond-analytic-account")
+    (name "python-trytond-country")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_analytic_account" version))
+       (uri (pypi-uri "trytond_country" version))
        (sha256
-        (base32 "02hv3mmhadz248vy4azrw8rs2mwgsixd4cnzsm82z15gjmfxl34q"))))
+        (base32 "0k1xw5r2pfd5mvvg3pn3vavwjwpgmm5i6nsc8x421znk4gvvns78"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -439,9 +490,10 @@ most of accounting needs.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "analytic_account")))))))
+               ;; Doctest contains one test that requires internet access.
+               (invoke "python" runtest "-m" "country" "--no-doctest")))))))
     (native-inputs
-     `(("python" ,python-minimal-wrapper)
+     `(("python" ,python)
        ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
@@ -450,35 +502,28 @@ most of accounting needs.")
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-sql" ,python-sql)
-       ("python-trytond-account"
-        ,python-trytond-account)
-       ("python-trytond-company"
-        ,python-trytond-company)
-       ("python-trytond-currency"
-        ,python-trytond-currency)
-       ("python-trytond-party" ,python-trytond-party)
+     `(("python-pycountry" ,python-pycountry)
        ("trytond" ,trytond)))
-    (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for analytic accounting")
+    (home-page "http://www.tryton.org/")
+    (synopsis "Tryton module with countries")
     (description
-     "This package provides a Tryton module that adds the fundamentals
-required to analyse accounting using multiple different axes.")
+     "This package provides a Tryton module with countries.")
     (license license:gpl3+)))
 
-(define-public python-trytond-account-product
+(define-public python-trytond-currency
   (package
-    (name "python-trytond-account-product")
+    (name "python-trytond-currency")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_account_product" version))
+       (uri (pypi-uri "trytond_currency" version))
        (sha256
-        (base32 "0iyk07adixf37jlvn7n27ac12hk23zx09w4s78dr9sfp0lsf8vv8"))))
+        (base32 "1x6ynxpbafjpky5vfir9favijj6v5gl62szshladlx14ng6qgm68"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -492,47 +537,41 @@ required to analyse accounting using multiple different axes.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "account_product")))))))
+               (invoke "python" runtest "-m" "currency")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
+       ("python-forex-python" ,python-forex-python)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
        ("python-passlib" ,python-passlib)
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
+       ("python-pycountry" ,python-pycountry)
        ("python-relatorio" ,python-relatorio)
-       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-trytond-account"
-        ,python-trytond-account)
-       ("python-trytond-analytic-account"
-        ,python-trytond-analytic-account)
-       ("python-trytond-company"
-        ,python-trytond-company)
-       ("python-trytond-product"
-        ,python-trytond-product)
+     `(("python-sql" ,python-sql)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module to add accounting on product")
+    (synopsis "Tryton module with currencies")
     (description
-     "This package provides a Tryton module that adds accounting on product
-and category.")
+     "This package provides a Tryton module that defines the concepts of
+currency and rate.")
     (license license:gpl3+)))
 
-(define-public python-trytond-account-invoice
+(define-public python-trytond-party
   (package
-    (name "python-trytond-account-invoice")
-    (version "5.6.1")
+    (name "python-trytond-party")
+    (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_account_invoice" version))
+       (uri (pypi-uri "trytond_party" version))
        (sha256
-        (base32 "0ic5zghg50m6jwdr88y4vgzy58g1h17b63sbhh61brys1cp2dxhc"))))
+        (base32 "0wh7g1g67g4vwxm797ra6fkfvmd3w77vl7nxj76y856cy217gbzp"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -546,9 +585,11 @@ and category.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "account_invoice")))))))
+               ;; Doctest 'scenario_party_phone_number.rst' fails.
+               (invoke "python" runtest "-m" "party" "--no-doctest")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
+       ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
@@ -559,37 +600,27 @@ and category.")
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-sql" ,python-sql)
-       ("python-trytond-account"
-        ,python-trytond-account)
-       ("python-trytond-account-product"
-        ,python-trytond-account-product)
-       ("python-trytond-company"
-        ,python-trytond-company)
-       ("python-trytond-currency"
-        ,python-trytond-currency)
-       ("python-trytond-party" ,python-trytond-party)
-       ("python-trytond-product"
-        ,python-trytond-product)
+     `(("python-sql" ,python-sql)
+       ("python-stnum" ,python-stdnum)
+       ("python-trytond-country" ,python-trytond-country)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for invoicing")
+    (synopsis "Tryton module for parties and addresses")
     (description
-     "This package provides a Tryton module that adds the invoice, payment
-term.")
+     "This package provides a Tryton module for (counter)parties and
+addresses.")
     (license license:gpl3+)))
 
-(define-public python-trytond-stock
+(define-public python-trytond-product
   (package
-    (name "python-trytond-stock")
+    (name "python-trytond-product")
     (version "5.6.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_stock" version))
+       (uri (pypi-uri "trytond_product" version))
        (sha256
-        (base32 "13m57absscks2advpjz0mmmp6c0c4ksf9aln1brqyd0js38arw76"))))
+        (base32 "0k1sw1jfgsm9qhyhv4lzama31db6ccjx5f2a7xw96ypflfl9f1xz"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -603,9 +634,10 @@ term.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "stock")))))))
+               (invoke "python" runtest "-m" "product")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
+       ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
@@ -616,35 +648,28 @@ term.")
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-simpleeval" ,python-simpleeval)
-       ("python-sql" ,python-sql)
+     `(("python-sql" ,python-sql)
+       ("python-stdnum" ,python-stdnum)
        ("python-trytond-company"
         ,python-trytond-company)
-       ("python-trytond-currency"
-        ,python-trytond-currency)
-       ("python-trytond-party" ,python-trytond-party)
-       ("python-trytond-product"
-        ,python-trytond-product)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for stock and inventory")
+    (synopsis "Tryton module with products")
     (description
-     "This package provides a Tryton module that defines the fundamentals for
-all stock management situations: Locations where products are stored, moves
-between these locations, shipments for product arrivals and departures and
-inventory to control and update stock levels.")
+     "This package provides a Tryton module that defines two concepts: Product
+Template and Product.")
     (license license:gpl3+)))
 
-(define-public python-trytond-stock-lot
+(define-public python-trytond-purchase
   (package
-    (name "python-trytond-stock-lot")
+    (name "python-trytond-purchase")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_stock_lot" version))
+       (uri (pypi-uri "trytond_purchase" version))
        (sha256
-        (base32 "0a0kc8dyx2zw244dhq6lm2jdp1kzpllhdhrmx7kkr9cjhp58rqip"))))
+        (base32 "0znjxhhwqlz4sq96ah9g28mvw4w83rhp022h6vihnz64z2ad3p3z"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -658,9 +683,9 @@ inventory to control and update stock levels.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "stock_lot")))))))
+               (invoke "python" runtest "-m" "purchase")))))))
     (native-inputs
-     `(("python" ,python)
+     `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
@@ -669,32 +694,43 @@ inventory to control and update stock levels.")
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
-       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-trytond-product"
+     `(("python-sql" ,python-sql)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-account-invoice"
+        ,python-trytond-account-invoice)
+       ("python-trytond-account-invoice-stock"
+        ,python-trytond-account-invoice-stock)
+       ("python-trytond-account-product"
+        ,python-trytond-account-product)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
+       ("python-trytond-party" ,python-trytond-party)
+       ("python-trytond-product"
         ,python-trytond-product)
        ("python-trytond-stock" ,python-trytond-stock)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for lot of products")
+    (synopsis "Tryton module for purchase")
     (description
-     "This package provides a Tryton module that defines lot of products.")
+     "This package provides a Tryton module that defines the Purchase model.")
     (license license:gpl3+)))
 
-(define-public python-trytond-account-invoice-stock
+(define-public python-trytond-purchase-request
   (package
-    (name "python-trytond-account-invoice-stock")
+    (name "python-trytond-purchase-request")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri
-             "trytond_account_invoice_stock"
-             version))
+       (uri (pypi-uri "trytond_purchase_request" version))
        (sha256
-        (base32 "1ky39ab8ax7hla5d9qgmp0p4ra4q6n29xc3wba5qdw3ij8wkn96f"))))
+        (base32 "15r1x3jzr83rna1vfpans277785dpmgjr7989icav602nkyhhx0x"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -708,7 +744,9 @@ inventory to control and update stock levels.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "account_invoice_stock")))))))
+               ;; Doctest 'scenario_purchase_request.rst' fails.
+               (invoke "python" runtest
+                       "-m" "purchase_request" "--no-doctest")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
@@ -723,30 +761,29 @@ inventory to control and update stock levels.")
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-trytond-account-invoice"
-        ,python-trytond-account-invoice)
-       ("python-trytond-product"
+     `(("python-trytond-product"
         ,python-trytond-product)
-       ("python-trytond-stock" ,python-trytond-stock)
+       ("python-trytond-purchase"
+        ,python-trytond-purchase)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module to link stock and invoice")
+    (synopsis "Tryton module for purchase requests")
     (description
-     "This package provides a Tryton module that adds link between invoice
-lines and stock moves.  The unit price of the stock move is updated with the
-average price of the posted invoice lines that are linked to it.")
+     "This package provides a Tryton module that introduces the concept of
+Purchase Requests which are central points to collect purchase requests
+generated by other process from Tryton.")
     (license license:gpl3+)))
 
-(define-public python-trytond-stock-supply
+(define-public python-trytond-stock
   (package
-    (name "python-trytond-stock-supply")
+    (name "python-trytond-stock")
     (version "5.6.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_stock_supply" version))
+       (uri (pypi-uri "trytond_stock" version))
        (sha256
-        (base32 "0lw7qrg58k5pjpp3nz73rmlm8v086l49ri31ci75calm552zpfay"))))
+        (base32 "13m57absscks2advpjz0mmmp6c0c4ksf9aln1brqyd0js38arw76"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -760,10 +797,9 @@ average price of the posted invoice lines that are linked to it.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "stock_supply")))))))
+               (invoke "python" runtest "-m" "stock")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
-       ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
        ("python-magic" ,python-magic)
@@ -774,35 +810,35 @@ average price of the posted invoice lines that are linked to it.")
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-sql" ,python-sql)
-       ("python-trytond-account"
-        ,python-trytond-account)
+     `(("python-simpleeval" ,python-simpleeval)
+       ("python-sql" ,python-sql)
+       ("python-trytond-company"
+        ,python-trytond-company)
+       ("python-trytond-currency"
+        ,python-trytond-currency)
        ("python-trytond-party" ,python-trytond-party)
        ("python-trytond-product"
         ,python-trytond-product)
-       ("python-trytond-purchase"
-        ,python-trytond-purchase)
-       ("python-trytond-purchase-request"
-        ,python-trytond-purchase-request)
-       ("python-trytond-stock" ,python-trytond-stock)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for stock supply")
+    (synopsis "Tryton module for stock and inventory")
     (description
-     "This package provides a Tryton module that adds automatic supply
-mechanisms and introduces the concepts of order point.")
+     "This package provides a Tryton module that defines the fundamentals for
+all stock management situations: Locations where products are stored, moves
+between these locations, shipments for product arrivals and departures and
+inventory to control and update stock levels.")
     (license license:gpl3+)))
 
-(define-public python-trytond-purchase
+(define-public python-trytond-stock-lot
   (package
-    (name "python-trytond-purchase")
+    (name "python-trytond-stock-lot")
     (version "5.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_purchase" version))
+       (uri (pypi-uri "trytond_stock_lot" version))
        (sha256
-        (base32 "0znjxhhwqlz4sq96ah9g28mvw4w83rhp022h6vihnz64z2ad3p3z"))))
+        (base32 "0a0kc8dyx2zw244dhq6lm2jdp1kzpllhdhrmx7kkr9cjhp58rqip"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -816,9 +852,9 @@ mechanisms and introduces the concepts of order point.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               (invoke "python" runtest "-m" "purchase")))))))
+               (invoke "python" runtest "-m" "stock_lot")))))))
     (native-inputs
-     `(("python" ,python-minimal-wrapper)
+     `(("python" ,python)
        ("python-dateutil" ,python-dateutil)
        ("python-genshi" ,python-genshi)
        ("python-lxml" ,python-lxml)
@@ -827,43 +863,30 @@ mechanisms and introduces the concepts of order point.")
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
+       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-sql" ,python-sql)
-       ("python-trytond-account"
-        ,python-trytond-account)
-       ("python-trytond-account-invoice"
-        ,python-trytond-account-invoice)
-       ("python-trytond-account-invoice-stock"
-        ,python-trytond-account-invoice-stock)
-       ("python-trytond-account-product"
-        ,python-trytond-account-product)
-       ("python-trytond-company"
-        ,python-trytond-company)
-       ("python-trytond-currency"
-        ,python-trytond-currency)
-       ("python-trytond-party" ,python-trytond-party)
-       ("python-trytond-product"
+     `(("python-trytond-product"
         ,python-trytond-product)
        ("python-trytond-stock" ,python-trytond-stock)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for purchase")
+    (synopsis "Tryton module for lot of products")
     (description
-     "This package provides a Tryton module that defines the Purchase model.")
+     "This package provides a Tryton module that defines lot of products.")
     (license license:gpl3+)))
 
-(define-public python-trytond-purchase-request
+(define-public python-trytond-stock-supply
   (package
-    (name "python-trytond-purchase-request")
-    (version "5.6.0")
+    (name "python-trytond-stock-supply")
+    (version "5.6.1")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "trytond_purchase_request" version))
+       (uri (pypi-uri "trytond_stock_supply" version))
        (sha256
-        (base32 "15r1x3jzr83rna1vfpans277785dpmgjr7989icav602nkyhhx0x"))))
+        (base32 "0lw7qrg58k5pjpp3nz73rmlm8v086l49ri31ci75calm552zpfay"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -877,9 +900,7 @@ mechanisms and introduces the concepts of order point.")
                    "/site-packages/trytond/tests/run-tests.py")))
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (add-installed-pythonpath inputs outputs)
-               ;; Doctest 'scenario_purchase_request.rst' fails.
-               (invoke "python" runtest
-                       "-m" "purchase_request" "--no-doctest")))))))
+               (invoke "python" runtest "-m" "stock_supply")))))))
     (native-inputs
      `(("python" ,python-minimal-wrapper)
        ("python-dateutil" ,python-dateutil)
@@ -890,41 +911,24 @@ mechanisms and introduces the concepts of order point.")
        ("python-polib" ,python-polib)
        ("python-proteus" ,python-proteus)
        ("python-relatorio" ,python-relatorio)
-       ("python-sql" ,python-sql)
        ("python-werkzeug" ,python-werkzeug)
        ("python-wrapt" ,python-wrapt)))
     (propagated-inputs
-     `(("python-trytond-product"
+     `(("python-sql" ,python-sql)
+       ("python-trytond-account"
+        ,python-trytond-account)
+       ("python-trytond-party" ,python-trytond-party)
+       ("python-trytond-product"
         ,python-trytond-product)
        ("python-trytond-purchase"
         ,python-trytond-purchase)
+       ("python-trytond-purchase-request"
+        ,python-trytond-purchase-request)
+       ("python-trytond-stock" ,python-trytond-stock)
        ("trytond" ,trytond)))
     (home-page "https://www.tryton.org/")
-    (synopsis "Tryton module for purchase requests")
+    (synopsis "Tryton module for stock supply")
     (description
-     "This package provides a Tryton module that introduces the concept of
-Purchase Requests which are central points to collect purchase requests
-generated by other process from Tryton.")
+     "This package provides a Tryton module that adds automatic supply
+mechanisms and introduces the concepts of order point.")
     (license license:gpl3+)))
-
-(define-public python-proteus
-  (package
-    (name "python-proteus")
-    (version "5.6.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "proteus" version))
-       (sha256
-        (base32 "0kxac5pkps243wf0xbmbd1g5bml96xl94j88y6yyzm093vyli150"))))
-    (build-system python-build-system)
-    ;; Tests require python-trytond-party which requires python-proteus.
-    (arguments
-     `(#:tests? #f))
-    (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)))
-    (home-page "http://www.tryton.org/")
-    (synopsis "Library to access a Tryton server as a client")
-    (description
-     "This package provides a library to access Tryton server as a client.")
-    (license license:lgpl3+)))
