commerce_api-8.x-1.x-dev/src/Plugin/Field/FieldType/ShippingMethod.php
src/Plugin/Field/FieldType/ShippingMethod.php
<?php
declare(strict_types=1);
namespace Drupal\commerce_api\Plugin\Field\FieldType;
use Drupal\Core\Field\FieldItemBase;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\TypedData\DataDefinition;
/**
* @FieldType(
* id = "shipping_method",
* label = @Translation("Shipping method"),
* no_ui = TRUE,
* list_class = "\Drupal\commerce_api\Plugin\Field\FieldType\ShippingMethodItemList",
* )
*
* @property string $value
*/
final class ShippingMethod extends FieldItemBase {
/**
* {@inheritdoc}
*/
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
// @todo should this be a two property field: method ID + service ID?
$properties['value'] = DataDefinition::create('string')
->setLabel(new TranslatableMarkup('Shipping rate option'))
->setRequired(TRUE);
return $properties;
}
/**
* {@inheritdoc}
*/
public static function schema(FieldStorageDefinitionInterface $field_definition) {
return [];
}
}
