Newstore Product export API

Product Export

OpenAPI Specification

newstore-product-export-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: '1.0'
  title: NewStore address Product export API
  description: NewStore public APIs
  contact:
    email: support@newstore.com
    name: NewStore API Support
    url: https://developer.newstore.com
host: dodici-demo.p.newstore.net
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
security: []
tags:
- name: Product export
  description: Product Export
paths:
  /catalog/catalogs/{catalog}/offlineproducts:
    get:
      description: "Use this resource to download products in a file. The export can be requested in CSV.\n\n- CSV delimiter is `\\t` (tab)\n- CSV line is ended with `\\n` (end line)\n- CSV cell is escaped when containing special characters `\\t` (tab) `\\n` (new line) `\\r` (carriage return) with `\\\\t` `\\\\n` `\\\\r`\n- CSV cell is escaped with `\"` (double quote) when contain double quote originally (relevant to json fields) [RFC 4180](https://www.ietf.org/rfc/rfc4180.txt)\n\nSchema:\n- product_id (string)\n- variant_group_id (string)\n- is_available (bool) - true if product ATP > 0. This value is synchronized from Order Management. This field is eventually consistent. There is no SLA how old this value can be. Please consider using OM directly for use-cases requiring strict consistency. \n- categories (json array)\n  - path (string)\n  - position (int32)\n- main_category_path (string)\n- main_category_position (int32)\n- external_identifiers (json array)\n  - type (string)\n  - value (string)\n- extended_attributes (json array)\n  - name (string)\n  - value (string)\n- title (string)\n- brand\t(string)\n- caption (string)\n- description (string)\n- keywords (json array of strings)\n- images (json array)\n  - url (string)\n  - title (string)\n  - identifier (string)\n  - altText (string)\n  - dominantColor (string)\n  - width (int32)\n  - height (int32)\n  - aspectRatio (float32)\n  - tags (json array of strings)\n- template_id string\t\n- price (float32) price from default pricebook\n- currency (string)\t\n- country_of_origin (string)\n- tax_class_id (string)\n- preorder_start (string RFC3339 truncated to seconds)\n- online_from (string RFC3339 truncated to seconds)\n- online_to (string RFC3339 truncated to seconds)\n- variation_color_value (string)\n- variation_size_value (string)\n- variation_size_gender (string)\n- variation_size_type (string)\n- variation_size_system (string)\n- variation_size_sort_position (int32) \n- variation_additional_1_name (string)\n- variation_additional_1_value (string)\n- variation_additional_2_name (string)\n- variation_additional_2_value (string)\n- product_hts_number (string)\n- schedule_b (string)\n- shipping_dimension_height (float32)\n- shipping_dimension_length (float32)\n- shipping_dimension_unit (string)\n- shipping_dimension_width (float32)\n- shipping_weight_value (float32)\n- shipping_weight_unit (string)\n- serialized_inventory  (bool)\n- variable_pricing  (bool)\n- inventory_tracked  (bool)\n- material  (string)\n- updated_at  (int64 Unix Timestamp Milliseconds) - some products may have this value empty, value is then considered to be Thu Jan 01 1970 00:00:00 GMT+0000\n\nFiles are refreshed automatically. They are scheduled daily. Usually at 8:00 UTC. They are usually finished before 9:00 UTC.\nAPI can be used to retrieve max 1 day old snapshot of product data.\n\nResponse header `Last-Modified` can be used to determine when file was updated last time (example value `Mon, 18 Dec 2023 08:00:21 GMT`).\nResponse header `ETag` can be used to determine whether version you already downloaded before match current one. (example value `\"2ad5ba4e24fe1c0d225e9a94049f142d\"`)\nPlease use it with combination with `If-None-Match` request header to download file only when something changed.\n"
      summary: listProducts
      tags:
      - Product export
      operationId: listProducts
      deprecated: false
      produces:
      - application/json
      - application/problem+json
      parameters:
      - name: catalog
        in: path
        required: true
        type: string
        description: The catalog the product, the user wants to export, belongs to.
      - name: locale
        in: query
        required: false
        default: en-us
        type: string
        description: The locale the user wants to export. Example en-us.csv
      - name: Accept
        in: header
        required: false
        enum:
        - text/csv
        default: text/csv
        type: string
      - name: redirect
        in: query
        required: false
        default: true
        type: boolean
        description: if true api will return HTTP 302 redirect to resource, otherwise it will return json response with link to a file.
      responses:
        '200':
          description: Response with a download link
          schema:
            $ref: '#/definitions/DownloadResponse'
          headers: {}
        '302':
          description: Temporary redirect to actual export file, stored in S3.
          headers:
            Location:
              description: The S3 presigned URL to redirect to, to access the requested product export.
              type: string
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '403':
          description: Forbidden, authentication scope did not met requirements
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '404':
          description: Not found
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '429':
          description: Too Many Requests
          schema:
            $ref: '#/definitions/Problem'
          headers:
            Retry-After:
              type: string
        '500':
          description: Internal Error
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '502':
          description: Bad Gateway
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '503':
          description: Service Unavailable
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
      security:
      - oauth:
        - catalog:product-export:read
definitions:
  Problem:
    title: Problem
    type: object
    properties:
      detail:
        description: A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
        example: some description for the error situation
        type: string
      error_code:
        type: string
      instance:
        description: A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.
        example: /some/uri-reference#specific-occurrence-context
        type: string
      message:
        type: string
      messages:
        type: array
        items:
          type: string
      request_id:
        type: string
      status:
        description: The HTTP status code generated by the origin server for this occurrence of the problem.
        type: integer
        minimum: 100.0
        maximum: 600.0
        exclusiveMaximum: true
        format: int32
      title:
        description: A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
        example: some title for the error situation
        type: string
      type:
        description: A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type.
        example: /some/uri-reference
        type: string
        default: about:blank
  DownloadResponse:
    title: DownloadResponse
    type: object
    properties:
      download_url:
        description: The presigned URL to redirect to, to download the requested offline products.
        type: string
    required:
    - download_url
securityDefinitions:
  oauth:
    type: oauth2
    flow: application
    tokenUrl: https://id.p.newstore.net/auth/realms/dodici-demo/protocol/openid-connect/token
    scopes:
      catalog:import-schemas:read: Grants privileges to read import schema
      catalog:import-schemas:write: Grants privileges to write import schema
      catalog:pricebook-export:read: Grants privileges to export pricebook data
      catalog:product-export:read: Grants privileges to export product data
      checkout:carts:read: Grants privileges to read cart data
      checkout:carts:write: Grants privileges to write cart data
      clienteling:profile:read: Grants privileges to read clienteling profiles
      customer:profile:read: Grants privileges to read API customer data
      customer:profile:write: Grants privileges to modify API customer data
      newstore:configuration:read: Grants privileges to read configuration
      newstore:configuration:write: Grants privileges to write configuration
      fiscalization:orders:read: View orders with fiscal transactions and signatures
      fiscalization:orders:write: Create orders with fiscal transactions and signatures
      shipments:read: Read Shipping Options and Audits
      iam:providers:read: ' Grants read privileges to provider resources'
      iam:providers:write: ' Grants write privileges to provider resources'
      iam:roles:read: ' Grants privileges to read roles data'
      iam:roles:write: ' Grants privileges to write roles data'
      iam:users:read: ' Grants privileges to read user data'
      iam:users:write: ' Grants privileges to write user data'
      inventory:reservations:read: Allows access to retrieve reservations
      inventory:reservations:write: Allows access to create and update reservations
      promotions:config:read: Grants privileges to read configuration
      promotions:config:write: Grants privileges to write into configuration
      promotions:reason-codes:read: Grants privileges to list reason codes
      promotions:reason-codes:write: Grants privileges to create and update reason codes
      audit-events:read: Grants read access to the tenant's audit events.
      taxes:preview-transactions:write: Preview tax transactions
      taxes:transactions:read: Read tax transactions