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

14 Октября 2015, 09:53:47
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте! Помогите пожалуйста, ну никак не могу понять, как скрипт в престе создаёт товар??? Какие таблицы заполняются?
Я скачал визуальную схему работы скриптов престы и чуть не сошёл с ума. Во первых её даже принтер отказывается распечатывать, а во вторых при просмотре комп перегревается так, как-буд-то я играю в какой-то супер требовательный 3д-шутер. Я включил логи mysql - но разобраться в том бардаке, в котором создаётся по 1000 строк в секунду от любой операции, не смог  :( Как с помощью запросов mysql создать товар? Как правильно заполнить все необходимые таблицы, чтобы товар появился? Помогите пожалуйста.
14 Октября 2015, 10:28:44
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22093
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В класса Product.php, методы add и update. Это додавление и обновление товара.  Связи с таблицами тамже.
Для создания товара в модуле нет нужды делать это sql запросом, есть готовые мeтоды
$product = new Product();
$product->add();
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
14 Октября 2015, 10:33:30
Ответ #2
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В класса Product.php, методы add и update. Это додавление и обновление товара.  Связи с таблицами тамже.
Для создания товара в модуле нет нужды делать это sql запросом, есть готовые мeтоды
$product = new Product();
$product->add();

Методы
$product = new Product();
$product->add();
[/quote]
это здорово, а как заполнить ВСЕ необходимые реквизиты? Наименование товара, артикул, штрихкод, цену, количество, набор, цвет, картинку - это то как и какими методами добавлять? Я хочу заполнять не прибегая к php а скажем из Visual Basic по этому и спросил про скрипты mysql
14 Октября 2015, 10:47:46
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 85943
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как я понимаю вам нужен webservice. Вы хотите программно создавать товар?
14 Октября 2015, 10:55:29
Ответ #4
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как я понимаю вам нужен webservice. Вы хотите программно создавать товар?

Да, да, даааа!!! Ура! Меня услышали!!!! Я именно программно хочу создать товар!
14 Октября 2015, 11:04:17
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 85943
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$product = new Product();
$product->ean13 = ...;
$product->name = array((int)Configuration::get('PS_LANG_DEFAULT') =>  '...');
$product->link_rewrite = array((int)Configuration::get('PS_LANG_DEFAULT') =>  '...');
$product->id_category = ...;
$product->id_category_default = ...;
$product->price = ...;
$product->quantity = ...;
Все свойства можете посмотреть в классе Product.php или в базе данных в таблицах ps_product....

Using the PrestaShop Web Service
14 Октября 2015, 11:18:04
Ответ #6
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
как мне написать инструкцию креатинга скажем
$product->ean13 = 123456789123; - как будет выглядеть командная строка?
->_   пишу php product.php и добавляю в него параметр -r
'$product->ean13 = 123456789123;' или как?
14 Октября 2015, 11:27:59
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Из командной строки не создают. Создаете файл php. подключаете конф. файл
include('../../config/config.inc.php');создаете объект
$product = new Product();присваивете значение
$product->ean13 = '123456789123';сохранятете
$product->save();
После можете использовать этот файл где хотите, только путь к конф. отредактируйте.
14 Октября 2015, 11:47:24
Ответ #8
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Огромное спасибо за ответы! А подскажите ещё, связи и привязки при использовании вышеуказанных методов, создадутся сами или их ещё где-то нужно прописывать дополнительно? Я имею в виду например ID товара привязано к ID категории - это нужно где-то описывать? И каким образом мне правильно указать картинку-логотип для товара? Ещё картинка дублируется с разными размерами - это мне вручную надо их изготовлять или есть какой-то метод для преобразования/размножения?
14 Октября 2015, 11:55:20
Ответ #9
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Конечно все самому прописывать.

Цитировать
Я имею в виду например ID товара привязано к ID категории - это нужно где-то описывать?
$product->id_category = ...;
$product->id_category_default = ...;

Цитировать
И каким образом мне правильно указать картинку-логотип для товара?
$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();
    }
}

Цитировать
Ещё картинка дублируется с разными размерами - это мне вручную надо их изготовлять или есть какой-то метод для преобразования/размножения?
Prestashop создает атоматом все размеры изображения из одного файла.
14 Октября 2015, 12:15:36
Ответ #10
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А подключения include('../../config/config.inc.php');достаточно? сам product.php подключать не надо?
14 Октября 2015, 12:57:37
Ответ #11
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Мне бы пример добавления нового товара в базу, а то никак понять не могу с этими ID и картинками, как понять какой номер ID у картинки должен быть чтобы не перезаписать уже существующую? Ну к примеру ID категории я знаю заранее - можно сказать, что она меняться не будет, а ID товара как не перезаписать? Нужно как-то получить номер последней записи в таблице? А как?
14 Октября 2015, 14:00:04
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Цитировать
достаточно? сам product.php подключать не надо?
Не нужно.
Пример уже дали. Зачем все поля перечислять, если принцип один. Как получить ид категории зависит от того, где вы это делаете.
Вы сначала определитесь, что будете создавать модуль, страницу, контроллер или работать с бд через вебсервис.
Примеры есть на форуме. Или на http://doc.prestashop.com/dashboard.action

14 Октября 2015, 14:21:59
Ответ #13
  • Пользователь
  • **
  • Сообщений: 91
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Пример уже дали. Зачем все поля перечислять, если принцип один. Как получить ид категории зависит от того, где вы это делаете.
Вы сначала определитесь, что будете создавать модуль, страницу, контроллер или работать с бд через вебсервис.
Примеры есть на форуме. Или на http://doc.prestashop.com/dashboard.action

Я хочу работать с бд напрямую, мне надо заполнять базу но не через вебинтерфейс конфигуратора, а через стороннюю программу, которая создаёт скрипт php и запускает его. Примеров добавления товаров через скрипт на этом форуме я не нашёл, по ссылке http://doc.prestashop.com/dashboard.action - так же ничего не нашёл.  ???
14 Октября 2015, 15:48:44
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 85943
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Using the PrestaShop Web Service

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