The SKU (xxxxxx) you are trying to insert is already under processing
还没有人认领这个 Issue。
评估
调研方向
没有指定任何仓库文件或测试。请从针对 products 端点所示的 wcapi.get、wcapi.put 和 wcapi.post 调用入手,并使用 CSV 行复现 WooCommerce 响应;要视为完成,需要确认存在一项限定在仓库范围内的更改以及一个测试,但这份报告没有指定其中任何一项。
由索引模型根据 Issue 内容生成。
描述
Hi guys, I have a problem to create new product when import csv file, receive this erros e in log to woocommerce.
{
"error": "woocommerce_rest_product_not_created",
"code": 400
}
my code
import time
import threading
import pandas as pd
from woocommerce import API
wcapi = API(
url="https://xxxx",
consumer_key="AAA",
consumer_secret="AAA",
wp_api=True,
timeout=60,
version="wc/v3"
)
df = pd.read_csv("_@@_teste1produto.csv")
for index, row in df.iterrows():
data = {
'name': row['name'],
'type': row['type'],
'sku': str(row['isbn']),
'regular_price': str(row['price']),
'description': row['description'],
'categories': [{'name': row['categories']}],
'images': [{'src': row['image']}],
'status': row['status'],
'catalog_visibility': row['visibility'],
'tax_status': row['tax_status'],
'weight': str(row['weight']),
'dimensions': {
'length': str(row['length']),
'width': str(row['width']),
'height': str(row['height'])
},
'manage_stock': True,
'stock_quantity': int(row['stock']),
}
product_lock = threading.Lock()
def create_or_update_product(wcapi, row, data):
max_retries = 3
retry_delay = 5
with product_lock:
for attempt in range(max_retries):
produtos_existentes = wcapi.get("products", params={'sku': row['isbn']}).json()
if produtos_existentes and isinstance(produtos_existentes, list) and len(produtos_existentes) > 0:
produto_id = produtos_existentes[0]['id']
resultado_atualizacao = wcapi.put(f"products/{produto_id}", data).json()
if 'id' in resultado_atualizacao:
print(f"Produto {row['name']} atualizado com sucesso! ID: {resultado_atualizacao['id']}")
return
else:
print(f"Erro ao atualizar o produto {row['name']}: {resultado_atualizacao}")
if attempt < max_retries - 1:
print(f"Tentando novamente em {retry_delay} segundos...")
time.sleep(retry_delay)
else:
resultado_criacao = wcapi.post("products", data).json()
if 'id' in resultado_criacao:
print(f"Produto {row['name']} criado com sucesso! ID: {resultado_criacao['id']}")
return
elif resultado_criacao.get('code') == 'woocommerce_rest_product_not_created' and 'already under processing' in resultado_criacao.get('message', ''):
print(f"Produto {row['name']} está sendo processado. Tentando novamente em {retry_delay} segundos...")
time.sleep(retry_delay)
else:
print(f"Erro ao criar o produto {row['name']}: {resultado_criacao}")
return
if row['isbn']:
create_or_update_product(wcapi, row, data)
someone can I help me? please.
- 主要语言
- Python
- 星标
- 216
- 派生
- 108
- 平均合并
- 6 小时 34 分钟
- 30 天内合并 PR
- 1
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
woocommerce/wc-api-python 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 25/100
woocommerce/wc-api-python#108 ·
-
难度 4/5 3-5 天 新手友好度 32/100
woocommerce/wc-api-python#106 ·
-
难度 4/5 3-5 天 新手友好度 25/100
woocommerce/wc-api-python#105 ·
-
Json Formatting 未关闭
难度 2/5 1-3 小时 新手友好度 35/100
woocommerce/wc-api-python#103 ·
-
难度 3/5 1-2 天 新手友好度 35/100
woocommerce/wc-api-python#102 · 2 条评论 ·
查看 woocommerce/wc-api-python 的全部 Issue
相似的 Issue
-
documentation help wanted
难度 2/5 1-3 小时 新手友好度 90/100
-
难度 2/5 1-3 小时 新手友好度 90/100
simonw/sqlite-utils#872 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
-
难度 2/5 1-3 小时 新手友好度 82/100
-
难度 2/5 1-3 小时 新手友好度 78/100