Import products into catalogue

Function catalog/import (http://<DOMAIN>/api/catalog/import/)

ParametersParameters:

  • token - authorization key obtained via the auth function

  • products[] - product list

    • products[i].title.en - value in English (optional)

    • products[i].title.ro - value in Romanian (optional)

    • products[i].title - common value for all languages

    • products[i].description.en - value in English (optional)

    • products[i].description.ro - value in Romanian (optional)

    • products[i].description - common value for all languages

    • products[i].seo_title.en - value in English (optional)

    • products[i].seo_title.ro - value in Romanian (optional)

    • products[i].seo_title - common value for all languages

    • products[i].seo_keywords.en - value in English (optional)

    • products[i].seo_keywords.ro - value in Romanian (optional)

    • products[i].seo_keywords - common value for all languages

    • products[i].seo_description.en - value in English (optional)

    • products[i].seo_description.ro - value in Romanian (optional)

    • products[i].seo_description - common value for all languages

    • products[i].marketplace_description - description for marketplaces

    • products[i].parent_article - article of the parent product. Necessary for creating/merging variants. If the product is a parent, thid field is not necessary (or specify the value of the product article).
      If you update an existing item but do not specify this field, the current parent article from the database will be taken as the value
      If the product is new and no value is specified, the parent article will be taken from the products[i].article field

    • products[i].article - product article (mandatory parameter)

    • products[i].article_for_display - model article (optional). If filled in, it will be displayed on the site instead of the product article

    • products[i].title - product name (mandatory parameter in case of adding a new product)

    • products[i].mod_title - product variant name (optional)

      • products[i].mod_title.en - value in English (optional)

      • products[i].mod_title.ro - value in Romanian (optional)

      • products[i].mod_title - common value for all languages

    • products[i].display_in_showcase - display product (true|false|1|0)

    • products[i].presence - product availability. Attention: availability statuses can be transferred only if the Stock Accounting function is disabled.
      Available values:

      • in stock

      • out of stock

      • coming soon

      • Also any other availability statuses added to your site

    • products[i].price - product price

    • products[i].price_old - product old price

    • products[i].discount - relative discount on the product

    • products[i].short_description — short description

    • products[i].color — color

    • products[i].gtin — barcode (GTIN (EAN, UPC, ISBN))

    • products[i].mpn — manufacturer part number (MPN)

    • products[i].popularity — popularity

    • products[i].guarantee_shop — warranty type

    • products[i].guarantee_length — warranty period, months.

    • products[i].countdown_end_time — promotion end date and time

    • products[i].countdown_description — promotion text

    • products[i].currency - currency of the product. Available values (by default):

      • UAH

      • USD

      • EUR

      • PLN

      • RON

      • MDL

      • Note that the currency name may be different on your site, if you have renamed it. Before importing the currency you must check the currency name in the site admin panel

    • products[i].parent - path / to / section (Educational toys / Toys for babies) (mandatory parameter when adding new products)

    • products[i].parent.id - catalog section identifier (used instead of products[i].parent, recommended instead of just the section path). Section identifiers can be obtained with the pages/export function

    • products[i].alt_parent - array of additional sections. Each element is specified in the same way as the products[i].parent field

      • products[i].alt_parent[n] - path / to / section (Educational toys / Toys for babies)

      • products[i].alt_parent[n].id - catalog section identifier (used instead of products[i].alt_parent[n])

      • the above options for additional sections can be combined

    • products[i].forceAliasUpdate - need to regenerate the product reference (boolean value, true/false)

    • products[i].slug - product alias. Works only for new item, or if the parameter forceAliasUpdate == true. The alias will be inserted into the product link and converted according to the rules of forming product links

    • products[i].brand - brand name

    • products[i].description - product description

    • products[i].adult - for adults only (Google Merchant Center)

    • products[i].condition - product condition (e.g. "New", "Used", "Refurbished")

    • products[i].condition.id - product condition ID (used instead of products[i].condition)

    • products[i].icons - Icons (["Sale", "New", "Bestseller"]). Also other parameters with the "Multiselect" type or "Selection from list" with the mark "multi" can be passed in the same format

    • products[i].seo_title - SEO title for product

    • products[i].seo_keywords - SEO keywords for product

    • products[i].seo_description - SEO description for product

    • products[i].h1_title.en - h1 header for the product (English version)

    • products[i].h1_title.ro - h1 header for the product (Romanian version)

    • products[i].export_to_marketplace - enable uploading to marketplaces. Specify names of marketplaces with semicolon: "marketplace 1;marketplace2;...".

    • products[i].characteristics[] - product attributes (optional)

      • products[i].characteristics.material - Material

      • products[i].characteristics.weight - Weight

      • products[i].characteristics.consist - Composition

      • products[i].characteristics.country - Country

      • products[i].characteristics.gender - Gender

      • products[i].characteristics.age - Age

      • products[i].characteristics.physics - Physical development (enter values with ;)

      • products[i].characteristics.brain - Mental development (specify values with ;)

      • products[i].characteristics.social - Social development (enter values with ;)

 

New parameters since version 3.15.15

  •  

    • products[i].accessories - product accessories (array). Overwrites existing accessories

      • products[i].accessories[n] - product article (string)

      • products[i].accessories[n].article - direct indication of the product article

      • products[i].accessories[n].page - path / to / section (Educational toys / Toys for babies)

      • products[i].accessories[n].page.id - section ID

    • products[i].gifts - gifts for the product (array). Will only work if the site has gifts enabled. Overwrites existing gifts

      • products[i].gifts[n] - product article (string)

      • products[i].gifts[n].article - явное указание артикула товара

      • products[i].gifts[n].page - path / to / section (Educational toys / Toys for babies)

      • products[i].gifts[n].page.id - section ID

    • products[i].residues - product stock in warehouses. Works only if the site has stock accounting enabled

      • products[i].residues[n].warehouse - Name for warehouse synchronization (value of the property "Name for synchronization" in the warehouse)

      • products[i].residues[n].quantity - product stock in the warehouse

    • products[i].images - product variant images

      • products[i].images.links - links to the product images to be loaded (array). Photos are imported in the order in which they are in the array.

        • products[i].images.links[n] - link to the image (image size should not exceed 5MB)

      • products[i].images.override - need to delete current images before loading new ones (boolean). Default is true. If false is passed, images with the same or new links will be added to the product without overwriting the previously imported ones.

      • products[i].images.removeAll - remove all images. WARNING! If you specify true in the parameter, the other parameters ("links", "override") will be ignored and the gallery will simply be cleaned up.

    • products[i].gallery_common - common gallery for all variants

      • products[i].gallery_common.links - links to the product images to be loaded (array). Photos are imported in the order in which they are in the array.

        • products[i].gallery_common.links[n] - link to the image (image size should not exceed 5MB)

      • products[i].gallery_common.override - need to delete current images before loading new ones (boolean). Default is true.

      • products[i].gallery_common.removeAll - remove all images. WARNING! If you specify true in the parameter, the other parameters ("links", "override") will be ignored and the gallery will simply be cleaned up.

    • products[i].gallery_360 - 360-degree view

      • products[i].gallery_360.links - links to the product images to be loaded (array). Photos are imported in the order in which they are in the array.

        • products[i].gallery_360.links[n] - link to the image (image size should not exceed 5MB)

      • products[i].gallery_360.override - need to delete current images before loading new ones (boolean). Default is true.

      • products[i].gallery_360.removeAll - remove all images. WARNING! If you specify true in the parameter, the other parameters ("links", "override") will be ignored and the gallery will simply be cleaned up.



New parameters since version 4.0

For projects with wholesale functionality (example query)

  • products[i].price_levels - prices of different types

    • products[i].price_levels.level_id - number, price type identifier

    • products[i].price_levels.price - number, price value of this type

 

For all projects

  • products[i].multiplicity — multiplicity  (step of adding to cart). Integer number.

  • products[i].minimal_order — minimum order. Integer, must be a multiple of the "Multiplicity" field.

  • products[i].installments_payment — number of payments for "Payment by installments by PrivatBank".
    Available values:

    • "Off" - payment by installments is not available for the product

    • "Default" - the value is taken from the payment system settings

    • 2-25 - allowable number of payments

  • products[i].monobank_installments_payment — number of payments for "Purchase by installments from monobank".
    Available values:

    • "Off" - payment by installments is not available for the product

    • "Default" - the value is taken from the payment system settings

    • 3-25 - allowable number of payments

  • products[i].unit_of_measurement — measurement units.

  • products[i].wholesale_prices[] — wholesale prices for the number of units in an order.

    • products[i].wholesale_prices.minimal_threshold — number of units

    • products[i].wholesale_prices.price — the price valid when adding this number of units to an order

 

  • products[i].supplier_id[] — supplier

    • products[i].supplier_id.id — unique supplier ID

    • products[i].supplier_id.value — supplier name

 

ResponseResponse:

  • status - function execution status

  •  

    • OK - all records updated successfully

    • WARNING - errors occurred when updating some records

    • ERROR - critical error has occurred

  • response.log - function execution log for each record

  •  

    • response.log[i].article - product article

    • response.log[i][‘info’][n].code - record update status (see the code table below)

    • response.log[i][‘info’][n].message - code explanation





Product import log codes

Code

Description

Code

Description

Common

0

Product added/updated

1

Item with article does not exist (obsolete code, no longer in use)

2

Product matching the parent article "parent_article" was not found

3

The product is now a separate parent variant

4

The product was set as a variant to another product

5

Category change error

For new products only

6

The "title" parameter is mandatory (only for new products)

7

One of the required fields is not set

8

Obsolete code. No longer used

9

The product was moved to another category

10

Error transferring a product to another category

11

The passed parameter is not found in the "Catalog" template

12

It is not possible to set the category of the product variant, because the parent product has a different category.

Product link

13

An entry with the link provided already exists

14

Error when creating/saving a link

Stock balances

15

Stock balances updated

16

Unable to update stock balances because they are disabled on the site

17

Data integrity error on stock balances in the warehouse

18

The warehouse for the stock balances was not found

19

Error when updating stock balances

Accessories and gifts

20

When adding an accessory/gift, there is no accessory/gift with the specified article

21

When adding an accessory/gift section, there is no category with the specified details

Gallery (for the variant, common and 360-degree view)

22

The image has been uploaded

23

Incorrect link to the image

24

Error when writing an image to a file

25

Unknown error when loading an image

26

Error when loading an image

27

MIME type of the uploaded image does not correspond to the following: image/jpeg, image/gif, image/png

28

The gallery has been cleared.

This code is displayed if you pass the "removeAll":true parameter in the gallery, or if you upload new images and do not specify the "override" parameter or specify explicitly "override": true, which in turn also clears the image gallery.



Example of a query for the address (http://<DOMAIN>/api/catalog/import/):

{ "products": [ { "parent_article": "AAAA_TEST", "article": "AAAA_TEST", "title": { "en": "Import test", "ro": "Test de import" }, "description": { "en": "Import test", "ro": "Test de import" }, "short_description": { "en": "Short description", "ro": "Scurtă descriere" }, "color": "White", "gtin": "4581649781942", "mpn": "GO12345OOGLE", "popularity": 25, "guarantee_shop": "Shop", "guarantee_length": 12, "countdown_end_time": "2021-12-31 23:59:59", "countdown_description": { "en": "<p>Description for promotion</p>", "ro": "<p>Descriere pentru promovare</p>", }, "parent": "iPhone / iPhone 6", "alt_parent": [ "Other products / Accessories", { "id": 98 }, "Apple / Test" ], "forceAliasUpdate": true, "slug": "aaaa-test", "display_in_showcase": true, "presence": "In stock", "price": 100, "price_old": 150, "wholesale_prices": [ { "minimal_threshold": "4", "price": 8000 } ], "icons": [ "Sale", "New", "Bestseller" ], "export_to_marketplace": "Facebook Feed;Google Feed for Merchant Center", "images": { "override": false, "links": [ "https://cdn.pixabay.com/photo/2013/07/12/12/58/tv-test-pattern-146649_960_720.png", "https://lh4.ggpht.com/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300", "http://wp.patheos.com.s3.amazonaws.com/blogs/faithwalkers/files/2013/03/bigstock-Test-word-on-white-keyboard-27134336.jpg", "https://i.vimeocdn.com/portrait/58832_300x300", "http://www.testinteligencia.net/image/repository/test1.jpg", "https://i.ytimg.com/vi/yaqe1qesQ8c/maxresdefault.jpg", "http://build.horoshop.com.ua/api/catalog/export", "sdgagadsgsadgsadgsadgsagsadg" ] } }, { "parent_article": "AAAA_TEST", "article": "BBBB_TEST", "title": { "en": "Import test", "ro": "Test de import" }, "description": { "en": "Import test", "ro": "Test de import" }, "marketplace_description": { "en": "Description en", "ro": "Descriere ro", }, "parent": { "id": 1036 }, "display_in_showcase": true, "price": 95, "discount": 3, "accessories": [ "2317217", "4517217", { "page": "Phones / Accessories" }, { "page": { "id": 1032 } }, { "article": "MD827" } ], "residues": [ { "warehouse": "office", "quantity": 15 } ], "gallery_common": { "override": false, "links": [ "https://cdn.pixabay.com/photo/2013/07/12/12/58/tv-test-pattern-146649_960_720.png", "https://lh4.ggpht.com/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300" ] }, "characteristics": { "gender": "Boy ; Girl", "material": "Polyester", "country": { "en": "United Kingdom", "ro": "Marea Britanie" } "supplier_id": { "id": 4, "value": "Top" } } } ] }

 

Example of a response to a request:

{ "status": "WARNING", "response": { "log": [ { "article": "AAAA_TEST", "info": [ { "code": 23, "message": "Incorrect link to the image \"sdgagadsgsadgsadgsadgsagsadg\"" }, { "code": 0, "message": "Product updated" }, { "code": 13, "message": "An entry with the link \/aaaa-test\/ already exists" }, { "code": 22, "message": "The image https:\/\/cdn.pixabay.com\/photo\/2013\/07\/12\/12\/58\/tv-test-pattern-146649_960_720.png has been uploaded" }, { "code": 22, "message": "The image https:\/\/lh4.ggpht.com\/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300 has been uploaded" }, { "code": 22, "message": "The image http:\/\/wp.patheos.com.s3.amazonaws.com\/blogs\/faithwalkers\/files\/2013\/03\/bigstock-Test-word-on-white-keyboard-27134336.jpg has been uploaded" }, { "code": 22, "message": "The image https:\/\/i.vimeocdn.com\/portrait\/58832_300x300 has been uploaded" }, { "code": 22, "message": "The image http:\/\/www.testinteligencia.net\/image\/repository\/test1.jpg has been uploaded" }, { "code": 22, "message": "The image https:\/\/i.ytimg.com\/vi\/yaqe1qesQ8c\/maxresdefault.jpg has been uploaded" }, { "code": 25, "message": "Unknown error when loading an image. Cannot read from non-readable stream" } ] }, { "article": "BBBB_TEST", "info": [ { "code": 15, "message": "Stock balances updated" }, { "code": 0, "message": "Product added" }, { "code": 22, "message": "The image https:\/\/cdn.pixabay.com\/photo\/2013\/07\/12\/12\/58\/tv-test-pattern-146649_960_720.png has been uploaded" }, { "code": 22, "message": "The image https:\/\/lh4.ggpht.com\/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300 has been uploaded" } ] } ] } }