The SKU (xxxxxx) you are trying to insert is already under processing

未关闭
#104 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
15/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
python
领域
api

调研方向

没有指定任何仓库文件或测试。请从针对 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

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

woocommerce/wc-api-python 的其他 Issue

查看 woocommerce/wc-api-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。