Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Интернет Магазин  ->  Импорт товаров через API

Вопросы по настройке магазина, каталога.

Добавлено: 24.03.15 00:54:30 #1



Регистрация: 24.03.15
Сообщений: 7


Обратиться по имени

Доброго времени суток!
Подскажите как нужно реализовывать импорт товаров через API.
Мне нужно делать проверку данных поставщика с имеющимися, и только потом делать импорт/обновление.
Почему простое добавление записи в базу не помогает?
Напишите названия моделей для добавления товаров?
Что хранится в поле cms_es_items.sm_data ?
Какие поля нужно обязательно заполнить в cms_es_items, чтобы товар начал отображаться, без API, только одним SQL?
Заранее спасибо за развернутый ответ!



Добавлено: 24.03.15 14:59:25 #2



Регистрация: 22.10.12
Сообщений: 73


Обратиться по имени

asm4yar:
Почему простое добавление записи в базу не помогает?


Страницы на внешней части сайта кэшируются, прямая запись в базу кэш не сбросит. То есть как минимум по результатам импорта нужно удалить содержимое таблиц кэша, cms_cache, cms_cache_content, cms_cache_blocks, а лучше записывать через API.

asm4yar:
Напишите названия моделей для добавления товаров?


eshop_item (товары), eshop_cat (категории товаров).
Для выставления соответствия между загружаемыми и хранящимися на сайте данными есть встроенное поле id_external, можно в своей реализации обмена задействовать его. Простой пример -

$oModel = AMI::getResourceModel('eshop_item/table');
...
$oItem = $oModel->findByFields( array('id_external' => $id) );
$oItem->name = $name;
$oItem->save();
...

asm4yar:
то хранится в поле cms_es_items.sm_data ?


Некоторые поля из вкладки "параметры и SEO" в сериализованном виде: заголовок, ключевые слова, описание.



Добавлено: 25.03.15 08:33:44 #3



Регистрация: 24.03.15
Сообщений: 7


Обратиться по имени

 
$item_array = [
                            'announce' => $name,
                            'header' => $name,
                            'body' => $name,
                            'cat_id' => $category_Id, // зачем так?
                            'sku' => $vendor_code,
                            'custom_field_226' => $url,
                            'custom_field_182' => $status,
                            'price' => $price,
                        ];
                        try {
                            $oItem = $this->_oModel->add($item_array);
                            $oItem->save();
                        } catch (Exception $ex) {
                            var_dump($item_array);
                            print_r($ex->getMessage());
                        }


Как добавить экранирование?
В поле sku может быть '



Добавлено: 09.01.16 18:36:36 #4




Регистрация: 09.01.16
Сообщений: 2


Обратиться по имени

Я использую отдельную программу которая хранит копию каталога магазина и сравнивает товары с предложениями поставщиков. Магазин обновляется через готовый csv-файл с новыми ценами.





Создать новую тему

Всего тем: 6629
Всего сообщений: 27746
Всего зарегистрированных пользователей: 48918
Последний зарегистрированный пользователь: alexcool097