frappe / webshop

Open Source eCommerce Platform
GNU General Public License v3.0
101 stars 111 forks source link

Website Item not deleting #194

Closed silkfab closed 2 months ago

silkfab commented 2 months ago

Information about bug

when an item linked to the website item cannot be deleted as a website item, it is showing an error.

Module

stock

Version

"frappe": "15.37.0" "erpnext": "15.32.0"

Installation method

FrappeCloud

Relevant log output / Stack trace / Full Error Message.

### App Versions

{
    "builder": "1.10.1",
    "chat": "0.0.1",
    "crm": "1.19.0",
    "ecommerce_integrations": "1.20.1",
    "email_delivery_service": "0.0.1",
    "erpnext": "15.32.0",
    "frappe": "15.37.0",
    "helpdesk": "0.10.0",
    "hrms": "15.25.2",
    "india_compliance": "15.12.1",
    "insights": "2.2.4",
    "payments": "0.0.1",
    "print_designer": "1.4.0",
    "twilio_integration": "0.0.1",
    "webshop": "0.0.1",
    "wiki": "2.0.0"
}

Route

Form/Website Item/WEB-ITM-0002

Traceback

Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 114, in application
    response = frappe.api.handle(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/__init__.py", line 49, in handle
    data = endpoint(**arguments)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/api/v1.py", line 36, in handle_rpc_call
    return frappe.handler.handle()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 49, in handle
    data = execute_cmd(cmd)
           ^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/handler.py", line 85, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/__init__.py", line 1768, in call
    return fn(*args, **newargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/client.py", line 275, in delete
    delete_doc(doctype, name)
  File "apps/frappe/frappe/client.py", line 506, in delete_doc
    frappe.delete_doc(doctype, name, ignore_missing=False)
  File "apps/frappe/frappe/__init__.py", line 1392, in delete_doc
    return frappe.model.delete_doc.delete_doc(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/delete_doc.py", line 124, in delete_doc
    doc.run_method("on_trash")
  File "apps/frappe/frappe/model/document.py", line 962, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1322, in composer
    return composed(self, method, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 1304, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/frappe/frappe/model/document.py", line 959, in fn
    return method_object(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/webshop/webshop/webshop/doctype/website_item/website_item.py", line 87, in on_trash
    delete_item_from_index(self)
  File "apps/webshop/webshop/webshop/redisearch_utils.py", line 52, in wrapper
    func = function(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/webshop/webshop/webshop/redisearch_utils.py", line 153, in delete_item_from_index
    delete_from_ac_dict(website_item_doc)
  File "apps/webshop/webshop/webshop/redisearch_utils.py", line 52, in wrapper
    func = function(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "apps/webshop/webshop/webshop/redisearch_utils.py", line 161, in delete_from_ac_dict
    ac.sugdel(website_item_doc.web_item_name)
TypeError: RedisearchWrapper.sugdel() missing 1 required positional argument: 'string'

Request Data

{
    "type": "POST",
    "args": {
        "doctype": "Website Item",
        "name": "WEB-ITM-0002"
    },
    "freeze": true,
    "freeze_message": "Deleting WEB-ITM-0002...",
    "headers": {},
    "error_handlers": {},
    "url": "/api/method/frappe.client.delete",
    "request_id": "0b67887d-49f0-4bef-bb8d-e16755d96232"
}

Response Data

{
    "exception": "TypeError: RedisearchWrapper.sugdel() missing 1 required positional argument: 'string'",
    "exc_type": "TypeError",
    "_exc_source": "webshop (app)"
}
Nihantra-Patel commented 2 months ago

Tested, It's deleted properly and worked properly. please check it.

https://github.com/user-attachments/assets/aa95a815-37f9-4a38-80a6-3c141602da5e