【发布时间】:2022-08-24 00:52:29
【问题描述】:
我们有一个正在运行的 Shopware 6.4.7,我们的 ERP 系统正在将产品导入其中。
其中一个 API 请求如下所示:
URL: https://www.example.com/api/_action/sync
additional header:
single-operation -> 1
indexing-behavior -> use-queue-indexing
{
\"write-product-CONF-242732\": {
\"entity\": \"product\",
\"action\": \"upsert\",
\"payload\": [...]
}
有效载荷包含
\"configuratorSettings\": [
{
\"optionId\": \"cbdaf832e70950ee5b9135fa6535e9a8\"
},
{
\"optionId\": \"fa6549ff184c43be95d5db190d63ad8f\"
},
{
\"optionId\": \"61f4ff3cdc394b489ff4ba90627bf43a\"
}
],
并且请求失败并显示可怕的错误消息(由于多种编码)
{\"errors\":[{\"code\":\"0\",\"status\":\"500\",\"title\":\"Internal Server Error\",\"detail\":\"An exception occurred while executing \\u0027INSERT INTO product_configurator_setting (id, version_id, product_id, product_version_id, property_group_option_id, created_at) VALUES (\\u0027|F\\ufffd\\ufffdb\\\\u0022I\\u02bd\\ufffdS\\u0002\\ufffd(\\ufffd;\\u0027,\\u0027\\u000f\\ufffd\\u001c\\ufffd\\ufffdjK\\u00beK\\ufffd\\ufffdu,4%\\u0027,\\u0027\\u0228Z2\\u003C_C\\u0583\\ufffd\\ufffd\\ufffd\\u0001\\ufffdQ\\ufffd\\u0027,\\u0027\\u000f\\ufffd\\u001c\\ufffd\\ufffdjK\\u00beK\\ufffd\\ufffdu,4%\\u0027,\\u0027\\ufffd\\ufffd2\\ufffd\\tP\\ufffd[\\ufffd5\\ufffde5\\ufffd\\u0027,\\u00272022-04-13 11:01:23.653\\u0027);\\u0027:\\n\\nSQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry \\u0027\\xC8\\xA8Z2\\u003C_C\\xD6\\x83\\xE4\\xF4\\xC8\\x01\\x94Q\\xDF-\\x0F\\xA9\\x1C\\xE3\\\\u0027 for key \\u0027uniq.product_configurator_setting.prod_id.vers_id.prop_group_id\\u0027\"}]}
让我为你翻译一下:
键上的重复条目uniq.product_configurator_setting.prod_id.vers_id.prop_group_id
因此,从我的角度来看,Shopware 应该认识到,product_configurator_setting 中的条目已经存在,要么更新它,要么更好地跳过它,因为不需要更新。
所以重要的问题是:
- 这是预期的行为吗?
- 这是一个核心错误吗?
- 我们的 ERP 系统是否需要以某种方式跟踪,为了避免这种情况已经导入了什么?
我有点不解,想,这有点坏了。我还没有深入挖掘,为什么会这样,因为希望有人已经这样做了:-)