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

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

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

DarinSr

Цитата: Cyrix от 22 октября 2015, 16:05:18
Да как же мне без контроллеров создать товар с id=5 и с id_product=5 и если он существует, то как его изменить/заменить ???
Ответ на этот вопрос я вам написал в самом начале.
Если вы хотите создавать товары со своего комп., используйье webservice.
Если вы создаете товары через админку, используйте модули и контроллеры.
Других вариантов нет.


PrestaMan

Цитата: Cyrix от 22 октября 2015, 16:15:31
А как Вы писали?
$product->add(); добавляли или просто $product->save(); ?
Я использую
$product->add();
или
$product->update();
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Cyrix

Цитата: DarinSr от 22 октября 2015, 16:15:45
Цитата: Cyrix от 22 октября 2015, 16:05:18
Да как же мне без контроллеров создать товар с id=5 и с id_product=5 и если он существует, то как его изменить/заменить ???
Ответ на этот вопрос я вам написал в самом начале.
Если вы хотите создавать товары со своего комп., используйье webservice.
Если вы создаете товары через админку, используйте модули и контроллеры.
Других вариантов нет.

вебсервис говорите... я слышал, что он заводится только на windows 7 и иже с ними, а на XP работать не будет - так ли это?

Миколас

Цитата: Cyrix от 22 октября 2015, 14:47:03
Вы меня не слышите. Файл импорта товара csv содержит колонку "ID" в которой значение 5! При импорте этого файла, независимо от того есть такой товар с таким id или нет всё равно он создаётся с id=5 либо если есть такой товар, то просто переписывается. Как это сделать?
Попробывал тоже ид менять через импорт. Не работает. Как вы произвольный ид добавили? У меня ид по порядку. Нельзя перепрыгнуть и задать свой ид. Что нужно изменить?

Cyrix

Цитата: Nikola от 22 октября 2015, 16:23:01
Цитата: Cyrix от 22 октября 2015, 14:47:03
Вы меня не слышите. Файл импорта товара csv содержит колонку "ID" в которой значение 5! При импорте этого файла, независимо от того есть такой товар с таким id или нет всё равно он создаётся с id=5 либо если есть такой товар, то просто переписывается. Как это сделать?
Попробывал тоже ид менять через импорт. Не работает. Как вы произвольный ид добавили? У меня ид по порядку. Нельзя перепрыгнуть и задать свой ид. Что нужно изменить?

Я создал csv файл в котором указал нужный мне ID товара и он создался с тем самым ID что в файле csv! Последующие импорты ЭТОГО ЖЕ csv просто меняли товар с этим ID не создавая новый! Опция есть такая в админке при импорте товара "Использовать все номера ID" (версия престы 1.6) нужно переключить на "ДА" - попробуйте сами!

DarinSr

Цитата: Cyrix от 22 октября 2015, 16:21:37
вебсервис говорите... я слышал, что он заводится только на windows 7 и иже с ними, а на XP работать не будет - так ли это?
Может вы путаете webservice и webservere? Это разные понятия.

Ваша система вообще не играет роли. Точнее это ваша проблема, как и запуск php из командной строки. Prestashop отдельно, ваш комп. отдельно. Для взаимодействия Prestashop с любым пк под любой ос сущестует API Webservice. Это готовые функции, которые входят в ядро Prestashop. С их помощью вы можете управлять сайтов с удаленного сервера.

Cyrix

#126
Да не с удалённого сервера я управляю, с локального и через командную строку с php
Не получается у меня обратиться к встроенным функциям престы и создать нужный мне товар с нужным id. Средствами импорта из админки (визуально) руками всё получается, а программно никак.

Миколас

Цитата: Cyrix от 22 октября 2015, 16:26:41
Цитата: Nikola от 22 октября 2015, 16:23:01
Цитата: Cyrix от 22 октября 2015, 14:47:03
Вы меня не слышите. Файл импорта товара csv содержит колонку "ID" в которой значение 5! При импорте этого файла, независимо от того есть такой товар с таким id или нет всё равно он создаётся с id=5 либо если есть такой товар, то просто переписывается. Как это сделать?
Попробывал тоже ид менять через импорт. Не работает. Как вы произвольный ид добавили? У меня ид по порядку. Нельзя перепрыгнуть и задать свой ид. Что нужно изменить?

Я создал csv файл в котором указал нужный мне ID товара и он создался с тем самым ID что в файле csv! Последующие импорты ЭТОГО ЖЕ csv просто меняли товар с этим ID не создавая новый! Опция есть такая в админке при импорте товара "Использовать все номера ID" (версия престы 1.6) нужно переключить на "ДА" - попробуйте сами!
Пробывал. Меняет товары с одним ид, но не добавляет с разными.
У меня есть пробел между ид, товар с ид 485 после него идет 671, вот я и хотел добавить 486, 487 и так до 670.
По разному пробывал, переключал Использовать артикул товара в качестве ключа, Использовать все номера ID. Все равно товары добавляются после ид 671.
Вот когда включаешь "Удалить все товары перед импортом" и заливаешь полностью список товаров, тогда ид по порядку. Но начинает с ид 671.



Cyrix

Так вот я хочу изменить всего один товар с одним конкретным ID ПРОГРАММНО - точно так же как это делает AdminImportController но только из моего скрипта, который я запускаю на том же компьютере локально через командную строку php мой_скрипт.php

PrestaMan

Я делаю также как и вы, у меня в модуле пограммно меняется количество на складе. Модуль не стандарный, сделан для общего склада, при заказе проверка и изменние доступного количества до регистрации заказа.
Получаю ид товаров в заказе,  загружаю товары, меняю количестово и сохраняю
$product = new Product((int)$ids['id_product]);
$product->quantity = $product_quantity_new;
$product->update();

В базе данных изменения сохраняются, товары не дублируются.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Миколас

Пробывал залить в импорте csv файл с товаром ид 486. Отметил "Использовать все номера ID", нах номер у товара 671.
Может кто объяснит как свой ид подставит?

coder

Цитата: Nikola от 22 октября 2015, 16:57:26
Пробывал залить в импорте csv файл с товаром ид 486. Отметил "Использовать все номера ID", нах номер у товара 671.
Может кто объяснит как свой ид подставит?
Да никак, зачем вам это нужно? Связи между таблиц нарущить? Или делать нечего?

coder

Надаело твердить одно и тоже. Создаю отдельную тему Prestashop FAQ Как программно создать товар В ней соберу все что касается создания товара из своего скрипта. Протестирую разные способы, чтобы не было вопросов работает или нет.
Кто хочет добавить свой способ, присоединяйтесь.

Миколас

Цитата: coder от 22 октября 2015, 17:09:18
Надаело твердить одно и тоже. Создаю отдельную тему Prestashop FAQ Как программно создать товар В ней соберу все что касается создания товара из своего скрипта. Протестирую разные способы, чтобы не было вопросов работает или нет.
Кто хочет добавить свой способ, присоединяйтесь.
Это хорошо, но как ответ на мой вопрос, почему я не могу импортировать любое ид?
Cyrix пишите что без проблем, а у меня не проходит?

DarinSr

Цитата: Nikola от 22 октября 2015, 17:12:29
Это хорошо, но как ответ на мой вопрос, почему я не могу импортировать любое ид?
Cyrix пишите что без проблем, а у меня не проходит?
Поле id в таблице товара автоинкремент, поэтому товары сохраняются в таблице по порядку, последний id + 1.