Web Services 通过API只更新PrestaShop产品的指定字段

yh2wf1be  于 2022-11-30  发布在  其他
关注(0)|答案(2)|浏览(158)

我想知道是否有一种方法可以更新资源(在这种情况下是产品),但只更新我的请求中指定的字段。
例如,假设我只想更新产品的必填字段,而不想更改其他字段,我如何通过Web服务继续操作?
据我所知,当你更新一个资源时,它会整体更新它:这意味着,如果在更新时不“重新发送”原始值(如果不指定所有字段),它将被视为空。
根据我的测试,我尝试了以下方法:
1.登录我的PrestaShop,得到一个随机的产品,设置“宽度”为一个随机值(让我们说30厘米)
1.检索产品的空白方案,并仅填写方案的必填字段(宽度不是方案的一部分)
1.通过Web服务发送模式以使用PUT请求更新原始产品
1.回到我的PrestaShop,并在绝望和悲伤的注意到,宽度值已设置为0
我的用例是,我们有一个与PrestaShop同步产品的系统。当一个产品在我们的系统中编辑时,一组特定的字段被发送回PrestaShop,这样商店中的产品也会更新。
但是对于我们的一些用户来说,他们希望能够添加商店信息,并且即使产品后来更新也能保留这些信息。例如,他们向产品添加维度(在我们的系统中不受管理/不持久化的字段),并且他们希望保留这些信息。
我们的约束条件是,发送用于更新的字段集是“硬编码”的:我们无法获取资源架构并更新它以便以后将其发送回来。
是否有任何参数/配置可以设置,以便不删除未指定的字段值?

nom7f22z

nom7f22z1#

由于PrestaShop API的工作原理,您可以执行以下操作:
对于要更新的每个产品,您可以提取完整的对象(包含所有字段),然后仅使用需要更新的字段更新该对象,然后通过API将整个对象作为该产品的更新推送。
为多个产品执行此操作将需要两次API调用..但这是一种解决方法。

bvn4nwqk

bvn4nwqk2#

一种方法是对要更新的属性使用标志变量

相关问题