# Sonderzeichen in der Artikelnummer erlauben

**URL:** <https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [7. Mai 2013 um 12:00 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058 "2013-05-07T12:00:38Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [7. Mai 2013 um 12:00 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/1 "2013-05-07T12:00:38Z")

</div>

In Hauptartikeln wird in der Artikelnummer z.B. kein / akzeptiert. Will ich einen Artikel über die lokal genutzte API importieren wirft SW eine (recht ungenaue) Fehlermeldung aus. ` Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. in Shopware/Components/Api/Resource/Article.php on line 236 Stack trace: #0 Shopware/Plugins/Local/Frontend/LoemImportExport/Bootstrap.php(233): Shopware\Components\Api\Resource\Article-\>create(Array) #1 Enlight/Event/Handler/Plugin.php(149): Shopware\_Plugins\_Frontend\_LoemImportExport\_Bootstrap-\>onRunLoemImportCronJob(Object(Shopware\_Components\_Cron\_CronJob)) #2 Enlight/Event/EventManager.php(194): Enlight\_Event\_Handler\_Plugin-\>execute(Object(Shopware\_Components\_Cron\_CronJob)) #3 Enlight/Components/Cron/Manager.php(228): Enlight\_Event\_EventManager-\>notifyUntil('Shopware\_CronJo...', Object(Shopware\_Components\_Cron\_CronJob)) #4 Shopware/Plugins/Default/Core/Cron/Cron.php(61): Enlight\_Components\_Cron\_Manager-\>runJob(Object(Enlight\_Components\_Cron\_Job)) #5 Enlight/Controller/Action.php(135): Shopware\_Controllers\_Backend\_Cron-\>indexAction() #6 Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('indexAction') #7 Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #8 Shopware/Bootstrap.php(79): Enlight\_Controller\_Front-\>dispatch() #9 Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #10 shopware.php(75): Enlight\_Application-\>run() #11 {main} ` Wie kann man Sonderzeichen wie z.B. / in der Artikelnummer zulassen?

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [8. Mai 2013 um 07:15 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/2 "2013-05-08T07:15:48Z")

</div>

Hallo, die Regeln für den Aufbau der Artikelnummer sind in engine/Shopware/Models/Article/Detail.php definiert. ` /\*\* \* @var string $number \* @Assert\NotBlank \* @Assert\Regex("/^[a-zA-Z0-9-\_.]+$/") \* \* @ORM\Column(name="ordernumber", type="string", nullable=false, unique = true) \*/ private $number = ''; ` Man müsste also aus @Assert\Regex("/^[a-zA-Z0-9-\_.]+/") z.B. @Assert\Regex("/^[a-zA-Z0-9-\_.\/]+/") machen um einen Slash zu erlauben - oder du entfernst die Validierung komplett. Du müsstest allerdings dann testen, ob die verschiedenen Webbrowser die Sonderzeichen korrekt maskieren / kodieren, wenn du etwas in den Warenkorb legst.

---

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [8. Mai 2013 um 08:54 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/3 "2013-05-08T08:54:32Z")

</div>

Ach ja, da steckt die Validierung…Danke! Die ersten Tests in diversen IEs, aktuellem Chrome, FF und Safari auf PC waren schonmal erfolgreich. Updatesicher kriegt man das aber nicht hin, oder? Das Backend-Template (/templates/\_default/backend/article/view/detail/base.js) wurde - natürlich im eigenen Template - auch angepasst, so dass man im Backend auch noch etwas unabhängig vom Import ändern kann ohne dass die Nummer bemängelt wird.

---

<div class="post-metadata">

**Author:** ![cruise](https://avatars.discourse-cdn.com/v4/letter/c/f14d63/32.png) [@cruise](https://forum.shopware.com/u/cruise)\
**Post date:** [22. Oktober 2013 um 11:14 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/4 "2013-10-22T11:14:25Z")

</div>

Also mit der Änderung im Backend Template geht es dass ich im Backendtemplate die SKUs mit / und + darstelle. Aber wenn ich den Import fahre unter Inhalte / Import-Export dann wirft der bei Verwendung von / einen Fehler “invalid ordernumber”. Allerdings habe ich den Regex Bereich von der Detail.php komplett entfernt um sicher zu gehen. Any Ideas?

---

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [22. Oktober 2013 um 11:35 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/5 "2013-10-22T11:35:25Z")

</div>

Im Controller für den Import/Export (engine\Shopware\Controllers\Backend\ImportExport.php) steht noch eine Prüfung im CSV-Import, die unabhängig vom Model arbeitet (Zeile 2355 ,SW 4.1.2) `if(preg\_match('/[^a-zA-Z0-9-\_.]/', $articleData['ordernumber']) !== 0) {` Die dürfte den Fehler auswerfen. Da müsstest du die RegEx anpassen. Ist nicht updatesicher, wenn du das da direkt änderst.

---

<div class="post-metadata">

**Author:** ![cruise](https://avatars.discourse-cdn.com/v4/letter/c/f14d63/32.png) [@cruise](https://forum.shopware.com/u/cruise)\
**Post date:** [22. Oktober 2013 um 11:43 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/6 "2013-10-22T11:43:14Z")

</div>

Hey, super, also das klappt wunderbar so. Habe nun auch + und so drin. Vielen Dank!

---

<div class="post-metadata">

**Author:** ![cruise](https://avatars.discourse-cdn.com/v4/letter/c/f14d63/32.png) [@cruise](https://forum.shopware.com/u/cruise)\
**Post date:** [22. Oktober 2013 um 11:45 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/7 "2013-10-22T11:45:05Z")

</div>

Ach noch was… akutell ist es nicht updatesicher - das stimmt. Könnte man mittels Plugin nicht das Model und den Controller überschreiben? Dann könnte man für diesen Fall ein Plugin erstellen, macht doch Sinn oder?

---

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [22. Oktober 2013 um 11:59 UTC](https://forum.shopware.com/t/sonderzeichen-in-der-artikelnummer-erlauben/13058/8 "2013-10-22T11:59:09Z")

</div>

Ja, das kann man. Ich habe jetzt nicht genau reingesehen, aber man wird die ganze Funktion überschreiben müssen. Solange sich die Funktion im SW-Standard nicht ändert ist das updatesicher, ab dann fehlen einem die Änderungen von SW in der eigenen Funktion bzw. muss man die dann nochmal anpassen.
