Автор Тема: Создание товара в базе Prestashop запросами mysql  (Прочитано 8208 раз)

14 Октябрь 2015, 15:56:31
Ответ #15
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Using the PrestaShop Web Service

Для работы с prestashop из сторонней программы существует WebService.
Других вариантов нет.

то есть выполнение скрипта
$image = new Image();
$image->id_product = $id_product;
$image->cover = 'true / false';
$url = '....jpg';

if (($image->validateFields(false, true)) === true && ($image->validateFieldsLang(false, true)) === true && $image->add())
{
    $image->associateTo($shops);
    if (!AdminImportController::copyImg($id_product, $image->id, $url, 'products', false))
    {
        $image->delete();
    }
}

возможно только через WebService ? и если я запущу этот скрипт через командную строку php add_image.php то работать не будет???
14 Октябрь 2015, 15:59:19
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не будет. Или создате модуль/контроллер (это работает только внутри движка), или используете Web Service.
14 Октябрь 2015, 16:12:43
Ответ #17
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не будет. Или создате модуль/контроллер (это работает только внутри движка), или используете Web Service.

странно... я только что создал запись в таблице именно таким способом, через командную строку php add_image.php
14 Октябрь 2015, 16:48:36
Ответ #18
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
хорошо, задам вопрос по другому: как преста импортирует товары через csv ? Какой там алгоритм? Можно ли как нибудь увидеть этот скрипт?
14 Октябрь 2015, 16:58:59
Ответ #19
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
странно... я только что создал запись в таблице именно таким способом, через командную строку php add_image.php
Это не правда. Так как не возможно создать что-то не имея подключения к бд.
Все дело в деталях. Сначала вы создали соединение с бд, потом выбрали таблицу, потом только сохранили данные.

Цитировать
хорошо, задам вопрос по другому: как преста импортирует товары через csv ? Какой там алгоритм? Можно ли как нибудь увидеть этот скрипт?
/controllers/admin/AdminImportController.php
14 Октябрь 2015, 17:04:55
Ответ #20
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Не будет. Или создате модуль/контроллер (это работает только внутри движка), или используете Web Service.
странно... я только что создал запись в таблице именно таким способом, через командную строку php add_image.php

Вам объянили как работать с prestashop с удаленного сервера и на самом сервер.
Как вы будите запускать php-скрипт из командной строки или еще как-то значение не имеет.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
15 Октябрь 2015, 13:21:55
Ответ #21
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$product->name = array((int)Configuration::get('PS_LANG_DEFAULT') =>  'test');не заполняется, вместо названия товара пустота - что не так?
15 Октябрь 2015, 13:41:54
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
15 Октябрь 2015, 13:44:37
Ответ #23
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Язык не определяется.

А как ЕГО ещё определить? Я же прописываю инструкцию array((int)Configuration::get('PS_LANG_DEFAULT')
15 Октябрь 2015, 13:54:02
Ответ #24
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Где вы это используете?
Если говорить только об этой строке, то в ней ошибок нет.
15 Октябрь 2015, 15:18:04
Ответ #25
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
сам разобрался... теперь новая проблема! Теперь не могу добавить количество - оно не появляется!
$product->minimal_quantity = 1;
$product->out_of_stock = 1;
Это наверное как-то связано с условием When out of stock но я никак не могу найти инструкцию, чтобы изменить значение на Deny  а то там по умолчанию все покупки разрешены, даже если 0 товара, но возможно я ещё что-то делаю не так. Помогите!

$product = new Product();
$product->active = 1;
$product->name = array((int)Configuration::get('PS_LANG_DEFAULT') =>  'Тест');
$product->condition = 'new';
$product->link_rewrite = array((int)Configuration::get('PS_LANG_DEFAULT') =>  'test');
$product->id_category = 12;
$product->id_category_default = 12;
$product->price = 1.11;
$product->quantity = 100;
$product->minimal_quantity = 1;
$product->out_of_stock = 1;
$product->depends_on_stock = 1;
$product->warehouse = 1;
$product->on_sale = 1;
$product->advanced_stock_management = 1;
$product->save();
15 Октябрь 2015, 15:39:34
Ответ #26
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
...
$product->quantity = 100;
$product->minimal_quantity = 1;
$product->out_of_stock = 0;
...
$product->add();
15 Октябрь 2015, 15:51:57
Ответ #27
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Если включено расширенное управление запасами
$product->advanced_stock_management = 1то нужно добалять записи для таблицы запасов
$stock_availables->id = $stock->id;
$stock_availables->id_product  = $product_id;
$stock_availables->quantity = 100;
$stock_availables->id_shop = 1;
$stock_availables->out_of_stock = 1;
$stock_availables->depends_on_stock = 0;
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
15 Октябрь 2015, 15:57:51
Ответ #28
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
15 Октябрь 2015, 16:33:05
Ответ #29
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня почему-то не переключается опция out_of_stock - пробовал значения 0...2 но всё равно опция When out of stock стоИт в положении "По умолчанию: Allow orders as set in the Products Preferences page"

$product->advanced_stock_management = 0тоже не помогло, количество товара $stock_availables->quantity = 100; не устанавливается  :-[
может я не той опцией пользуюсь? может не quantity надо, а что-то ещё?