woocommerce / woocommerce/wc-api-python
The SKU (xxxxxx) you are trying to insert is already under processing
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 216
- Fork
- 108
- Merge medio
- 6h 34m
- PR unite (30g)
- 1
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Non viene indicato alcun file del repository né alcun test. Inizia dalle chiamate mostrate a wcapi.get, wcapi.put e wcapi.post per l’endpoint products e riproduci la risposta di WooCommerce con la riga CSV; per considerare il lavoro completato sarebbero necessarie una modifica confermata e circoscritta al repository e un test, nessuno dei quali è specificato da questo report.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- api
- Tipo di issue
- Bug
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 15/100