Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
2904 Tampilan

Hello,

I have an external website that has a contact form and I want to retrieve the details from that contact form on submission and send it to Odoo. Odoo's external API is for reading, searching ...etc ie from an Odoo database to any external tools. Is the reverse also possible with external API (ie from the website to Odoo) or if I can use Webhooks and how do I proceed to do that?

Thanks,



Avatar
Buang
Jawaban Terbai

Hello, 

There are two kind of solutions:

Solution 1: 

import xmlrpc.client

# Odoo XML-RPC parameters
url = 'http://your-odoo-instance'
db = 'database_name'
username = 'user'
password = 'password'

# Connect to Odoo XML-RPC server
common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))
uid = common.authenticate(db, username, password, {})

# Create a proxy object for the CRM module
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))

# Create a lead in Odoo
lead_data = {
    'name': 'John Doe',
    'contact_name': 'John Doe',
    'email_from': 'john@example.com',
    'description': 'Interested in your products',
    # Add more fields as needed
}
lead_id = models.execute_kw(db, uid, password, 'crm.lead', 'create', [lead_data])

Solution 2: 

from odoo import http
from odoo.http import request

class ExternalFormController(http.Controller):
   
    @http.route('/your/endpoint', type='http', auth='public', methods=['POST'])
    def handle_contact_form(self, **post):
        # Extract data from the incoming request
        name = post.get('name')
        email = post.get('email')
        message = post.get('message')
       
        # Create a lead/contact in Odoo
        Lead = request.env['crm.lead']
        lead_vals = {
            'name': name,
            'contact_name': name,
            'email_from': email,
            'description': message,
            # Add more fields as needed
        }
        lead = Lead.create(lead_vals)
       
        # You may want to return a response to the external form indicating success or failure
        return "Success"  # Or you can return JSON/XML response
Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
0
Agu 25
162
1
Agu 25
499
2
Jul 25
2960
3
Jul 25
703
1
Jun 25
2191