Вот один из примеров - админский модуль, допустим назовём его MyCron. Создайте на сайте файл objects/mycron/MyCron.admin.php следующего содержания:
<?php
require_once(dirname(__FILE__) . '/../.ref-models/BasicModel.php');
class MyCron extends BasicREFModel {
public function fetch ( & $parent = null ) {
$data = $this->getStockData();
$this->updateProducts($data);
$this->body = '<div class="box">' .
'<p>Выполнено</p>' .
'</div>';
return TRUE;
}
private function getStockData () {
return array( 'sku-1' => array( 'amount' => 10, 'price' => 155 ),
'sku-2' => array( 'amount' => 3, 'price' => 134 ),
'sku-3' => array( 'amount' => 5, 'price' => 120 ) );
}
private function updateProducts ( $data ) {
$items = null;
foreach ($data as $sku => $info) {
$filter = new stdClass;
$filter->maxcount = 1;
$filter->search = 'sku:' . $sku;
$this->cms->db->products->get($items, $filter);
$this->cms->db->products->unpackRecords($items, $filter);
if (!empty($items)) {
$item = reset($items);
foreach ($item->variants as $variant) {
if ($variant->sku == $sku) {
if ($variant->stock != $info['amount'] || $variant->price != $info['price']) {
$item = new stdClass;
$item->variant_id = $variant->variant_id;
$item->stock = $info['amount'];
$item->price = $info['price'];
$this->cms->db->products->update_variant($item);
}
break;
}
}
}
}
}
}
?>
Теперь добавьте в Cron периодический вызов ссылки http://логин:пароль@ваш.сайт/admin?section=MyCron (ссылка действует для супер админов и тех, кому явно разрешён доступ к модулю MyCron).