> ## Documentation Index
> Fetch the complete documentation index at: https://help.vori.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Restore a store product

> Restore a store product



## OpenAPI

````yaml /api/openapi.json post /v1/store-products/{id}/restore
openapi: 3.0.0
info:
  title: Vori API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.vori.com
    description: production
security: []
tags: []
paths:
  /v1/store-products/{id}/restore:
    post:
      tags:
        - Store products
      summary: Restore a store product
      description: Restore a store product
      operationId: restoreStoreProduct
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
            pattern: ^[0-9]+$
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProduct'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsufficientPermissionsError'
        '404':
          description: ''
      security:
        - bearer: []
components:
  schemas:
    StoreProduct:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the record.
        active:
          type: boolean
          description: Whether the product is active.
        active_vendor:
          description: The vendor currently supplying this product.
          allOf:
            - $ref: '#/components/schemas/CompactStoreVendor'
        active_vendor_product:
          description: The vendor catalog entry currently supplying this product.
          allOf:
            - $ref: '#/components/schemas/CompactStoreVendorProduct'
        barcode:
          type: string
          description: Primary barcode.
        brand:
          type: string
          nullable: true
          description: Brand name.
        country_of_origin:
          type: string
          nullable: true
          maxLength: 3
          minLength: 3
          description: ISO 3166-1 alpha-3 country code of origin.
        created_at:
          type: string
          description: When the record was created.
          format: date-time
        department_id:
          type: string
          description: ID of the store department this product belongs to.
          pattern: ^[0-9]+$
        description:
          type: string
          nullable: true
          description: >-
            Short description, intended for character-limited use cases (e.g.,
            printed receipts).
        ebt_enabled:
          type: boolean
          description: Whether the product is eligible for EBT/SNAP payment.
        ecommerce_enabled:
          type: boolean
          description: Whether the product is available for e-commerce.
        food_modifier_categories:
          description: >-
            Food modifier categories, and their modifiers, available for this
            product, ordered by category priority.
          type: array
          items:
            $ref: '#/components/schemas/CompactFoodModifierCategory'
        inventory:
          description: >-
            Current inventory levels. Included when requested via
            `include=inventory`.
          allOf:
            - $ref: '#/components/schemas/CompactStoreProductInventory'
        is_blackhawk_gift_card:
          type: boolean
          description: Whether the product is a Blackhawk gift card.
        is_reloadable_blackhawk_gift_card:
          type: boolean
          description: Whether the product is a reloadable Blackhawk gift card.
        is_tippable:
          type: boolean
          description: Whether purchases of this product can include a tip.
        item_modifiers:
          description: Item modifiers available for this product.
          type: array
          items:
            $ref: '#/components/schemas/CompactItemModifier'
        loyalty_points_per_dollar:
          type: string
          nullable: true
          description: >-
            Loyalty points earned per dollar spent. Null defaults to one point
            per dollar.
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
        manual_item:
          type: boolean
          description: >-
            Whether the product is entered manually at the register rather than
            scanned.
        maximum_retail_price:
          type: string
          nullable: true
          description: >-
            Upper bound for the retail price, in dollars. This is typically only
            used for variable-priced gift cards.
          format: positive-monetary
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
        min_customer_age:
          type: integer
          nullable: true
          description: Minimum customer age, in years, required to purchase.
        minimum_retail_price:
          type: string
          nullable: true
          description: >-
            Lower bound for the retail price, in dollars. This is typically only
            used for variable-priced gift cards.
          format: positive-monetary
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
        name:
          type: string
          description: Human-readable product name.
        prompt_for_quantity:
          type: boolean
          description: >-
            Whether the register prompts for a quantity when the product is
            scanned.
        retail_price:
          type: string
          nullable: true
          description: Current shelf/retail price in dollars.
          format: positive-monetary
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
        sold_by_weight:
          type: boolean
          description: Whether the product is sold by weight rather than by unit.
        store_id:
          type: string
          description: ID of the store this product belongs to.
          pattern: ^[0-9]+$
        store_vendor_products:
          description: Vendor catalog entries for this product.
          type: array
          items:
            $ref: '#/components/schemas/CompactStoreVendorProduct'
        sync_to_deli_scales:
          type: boolean
          default: false
          description: Whether the product is synchronized to deli scales.
        target_margin:
          type: string
          nullable: true
          description: >-
            Target gross margin for pricing decisions, as a whole-number
            percentage (35 means 35%).
          example: '199.99'
          pattern: ^-?[0-9]+(\.[0-9]+)?$
        tax_rates:
          description: Tax rates applied to this product at the register.
          type: array
          items:
            $ref: '#/components/schemas/CompactTaxRate'
        updated_at:
          type: string
          description: When the record was last changed.
          format: date-time
        variable_sale_price:
          type: boolean
          description: Whether the sale price is entered at the register instead of fixed.
        variable_weights:
          description: Preset weights for products sold by weight.
          type: array
          items:
            $ref: '#/components/schemas/CompactVariableWeight'
        wic_enabled:
          type: boolean
          description: Whether the product is eligible for WIC payment.
      description: >-
        A product as it is sold at a single store, carrying its price, barcodes,
        department, and inventory settings.
      required:
        - id
        - active
        - barcode
        - brand
        - country_of_origin
        - created_at
        - department_id
        - description
        - ebt_enabled
        - ecommerce_enabled
        - food_modifier_categories
        - is_blackhawk_gift_card
        - is_reloadable_blackhawk_gift_card
        - is_tippable
        - item_modifiers
        - loyalty_points_per_dollar
        - manual_item
        - maximum_retail_price
        - min_customer_age
        - minimum_retail_price
        - name
        - prompt_for_quantity
        - retail_price
        - sold_by_weight
        - store_id
        - sync_to_deli_scales
        - target_margin
        - tax_rates
        - updated_at
        - variable_sale_price
        - variable_weights
        - wic_enabled
    InsufficientPermissionsError:
      type: object
      properties:
        error_code:
          type: string
          enum:
            - insufficient_permissions
        error_details:
          $ref: '#/components/schemas/InsufficientPermissionsErrorDetails'
      required:
        - error_code
        - error_details
    CompactStoreVendor:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the record.
        code:
          type: string
          nullable: true
        created_at:
          type: string
          description: When the record was created.
          format: date-time
        name:
          type: string
        updated_at:
          type: string
          description: When the record was last changed.
          format: date-time
      required:
        - id
        - code
        - created_at
        - name
        - updated_at
    CompactStoreVendorProduct:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the record.
        barcode:
          type: string
          nullable: true
        barcode_type:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BarcodeType'
        brand_name:
          type: string
          nullable: true
        case_cost:
          type: string
          nullable: true
          example: '199.99'
          pattern: ^-?[0-9]+(\.[0-9]+)?$
        case_cost_start_time:
          type: string
          nullable: true
          format: date-time
        case_size:
          type: string
          nullable: true
          example: '199.99'
          pattern: ^-?[0-9]+(\.[0-9]+)?$
        created_at:
          type: string
          description: When the record was created.
          format: date-time
        description:
          type: string
        each_cost:
          type: string
          nullable: true
          example: '199.99'
          pattern: ^-?[0-9]+(\.[0-9]+)?$
        each_cost_start_time:
          type: string
          nullable: true
          format: date-time
        is_order_primary:
          type: boolean
        item_code:
          type: string
        lb_cost:
          type: string
          nullable: true
          example: '199.99'
          pattern: ^-?[0-9]+(\.[0-9]+)?$
        lb_cost_start_time:
          type: string
          nullable: true
          format: date-time
        mutation_key:
          type: string
          format: uuid
        purchase_order_uom_lock:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PurchaseOrderLineItemUnitOfMeasure'
        store_id:
          type: string
          nullable: true
        store_product:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CompactStoreProduct'
        store_product_id:
          type: string
          nullable: true
        store_vendor:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CompactStoreVendor'
        unit_volume:
          type: string
          nullable: true
        updated_at:
          type: string
          description: When the record was last changed.
          format: date-time
        uuid:
          type: string
          format: uuid
      required:
        - id
        - barcode
        - barcode_type
        - brand_name
        - case_cost
        - case_cost_start_time
        - case_size
        - created_at
        - description
        - each_cost
        - each_cost_start_time
        - is_order_primary
        - item_code
        - lb_cost
        - lb_cost_start_time
        - mutation_key
        - purchase_order_uom_lock
        - store_id
        - store_product
        - store_product_id
        - store_vendor
        - unit_volume
        - updated_at
        - uuid
    CompactFoodModifierCategory:
      type: object
      properties:
        id:
          type: string
        max_selection:
          type: integer
          description: Maximum number of options customer can select
          nullable: true
        min_selection:
          type: integer
          description: Minimum number of options customer must select (0 = no minimum)
        modifiers:
          description: Modifiers assigned to this product in this category
          type: array
          items:
            $ref: '#/components/schemas/FoodModifier'
        name:
          type: string
          description: Category name
        priority:
          type: integer
          description: Display priority (lower = shown first)
      required:
        - id
        - max_selection
        - min_selection
        - modifiers
        - name
        - priority
    CompactStoreProductInventory:
      type: object
      properties:
        current:
          type: string
          nullable: false
          example: '199.99'
          pattern: ^-?[0-9]+(\.[0-9]+)?$
        last_changed_at:
          type: string
          nullable: true
          format: date-time
        max_stock:
          type: string
          nullable: true
        min_par:
          type: string
          nullable: true
      required:
        - current
        - last_changed_at
        - max_stock
        - min_par
    CompactItemModifier:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the item modifier.
        name:
          type: string
          description: Human-readable item modifier name.
        tax_behavior:
          description: >-
            Whether the modifier is excluded from tax or inherits the product
            tax behavior.
          allOf:
            - $ref: '#/components/schemas/ItemModifierTaxBehavior'
        type:
          description: Business purpose of the item modifier.
          allOf:
            - $ref: '#/components/schemas/ItemModifierType'
        value:
          type: string
          description: >-
            Monetary value of the modifier as a decimal string in major/minor
            currency units.
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
      required:
        - id
        - name
        - tax_behavior
        - type
        - value
    CompactTaxRate:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the tax rate.
        category:
          description: The kind of tax this rate represents.
          allOf:
            - $ref: '#/components/schemas/TaxRateCategory'
        name:
          type: string
          description: >-
            Name of the tax rate, such as the jurisdiction that levies it or the
            category it covers.
        value:
          type: string
          description: >-
            The rate charged. When `value_type` is `percentage`, this is a
            percentage of the taxable amount — `8.25` means 8.25%. When it is
            `amount`, this is a fixed amount of currency charged per unit sold.
          example: '8.25'
          pattern: ^[0-9]+(\.[0-9]+)?$
        value_type:
          description: 'How `value` is applied: a fixed amount or a percentage.'
          allOf:
            - $ref: '#/components/schemas/TaxRateValueType'
      required:
        - id
        - category
        - name
        - value
        - value_type
    CompactVariableWeight:
      type: object
      properties:
        id:
          type: string
          nullable: true
          description: >-
            Unique identifier for the variable weight, or null when the weight
            was captured on a transaction without one.
        name:
          type: string
          description: Human-readable name for the tare container, such as "Produce bag".
        unit:
          description: >-
            Unit of measure the weight is expressed in, limited to the units the
            point of sale can weigh in.
          allOf:
            - $ref: '#/components/schemas/VariableWeightUnit'
        value:
          type: string
          description: >-
            Weight of the tare container, as a decimal string in the unit of
            measure.
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
      description: >-
        A compact reference to a tare container weight, embedded within other
        resources. Where it is embedded in a completed transaction, it is the
        immutable reading captured at the time of sale rather than a live
        reference.
      required:
        - id
        - name
        - unit
        - value
    InsufficientPermissionsErrorDetails:
      type: object
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/Action'
        resource:
          allOf:
            - $ref: '#/components/schemas/Resource'
      required:
        - action
        - resource
    BarcodeType:
      type: string
      enum:
        - EAN 13 Type 2 Without Check Digit
        - EAN-13
        - EAN-13 Without Check Digit
        - EAN-14
        - EAN-14 Without Check Digit
        - EAN-8
        - EAN-8 Without Check Digit
        - PLU
        - PRODUCE PLU
        - Type 2 EAN
        - Type 2 UPC
        - Unsanitized
        - UPC Shipping Container
        - UPC-A
        - UPC-A Type 2 Without Check Digit
        - UPC-A Without Check Digit
        - UPC-E
        - UPC-E Without Check Digit
    PurchaseOrderLineItemUnitOfMeasure:
      type: string
      enum:
        - CASE
        - EACH
        - LB
    CompactStoreProduct:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the record.
        barcode:
          type: string
        created_at:
          type: string
          description: When the record was created.
          format: date-time
        name:
          type: string
        primaryVendorConfiguration:
          allOf:
            - $ref: '#/components/schemas/PrimaryVendorConfiguration'
        updated_at:
          type: string
          description: When the record was last changed.
          format: date-time
      required:
        - id
        - barcode
        - created_at
        - name
        - primaryVendorConfiguration
        - updated_at
    FoodModifier:
      type: object
      properties:
        id:
          type: string
        item_modifier:
          description: Item modifier data
          allOf:
            - $ref: '#/components/schemas/FoodModifierItemModifier'
        priority:
          type: integer
          description: Display priority (lower = shown first)
      required:
        - id
        - item_modifier
        - priority
    ItemModifierTaxBehavior:
      type: string
      enum:
        - EXCLUDE
        - INHERIT_FROM_STORE_PRODUCT
    ItemModifierType:
      type: string
      enum:
        - bottle_deposit
        - custom
        - food_modifier
    TaxRateCategory:
      type: string
      description: The kind of tax a rate represents.
      enum:
        - other
        - sales
    TaxRateValueType:
      type: string
      description: >-
        How a tax rate applies its value: a fixed amount per unit sold, or a
        percentage of the taxable amount.
      enum:
        - amount
        - percentage
    VariableWeightUnit:
      type: string
      enum:
        - LBS
        - OZ
    Action:
      type: string
      enum:
        - '*'
        - cancel
        - check_in
        - create
        - delete
        - read
        - record_events
        - refund
        - restart
        - update
        - void
    Resource:
      type: string
      enum:
        - '*'
        - accounting_integration
        - agent_chats
        - api_clients
        - asynchronous_tasks
        - banners
        - blackhawk_transactions
        - capabilities
        - coupons
        - custom_quick_actions
        - datacap_transactions
        - departments
        - discounts
        - ditto_auth_tokens
        - edge_agents
        - electronic_shelf_labels
        - employees
        - files
        - food_modifiers
        - gift_cards
        - gl_code_mappings
        - house_accounts
        - inventory
        - inventory_sessions
        - invoices
        - item_modifiers
        - label_dimension_sets
        - label_sheet_profiles
        - label_stock_products
        - lanes
        - loyalty_bonuses
        - loyalty_campaigns
        - loyalty_rewards
        - notification_templates
        - offers
        - order_guides
        - pos_banner_configurations
        - pos_orders
        - pos_tills
        - price_tags
        - product_ranges
        - products
        - promotions
        - purchase_orders
        - receiving
        - reporting
        - revision_sessions
        - revisions
        - roles
        - shopper_tags
        - shoppers
        - store_product_inventory_counts
        - store_product_lots
        - store_product_rules
        - store_product_tag_templates
        - store_snap_incentive_program_coupons
        - store_vendor_merge_requests
        - store_vendor_product_merge_requests
        - store_vendor_products
        - store_vendors
        - stores
        - tag_printings
        - tag_template_presets
        - tag_templates
        - tax_rates
        - users
        - variable_weights
        - vendor_merge_requests
        - vendor_product_merge_requests
        - vendors
        - wallet_payments
        - wic_products
    PrimaryVendorConfiguration:
      type: string
      enum:
        - LATEST_COST
        - SELECTED_BY_USER
    FoodModifierItemModifier:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
          description: Display name for the modifier option
        value:
          type: string
          description: Price adjustment for this modifier
          pattern: ^[0-9]+(\.[0-9]+)?$
          example: '199.99'
      required:
        - id
        - name
        - value
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````

## Related topics

- [Retrieve a store product](/api-reference/store-products/retrieve-a-store-product.md)
- [List store products](/api-reference/store-products/list-store-products.md)
- [Create a store product](/api-reference/store-products/create-a-store-product.md)
