swisscat / salesforce-bundle
Sylius 框架的 Salesforce 套件
dev-master
2017-10-31 13:25 UTC
Requires
- php: >=7.1
- doctrine/orm: *
- guzzlehttp/guzzle: 6.3.*
- php-amqplib/rabbitmq-bundle: 1.*
- phpforce/soap-client: *
- symfony/framework-bundle: *
- symfony/http-kernel: *
Requires (Dev)
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:
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/存储冲突)
- 改进映射定义(自定义函数)
- 实现映射关联(实体关系)