Post by RicardoMoutinho » Sat May 07, 2022 3:13 am

Hello my friends, im running OC 3.0.2.0

I need an extra field in the admin -> catalog -> product (after location) called Reference

In the Admin -> catalog -> products i want to display this column after Model

I need it to be included in filter too.

How much for this mod? Its urgent.

Thank you in advance

(Sorry for the bad forum post, please move it to the right forum)
Last edited by RicardoMoutinho on Sun May 08, 2022 1:39 am, edited 1 time in total.

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 4:07 am

no need to pay - I have done it.
I will upload it here for you shortly

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 4:27 am

mikeinterserv wrote:
Sat May 07, 2022 4:07 am
no need to pay - I have done it.
I will upload it here for you shortly
No way, thank you so much man..really appreciated....

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by straightlight » Sat May 07, 2022 4:31 am

Yes, a simple Event Trigger might be needed here. Would be a great e.g though.

Dedication and passion goes to those who are able to push and merge a project.

Regards,
Straightlight
Programmer / Opencart Tester


Legendary Member

Posts

Joined
Mon Nov 14, 2011 11:38 pm
Location - Canada, ON

Post by RicardoMoutinho » Sat May 07, 2022 4:48 am

straightlight wrote:
Sat May 07, 2022 4:31 am
Yes, a simple Event Trigger might be needed here. Would be a great e.g though.
8) Thank you.... :crazy: I dont even know what you are saying, lol....hahaha

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 5:22 am

OK try this
Its a standard OCmod.
After install remember to refresh modifications
Any problems let me know.
I only gave it a quick test.
I will make an event version like suggested by straightlight shortly.
There is an error when filtering I will fix it and re upload it.
.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 5:26 am

mikeinterserv wrote:
Sat May 07, 2022 5:22 am
OK try this
Its a standard OCmod.
After install remember to refresh modifications
Any problems let me know.
I only gave it a quick test.
I will make an event version like suggested by straightlight shortly.
.
It throws a 500 after refresh modification and go catalog -> products

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 5:59 am

I know
This is OK now, sorry.
.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 6:05 am

mikeinterserv wrote:
Sat May 07, 2022 5:59 am
I know
This is OK now, sorry.
.
Now it doesnt install anything..... ??? ??? ??? ??? ???

And i see a "leftover" piece of code on line 37

Code: Select all

        var filter_price =
Last edited by RicardoMoutinho on Sat May 07, 2022 6:07 am, edited 1 time in total.

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 6:06 am

Clear modifications and delete from install page list install history
Then re-install and refresh modifications
I just tested it on 2 version of OC
your modifications log should look like this.

Code: Select all

MOD: Admin MPN

FILE: admin/view/template/catalog/product_list.twig
CODE: <div class="form-group">
LINE: 51
CODE: <td class="text-left">{% if sort == 'p.status' %}
LINE: 156
CODE: <span class="label label-success">{{ product.quantity }}</span> {% endif %}</td>
LINE: 179
CODE: var filter_price =
LINE: 224

FILE: admin/controller/catalog/product.php
CODE: 'model'      => $result['model'],
LINE: 366
LINE: 1322
CODE: get['filter_model'], ENT_QUOTES, 'UTF-8'));
LINE: 37
LINE: 92
LINE: 149
LINE: 206
LINE: 298
LINE: 422
LINE: 464
LINE: 556
CODE: protected function getList() {
LINE: 244
CODE: 'filter_model'	  => $filter_model,
LINE: 347

FILE: admin/language/en-gb/catalog/product.php
CODE: $_['column_model']           = 'Model';
LINE: 24

FILE: admin/model/catalog/product.php
CODE: if (!empty($data['filter_price'])) {
LINE: 375
----------------------------------------------------------------
Last edited by mikeinterserv on Sat May 07, 2022 6:09 am, edited 1 time in total.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 6:09 am

Nope, nothing....i deleted all installs, then refreshed and cleared modifications, then re-installed it....and nothing shows anywhere

Im running 3.0.2.0 with an OC theme

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 6:12 am

Post your log for admin mpn
like above.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 6:13 am

MOD: Admin MPN

FILE: admin/view/template/catalog/product_list.twig
CODE: <div class="form-group">
NOT FOUND - OPERATIONS ABORTED!

FILE: admin/controller/catalog/product.php
CODE: 'model' => $result['model'],
LINE: 365
LINE: 1315
CODE: get['filter_model'], ENT_QUOTES, 'UTF-8'));
LINE: 36
LINE: 91
LINE: 148
LINE: 205
LINE: 297
LINE: 421
LINE: 463
LINE: 555
CODE: protected function getList() {
LINE: 243
CODE: 'filter_model' => $filter_model,
LINE: 346

FILE: admin/language/en-gb/catalog/product.php
CODE: $_['column_model'] = 'Model';
LINE: 23

FILE: admin/model/catalog/product.php
CODE: if (!empty($data['filter_price'])) {
LINE: 375
----------------------------------------------------------------

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by RicardoMoutinho » Sat May 07, 2022 6:15 am

Can it be because of line :

Mine :

Code: Select all

<div class="form-group col-md-6">
Yours :

Code: Select all

<div class="form-group ">

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 6:16 am

OK thats it I will change it

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by mikeinterserv » Sat May 07, 2022 6:19 am

OK try now
Last edited by mikeinterserv on Sat May 07, 2022 6:25 am, edited 1 time in total.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 6:22 am

Same..... :crazy: :crazy: :crazy:

Code: Select all

MOD: Admin MPN

FILE: admin/view/template/catalog/product_list.twig
CODE: <div class="form-group" class="form-group col-md-6">
NOT FOUND - OPERATIONS ABORTED!

FILE: admin/controller/catalog/product.php
CODE: 'model'      => $result['model'],
LINE: 365
LINE: 1315
CODE: get['filter_model'], ENT_QUOTES, 'UTF-8'));
LINE: 36
LINE: 91
LINE: 148
LINE: 205
LINE: 297
LINE: 421
LINE: 463
LINE: 555
CODE: protected function getList() {
LINE: 243
CODE: 'filter_model'	  => $filter_model,
LINE: 346

FILE: admin/language/en-gb/catalog/product.php
CODE: $_['column_model']           = 'Model';
LINE: 23

FILE: admin/model/catalog/product.php
CODE: if (!empty($data['filter_price'])) {
LINE: 375
----------------------------------------------------------------

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 6:23 am

I messed that up - :-)
I am sure you'll be ok this time
Last edited by mikeinterserv on Sat May 07, 2022 6:24 am, edited 1 time in total.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales

Post by RicardoMoutinho » Sat May 07, 2022 6:24 am

My product_list.twig

Code: Select all

{{ header }}{{ column_left }}
<div id="content">
  <div class="page-header">
    <div class="container-fluid">
      <div class="pull-right">
        <button type="button" data-toggle="tooltip" title="{{ button_filter }}" onclick="$('#filter-product').toggleClass('hidden-sm hidden-xs');" class="btn btn-default hidden-md hidden-lg"><i class="fa fa-filter"></i></button>
        <a href="{{ add }}" data-toggle="tooltip" title="{{ button_add }}" class="btn btn-primary"><i class="fa fa-plus"></i></a>
        <button type="submit" form="form-product" formaction="{{ copy }}" data-toggle="tooltip" title="{{ button_copy }}" class="btn btn-default"><i class="fa fa-copy"></i></button>
        <button type="button" form="form-product" formaction="{{ delete }}" data-toggle="tooltip" title="{{ button_delete }}" class="btn btn-danger" onclick="confirm('{{ text_confirm }}') ? $('#form-product').submit() : false;"><i class="fa fa-trash-o"></i></button>
      </div>
      <h1>{{ heading_title }}</h1>
      <ul class="breadcrumb">
        {% for breadcrumb in breadcrumbs %}
        <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
        {% endfor %}
      </ul>
    </div>
  </div>
  <div class="container-fluid">{% if error_warning %}
    <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
      <button type="button" class="close" data-dismiss="alert">&times;</button>
    </div>
    {% endif %}
    {% if success %}
    <div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> {{ success }}
      <button type="button" class="close" data-dismiss="alert">&times;</button>
    </div>
    {% endif %}
    <div class="row">
      <div id="filter-product" class="col-md-12">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h3 class="panel-title"><i class="fa fa-filter"></i> {{ text_filter }}</h3>
          </div>
          <div class="panel-body">
            <div class="form-group col-md-4">
              <label class="control-label" for="input-name">{{ entry_name }}</label>
              <input type="text" name="filter_name" value="{{ filter_name }}" placeholder="{{ entry_name }}" id="input-name" class="form-control" />
            </div>
            <div class="form-group col-md-4">
              <label class="control-label" for="input-model">{{ entry_model }}</label>
              <input type="text" name="filter_model" value="{{ filter_model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control" />
            </div>
            <div class="form-group col-md-4">
              <label class="control-label" for="input-price">{{ entry_price }}</label>
              <input type="text" name="filter_price" value="{{ filter_price }}" placeholder="{{ entry_price }}" id="input-price" class="form-control" />
            </div>
            <div class="form-group col-md-6">
              <label class="control-label" for="input-quantity">{{ entry_quantity }}</label>
              <input type="text" name="filter_quantity" value="{{ filter_quantity }}" placeholder="{{ entry_quantity }}" id="input-quantity" class="form-control" />
            </div>
            <div class="form-group col-md-6">
              <label class="control-label" for="input-status">{{ entry_status }}</label>
              <select name="filter_status" id="input-status" class="form-control">
                <option value=""></option>
                
                
                
                  
                

                  {% if filter_status == '1' %}

                
                
                  
                
                
                <option value="1" selected="selected">{{ text_enabled }}</option>
                
                
                
                  
                

                  {% else %}

                
                
                  
                
                
                <option value="1">{{ text_enabled }}</option>
                
                
                
                  
                

                  {% endif %}
                  {% if filter_status == '0' %}

                
                
                  
                
                
                <option value="0" selected="selected">{{ text_disabled }}</option>
                
                
                
                  
                

                  {% else %}

                
                
                  
                
                
                <option value="0">{{ text_disabled }}</option>
                
                
                
                  
                

                  {% endif %}


              
              
                
              
              
              </select>
            </div>
            <div class="form-group text-right">
              <button type="button" id="button-filter" class="btn btn-default"><i class="fa fa-filter"></i> {{ button_filter }}</button>
            </div>
          </div>
        </div>
      </div>
      <div class="col-md-12">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h3 class="panel-title"><i class="fa fa-list"></i> {{ text_list }}</h3>
          </div>
          <div class="panel-body">
            <form action="{{ delete }}" method="post" enctype="multipart/form-data" id="form-product">
              <div class="table-responsive">
                <table class="table table-bordered table-hover">
                  <thead>
                    <tr>
                      <td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td>
                      <td class="text-center">{{ column_image }}</td>
                      <td class="text-left">{% if sort == 'pd.name' %} <a href="{{ sort_name }}" class="{{ order|lower }}">{{ column_name }}</a> {% else %} <a href="{{ sort_name }}">{{ column_name }}</a> {% endif %}</td>
                      <td class="text-left">{% if sort == 'p.model' %} <a href="{{ sort_model }}" class="{{ order|lower }}">{{ column_model }}</a> {% else %} <a href="{{ sort_model }}">{{ column_model }}</a> {% endif %}</td>
                      <td class="text-right">{% if sort == 'p.price' %} <a href="{{ sort_price }}" class="{{ order|lower }}">{{ column_price }}</a> {% else %} <a href="{{ sort_price }}">{{ column_price }}</a> {% endif %}</td>
                      <td class="text-right">{% if sort == 'p.quantity' %} <a href="{{ sort_quantity }}" class="{{ order|lower }}">{{ column_quantity }}</a> {% else %} <a href="{{ sort_quantity }}">{{ column_quantity }}</a> {% endif %}</td>
                      <td class="text-left">{% if sort == 'p.status' %} <a href="{{ sort_status }}" class="{{ order|lower }}">{{ column_status }}</a> {% else %} <a href="{{ sort_status }}">{{ column_status }}</a> {% endif %}</td>
                      <td class="text-right">{{ column_action }}</td>
                    </tr>
                  </thead>
                  <tbody>
                  
                  {% if products %}
                  {% for product in products %}
                  <tr>
                    <td class="text-center">{% if product.product_id in selected %}
                      <input type="checkbox" name="selected[]" value="{{ product.product_id }}" checked="checked" />
                      {% else %}
                      <input type="checkbox" name="selected[]" value="{{ product.product_id }}" />
                      {% endif %}</td>
                    <td class="text-center">{% if product.image %} <img src="{{ product.image }}" alt="{{ product.name }}" class="img-thumbnail" /> {% else %} <span class="img-thumbnail list"><i class="fa fa-camera fa-2x"></i></span> {% endif %}</td>
                    <td class="text-left">{{ product.name }}</td>
                    <td class="text-left">{{ product.model }}</td>
                    <td class="text-right">{% if product.special %} <span style="text-decoration: line-through;">{{ product.price }}</span><br/>
                      <div class="text-danger">{{ product.special }}</div>
                      {% else %}
                      {{ product.price }}
                      {% endif %}</td>
                    <td class="text-right">{% if product.quantity <= 0 %} <span class="label label-warning">{{ product.quantity }}</span> {% elseif product.quantity <= 5 %} <span class="label label-danger">{{ product.quantity }}</span> {% else %} <span class="label label-success">{{ product.quantity }}</span> {% endif %}</td>
                    <td class="text-left">{{ product.status }}</td>
                    <td class="text-right"><a href="{{ product.edit }}" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
                  </tr>
                  {% endfor %}
                  {% else %}
                  <tr>
                    <td class="text-center" colspan="8">{{ text_no_results }}</td>
                  </tr>
                  {% endif %}
                    </tbody>
                  
                </table>
              </div>
            </form>
            <div class="row">
              <div class="col-sm-6 text-left">{{ pagination }}</div>
              <div class="col-sm-6 text-right">{{ results }}</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <script type="text/javascript"><!--
$('#button-filter').on('click', function() {
	var url = '';

	var filter_name = $('input[name=\'filter_name\']').val();

	if (filter_name) {
		url += '&filter_name=' + encodeURIComponent(filter_name);
	}

	var filter_model = $('input[name=\'filter_model\']').val();

	if (filter_model) {
		url += '&filter_model=' + encodeURIComponent(filter_model);
	}

	var filter_price = $('input[name=\'filter_price\']').val();

	if (filter_price) {
		url += '&filter_price=' + encodeURIComponent(filter_price);
	}

	var filter_quantity = $('input[name=\'filter_quantity\']').val();

	if (filter_quantity) {
		url += '&filter_quantity=' + encodeURIComponent(filter_quantity);
	}

	var filter_status = $('select[name=\'filter_status\']').val();

	if (filter_status !== '') {
		url += '&filter_status=' + encodeURIComponent(filter_status);
	}

	location = 'index.php?route=catalog/product&user_token={{ user_token }}' + url;
});
//--></script> 
  <script type="text/javascript"><!--
// IE and Edge fix!
$('button[form=\'form-product\']').on('click', function(e) {
	$('#form-product').attr('action', $(this).attr('formaction'));
});
  
$('input[name=\'filter_name\']').autocomplete({
	'source': function(request, response) {
		$.ajax({
			url: 'index.php?route=catalog/product/autocomplete&user_token={{ user_token }}&filter_name=' +  encodeURIComponent(request),
			dataType: 'json',
			success: function(json) {
				response($.map(json, function(item) {
					return {
						label: item['name'],
						value: item['product_id']
					}
				}));
			}
		});
	},
	'select': function(item) {
		$('input[name=\'filter_name\']').val(item['label']);
	}
});

$('input[name=\'filter_model\']').autocomplete({
	'source': function(request, response) {
		$.ajax({
			url: 'index.php?route=catalog/product/autocomplete&user_token={{ user_token }}&filter_model=' +  encodeURIComponent(request),
			dataType: 'json',
			success: function(json) {
				response($.map(json, function(item) {
					return {
						label: item['model'],
						value: item['product_id']
					}
				}));
			}
		});
	},
	'select': function(item) {
		$('input[name=\'filter_model\']').val(item['label']);
	}
});
//--></script></div>
{{ footer }} 

Active Member

Posts

Joined
Sat Aug 04, 2018 4:36 am

Post by mikeinterserv » Sat May 07, 2022 6:26 am

Ok this should work for that.

Active Member

Posts

Joined
Thu May 28, 2020 6:55 am
Location - Wales
Who is online

Users browsing this forum: Amazon [Bot] and 48 guests