Symbol attribute type¶
The Symbol attribute type LTS update enables the efficient representation of string-based data and enforces their format in product specifications.
This feature allows you to store standard product identifiers (such as EAN or ISBN) in the Product Information Management system.
Installation¶
Download the bundle¶
To get the most recent stable version of this bundle, open a command terminal, navigate to your project directory, and run the following command:
1 |
|
Enable the bundle¶
Symfony Flex enables and configures the IbexaProductCatalogSymbolAttributeBundle
automatically.
If you don't use it, you can manually enable this bundle by adding the line below to the Kernel of your project:
1 2 3 4 5 6 7 |
|
Update database schema¶
To store symbol attribute values, the IbexaProductCatalogSymbolAttributeBundle
needs an extra table.
The following SQL query can be used to build the required database structure:
1 2 |
|
1 2 3 |
|
Create symbol attribute definition (optional)¶
Now, you're able to define symbol attributes at this point.
To create symbol attribute definition, in the back office, go to Product catalog -> Attributes, and click Create. Then, choose Symbol attribute type.
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 |
|
This following example specifies the format for a "Manufacturer Part Number", defined with the 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.