我的问题是:
graphql中是否有允许轻松编辑传入查询的特性或方法,以防止执行操作?我想在web代理中检查我的查询,编辑操作,然后将它发送到它的目的地。
上下文:
我在一个用于商业工具的代理服务中运行了一个突变,如下所示:
mutation AddLineItem(
$id: String
$version: Long!
$sku: String
$quantity: Long
$currencyCode: Currency!
$centAmount: Long!
$custom: String!
) {
updateCart(
version: $version
id: $id
actions: [
{
addLineItem: {
sku: $sku
quantity: $quantity
externalPrice: { centPrecision: { currencyCode: $currencyCode, centAmount: $centAmount } }
custom: { typeKey: "custom-type", fields: [{ name: "field", value: $custom }] }
}
}
]
) {
id
version
lineItems {
...LineItemFieldsCart
}
}
}根据commercetools文档,在设置外部价格字段时,重复项目将作为单独的行项目添加到购物车中,而不是像默认行为那样增加数量。问题是,我想要默认的行为,而不是重复的行项。减轻这种情况的正常方法是添加一个更新扩展来删除重复的更新,但是我正在开发一个已经成熟的系统,它具有多个更新扩展,所有的更新扩展都在行项上操作,这使得删除设备在更新扩展中成为一个沉重的负担。我希望在代理中编辑查询,这样重复的项目就不会首先发生。有什么简单的方法吗?
发布于 2022-05-05 10:00:20
对于“添加行项更新”操作,当前的行为是在使用外部价格时创建一个单独的行项,而不是像您所描述的那样将额外的数量添加到已经存在的行项中。如果要确保在使用外部价格时将数量添加到已经存在的行项目中,则可以在添加新行项之前进行检查,并使用更新操作更改行项数量,以防产品变体与购物车中已经存在的行项匹配。这将使您可以在那里设置外部价格,而不会添加任何其他类似的项目。https://docs.commercetools.com/api/projects/carts#change-lineitem-quantity
https://stackoverflow.com/questions/72117361
复制相似问题