Помощь Помогите передать значение опции товара из корзины в базу

george_vin

Постоялец
Регистрация
23 Дек 2012
Сообщения
90
Реакции
18
Доброго времени суток всем.
Установил модуль "Автоматическая обработка прайс-листов (Поставщики v8.2a)" - появилась возможность добавить SKU каждой опции, в базе появился столбец optsku....
Набросал XML что бы вывести этот SKU напротив каждой опции в карточке товара.

Теперь собственно вопрос. - Как это SKU передать в корзину, а потом еще и прикрутить в письма (админу и покупателю)

Нарыл что за передачу инфы о товаре в корзину отвечает скрипт в product.tpl

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


Подскажите знающие люди, как передать еще и optsku опции?
версия ОС - 2.0.3.1

столбец optsku в базе в order_option создал.

Спасибо всем неравнодушным.
 

george_vin

Постоялец
Регистрация
23 Дек 2012
Сообщения
90
Реакции
18
Немного поразмыслив. пришел к выводу, что скрипт в product.tpl все-же передает информацию об опции продукта, и ее id....
А вот контролер корзины решает, какую информацию тянуть из базы данных, если не прав - подправьте пожалуйста.
Так вот... Порывшись в коде контролера, нашел строки отвечающие за вывод значения опции
Скрытое содержимое доступно для зарегистрированных пользователей!

Так вот... Как подправить этот скрипт, чтоб он кроме типа опции и ее значения, выводил значение еще из одной ячейки в таблице опций базы данных.
Спасибо.
 

unfume

Редиска
Регистрация
20 Янв 2014
Сообщения
501
Реакции
227
кажись в system\library\cart.php надо копать
 

george_vin

Постоялец
Регистрация
23 Дек 2012
Сообщения
90
Реакции
18
После проделанной работы по правке кода, спасибо подсказке "unfume", получил желаемый результат - значение определенной ячейки базы, выводится в корзине как дополнительное значение опции.

Теперь стоит задача №2..... при оформлении заказа отправить и записать это значение в базу, в таблицу `oc_order_option` в созданную мной optsku.

Установлена корзина "simple"
Подскажите где править, в контроллере simple, или в стандартном checkout.php, или это вообще в моделе order.php ??
Спасибо всем неравнодушным.
 

unfume

Редиска
Регистрация
20 Янв 2014
Сообщения
501
Реакции
227
catalog\model\checkout\order.php
и вообще покопай в файлах order.*
у тебя потом возникнет вопрос с выводом в личный кабинет и отправкой на почту + в админке захочется видеть
 

george_vin

Постоялец
Регистрация
23 Дек 2012
Сообщения
90
Реакции
18
catalog\model\checkout\order.php
и вообще покопай в файлах order.*
у тебя потом возникнет вопрос с выводом в личный кабинет и отправкой на почту + в админке захочется видеть
Спасибо попробую найти, в админку уже вывел :), правда при условии что в ячейку значение вношу через PhpMyAdmin :).
теперь копаюсь как туда записывать не через PhpMyAdmin :D
 

unfume

Редиска
Регистрация
20 Янв 2014
Сообщения
501
Реакции
227
тебе нужно еще опции через админку чтоли добавить?
 

unfume

Редиска
Регистрация
20 Янв 2014
Сообщения
501
Реакции
227
На код vqmod чтобы в админке добавлять артикул в опциях к товару, код вроде рабочий, но поправь под себя его
Код:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
   
    <file name="admin/language/*/catalog/product.php">
   
        <operation error="log">
            <search position="before"><![CDATA[// Error]]></search>
            <add><![CDATA[$_['entry_sku_option_value']           = 'SKU:';
        ]]></add>
        </operation>
       
    </file>
   
    <file name="admin/controller/catalog/product.php">
   
        <operation error="log">
            <search position="after"><![CDATA[$this->data['entry_option_value'] = $this->language->get('entry_option_value');]]></search>
            <add><![CDATA[$this->data['entry_sku_option_value'] = $this->language->get('entry_sku_option_value');
        ]]></add>
        </operation>
       
        <operation error="log">
            <search position="after" offset="5" index="2"><![CDATA[$product_total = $this->model_catalog_product->getTotalProducts($data);]]></search>
            <add><![CDATA[
        $product_sku_options = array();
        $product_sku_options = $this->model_catalog_product->getProductOpt1Option($result['product_id']);
       
            ]]></add>
        </operation>
       
        <operation error="log">
            <search position="after"><![CDATA['selected'   => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']),]]></search>
            <add><![CDATA[
        'sku_option'      => $product_sku_options,
            ]]></add>
        </operation>
       
        <operation error="log">
            <search position="after"><![CDATA['points_prefix'           => $product_option_value['points_prefix'],]]></search>
            <add><![CDATA[
        'sku_option'           => $product_option_value['sku_option'],
            ]]></add>
        </operation>
       
    </file>
   
   
    <file name="admin/model/catalog/product.php">
        <operation error="log">
            <search position="iafter" index="1"><![CDATA["', weight_prefix = '" . $this->db->escape($product_option_value['weight_prefix']) .]]></search>
            <add><![CDATA[ "', sku_option = '" . $product_option_value['sku_option'] . ]]></add>
        </operation>
       
        <operation error="log">
            <search position="iafter" index="2"><![CDATA["', weight_prefix = '" . $this->db->escape($product_option_value['weight_prefix']) .]]></search>
            <add><![CDATA[ "', sku_option = '" . $product_option_value['sku_option'] . ]]></add>
        </operation>
       
        <operation error="log">
            <search position="after"><![CDATA['weight'                  => $product_option_value['weight'],]]></search>
            <add><![CDATA['sku_option'           => $product_option_value['sku_option'],
]]></add>
        </operation>
       
        <operation error="log">
            <search position="before"><![CDATA[public function getProductRewards($product_id) {]]></search>
            <add><![CDATA[
        public function getProductOpt1Option($product_id) {
            $query = $this->db->query("SELECT product_id, sku_option FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$product_id . "'");
       
            return $query->rows;
        }

            ]]></add>
        </operation>
    </file>
   
    <file name="admin/view/template/catalog/product_form.tpl">
        <operation error="log">
            <search position="after" index="1"><![CDATA[<td class="left"><?php echo $entry_option_value; ?></td>]]></search>
            <add><![CDATA[<td class="left"><?php echo $entry_sku_option_value; ?></td>
]]></add>
        </operation>
       
        <operation error="log">
            <search position="after"><![CDATA[<input type="hidden" name="product_option[<?php echo $option_row; ?>][product_option_value][<?php echo $option_value_row; ?>][product_option_value_id]" value="<?php echo $product_option_value['product_option_value_id']; ?>" /></td>]]></search>
            <add><![CDATA[
            <td class="right"><input type="date" name="product_option[<?php echo $option_row; ?>][product_option_value][<?php echo $option_value_row; ?>][opt4_option]" value="<?php echo $product_option_value['sku_option']; ?>" size="5" /></td>
            ]]></add>
        </operation>
       
        <operation error="log">
            <search position="after"><![CDATA[html += '    </select><input type="hidden" name="product_option[' + option_row + '][product_option_value][' + option_value_row + '][product_option_value_id]" value="" /></td>';]]></search>
            <add><![CDATA[
            html += '    <td class="right"><input type="date" name="product_option[' + option_row + '][product_option_value][' + option_value_row + '][sku_option]" value="" size="3" /></td>';]]></add>
        </operation>
    </file>
   
   
   
</modification>
 

unfume

Редиска
Регистрация
20 Янв 2014
Сообщения
501
Реакции
227
соот-но sku_option на название своей таблицы меняй
 
Сверху