View Issue Details

IDProjectCategoryView StatusLast Update
0009954Talermerchant portal webuipublic2026-09-19 14:40
ReporterBohdan Assigned Tosebasjm Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeveritytweakReproducibilityalways
Status informingResolutionfixed 
Product Version1.0 
Target Version1.6Fixed in Version1.6 
Summary0009954: The order which has status claimed can't be deleted using Backoffice
Description c
Steps To Reproduce1) Claim the order with Taler wallet.
2) Go to the backoffice, and try to delete the order with existing buttons.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

has duplicate 0011404 closedsebasjm cannot delete unpaid order in SPA 

Activities

Christian Grothoff

2025-05-14 18:32

manager   ~0024908

Well, that's kind-of on purpose to avoid a bad UX at the wallet. But maybe we can improve the SPA UI here.

sebasjm

2026-04-16 18:34

developer   ~0028402

which delete button ? AFAIK there was never a way to delete on merchant backoffice.

this needs to be converted into a feature if we want to delete orders in ANY place.

AFAIK merchant backend removes them on GC

Bohdan

2026-05-17 20:26

developer   ~0028631

So, in the end, do we want to allow such a possibility?

On one side, we can unlock inventory, on the other side, but at the same time, the UX of wallet users can suffer. In my understanding, the percentage of cases where it brings value is higher than cases when the wallet actually decides to pay for something, a bit later than the merchant decides to delete the order.

Christian Grothoff

2026-05-17 20:30

manager   ~0028632

Exactly: the locked inventory can be a big problem, if stocks are low and the order was abandoned (but possibly with a long pay deadline!). Now, yes, this can cause UX issues in the wallet (wallet tries to pay, order is gone), but the wallets already must handle this. Furthermore, the idea is to *warn* the (merchant) user that a wallet MAY still be trying to pay and that deleting it may disrupt some user's flow. But the seller may know best (like: customer *did* walk away), and similarly the PoS may know best (bad order entered, customer changed their mind), and we absolutely MUST have a way to unlock the inventory in this case.

sebasjm

2026-05-18 12:01

developer   ~0028644

ACK I will add the delete when unclaimed or claimed but still unpaid -> useful when the customer walks away.

Also I agree that the locked product is an issue but I think it does not solve the problem nicely in others situations when there is no customer walking away or the merchant just forget to be neat and tidy.
I propose merchant portal help to fix the problem when it raises, on the order creation.

so in https://docs.taler.net/core/api-merchant.html#get-[-instances-$INSTANCE]-private-orders, add:

locked_products – Optional. List of products id. Only returns orders that have a lock with any of the products on the list.

Merchant portal can show a dialog after receiving 410 (out of stock) explaining that can delete those orders (older first, paid=no) inplace without interrupting the current order creation.
This will be also useful for automated processes.

Florian Dold

2026-08-27 08:34

manager   ~0029653

Tested with latest merchant webui, deletion of claimed order works after checking the "force deletion" checkbox.

Issue History

Date ModifiedUsernameFieldChange
2025-05-13 21:49BohdanNew Issue
2025-05-14 18:32Christian GrothoffNote Added: 0024908
2025-05-14 18:32Christian GrothoffStatusnew => implementing
2025-05-14 18:32Christian GrothoffTarget Version1.0 stretch goals => 1.5
2025-12-07 09:41Christian GrothoffSeverityminor => text
2025-12-07 09:41Christian GrothoffSeveritytext => tweak
2025-12-21 21:07Christian GrothoffTarget Version1.5 => 1.8
2026-02-26 21:10Christian GrothoffAssigned To => sebasjm
2026-02-26 21:10Christian GrothoffStatusimplementing => assigned
2026-02-26 21:10Christian GrothoffStatusassigned => implementing
2026-04-16 18:34sebasjmNote Added: 0028402
2026-04-16 18:34sebasjmAssigned Tosebasjm =>
2026-04-16 18:34sebasjmStatusimplementing => feedback
2026-04-16 18:34sebasjmAssigned To => Bohdan
2026-04-16 18:34sebasjmStatusfeedback => assigned
2026-05-17 20:26BohdanNote Added: 0028631
2026-05-17 20:27BohdanAssigned ToBohdan => Christian Grothoff
2026-05-17 20:27BohdanStatusassigned => feedback
2026-05-17 20:30Christian GrothoffNote Added: 0028632
2026-05-17 20:30Christian GrothoffAssigned ToChristian Grothoff => sebasjm
2026-05-17 20:30Christian GrothoffStatusfeedback => implementing
2026-05-17 20:31Christian GrothoffRelationship addedhas duplicate 0011404
2026-05-18 12:01sebasjmNote Added: 0028644
2026-08-23 14:18Florian DoldCategorymerchant backoffice SPA => merchant portal webui
2026-08-27 08:34Florian DoldStatusimplementing => informing
2026-08-27 08:34Florian DoldResolutionopen => fixed
2026-08-27 08:34Florian DoldNote Added: 0029653
2026-09-19 14:38Christian GrothoffTarget Version1.8 => 1.6
2026-09-19 14:40Christian GrothoffFixed in Version => 1.6