# Types (/themes/sdk/reference/store/types)

```ts
import { … } from '@poltura/theme-sdk/store';
```

## `BankAccount` [#bankaccount]

The bank account shoppers pay a bank transfer into.

<TypeTable type={{"bankName":{"description":"The bank's name.","type":"string","required":true},"holder":{"description":"The account holder's name.","type":"string","required":true},"number":{"description":"The domestic account number, or null when only the IBAN is used.","type":"string | null","required":true},"iban":{"description":"The IBAN, or null outside IBAN countries.","type":"string | null","required":true},"bic":{"description":"The BIC (SWIFT) code, or null.","type":"string | null","required":true}}} />

## `CompanyRegistration` [#companyregistration]

One labelled registration of the company behind the store, in the wording of its country.

<TypeTable type={{"kind":{"description":"What the entry identifies, for icons or ordering.","type":"CompanyRegistrationKind","required":true},"label":{"description":"The label in the page language, as that country names the register.","type":"string","required":true},"value":{"description":"The registered value exactly as the merchant entered it.","type":"string","required":true}}} />

## `CompanyRegistrationKind` [#companyregistrationkind]

What a company registration entry identifies.

```ts
type CompanyRegistrationKind = 'taxId' | 'vatId' | 'registrationNumber' | 'registryCourt' | 'other'
```

## `CountryCode` [#countrycode]

An ISO 3166-1 alpha-2 country code in upper case, such as `HU` or `DE`.

```ts
type CountryCode = string
```

## `CurrencyCode` [#currencycode]

An ISO 4217 currency code in upper case, such as `HUF` or `EUR`.

```ts
type CurrencyCode = string
```

## `LegalLink` [#legallink]

A link to one of the store's legal pages.

<TypeTable type={{"kind":{"description":"Which legal page this is.","type":"LegalLinkKind","required":true},"label":{"description":"The link text in the page language.","type":"string","required":true},"href":{"description":"Where the link goes.","type":"string","required":true}}} />

## `LegalLinkKind` [#legallinkkind]

Which legal page a footer or checkout link points at.

```ts
type LegalLinkKind = 'terms' | 'termsOfUse' | 'privacy' | 'imprint' | 'returns' | 'shipping' | 'cookies'
```

## `Market` [#market]

Where the visitor buys: their country, the countries the store sells to, the currency and tax display.

<TypeTable type={{"country":{"description":"The country checkout pre-selects: the chosen market's first.","type":"CountryCode","required":true},"countries":{"description":"Every country the store sells to, in any market.","type":"readonly CountryCode[]","required":true},"deliveryCountries":{"description":"Where checkout ships from this page: the chosen market's countries, `country` first.","type":"readonly CountryCode[]","required":true},"currencyCode":{"description":"The currency prices and carts are in: the shopper's pick among `currencies`.","type":"CurrencyCode","required":true},"currencies":{"description":"Every currency this storefront offers, its default first; fewer than two means no choice.","type":"readonly CurrencyCode[]","required":true},"taxIncluded":{"description":"Whether the market's prices include tax.","type":"boolean","required":true}}} />

## `SocialLink` [#sociallink]

A link to one of the store's social profiles.

<TypeTable type={{"network":{"description":"Which network the profile is on, for picking its icon.","type":"SocialNetwork","required":true},"url":{"description":"The profile URL.","type":"string","required":true},"label":{"description":"The network's brand name, for accessible link text.","type":"string","required":true}}} />

## `SocialNetwork` [#socialnetwork]

A social network the store can link to.

```ts
type SocialNetwork = 'instagram' | 'facebook' | 'tiktok' | 'youtube' | 'pinterest' | 'linkedin' | 'x' | 'threads' | 'discord'
```

## `Store` [#store]

The store's identity: name, address on the web, contact and the company behind it.

<TypeTable type={{"id":{"description":"The Poltura store id.","type":"StoreId","required":true},"name":{"description":"The store's name as shoppers see it.","type":"string","required":true},"url":{"description":"The storefront's absolute URL, without a trailing slash.","type":"string","required":true},"timeZone":{"description":"The store's IANA time zone; every store date renders in it.","type":"string","required":true},"contact":{"description":"How shoppers reach the store.","type":"StoreContact","required":true},"company":{"description":"The company behind the store, or null when the merchant has not given it.","type":"StoreCompany | null","required":true},"bankAccount":{"description":"The account bank transfers go to, or null when the store takes none.","type":"BankAccount | null","required":true},"legalLinks":{"description":"Links to the store's legal pages, in footer order.","type":"readonly LegalLink[]","required":true}}} />

## `StoreBrand` [#storebrand]

The store's logos, colours and slogan.

<TypeTable type={{"logo":{"description":"The logo for light backgrounds, or null to show the store name instead.","type":"MediaImageRef | null","required":true},"logoDark":{"description":"The logo for dark backgrounds, or null to reuse `logo`.","type":"MediaImageRef | null","required":true},"mark":{"description":"The square brand mark, used where a full logo does not fit.","type":"MediaImageRef | null","required":true},"colors":{"description":"The brand colours as CSS colour strings, null where the merchant set none.","type":"{ readonly primary: string | null; readonly accent: string | null; }","required":true},"slogan":{"description":"A short slogan, or null.","type":"string | null","required":true},"description":{"description":"A sentence or two about the store, or null.","type":"string | null","required":true}}} />

## `StoreCompany` [#storecompany]

The legal entity that runs the store.

<TypeTable type={{"name":{"description":"The registered company name.","type":"string","required":true},"address":{"description":"The registered address on one line.","type":"string","required":true},"registrations":{"description":"The company's registrations, in the order its country lists them.","type":"readonly CompanyRegistration[]","required":true}}} />

## `StoreContact` [#storecontact]

How shoppers reach the store's people.

<TypeTable type={{"email":{"description":"The general contact address, or null when the store shows none.","type":"string | null","required":true},"phone":{"description":"The contact phone number as the merchant wrote it, or null.","type":"string | null","required":true},"supportEmail":{"description":"The address for order and support questions, or null to fall back to `email`.","type":"string | null","required":true}}} />

## `StoreFeatures` [#storefeatures]

Which optional storefront features the store has switched on.

<TypeTable type={{"customerAccounts":{"description":"Shoppers can sign in and keep an account.","type":"boolean","required":true},"registration":{"description":"Shoppers can open an account themselves; otherwise only the shop opens or invites them.","type":"boolean","required":true},"stockNotices":{"description":"Shoppers can ask to be told when a sold-out variant is back.","type":"boolean","required":true},"chat":{"description":"The store answers live chat.","type":"boolean","required":true},"reviews":{"description":"Product reviews are shown and collected.","type":"boolean","required":true},"preorders":{"description":"Products can be pre-ordered.","type":"boolean","required":true},"digitalDelivery":{"description":"The store sells digital products delivered by email.","type":"boolean","required":true}}} />

## `StoreId` [#storeid]

The store's Poltura id, an opaque string that themes never parse.

```ts
type StoreId = string
```
