Index: /mods/mod_productvariants/wpsg_combination.class.php
===================================================================
--- /mods/mod_productvariants/wpsg_combination.class.php	(revision 8276)
+++ /mods/mod_productvariants/wpsg_combination.class.php	(revision 8277)
@@ -12,4 +12,6 @@
 	
 	class wpsg_combination extends \wpsg_model {
+		
+		static $_tableName = 'WPSG_TBL_PRODUCTS_COMBINATION';
 		
 		/**
@@ -37,4 +39,6 @@
 			$json['label'] = $this->getLabel();
 			$json['loaded'] = true;
+			
+			$json['anr'] = $this->getMeta('anr', false, '');
 			
 			return $json;
Index: /mods/wpsg_mod_productvariants.class.php
===================================================================
--- /mods/wpsg_mod_productvariants.class.php	(revision 8276)
+++ /mods/wpsg_mod_productvariants.class.php	(revision 8277)
@@ -1306,7 +1306,13 @@
 			$result = null;
 			
-			if ($data['action_do'] === 'add' || $data['action_do'] === 'edit') {
+			if (in_array($data['action_do'], ['add', 'edit', 'save'])) {
 				
 				$oCombination = \wpsg\wpsg_combination::getByProductAndKey($data['product_id'], $data['var_key']);
+				
+				if ($data['action_do'] === 'save') {
+				
+					$oCombination->setMeta('anr', $data['combination']['anr']);
+					
+				}
 				
 				$result = ['combination' => $oCombination->toJSON()];
Index: /views/mods/mod_productvariants/produkt_addedit_content_combination.phtml
===================================================================
--- /views/mods/mod_productvariants/produkt_addedit_content_combination.phtml	(revision 8276)
+++ /views/mods/mod_productvariants/produkt_addedit_content_combination.phtml	(revision 8277)
@@ -64,17 +64,38 @@
 		</div>
 	</div>
-	<div class="panel panel-default" v-for="(combination, i) of arPossibleKeysFiltered">
-		<div class="panel-heading clearfix">
-			<h3 class="panel-title">
-				{{combination.label}}
-				<span v-if="combination.id > 0" class="glyphicon glyphicon-pencil" @click.prevent="edit(combination.var_key)"></span>
-				<span v-else class="glyphicon glyphicon-plus" @click.prevent="add(combination.var_key)"></span>
-			</h3>
-		</div>
-		<div class="panel-body" v-if="combination.loaded">
-			<pre>{{combination}}</pre>
+	<div v-for="(combination, i) of arPossibleKeysFiltered" class="relative">
+		<div class="panel panel-default">
+			<div class="panel-heading clearfix">
+				<h3 class="panel-title">
+					{{combination.label}}
+					<span v-if="combination.id > 0" class="glyphicon glyphicon-pencil" @click.prevent="edit(combination.var_key)"></span>
+					<span v-else class="glyphicon glyphicon-plus" @click.prevent="add(combination.var_key)"></span>
+				</h3>
+			</div>
+			<div class="panel-body" v-if="combination.loaded">
+				
+				<div v-if="combination.loading" class="loading_layer">
+					<img class="loading" src="<?php echo WPSG_URL; ?>views/gfx/ajax-loader.gif" alt="<?php echo __('Bitte warten ...', 'wpsg'); ?>" />
+				</div>
+				
+				<div class="form-group form-group-sm ">
+					<label class="col-sm-6 control-label" for="detailname">Artikelnummer</label>
+					<div class="col-sm-6">
+						<div class="wpsg_field_wrap">
+							<input type="text" class="form-control input-sm " autocomplete="off" placeholder="" v-model="combination.anr">
+						</div>
+					</div>
+					<div class="clearfix wpsg_clear"></div>
+				</div>
+				
+				<div class="mt-8 flex w-full justify-end">
+					<input type="submit" @click.prevent="save(combination)" class="button button-primary" value="speichern" />
+				</div>
+				
+				<pre class="mt-8">{{combination}}</pre>
+				
+			</div>
 		</div>
 	</div>
-	<pre>{{arPossibleKeysFiltered}}</pre>
 </div>
 
@@ -178,4 +199,29 @@
 			
 			};
+			const save = (combination) => {
+				
+				xhr('save', {
+					var_key: combination.var_key,
+					product_id: combination.product_id,
+					combination: combination
+				}, (response) => {
+					
+					for (let i = 0; i < arPossibleKeys.value.length; i ++) {
+						
+						const var_key = arPossibleKeys.value[i];
+						
+						if (var_key.var_key === response.combination.var_key) {
+							
+							arPossibleKeys.value[i] = response.combination;
+
+						}
+						
+					}
+					
+				});
+				
+				combination.loading = true;
+				
+			}
 			const add = (combination_key) => {
 
@@ -227,5 +273,5 @@
 				getVariantLabel, getVariationLabel,
 				arPossibleKeysFiltered,
-				add, edit
+				add, edit, save
 			};
 			
@@ -242,4 +288,12 @@
 	#wpsg_mod_productvars_combination .panel-title { display:flex; justify-content:space-between; align-items:center; }
 	#wpsg_mod_productvars_combination .panel-title .glyphicon { cursor:pointer; }
+	#wpsg_mod_productvars_combination .panel { margin-bottom:10px; }
+	#wpsg_mod_productvars_combination .loading_layer { z-index:10; position:absolute; left:0; top:0; width:100%; height:100%; background-color:rgba(0, 0, 0, 0.5); display:flex; justify-content:center; align-items:center; }
+	#wpsg_mod_productvars_combination .flex { display:flex; }
+	#wpsg_mod_productvars_combination .w-full { width:100%; }
+	#wpsg_mod_productvars_combination .justify-end { justify-content:flex-end; }
+	#wpsg_mod_productvars_combination .mt-4 { margin-top:1rem; }
+	#wpsg_mod_productvars_combination .relative { position:relative; }
+	#wpsg_mod_productvars_combination .mt-8 { margin-top:2rem; }
 
 </style>
