swisscat/salesforce-bundle

Sylius 框架的 Salesforce 套件

安装: 1

依赖者: 0

建议者: 0

安全性: 0

星级: 2

关注者: 2

分支: 0

公开问题: 1

类型:symfony-bundle

dev-master 2017-10-31 13:25 UTC

This package is not auto-updated.

Last update: 2024-09-19 03:49:29 UTC


README

(又一款)Salesforce 同步工具,使用 RabbitMQ 引擎进行延迟和批量同步。使用流式 API 从 Salesforce 获取记录。

安装

需要此套件

composer require swisscat/salesforce-bundle

注册套件

// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ... ,
        new \OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
        new \Swisscat\SalesforceBundle\SalesforceBundle(),
    ];
}

生成 Salesforce Enterprise WSDL

填写基本配置

salesforce:
    soap_client:
        wsdl: "%kernel.root_dir%/config/sf.wsdl"
        username: <username>
        password: <password>
        token: <token>

更新架构

bin/console doctrine:migrations:diff
bin/console doctrine:migrations:migrate

配置

编辑 config.yml

salesforce:
    soap_client:
        wsdl: "%kernel.root_dir%/config/sf.wsdl"
        username: <username>
        password: <password>
        token: <token>

old_sound_rabbit_mq:
    connections:
        default:
            host:     'localhost'
            port:     5672
            user:     'guest'
            password: 'guest'
            vhost:    '/'
            lazy:     true
            connection_timeout: 60
            keepalive: true
            use_socket: false # default false
    producers:
        sync_salesforce:
            connection:       default
            exchange_options: {name: 'sync-salesforce', type: direct}
            service_alias:    sync_salesforce # no alias by default
    consumers:
        salesforce_back:
            connection:       default
            exchange_options: {name: 'salesforce', type: direct}
            queue_options:    {name: 'salesforce'}
            callback:         sylius.consumer.salesforce_back
    batch_consumers:
        sync_salesforce:
            connection:       default
            exchange_options: {name: 'sync-salesforce', type: direct}
            queue_options:    {name: 'sync-salesforce'}
            callback:         sylius.consumer.salesforce
            qos_options:      {prefetch_size: 0, prefetch_count: 2, global: false}

运行命令处理记录

bin/console rabbitmq:batch:consumer sync_salesforce

运行命令获取主题更新(见 https://github.com/swisscat/salesforce-amqp-connector

bin/console rabbitmq:consumer salesforce_back

路线图

  • 重构/清理
  • 完成测试
  • 改进 RabbitMQ 交换配置
  • 提供电商队列的可配置性
  • 处理电商发布失败
  • 通用套件以支持其他提供商(例如 magento)
  • 使用 Token 对 Java API 进行身份验证
  • 实现套件逻辑以进行对账(主:SF/ECOM/存储冲突)
  • 改进映射定义(自定义函数)
  • 实现映射关联(实体关系)