admin Опубликовано 19 марта, 2022 Поделиться Опубликовано 19 марта, 2022 В этом посте мы расскажем вам о трех способах, которые с легкостью помогут вам изменить карточку товара: 1. Добавление описания для опции 2. Добавление количества на складе для опций продукта 3. Удаление цены в опциях Предложенная реализация придаст вашей странице продукта более четкий, информативный и аккуратный вид, который, несомненно, произведет положительное впечатление на ваших клиентов. Добавление описания для опции Добавление описания к опциям продукта является хорошим способом для того, чтобы дать своим клиентам четкое представление о различных видах продукции, которую может предложить ваш интернет-магазин. Обеспечение клиентов информацией - это всегда хорошая идея, потому что это даст им более глубокое понимание того, что ожидать, когда они закажут вашу продукцию. Это, с другой стороны, приведет к увеличению доверия и уверенности в вашем магазине. Ниже мы покажем вам, как можно реализовать эту функцию в простой и быстрой форме. Создание OCMod файла Процедура начинается с создания ocmod файла, используя любой текстовый редактор. Сохраните файл как namebyyourchoice.ocmod.xml и не забывайте, что расширение ocmod.xml является обязательным. <modification> <name>Add description to product options</name> <version>1.0</version> <link></link> <author></author> <code>add_description_to_product_options</code> <file path="admin/language/*/catalog/option.php"> <operation> <search><![CDATA[$_['entry_sort_order'] = 'Sort Order';]]></search> <add position="after"><![CDATA[$_['entry_description'] = 'Description:';]]></add> </operation> </file> <file path="admin/controller/catalog/option.php"> <operation> <search><![CDATA[$data['entry_sort_order'] = $this->language->get('entry_sort_order');]]></search> <add position="after"><![CDATA[ $data['entry_description'] = $this->language->get('entry_description'); ]]></add> </operation> <operation> <search><![CDATA[public function index() {]]></search> <add position="after"><![CDATA[ $query = $this->db->query("DESC " . DB_PREFIX . "option_value_description description"); if (!$query->num_rows) { $this->db->query("ALTER TABLE " . DB_PREFIX . "option_value_description ADD description TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL"); } ]]></add> </operation> </file> <file path="admin/model/catalog/option.php"> <operation> <search><![CDATA[ $this->db->query("INSERT INTO " . DB_PREFIX . "option_value_description SET option_value_id = '" . (int)$option_value_id . "', language_id = '" . (int)$language_id . "', option_id = '" . (int)$option_id . "', name = '" . $this->db->escape($option_value_description['name']) . "'"); ]]></search> <add position="replace"><![CDATA[ $this->db->query("INSERT INTO " . DB_PREFIX . "option_value_description SET option_value_id = '" . (int)$option_value_id . "', language_id = '" . (int)$language_id . "', option_id = '" . (int)$option_id . "', name = '" . $this->db->escape($option_value_description['name']) . "', description = '" . $this->db->escape($option_value_description['description']) . "'"); ]]></add> </operation> <operation> <search><![CDATA[ $option_value_description_data[$option_value_description['language_id']] = array('name' => $option_value_description['name']); ]]></search> <add position="replace"><![CDATA[ $option_value_description_data[$option_value_description['language_id']] = array('name' => $option_value_description['name'], 'description' => $option_value_description['description']); ]]></add> </operation> </file> <file path="admin/view/template/catalog/option_form.tpl"> <operation> <search><![CDATA[ <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_sort_order; ?></label> ]]></search> <add position="before"><![CDATA[ <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_description; ?></label> ]]></add> </operation> <operation> <search><![CDATA[ <td colspan="3"></td> ]]></search> <add position="replace"><![CDATA[ <td colspan="4"></td> ]]></add> </operation> <operation> <search><![CDATA[ <td class="text-left required"><?php echo $entry_option_value; ?></td> ]]></search> <add position="after"><![CDATA[ <td class="text-left">Option Value Description</td> ]]></add> </operation> <operation> <search><![CDATA[ <td class="text-left required"><?php echo $entry_option_value; ?></td> ]]></search> <add position="replace"><![CDATA[ <td class="text-left required" style="width:30%;"><?php echo $entry_option_value; ?></td> ]]></add> </operation> <operation> <search><![CDATA[ <?php echo $footer; ?> ]]></search> <add position="after"><![CDATA[ <script type="text/javascript"> <?php foreach ($languages as $language) { ?> $("#description-<?php echo $option_value_row; ?>-<?php echo $language['language_id']; ?>").summernote({height: 100}); <?php } ?> </script> ]]></add> </operation> <operation> <search><![CDATA[ <td class="text-left"><a href="" id="thumb-image<?php echo $option_value_row; ?>" data-toggle="image" class="img-thumbnail"><img src="<?php echo $option_value['thumb']; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a> ]]></search> <add position="before"><![CDATA[ <!--ProductOption Description Start--> <td class="text-left"> <div class="tabbable"> <div class="tab-navigation"> <ul class="nav nav-tabs mainMenuTabs"> <?php $class="active"; foreach ($languages as $language) { ?> <li class="<?php echo $class; ?>"><a href="#tab-<?php echo $language['code']; ?>" data-toggle="tab"><img src="view/image/flags/<?php echo $language['image']; ?>"/></a></li> <?php $class="";}?> </ul> </div> <div class="tab-content"> <?php $class=" active"; foreach ($languages as $language) { ?> <div id="tab-<?php echo $language['code']; ?>" language-id="<?php echo $language['language_id']; ?>" class="row-fluid tab-pane<?php echo $class; ?> language"><div> <textarea language-id="<?php echo $language['language_id']; ?>" name="option_value[<?php echo $option_value_row; ?>][option_value_description][<?php echo $language['language_id']; ?>][description]" id="description-<?php echo $option_value_row; ?>-<?php echo $language['language_id']; ?>"><?php echo isset($option_value['option_value_description'][$language['language_id']]) ? $option_value['option_value_description'][$language['language_id']]['description'] : ''; ?></textarea> <?php $class="";} ?> </div> </div> </td> <script type="text/javascript"> <?php foreach ($languages as $language) { ?> $("#description-<?php echo $option_value_row; ?>-<?php echo $language['language_id']; ?>").summernote({height: 100}); <?php } ?> </script> <!--ProductOption Description End--> ]]></add> </operation> <operation> <search><![CDATA[ html += ' <td class="text-left"><a href="" id="thumb-image' + option_value_row + '" data-toggle="image" class="img-thumbnail"><img src="<?php echo $placeholder; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a><input type="hidden" name="option_value[' + option_value_row + '][image]" value="" id="input-image' + option_value_row + '" /></td>'; ]]></search> <add position="before"><![CDATA[ html += '<td class="text-left">'; html += ' <div class="tabbable">'; html += ' <div class="tab-navigation">'; html += ' <ul class="nav nav-tabs mainMenuTabs">'; <?php $class="active"; foreach ($languages as $language) { ?> html += ' <li class="<?php echo $class; ?>"><a href="#tab-<?php echo $language['code']; ?>" data-toggle="tab"><img src="view/image/flags/<?php echo $language['image']; ?>"/></a></li>'; <?php $class="";}?> html += ' </ul>'; html += ' </div>'; html += ' <div class="tab-content">' <?php $class="active"; foreach ($languages as $language) { ?> html += ' <div id="tab-<?php echo $language['code']; ?>" language-id="<?php echo $language['language_id']; ?>" class="row-fluid tab-pane<?php echo $class; ?> language"><div>'; html += ' <textarea language-id="<?php echo $language['language_id']; ?>" name="option_value[<?php echo $option_value_row; ?>][option_value_description][<?php echo $language['language_id']; ?>][description]" id="description-<?php echo $option_value_row; ?>-<?php echo $language['language_id']; ?>"><?php echo isset($option_value['option_value_description'][$language['language_id']]) ? $option_value['option_value_description'][$language['language_id']]['description'] : ''; ?></textarea>'; <?php $class="";} ?> html += ' </div>'; html += ' </div>'; html += '</td>'; ]]></add> </operation> </file> <file path="catalog/controller/product/product.php"> <operation> <search><![CDATA[$data['text_tags'] = $this->language->get('text_tags');]]></search> <add position="after"><![CDATA[ $data['text_view'] = $this->language->get('text_view'); ]]></add> </operation> <operation> <search><![CDATA['name' => $option_value['name'],]]></search> <add position="after"><![CDATA[ 'description' => html_entity_decode($option_value['description'], ENT_QUOTES, 'UTF-8'), ]]></add> </operation> </file> <file path="catalog/language/*/product/product.php"> <operation> <search><![CDATA[$_['text_error'] = 'Product not found!';]]></search> <add position="after"><![CDATA[ $_['text_view'] = 'view more'; ]]></add> </operation> </file> <file path="catalog/model/catalog/product.php"> <operation> <search><![CDATA['name' => $product_option_value['name'],]]></search> <add position="after"><![CDATA[ 'description' => (isset($product_option_value['description']) ? $product_option_value['description'] : ''), ]]></add> </operation> </file> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search><![CDATA[(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)]]></search> <add position="after"><![CDATA[ <?php } ?> <?php if(isset($option_value) && $option_value['description']) { ?> <a class="view" id="<?php echo $option_value['option_value_id']; ?>"> View more </a> <div id="desc_<?php echo $option_value['option_value_id']; ?>" style="display:none"> <?php echo $option_value['description'] ?> </div> ]]></add> </operation> <operation> <search><![CDATA[ <?php echo $footer; ?> ]]></search> <add position="before"><![CDATA[ <script> $(document).ready(function(){ $('.view').hover(function(){ $("#desc_".concat(this.id)).fadeIn(500) },function(){ $("#desc_".concat(this.id)).fadeOut(500) }) }); </script> ]]></add> </operation> </file> </modification> Добавление количества на складе для опций продукта В дополнение к описанию параметров продукта, добавление количества товара к вашей продукции также увеличивает количество информации о продукции доступной для Ваших клиентов. Кроме того, эта реализация может иметь положительное влияние на показатели переходов. А ограниченный объем количества создает ощущение срочности, уменьшает колебания и, таким образом, повышает готовность к покупке. <modification> <name>Add product quantity to product options</name> <version>1.0</version> <link></link> <author></author> <code>quantity_to_product_options</code> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search><![CDATA[ (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)]]></search> <add position="after"><![CDATA[ <?php } if (isset($option_value['quantity']) && $option_value['quantity'] > 10) { ?> [<?php echo $option_value['quantity']; ?> <?php echo $text_pcs; ?>] <?php } elseif ($option_value['quantity']) { ?> [<span style="color: #F00"><?php echo str_replace('{quant}', $option_value['quantity'], $text_only); ?></span>] ]]></add> </operation> </file> <file path="catalog/controller/product/product.php"> <operation> <search><![CDATA['name' => $option_value['name'],]]></search> <add position="after"><![CDATA['quantity' => $option_value['quantity'],]]></add> </operation> <operation> <search><![CDATA[$data['entry_qty'] = $this->language->get('entry_qty');]]></search> <add position="after"><![CDATA[ $data['text_pcs'] = $this->language->get('text_pcs'); $data['text_only'] = $this->language->get('text_only'); ]]></add> </operation> </file> <file path="catalog/language/*/product/product.php"> <operation> <search><![CDATA[$_['entry_qty'] = 'Qty';]]></search> <add position="after"><![CDATA[ $_['text_pcs'] = 'pcs.'; $_['text_only'] = ' Only {quant} pcs. left '; ]]></add> </operation> </file> </modification> Изменение цвета Когда наличие товара - менее 10 штук, цвет количества становится красным. Это может быть изменено путем добавления цвета в следующем фрагменте кода: <span style="color: #F00"><?php echo str_replace('{quant}', $option_value['quantity'],$text_only); ?></span> Удаление цены в опциях Еще одно небольшое изменение - это удаление цены у опции товара. Для большинства розничных продавцов эта функция весьма позитивна. Однако, для некоторых покупателей эта функция нежелательна, ведь когда они делают заказ и выбирают опцию товара - в корзине видят цену выше основной. Тем не менее, если вы готовы "принять этот риск», необходимо следовать ранее упомянутым шагам и использовать следующий код: <modification> <name>Remove option price</name> <version>1.0</version> <link></link> <author></author> <code>remove_option_price</code> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search><![CDATA[<?php foreach ($option['product_option_value'] as $option_value) { ?>]]></search> <add position="after"><![CDATA[<?php unset($option_value['price']); $option_value['price'] ="";?>]]> </add> </operation> </file> </modification> Вывод: Конечный результат, который вы получите после применения трех модификаций, должен быть похож на этот: Мы надеемся, что вы будете применять данные этапы для настройки ваших вариантов продукции. Они являются полезным и эффективным способом для достижения конечной цели - удовлетворения потребностей ваших клиентов и увеличения продаж. prod_options_add_descr.xml prod_options_add_quantity.xml prod_options_remove_price.xml 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.