Hi,
To add products to the cart in Odoo 15 using the REST API, you can follow these steps:
1. Authenticate and obtain an authentication token: You need to authenticate with the Odoo server and obtain an authentication token. This token will be used for subsequent API requests. You can use the `/web/session/authenticate` endpoint to authenticate and obtain the token.
2. Add products to the cart: Find the user’s cart using the ORM method and use the `/shop/cart/update_json` controller to add products to the cart using the values received. You need to provide the cart ID and the product details such as the product ID, quantity, and other relevant information.
Here's an example of how you can achieve this using Python and the `requests` library:
import requests
import json
# Authenticate and obtain authentication token
def _connect_to_odoo(self, url, db, username, password,
parameters):
#Set the endpoint URL for the REST API
endpoint = f '{url}/update/db/odoo'
#Set the request headers
headers = {
'Content-Type': 'application/json',
}
#Set the request payload
payload = {
'params': parameters,
}
session_url = f '{url}/web/session/authenticate'
data = {
'jsonrpc': '2.0',
'method': 'call',
'params': {
'db': your_db_name,
'login': your_username,
'password': your_password,
}
}
session_response = requests.post(session_url, json = data)
session_data = session_response.json()
if session_data.get('result') and session_response.cookies['session_id']: #Retry the original request with the new session
headers[
'Cookie'] = f "session_id={session_response.cookies['session_id']}"
response = requests.post(endpoint, headers = headers,
auth = (username, password),
json = payload)
if response.status_code == 200:
result = response.json()
return result
else :
print(f 'Error: {response.status_code} - {response.text}')
return None
else :
print(
f 'Error: Failed to re-authenticate - {session_data.get("error")}')
return None
Note: The provided code includes only the connection to Odoo, you have to define your customized function to find and add products to user's cart.
For more information you can refer to this blog: Implementation of Common API Methods in Odoo 15