1. получаем товары:
https://vk.com/dev/market.get
Если есть проблемы с доступом к апи (не хватает прав) - создаёте приложение в ВК, получаете его ид и следуете по
https://vk.com/dev/implicit_flow_user
2. смотрим по импорту товаров в опенкарт
начиная с
https://www.opencart.com/index.php?route=marketpla...
или любой на выбор
3. пережевываем товары из вк в формат товаров опенкарта
4. выгружаем.
В особо сложном случае (как делал сам) пишется скрипт для импорта. Пример говнокода для версии 1.5, этого хватает, если остальные действия с товаром делать уже в админке - свойства, категории, проч.:
ВНИМАНИЕ: БД в проекте, который показан в этом примере была сильно перекроена, в итоге поля description, image были вынесены из связанных таблиц и вставлены в эту (в связанных моделях пришлось аналогично поступать). Потеряна возможность хранить много фоток, многоязычность. Получен импорт 100к товаров секунд за 10.
Спасибо
alex-1917 за внимательность.
<?php
set_time_limit(0);
error_reporting(E_ALL);
include_once('config.php'); //конфиг админки
$my = new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$my->set_charset("utf8");
function addProduct($data,$my){
foreach($data as $key=>$val)
{
$keys[] = '`'.$key.'`';
$values[] = '"'.$my->real_escape_string($val).'"';
}
$keys[] = '`date_added`'; $values[] = 'NOW()';
$keys[] = '`date_modified`';$values[] = 'NOW()';
$keys2 = join(',',$keys);
$vals2 = join(',',$values);
$q = "INSERT INTO product ($keys2) VALUES ($vals2);";
$my->query($q);
}
/*
$items - массив с товарами из вк, в каталоге data лежат файлы с картинками
*/
foreach($items as $item)
{
$data = array();
$data['category_id'] = 1; //всё в один раздел
$data['name'] = $item['name'];
$data['description'] = $item['description'];
$data['articul'] = $item['articul'];
$data['quantity'] = 1;
$data['stock_status_id'] = 1;
$data['manufacturer_id'] = 0;
$data['shipping'] = 1;
$data['price'] = 0;
$data['tax_class_id'] = 0;
$data['subtract'] = 1;
$data['minimum'] = 1;
$data['image'] = 'data/'.$item['image'];
$cnt++;
addProduct($data,$my);
}