add empik module
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2015 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2015 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Location: ../");
|
||||
exit;
|
||||
@@ -0,0 +1,158 @@
|
||||
{#**
|
||||
* 2007-2018 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/OSL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*#}
|
||||
<tbody
|
||||
{% if activate_drag_and_drop %}class="sortable"{% endif %}
|
||||
last_sql="{{ last_sql_query|escape('html_attr') }}"
|
||||
>
|
||||
{% for product in products %}
|
||||
{% block product_catalog_form_table_row %}
|
||||
<tr data-uniturl="{{ product.unit_action_url|default('#') }}" data-product-id="{{ product.id_product }}">
|
||||
<td class="checkbox-column form-group">
|
||||
<div class="md-checkbox md-checkbox-inline">
|
||||
<label>
|
||||
<input type="checkbox" id="bulk_action_selected_products-{{ product.id_product }}" name="bulk_action_selected_products[]" value="{{ product.id_product }}">
|
||||
<i class="md-checkbox-control"></i>
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<label class="form-check-label" for="bulk_action_selected_products-{{ product.id_product }}">
|
||||
{{ product.id_product }}
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ product.url|default('') }}#tab-step1">{{ product.image|raw }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ product.url|default('') }}#tab-step1">{{ product.name|default('N/A'|trans({}, 'Admin.Global')) }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ product.reference|default('') }}
|
||||
</td>
|
||||
<td>
|
||||
{{ product.name_category|default('') }}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<a href="{{ product.url|default('') }}#tab-step2">{{ product.price|default('N/A'|trans({}, 'Admin.Global')) }}</a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<a href="{{ product.url|default('') }}#tab-step2">{{ product.price_final|default('N/A'|trans({}, 'Admin.Global')) }}</a>
|
||||
</td>
|
||||
|
||||
{% if 'PS_STOCK_MANAGEMENT'|configuration %}
|
||||
<td class="product-sav-quantity text-center" data-product-quantity-value="{{ product.sav_quantity|default('') }}">
|
||||
<a href="{{ product.url|default('') }}#tab-step3">
|
||||
{% if product.sav_quantity is defined and product.sav_quantity > 0 %}
|
||||
{{ product.sav_quantity }}
|
||||
{% else %}
|
||||
{{ product.sav_quantity|default('N/A'|trans({}, 'Admin.Global')) }}
|
||||
{% endif %}
|
||||
</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
<td class="text-center">
|
||||
{% if product.active|default(0) == 0 %}
|
||||
<a href="#" onclick="unitProductAction(this, 'activate'); return false;">
|
||||
<i class="material-icons action-disabled">clear</i>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="#" onclick="unitProductAction(this, 'deactivate'); return false;">
|
||||
<i class="material-icons action-enabled ">check</i>
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{{renderhook ('displayAdminCatalogTwigListingProductFields', {'product': product})}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% if product.position is defined %}
|
||||
<td {% if activate_drag_and_drop %}class="placeholder"{% endif %} style="cursor: pointer; cursor: hand;">
|
||||
{% if activate_drag_and_drop %}
|
||||
<big><big>⇅</big></big>
|
||||
{% endif %}
|
||||
<span class="position">{{ product.position }}</span>
|
||||
<input type="hidden" name="mass_edit_action_sorted_products[]" value="{{ product.id_product }}" />
|
||||
<input type="hidden" name="mass_edit_action_sorted_positions[]" value="{{ product.position }}" />
|
||||
</td>
|
||||
{% endif %}
|
||||
<td class="text-right">
|
||||
<div class="btn-group-action">
|
||||
|
||||
{% set buttons_action = [
|
||||
{
|
||||
"href": product.preview_url|default('#'),
|
||||
"target": "_blank",
|
||||
"icon": "remove_red_eye",
|
||||
"label": "Preview"|trans({}, 'Admin.Actions')
|
||||
}
|
||||
] %}
|
||||
|
||||
{% set buttons_action = buttons_action|merge([
|
||||
{
|
||||
"onclick": "unitProductAction(this, 'duplicate');",
|
||||
"icon": "content_copy",
|
||||
"label": "Duplicate"|trans({}, 'Admin.Actions')
|
||||
}
|
||||
]) %}
|
||||
|
||||
{% set buttons_action = buttons_action|merge([
|
||||
{
|
||||
"onclick": "unitProductAction(this, 'delete');",
|
||||
"icon": "delete",
|
||||
"label": "Delete"|trans({}, 'Admin.Actions')
|
||||
}
|
||||
]) %}
|
||||
|
||||
{% include '@Product/CatalogPage/Forms/form_edit_dropdown.html.twig' with {
|
||||
'button_id': "product_list_id_" ~ product.id_product ~ "_menu",
|
||||
'default_item': {
|
||||
"href": product.url|default('#'),
|
||||
"icon": "mode_edit"
|
||||
},
|
||||
'right': true,
|
||||
'items': buttons_action
|
||||
} %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
{% else %}
|
||||
<tr><td colspan="11">
|
||||
{{ "There is no result for this search. Update your filters to view other products."|trans({}, 'Admin.Catalog.Notification') }}
|
||||
</td></tr>
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,155 @@
|
||||
{#**
|
||||
* 2007-2018 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/OSL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*#}
|
||||
<tbody
|
||||
{% if activate_drag_and_drop %}class="sortable"{% endif %}
|
||||
last_sql="{{ last_sql_query|escape('html_attr') }}"
|
||||
>
|
||||
{% for product in products %}
|
||||
{% block product_catalog_form_table_row %}
|
||||
<tr data-uniturl="{{ product.unit_action_url|default('#') }}" data-product-id="{{ product.id_product }}">
|
||||
<td class="checkbox-column form-group">
|
||||
<div class="md-checkbox md-checkbox-inline">
|
||||
<label>
|
||||
<input type="checkbox" id="bulk_action_selected_products-{{ product.id_product }}" name="bulk_action_selected_products[]" value="{{ product.id_product }}">
|
||||
<i class="md-checkbox-control"></i>
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<label class="form-check-label" for="bulk_action_selected_products-{{ product.id_product }}">
|
||||
{{ product.id_product }}
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ product.url|default('') }}#tab-step1">{{ product.image|raw }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ product.url|default('') }}#tab-step1">{{ product.name|default('N/A'|trans({}, 'Admin.Global')) }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ product.reference|default('') }}
|
||||
</td>
|
||||
<td>
|
||||
{{ product.name_category|default('') }}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<a href="{{ product.url|default('') }}#tab-step2">{{ product.price|default('N/A'|trans({}, 'Admin.Global')) }}</a>
|
||||
</td>
|
||||
|
||||
{% if 'PS_STOCK_MANAGEMENT'|configuration %}
|
||||
<td class="product-sav-quantity text-center" data-product-quantity-value="{{ product.sav_quantity|default('') }}">
|
||||
<a href="{{ product.url|default('') }}#tab-step3">
|
||||
{% if product.sav_quantity is defined and product.sav_quantity > 0 %}
|
||||
{{ product.sav_quantity }}
|
||||
{% else %}
|
||||
{{ product.sav_quantity|default('N/A'|trans({}, 'Admin.Global')) }}
|
||||
{% endif %}
|
||||
</a>
|
||||
</td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
<td class="text-center">
|
||||
{% if product.active|default(0) == 0 %}
|
||||
<a href="#" onclick="unitProductAction(this, 'activate'); return false;">
|
||||
<i class="material-icons action-disabled">clear</i>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="#" onclick="unitProductAction(this, 'deactivate'); return false;">
|
||||
<i class="material-icons action-enabled ">check</i>
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{{renderhook ('displayAdminCatalogTwigListingProductFields', {'product': product})}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% if product.position is defined %}
|
||||
<td {% if activate_drag_and_drop %}class="placeholder"{% endif %} style="cursor: pointer; cursor: hand;">
|
||||
{% if activate_drag_and_drop %}
|
||||
<big><big>⇅</big></big>
|
||||
{% endif %}
|
||||
<span class="position">{{ product.position }}</span>
|
||||
<input type="hidden" name="mass_edit_action_sorted_products[]" value="{{ product.id_product }}" />
|
||||
<input type="hidden" name="mass_edit_action_sorted_positions[]" value="{{ product.position }}" />
|
||||
</td>
|
||||
{% endif %}
|
||||
<td class="text-right">
|
||||
<div class="btn-group-action">
|
||||
|
||||
{% set buttons_action = [
|
||||
{
|
||||
"href": product.preview_url|default('#'),
|
||||
"target": "_blank",
|
||||
"icon": "remove_red_eye",
|
||||
"label": "Preview"|trans({}, 'Admin.Actions')
|
||||
}
|
||||
] %}
|
||||
|
||||
{% set buttons_action = buttons_action|merge([
|
||||
{
|
||||
"onclick": "unitProductAction(this, 'duplicate');",
|
||||
"icon": "content_copy",
|
||||
"label": "Duplicate"|trans({}, 'Admin.Actions')
|
||||
}
|
||||
]) %}
|
||||
|
||||
{% set buttons_action = buttons_action|merge([
|
||||
{
|
||||
"onclick": "unitProductAction(this, 'delete');",
|
||||
"icon": "delete",
|
||||
"label": "Delete"|trans({}, 'Admin.Actions')
|
||||
}
|
||||
]) %}
|
||||
|
||||
{% include '@Product/CatalogPage/Forms/form_edit_dropdown.html.twig' with {
|
||||
'button_id': "product_list_id_" ~ product.id_product ~ "_menu",
|
||||
'default_item': {
|
||||
"href": product.url|default('#'),
|
||||
"icon": "mode_edit"
|
||||
},
|
||||
'right': true,
|
||||
'items': buttons_action
|
||||
} %}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
{% else %}
|
||||
<tr><td colspan="11">
|
||||
{{ "There is no result for this search. Update your filters to view other products."|trans({}, 'Admin.Catalog.Notification') }}
|
||||
</td></tr>
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,232 @@
|
||||
{#**
|
||||
* 2007-2018 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/OSL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*#}
|
||||
{% import '@PrestaShop/Admin/macros.html.twig' as ps %}
|
||||
<div class="table-responsive">
|
||||
<table
|
||||
class="table product mt-3"
|
||||
redirecturl="{{ path('admin_product_catalog', {
|
||||
'limit': limit,
|
||||
'offset': offset,
|
||||
'orderBy': orderBy,
|
||||
'sortOrder': sortOrder
|
||||
})
|
||||
}}"
|
||||
>
|
||||
<thead class="with-filters">
|
||||
{% block product_catalog_form_table_header %}
|
||||
<tr class="column-headers">
|
||||
<th scope="col" style="width: 2rem"></th>
|
||||
<th scope="col" style="width: 5rem">
|
||||
{{ ps.sortable_column_header("ID"|trans({}, 'Admin.Global'), 'id_product', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{{ "Image"|trans({}, 'Admin.Global') }}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{{ ps.sortable_column_header("Name"|trans({}, 'Admin.Global'), 'name', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col" style="width: 9%">
|
||||
{{ ps.sortable_column_header("Reference"|trans({}, 'Admin.Global'), 'reference', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{{ ps.sortable_column_header("Category"|trans({}, 'Admin.Catalog.Feature'), 'name_category', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col" class="text-center" style="width: 9%">
|
||||
{{ ps.sortable_column_header("Price (tax excl.)"|trans({}, 'Admin.Catalog.Feature'), 'price', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col" class="text-center" style="width: 9%">
|
||||
{{ "Price (tax incl.)"|trans({}, 'Admin.Catalog.Feature') }}
|
||||
</th>
|
||||
|
||||
{% if 'PS_STOCK_MANAGEMENT'|configuration %}
|
||||
<th scope="col" class="text-center" style="width: 9%">
|
||||
{{ ps.sortable_column_header("Quantity"|trans({}, 'Admin.Catalog.Feature'), 'sav_quantity', orderBy, sortOrder) }}
|
||||
</th>
|
||||
{% else %}
|
||||
<th></th>
|
||||
{% endif %}
|
||||
|
||||
<th scope="col" class="text-center">
|
||||
{{ ps.sortable_column_header("Status"|trans({}, 'Admin.Global'), 'active', orderBy, sortOrder) }}
|
||||
</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{{renderhook ('displayAdminCatalogTwigProductHeader')}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% if has_category_filter == true %}
|
||||
<th scope="col">
|
||||
{{ ps.sortable_column_header("Position"|trans({}, 'Admin.Global'), 'position', orderBy, sortOrder) }}
|
||||
</th>
|
||||
{% endif %}
|
||||
<th scope="col" class="text-right" style="width: 3rem; padding-right: 2rem">
|
||||
{{ "Actions"|trans({}, 'Admin.Global') }}
|
||||
</th>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
|
||||
{% block product_catalog_form_table_filters %}
|
||||
{% set filters_disabled = activate_drag_and_drop %}
|
||||
<tr class="column-filters">
|
||||
<th colspan="2">
|
||||
{% include '@PrestaShop/Admin/Helpers/range_inputs.html.twig' with {
|
||||
'input_name': "filter_column_id_product",
|
||||
'min': '0',
|
||||
'max': '1000000',
|
||||
'minLabel': "Min"|trans({}, 'Admin.Global'),
|
||||
'maxLabel': "Max"|trans({}, 'Admin.Global'),
|
||||
'value': filter_column_id_product,
|
||||
'disabled': filters_disabled,
|
||||
} %}
|
||||
</th>
|
||||
<th> </th>
|
||||
<th>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ "Search name"|trans({}, 'Admin.Catalog.Help') }}"
|
||||
name="filter_column_name"
|
||||
value="{{ filter_column_name }}"
|
||||
{% if filters_disabled %}disabled{% endif %}
|
||||
/>
|
||||
</th>
|
||||
<th>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ "Search ref."|trans({}, 'Admin.Catalog.Help') }}"
|
||||
name="filter_column_reference"
|
||||
value="{{ filter_column_reference }}"
|
||||
{% if filters_disabled %}disabled{% endif %}
|
||||
/>
|
||||
</th>
|
||||
<th>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ "Search category"|trans({}, 'Admin.Catalog.Help') }}"
|
||||
name="filter_column_name_category"
|
||||
value="{{ filter_column_name_category }}"
|
||||
{% if filters_disabled %}disabled{% endif %}
|
||||
/>
|
||||
</th>
|
||||
<th class="text-center">
|
||||
{% include '@PrestaShop/Admin/Helpers/range_inputs.html.twig' with {
|
||||
'input_name': "filter_column_price",
|
||||
'min': '0',
|
||||
'max': '1000000',
|
||||
'minLabel': "Min"|trans({}, 'Admin.Global'),
|
||||
'maxLabel': "Max"|trans({}, 'Admin.Global'),
|
||||
'value': filter_column_price,
|
||||
'disabled': filters_disabled,
|
||||
} %}
|
||||
</th>
|
||||
<th class="text-center"></th>
|
||||
{% if 'PS_STOCK_MANAGEMENT'|configuration %}
|
||||
<th class="text-center">
|
||||
{% include '@PrestaShop/Admin/Helpers/range_inputs.html.twig' with {
|
||||
'input_name': "filter_column_sav_quantity",
|
||||
'min': '-1000000',
|
||||
'max': '1000000',
|
||||
'minLabel': "Min"|trans({}, 'Admin.Global'),
|
||||
'maxLabel': "Max"|trans({}, 'Admin.Global'),
|
||||
'value': filter_column_sav_quantity,
|
||||
'disabled': filters_disabled,
|
||||
} %}
|
||||
</th>
|
||||
{% else %}
|
||||
<th></th>
|
||||
{% endif %}
|
||||
|
||||
<th id="product_filter_column_active" class="text-center">
|
||||
<div class="form-select">
|
||||
<select class="custom-select" name="filter_column_active" {% if filters_disabled %}disabled{% endif %}>
|
||||
<option value=""></option>
|
||||
<option value="1" {% if (filter_column_active is defined) and filter_column_active == '1' %}selected="selected"{% endif %}>Active</option>
|
||||
<option value="0" {% if (filter_column_active is defined) and filter_column_active == '0' %}selected="selected"{% endif %}>Inactive</option>
|
||||
</select>
|
||||
</div>
|
||||
</th>
|
||||
|
||||
|
||||
|
||||
|
||||
{{renderhook ('displayAdminCatalogTwigProductFilter')}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% if has_category_filter == true %}
|
||||
<th>
|
||||
{% if not(activate_drag_and_drop) %}
|
||||
<input type="button" class="btn btn-outline-secondary" name="products_filter_position_asc" value="{{ "Reorder"|trans({}, 'Admin.Actions') }}" onclick="productOrderPrioritiesTable();" />
|
||||
{% else %}
|
||||
<input type="button" id="bulk_edition_save_keep" class="btn" onclick="bulkProductAction(this, 'edition');" value="{{ "Save & refresh"|trans({}, 'Admin.Actions')|raw }}" />
|
||||
{% endif %}
|
||||
</th>
|
||||
{% endif %}
|
||||
<th class="text-right" style="width: 5rem">
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary"
|
||||
name="products_filter_submit"
|
||||
title="{{ "Search"|trans({}, 'Admin.Actions') }}"
|
||||
>
|
||||
<i class="material-icons">search</i>
|
||||
{{ "Search"|trans({}, 'Admin.Actions') }}
|
||||
</button>
|
||||
<button
|
||||
type="reset"
|
||||
class="btn btn-link"
|
||||
name="products_filter_reset"
|
||||
onclick="productColumnFilterReset($(this).closest('tr.column-filters'))"
|
||||
title="{{ "Reset"|trans({}, 'Admin.Actions') }}"
|
||||
>
|
||||
<i class="material-icons">clear</i>
|
||||
{{ "Reset"|trans({}, 'Admin.Actions') }}
|
||||
</button>
|
||||
</th>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
</thead>
|
||||
{% block product_catalog_form_table_items %}
|
||||
{{ render(controller('PrestaShopBundle\\Controller\\Admin\\ProductController::listAction', {
|
||||
'limit': limit,
|
||||
'offset': offset,
|
||||
'orderBy': orderBy,
|
||||
'sortOrder': sortOrder,
|
||||
'products': products,
|
||||
'last_sql': last_sql
|
||||
})) }}
|
||||
{% endblock %}
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,229 @@
|
||||
{#**
|
||||
* 2007-2018 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Open Software License (OSL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/OSL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2018 PrestaShop SA
|
||||
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*#}
|
||||
{% import '@PrestaShop/Admin/macros.html.twig' as ps %}
|
||||
<div class="table-responsive">
|
||||
<table
|
||||
class="table product mt-3"
|
||||
redirecturl="{{ path('admin_product_catalog', {
|
||||
'limit': limit,
|
||||
'offset': offset,
|
||||
'orderBy': orderBy,
|
||||
'sortOrder': sortOrder
|
||||
})
|
||||
}}"
|
||||
>
|
||||
<thead class="with-filters">
|
||||
{% block product_catalog_form_table_header %}
|
||||
<tr class="column-headers">
|
||||
<th scope="col" style="width: 2rem"></th>
|
||||
<th scope="col" style="width: 5rem">
|
||||
{{ ps.sortable_column_header("ID"|trans({}, 'Admin.Global'), 'id_product', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{{ "Image"|trans({}, 'Admin.Global') }}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{{ ps.sortable_column_header("Name"|trans({}, 'Admin.Global'), 'name', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col" style="width: 9%">
|
||||
{{ ps.sortable_column_header("Reference"|trans({}, 'Admin.Global'), 'reference', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{{ ps.sortable_column_header("Category"|trans({}, 'Admin.Catalog.Feature'), 'name_category', orderBy, sortOrder) }}
|
||||
</th>
|
||||
<th scope="col" class="text-center" style="width: 9%">
|
||||
{{ ps.sortable_column_header("Price (tax excl.)"|trans({}, 'Admin.Catalog.Feature'), 'price', orderBy, sortOrder) }}
|
||||
</th>
|
||||
|
||||
{% if 'PS_STOCK_MANAGEMENT'|configuration %}
|
||||
<th scope="col" class="text-center" style="width: 9%">
|
||||
{{ ps.sortable_column_header("Quantity"|trans({}, 'Admin.Catalog.Feature'), 'sav_quantity', orderBy, sortOrder) }}
|
||||
</th>
|
||||
{% else %}
|
||||
<th></th>
|
||||
{% endif %}
|
||||
|
||||
<th scope="col" class="text-center">
|
||||
{{ ps.sortable_column_header("Status"|trans({}, 'Admin.Global'), 'active', orderBy, sortOrder) }}
|
||||
</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{{renderhook ('displayAdminCatalogTwigProductHeader')}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% if has_category_filter == true %}
|
||||
<th scope="col">
|
||||
{{ ps.sortable_column_header("Position"|trans({}, 'Admin.Global'), 'position', orderBy, sortOrder) }}
|
||||
</th>
|
||||
{% endif %}
|
||||
<th scope="col" class="text-right" style="width: 3rem; padding-right: 2rem">
|
||||
{{ "Actions"|trans({}, 'Admin.Global') }}
|
||||
</th>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
|
||||
{% block product_catalog_form_table_filters %}
|
||||
{% set filters_disabled = activate_drag_and_drop %}
|
||||
<tr class="column-filters">
|
||||
<th colspan="2">
|
||||
{% include '@PrestaShop/Admin/Helpers/range_inputs.html.twig' with {
|
||||
'input_name': "filter_column_id_product",
|
||||
'min': '0',
|
||||
'max': '1000000',
|
||||
'minLabel': "Min"|trans({}, 'Admin.Global'),
|
||||
'maxLabel': "Max"|trans({}, 'Admin.Global'),
|
||||
'value': filter_column_id_product,
|
||||
'disabled': filters_disabled,
|
||||
} %}
|
||||
</th>
|
||||
<th> </th>
|
||||
<th>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ "Search name"|trans({}, 'Admin.Catalog.Help') }}"
|
||||
name="filter_column_name"
|
||||
value="{{ filter_column_name }}"
|
||||
{% if filters_disabled %}disabled{% endif %}
|
||||
/>
|
||||
</th>
|
||||
<th>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ "Search ref."|trans({}, 'Admin.Catalog.Help') }}"
|
||||
name="filter_column_reference"
|
||||
value="{{ filter_column_reference }}"
|
||||
{% if filters_disabled %}disabled{% endif %}
|
||||
/>
|
||||
</th>
|
||||
<th>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="{{ "Search category"|trans({}, 'Admin.Catalog.Help') }}"
|
||||
name="filter_column_name_category"
|
||||
value="{{ filter_column_name_category }}"
|
||||
{% if filters_disabled %}disabled{% endif %}
|
||||
/>
|
||||
</th>
|
||||
<th class="text-center">
|
||||
{% include '@PrestaShop/Admin/Helpers/range_inputs.html.twig' with {
|
||||
'input_name': "filter_column_price",
|
||||
'min': '0',
|
||||
'max': '1000000',
|
||||
'minLabel': "Min"|trans({}, 'Admin.Global'),
|
||||
'maxLabel': "Max"|trans({}, 'Admin.Global'),
|
||||
'value': filter_column_price,
|
||||
'disabled': filters_disabled,
|
||||
} %}
|
||||
</th>
|
||||
|
||||
{% if 'PS_STOCK_MANAGEMENT'|configuration %}
|
||||
<th class="text-center">
|
||||
{% include '@PrestaShop/Admin/Helpers/range_inputs.html.twig' with {
|
||||
'input_name': "filter_column_sav_quantity",
|
||||
'min': '-1000000',
|
||||
'max': '1000000',
|
||||
'minLabel': "Min"|trans({}, 'Admin.Global'),
|
||||
'maxLabel': "Max"|trans({}, 'Admin.Global'),
|
||||
'value': filter_column_sav_quantity,
|
||||
'disabled': filters_disabled,
|
||||
} %}
|
||||
</th>
|
||||
{% else %}
|
||||
<th></th>
|
||||
{% endif %}
|
||||
|
||||
<th id="product_filter_column_active" class="text-center">
|
||||
<div class="form-select">
|
||||
<select class="custom-select" name="filter_column_active" {% if filters_disabled %}disabled{% endif %}>
|
||||
<option value=""></option>
|
||||
<option value="1" {% if (filter_column_active is defined) and filter_column_active == '1' %}selected="selected"{% endif %}>Active</option>
|
||||
<option value="0" {% if (filter_column_active is defined) and filter_column_active == '0' %}selected="selected"{% endif %}>Inactive</option>
|
||||
</select>
|
||||
</div>
|
||||
</th>
|
||||
|
||||
|
||||
|
||||
|
||||
{{renderhook ('displayAdminCatalogTwigProductFilter')}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% if has_category_filter == true %}
|
||||
<th>
|
||||
{% if not(activate_drag_and_drop) %}
|
||||
<input type="button" class="btn btn-outline-secondary" name="products_filter_position_asc" value="{{ "Reorder"|trans({}, 'Admin.Actions') }}" onclick="productOrderPrioritiesTable();" />
|
||||
{% else %}
|
||||
<input type="button" id="bulk_edition_save_keep" class="btn" onclick="bulkProductAction(this, 'edition');" value="{{ "Save & refresh"|trans({}, 'Admin.Actions')|raw }}" />
|
||||
{% endif %}
|
||||
</th>
|
||||
{% endif %}
|
||||
<th class="text-right" style="width: 5rem">
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary"
|
||||
name="products_filter_submit"
|
||||
title="{{ "Search"|trans({}, 'Admin.Actions') }}"
|
||||
>
|
||||
<i class="material-icons">search</i>
|
||||
{{ "Search"|trans({}, 'Admin.Actions') }}
|
||||
</button>
|
||||
<button
|
||||
type="reset"
|
||||
class="btn btn-link"
|
||||
name="products_filter_reset"
|
||||
onclick="productColumnFilterReset($(this).closest('tr.column-filters'))"
|
||||
title="{{ "Reset"|trans({}, 'Admin.Actions') }}"
|
||||
>
|
||||
<i class="material-icons">clear</i>
|
||||
{{ "Reset"|trans({}, 'Admin.Actions') }}
|
||||
</button>
|
||||
</th>
|
||||
</tr>
|
||||
{% endblock %}
|
||||
</thead>
|
||||
{% block product_catalog_form_table_items %}
|
||||
{{ render(controller('PrestaShopBundle\\Controller\\Admin\\ProductController::listAction', {
|
||||
'limit': limit,
|
||||
'offset': offset,
|
||||
'orderBy': orderBy,
|
||||
'sortOrder': sortOrder,
|
||||
'products': products,
|
||||
'last_sql': last_sql
|
||||
})) }}
|
||||
{% endblock %}
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2015 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2015 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Location: ../");
|
||||
exit;
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2015 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2015 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Location: ../");
|
||||
exit;
|
||||
35
modules/empikmarketplace/views/PrestaShop/Admin/index.php
Normal file
35
modules/empikmarketplace/views/PrestaShop/Admin/index.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2015 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2015 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Location: ../");
|
||||
exit;
|
||||
35
modules/empikmarketplace/views/PrestaShop/index.php
Normal file
35
modules/empikmarketplace/views/PrestaShop/index.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
* 2007-2015 PrestaShop
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||
* that is bundled with this package in the file LICENSE.txt.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* http://opensource.org/licenses/afl-3.0.php
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||
* versions in the future. If you wish to customize PrestaShop for your
|
||||
* needs please refer to http://www.prestashop.com for more information.
|
||||
*
|
||||
* @author PrestaShop SA <contact@prestashop.com>
|
||||
* @copyright 2007-2015 PrestaShop SA
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
|
||||
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
header("Location: ../");
|
||||
exit;
|
||||
3
modules/empikmarketplace/views/css/admin/empik.css
Normal file
3
modules/empikmarketplace/views/css/admin/empik.css
Normal file
@@ -0,0 +1,3 @@
|
||||
.icon-AdminEmpik::before {
|
||||
content: "\f0b1";
|
||||
}
|
||||
11
modules/empikmarketplace/views/css/admin/index.php
Normal file
11
modules/empikmarketplace/views/css/admin/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
1
modules/empikmarketplace/views/css/empik.css
Normal file
1
modules/empikmarketplace/views/css/empik.css
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
11
modules/empikmarketplace/views/css/index.php
Normal file
11
modules/empikmarketplace/views/css/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
11
modules/empikmarketplace/views/index.php
Normal file
11
modules/empikmarketplace/views/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
126
modules/empikmarketplace/views/js/admin/empik.js
Normal file
126
modules/empikmarketplace/views/js/admin/empik.js
Normal file
@@ -0,0 +1,126 @@
|
||||
$(function () {
|
||||
const empikProductExportButtonSelector = '.js-empik-products-export';
|
||||
const empikOfferExportButtonSelector = '.js-empik-offers-export';
|
||||
const empikPriceInputSelector = '.js-empik-price-input';
|
||||
|
||||
$(document).on('click', empikProductExportButtonSelector, function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
$(this).attr('disabled', 'disabled');
|
||||
|
||||
let page = 0;
|
||||
ajaxRequest();
|
||||
|
||||
function ajaxRequest() {
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('action', 'exportProducts');
|
||||
formData.append('page', page);
|
||||
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: empikAjaxUrl,
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
dataType: 'json',
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
if (response.continue) {
|
||||
page++;
|
||||
ajaxRequest();
|
||||
} else {
|
||||
window.location = response.redirect;
|
||||
$(this).removeAttr('disabled');
|
||||
}
|
||||
} else {
|
||||
alert(response.errors[0]);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', empikOfferExportButtonSelector, function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
$(this).attr('disabled', 'disabled');
|
||||
|
||||
let page = 0;
|
||||
ajaxRequest();
|
||||
|
||||
function ajaxRequest() {
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('action', 'exportOffers');
|
||||
formData.append('page', page);
|
||||
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: empikAjaxUrl,
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
dataType: 'json',
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
if (response.continue) {
|
||||
page++;
|
||||
ajaxRequest();
|
||||
} else {
|
||||
window.location = response.redirect;
|
||||
$(this).removeAttr('disabled');
|
||||
}
|
||||
} else {
|
||||
alert(response.errors[0]);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('change', empikPriceInputSelector, function (e) {
|
||||
const value = $(this).val();
|
||||
|
||||
// replace , with .
|
||||
let formattedValue = value.replace(',', '.');
|
||||
|
||||
// remove all non-numeric characters
|
||||
formattedValue = formattedValue.replace(/[^0-9\.]/g, '');
|
||||
|
||||
formattedValue = parseFloat(formattedValue);
|
||||
|
||||
// check is value is a number
|
||||
if (isNaN(formattedValue)) {
|
||||
formattedValue = 0.00;
|
||||
}
|
||||
|
||||
formattedValue = formattedValue.toFixed(2);
|
||||
|
||||
$(this).val(formattedValue);
|
||||
});
|
||||
|
||||
$(document).on('change', empikPriceInputSelector, function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append('action', $(this).data('action'));
|
||||
formData.append('id_product', $(this).data('product-id'));
|
||||
formData.append('id_product_attribute', $(this).data('product-attribute-id'));
|
||||
formData.append('price', $(this).val());
|
||||
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: empikAjaxUrl,
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
dataType: 'json',
|
||||
success: (response) => {
|
||||
if (response.success && typeof response.message !== 'undefined') {
|
||||
showSuccessMessage(response.message);
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
11
modules/empikmarketplace/views/js/admin/index.php
Normal file
11
modules/empikmarketplace/views/js/admin/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
122
modules/empikmarketplace/views/js/empik.js
Normal file
122
modules/empikmarketplace/views/js/empik.js
Normal file
@@ -0,0 +1,122 @@
|
||||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = function(exports) {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // create a fake namespace object
|
||||
/******/ // mode & 1: value is a module id, require it
|
||||
/******/ // mode & 2: merge all properties of value into the ns
|
||||
/******/ // mode & 4: return value when already ns object
|
||||
/******/ // mode & 8|1: behave like require
|
||||
/******/ __webpack_require__.t = function(value, mode) {
|
||||
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||
/******/ if(mode & 8) return value;
|
||||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||
/******/ var ns = Object.create(null);
|
||||
/******/ __webpack_require__.r(ns);
|
||||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||
/******/ return ns;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ({
|
||||
|
||||
/***/ "./src/css/empik.scss":
|
||||
/*!**********************************!*\
|
||||
!*** ./src/css/empik.scss ***!
|
||||
\**********************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/css/empik.scss?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/js/empik.js":
|
||||
/*!*******************************!*\
|
||||
!*** ./src/js/empik.js ***!
|
||||
\*******************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
eval("\n\n//# sourceURL=webpack:///./src/js/empik.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 0:
|
||||
/*!****************************************************************!*\
|
||||
!*** multi ./src/js/empik.js ./src/css/empik.scss ***!
|
||||
\****************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
eval("__webpack_require__(/*! ./src/js/empik.js */\"./src/js/empik.js\");\nmodule.exports = __webpack_require__(/*! ./src/css/empik.scss */\"./src/css/empik.scss\");\n\n\n//# sourceURL=webpack:///multi_./src/js/empik.js_./src/css/empik.scss?");
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
11
modules/empikmarketplace/views/js/index.php
Normal file
11
modules/empikmarketplace/views/js/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
index.php<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,4 @@
|
||||
<a href="{$url_export_offers}" class="btn btn-primary js-empik-offers-export">
|
||||
<i class="icon-send"></i>
|
||||
{l s='Export offers' mod='empikmarketplace'}
|
||||
</a>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,4 @@
|
||||
<a href="{$url_manage_price}" class="btn btn-primary">
|
||||
<i class="icon-dollar"></i>
|
||||
{l s='Manage dedicated EmpikPlace prices' mod='empikmarketplace'}
|
||||
</a>
|
||||
@@ -0,0 +1,39 @@
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{l s='Empik Marketplace carrier' mod='empikmarketplace'}</th>
|
||||
<th>{l s='Shop carrier' mod='empikmarketplace'}</th>
|
||||
<th>{l s='Carrier type' mod='empikmarketplace'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$empik_shipping_types item=empik_shipping_type}
|
||||
<tr>
|
||||
<td><b>{$empik_shipping_type.label}</b> ({$empik_shipping_type.code})</td>
|
||||
<td>
|
||||
<select name="carrier[{$empik_shipping_type.code}][id_carrier]">
|
||||
{foreach from=$shop_carriers item=shop_carrier}
|
||||
<option
|
||||
value="{$shop_carrier.id_carrier}"
|
||||
{if $map[$empik_shipping_type.code].id_carrier|default == $shop_carrier.id_carrier} selected{/if}>
|
||||
{$shop_carrier.name}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="carrier[{$empik_shipping_type.code}][type]">
|
||||
{foreach from=$empik_carriers item=empik_carrier}
|
||||
<option
|
||||
value="{$empik_carrier.code}"
|
||||
{if $map[$empik_shipping_type.code].type|default == $empik_carrier.code} selected{/if}
|
||||
>
|
||||
{$empik_carrier.label}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,40 @@
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{l s='Empik Marketplace carrier' mod='empikmarketplace'}</th>
|
||||
<th>{l s='Shop carrier' mod='empikmarketplace'}</th>
|
||||
<th>{l s='Carrier type' mod='empikmarketplace'}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$empik_shipping_types item=empik_shipping_type}
|
||||
<tr>
|
||||
<td><b>{$empik_shipping_type.label}</b> ({$empik_shipping_type.code})</td>
|
||||
<td>
|
||||
<select name="carrier[{$empik_shipping_type.code}][id_carrier]">
|
||||
{foreach from=$shop_carriers item=shop_carrier}
|
||||
<option
|
||||
value="{$shop_carrier.id_carrier}"
|
||||
{if $map[$empik_shipping_type.code].id_carrier|default == $shop_carrier.id_carrier} selected{/if}
|
||||
>
|
||||
{$shop_carrier.name}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="carrier[{$empik_shipping_type.code}][type]">
|
||||
{foreach from=$empik_carriers item=empik_carrier}
|
||||
<option
|
||||
value="{$empik_carrier.code}"
|
||||
{if $map[$empik_shipping_type.code].type|default == $empik_carrier.code} selected{/if}
|
||||
>
|
||||
{$empik_carrier.label}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,3 @@
|
||||
<button id="configuration_form_submit_btn" type="submit" href="{$url_test_connection}" class="btn btn-primary">
|
||||
{l s='Zapisz' mod='empikmarketplace'}
|
||||
</button>
|
||||
@@ -0,0 +1,3 @@
|
||||
<a href="{$url_test_connection}" class="btn btn-primary pull-right">
|
||||
{l s='Przetestuj połączenie' mod='empikmarketplace'}
|
||||
</a>
|
||||
87
modules/empikmarketplace/views/templates/admin/help.tpl
Normal file
87
modules/empikmarketplace/views/templates/admin/help.tpl
Normal file
@@ -0,0 +1,87 @@
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
<i class="icon-question"></i> {l s='Help' mod='empikmarketplace'}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2>{l s='Funkcje:' mod='empikmarketplace'}</h2>
|
||||
<hr>
|
||||
<ul>
|
||||
<li>{l s='Dwustronne połączenie API PrestaShop - EmpikPlace' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Wybór środowiska pracy: produkcyjne/testowe' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Wystawianie produktów' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Wystawianie ofert' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Zarządzanie ofertami' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Synchronizację stanów magazynowych' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Synchronizację cen i cen promocyjnych' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Akceptację i pobieranie zamówień' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Przekazywanie numerów przesyłek' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Mapowanie statusów zamówień' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Mapowanie form dostaw' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Zmianę statusów zamówień' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Oraz wiele innych funkcjonalności' mod='empikmarketplace'}</li>
|
||||
</ul>
|
||||
<h2>{l s='Interwały wymiany informacji:' mod='empikmarketplace'}</h2>
|
||||
<hr>
|
||||
<ul>
|
||||
<li>{l s='Akceptowanie i pobieranie zamówień - zgodnie z ustawieniami CRON' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Synchronizację stanów i cen magazynowych - zgodnie z ustawieniami CRON' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Zmiana statusu zamówienia oraz dodanie listu przewozowego - bezzwłocznie po zmianie statusu w PrestaShop' mod='empikmarketplace'}</li>
|
||||
<li>{l s='Jednorazowe wystawianie produktów / ofert - bezzwłocznie po wykonaniu akcji' mod='empikmarketplace'}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6 text-center">
|
||||
<h2>{l s='Empik Marketplace' mod='empikmarketplace'}</h2>
|
||||
<hr>
|
||||
<p class="text-center">
|
||||
<a href="{$url_docs}" class="btn btn-info">
|
||||
<i class="icon-file-text"></i>
|
||||
{l s='Instrukcja modułu' mod='empikmarketplace'}
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<a href="{$url_help}" class="btn btn-link">
|
||||
{l s='Kontakt' mod='empikmarketplace'} →
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>{l s='Film instruktażowy:' mod='empikmarketplace'}</h2>
|
||||
<hr>
|
||||
<div>
|
||||
<iframe
|
||||
style="aspect-ratio: 16 / 9; width: 100%; height: auto;"
|
||||
width="853"
|
||||
height="505"
|
||||
src="https://www.youtube.com/embed/PTYK2ur9zL8"
|
||||
title="YouTube video player"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
<i class="icon-time"></i> {l s='CRON jobs' mod='empikmarketplace'}
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<h4>{l s='Update offers' mod='empikmarketplace'}</h4>
|
||||
<pre>{$cron_jobs.exportOffers}</pre>
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<h4>{l s='Import orders' mod='empikmarketplace'}</h4>
|
||||
<pre>{$cron_jobs.importOrders}</pre>
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<h4>{l s='Export products' mod='empikmarketplace'}</h4>
|
||||
<pre>{$cron_jobs.exportProducts}</pre>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="panel card">
|
||||
<div class="panel-heading card-header">
|
||||
{l s='Empik marketplace' mod='empikmarketplace'}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>{l s='Order reference' mod='empikmarketplace'}: <b>{$empik_order.empik_order_reference}</b></p>
|
||||
<p>{l s='Empik payment' mod='empikmarketplace'}: <b>{$empik_order.empik_payment}</b></p>
|
||||
<p>{l s='Empik carrier' mod='empikmarketplace'}: <b>{$empik_order.empik_carrier}</b></p>
|
||||
|
||||
{if $empik_order.empik_pickup_point}
|
||||
<p>{l s='Pickup point' mod='empikmarketplace'}: <b>{$empik_order.empik_pickup_point}</b></p>
|
||||
{/if}
|
||||
{if $empik_order.empik_vat_number}
|
||||
<p>{l s='VAT number' mod='empikmarketplace'}: <b>{$empik_order.empik_vat_number}</b></p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
11
modules/empikmarketplace/views/templates/admin/index.php
Normal file
11
modules/empikmarketplace/views/templates/admin/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
@@ -0,0 +1,6 @@
|
||||
<a class="btn btn-link list-action--download"
|
||||
href="{$href|escape:'html':'UTF-8'}"
|
||||
title="{l s='Download' mod='empikmarketplace'}"
|
||||
>
|
||||
<i class="icon-download"></i>
|
||||
</a>
|
||||
@@ -0,0 +1,27 @@
|
||||
{if !empty($combinations)}
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#empik-product-price-modal-{$id_product}">
|
||||
{l s='Attributes' mod='empikmarketplace'}
|
||||
</button>
|
||||
<div class="modal fade" id="empik-product-price-modal-{$id_product}" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
{foreach $combinations as $combinationsId => $combination}
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td class="text-left" style="width: 50%">{$combination.attributes_list}</td>
|
||||
<td class="text-left">
|
||||
<input type="text" class="js-empik-price-input" data-product-id="{$id_product}" data-product-attribute-id="{$combinationsId}" data-action="savePrice" value="{$combination.offer_price}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
<div class="empik-edit-price-wrapper">
|
||||
<input type="text" class="js-empik-price-input" data-product-id="{$id_product}" data-product-attribute-id="0" data-action="savePrice" value="{$value}">
|
||||
</div>
|
||||
{/if}
|
||||
@@ -0,0 +1,27 @@
|
||||
{if !empty($combinations)}
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#empik-product-price-reduced-modal-{$id_product}">
|
||||
{l s='Attributes' mod='empikmarketplace'}
|
||||
</button>
|
||||
<div class="modal fade" id="empik-product-price-reduced-modal-{$id_product}" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
{foreach $combinations as $combinationsId => $combination}
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td class="text-left" style="width: 50%">{$combination.attributes_list}</td>
|
||||
<td class="text-left">
|
||||
<input type="text" class="js-empik-price-input" data-product-id="{$id_product}" data-product-attribute-id="{$combinationsId}" data-action="saveReducedPrice" value="{$combination.offer_price_reduced}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
<div class="empik-edit-price-wrapper">
|
||||
<input type="text" class="js-empik-price-input" data-product-id="{$id_product}" data-product-attribute-id="0" data-action="saveReducedPrice" value="{$value}">
|
||||
</div>
|
||||
{/if}
|
||||
@@ -0,0 +1,10 @@
|
||||
<a class="btn btn-{if !$enabled}warning{else}success{/if} list-action--enable"
|
||||
href="{$href|escape:'html':'UTF-8'}"
|
||||
title="{if $enabled}{l s='Enabled' mod='empikmarketplace'}{else}{l s='Disabled' mod='empikmarketplace'}{/if}"
|
||||
>
|
||||
{if $enabled}
|
||||
{l s='Enabled' mod='empikmarketplace'}
|
||||
{else}
|
||||
{l s='Disabled' mod='empikmarketplace'}
|
||||
{/if}
|
||||
</a>
|
||||
@@ -0,0 +1,10 @@
|
||||
<a class="btn btn-{if !$displayOriginal}warning{else}success{/if} list-action--original"
|
||||
href="{$urlChange|escape:'html':'UTF-8'}"
|
||||
title="{if $displayOriginal}{l s='Yes' mod='empikmarketplace'}{else}{l s='No' mod='empikmarketplace'}{/if}"
|
||||
>
|
||||
{if $displayOriginal}
|
||||
{l s='Yes' mod='empikmarketplace'}
|
||||
{else}
|
||||
{l s='No' mod='empikmarketplace'}
|
||||
{/if}
|
||||
</a>
|
||||
@@ -0,0 +1,19 @@
|
||||
{$tree}
|
||||
|
||||
<script>
|
||||
$('input[name="category_filter"]').change(function () {
|
||||
var url = new URL(window.location.href);
|
||||
url.searchParams.set('id_category', $(this).val());
|
||||
url.searchParams.set('submitFilterproduct', '0');
|
||||
window.location.href = url;
|
||||
});
|
||||
|
||||
$('input[name="category_filter"]').click(function () {
|
||||
if ($(this).is(':checked')) {
|
||||
var url = new URL(window.location.href);
|
||||
url.searchParams.set('id_category', '0');
|
||||
url.searchParams.set('submitFilterproduct', '0');
|
||||
window.location.href = url;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
50
modules/empikmarketplace/views/templates/admin/products.tpl
Normal file
50
modules/empikmarketplace/views/templates/admin/products.tpl
Normal file
@@ -0,0 +1,50 @@
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
<i class="icon-gear"></i> {l s='Actions' mod='empikmarketplace'}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{if $api_authenticated}
|
||||
<p class="text-center">
|
||||
<a href="{$url_export_products}" class="btn btn-info js-empik-products-export">
|
||||
<i class="icon-send"></i>
|
||||
{l s='Send single import' mod='empikmarketplace'}
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<a href="{$url_docs}" class="btn btn-link">
|
||||
<i class="icon-info"></i>
|
||||
{l s='See how to select products, wich have to be send to Empik Marketplace' mod='empikmarketplace'}
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<a href="{$url_docs}" class="btn btn-link">
|
||||
<i class="icon-info"></i>
|
||||
{l s='After product import you must use mapping wizard in EmpikPlace.' mod='empikmarketplace'}
|
||||
<p class="text-center" style="margin-top:-22px;">{l s='You can see how to do in in our instructional video and in module documentation.' mod='empikmarketplace'}</p>
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<a href="{$url_products_csv}" {if !$url_products_csv}disabled{/if} class="btn btn-info">
|
||||
<i class="icon-download"></i>
|
||||
{l s='Download last products file' mod='empikmarketplace'}
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<a href="{$url_include_all}" class="btn btn-info">
|
||||
<i class="icon-plus"></i>
|
||||
{l s='Add all products to Empik Marketplace' mod='empikmarketplace'}
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-center">
|
||||
<a href="{$url_exclude_all}" class="btn btn-info">
|
||||
<i class="icon-trash"></i>
|
||||
{l s='Remove all products from Empik Marketplace' mod='empikmarketplace'}
|
||||
</a>
|
||||
</p>
|
||||
{else}
|
||||
<div class="alert alert-warning">{l s='Before perform any action, authenticate to Empik Marketplace API in "Connection" tab.' mod='empikmarketplace'}</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
11
modules/empikmarketplace/views/templates/index.php
Normal file
11
modules/empikmarketplace/views/templates/index.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
Reference in New Issue
Block a user