netoholic / store-integrator
可用于发布产品并从不同的购物平台检索和处理订单。
0.7.0
2016-02-23 21:57 UTC
Requires
- cpigroup/php-amazon-mws: ^1.1
- dts/ebay-sdk-php: ^0.3.0
- sabre/xml: ~1.2.0
Requires (Dev)
- phpunit/php-code-coverage: dev-master#b8436b000263f6d72fbad1d36890e247ce84857e
- phpunit/phpunit: ^5.0
README
目标
- 允许与流行的销售/购物平台无缝集成。
当前支持
- Ebay(产品发布和检索,订单检索和处理)
- Amazon(初始级别)
配置
针对Ebay
配置可以直接传递给集成器之前的Ebay SDK,或者最好是它们可以从环境变量中获取。
Ebay的变量列表
- EBAY-TRADING-API-VERSION - eBay API的版本。
- EBAY-DEV-ID - 开发者ID密钥。从Ebay获取。
- EBAY-APP-ID - 应用ID密钥,再次从Ebay获取。用于在用户之前识别CloudCart。
- EBAY-CERT-ID - 从Ebay获取的另一个密钥。
使用方法
目前需要直接实例化集成器对象。为了降低复杂性,服务被分组在几个较小的API包装类中,然后用于组成主要的集成器类。
将来这将从包的最终用户那里隐藏。
$integrator = new StoreIntegrator\Factory([
'ebay' => [
'userToken' => 'token'
// more data needed
]
]);
$integrator->provider('ebay')->products->getProducts();
$integrator->provider('ebay')->factory->makeShippingService($data = []);
$integrator->provider('ebay')->factory->makeProduct($data = []);
$integrator->provider('ebay')->factory->makeProduct($data = []);
为使用该包的应用程序添加了获取用户令牌的方法,并有一些要求。
流程
1. 获取Ebay提供者的实例
$integrator = new StoreIntegrator\Factory();
$ebay = $integrator->provider('ebay', [ ... ]);
2. 设置应用的RuName(Ebay为应用程序提供的特殊标识符)
$ebay->auth->setRuName($ruName);
3. 从Ebay获取一个特殊的会话ID并将其存储在某个地方(例如会话)
$sessionId = $ebay->auth->getSessionID();
// save the session id
4. 构建一个特殊的Ebay URL以显示用户对话框,用户可以在其中同意
$url = $ebay->auth->buildRedirectUrl($sessionId);
5. 将用户重定向到构建的URL(或在页面上某处将其作为链接留下)
6. 如果用户同意,Ebay将他们重定向到应用程序中的预定义URL(https是强制性的)(不同意时也会发生相同的事情,但重定向到另一个URL)
7. 收到从Ebay的跳转后,获取令牌并将其保存以供将来使用
$token = $ebay->auth->getToken($sessionId);
// Save the token
限制
- eBay不允许多个属性有可变图片。目前只接受产品(可变性的父级)级别的图片
TODO
- 一些方法返回eBay的原始响应(最好使用自定义数据对象)
- 为数据对象定义接口,以便在应用程序领域模型和集成器之间作为桥梁使用,以简化使用。
- 几乎为Amazon做了所有事情
- 添加令牌过期逻辑 [文档] (http://developer.ebay.com/devzone/guides/ebayfeatures/Basics/Tokens-About.html)
贡献者
- Boyan Yordanov boyan.yordanov.dev@gmail.com