require "enumerize" module Falsify # The Product resource lets you update and create products in a merchant's store. # See the [API documentation](https://help.shopify.com/en/api/reference/products/product). # # Required Fields: # - title class Product extend Enumerize # A description of the product. Supports HTML formatting. # @return [String] attr_accessor :body_html # The date and time ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601)) when the product was created. # @return [String] attr_reader :created_at # A unique human-friendly string for the product. # Automatically generated from the product's `title`. # Used by the Liquid templating language to refer to objects. # @return [String] attr_accessor :handle # An unsigned 64-bit integer that's used as a unique identifier for the product. # Each `id` is unique across the Shopify system. # No two products will have the same `id`, even if they're from different shops. # @return [String] attr_reader :id # A list of [product image](https://help.shopify.com/en/api/reference/products/product-image) objects, each one representing an image associated with the product. # @return [String] attr_accessor :images # The custom product property names like `Size`, `Color`, and `Material`. # You can add up to 3 options of up to 255 characters each. # @return [String] attr_accessor :options # A categorization for the product used for filtering and searching products. # @return [String] attr_accessor :product_type # The date and time ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601)) when the product was published. # Can be set to `null` to unpublish the product from the Online Store channel. # @return [String] attr_accessor :published_at # @!attribute published_scope [rw] # Whether the product is published to the Point of Sale channel. # Valid values: # - `web`: The product is published to the Online Store channel but not published to the Point of Sale channel. # - `global`: The product is published to both the Online Store channel and the Point of Sale channel. # @return [:web, :global] enumerize :published_scope, in: [:web, :global] # A string of comma-separated tags that are used for filtering and search. # A product can have up to 250 tags. # Each tag can have up to 255 characters. # @return [String] attr_accessor :tags # The suffix of the Liquid template used for the product page. # If this property is specified, then the product page uses a template called "product.suffix.liquid", where "suffix" is the value of this property. # If this property is `""` or `null`, then the product page uses the default template "product.liquid". # (default: `null`) # @return [String,nil] attr_accessor :template_suffix # The name of the product. # @return [String] attr_accessor :title # The name of the product used for [SEO purposes](https://help.shopify.com/en/manual/promoting-marketing/seo#page-title). # Generally added to the `` tag. # @return [String] attr_accessor :metafields_global_title_tag # A description of the product used for [SEO purposes](https://help.shopify.com/en/manual/promoting-marketing/seo#meta-description). # Generally added to the `` tag. # @return [String] attr_accessor :metafields_global_description_tag # The date and time ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601)) when the product was last modified. # @return [String] attr_reader :updated_at # A list of [product variants](/en/api/reference/products/product-variant), each representing a different version of the product. # The `position` property is read-only. # The position of variants is indicated by the order in which they are listed. # To retrieve the `presentment_prices` property on a variant, include the request header `'X-Shopify-Api-Features': 'include-presentment-prices'`. # @return [Array] attr_accessor :variants # The name of the product's vendor. # @return [String] attr_accessor :vendor end end