def reserve_image(image_id, user_id):
try:
connection_images = mysql.connector.connect(
host=host,
user=user,
password=password,
database=database
)
connection_users = mysql.connector.connect(
host=host,
user=user,
password=password,
database=user_database
)
cursor_images = connection_images.cursor()
cursor_users = connection_users.cursor()
# Kullanıcının seçili imageini kontrol et
cursor_users.execute("SELECT selected_image FROM users WHERE id = %s", (user_id,))
selected_image = cursor_users.fetchone()[0]
if selected_image:
# Kullanıcının zaten seçili bir imagei varsa işlemi sonlandır
flash("You have already selected a image.", "error")
return
# Imagein rezerve durumunu kontrol et
cursor_images.execute("SELECT Reserved FROM images WHERE Image_ID = %s", (image_id,))
reserved = cursor_images.fetchone()[0]
if reserved:
# Image zaten rezerve edilmişse işlemi sonlandır
flash("The image is already reserved.", "error")
return
# WooCommerce API ile ödeme işlemi gerçekleştirme
payment_data = {
"payment_method": "stripe", # Ödeme yöntemi
"payment_method_title": "Credit Card", # Ödeme yöntemi başlığı
"set_paid": True # Ödemeyi tamamlandı olarak işaretleme
}
response = wcapi.post("orders", payment_data)
if response.status_code != 201 or response.json().get("payment_status") != "paid":
# Ödeme başarısız ise hata mesajı göster
flash("An error occurred while processing the payment.", "error")
return
# Ödeme başarılıysa veritabanında ödeme durumunu güncelleme
payment_status = "Paid" # Ödeme durumu
cursor_users.execute("UPDATE users SET payment_status = %s WHERE id = %s", (payment_status, user_id))
connection_users.commit()
# Sepete ürün ekleme işlemi
product_id = 17 # Eklenecek ürünün ID'si
quantity = 1 # Eklenecek ürünün miktarı
data = {
"product_id": product_id,
"quantity": quantity
}
response = wcapi.post("cart/items", data)
if response.status_code != 201:
# Sepete ekleme başarısız ise hata mesajı göster
flash("An error occurred while adding the item to the cart.", "error")
return
# Image veritabanında rezervasyon işlemi
cursor_images.execute("UPDATE images SET Reserved = TRUE WHERE Image_ID = %s", (image_id,))
connection_images.commit()
cursor_images.close()
cursor_users.close()
connection_images.close()
connection_users.close()
except mysql.connector.Error as error:
print("Hata oluştu:", error)`
字符串
所以,我的功能是这样的.我有一个网页,包括您可以点击和保留它们的图像.我想使用的方式,当用户点击它的保留按钮.它会添加到购物车到用户的购物车,它会工作,如果它的支付.然后用户将上传图像.
我做了一个函数来测试API,并尝试手动添加到购物车。
wcapi = API(
url=store_url,
consumer_key=consumer_key,
consumer_secret=consumer_secret,
version="wc/v3"
)
# Eklenecek ürünün verileri
product_id = 17
quantity = 1
# Sepete ürün ekleme işlemi
def add_to_cart(product_id):
data = {
'product_id': product_id,
'quantity': quantity,
}
print(data)#17
response = wcapi.post("cart/items", data)
print(response.json())
# İstek sonucunu kontrol etme
if response.status_code == 200:
print('Ürün başarıyla sepete eklendi.')
else:
print('Ürün sepete eklenirken bir hata oluştu.')
print(data)
# Sepete ürün ekleme işlemini çağırma
add_to_cart(product_id)
型
它给出了“'code':'rest_no_route','message':'您的当前状态已被禁用,' data ':' status ':404}}"。
我得到了产品。'product_id':17,'quantity':1}
我是新来的。我知道我可能有批判性思维或实践错误。试图解决这个问题,以便我可以继续其他问题。基本上,我的商店里只有一个产品。我希望能够将该产品添加到购物车。如果我能设法添加到购物车并支付,然后相应地刷新相册页面。然后,它将是成功的。如果你来到这里并阅读所有,先谢谢你了。保重!
1条答案
按热度按时间5ssjco0h1#
在WooCommerce中,您似乎使用了错误的URL来将商品添加到购物车。要将商品添加到购物车,您应该使用正确的端点,其格式如下:
字符串
下面是一个如何在Pyhton代码中构造请求的示例:
型
请确保将“your-wooCommerce-store.com”、“your-consumer-key”和“your-consumer-secret”替换为您实际的WooCommerce商店的详细信息。这将允许您使用REST API正确地将商品添加到WooCommerce商店的购物车中。
如果您遇到任何其他问题,请仔细检查您的身份验证详细信息,并确保您的WooCommerce商店已正确配置为接受API请求。