Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Alexodiy

Новачок
  
  • Публікації

    47
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем Alexodiy

  1. Всем здарова. Ребят, подскажите как сделать быстрый заказ на странице корзины. На OC 1.5 неоднократно встречал, что в корзине присутствует быстрый заказ (см. скриншот), но под 2.1 не могу найти такой модуль. Быстрый заказ предполагает филд с вводом телефона, а сам заказ фиксируется в адаминке и при этом само поле отображается именно на странице в корзине, а не в товаре как в одном известном модуле "быстрый заказ".

    бфстрый заказ в корзине.jpg

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

  3. В 01.02.2016 в 18:42, gancsta сказал:

    Бесплатный вариант для версии 2.0.3 - проверено: 

    controller -> category.php

     

      Показать контент

    1. После: 

    
    
    $this->load->language('product/category');

    Добавить: 

    
    
    $this->load->language('product/product');
      Показать контент

    2. После: 

    
    
    $data['button_grid'] = $this->language->get('button_grid');

    Добавить:

    
    
    $data['text_select'] = $this->language->get('text_select');
      Показать контент

    3. Перед

    
    
    $data['products'][] = array(
    'product_id'  => $result['product_id'],
    Добавить 
      Показать контент
    
    
    
    // Function Products Options in category
    
    
    $json = array();
    
    
    if (isset($this->request->post['product_id'])) {
    $product_id = $this->request->post['product_id'];
    } else {
    $product_id = 0;
    }
    
    
    $this->load->model('catalog/product');
    
    
    $product_info = $this->model_catalog_product->getProduct($product_id);
    
    
    if ($product_info) {
    
    
    $options = array();
    
    
    foreach ($this->model_catalog_product->getProductOptions($product_info['product_id']) as $option) {
    $product_option_value_data = array();
    
    
    foreach ($option['product_option_value'] as $option_value) {
    if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
    if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) {
    $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false));
    } else {
    $price = false;
    }
    
    
    $product_option_value_data[] = array(
    'product_option_value_id' => $option_value['product_option_value_id'],
    'option_value_id'         => $option_value['option_value_id'],
    'name'                    => $option_value['name'],
    'image'                   => $this->model_tool_image->resize($option_value['image'], 50, 50),
    'price'                   => $price,
    'price_prefix'            => $option_value['price_prefix']
    );
    }
    }
    
    
    $options[] = array(
    'product_option_id'    => $option['product_option_id'],
    'option_value'         => $product_option_value_data,
    'option_id'            => $option['option_id'],
    'name'                 => $option['name'],
    'type'                 => $option['type'],
    'value'                => $option['value'],
    'required'             => $option['required']
    );
    
    
    $options['product_id'] = $product_info['product_id'];
    $options['name'] = $product_info['name'];
    } 
    
    
    if (!$json) {
    $json = $options;
    }
    }
    
    
    // END Function

     

     

    и в масив 

    
    
    $data['products'][] = array(

    Добавить

    
    
    'options'   => $this->model_catalog_product->getProductOptions($result['product_id']), // Add option to $result products.

    Для вывода необходимых опций в шаблоне нужно добавить.

    template->product->category.tpl

    В цикле  <?php foreach ($products as $product) { ?> в нужном Вам месте добавьте след.

      Показать контент
    
    
    <?php if ($product['options']) { ?>
    <?php foreach ($product['options'] as $option) { ?>
        <!-- Код опции, можно взять из product.tpl. Например для Select -->
                         <?php if ($option['type'] == 'select') { ?>
                <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>">
                  <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
                  <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control">
                    <option value=""><?php echo $text_select; ?></option>
                    <?php foreach ($option['product_option_value'] as $option_value) { ?>
                    <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                    <?php if ($option_value['price']) { ?>
                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                    <?php } ?>
                    </option>
                    <?php } ?>
                  </select>
                </div>
                <?php } ?>
    <!-- Конец кода опции Select -->
    <?php } ?>
    <?php } ?> 

     

    P.S.: ^ Данные метод лишь выводит необходимые опции, но не привязывает их к кнопке "Добавить в корзину". Для привязки к кнопке нужно изменять саму кнопку, например как в product.tpl, либо ковырять функцию add.cart в шаблоне категории. Дальше сами.

     


    Как сделать тоже самое, только в модуле рекомендуемые (в моем случае карусель рекомендуемых), вот код модуля

     

    <?php
    class ControllerModuleFeaturedcarusel extends Controller {
    	public function index($setting) {
    		static $module = 0;
    		$this->load->language('module/featuredcarusel');
    if ($setting['displaytitle'] == '1') {
    $data['heading_title'] = $setting['name'];
    } else {
    	$data['heading_title'] = false;
    }
    $data['class'] = $setting['class'];
    $data['items'] = $setting['items'];
    $data['prodview'] = $setting['prodview'];
    $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/owl.carousel.css');
    $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/featuredcarusel.css');
    $this->document->addScript('catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js');
    
    
    		$data['text_tax'] = $this->language->get('text_tax');
    		$data['text_more'] = $this->language->get('text_more');
    
    		$data['button_cart'] = $this->language->get('button_cart');
    		$data['button_wishlist'] = $this->language->get('button_wishlist');
    		$data['button_compare'] = $this->language->get('button_compare');
    
    		$this->load->model('catalog/product');
    
    		$this->load->model('tool/image');
    
    		$data['products'] = array();
    
    		if (!$setting['limit']) {
    			$setting['limit'] = 4;
    		}
    
    		if (!empty($setting['product'])) {
    			$products = array_slice($setting['product'], 0, (int)$setting['limit']);
    
    			foreach ($products as $product_id) {
    				$product_info = $this->model_catalog_product->getProduct($product_id);
    
    				if ($product_info) {
    					if ($product_info['image']) {
    						$image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']);
    					} else {
    						$image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']);
    					}
    
    					if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
    						$price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
    					} else {
    						$price = false;
    					}
    
    					if ((float)$product_info['special']) {
    						$special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
    					} else {
    						$special = false;
    					}
    
    					if ($this->config->get('config_tax')) {
    						$tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']);
    					} else {
    						$tax = false;
    					}
    
    					if ($this->config->get('config_review_status')) {
    						$rating = $product_info['rating'];
    					} else {
    						$rating = false;
    					}
    
    					$data['products'][] = array(
    						'product_id'  => $product_info['product_id'],
    						'thumb'       => $image,
    						'name'        => $product_info['name'],
    						'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
    						'price'       => $price,
    						'special'     => $special,
    						'tax'         => $tax,
    						'rating'      => $rating,
    						'href'        => $this->url->link('product/product', 'product_id=' . $product_info['product_id'])
    					);
    				}
    			}
    		}
    $data['module'] = $module++;
    		if ($data['products']) {
    			if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featuredcarusel.tpl')) {
    				return $this->load->view($this->config->get('config_template') . '/template/module/featuredcarusel.tpl', $data);
    			} else {
    				return $this->load->view('default/template/module/featuredcarusel.tpl', $data);
    			}
    		}
    	}
    }

     

  4. 15 часов назад, agefremov сказал:

    Или те, у которых кириллица в названиях и пробелы... Постоянно с этим проблемы возникают, лучше этого избегать.

    Совершенно верно, эти в том числе... Решил переносом строго в рамках панели вправления хостингом через .zip и соответственно распаковкой архива в нужном месте. Если у вас есть какое нибудь другое решение, подскажите пожалуйста, надо скилл повысить, а OpenCart сложности все время создает какие то...

  5. 3 часа назад, thentru сказал:

    рекурсивно на папки 750 или 755, на файлы 644 и проверить владельца

    Итак, рекурсивно на папки 750 или 755 - запилил. Перезалил картинки, все нормально заработало. Но некоторые картинки не отображаются, походу те, которые имеют расширение .jpeg

  6. 5 минут назад, thentru сказал:

    рекурсивно на папки 750 или 755, на файлы 644 и проверить владельца

    странно, в имагах везде стоит 777

  7. 4 минуты назад, thentru сказал:

    да, доступ запрещен

    777 надо выставить? не подскажите какие права должны быть на каких папках? я вроде везде где надо было поставил, в имагах тоже, не понятно

  8. 13 минут назад, thentru сказал:

    Что в обоих конфигах написано?
    config.php и admin/config.php

    В базе какие пути картинок у товаров?
    поле image у таблицы oc_product и таблица oc_product_image

    define('HTTP_SERVER', 'http://mama.alexodlw.beget.tech/');

    // HTTPS
    define('HTTPS_SERVER', 'http://mama.alexodlw.beget.tech/');

    // DIR
    define('DIR_APPLICATION', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/catalog/');
    define('DIR_SYSTEM', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/');
    define('DIR_IMAGE', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/image/');
    define('DIR_LANGUAGE', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/catalog/language/');
    define('DIR_TEMPLATE', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/catalog/view/theme/');
    define('DIR_CONFIG', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/config/');
    define('DIR_CACHE', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/storage/cache/');
    define('DIR_DOWNLOAD', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/storage/download/');
    define('DIR_LOGS', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/storage/logs/');
    define('DIR_MODIFICATION', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/storage/modification/');
    define('DIR_UPLOAD', '/home/a/alexodlw/mama.alexodlw.beget.tech/public_html/system/storage/upload/');
    -----------
    поле image у таблицы oc_product и таблица oc_product_image все хорошо (прикрепил скрин), вот примеры ссылок:
    catalog/MAMAPAPA_PROD_N/kokon_mamapapapro1.JPG

    catalog/QUUT/Quut_TRIPLET_inuse_ocean purple_water_sky.jpg
    тут все хорошо, учитывая, что в конфиге папка image, то по прямой ссылке переходит http://mama.alexodlw.beget.tech/image/catalog/QUUT/Quut_TRIPLET_inuse_ocean purple_water_sky.jpg , и еще... если я создаю новый товар и загружаю другие картинки, то пути не меняются в БД, то есть они аналогичные существующим залитым вручную картинками, но в этом случае картинка отображается. 

    Screenshot_13.png

  9. 26 минут назад, Bazilio сказал:

    Кэш обновляли?

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

  10. 51 минуту назад, Bazilio сказал:

    Проверьте пути к картинкам. На сайте они на правильный каталог ссылаются.

    да и на самом сайте пустой src <img src="" alt="Двухсторонний снуд EL BANDITO MULTICOOL, 3-9 лет" title="Двухсторонний снуд EL BANDITO MULTICOOL, 3-9 лет" class="img-responsive">

  11. 45 минут назад, Bazilio сказал:

    Проверьте пути к картинкам. На сайте они на правильный каталог ссылаются.

    вроде правильно... Если мы разберем андминку например, где битые имаги в загрузчике по скрину, то там ссылается к примеру так:

    /image/cache/catalog/3sprouts/!!!!1_crocodile_wall_organiser_brand_99_99__59755-100x100.jpg - это миниатюра 100х100, почему то она не сгенерировалась
    /image/cache/catalog/3sprouts/!!!!1_crocodile_wall_organiser_brand_99_99__59755.jpg - большая в папке cache, но в папке cache ее нету
    /image/catalog/3sprouts/!!!!1_crocodile_wall_organiser_brand_99_99__59755.jpg - это оригинал, он открывается если перейдем по прямой ссылке 

  12. Всем привет. В общем ситуация... мигрировал магазин с движка 1.5 на 2.1 с помощью модуля A-migration. Все перенеслось хорошо, за исключением картинок и тогда я перенес изображения вручную, загрузил папку data в image. Сначала CMS просто не видела изображений хотя они присутствовали в БД, после чего я переименовал папку data в catalog и картинки появились на сайте в директории image/catalog, но битые (прикрепил скрин). Так же, на страницах слетела кодировка.

    Менял права на папку image - 777 не помогло. К теме прикрепляю файл лога... Ребята, пожалуйста помогите разобраться в чем проблема

    error.txt

    битые картинки.jpg

    битые картинки в категориях.jpg

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.