commerce_api-8.x-1.x-dev/src/Plugin/Field/FieldType/OrderTotal.php
src/Plugin/Field/FieldType/OrderTotal.php
<?php
declare(strict_types=1);
namespace Drupal\commerce_api\Plugin\Field\FieldType;
use Drupal\commerce_api\TypedData\AdjustmentDataDefinition;
use Drupal\commerce_api\TypedData\PriceDataDefinition;
use Drupal\Core\Field\FieldItemBase;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\TypedData\ListDataDefinition;
/**
* @FieldType(
* id = "order_total",
* label = @Translation("Order total"),
* no_ui = TRUE,
* list_class = "\Drupal\commerce_api\Plugin\Field\FieldType\OrderTotalItemList",
* )
*
* @property string $value
*/
final class OrderTotal extends FieldItemBase {
/**
* {@inheritdoc}
*/
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
$properties['subtotal'] = PriceDataDefinition::create('price')
->setLabel(new TranslatableMarkup('Subtotal'))
->setRequired(TRUE);
$properties['adjustments'] = ListDataDefinition::create('list')
->setItemDefinition(AdjustmentDataDefinition::create())
->setLabel(new TranslatableMarkup('Adjustments'))
->setRequired(FALSE);
$properties['total'] = PriceDataDefinition::create('price')
->setLabel(new TranslatableMarkup('Subtotal'))
->setRequired(TRUE);
return $properties;
}
/**
* {@inheritdoc}
*/
public static function schema(FieldStorageDefinitionInterface $field_definition) {
return [];
}
/**
* {@inheritdoc}
*/
public static function mainPropertyName() {
return NULL;
}
}
