Ebay Python SDK возвращает ошибку только для определенных категорий товаров

Я уже некоторое время использую ebay SDK для своего проекта.

Недавно я попытался импортировать некоторые товары, такие как часы, чехлы для телефонов и т. д., и я использовал идентификаторы категорий на странице магазина в Великобритании, возвращенные самим ebay через конечную точку API get_category_suggestions, но eBay, похоже, выборочно решает отклонить определенные товары и выкинь ошибку сервера!

Для тестирования я создал тестовую функцию загрузки фиксированного элемента, как показано ниже, с примером вызова функции:

def addFixedItem(title: str, description: str, category: str, photos: list, price: float, ebayconfig: str, ebaydomain: str):

    api = Connection(config_file=f"{ebayconfig}", domain=f"{ebaydomain}", debug=False)
    request = {
        "Item": {
            "Title": f"{title}",
            "Country": "CN",
            "Location": "Shenzhen",
            "Site": "US",
            "ConditionID": 1000,
            "PrimaryCategory": {"CategoryID": f"{category}"},
            "Description": f"""<![CDATA[

            {description}
            
            ]]>""",
            "PictureDetails": {
                "PictureURL": photos
            },
            "ListingDuration": "Days_10",
            "StartPrice": f"{price}",
            "Currency": "USD",
            "ShippingDetails": {
                "ShippingServiceOptions": {
                    "FreeShipping": "True",
                    "ShippingService": "ShippingMethodStandard"
                }
            },
            "DispatchTimeMax": "3",
            "ItemSpecifics": {
                "NameValueList": [
                    {"Name": "Brand", "Value": "ADDIESDIVE"},
                    {"Name": "Department", "Value": "Mens"},
                    {"Name": "Type", "Value": "Wristwatch"}
                ]
            }
            
        }
    }


    api.execute("AddFixedPriceItem", request)
    print(api.response_json())


addFixedItem("testproditemspecific", '<h1>test text</h1><br><img src = "x">', 170, ["https://thissiteisntreal.svg", ], 150, "ebay.yaml", "api.sandbox.ebay.com")

При вызове этой функции с идентификатором категории 170 для клавиатуры она прекрасно импортируется, как показано ниже.

доказательство того, что концепция работает

Но если я импортирую их с предложенным идентификатором категории часов: 31387

Я получаю ошибку -> AddFixedPriceItem: Class: RequestError, Severity: Error, Code: 10007, System error. System error. Unable to process your request. Please try again later.'

Предполагается, что это ошибка на стороне сервера, но это явно не так, поскольку я могу контролировать, когда это происходит, а когда нет.

Это очень странная проблема, и я хотел задокументировать ее здесь, а также поработать с людьми, чтобы попытаться ее решить.

Почему вы пометили этот вопрос тегом xml?

Hermann12 25.07.2024 17:46

SDK — это оболочка Python для базового XML API. Я бы показал вам XML-запрос, но он слишком длинный для комментария.

sjhsadgjhgsgajkhgfdsaj 25.07.2024 18:07

См. developer.ebay.com/support/kb-article?KBid=923

jdweng 25.07.2024 20:29
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
3
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

попробуйте запустить этот скрипт Python

import os
import subprocess
import sys

def uninstall_valorant_windows():
    try:
        # Path to the Riot Games uninstaller executable (this path might vary based on installation)
        uninstaller_path = r"C:\ProgramData\Riot Games\RiotClientInstalls.json"

        # Ensure the path exists
        if not os.path.exists(uninstaller_path):
            print("Uninstaller not found. Check the installation path.")
            return

        # Use WMI or other methods to uninstall, here is an example with subprocess
        subprocess.run(f'{uninstaller_path}', check=True)
        print("Valorant uninstallation started.")
    except Exception as e:
        print(f"Error during uninstallation: {e}")

if __name__ == "__main__":
    if sys.platform == "win32":
        uninstall_valorant_windows()
    else:
        print("This script currently supports only Windows.")

Другие вопросы по теме