Class: Inttegro::Product

Inherits:
T::Struct
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/inttegro/product/product.rb,
lib/inttegro/product/base.rb,
lib/inttegro/product/page.rb,
lib/inttegro/product/type.rb,
lib/inttegro/product/media.rb,
lib/inttegro/product/render.rb,
lib/inttegro/product/stream.rb,
lib/inttegro/product/details.rb,
lib/inttegro/product/service.rb,
lib/inttegro/product/updated.rb,
lib/inttegro/product/delivery.rb,
lib/inttegro/product/download.rb,
lib/inttegro/product/response.rb,
lib/inttegro/product/shipment.rb,
lib/inttegro/product/attribute.rb,
lib/inttegro/product/line_item.rb,
lib/inttegro/product/questions.rb,
lib/inttegro/product/dimensions.rb,
lib/inttegro/product/page_request.rb,
lib/inttegro/product/page_response.rb,
lib/inttegro/product/price_summary.rb,
lib/inttegro/product/shipment_type.rb,
lib/inttegro/product/action_request.rb,
lib/inttegro/product/create_request.rb,
lib/inttegro/product/inline_details.rb,
lib/inttegro/product/line_item_type.rb,
lib/inttegro/product/lookup_request.rb,
lib/inttegro/product/shipment_input.rb,
lib/inttegro/product/update_request.rb,
lib/inttegro/product/update_response.rb,
lib/inttegro/product/add_price_request.rb,
lib/inttegro/product/dimensions_custom.rb,
lib/inttegro/product/add_price_response.rb,
lib/inttegro/product/dimensions_digital.rb,
lib/inttegro/product/dimensions_physical.rb,
lib/inttegro/product/shipment_input_type.rb,
lib/inttegro/product/catalog_with_price_data.rb,
lib/inttegro/product/catalog_with_price_reference.rb,
lib/inttegro/product/customer_selected_price_input.rb,
lib/inttegro/product/set_default_unit_price_request.rb,
lib/inttegro/product/catalog_with_customer_selected_price.rb

Overview

Typed representation of the product object in the Inttegro API.

This generated model is immutable. Construct it with .new, or decode a string-keyed API payload with .from_hash. #serialize produces a string-keyed hash using the original wire field names and serialized enum values.

Defined Under Namespace

Classes: ActionRequest, AddPriceRequest, AddPriceResponse, Attribute, CatalogWithCustomerSelectedPrice, CatalogWithPriceData, CatalogWithPriceReference, CreateRequest, CustomerSelectedPriceInput, Delivery, Dimensions, DimensionsCustom, DimensionsDigital, DimensionsPhysical, Download, InlineDetails, LineItem, LineItemType, LookupRequest, Media, Page, PageRequest, PageResponse, PriceSummary, Render, Response, Service, SetDefaultUnitPriceRequest, Shipment, ShipmentInput, ShipmentInputType, ShipmentType, Stream, Type, UpdateRequest, UpdateResponse, Updated

Constant Summary collapse

Details =

Provide either inline product data or a product_id reference to an existing catalog product. Catalog-backed product line items can use an explicit price or an existing price_id, or a validated customer_selected_price. Inttegro never falls back to a product's default unit price during order creation.

T.type_alias { T.any(Inttegro::Product::InlineDetails, Inttegro::Product::CatalogWithPriceData, Inttegro::Product::CatalogWithPriceReference, Inttegro::Product::CatalogWithCustomerSelectedPrice) }

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#about ⇒ String? (readonly)

Full product description

Optional in the API payload; omitted values default to nil. Wire name: about.

Returns:

  • (String, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#active ⇒ Boolean (readonly)

Whether product is published and available

Required in the API payload. Wire name: active.

Returns:

  • (Boolean)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#archived_at ⇒ Time? (readonly)

Archive timestamp (if archived)

Optional in the API payload; omitted values default to nil. Wire name: archived_at.

Returns:

  • (Time, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#attributes ⇒ Array<Inttegro::Product::Attribute>? (readonly)

Product attributes

Optional in the API payload; omitted values default to nil. Wire name: attributes.

Returns:



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#category ⇒ String? (readonly)

Product category

Optional in the API payload; omitted values default to nil. Wire name: category.

Returns:

  • (String, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#created_at ⇒ Time (readonly)

Product creation timestamp

Required in the API payload. Wire name: created_at.

Returns:

  • (Time)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#custom_data ⇒ Inttegro::CustomData? (readonly)

Merchant-defined string values attached to a resource. SDKs expose this as a semantic collection rather than a raw map.

Optional in the API payload; omitted values default to nil. Wire name: custom_data.

Returns:



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#description ⇒ String? (readonly)

Short description

Optional in the API payload; omitted values default to nil. Wire name: description.

Returns:

  • (String, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#dimensions ⇒ Inttegro::Product::Dimensions? (readonly)

At most one of physical, digital, or custom.

Optional in the API payload; omitted values default to nil. Wire name: dimensions.



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#id ⇒ String (readonly)

Unique product identifier with prod_ prefix

Required in the API payload. Wire name: id.

Returns:

  • (String)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#media ⇒ Inttegro::Product::Media? (readonly)

Value of the media field in the Inttegro API payload.

Optional in the API payload; omitted values default to nil. Wire name: media.

Returns:



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#name ⇒ String (readonly)

Product name

Required in the API payload. Wire name: name.

Returns:

  • (String)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#prices ⇒ Array<Inttegro::Product::PriceSummary>? (readonly)

Non-archived prices that belong to this product

Optional in the API payload; omitted values default to nil. Wire name: prices.

Returns:



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#published_at ⇒ Time? (readonly)

When the product was published

Optional in the API payload; omitted values default to nil. Wire name: published_at.

Returns:

  • (Time, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#reference ⇒ String? (readonly)

External reference or SKU

Optional in the API payload; omitted values default to nil. Wire name: reference.

Returns:

  • (String, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#shipment ⇒ Inttegro::Product::Shipment? (readonly)

Value of the shipment field in the Inttegro API payload.

Optional in the API payload; omitted values default to nil. Wire name: shipment.

Returns:



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#tax_code ⇒ String? (readonly)

Tax classification code

Optional in the API payload; omitted values default to nil. Wire name: tax_code.

Returns:

  • (String, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#type ⇒ Inttegro::Product::Type (readonly)

Product type

Required in the API payload. Wire name: type.



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#unit_dim ⇒ String? (readonly)

Unit dimension label

Optional in the API payload; omitted values default to nil. Wire name: unit_dim.

Returns:

  • (String, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

#updated_at ⇒ Time? (readonly)

Last update timestamp

Optional in the API payload; omitted values default to nil. Wire name: updated_at.

Returns:

  • (Time, nil)


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/inttegro/product/product.rb', line 144

class Product
  const :id, String
  const :type, Inttegro::Product::Type
  const :reference, T.nilable(String), default: nil
  const :name, String
  const :description, T.nilable(String), default: nil
  const :about, T.nilable(String), default: nil
  const :tax_code, T.nilable(String), default: nil
  const :category, T.nilable(String), default: nil
  const :prices, T.nilable(T::Array[Inttegro::Product::PriceSummary]), default: nil
  const :shipment, T.nilable(Inttegro::Product::Shipment), default: nil
  const :media, T.nilable(Inttegro::Product::Media), default: nil
  const :attributes, T.nilable(T::Array[Inttegro::Product::Attribute]), default: nil
  const :dimensions, T.nilable(Inttegro::Product::Dimensions), default: nil
  const :custom_data, T.nilable(Inttegro::CustomData), default: nil
  const :active, T::Boolean
  const :created_at, Time
  const :updated_at, T.nilable(Time), default: nil
  const :archived_at, T.nilable(Time), default: nil
  const :published_at, T.nilable(Time), default: nil
  const :unit_dim, T.nilable(String), default: nil
end

Instance Method Details

#archived? ⇒ Boolean

Determine whether the API supplied an archive timestamp.

Returns:

  • (Boolean) —

    whether this product is archived



12
13
14
# File 'lib/inttegro/product/questions.rb', line 12

def archived?
  !archived_at.nil?
end

#ever_published? ⇒ Boolean

Determine whether the product has ever received a publication timestamp.

Returns:



31
32
33
# File 'lib/inttegro/product/questions.rb', line 31

def ever_published?
  !published_at.nil?
end

#published? ⇒ Boolean

Determine whether the product is currently active and not archived.

This local predicate does not infer publication from #published_at; it reflects the active and archived_at fields on the current model.

Returns:

  • (Boolean) —

    whether the product is currently published by this definition



23
24
25
# File 'lib/inttegro/product/questions.rb', line 23

def published?
  active && !archived?
end