- 1.首先要新建一个管易商品查询的方案,把方案id记下来(方案id即浏览器连接url的后面一段字符串),后面发货单查询加工厂需要用到。
- ">
- 2.选择发货单查询2.0接口
- 3.特别需要注意,新版发货单只返回商品id,需要在加工厂关联查询出商品编码,,以下是加工厂示例代码,可以复制使用,复制后需要替换方案id,即$accountStrategyId = ‘f1e6ac6a-46bf-30ca-80a1-c98aa54be247’; 替换为$accountStrategyId = ‘步骤1中记录的方案id’;。
- 关联查询物料编码示例代码:
- 4.最后再根据新版接口返回的字段完成替换配置,新版接口和旧版接口有些字段不一样,特别需要留意检查,加工厂里面的符号都是要英文符号,如无特殊要求,建议直接复制文档示例做修改。(需留意源平台配置源码是否有condition过滤,或者beatFlat拍扁,或者其他函数,字段记得相应替换新版接口的;目标配置源码同理,是否有merge合并等函数,函数配置里面的字段也要相应替换成新版的字段)
1.首先要新建一个管易商品查询的方案,把方案id记下来(方案id即浏览器连接url的后面一段字符串),后面发货单查询加工厂需要用到。
特别需要注意,含sku的,需要在商品查询的加工厂里把skus移到外面的goods_id。如果管易是多规格不适用此方案。
skuskus移到外面的goods_id示例代码(可以复制使用):
<?php
class AfterSourceInvoke
{
protected $response;
protected $adapter;
/**
* 构造函数
*
* @param array $response 引用传递,调用接口返回的原始响应数组
* @param Adapter:class $adapter 适配器类
*/
public function __construct(&$response, $adapter)
{
$this->response = &$response;
$this->adapter = $adapter;
}
public function run()
{
if ($this->response['success'] == false) {
return;
}
$items = [];
foreach ($this->response['items'] as $item) {
//
if(count($item['skus']) > 0){
foreach($item['skus'] as $sk){
$item['goods_id'] = $sk['goods_id'];
$item['qeasy_remark'] = 'skus id 移到外面的goods_id, 里面的skus 暂时无用';
$items[] = $item;
}
}else{
$items[] = $item;
}
}
$this->response['items'] = $items;
}
}
2.选择发货单查询2.0接口
3.特别需要注意,新版发货单只返回商品id,需要在加工厂关联查询出商品编码,,以下是加工厂示例代码,可以复制使用,复制后需要替换方案id,即$accountStrategyId = ‘f1e6ac6a-46bf-30ca-80a1-c98aa54be247’; 替换为$accountStrategyId = ‘步骤1中记录的方案id’;。
关联查询物料编码示例代码:
<?php
use Domain\Datahub\Instance\Storage\LogStatus;
use Domain\Datahub\Instance\Storage\DataStorage;
class AfterSourceInvoke
{
protected $response;
protected $adapter;
/**
* 构造函数
*
* @param array $response 引用传递,调用接口返回的原始响应数组
* @param Adapter:class $adapter 适配器类
*/
public function __construct(&$response, $adapter)
{
$this->response = &$response;
$this->adapter = $adapter;
}
/**
* 工厂事件执行函数
*
* @return void
*/
public function run()
{
if ($this->response['success'] != true) {
return;
}
foreach ($this->response['details'] as $key=>&$col) {
//$this->adapter->getLogStorage()->insertOne(['text' => 'data', 'data' => $col], LogStatus::NOTICE);
$accountStrategyId = 'f1e6ac6a-46bf-30ca-80a1-c98aa54be247';//此处方案id需替换成对应组户商品查询的方案ID
$storage = new DataStorage($this->adapter->strategy->lessee_id, $accountStrategyId);
$where = ['content.goods_id' => ['$eq' => $col['goods_id']]];
$query = $storage->find($where);
$col['goods_code'] = '';
if ($query) {
$content = $query[0]['content'];
$col['goods_code'] = $content['code'];
}
}
}
}