Cédric Krier
07a2e268c6
Use bulk context manager
...
Closes #11750
2026-07-15 09:31:05 +02:00
Cédric Krier
bc1de342d1
Pass query as a list of argument to format_args for Shopify query logging
2026-08-06 09:46:51 +02:00
Cédric Krier
264cb3eaee
Add logging info about Shopify request
...
The shopify_app does not generate any logging except the raw info from httpx.
2026-08-06 08:48:19 +02:00
Nicolas Évrard
305301a53e
Replace the administration group by a flag on the user
2026-09-13 17:28:32 +02:00
Cédric Krier
e936e37d8f
Use a sentinel as default value for setting attribute only if changed
...
For new instances, we must set also the attribute with value `None` as they may
be tested later.
Closes #15060
2026-09-03 15:49:20 +02:00
Cédric Krier
c02578478e
Add missing _method to url for webhooks
2026-09-03 15:42:15 +02:00
Nicolas Évrard
331131f111
Use Router to register URL endpoints in the pool
2026-08-28 12:06:27 +02:00
Cédric Krier
3cdb3b0fb5
Call on_change_product only if the sale line has been changed
...
Since f41c9c208d39 the _changed_values is a method instead of a property.
Closes #15013
2026-08-14 18:11:42 +02:00
Cédric Krier
f61dc1afdf
Do not rely on shipments order from sale in test scenario
...
Closes #15009
2026-08-13 23:44:29 +02:00
Cédric Krier
7ef25665ff
Set Shopify warehouse on sale line only if it has changed
...
Closes #14995
2026-08-06 10:52:54 +02:00
Cédric Krier
06e917e5f4
Get Shopify order ID from the order_edit key for orders/edited topic
...
Closes #14992
2026-08-05 10:39:35 +02:00
Cédric Krier
bc6f47d033
Convert request headers to dict and body as text to verify Shopify webhook
...
Closes #14991
2026-08-05 10:07:54 +02:00
Cédric Krier
15d32505dc
Use webhook secret to verify Shopify webhook
...
Closes #14989
2026-08-04 17:32:47 +02:00
Cédric Krier
4bd7cfa657
Clear Shopify ID for product template no more found on Shopify
...
If the Shopify ID of a template can not be found on Shopify, there is no need
to keep it as we could not reactivate the Shopify product it is added back.
Closes #14980
2026-07-30 16:37:30 +02:00
Cédric Krier
1e2c1ab795
Do not set a shipment cost method for Shopify order without shipping line
...
Without a shipping line, there is no carrier selected and thus no shipment cost
method to set.
Closes #14976
2026-07-29 19:30:48 +02:00
Cédric Krier
6b99dc69cc
Use binary version of psycopg for tests
2026-07-17 22:11:32 +02:00
Cédric Krier
1f28439b09
Raise the final exception when all retries of Shopify request has failed
2026-07-21 17:33:03 +02:00
Cédric Krier
a089427b1d
Use dict.get instead of getattr to retrieve user errors from Shopify request
...
The GraphQL library returns dict instead of object.
Closes #14964
2026-07-21 17:32:21 +02:00
Cédric Krier
77966e69f8
Update Shopify product if any variant of the product has been removed
...
Closes #14955
2026-07-14 17:07:07 +02:00
Cédric Krier
ca659201cd
Add a refund line for Shopify refund that are not linked to items
...
Closes #14875
2026-06-16 20:40:21 +02:00
Cédric Krier
bc8151c822
Process Shopify sale only if the authorized payment amount is greater than the amount to pay
...
The correction of #14816 was wrong and the amount to pay should be modified if
there is a global refund.
2026-06-03 15:06:05 +02:00
Cédric Krier
32cae6b2cb
Retry mutation query for Shopify tests
2026-06-25 19:03:12 +02:00
Cédric Krier
a574780de1
Set only one quantity per line items when creating Shopify fulfillment
...
Closes #14912
2026-06-25 15:26:30 +02:00
Cédric Krier
e95e3f989f
Do not reset to quotation Shopify order already processed
...
After a refund the authorized payment amount may be lower than the amount to
pay but the sale should still stay in processing or done state.
Closes #14816
2026-05-05 00:11:08 +02:00
Cédric Krier
3b16f5f6db
Ensure to refund Shopify order only once
...
There are no guarantee from Shopify that the fulfillableQuantity will be
updated just after the refund creation but the sale may be re-processed via the
Shopify webhooks just after the refund.
To avoid to refund multiple times, we need to keep track that the refund was
already be made.
Closes #14776
2026-04-16 11:11:01 +02:00
Cédric Krier
5e3c4ee93c
Fix computation of documentation series for odd minor version
2026-04-20 21:23:36 +02:00
Cédric Krier
d8594bd9fd
Increase version number
2026-04-20 21:08:15 +02:00
Cédric Krier
7f0d38f477
Prepare release 8.0.0
2026-04-20 20:10:13 +02:00
Cédric Krier
de1bb5d5d9
Update translations [skip ci]
2026-04-20 10:38:52 +02:00
Cédric Krier
1c80557101
Sort Shopify products by ID when position is None
...
Closes #14774
2026-04-15 16:26:20 +02:00
Cédric Krier
905a2b20ba
Rename invoice method on shipment into on fulfillment
2026-02-25 11:37:37 +01:00
Cédric Krier
264e27d88e
Replace ShopifyAPI by shopifyapp
...
Closes #14243
2026-03-29 20:05:46 +02:00
Cédric Krier
75ec32b080
Set header for sale from shopify before setting the lines
...
The lines may depend on the header like the shipping line which depends on the
carrier.
Closes #14706
2026-03-25 23:25:50 +01:00
Cédric Krier
df5dc23253
Add support for pick-up delivery method from Shopify
...
Closes #14581
2026-03-27 13:38:34 +01:00
Cédric Krier
41f63dbb1a
Log the update of sales from Shopify
...
Closes #14711
2026-03-26 10:58:16 +01:00
Cédric Krier
248dbc45f2
Fetch all non cancelled Shopify orders
...
Orders with only gift cards are directly archived by Shopify but we need to
fetch them.
2026-02-04 16:39:09 +01:00
Cédric Krier
f9cfa0c422
Add support for gift card products on Shopify
...
Closes #14417
2026-01-09 18:31:28 +01:00
Cédric Krier
39a22ae74f
Use python3 to launch build
2026-03-26 00:32:49 +01:00
Cédric Krier
94c4f0a9e6
Rewrite coverage paths
...
Since tox is running tests on the installed package, the coverage paths are no
more relative to the repository root.
2026-03-25 19:39:52 +01:00
Cédric Krier
a51a6249c0
Add attn to address
...
Closes #14633
2026-02-27 12:55:11 +01:00
Cédric Krier
a61814d46e
Assign shipment before pick in Shopify test scenario
2026-02-10 19:22:32 +01:00
Cédric Krier
145ce8f2f8
Make retrieval of metadata via build really quiet
2026-03-22 09:07:23 +01:00
Cédric Krier
f6cc09c813
Do not check link to help.shopify.com
...
The website requires JavaScript.
2026-03-23 09:03:05 +01:00
Cédric Krier
5310b00496
Remove grouped_slice per IN_MAX
...
The usage of ``grouped_slice`` without size is deprecated since `=
ANY(ARRAY[%s])` is used for PostgreSQL and SQLite is used only for tests.
The ``Database.IN_MAX`` is replaced by ``backend.MAX_QUERY_PARAMS`` which is a
more accurate limit of the backend.
The SQLite limits is indeed SQLITE_MAX_EXPR_DEPTH so we use a empirical value.
2026-03-22 21:05:26 +01:00
Nicolas Évrard
299dd6b1c9
Update to Psycopg 3
...
Closes #10901
2026-03-22 19:53:32 +01:00
Cédric Krier
d3c8a8e55d
Add support for Python 3.14
2026-03-21 09:02:25 +01:00
Cédric Krier
42b0fc7061
Remove support for Python 3.9
2026-03-21 08:48:06 +01:00
Cédric Krier
e15c0b7d7a
Upgrade to pyproject using hatchling as build-system
2026-03-21 18:46:34 +01:00
Cédric Krier
af2e06bb32
Set headers and restrict to 1 worker when checking documentation link
...
This follows the wikipedia robot policy:
https://wikitech.wikimedia.org/wiki/Robot_policy
Closes #14637
2026-03-02 10:58:19 +01:00
Cédric Krier
00c723b0eb
Manage payment terms from Shopify
...
The sale is always confirmed when the Shopify order has payment terms.
Closes #14619
2026-02-20 17:50:02 +01:00