2013-09-18 2 views
1

У меня есть приложение, которое является T-Shirt customizer, который отлично работает на нем. Но мне нужно интегрировать его в prestashop. Поэтому, после того как пользователь использует приложение для настройки футболки, он должен нажать «Добавить в корзину», и продукт будет добавлен в корзину с пользовательской ценой и описанием.Prestashop Product customizer

Что мне нужно для ввода этого вывода в корзину PrestaShop в качестве пользовательского продукта со всей пользовательской информацией, а также сгенерированное пользовательское изображение продукта для отображения рядом с деталями в корзине.

Итак, у меня есть сделанный заказ, я уже сделал собственный модуль и страницу для Prestashop, но я не знаю, как его интегрировать с тележкой. Мои знания preashop ограничены.

Как я могу это сделать?

ответ

0

Я сделал что-то подобное. Вот как я справился с этим.

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

Prestashop предлагает индивидуальные настройки для каждого продукта. Я скрываю его от клиента на странице prodct, но я использую его для хранения идентификатора настройки. Таким образом, вы можете увидеть в корзине идентификатор настройки для каждого настроенного продукта.

Я использовал метод _addCustomization в объекте Cart для хранения идентификатора настройки. Вот небольшой пример:

$context = Context::getContext(); 
$result = $context->cart->_addCustomization($id_product, $id_product_attribute, 1, 1, $id_customization, 1); 

Надеюсь, что я достаточно ясен.

Вам это помогает?

+0

Мне удалось сделать это по-другому, но у меня есть вопрос: как вы получаете $ id_customization? – Bogdan

+0

Я не знаю, как работает ваш пользовательский модуль. Но мой, каждая настройка определяется идентификатором. Я использовал этот идентификатор, чтобы найти информацию о настройке, как только будет сделан заказ. Но как вы решили свою проблему? – aschaeffer

+0

Я сделал что-то подобное ..переопределены в CartController и непосредственно перед добавлением продукта в корзину я использую: $ this-> context-> cart-> addTextFieldToProduct ($ this-> id_product, $ г [ "id_customization_field"], \t \t \t \t \t \t \t \t Продукт :: CUSTOMIZE_TEXTFIELD, Tools :: getValue ('product_description')); – Bogdan

2

При использовании этого кода в CartController.php

$this->context->cart->addTextFieldToProduct($this->id_product, $r["id_customization_field"], Product::CUSTOMIZE_TEXTFIELD, Tools::getValue('product_description')); 

тогда вы только сохранить пользовательские-описание в поле настройки. Но как вы меняете цену за эту настройку?

Возможно, вам необходимо переопределить getPriceStatic метод в product.php файл, чтобы пересчитать цену. Но есть и еще одна проблема: что, если клиент добавит тот же товар в корзину, но с другой настройкой, а также по другой цене?

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

+0

так как я могу это исправить? – twoface88

+0

@Pedram ваша роль создает настоящую проблему в PrestaShop. Для этого я открыл [новую тему] (https://stackoverflow.com/q/45738647/1240123). Если бы вы могли взглянуть на это, было бы замечательно. – Matt

Смежные вопросы