Odoo18 :如何凭借简便的二次开发实现客户评级功能应用

Odoo18免费开源ERP可以通过标准扩展的方式,快速实现客户评级功能应用的技术经验分享

一个组织而言,欲于当下竞争激烈之业务里获取成功,优良的客户服务实乃不可或缺。提升客户满意度的至善之法,乃是将客户反馈与评级归入您的流程之中。Odoo呈现了一种简便且高效之方式以融合消费者反馈。

本文将阐述 Odoo 18 中客户评级体系的定制扩展二开,公司能够汇集极具价值的意见,以改良其产品与服务。

Odoo 18 之中增设客户评级体系

评级体系准许您发送电子邮件以请求客户反馈、于 Kanban 流程中自动转换,并且依据您的评级收集统计数据。

若要在模型中启用客户评级,仅需于自定义模型中承继 rating.mixin 模型便可。如下乃是如何达成它的示例:

from odoo import fields, models
class YourModel(models.Model):
    _name = 'your.model'
    _description = 'Your Model'
    _inherit = ['rating.mixin', 'mail.thread']
    user_id = fields.Many2one('res.users', string='User')
    partner_id = fields.Many2one('res.partner', string='Customer')

通过继承 rating.mixin 模型,您的模型现在将支持 rating 功能……

rating.rating 记录将会自动关联至模型中的 partner_id 字段,其前提是该字段存在。倘若您期望运用不同的字段而非 partner_id,您能够通过实现 rating_get_partner_id() 函数来覆写此行为。

同样,rating.rating 记录将与模型中同 user_id 字段相关联的合作伙伴(即被评级的合作伙伴)相连接。若您所采用的是并非 user_id 的字段,那么能够通过覆写 rating_get_rated_partner_id() 函数来自行定义此函数。敬请留意,此函数务必要返回 res.partner 记录,缘由在于系统将会自动获取与 user_id 相链接的合作伙伴。

此外,倘若您的模型承继自 mail.thread ,那么评级事件将会被记录于 chatter 历史记录之中。

通过电子邮件发送评级请求

若要收集客户反馈,您能够发送一封电子邮件,其中涵盖一个链接,以供客户提供评级。以下乃是为此目的创建电子邮件模板的示例:

<odoo>
    <record id="rating_my_model_email_template" model="mail.template">
        <field name="name">Customer Rating Request</field>
        <field name="subject">Please Provide Your Feedback</field>
        <field name="model_id" ref="module_name.model_your_model"/>
        <field name="email_from">{{ object._rating_get_operator().email_formatted or user.email_formatted }}</field>
        <field name="partner_to">{{ object._rating_get_partner().id }}</field>
        <field name="body_html" type="html">
            <div>
                <t t-set="access_token" t-value="object._rating_get_access_token()"/>
                <t t-set="partner" t-value="object._rating_get_partner()"/>
                <p>Hello <t t-out="partner.name or ''"/>,<br/><br/>
                   We would appreciate it if you could take a moment to rate our services. Please click one of the icons below to provide your feedback.<br/><br/>
                   Thank you!</p>
                <table>
                    <tr>
                        <td><a t-attf-href="/rate/{{ access_token }}/5"><img src="/rating/static/src/img/rating_5.png" alt="Excellent"/></a></td>
                        <td><a t-attf-href="/rate/{{ access_token }}/3"><img src="/rating/static/src/img/rating_3.png" alt="Average"/></a></td>
                        <td><a t-attf-href="/rate/{{ access_token }}/1"><img src="/rating/static/src/img/rating_1.png" alt="Poor"/></a></td>
                    </tr>
                </table>
            </div>
        </field>
        <field name="auto_delete" eval="False"/>
    </record>
</odoo>

此模板将会生成一封电子邮件,准许客户以交互的形式提供反馈。当他们点击评级图标(诸如:优秀、一般或者差)时,他们将会被引导至一个能够提交评级的网页。

发送评级请求

若要向客户发送评级请求,您能够从模型中触发如下方法:

def action_send_rating_mail(self):
    template = self.env.ref('module_name.rating_my_model_email_template')
    template.send_mail(self.id, force_send=True)

查看客户评级

要允许用户查看与您的模型相关的所有客户评级,您能够在自定义模块的表单视图里定义操作与按钮。这会以诸般视图模式显示评级,例如看板、表单、数据透视或者图形:

<odoo>
    <record id="rating_rating_action_my_model" model="ir.actions.act_window">
        <field name="name">Customer Ratings</field>
        <field name="res_model">rating.rating</field>
        <field name="view_mode">kanban,pivot,graph</field>
        <field name="domain">[('res_model', '=', 'your.model'), ('res_id', '=', active_id), ('consumed', '=', True)]</field>
    </record>
    
    <record id="your_model_view_form_inherit_rating" model="ir.ui.view">
        <field name="name">your.model.view.form.inherit.rating</field>
        <field name="model">your.model</field>
        <field name="inherit_id" ref="module_name.your_model_view_form"/>
        <field name="arch" type="xml">
            <xpath expr="//div[@name='button_box']" position="inside">
                <button name="%(rating_rating_action_my_model)d" type="action"
                        class="oe_stat_button" icon="fa-smile-o">
                    <field name="rating_count" string="Rating" widget="statinfo"/>
                </button>
            </xpath>
        </field>
    </record>
</odoo>

这些配置将会创建一个菜单项,准许用户导航至一个部分,于该部分之中,他们能够查看与您的模型相关的所有客户评级。可用的默认视图(诸如 Kanban、Pivot 以及 Graph)提供了客户反馈的迅速概览。

我们可以看到效果如下:

它将会重定向至该网站,并且在点击评分链接之时显示如下页面:

一旦评级完成,其显示情形如下:

本文扼要阐述了如何在 Odoo 18 中运用客户评级体系来整合客户反馈。经由执行这些步骤,企业能够收集关键的客户洞察,并采取切实可行的举措来优化其服务。

欢迎垂询


请联系我们专业的技术工程师,

我们将推荐适合您需求的产品或解决方案




​​扫码获取一对一服务

​或致电 400-900-4680



如何在Odoo18中管理各种计量单位的产品销售
如何于 Odoo18 系统内对采用各类计量单位的产品销售予以管理