var_dump($filelist); показывает NULL, буду дальше искать ошибку, но странно ведь при простом php $entries = scandir('./../files');
$filelist = array();
foreach($entries as $entry) {
   if (strpos($entry, 'store_apendix_big5437') === 0) {
        $filelist[] = $entry;
    };
};
// 5437 - одно из ID товара;
print_r($filelist);Array ( [0] => store_apendix_big5437_16537.jpg [1] => store_apendix_big5437_20407.jpg )function PutTag($mNodeName, $mAttr = array(), $mNodeValue = '', $mPut = true)
	{
		$code = '';
		$this->gTabs++;
		for($i = 0; $i < $this->gTabs; $i++)
		{
			$code .= ' ';
		}
		
		$code .= '<'.$mNodeName;
		if ( count($mAttr) > 0 ) 
		{
			foreach ($mAttr as $key => $value)
			{
				$code .= ' '.$key.'="'.iconv($this->gCharset, $this->gXMLCharset, htmlspecialchars($this->Normalize($value))).'"';
			}
		}
		if ( strlen($mNodeValue) > 0 ) 
		{
			$code .= '>';
			$code .= iconv($this->gCharset, $this->gXMLCharset, htmlspecialchars($mNodeValue));
			$code .= '</'.$mNodeName.'>'."\r\n";
			$this->gTabs--;
		}
		else
		{
			$code .= '/>'."\r\n";
			$this->gTabs--;
		}
		if ( $mPut ) 
		{
			$this->gToPocket ? $this->gPocket .= $code : fwrite($this->gFile, $code, strlen($code));
		}
		else
		{
			return $code;
		}
	}
	
	/**
	 * Put XML
	 **/
	function PutXML($mCode)
	{
		$this->gToPocket ? $this->gPocket .= $mCode : fwrite($this->gFile, $mCode, strlen($mCode));
	}$gUser['garanty'] = '12'; //12 - ID в таблице характеристик
$xml->PutTag('param', array(name => 'Гарантия, мес.'), $gData->GetInfoValueGoods($g_hash[0], $gUser['garanty']));<param name="Гарантия, мес.">60</param>        
если товары не добавлять - тогда да (можно просто перенести данные с таблицы)