title: Product Variant description: >- Product Variants represent a Product with a specific set of Product Option configurations. The maximum number of Product Variants that a Product can have is given by the number of available Product Option combinations. type: object required: - allow_backorder - barcode - created_at - deleted_at - ean - height - hs_code - id - inventory_quantity - length - manage_inventory - material - metadata - mid_code - origin_country - product_id - sku - title - upc - updated_at - weight - width properties: id: description: The product variant's ID type: string example: variant_01G1G5V2MRX2V3PVSR2WXYPFB6 title: description: >- A title that can be displayed for easy identification of the Product Variant. type: string example: Small product_id: description: The ID of the Product that the Product Variant belongs to. type: string example: prod_01G1G5V2MBA328390B5AXJ610F product: description: A product object. Available if the relation `product` is expanded. nullable: true type: object prices: description: >- The Money Amounts defined for the Product Variant. Each Money Amount represents a price in a given currency or a price in a specific Region. Available if the relation `prices` is expanded. type: array items: $ref: ./MoneyAmount.yaml sku: description: >- The unique stock keeping unit used to identify the Product Variant. This will usually be a unqiue identifer for the item that is to be shipped, and can be referenced across multiple systems. nullable: true type: string example: shirt-123 barcode: description: >- A generic field for a GTIN number that can be used to identify the Product Variant. nullable: true type: string example: null ean: description: An EAN barcode number that can be used to identify the Product Variant. nullable: true type: string example: null upc: description: A UPC barcode number that can be used to identify the Product Variant. nullable: true type: string example: null variant_rank: description: The ranking of this variant nullable: true type: number default: 0 inventory_quantity: description: The current quantity of the item that is stocked. type: integer example: 100 allow_backorder: description: >- Whether the Product Variant should be purchasable when `inventory_quantity` is 0. type: boolean default: false manage_inventory: description: Whether Medusa should manage inventory for the Product Variant. type: boolean default: true hs_code: description: >- The Harmonized System code of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers. nullable: true type: string example: null origin_country: description: >- The country in which the Product Variant was produced. May be used by Fulfillment Providers to pass customs information to shipping carriers. nullable: true type: string example: null mid_code: description: >- The Manufacturers Identification code that identifies the manufacturer of the Product Variant. May be used by Fulfillment Providers to pass customs information to shipping carriers. nullable: true type: string example: null material: description: >- The material and composition that the Product Variant is made of, May be used by Fulfillment Providers to pass customs information to shipping carriers. nullable: true type: string example: null weight: description: >- The weight of the Product Variant. May be used in shipping rate calculations. nullable: true type: number example: null length: description: >- The length of the Product Variant. May be used in shipping rate calculations. nullable: true type: number example: null height: description: >- The height of the Product Variant. May be used in shipping rate calculations. nullable: true type: number example: null width: description: >- The width of the Product Variant. May be used in shipping rate calculations. nullable: true type: number example: null options: description: >- The Product Option Values specified for the Product Variant. Available if the relation `options` is expanded. type: array items: $ref: ./ProductOptionValue.yaml inventory_items: description: >- The Inventory Items related to the product variant. Available if the relation `inventory_items` is expanded. type: array items: $ref: ./ProductVariantInventoryItem.yaml created_at: description: The date with timezone at which the resource was created. type: string format: date-time updated_at: description: The date with timezone at which the resource was updated. type: string format: date-time deleted_at: description: The date with timezone at which the resource was deleted. nullable: true type: string format: date-time metadata: description: An optional key-value map with additional details nullable: true type: object example: car: white purchasable: description: | Only used with the inventory modules. A boolean value indicating whether the Product Variant is purchasable. A variant is purchasable if: - inventory is not managed - it has no inventory items - it is in stock - it is backorderable. type: boolean