Skip to main content

L3 Data Service - описание ep

EP - Для каждого товара удалить атрибут по имени

Описание:
Сущность - Prosuct. Редактирование поля custom_attributes - jsonb, представление массива атрибутов, где атрибут - поля name, value
После выполнения ep в поле custom_attributes каждого товара не будет существовать атрибута с указанным именем. Удаление атрибута, если такое имя найдено в БД.

Метод:
PATH. url - http://localhost:8833/api/products/attributes/delete?attributeName=example_name.

Headers:
kay - Authorization, value - Bearer токен

Params:
key - attributeName, value - name атрибута (имя атрибута)

Возвращаемое значение:
status 200 ОК. Body: String -

"Атрибут был удален у " + count_products + " продуктов"

где, count_products - кол-во продуктов, у которых был по имени найден и удалён атрибут

*Для атрибутов с именем:

internal.product-attributes=

Такие атрибуты тоже будут удалены из БД, но добавятся для товара, если открыть "редактирование атрибутов товара", где value атрибута будет иметь пустое значение "". 

EP - Для каждого товара изменить имя атрибута по имени

Описание:
Сущность - Prosuct. Редактирование поля custom_attributes - jsonb, представление массива атрибутов, где атрибут - поля name, value
После выполнения ep в поле custom_attributes каждого товара найденное старое имя будет заменено на новое, если такого значения имени у атрибута ещё нет, иначе вся операция не выполняется и возвращается с ошибкой.

Метод:
PATH. url - http://localhost:8833/api/products/attributes/rename?oldName=example_old_name&newName=example_new_name

Headers:
kay - Authorization, value - Bearer токен

Params:
key - oldName, value - example_old_name (имя атрибута)
key - newName, value - example_new_name (имя атрибута)

Exeption:
Транзакция полностью откатывается, если значение параметра newName уже существует хотя бы в одном продукте  поля custom_attributes среди полей name массива атрибутов.

Возвращаемое значение:
status 200 ОК. Body: String -

"Имя атрибута было переименованы у " + count_products + " продуктов"

где, count_products - кол-во продуктов, у которых был по имени найден и изменён атрибут

status 500 INTERNAL_SERVER_ERROR. Body: 

"Ошибка: Атрибут с именем " + newName + " уже существует в продукте: " + product.toString()"

где, newName - значение нового имени атрибута, которое уже существует в custom_attributes среди полей name массива атрибутов; product - первый встреченный продукт из БД, в котором было встречено поле custom_attributes с значение newName среди полей name массива атрибутов.

*Для атрибутов с именем:

internal.product-attributes=

Имена таких атрибутов тоже будут изменены в БД, но добавятся для товара, если открыть "редактирование атрибутов товара", где value атрибута будет иметь пустое значение "".

EP - Для каждого товара обновить/добавить значение атрибута по имени

Описание:
Сущность - Prosuct. Редактирование поля custom_attributes - jsonb, представление массива атрибутов, где атрибут - поля name, value
После выполнения ep в поле custom_attributes каждого товара будет существовать атрибута с указанным именем и значением. Изменение значения атрибута, если такое имя найдено в БД. Добавление атрибута, если такое имя не было найдено в БД.

Метод:
PATH. url - http://localhost:8833/api/products/attributes/update?name=example_name&value=example_new_value

Headers:
kay - Authorization, value - Bearer токен

Params:
key - name, value - example_name (имя атрибута)
key - value, value - example_new_value (значение атрибута)

Возвращаемое значение:
status 200 ОК. Body: String -

"У каждого продукта есть атрибут:\n" + attribute.toString()"

где, attribute - атрибут, который есть в БД у каждого продукта в поле custom_attributes в массива атрибутов.