Вернуться к списку форумов Вернуться

Поддержка пользователей

Community support

Склад

Сообщение: #1-478-37
25.03.2019 12:54
по быстрому

//Как убрать проданное количество товара из БД (16 колонка) затратно при большом объеме товаров, поэтому лучше править файл складов:
$items=$cart->get_all(); //получить все покупки
$file="$base_file";
$file2=$file.time().rand(0,999999);
$f=fopen($file,"r");
$f2=fopen($file2,"w");
while(!feof($f)) {
$st=trim(fgets($f));
if($st!="") {
$t=explode("|",$st);
if(trim(@$t[3])!="") {
foreach($items as $item) {
$o=explode("|", $item['base']);
if($o[3].$o[6]==$t[3].$t[6]) {
$t[16]=(int)@$t[16]-(int)$item['qty'];
if($t[16]<0) {$t[16]=0;}
}
}
}
fputs($f2, implode("|",$t)."n");
}
}
fclose ($f);
fclose ($f2);
@unlink($file);
rename($file2, $file);

//не забудьте проиндексирвать БД через cron