当前位置: 首页 > 知识库问答 >
问题:

erp - 请问电商平台对接ERP的逻辑?

郑桐
2023-06-24

请问电商平台对接ERP的逻辑?

目前公司电商平台,用户购买的订单跟厂内ERP是脱钩
用户在电商平台购买 10000 个塑胶壳,数据只保存在电商数据库

ERP还是要维持手动录入客户订单动作
疑惑点

  • 假设一个客人下单,需要在ERP对应建立一个客户主数据吗?
  • 电商平台一张订单对应ERP建立一张订单?
  • 假设电商平台有退货或临时折扣怎么办?

共有2个答案

冉高寒
2023-06-24

这个问题不是一两句话能说的清的。总体上来说要遵循系统解耦的原则,主要的就是帐户体系不能混淆。一般来讲要在电商平台创建一个虚拟的1对1的ERP帐户,即加入一个中间层做帐号等信息的mapping。

王景山
2023-06-24

具体的对接ERP的逻辑一般是通过接口来实现,电商平台会将订单信息通过接口传递给ERP,ERP再进行处理和入库等操作。(当然这个道理太含糊,我打算用c语言具体描述下)
先假设第一个问题的场景

// 根据客户名称在电商平台数据库中查询客户信息
struct customer find_customer_by_name(char *customer_name) {
    // 假设客户信息保存在电商平台数据库中的 customers 表中
    // 查询逻辑如下
    struct customer customer_info;

    // ... 连接电商平台数据库

    char query[100];
    sprintf(query, "SELECT * FROM customers WHERE name = '%s'", customer_name);

    // 执行查询
    // ...

    // 封装查询结果
    // ...

    return customer_info;
}

// 在ERP中插入新订单信息
void insert_order_in_erp(struct order new_order) {
    // 假设订单信息保存在ERP数据库中的 orders 表中
    // 插入逻辑如下

    // ... 连接ERP数据库

    char query[100];
    sprintf(query, "INSERT INTO orders VALUES (%d, '%s', '%s', %f)", 
                new_order.order_id, new_order.customer_name, new_order.product_name, new_order.amount);

    // 执行插入
    // ...
}

这段代码想表达的意思是,因为公司电商平台和ERP是脱钩的,所以订单信息不会实时同步到ERP中,那么当一个客户在电商平台下单时,不需要在ERP中再次建立客户主数据。

现在是第二个问题的场景,订单建立:

// 从电商平台获取未同步过的所有订单
struct order* get_unsynced_orders_from_ecommerce_platform() {
    // 假设电商平台订单数据保存在 ecommerce_platform_orders 表中,订单状态 unsynced 表示未同步到ERP
    // 查询逻辑如下
    struct order* orders;

    // ... 连接电商平台数据库

    char query[100];
    sprintf(query, "SELECT * FROM ecommerce_platform_orders WHERE status = 'unsynced'");

    // 执行查询
    // ...

    // 封装查询结果
    // ...

    return orders;
}

// 将订单数据插入到 ERP 中创建订单
void create_order_in_erp(struct order new_order) {
    // 假设订单信息保存在ERP数据库中的 orders 表中
    // 插入逻辑如下

    // ... 连接ERP数据库

    char query[100];
    sprintf(query, "INSERT INTO orders VALUES (%d, '%s', '%s', %f)", 
                new_order.order_id, new_order.customer_name, new_order.product_name, new_order.amount);

    // 执行插入
    // ...
}

// 将电商平台订单数据同步到 ERP 中
void sync_orders_to_erp() {
    // 获取未同步过的所有订单
    struct order* unsynced_orders = get_unsynced_orders_from_ecommerce_platform();

    // 在ERP中创建订单
    for (int i = 0; i < num_orders; i++) {
        create_order_in_erp(unsynced_orders[i]);

        // 更新订单状态为 synced
        // ...
    }
}

由于订单信息不会实时同步到ERP中,所以公司需要在电商平台上对订单信息进行管理和处理。如果需要将订单信息同步到ERP中,那么可以采取定期手动导入或自动导入的方式,将电商平台的订单数据导入到ERP中,并在ERP中按照订单数据创建订单。

下面是第三个场景,定价折扣:

// 更新订单状态
void update_order_status(int order_id, char* new_status) {
    // 向电商平台发送更新订单状态的请求
    // ...

    // 如果更新成功,同步订单数据到 ERP 中
    if (response.status_code == 200) {
        sync_order_to_erp(order_id);
    }
}

// 将订单数据同步到 ERP 中
void sync_order_to_erp(int order_id) {
    // 获取订单的详细信息
    struct order* order_info = get_order_details_from_ecommerce_platform(order_id);

    // 将订单信息插入到 ERP 中
    create_order_in_erp(*order_info);
}

// 处理退货申请
void process_return_request(int order_id) {
    // 在电商平台中更新订单状态为 return_requested
    update_order_status(order_id, "return_requested");
}

// 处理临时折扣
void process_discount_request(int order_id, float discount_amount) {
    // 在电商平台中修改订单内商品的价格
    // ...

    // 在电商平台中更新订单状态为 discounted
    update_order_status(order_id, "discounted");
}

``

如果用户在电商平台上申请退货或临时折扣,需要在电商平台中处理相应的订单,更新订单的状态,包括订单状态和订单明细信息等。如果需要将退货或折扣信息同步到ERP中,那么可以按照一定的时间间隔,手动或自动地将电商平台中的数据导入到ERP中,并按照退货或折扣的情况在ERP中做相应的处理。

 类似资料:
  • 1、电商平台企业列表查询 1. 接口说明: 通过接口调用形式查询电商平台企业列表 1. 接口信息: a) 请求URL https://www.sobot.com/tenantpro/open/getTenantList b) 请求方式 接口通过Http + post 的形式,通过Http作为协议,post作为传输方式 c) 请求参数 字段名 是否必选 数据类型 说明 unionCode 必选 st

  • Cornelius ERP 是一个创新的开放源码ERP软件完全建立在Java5上的Roma框架。

  • Tiny ERP (现已改名为:OpenERP) 系统是一款非常适合中小型企业的灵活强大的开源ERP系统。它的许多非常优秀的特性与当前的某些昂贵的ERP产品不相伯仲甚至更为出色,而其开源的 特点也必将吸引更多的开发者和用户的关注。Tiny ERP目前的开发速度惊人,不断有非常实用、灵活方便的模块推出。

  • Aladobix ERP 是一个数据仓库应用用来管理产品内容和其他企业文档,可以大大提升服务的响应速度、流程改进和削减成本。

  • 时机商计 (CK-ERP) 是一个由 php 写成的开放源码 会计/MRP/ERP/CRM 系统。 它能在多个中间件之上运行。 它包含二十叁个模块 - 系统管理,国际化功能, 数据汇入, 联系资讯管理,顾客关系, 顾客自助服务, 供应商关系, 物料需求规划, 货仓, 存货管理, 服务管理, 总帐, 银行结馀校对, 应付帐/发票, 应收帐/发票, 采购订单, 销售订单, 报价单, 销售点收银员, 销

  • Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理,客户服务( customer service)等.Sequoia ERP采用Java开发可部署在Linux/Unix与Windows平台上,并支持当前主流数据库如:MySQL, PostgreSQL,Oracle