> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# MSG- (Messages)

> Output notice, error and success messages of the shop system in the template, distinguish them by error code and maintain the texts in the shop configuration.

The shop system constantly generates messages: a minimum order value has not been reached, an address was incomplete, a voucher has expired, a customer account was activated. The `MSG-` tags bring these messages into the template.

All tags in this group work the same way. They output a text stored in the shop configuration, and they take effect as an area tag exactly when the message applies in the current state. Only the occasion differs. This page therefore explains the pattern once and then lists the messages by area.

One subgroup goes further: for vouchers, subscriptions, Prime packages and updated online prices, the tag returns an error or success code with which you formulate a separate text for each case.

Guide: Standard texts · Reference: NotifyMessages-Txt section

## The basic pattern

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{MSG-Basket_Notify}
   <p class="hinweis">~MSG-Basket_Notify~</p>
{/MSG-Basket_Notify}
```

The area tag takes effect if a message is present. The single tag of the same name inside it outputs the text.

> [!WARNING]
>
> Never place the single tag without an area tag. If there is no message, the text remains empty, but the surrounding HTML is still on the page. The visitor then sees an empty colored box.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{!MSG-DirectOrder_Notify}
   <p>Alles in Ordnung, Sie können bestellen.</p>
{/!MSG-DirectOrder_Notify}
```

> [!NOTE]
>
> The negative area tag is the opposite case and is suitable for the normal state. Not every message needs it; for success messages, the opposite case is usually uninteresting.

## Where the texts come from

The texts are not in the template but in the shop configuration `shop.config`. Which section is responsible depends on the type of message.

| Section | Contains |
| - | - |
| `<NotifyMessages-Txt>` | the notices about functions that cannot be executed, that is, the majority |
| `<StandardMessages-Txt>` | the standard texts, for example for the empty basket |
| `<LoginError-Txt>` | the error messages related to login |
| `<LoginSuccess-Txt>` | the success messages related to login |

> [!NOTE]
>
> An `MSG-` tag only takes effect if the state applies and a text is stored. If an expected message does not appear, first check whether the corresponding parameter in the shop configuration is filled.

Reference: NotifyMessages-Txt section · StandardMessages-Txt section · LoginError-Txt section · LoginSuccess-Txt section

## Messages with an error code

Seven tags also return a code. They all follow the same pattern: the single tag outputs the code, the area tag without an argument takes effect for every code except zero, and the area tag with an argument only for exactly that code.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{MSG-Voucher_error}
   <p class="fehler">
      {MSG-Voucher_error(2)}Diese Gutscheinnummer ist ungültig.{/MSG-Voucher_error(2)}
      {MSG-Voucher_error(4)}Dieser Gutschein ist abgelaufen.{/MSG-Voucher_error(4)}
      {MSG-Voucher_error(5)}Dieser Gutschein wurde bereits eingelöst.{/MSG-Voucher_error(5)}
   </p>
{/MSG-Voucher_error}
```

> [!NOTE]
>
> Write the individual cases inside the area tag without an argument. This way, the surrounding element, that is, the colored box, is only in the template once, and it also appears if a code occurs for which you have not provided a separate text.

> [!WARNING]
>
> In this case, also output the code, for example in an HTML comment. Otherwise, the visitor is faced with an empty box, and support has nothing to go on.

### Vouchers

`MSG-Voucher_success` knows two codes.

| Code | Meaning |
| - | - |
| 1 | The voucher number was accepted |
| 2 | The voucher was removed |

`MSG-Voucher_error` knows 27 codes.

| Code | Cause |
| - | - |
| 1 | Input was blocked after too many failed attempts |
| 2 | The voucher number is invalid |
| 3 | The voucher is not yet valid |
| 4 | The voucher has expired |
| 5 | The voucher has already been used |
| 6 | Personalized voucher, the buyer is not logged in |
| 7 | The universal voucher has already been used |
| 8 | The voucher does not match the products in the basket |
| 9 | Personalized voucher, only for new customers |
| 10 | Customer-specific new customer voucher, the buyer is not logged in |
| 11 | The voucher is only valid for new customers |
| 12 | The voucher is only valid for new customers, the buyer is not logged in |
| 13 | The maximum number of redemptions has been reached |
| 14 | The voucher does not match any product in the basket, the order is blocked |
| 15 | Login is required for this voucher number |
| 16 | The voucher is not permitted for this customer account |
| 17 | Universal voucher bound to the customer account, login required |
| 18 | Universal voucher bound to the customer account, this account does not match |
| 19 | Login is required for this voucher number |
| 20 | The voucher cannot be removed |
| 21 | The voucher does not match, checked via a product data field |
| 22 | The voucher does not match, checked via the stock level |
| 23 | The buyer is excluded from voucher promotions |
| 24 | The voucher can only be redeemed in the app |
| 25 | A customer discount is already stored for the buyer |
| 26 | The voucher number was entered more than once |
| 27 | The voucher cannot be combined with other vouchers |

For code 3, `MSG-Voucher_error_validfrom` and `MSG-Voucher_error_validuntil` state the validity period.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{MSG-Voucher_error(3)}
   Dieser Gutschein ist erst ab dem ~MSG-Voucher_error_validfrom~ gültig.
{/MSG-Voucher_error(3)}
```

### Subscription module

`MSG-Subscription_success` knows seven codes.

| Code | Meaning |
| - | - |
| 1 | The product was added to the subscription list |
| 2 | The subscription was paused |
| 3 | The subscription was reactivated |
| 4 | Quantity or interval was changed |
| 5 | The subscription was deleted |
| 6 | New subscriptions were initiated |
| 7 | The bank details were applied to subscriptions |

`MSG-Subscription_error` knows eleven named codes and two ranges.

| Code | Cause |
| - | - |
| 1 | The buyer is not logged in |
| 2 | Quantity or interval is missing or invalid |
| 3 | A paused subscription cannot be changed |
| 4 | The product is not a subscription product |
| 5 | Set products are not supported |
| 6 | No product variant was selected |
| 7 | The product number was not found |
| 8 | There are no subscriptions in the "new" state |
| 9 | The selected payment method is not permitted for subscriptions |
| 10 | For direct debit, the assignment of the bank details is missing |
| 11 | The permitted number of subscriptions per customer account has been reached |
| from 900 | internal error codes for diagnosis |
| from 2000 | errors when immediately triggering a subscription order |

> [!WARNING]
>
> The codes from 900 and from 2000 are intended for diagnosis and not for the visitor. Only output them internally, for example in an HTML comment.

### Prime packages and Prime products

`MSG-PrimeProduct_error` concerns products reserved for Prime customers.

| Code | Cause |
| - | - |
| 1 | Prime products in the basket, the buyer is not logged in |
| 2 | Prime products in the basket, the buyer lacks the permission |

`MSG-PrimeShopping_error` concerns the Prime packages themselves.

| Code | Cause |
| - | - |
| 1 | Prime packages in the basket, the buyer is not logged in |
| 2 | At least one of the packages has already been purchased |
| 3 | A package is not valid for the selected billing country |

`MSG-PrimePackagesManage` concerns management in the customer account.

| Code | Meaning |
| - | - |
| 1 | The Prime package was canceled |
| 2 | The package was already canceled or has expired |
| 3 | The package was not found |

> [!NOTE]
>
> The two Prime error messages belong on the basket page, the login page and the order overview. If one of the three is missing, the buyer is stuck at that point without explanation.

### Updated online prices

| Code | Occasion |
| - | - |
| 1 | The buyer updated the prices themselves |
| 2 | The prices were updated automatically |
| 3 | The prices were updated during the order overview |

## Addresses

The messages for the billing address and the delivery address are structured symmetrically. For each `MSG-Addr_` tag, there is an `MSG-DelivAddr_` tag with the same task.

| Tag | Message |
| - | - |
| `MSG-Addr_Notify` | the summary message for the billing address |
| `MSG-Addr_saved` | the billing address was saved |
| `MSG-Addr_InputError_SalutFirstName` | salutation and first name may not match |
| `MSG-Addr_InputError_NumericZip` | the postal code contains non-numeric characters |
| `MSG-Addr_InputError_ZipCity` | postal code and city do not match |
| `MSG-Addr_InputError_DifferentDelivCountry` | a different delivery country is not possible |
| `MSG-Addr_InputError_DifferentDelivCountryVAT1` | the same, due to the VAT ID entered |
| `MSG-Addr_InputError_DifferentDelivCountryVAT2` | the same, second variant |

| Tag | Message |
| - | - |
| `MSG-DelivAddr_Notify` | the summary message for the delivery address |
| `MSG-DelivAddr_saved` | the delivery address was saved |
| `MSG-DelivAddr_deleted` | the delivery address was deleted |
| `MSG-DelivAddr_InputError_SalutFirstName` | salutation and first name may not match |
| `MSG-DelivAddr_InputError_NumericZip` | the postal code contains non-numeric characters |
| `MSG-DelivAddr_InputError_ZipCity` | postal code and city do not match |
| `MSG-DelivAddr_InputError_DifferentDelivCountry` | a different delivery country is not possible |
| `MSG-DelivAddr_InputError_DifferentDelivCountryVAT1` | the same, due to the VAT ID entered |
| `MSG-DelivAddr_InputError_DifferentDelivCountryVAT2` | the same, second variant |

> [!NOTE]
>
> The `_Notify` tags summarize, while the `_InputError_` tags name the individual reason. It is common to show both: at the top, the notice that something is unclear, and at the affected field, the individual message.

## Login and customer account

| Tag | Message |
| - | - |
| `MSG-Login_Notify` | the messages related to login |
| `MSG-UserAccount_Notify` | the messages on the customer account overview |
| `MSG-AutoLogin_success` | the automatic login worked |
| `MSG-AutoLogin_error` | the automatic login failed |
| `MSG-SubAccountCreate` | an account already exists for this email address |
| `MSG-SetPasswordEmailSent` | the email for resetting the password was sent |
| `MSG-DoubleOptInNewCustomerSent` | the activation link for a new account was sent |
| `MSG-DoubleOptInNewCustomerSuccess` | the customer account was activated |
| `MSG-DoubleOptInChangeEmailSent` | the link for changing the email address was sent |
| `MSG-DoubleOptInChangeEmailSuccess` | the email address was applied |
| `MSG-DoubleOptInVoluntaryEmailVerificationSent` | the voluntary confirmation email was sent |
| `MSG-DoubleOptInVoluntaryEmailVerificationSuccess` | the email address was voluntarily confirmed |
| `MSG-DoubleOptInDeleteAccountEmailSent` | the link for deleting the account was sent |
| `MSG-DoubleOptInDeleteAccountSuccess` | the customer account was deleted |

> [!NOTE]
>
> `MSG-UserAccount_Notify` accesses the `<LoginSuccess-Txt>` section and shows the parameters `ChangeEmail`, `ChangePW` and `PasswordSetLogin` from there. The message therefore appears after a successful change in the customer account.

## Order process

| Tag | Message | Belongs on |
| - | - | - |
| `MSG-Basket_Standard` | the standard texts of the basket | basket page |
| `MSG-Basket_Notify` | the notices in the basket, for example about the minimum order value | basket and order overview |
| `MSG-PayDeliv_Notify` | the messages about payment and shipping method | payment and shipping method page, order overview |
| `MSG-PlaceOrder_Notify` | the notices when completing the order | order overview |
| `MSG-BankNotProofed` | the bank details were not verified | order overview |
| `MSG-DirectOrder_Notify` | the messages of the direct order | direct order form |
| `MSG-FastOrder_Notify` | the messages about the quick order | registration for the quick order |
| `MSG-IDS_Notify` | product numbers of the data interface that were not found | all, usually the basket |
| `MSG-SessionUnlockedOnlineClearing` | a new session was started because the old one is locked by a payment process | basket |
| `MSG-BasketUpdatedOnlinePriceProducts` | online prices in the basket were updated | all |
| `MSG-Bank_Notify` | the messages about the bank details | bank details management |
| `MSG-Bank_InputError` | the list of incorrect entries in the bank details | bank details management |

## Other messages

| Tag | Message | Belongs on |
| - | - | - |
| `MSG-Notify` | the general error and status messages | notify template |
| `MSG-InternalErrorMessage` | internal error messages of the shop system | notify template |
| `MSG-Inventory_Notify` | the messages about the stock level | template with stock level display |
| `MSG-InventoryRegister_Notify` | a contact details field was not filled in | template of the notification sign-up |
| `MSG-MemoList_Notify` | the messages of the memo list | memo list |
| `MSG-OrderHistory_Notify` | the messages of the order history | order history |
| `MSG-ProductCompare_Notify` | the notices about the product comparison | product comparison |
| `MSG-ProductRecmd_Notify` | the messages about "Recommend product" | recommendation template |
| `MSG-AreaInput_Notify` | missing or invalid dimensions for an area product | product template |

> [!WARNING]
>
> `MSG-InternalErrorMessage` belongs exclusively in an HTML comment. These messages are intended for troubleshooting and must not appear to a visitor in plain text.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!--
{MSG-InternalErrorMessage}
   ~MSG-InternalErrorMessage~
{/MSG-InternalErrorMessage}
-->
```

## Present in the shop system, not yet described

The tag table of the shop system lists 73 messages. The following eleven exist but were not listed in the previous documentation.

| Tag | Recognizable purpose |
| - | - |
| `MSG-CreditCard_Notify` | the messages about credit card management, the counterpart to `MSG-Bank_Notify` |
| `MSG-CreditCard_InputError` | the incorrect entries for the credit card |
| `MSG-Search_Notify` | the messages of the search, for example about the minimum length of the search term |
| `MSG-Offers_Notify` | the messages of the offer function |
| `MSG-ReOrder_Notify` | the messages when reordering |
| `MSG-WishList_Notify` | the messages of the wish list |
| `MSG-SavedBasket_Notify` | the messages about saved baskets |
| `MSG-AutoOrder_Notify` | the messages of the automatic reorder |
| `MSG-Employee_Notify` | the messages of employee management |
| `MSG-PPCVault_Notify` | the messages about the saved payment method with PayPal |
| `MSG-Inquiry_Notify` | the messages of the inquiry module |

> [!WARNING]
>
> The purposes in this table are derived from the code. `MSG-CreditCard_Notify` and `MSG-Search_Notify` stand out in particular, because their counterparts have always been described. Before one of these tags is included in a guide, development should confirm it.

## Deprecated tags

> [!WARNING]
>
> `MSG-Addr_InputError` and `MSG-DelivAddr_InputError` no longer exist in the shop system. Neither appears in the tag table. Use the individual `_InputError_` tags from the Addresses section instead. The previous documentation only points out the deprecation for the first of the two.

> [!NOTE]
>
> `MSG-PlaceOrder_InputError` is also deprecated but is still supported. For new templates, `MSG-PlaceOrder_Notify` is the right way.

## The tags at a glance

The tags in this group are consistently single tag, area tag and negative area tag. None can be used as a loop tag. There are deviations only for these:

| Tag | Single tag | Area tag | Negative area tag |
| - | - | - | - |
| `MSG-Bank_InputError` | – | yes | yes |
| `MSG-CreditCard_InputError` | – | yes | yes |
| `MSG-BasketUpdatedOnlinePriceProducts` | – | yes | yes |
| `MSG-SessionUnlockedOnlineClearing` | – | yes | yes |
| `MSG-SetPasswordEmailSent` | – | yes | yes |
| `MSG-DoubleOptInDeleteAccountEmailSent` | – | yes | yes |
| `MSG-DoubleOptInDeleteAccountSuccess` | – | yes | yes |

> [!NOTE]
>
> As single tags, the seven tags with an error code output the code, not the text. You formulate the text yourself in the area tag with an argument.

## Related topics

* Guide: Standard texts
* Guide: Offering vouchers
* Guide: Subscription module
* Reference: NotifyMessages-Txt section


## Related topics

- [OFFER- (Customer-specific offers)](https://dokumentation.websale.de/en/v8s/referenz/tags/offer-kundenspezifische-angebote.md)
- [SAVEDBASKET- (Saved baskets)](https://dokumentation.websale.de/en/v8s/referenz/tags/savedbasket-speicherbare-warenkoerbe.md)
- [IDS- (Integrated data interface)](https://dokumentation.websale.de/en/v8s/referenz/tags/ids-schnittstelle.md)
- [FMSG- (Free default texts)](https://dokumentation.websale.de/en/v8s/referenz/tags/fmsg-freie-vorgabetexte.md)
- [PRC- (Product comparison)](https://dokumentation.websale.de/en/v8s/referenz/tags/prc-produktvergleich.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.