1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sl" lang="sl">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=Windows-1250" />
  5. <title>SINHRONIZACIJA</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <?
  11. function csv_row_parser($file){
  12. $data = explode(';',$file);
  13. $i=0; foreach($data as $k => $v){ if(trim($v)) $i++; }
  14. if($i>=9) return $data;
  15. }
  16.  
  17. function make_url($input,$end=''){
  18. $find = array('"','+','/','*',' ','_','&',',','.','č','Č','š','Š','ž','Ž','ć','Ć','đ','Đ');
  19. $replace = array('','-','-','-','-','-','-','-','-','c','c','s','s','z','z','c','c','d','D');
  20. return mb_strtolower(str_replace(array('--','---'),array('-','-'),str_replace($find,$replace,$input))).$end;
  21. }
  22.  
  23. function clear_commas($input){
  24. if(is_array($input)){
  25. foreach($input as $i){ $output[] = str_replace('"','',$i); }
  26. return $output;
  27. } else {
  28. return $input;
  29. }
  30. }
  31.  
  32. $category_id = array(
  33. 5 => 'EL',
  34. 9 => 'STI',
  35. 10 => 'KRM',
  36. 11 => 'KAB',
  37. 12 => 'KAN',
  38. 13 => 'PRI',
  39. 14 => 'OST',
  40. 3 => 'RA',
  41. 15 => 'ŽAR',
  42. 16 => 'SVE',
  43. 4 => 'OR',
  44. 19 => 'ERO',
  45. 20 => 'ROČ',
  46. 6 => 'GA',
  47. 22 => 'BEL',
  48. 23 => 'MGA',
  49. 24 => 'OGR',
  50. 7 => 'AV',
  51. 32 => 'AVA',
  52. 33 => 'AVD',
  53. 34 => 'VID',
  54. 35 => 'FOT'
  55. )
  56.  
  57. /*
  58. $data[0] => "Ident"
  59. $data[1] => "Naziv"
  60. $data[2] =>
  61. $data[3] => "Zaloga"
  62. $data[4] =>
  63. $data[5] => "EM"
  64. $data[6] =>
  65. $data[7] => "Cena MPC"
  66. $data[8] => "Dni brez prometa"
  67. $data[9] =>
  68. $data[10] => "Proizvajalec"
  69. $data[11] => "Klas1"
  70. $data[12] => "Klas.2"
  71. $data[13] =>
  72. */
  73. ?>
  74.  
  75. <form action="" method="post" enctype="multipart/form-data">
  76. Geslo: <input type="password" name="pass" value="sk4p1n.csv" />
  77. <input type="file" name="csv_datoteka" />
  78. <input type="submit" value="Naloži" />
  79. </form>
  80. <br /><hr size="1" /><br />
  81.  
  82. <?if($_FILES){?>
  83. <?$file = file($_FILES['csv_datoteka']['tmp_name']);?>
  84. <table cellpadding="3" cellspacing="1" border="1" style="border-collapse: collapse;">
  85. <tr>
  86. <td> </td>
  87. <td><b>store</b></td>
  88. <td><b>websites</b></td>
  89. <td><b>attribute_set</b></td>
  90. <td><b>type</b></td>
  91. <td><b>sku</b></td>
  92. <td><b>category_ids</b></td>
  93. <td><b>has_options</b></td>
  94. <td><b>description</b></td>
  95. <td><b>short_description</b></td>
  96. <td><b>meta_keyword</b></td>
  97. <td><b>custom_layout_update</b></td>
  98. <td><b>price</b></td>
  99. <td><b>weight</b></td>
  100. <td><b>name</b></td>
  101. <td><b>meta_title</b></td>
  102. <td><b>meta_description</b></td>
  103. <td><b>image</b></td>
  104. <td><b>small_image</b></td>
  105. <td><b>thumbnail</b></td>
  106. <td><b>url_key</b></td>
  107. <td><b>url_path</b></td>
  108. <td><b>options_container</b></td>
  109. <td><b>gift_message_available</b></td>
  110. <td><b>manufacturer</b></td>
  111. <td><b>status</b></td>
  112. <td><b>tax_class_id</b></td>
  113. <td><b>visibility</b></td>
  114. <td><b>enable_googlecheckout</b></td>
  115. <td><b>home_page_featured</b></td>
  116. <td><b>qty</b></td>
  117. <td><b>min_qty</b></td>
  118. <td><b>use_config_min_qty</b></td>
  119. <td><b>is_qty_decimal</b></td>
  120. <td><b>backorders</b></td>
  121. <td><b>use_config_backorders</b></td>
  122. <td><b>min_sale_qty</b></td>
  123. <td><b>use_config_min_sale_qty</b></td>
  124. <td><b>max_sale_qty</b></td>
  125. <td><b>use_config_max_sale_qty</b></td>
  126. <td><b>is_in_stock</b></td>
  127. <td><b>low_stock_date</b></td>
  128. <td><b>notify_stock_qty</b></td>
  129. <td><b>use_config_notify_stock_qty</b></td>
  130. <td><b>manage_stock</b></td>
  131. <td><b>use_config_manage_stock</b></td>
  132. <td><b>stock_status_changed_automatically</b></td>
  133. <td><b>product_name</b></td>
  134. <td><b>store_id</b></td>
  135. <td><b>product_type_id</b></td>
  136. <td><b>product_status_changed</b></td>
  137. <td><b>product_changed_websites</b></td>
  138. <td><b>news_from_date</b></td>
  139. <td><b>special_price</b></td>
  140. <td><b>special_from_date</b></td>
  141. </tr>
  142. <?$i=0; foreach($file as $row){?>
  143. <?
  144. $data = csv_row_parser($row);
  145. $data = clear_commas($data);
  146. $stop = 0; // definiram prvotno vrednost
  147. if($data[0] == 'Ident') $stop = 1; // Izločim naslovne vrstice
  148.  
  149. // določim kategorije oz. izločim če je ni
  150. $category = '';
  151. if($data[11]) $category = $data[11];
  152. if($data[12]) $category = $data[12];
  153. $category = array_search($category, $category_id);
  154. if(!$category){ $category = 17; $stop = 1;}
  155. ?>
  156. <?if($data AND $stop == 0){ $i++;?>
  157. <tr style="<?if($i%2) echo 'background: #E8E8E8;'; else echo 'background: #F5F5F5;';?>">
  158. <td><pre><?print_r($data);?></pre></td>
  159. <td><?=$csv[$i]['store'] = 'default';?></td>
  160. <td><?=$csv[$i]['websites'] = 'base';?></td>
  161. <td><?=$csv[$i]['attribute_set'] = 'Default';?></td>
  162. <td><?=$csv[$i]['type'] = 'simple';?></td>
  163. <td><?=$csv[$i]['sku'] = $data[0];?></td>
  164. <td><?=$csv[$i]['category_ids'] = $category;?></td> <!-- KATEGORIJE -->
  165. <td><?=$csv[$i]['has_options'] = '0';?></td>
  166. <td><?=$csv[$i]['description'] = '';?></td> <!-- OPIS -->
  167. <td><?=$csv[$i]['short_description'] = '';?></td> <!-- short OPIS -->
  168. <td><?=$csv[$i]['meta_keyword'] = '';?></td>
  169. <td><?=$csv[$i]['custom_layout_update'] = '';?></td>
  170. <td><?=$csv[$i]['price'] = $data[7];?></td> <!-- CENA -->
  171. <td><?=$csv[$i]['weight'] = '1.0000';?></td> <!-- TEŽA -->
  172. <td><?=$csv[$i]['name'] = $data[1];?></td> <!-- IME -->
  173. <td><?=$csv[$i]['meta_title'] = '';?></td>
  174. <td><?=$csv[$i]['meta_description'] = '';?></td>
  175. <td><?=$csv[$i]['image'] = '';?></td>
  176. <td><?=$csv[$i]['small_image'] = '';?></td>
  177. <td><?=$csv[$i]['thumbnail'] = '';?></td>
  178. <td><?=$csv[$i]['url_key'] = make_url($data[1],'');?></td>
  179. <td><?=$csv[$i]['url_path'] = make_url($data[1],'.html');?></td>
  180. <td><?=$csv[$i]['options_container'] = 'Block after Info Column';?></td> <!-- ???? -->
  181. <td><?=$csv[$i]['gift_message_available'] = 'Use config';?></td>
  182. <td><?=$csv[$i]['manufacturer'] = $data[10];;?></td> <!-- PROIZVAJALEC -->
  183. <td><?=$csv[$i]['status'] = 'Omogočeno';?></td>
  184. <td><?=$csv[$i]['tax_class_id'] = 'DDV 20%';?></td>
  185. <td><?=$csv[$i]['visibility'] = 'Katalog, Iskanje';?></td>
  186. <td><?=$csv[$i]['enable_googlecheckout'] = 'Da';?></td>
  187. <td><?=$csv[$i]['home_page_featured'] = '1';?></td>
  188. <td><?=$csv[$i]['qty'] = $data[3];?></td> <!-- ZALOGA -->
  189. <td><?=$csv[$i]['min_qty'] = '0.0000';?></td>
  190. <td><?=$csv[$i]['use_config_min_qty'] = '1';?></td>
  191. <td><?=$csv[$i]['is_qty_decimal'] = '0';?></td>
  192. <td><?=$csv[$i]['backorders'] = '0';?></td>
  193. <td><?=$csv[$i]['use_config_backorders'] = '1';?></td>
  194. <td><?=$csv[$i]['min_sale_qty'] = '1.0000';?></td>
  195. <td><?=$csv[$i]['use_config_min_sale_qty'] = '1';?></td>
  196. <td><?=$csv[$i]['max_sale_qty'] = '0.0000';?></td>
  197. <td><?=$csv[$i]['use_config_max_sale_qty'] = '1';?></td>
  198. <td><?=$csv[$i]['is_in_stock'] = '0';?></td>
  199. <td><?=$csv[$i]['low_stock_date'] = '2010-01-21 12:35:55';?></td> <!-- NEK DATUM -->
  200. <td><?=$csv[$i]['notify_stock_qty'] = '0.0000';?></td>
  201. <td><?=$csv[$i]['use_config_notify_stock_qty'] = '1';?></td>
  202. <td><?=$csv[$i]['manage_stock'] = '0';?></td>
  203. <td><?=$csv[$i]['use_config_manage_stock'] = '1';?></td>
  204. <td><?=$csv[$i]['stock_status_changed_automatically'] = '1';?></td>
  205. <td><?=$csv[$i]['product_name'] = $data[1];?></td>
  206. <td><?=$csv[$i]['store_id'] = '1';?></td>
  207. <td><?=$csv[$i]['product_type_id'] = 'simple';?></td>
  208. <td><?=$csv[$i]['product_status_changed'] = '';?></td>
  209. <td><?=$csv[$i]['product_changed_websites'] = '';?></td>
  210. <td><?=$csv[$i]['news_from_date'] = '';?></td>
  211. <td><?=$csv[$i]['special_price'] = '';?></td>
  212. <td><?=$csv[$i]['special_from_date'] = '';?></td>
  213. </tr>
  214. <?}?>
  215. <?}?>
  216. </table>
  217. <?}?>
  218. <hr />
  219. <?
  220. if(is_array($csv)){?>
  221. <?
  222. $filename = 'import_'.date('d').date('m').date('Y').'_'.date(G).'h'.date(i).'m'.date(s).'s';
  223. echo $filename;
  224. $file = fopen("../var/import/".$filename.".csv", "w+");
  225. $i=0; foreach($csv[1] as $key => $val){ $i++; if($i!=1) $first_line .= ','; $first_line .= '"'.$key.'"'; }
  226. fwrite($file,$first_line);
  227. fwrite($file,"\n");
  228. foreach($csv as $val){
  229. foreach($val as $k => $v){ $v = '"'.$v.'"'; $tmp[] = $v; }
  230. $row = implode(',',$tmp);
  231. //$row = str_replace(array('š','č','ć','ž','đ','Š','Č','Ć','Ž','Đ'),array('š','č','ć','ž','đ','&#348;','Č','Ć','Ž','&#208;'),$row);
  232. fwrite($file,$row); unset($tmp);
  233. fwrite($file,"\n");
  234. }
  235. fclose($file);
  236. ?>
  237. <?}?>
  238. <br />
  239.  
  240.  
  241. </body>
  242.  
  243.