diff --git a/lnbits/extensions/offlineshop/crud.py b/lnbits/extensions/offlineshop/crud.py
index 0544edea..2d9376dd 100644
--- a/lnbits/extensions/offlineshop/crud.py
+++ b/lnbits/extensions/offlineshop/crud.py
@@ -32,6 +32,13 @@ async def get_or_create_shop_by_wallet(wallet: str) -> Optional[Shop]:
return Shop(**dict(row)) if row else None
+async def set_wordlist(shop: int, wordlist: str) -> Optional[Shop]:
+ await db.execute(
+ "UPDATE shops SET wordlist = ? WHERE id = ?", (wordlist, shop),
+ )
+ return await get_shop(shop)
+
+
async def add_item(shop: int, name: str, description: str, image: Optional[str], price: int, unit: str,) -> int:
result = await db.execute(
"""
diff --git a/lnbits/extensions/offlineshop/static/js/index.js b/lnbits/extensions/offlineshop/static/js/index.js
index a55cf436..84b6f865 100644
--- a/lnbits/extensions/offlineshop/static/js/index.js
+++ b/lnbits/extensions/offlineshop/static/js/index.js
@@ -85,6 +85,25 @@ new Vue({
LNbits.utils.notifyApiError(err)
})
},
+ async updateWordlist() {
+ try {
+ await LNbits.api.request(
+ 'PUT',
+ '/offlineshop/api/v1/offlineshop/wordlist',
+ this.selectedWallet.inkey,
+ {wordlist: this.offlineshop.wordlist}
+ )
+ this.$q.notify({
+ message: `Wordlist updated. Counter reset.`,
+ timeout: 700
+ })
+ } catch (err) {
+ LNbits.utils.notifyApiError(err)
+ return
+ }
+
+ this.loadShop()
+ },
async sendItem() {
let {id, name, image, description, price, unit} = this.itemDialog.data
const data = {
diff --git a/lnbits/extensions/offlineshop/templates/offlineshop/index.html b/lnbits/extensions/offlineshop/templates/offlineshop/index.html
index 6ede5454..8de5a8ed 100644
--- a/lnbits/extensions/offlineshop/templates/offlineshop/index.html
+++ b/lnbits/extensions/offlineshop/templates/offlineshop/index.html
@@ -90,6 +90,10 @@
Wallet Shop
+ Wordlist
+