#shopware
Вопрос:
Очень часто складские запасы продукта обновляются в магазине с помощью другой ERP-системы, отличной от системы, которая обновляет информацию о продукте (количество, свойства и т.д.). Shopware 6, похоже, не поддерживает этот метод и выдает ошибку, приведенную ниже.
Я понимаю, что для первоначального создания продукта существуют некоторые обязательные поля, такие как номер продукта или запас, но при обновлении уже существующего продукта должно быть совершенно нормально не указывать эти значения, чтобы их можно было обновить с помощью внешней системы.
Это сработало в Shopware 5, но не в Shopware 6. Кто-нибудь знает обходной путь?
(Я думаю о том, чтобы отправить существующее значение из Shopware, потому что тогда оно технически не обновляется, но это мое последнее средство.)
Array
(
[code] => c1051bb4-d103-4f74-8988-acbcafc7fdc3
[status] => 400
[detail] => This value should not be blank.
[template] => This value should not be blank.
[meta] => Array
(
[parameters] => Array
(
[{{ value }}] => null
)
)
[source] => Array
(
[pointer] => /0/stock
)
)
Полный пример полезных данных запроса
{
"newData": {
"action": "upsert",
"entity": "product",
"payload": [
{
"id": "206c59a3339383101655aae7598e328c",
"language": "default",
"taxId": "6460303d84264f36858d1fe9e8c2f60f",
"name": "SLT 95 Nano Crystal",
"active": true,
"visibilities": [
{
"id": "d43840cff1b2bcc741a9a83ebb5b3c16",
"salesChannelId": "e8d8fd2337dd42e0a86b47ea68739824",
"visibility": 30
}
],
"categories": [
{
"id": "66ca2d80dc532d4d6659b4430e6954a8"
}
],
"description": "A not so much very short text. Another short text.",
"price": [
{
"net": 9999.99,
"gross": 9999.99,
"linked": true,
"currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca"
}
],
"productNumber": "P_10254",
"crossSellings": [
{
"id": "b3e3171397d30794171877fed2329d96",
"name": "Similar Products",
"assignedProducts": [],
"type": "productList",
"active": true,
"sortBy": "name",
"sortDirection": "ASC",
"limit": 24,
"position": 1
}
]
}
]
}
}
Краткий пример полезной нагрузки запроса
"payload": [
{
"id": "206c59a3339383101655aae7598e328c",
"language": "default",
"taxId": "6460303d84264f36858d1fe9e8c2f60f",
"name": "SLT 95 Nano Crystal",
"active": true,
...
}
]
Я просто не отправляю запас для обычного товара в надежде, что Shopware использует уже существующий запас.
Комментарии:
1. Не могли бы вы поделиться своим телом запроса?
2. Как написал скоениг, пожалуйста, покажите нам, какой код / JSON вы отправляете на сервер.
Ответ №1:
С версией «Стабильная версия v6.4.4.1» В Shopware было внесено изменение концепции, которое позволяет обновлять существующие продукты без необходимости отправлять все необходимые поля.
Это решает эту проблему и очень полезно, если, например, запасы должны поддерживаться вручную и не контролироваться вызовами API.
Комментарии:
1. Не могли бы вы подробнее остановиться на этом или предоставить какой-нибудь ресурс? Я не могу найти изменения в списке изменений и рассматриваю возможность обновления, чтобы исправить и эту проблему.
2. Я бы с удовольствием, но, к сожалению, кажется, что Shopware не перечисляет все ошибки в своем журнале изменений. Это должно быть примерно в версии v6.4.4.1 или немного раньше. Я молюсь, чтобы они не изменили его обратно в будущем, если бы они только случайно улучшили это поведение. Ссылка на Журнал изменений: shopware.com/en/changelog