Создание товара в базе Prestashop запросами mysql

Автор Cyrix, 14 октября 2015, 09:53:47

« назад - далее »

Cyrix

Здравствуйте! Помогите пожалуйста, ну никак не могу понять, как скрипт в престе создаёт товар??? Какие таблицы заполняются?
Я скачал визуальную схему работы скриптов престы и чуть не сошёл с ума. Во первых её даже принтер отказывается распечатывать, а во вторых при просмотре комп перегревается так, как-буд-то я играю в какой-то супер требовательный 3д-шутер. Я включил логи mysql - но разобраться в том бардаке, в котором создаётся по 1000 строк в секунду от любой операции, не смог  :( Как с помощью запросов mysql создать товар? Как правильно заполнить все необходимые таблицы, чтобы товар появился? Помогите пожалуйста.

mAgency

В класса Product.php, методы add и update. Это додавление и обновление товара.  Связи с таблицами тамже.
Для создания товара в модуле нет нужды делать это sql запросом, есть готовые мeтоды
$product = new Product();
$product->add();
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Cyrix

Цитата: mAgency от 14 октября 2015, 10:28:44
В класса Product.php, методы add и update. Это додавление и обновление товара.  Связи с таблицами тамже.
Для создания товара в модуле нет нужды делать это sql запросом, есть готовые мeтоды
$product = new Product();
$product->add();


Методы
$product = new Product();
$product->add();

[/quote]
это здорово, а как заполнить ВСЕ необходимые реквизиты? Наименование товара, артикул, штрихкод, цену, количество, набор, цвет, картинку - это то как и какими методами добавлять? Я хочу заполнять не прибегая к php а скажем из Visual Basic по этому и спросил про скрипты mysql

DarinSr

Как я понимаю вам нужен webservice. Вы хотите программно создавать товар?

Cyrix

Цитата: DarinSr от 14 октября 2015, 10:47:46
Как я понимаю вам нужен webservice. Вы хотите программно создавать товар?

Да, да, даааа!!! Ура! Меня услышали!!!! Я именно программно хочу создать товар!

DarinSr

$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

Cyrix

#6
как мне написать инструкцию креатинга скажем
$product->ean13 = 123456789123;
- как будет выглядеть командная строка?
->_   пишу php product.php и добавляю в него параметр -r
'$product->ean13 = 123456789123;'
или как?

coder

#7
Из командной строки не создают. Создаете файл php. подключаете конф. файл
include('../../config/config.inc.php');
создаете объект
$product = new Product();
присваивете значение
$product->ean13 = '123456789123';
сохранятете
$product->save();

После можете использовать этот файл где хотите, только путь к конф. отредактируйте.

Cyrix

Огромное спасибо за ответы! А подскажите ещё, связи и привязки при использовании вышеуказанных методов, создадутся сами или их ещё где-то нужно прописывать дополнительно? Я имею в виду например ID товара привязано к ID категории - это нужно где-то описывать? И каким образом мне правильно указать картинку-логотип для товара? Ещё картинка дублируется с разными размерами - это мне вручную надо их изготовлять или есть какой-то метод для преобразования/размножения?

coder

Конечно все самому прописывать.

ЦитироватьЯ имею в виду например 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 создает атоматом все размеры изображения из одного файла.

Cyrix

А подключения include('../../config/config.inc.php');
достаточно? сам product.php подключать не надо?

Cyrix

Мне бы пример добавления нового товара в базу, а то никак понять не могу с этими ID и картинками, как понять какой номер ID у картинки должен быть чтобы не перезаписать уже существующую? Ну к примеру ID категории я знаю заранее - можно сказать, что она меняться не будет, а ID товара как не перезаписать? Нужно как-то получить номер последней записи в таблице? А как?

coder

Цитироватьдостаточно? сам product.php подключать не надо?
Не нужно.
Пример уже дали. Зачем все поля перечислять, если принцип один. Как получить ид категории зависит от того, где вы это делаете.
Вы сначала определитесь, что будете создавать модуль, страницу, контроллер или работать с бд через вебсервис.
Примеры есть на форуме. Или на http://doc.prestashop.com/dashboard.action


Cyrix

Цитировать
Пример уже дали. Зачем все поля перечислять, если принцип один. Как получить ид категории зависит от того, где вы это делаете.
Вы сначала определитесь, что будете создавать модуль, страницу, контроллер или работать с бд через вебсервис.
Примеры есть на форуме. Или на http://doc.prestashop.com/dashboard.action

Я хочу работать с бд напрямую, мне надо заполнять базу но не через вебинтерфейс конфигуратора, а через стороннюю программу, которая создаёт скрипт php и запускает его. Примеров добавления товаров через скрипт на этом форуме я не нашёл, по ссылке http://doc.prestashop.com/dashboard.action - так же ничего не нашёл.  ???

DarinSr

Цитата: DarinSr от 14 октября 2015, 11:04:17
Using the PrestaShop Web Service

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