从 commercetools 通过产品密钥获取产品详细信息时,我得到的响应没有Channel Key,channelId
而是我得到一个随机 UUID (我相信参考 id)。
final ProductProjectionByKeyGet productProjectionByKeyGet =
ProductProjectionByKeyGet.of(productKey, ProductProjectionType.CURRENT)
.withExpansionPaths(product -> product.allVariants()
.attributes().valueSet());
return clientManager.getClientForProjectKey(ctAdapterProperties, projectKey)
.execute(productProjectionByKeyGet).toCompletableFuture().get();
在获取产品详细信息后的响应中,如果我们查看属性prices[].channel.id
,它的值是 UUID,但在 commercetools 中,我将通道键作为字符串,如:<store>-<online>
prices={PriceDraftDsl[
channel=Reference{
typeId='channel',
id='b5c57a89-4f18-41eb-b5c3-e0de1c09cf81',
obj=null},
country=<null>,
custom=<null>,
customerGroup=<null>,
tiers=<null>,
validFrom=<null>,
validUntil=<null>,
value=USD 12]}
当我尝试使用上述价格进行 ProductSync 时,出现以下错误异常。
ReferenceResolutionException: Failed to resolve 'channel'
reference on PriceDraft with country:'null' and value: 'USD 12'.
Reason: Channel with key 'b5c57a89-4f18-41eb-b5c3-e0de1c09cf81'
does not exist.
有什么方法可以获取频道的密钥而不是频道 ID 的随机 UUID?如果没有,我可以使用此 ID 获取频道详细信息吗?
我目前正在使用1.7.0
包的版本commercetools-sync-java
。
我对此很陌生。对此的任何帮助深表感谢。提前致谢!