232 lines
12 KiB
PHP
232 lines
12 KiB
PHP
<?php
|
|
/**
|
|
* @var stTaskSchedulerImportConfigurationInterface $import_config
|
|
*/
|
|
use_helper('stAdminGenerator', 'stTaskSchedulerImport', 'stAvailability', 'stCategory', 'stTaskScheluder');
|
|
|
|
st_include_partial('stTaskSchedulerImportBackend/header', [
|
|
'title' => __('Import - %name%', [
|
|
'%name%' => $import_config->getLabel(),
|
|
])
|
|
]);
|
|
|
|
$children = $import_config->getChildren();
|
|
|
|
st_include_partial('stTaskSchedulerImportBackend/list_menu');
|
|
|
|
st_include_partial('stAdminGenerator/message', [
|
|
'labels' => isset($labels) ? $labels : [],
|
|
]);
|
|
|
|
echo st_admin_form_tag_start('@stTaskSchedulerImportBackend?action=importConfiguration&id=' . $id);
|
|
|
|
echo st_admin_section_start();
|
|
echo st_admin_get_form_field('import[enabled]', __('Włącz'), true, 'checkbox_tag', array('checked' => $import && isset($import) && isset($import['enabled']) && $import['enabled']));
|
|
|
|
if (SF_ENVIRONMENT == 'dev')
|
|
{
|
|
echo st_admin_get_form_field('import[check_import_relation]', __('Zawsze sprawdzaj powiązanie produktu'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import) && isset($import['check_import_relation']) && $import['check_import_relation'],
|
|
'help' => __('Jeżeli ustawione import zawsze sprawdza czy dany produkt został powiązany z danym importem. Opcje należy zaznaczyć przy pierwszym imporcie w przypadku, gdy klient miał już dodane wcześniej produkty, które wchodzą w skład importu, aby import mógł utworzyć poprawnie powiązania z tymi produktami.')
|
|
));
|
|
}
|
|
|
|
echo st_admin_get_form_field('import[time_interval]', __('Wykonuj'), $import && isset($import['time_interval']) ? $import['time_interval'] : $import_config->getOption('time_interval'), 'st_task_scheluder_time_interval_select_tag', array(
|
|
'default_time_interval' => $import_config->getOption('time_interval'),
|
|
));
|
|
|
|
echo st_admin_get_form_field('import[url]', __('Adres pliku'), $import && isset($import) ? $import['url'] : $import_config->getDefault('url'), 'input_tag', array('size' => 60, 'maxlength' => 255, 'required' => true));
|
|
|
|
if ($import_config->with('auth'))
|
|
{
|
|
echo st_admin_get_form_field('import[auth][user]', __('Użytkownik'), $import && isset($import['auth']) ? $import['auth']['user'] : '', 'input_tag', array('size' => 30, 'maxlength' => 255));
|
|
echo st_admin_get_form_field('import[auth][password]', __('Hasło'), $import && isset($import['auth']) ? $import['auth']['password'] : '', 'input_password_tag', array('size' => 30, 'maxlength' => 255));
|
|
}
|
|
echo st_admin_section_end();
|
|
|
|
foreach ($children as $child)
|
|
{
|
|
if ($child->with('url'))
|
|
{
|
|
echo st_admin_section_start($child->getLabel());
|
|
|
|
echo st_admin_get_form_field('child_import['.$child->getId().'][url]', __('Adres pliku'), $child_import && isset($child_import[$child->getId()]['url']) ? $child_import[$child->getId()]['url'] : $child->getDefault('url'), 'input_tag', array('size' => 60, 'maxlength' => 255, 'required' => true));
|
|
|
|
echo st_admin_section_end();
|
|
}
|
|
}
|
|
|
|
echo st_admin_section_start(__('Konfiguracja'));
|
|
if ($import_config->with('product_price'))
|
|
{
|
|
echo st_admin_get_form_field('import[ignore_with_empty_price]', __('Nie dodawaj produktów bez ceny'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['ignore_with_empty_price'])
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_stock'))
|
|
{
|
|
echo st_admin_get_form_field('import[ignore_with_no_stock]', __('Nie dodawaj produktów z zerowym stanem magazynowym'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['ignore_with_no_stock'])
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_images'))
|
|
{
|
|
echo st_admin_get_form_field('import[ignore_with_no_image]', __('Nie dodawaj produktów bez zdjęć'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['ignore_with_no_image'])
|
|
));
|
|
echo st_admin_get_form_field('import[disable_image_update]', __('Wyłącz aktualizacje zdjęć produktów'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['disable_image_update']),
|
|
'help' => __('Jeśli zaznaczona, wyłącza aktualizacje zdjęć produktów przy ponownym imporcie danych'),
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_attributes'))
|
|
{
|
|
echo st_admin_get_form_field('import[disable_attributes_update]', __('Wyłącz aktualizacje atrybutów produktów'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['disable_attributes_update']),
|
|
'help' => __('Jeśli zaznaczona, wyłącza aktualizacje atrybutów produktów przy ponownym imporcie danych'),
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_options'))
|
|
{
|
|
echo st_admin_get_form_field('import[disable_options_update]', __('Wyłącz aktualizacje opcji produktów'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['disable_options_update']),
|
|
'help' => __('Jeśli zaznaczona, wyłącza aktualizacje opcji produktów przy ponownym imporcie danych'),
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_categories'))
|
|
{
|
|
echo st_admin_get_form_field('import[disable_categories_update]', __('Wyłącz aktualizacje kategorii produktów'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['disable_categories_update']),
|
|
'help' => __('Jeśli zaznaczona, wyłącza aktualizacje kategorii produktów przy ponownym imporcie danych'),
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_description'))
|
|
{
|
|
echo st_admin_get_form_field('import[disable_description_update]', __('Wyłącz aktualizacje opisu produktów'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['disable_description_update']),
|
|
'help' => __('Jeśli zaznaczona, wyłącza aktualizacje opisu produktów przy ponownym imporcie danych'),
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_categories'))
|
|
{
|
|
echo st_admin_get_form_field('import[delete_product_with_excluded_category]', __('Usuwaj produkty z wykluczonymi kategoriami'), true, 'checkbox_tag', array(
|
|
'checked' => $import && isset($import['delete_product_with_excluded_category']),
|
|
'help' => __('Zaznaczenie tej opcji spowoduje, że już dodane wcześniej produkty zostaną fizycznie usunięte z oferty sklepu jeżeli ich kategoria jest oznaczona jako wykluczona. Domyślnie wcześniej zaimportowane produkty pomimo wykluczenia ich kategorii nie są usuwane z oferty sklepu.'),
|
|
));
|
|
}
|
|
|
|
if ($import_config->with('product_status'))
|
|
{
|
|
echo st_admin_get_form_field('import[default_product_status]', __('Domyślny status produktu'), $import && isset($import['default_product_status']) ? $import['default_product_status'] : 1, 'select_tag', [
|
|
'choices' => [
|
|
0 => __('Nieaktywny'),
|
|
1 => __('Aktywny'),
|
|
],
|
|
'help' => __('Określa domyślny status nowo zaimportowanych produktów. W przypadku, gdy opcja jest ustawiona na <b>Niekatywny</b> opcja <b>Produkty wycofane z oferty</b> nie będzie ustawiała automatycznie produktu jako aktywnego w przypadku, gdy jest dostępny w ofercie.')
|
|
]);
|
|
}
|
|
|
|
if ($import_config->with('product_price'))
|
|
{
|
|
echo st_admin_get_form_field('import[price_margin]', __('Narzut'), $import && isset($import['price_margin']) ? $import['price_margin'] : array(), 'st_task_scheduler_import_price_margin', array('size' => 8, 'maxlength' => 10, 'data-format' => 'decimal'));
|
|
}
|
|
|
|
if ($import_config->with('product_price_array'))
|
|
{
|
|
|
|
echo st_include_partial('stTaskSchedulerImportBackend/product_price_array', array('import' => $import));
|
|
|
|
/*echo "<pre>";
|
|
print_r($import['price_array']);
|
|
echo "</pre>";*/
|
|
|
|
}
|
|
|
|
if ($import_config->with('product_stock'))
|
|
{
|
|
echo st_admin_get_form_field('import[default_availability]', __('Domyślna dostępność'), $import && isset($import['default_availability']) ? $import['default_availability'] : '', 'st_availability_select_tag', [
|
|
'help' => 'Określa domyślną dostępność jaka ma zostać ustawiona dla nowo zaimportowanych prodktów.'
|
|
]);
|
|
}
|
|
|
|
echo st_admin_get_form_field('import[withdraw_action]', __('Produkty wycofane z oferty'), $import && isset($import['withdraw_action']) ? $import['withdraw_action'] : 'deactivate', 'select_tag', [
|
|
'choices' => [
|
|
'deactivate' => __('Dezaktywuj'),
|
|
'set_availability' => __('Ustaw dostępność')
|
|
],
|
|
'help' => __('Określa jaka ma być podjęta akcja dla produktów wycofanych z oferty hurtownii. Do automatyczynego wznawiania produktów dla wartości dezaktywowanych opcja <b>Domyślny status produktu</b> musi być ustawiona na <b>Aktywny</b>')
|
|
]);
|
|
|
|
echo st_admin_get_form_field('import[withdraw_availability]', __('Dostępność dla produktów wycofanych'), $import && isset($import['withdraw_availability']) ? $import['withdraw_availability'] : '', 'st_availability_select_tag', [
|
|
'help' => __('Określa dostępność jaka ma zostać ustawiona dla produktów wycofanych z oferty. Opcja jest brana tylko pod uwagę jeżeli opcja <b>Produkty wycofane z oferty</b> ustawiona jest na <b>Ustaw dostępność</b>.'),
|
|
'exclude_default_stock' => true,
|
|
]);
|
|
|
|
if ($import_config->with('product_attributes'))
|
|
{
|
|
echo st_admin_get_form_field('import[attributes]', __('Atrybuty'), $import && isset($import['attributes']) ? $import['attributes'] : $import_config->getDefault('attributes'), 'select_tag', array(
|
|
'choices' => array(
|
|
'default' => __('Importuj jako atrybuty SOTESHOP'),
|
|
'append_description' => __('Doklejaj do opisu produktu'),
|
|
)
|
|
));
|
|
}
|
|
|
|
|
|
echo st_admin_get_form_field('import[code_prefix]', __('Prefiks kodu produktu'), $import && isset($import['code_prefix']) ? $import['code_prefix'] : $import_config->getDefault('code_prefix'), null, [
|
|
'disabled' => $code_prefix_disabled,
|
|
]);
|
|
|
|
if ($code_prefix_disabled)
|
|
{
|
|
echo input_hidden_tag('import[code_prefix]', $import && isset($import['code_prefix']) ? $import['code_prefix'] : $import_config->getDefault('code_prefix'));
|
|
}
|
|
|
|
if ($import_config->with('product_categories'))
|
|
{
|
|
echo st_admin_get_form_field('import[category]', __('Kategoria docelowa'), $import && isset($import['category']) ? $import['category'] : array(), 'st_category_picker_input_tag', array(
|
|
'allow_assign_root' => true,
|
|
'simple_array' => true,
|
|
'limit' => 1,
|
|
'help' => __('target.category.help'),
|
|
));
|
|
}
|
|
echo st_admin_section_end();
|
|
|
|
|
|
|
|
echo content_tag('div', st_get_admin_actions([
|
|
[
|
|
'label' => __('Wykonaj'),
|
|
'type' => 'default',
|
|
'params' => [
|
|
'name' => 'execute',
|
|
]
|
|
],
|
|
['label' => __('Zapisz'), 'type' => 'save']
|
|
]));
|
|
|
|
echo st_admin_form_tag_end();
|
|
|
|
st_include_partial('stTaskSchedulerImportBackend/footer');
|
|
?>
|
|
<script>
|
|
jQuery(function($) {
|
|
$('#import_withdraw_action').change(function() {
|
|
const withdrawAvailability = $('.row.import_withdraw_availability');
|
|
|
|
if ($(this).val() != 'set_availability') {
|
|
withdrawAvailability.hide();
|
|
} else {
|
|
withdrawAvailability.show();
|
|
}
|
|
}).change();
|
|
});
|
|
</script>
|