Здраствуйте.
Написали мне такой скрипт для актуализации наличия по ссилкам на товар донора,он все роботает,но почему-то иногда не всегда меняет состояние товаров на актуальное.
Может кто то поможет разобраться с кодом и поправить немножко?
и появилась такая проблема,у донора имеется товар с опциями а скрипт проверяет просто ссилку на товар и меняет состояние..
<?php
set_time_limit(0);
$start = microtime(true);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
require_once('../config.php');
require_once('mysqli.php');
include_once('simple_html_dom.php');
$db = new mysqli_db();
$products = $db->multi_query("SELECT * FROM `oc_product` WHERE donor_url != ''",1);
if(count($products) > 0) {
foreach($products as $product){
$html = file_get_html($product['donor_url'],true);
if (is_object($html)) {
$stock_wrap = $html->find('span.stock-wrap',0);
if($stock_wrap) {
$status = trim($stock_wrap->plaintext);
if($status == 'В наличии' && $product['stock_status_id'] != 7) {
$db->query("UPDATE `oc_product` SET stock_status_id = 7, quantity = 50 WHERE product_id = '{$product['product_id']}'");
echo $product['product_id']." set status 7 <br>";
} else if($status != 'В наличии' && $product['stock_status_id'] == 7) {
$db->query("UPDATE `oc_product` SET stock_status_id = 5, quantity = 0 WHERE product_id = '{$product['product_id']}'");
echo $product['product_id']." set status 5 <br>";
}
}
$html->clear();
}
}
}
echo '<br>Время выполнения скрипта: '.round(microtime(true) - $start, 4).' сек.';