Version: current

# Class OrderItem

Элемент заказа

  Object
  ViewableData implements IteratorAggregate
  DataObject implements DataObjectInterface, i18nEntityProvider
  OrderItem

Package: cart
Author: inxo, menedem, dvp
Located at cart/code/OrderItem.php

## Methods summary

`public `FieldSet`` | # `getCMSFields( )` Centerpiece of every data administration interface in Silverstripe, which returns a `FieldSet` suitable for a `Form` object. If not overloaded, we're using `DataObject::scaffoldFormFields()` to automatically generate this set. To customize, overload this method in a subclass or decorate onto it by using DataObjectDecorator->updateCMSFields(). Centerpiece of every data administration interface in Silverstripe, which returns a `FieldSet` suitable for a `Form` object. If not overloaded, we're using `DataObject::scaffoldFormFields()` to automatically generate this set. To customize, overload this method in a subclass or decorate onto it by using DataObjectDecorator->updateCMSFields().
    klass MyCustomClass extends DataObject {
            static $db = array('CustomProperty'=>'Boolean');

            public function getCMSFields() {
                    $fields = parent::getCMSFields();
                    $fields->addFieldToTab('Root.Content',new CheckboxField('CustomProperty'));
            return $fields;
    }
    }
#### Returns ``FieldSet`` Returns a TabSet for usage within the CMS - don't use for frontend forms. #### See Good example of complex FormField building: SiteTree::getCMSFields() #### Overrides `DataObject::getCMSFields`
`public array|string` | # `fieldLabels( boolean $includerelations = true )` Get any user defined searchable fields labels that exist. Allows overriding of default field names in the form interface actually presented to the user. Get any user defined searchable fields labels that exist. Allows overriding of default field names in the form interface actually presented to the user. The reason for keeping this separate from searchable_fields, which would be a logical place for this functionality, is to avoid bloating and complicating the configuration array. Currently much of this system is based on sensible defaults, and this property would generally only be set in the case of more complex relationships between data object being required in the search interface. Generates labels based on name of the field itself, if no static property `DataObject::$field_labels` exists. #### Parameters $includerelations boolean $includerelations a boolean value to indicate if the labels returned include relation fields #### Returns `array|string` Array of all element labels if no argument given, otherwise the label of the field #### Uses `mixed` ``FormField::name_to_label()`` #### Overrides `DataObject::fieldLabels`
`public` | # `__construct( array|null $product = null, boolean $quantity = 1 )` Construct a new DataObject. Construct a new DataObject. #### Parameters $product array|null $record This will be null for a new database record. Alternatively, you can pass an array of field values. Normally this contructor is only used by the internal systems that get objects from the database. $quantity boolean $isSingleton This this to true if this is a singleton() object, a stub for calling methods. Singletons don't have their defaults set. #### Overrides `DataObject::__construct`
`public` | # `Order( )`
`public `Boolean`` | # `hasSameContent( `OrderItem` $orderItem )` Сравнение элементов заказа Сравнение элементов заказа #### Parameters $orderItem OrderItem элемент заказа #### Returns ``Boolean`` Boolean
`public` | # `getProduct( )`
`public` | # `getProductID( )`
`public` | # `getImportID( )`
`public` | # `getItemsPrice( )`
`public` | # `onBeforeWrite( )` Event handler called before writing to the database. You can overload this to clean up or otherwise process data before writing it to the database. Don't forget to call parent::onBeforeWrite(), though! Event handler called before writing to the database. You can overload this to clean up or otherwise process data before writing it to the database. Don't forget to call parent::onBeforeWrite(), though! This called after $this->validate(), so you can be sure that your data is valid. #### Uses ``DataObjectDecorator::onBeforeWrite()`` #### Overrides `DataObject::onBeforeWrite`
`public `Int`` | # `getQuantity( )` Текущее кол-во Текущее кол-во #### Returns ``Int`` Int
`public` | # `getPrice( )`
`public` | # `Avaliable( )`
`public` | # `getItemPrice( )`
`public` | # `getLink( )`
`public string` | # `getTitle( )` Standard implementation of a title/label for a specific record. Tries to find properties 'Title' or 'Name', and falls back to the 'ID'. Useful to provide user-friendly identification of a record, e.g. in errormessages or UI-selections. Standard implementation of a title/label for a specific record. Tries to find properties 'Title' or 'Name', and falls back to the 'ID'. Useful to provide user-friendly identification of a record, e.g. in errormessages or UI-selections. Overload this method to have a more specialized implementation, e.g. for an Address record this could be:
    public function getTitle() {
      return "{$this->StreetNumber} {$this->StreetName} {$this->City}";
    }
#### Returns `string` string #### Overrides `DataObject::getTitle`
`public` | # `addQuantityValue( `Int` $quantity )` Добавление кол-ва Добавление кол-ва #### Parameters $quantity Int количество
`public` | # `setQuantityValue( `Int` $quantity = null )` Установка кол-ва Установка кол-ва #### Parameters $quantity Int количество
`public` | # `canAddQuantityValue( mixed $quantity )`
`public` | # `getTotalPrice( )`
`public` | # `Currency( )`
`public` | # `updateForAjax( array & $js )`
`public` | # `TableTitle( )`
`public` | # `UnitPrice( )`
`public` | # `PlusLink( )`
`public` | # `MinusLink( )`
`public` | # `DeleteLink( )`
`public` | # `SetQuantityLink( )`

### Methods inherited from DataObject

`Aggregate()`, `RelationshipAggregate()`, `baseTable()`, `belongs_to()`, `buildDataObjectSet()`, `buildSQL()`, `can()`, `canCreate()`, `canDelete()`, `canEdit()`, `canView()`, `castedUpdate()`, `composite_fields()`, `context_obj()`, `customDatabaseFields()`, `custom_database_fields()`, `data()`, `databaseFields()`, `databaseIndexes()`, `database_extensions()`, `database_fields()`, `db()`, `dbObject()`, `debug()`, `defaultSearchFilters()`, `defineMethods()`, `delete()`, `delete_by_id()`, `destroy()`, `disableCMSFieldsExtensions()`, `disable_subclass_access()`, `duplicate()`, `enableCMSFieldsExtensions()`, `enable_subclass_access()`, `exists()`, `extendedSQL()`, `fieldLabel()`, `flushCache()`, `flush_and_destroy_cache()`, `forceChange()`, `get()`, `getAllFields()`, `getCMSActions()`, `getChangedFields()`, `getClassAncestry()`, `getComponent()`, `getComponents()`, `getComponentsQuery()`, `getDefaultSearchContext()`, `getField()`, `getFrontEndFields()`, `getManyManyComponents()`, `getManyManyComponentsQuery()`, `getManyManyFilter()`, `getManyManyJoin()`, `getRemoteJoinField()`, `getReverseAssociation()`, `get_by_id()`, `get_one()`, `get_validation_enabled()`, `hasDatabaseField()`, `hasField()`, `hasOwnTableDatabaseField()`, `hasValue()`, `has_many()`, `has_one()`, `has_own_table()`, `i18n_plural_name()`, `i18n_singular_name()`, `inheritedDatabaseFields()`, `instance_get()`, `instance_get_one()`, `isChanged()`, `isEmpty()`, `isInDB()`, `is_composite_field()`, `many_many()`, `many_many_extraFields()`, `merge()`, `newClassInstance()`, `onAfterDelete()`, `onAfterWrite()`, `onBeforeDelete()`, `plural_name()`, `populateDefaults()`, `provideI18nEntities()`, `relObject()`, `requireDefaultRecords()`, `requireTable()`, `reset()`, `scaffoldFormFields()`, `scaffoldSearchFields()`, `searchableFields()`, `setCastedField()`, `setClassName()`, `setComponent()`, `setField()`, `set_context_obj()`, `set_validation_enabled()`, `singular_name()`, `summaryFields()`, `toMap()`, `update()`, `validate()`, `write()`, `writeComponents()`, `writeWithoutVersion()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `escapeTypeForField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`protected mixed` | $_quantity | #
`protected mixed` | $_title | #
`protected mixed` | $_price | #
`protected mixed` | $_id | #
`protected mixed` | $_productId | #
`protected integer` | $_variationId | #
`public static array` | $db | # Database field definitions. This is a map from field names to field type. The field type should be a class that extends . Database field definitions. This is a map from field names to field type. The field type should be a class that extends .
`public static array` | $has_one | # One-to-zero relationship defintion. This is a map of component name to data type. In order to turn this into a true one-to-one relationship you can add a `DataObject::$belongs_to` relationship on the child class. One-to-zero relationship defintion. This is a map of component name to data type. In order to turn this into a true one-to-one relationship you can add a `DataObject::$belongs_to` relationship on the child class. Note that you cannot have a has_one and belongs_to relationship with the same name.
`public static array` | $summary_fields | # Provides a default list of fields to be used by a 'summary' view of this object. Provides a default list of fields to be used by a 'summary' view of this object.
`public static array` | $casting | # Use a casting object for a field. This is a map from field name to class name of the casting object. Use a casting object for a field. This is a map from field name to class name of the casting object.

### Properties inherited from DataObject

`$allowed_actions`, `$ancestry`, `$api_access`, `$belongs_many_many`, `$belongs_to`, `$brokenOnDelete`, `$brokenOnWrite`, `$cache_get_one`, `$cache_has_own_table`, `$cache_has_own_table_field`, `$componentCache`, `$components`, `$create_table_options`, `$default_records`, `$default_sort`, `$defaults`, `$destroyed`, `$field_labels`, `$has_many`, `$indexes`, `$many_many`, `$many_many_extraFields`, `$original`, `$plural_name`, `$record`, `$searchable_fields`, `$singular_name`

### Properties inherited from ViewableData

`$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -