Adding and editing products in the catalog

Deprecated

The method is available for all models.

If you are using an API Key token, one of the accesses in the list is required to call the method

Which method should I use instead of the outdated one?

Adds the products specified in the request to your product catalog and edits existing products.

Information about the goods must be transmitted in the body POST- request.

Each product must have your SKU — the unique code that you use to identify the product:

  • To add a new product to the catalog, specify in the parameter shopSku your SKU, which is not yet in the catalog.
  • To edit an item from the catalog, specify in the parameter shopSku your SKU this product is in the catalog.

In both cases, you need to provide the full product description in the request, even if you only want to change a few characteristics.

If you know which product card on the Market corresponds to your product, specify its ID (SKU on the Market) in the input parameter mapping. Receive SKU You can access the recommended product card on the Market through your account. If SKU it is not listed on the Market, the Market staff will select or create a suitable product card themselves, or it will have a status NEED_CONTENT (you need to find the card or create it yourself) in the request output POST v2/businesses/{businessId}/offer-mappings.

The products are moderated before publication. If an error is found in one of the sent items, the response to the request will have an HTTP code. 400 Bad Request, and none of the products will be submitted for moderation. However, if you do not pass all the required parameters for any product, it will have the status after moderation. NEED_INFO (there is not enough information in the product description) in the request output POST v2/businesses/{businessId}/offer-mappings.

You can add up to 500 products per request.

The data in the catalog is not updated instantly

It takes up to a few minutes.

⚙️ Limit: 5,000 items per minute

Request

POST

https://api.partner.market.yandex.ru/v2/campaigns/{campaignId}/offer-mapping-entries/updates

Path parameters

Name

Description

campaignId*

Type: integer<int64>

The campaign ID.

You can find it using a query GET v2/campaigns or find it in the seller's office on the Market — click on your account icon → Settings and in the menu on the left, select APIs and modules:

  • block Campaign ID;
  • tab Query log → drop-down list in the block Show logs.

⚠️ Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports.

Min value: 1

Body

application/json
{
    "offerMappingEntries": [
        {
            "offer": {
                "name": "Ударная дрель Makita HP1630, 710 Вт",
                "shopSku": "string",
                "category": "string",
                "vendor": "LEVENHUK",
                "vendorCode": "VNDR-0005A",
                "description": "string",
                "id": "string",
                "feedId": 0,
                "barcodes": [
                    "46012300000000"
                ],
                "urls": [
                    "string"
                ],
                "pictures": [
                    "string"
                ],
                "manufacturer": "string",
                "manufacturerCountries": [
                    "string"
                ],
                "minShipment": 0,
                "transportUnitSize": 0,
                "quantumOfSupply": 0,
                "deliveryDurationDays": 0,
                "boxCount": 0,
                "customsCommodityCodes": [
                    "string"
                ],
                "weightDimensions": {
                    "length": 65.55,
                    "width": 50.7,
                    "height": 20,
                    "weight": 1.001
                },
                "supplyScheduleDays": [
                    "MONDAY"
                ],
                "shelfLifeDays": 0,
                "lifeTimeDays": 0,
                "guaranteePeriodDays": 0,
                "processingState": {
                    "status": "UNKNOWN",
                    "notes": [
                        {
                            "type": "ASSORTMENT",
                            "payload": "string"
                        }
                    ]
                },
                "availability": "ACTIVE",
                "shelfLife": {
                    "timePeriod": 0,
                    "timeUnit": "HOUR",
                    "comment": "string"
                },
                "lifeTime": {
                    "timePeriod": 0,
                    "timeUnit": "HOUR",
                    "comment": "string"
                },
                "guaranteePeriod": {
                    "timePeriod": 0,
                    "timeUnit": "HOUR",
                    "comment": "string"
                },
                "certificate": "string"
            },
            "mapping": {
                "marketSku": 0,
                "modelId": 0,
                "categoryId": 0
            },
            "awaitingModerationMapping": {
                "marketSku": 0,
                "modelId": 0,
                "categoryId": 0
            },
            "rejectedMapping": {
                "marketSku": 0,
                "modelId": 0,
                "categoryId": 0
            }
        }
    ]
}

Name

Description

offerMappingEntries*

Type: object[]

Information about the products in the catalog.
The list of products.
Information about the product card.

Min items: 1

Max items: 500

Responses

200 OK

The status of the operation.

Body

application/json
{
    "status": "OK"
}

Name

Description

status*

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

400 Bad Request

The request contains incorrect data. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

401 Unauthorized

The authorization data is not specified in the request. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

403 Forbidden

The authorization data is incorrect or access to the resource is prohibited. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

404 Not Found

The requested resource was not found. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

420 Method Failure

The resource access limit has been exceeded. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

423 Locked

The specified method cannot be applied to the resource. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

500 Internal Server Error

Internal error of the Market. More information about the error

Body

application/json
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}

Name

Description

errors

Type: object[]

A list of errors.
The general error format.

Min items: 1

status

Type: string

The type of response. Possible values:

  • OK — There are no errors.
  • ERROR — an error occurred while processing the request.

Enum: OK, ERROR

No longer supported, please use an alternative and newer version.

What is GTIN?
GTIN — This is a unique number assigned to a product in a single international database. GS1. This number generates an EAN, UPC, or ISBN barcode.

How to make sure that the product is in the database
You can check the code on verification page on the GS1 association's website. If the product is not found, request the GTIN code from your supplier.

How to get a GTIN for your products
To receive GTIN codes, the manufacturer needs to join the GS1 association and register the products.