Как успешно создать продукт с помощью API woo commerce с python - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь создать / обновить продукты из моего приложения django на моем веб-сайте.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу создать продукт из своего django для веб-сайт, использующий API woo commerce.

Процедура обновления работает.

Вот мой код:

def create_woocommerce_product_individually(wcapi,name,fetched_sku,fetched_url,short_description,description,woo_commerce_category_id):
    data = {
            "name": name,
            "sku": fetched_sku,
            "images": [
                    {
                    "src": fetched_url
                    },
                      ],
            "short_description": short_description,
            "description": description,
            "categories": [
            {
                "id": woo_commerce_category_id
            }
                        ],
            }
    #post data to the woocommerce API
    wcapi.post("products",data).json()
    print(" 3A STEP - WOO PRODUCT CREATED IN THE SITE")




def update_woocommerce_product_individually(wcapi,name,fetched_sku,fetched_url,short_description,description,woo_commerce_category_id,post_id):
    data = {
        "name": name,
        "sku": fetched_sku,
        "images": [
                {
                "src": fetched_url
                },
                  ],
        "short_description": short_description,
        "description": description,
        "categories": [
        {
            "id": woo_commerce_category_id
        }
                    ],
        }
    #put data to the woocommerce API
    wcapi.put("products/"+str(post_id),data).json()
    print(" 3B STEP - WOO PRODUCT UPDATED IN THE SITE")

Вот часть кода, вызывающая вышеупомянутые функции основаны на ответе:

r=wcapi.get("products/?sku="+fetched_sku).json()
    if len(r) > 0:
        #if it exists in the website , take the post id
        post_id=r[0]['id']


    if len(r) == 0:
        #call the create
        create_woocommerce_product_individually(wcapi,name,fetched_sku,fetched_url,short_description,description,woo_commerce_category_id)
        product.is_stored_to_website = True
        product.save()
        print("Stored : {} \n".format(product.is_stored_to_website))
    else:
        #call the update
        update_woocommerce_product_individually(wcapi,name,fetched_sku,fetched_url,short_description,description,woo_commerce_category_id,post_id)
        product.is_stored_to_website = True
        product.save()
        print("Stored : {} \n".format(product.is_stored_to_website))

Я читал на некоторых форумах, что тема WordPress может быть проблемой для создания. Я изменил его, и проблема не решена.

Я что-то упускаю или неправильно пишу что-то связанное с вызовом API для создания?

1 Ответ

0 голосов
/ 13 марта 2020

Распечатайте ответ API, чтобы увидеть, что происходит.

Chage:

wcapi.post("products",data).json()
print(" 3A STEP - WOO PRODUCT CREATED IN THE SITE")

Кому:

result = wcapi.post("products",data).json()
print(" 3A STEP - WOO PRODUCT CREATED IN THE SITE - {}".format(result))

Вот как я это делаю это:

data = {'categories': [{'id': 56}],
  'dimensions': {'height': '', 'length': '1990.0', 'width': '1180.0'},
  'images': [],
  'name': 'Product Name',
  'regular_price': '4769',
  'short_description': '<h3>Blbalablabal</h3>\n'
                  '<ul>\n'
                  '\t<li><strong>caracteristic1: </strong>12.5 mm</li>\n'
                  '\t<li><strong>caracteristic3: </strong>1.99 x 1.18 m</li>\n'
                  '\t<li><strong>caracteristic3: </strong>Circular '
                  'total</li>\n'
                  '</ul>\n',
 'sku': '56565',
 'slug': 'product-name',
 'status': 'publish',
 'type': 'simple',
 'weight': ''}

Затем добавьте продукт:

    def add_product(self, data):
        return self.API.post("products", data).json()

Надеюсь, это поможет!

...