Update PIM product

In this example, we will update the products from the PIM (using pagination).

import requests import json def get_all_products_from_pim(): url_update = 'https://pim-client.wizart.ai/api/customer/articles?page=1' headers = { 'Accept': 'application/json', 'Authorization': access_token } get_uploaded_products = requests.get(url_update, headers=headers, timeout=None) uploaded_products = json.loads(get_uploaded_products.text) total_num_page = uploaded_products['meta']['last_page'] #get all pages for page_num in range(1, total_num_page + 1): try: url_get_exist_product = f'https://pim-client.wizart.ai/api/customer/articles?page={page_num}&locale=en' get_exist_product = requests.get(url_get_exist_product, headers=headers, timeout=None) all_uploaded_products = json.loads(get_exist_product.text) info_uploaded_products = all_uploaded_products['data'] page_num = page_num + 1 time.sleep(2) except: pass return info_uploaded_products all_products_pim = get_all_products_from_pim() def update_product(): for products_pim in all_products_pim: product_uuid = products_pim['uuid'] collection_uuid = products_pim['collection']['uuid'] update_url = f'https://pim-client.wizart.ai/api/v2/collection/{collection_uuid}/article/{product_uuid}' headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': access_token } #here, you can have your loop that iterates through your update list. payload = { "description": update_description, "link": [update_link], "locale": "en", "availability": update_availability, "name": update_name } response = requests.patch(update_url, headers=headers, json=payload)
  1. Imports the necessary libraries (requests and json).

  2. Defines a function named get_all_products_from_pim that retrieves all products from the PIM system. It sends a GET request to the specified URL (https://pim-client.wizart.ai/api/customer/articles?page=1) with the appropriate headers, and then iterates through all the pages of products using a loop. The retrieved product information is stored in the info_uploaded_products variable.

  3. Calls the get_all_products_from_pim function and stores the returned products in the all_products_pim variable.

  4. Defines a function named update_product that updates each product in the PIM system. It iterates through the all_products_pim list, extracts the necessary information (such as product UUID and collection UUID), and constructs the update URL using the extracted information. The function then sends a PATCH request to the update URL with the appropriate headers and payload, which contains the updated product information.

  5. The response from the PATCH request is not handled in the provided code.