Symbol attribute type¶
In product specifications, the symbol attribute type enables the efficient representation of string-based data and enforces their format.
This feature allows you to store standard product identifiers (such as EAN or ISBN) in the Product Information Management system.
Build-in symbol attribute formats¶
The built-in symbol attribute formats in ibexa/product-catalog-symbol-attribute are listed below:
| Name | Description | Example | 
|---|---|---|
| Generic | Accepts any string value | #FR1.2 | 
| Generic (alphabetic characters only) | Accepts any string value that contais only letters | ABCD | 
| Generic (digits only) | Accepts any string value that contais only digits | 123456 | 
| Generic (alphanumeric characters only) | Accepts any string value that contains only letters or digits | 2N6405G | 
| Generic (hexadecimal digits only) | Accepts any string value that contains only hexadecimal digits (digits or A-F characters) | DEADBEEF | 
| EAN-8 | European Article Number (8 characters) | 96385074 | 
| EAN-13 | European Article Number (13 characters) | 5023920187205 | 
| EAN-14 | European Article Number (14 characters) | 12345678901231 | 
| ISBN-10 | International Standard Book Number (10 characters) | 0-19-852663-6 | 
| ISBN-13 | International Standard Book Number (13 characters) | 978-1-86197-876-9 | 
Caution
Maximum length of the symbol value is 160 characters.
Create custom symbol attribute format¶
Under the ibexa_product_catalog_symbol_attribute.formats key, you can use configuration to create your own symbol format.
See the example below:
1 2 3 4 5 6 7 8 9  |  | 
manufacturer_part_number identifier.
The pattern is specified using a regular expression. According to the pattern option, the attribute value:
- must be a string
 - begins with three capital letters (A-Z), followed by a hyphen ("-")
 - ends with five digits (0-9), with no other characters before or after
 
Certain formats, such as the International Standard Book Number (ISBN-10) and the European Article Number (EAN-13), contain checksum digits and are self-validating.
To validate checksum of symbol:
1. Create a class implementing the \Ibexa\Contracts\ProductCatalogSymbolAttribute\Value\ChecksumInterface interface.
2. Register the class as a service using the ibexa.product_catalog.attribute.symbol.checksum tag and specify the format identifier using the format attribute.
See below the example implementation of checksum validation using Luhn formula:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46  |  | 
Example service definition:
1 2 3 4 5  |  | 
my_format) is the identifier used under the ibexa_product_catalog_symbol_attribute.formats key.
Search for products with given symbol attribute¶
You can use SymbolAttribute Search Criterion to find products by symbol attribute:
For more information, see SymbolAttribute Criterion.