Commit Graph

237 Commits

Author SHA1 Message Date
Maikel Linke
fbdc6c9bd0 Split growing supplied product builder 2025-02-18 13:08:46 +11:00
Maikel Linke
6707516203 Automatically document responses for DFC API w/o tag 2025-02-18 12:58:10 +11:00
Maikel Linke
d39da6d0da Provide endpoint to show a product group
Our Spree::Product corresponds to a DFC SuppliedProduct with variants.
2025-02-18 12:58:09 +11:00
Maikel Linke
35d7bf7a3b Add dfc-b:isVariantOf to supplied products 2025-02-18 12:58:09 +11:00
Maikel Linke
9ac56ab02b Remove outdated spec
A while ago I was told that an absent stock limitation means unlimited
stock. But that can't be distinguished from just not wanting to update
the stock level.

In the meantime, a new stock policy model was proposed. But for now we
have a workaround, setting `-1` as value for unlimited stock.

* https://github.com/datafoodconsortium/ontology/discussions/112
2025-02-13 11:22:04 +11:00
Maikel Linke
710e1654d0 Report DFC server errors to Bugsnag 2025-02-11 13:01:05 +11:00
Maikel Linke
9d30f007a9 Format spec file 2025-02-11 12:36:00 +11:00
Maikel Linke
c9f319aa96 Find broader taxon if we don't have a specific one
For example, when importing `beef` products associate the type `meat-product`
instead because we don't have a specific beef category.
2025-01-30 11:10:47 +11:00
Maikel Linke
1fcefcfcd0 Remove now useless wrapper class 2025-01-30 10:11:03 +11:00
Gaetan Craig-Riou
6fb86dd4ac Merge pull request #13093 from mkllnk/dfc-token-error
Handle wrong OIDC tokens gracefully
2025-01-27 12:56:23 +11:00
Maikel Linke
8636d3fc00 Handle wrong OIDC tokens gracefully
If you copy and paste only part of a token then a general DecodeError is
raised. It's the parent class for all other related errors like for
expired signatures.

Now we just fail authentication instead of raising a server error.
2025-01-24 09:01:04 +11:00
Maikel Linke
64608beaa8 Remove DefaultStockLocation created in setup 2025-01-22 12:01:57 +11:00
Maikel Linke
84648690a6 Publish price as in new DFC standard 2025-01-16 09:45:26 +11:00
Maikel Linke
0bd6fe6709 Fix setting stock from wholesale offer 2025-01-07 11:03:36 +11:00
Maikel Linke
21195c5750 Calculate stock from wholesale products 2025-01-07 11:03:36 +11:00
Maikel Linke
ddaeff7c53 Use DfcCatalog in offer broker 2025-01-07 11:03:34 +11:00
Maikel Linke
ef08ae49fe DRY DFC catalog logic for re-use 2025-01-07 10:49:37 +11:00
Maikel Linke
5719d0682d Remove duplicate lines, dev leftovers 2024-11-29 16:16:43 +11:00
Maikel Linke
c4c95d472e Use defined DFC orders states 2024-11-29 16:16:42 +11:00
Maikel Linke
3e7f61c4d1 Add new DFC vocabulary
So that we can use order states programmatically.
2024-11-29 16:16:42 +11:00
Ahmed Ejaz
c0887b1806 12890: remove city from response 2024-11-25 19:29:31 +05:00
Ahmed Ejaz
3b83200a14 12890: fix specs 2024-11-22 12:40:54 +05:00
David Cook
a123369f8d Merge pull request #12935 from mkllnk/dfc-doc-deterministic
Make DFC API docs deterministic
2024-10-23 16:59:55 +11:00
Maikel Linke
1eb70370c7 Import product's invalid weight as 1 item
We previously stored a scale which made the product screen believe that
we are dealing with weight.
2024-10-16 09:27:49 +11:00
Maikel Linke
d1ebe4e1d1 Make DFC API docs deterministic 2024-10-15 15:47:31 +11:00
Gaetan Craig-Riou
40afe7e0ab Fix rebase issue 2024-10-14 15:02:34 +11:00
Gaetan Craig-Riou
9b4cd014bf Fix DFC supplied product builder 2024-10-14 15:01:18 +11:00
Maikel Linke
7d2d14320f Spec that connector update fixed bug 2024-10-11 09:54:29 +11:00
Maikel Linke
bda506528f Fix import of zero-weight products
We don't allow variants to have zero weight or volume. But a DFC import
in production showed that some catalogs list products with zero weight.
Despite the products having a weight, it's simpler to treat these as
items.
2024-10-10 14:08:02 +11:00
Maikel Linke
f0b6403c1d Fix locally flaky spec around date filters
This spec would fail on Australian systems early in the morning or in
other timezones accordingly.
2024-10-10 09:58:01 +11:00
Maikel Linke
2465780c1c Import prices and stock levels from DFC catalog
We were already importing stock levels from offers but now we are
looking at catalog items as well.
2024-09-26 14:32:01 +10:00
Maikel Linke
9f43244312 Import on-demand stock setting in DFC import 2024-09-25 10:55:41 +10:00
Maikel Linke
66f080232f Import DFC product images 2024-09-25 10:55:41 +10:00
Maikel Linke
439f0cac64 Raise errors on DFC requests
The simplified API was only returning the response body, not allowing us
to inspect if an error occurred. Since an error should be an exception
when communicating with a standardised protocol, we raise an error and
keep our simple API.
2024-09-25 10:55:39 +10:00
Maikel Linke
98966f6b89 Place backorders for DFC products 2024-09-25 10:55:39 +10:00
Maikel Linke
d52134dad8 Filter sales data by dates 2024-08-30 15:00:06 +10:00
Maikel Linke
1016656781 Publish data only of participating distributors 2024-08-30 14:34:39 +10:00
Maikel Linke
bd1611630f Build DFC data for sales 2024-08-30 14:34:32 +10:00
Maikel Linke
ce28c10c7e Move sales data generation to a service object
There will be lots and lots. The sales data root object is also the
authenticated person. The data has its own URL (semantic id) which
doens't need to contain the user id.

The service object can also be tested more easily. I'm setting up the
test data here.
2024-08-30 14:30:46 +10:00
Maikel Linke
4342d3b912 Add DFC API endpoint for sales data 2024-08-30 14:30:46 +10:00
Maikel Linke
ec828c335d Remove superfluous FDC-specific request class 2024-08-07 15:09:05 +10:00
Maikel Linke
6d03a8ddf3 Test that the FDC is now complying with the DFC 2024-08-07 15:09:05 +10:00
Maikel Linke
fd8973862e Stabilise flaky spec with unique taxons
The test was creating two "Soft Drinks" taxons and it was random which
one was applied to a new product. Changing one taxon to a different one
removes the ambiguity.
2024-08-07 13:50:51 +10:00
wandji20
287f65ec8e Ensure product category error message is shown when creating new product [OFN-12591] 2024-08-01 08:58:54 +01:00
Gaetan Craig-Riou
848144d378 Fix DFC engine 2024-07-03 11:21:28 +10:00
Maikel Linke
a1992aed7c Handle string values for variant unit value
The FDC API is returning all values as strings. This should probably be
handled in the Connector long-term.
2024-05-28 17:00:06 +10:00
Maikel Linke
1f00662709 Add service to access FDC API
The current implementation of the FDC is not adhering to the DFC
standard. The difference is added in this compatibility layer.

This should be temporary code. The FDC dev team should change their API
in their next development cycle.
2024-05-28 17:00:06 +10:00
Maikel Linke
635234a889 Enable POSTing DFC data 2024-05-28 15:10:05 +10:00
Maikel Linke
6317fe1b71 Disable RSpec monkey patching 2024-05-09 12:24:41 +10:00
Maikel Linke
64d633c64e Publish enterprise website with https:// 2024-04-23 13:50:46 +10:00