Мне нужно разбить большое количество записей, и я смог вытащить первые 6000, используя простое выражение lteq, но я не могу понять, как вытащить еще 6k-файлы.
Этот код работает, но вызывает ошибку памяти:
$filterData = array(
'product_id' => array(14001, 'to'=> 17000)
);
Мне нужно сделать цикл, который будет идти из этого:
$filterData = array(
'product_id' => array('lteq' => 6000)
);
Вот еще код:
// get all my database products into an array
$products = $client->call($session, 'catalog_product.list', array($filterData));
А затем перейти к следующему массиву 6001 - 12000
Есть идеи?
Вот правильный вызов Magento / API / Soap / Filter:
$filterData = array(
'product_id' => array('from' => 6001, 'to' => 10000)
);
Используйте "from" и "to", чтобы извлечь все записи между ними.
Код в комментарии:
$client = new SoapClient($myDomain.'/api/?wsdl');
$session = $client->login($myAPILogin, $myAPIKey);
//some filter date to pass to the API - add more to filter your results further - see Magento API docs
//$filterData = array('type'=>'simple');
$filterData = array( 'product_id' => array('from' => 6001), array('to' => 7000) );
//get all my database products into an array
$products = $client->call($session, 'catalog_product.list', array($filterData));