table = 'xallegro_configuration';
$this->identifier = 'id_xallegro_configuration';
$this->className = 'XAllegroConfiguration';
parent::__construct();
$this->tabAccess = Profile::getProfileAccess($this->context->employee->id_profile, Tab::getIdFromClassName('AdminXAllegroConfiguration'));
$this->tpl_folder = 'x_allegro_configuration/';
if (Tools::isSubmit('740closeConfigError')) {
XAllegroConfiguration::updateValue('740_CONFIG_ERROR', 1);
}
if (Tools::isSubmit('720closeAuctionsArchive')) {
XAllegroConfiguration::updateValue('720_AUCTIONS_ARCHIVE', 1);
}
if (Tools::isSubmit('720closeAuctionsRebuild')) {
XAllegroConfiguration::updateValue('720_AUCTIONS_REBUILD', 1);
}
if (Tools::isSubmit('630CloseCarrierIndexMessage')) {
XAllegroConfiguration::updateValue('630_CARRIER_PACKAGE_INFO_INDEX', 1);
}
if (Tools::isSubmit('clearAllegroCache')) {
(new Json())->clearAll();
$this->confirmations[] = $this->l('Wyczyszczono pamięć podręczną Allegro API');
}
if (Tools::isSubmit('disableAutoRenewForOlderOffers')) {
$this->disableAutoRenewForOlderOffers();
XAllegroConfiguration::updateValue('732_DISABLE_AUTO_RENEW_FOR_OLDER_OFFERS', 1);
$this->confirmations[] = $this->l('Wyłączono automatycznie wznawianie zduplikowanych ofert');
}
}
public function init()
{
parent::init();
$this->tpl_option_vars['ionCubeLicenseInfo'] = $this->displayIonLicenseInfo();
if (!Tools::isSubmit('update_module') && !Tools::isSubmit('process_update_module')) {
$this->getFieldsOptions();
Hook::exec('action'.$this->controller_name.'OptionsModifier', array(
'options' => &$this->fields_options,
'option_vars' => &$this->tpl_option_vars,
));
}
}
private function getFieldsOptions()
{
$externalIdList = [
['id_external' => XAllegroAuction::EXTERNAL_NONE, 'name' => $this->l('brak')],
['id_external' => XAllegroAuction::EXTERNAL_ID, 'name' => $this->l('ID produktu')],
['id_external' => XAllegroAuction::EXTERNAL_REFERENCE, 'name' => $this->l('kod referencyjny (indeks)')],
['id_external' => XAllegroAuction::EXTERNAL_EAN, 'name' => $this->l('kod kreskowy EAN-13')],
['id_external' => XAllegroAuction::EXTERNAL_UPC, 'name' => $this->l('kod kreskowy UPC')]
];
if (version_compare(_PS_VERSION_, '1.7.0.0', '>=')) {
$externalIdList[] = ['id_external' => XAllegroAuction::EXTERNAL_ISBN, 'name' => $this->l('kod książki ISBN')];
}
if (version_compare(_PS_VERSION_, '1.7.7.0', '>=')) {
$externalIdList[] = ['id_external' => XAllegroAuction::EXTERNAL_MPN, 'name' => $this->l('kod MPN')];
}
$orderEmployees = [];
$employees = (new PrestaShopCollection(Employee::class))
->where('active', '=', 1);
/** @var Employee $employee */
foreach ($employees->getResults() as $employee) {
$orderEmployees[] = [
'id' => $employee->id,
'name' => $employee->firstname . ' ' . $employee->lastname
];
}
$orderContacts = [];
foreach (Contact::getContacts($this->context->language->id) as $contact) {
$orderContacts[] = [
'id' => $contact['id_contact'],
'name' => $contact['name'] . ' (' . $contact['email'] . ')'
];
}
$groups = Group::getGroups($this->context->language->id);
$customerGroups = [];
foreach ($groups as $group) {
$customerGroups[] = [
'id' => $group['id_group'],
'key' => $group['id_group'],
'name' => $group['name']
];
}
$shopLanguages = [];
foreach (Language::getLanguages() as $language) {
$shopLanguages[] = [
'id' => $language['id_lang'],
'name' => $language['name']
];
}
if (version_compare(_PS_VERSION_, '1.7.1.2', '>=') && empty($orderContacts)) {
$this->warnings[] = $this->l('Brak utworzonnych kontaktów sklepowych, wiadomości do sprzedającego nie będą działały poprawnie!');
}
$front_hooks = [
['id_hook' => 'displayProductAllegroAuctionLink', 'name' => 'displayProductAllegroAuctionLink'],
['id_hook' => 'displayLeftColumnProduct', 'name' => 'displayLeftColumnProduct'],
['id_hook' => 'displayRightColumnProduct', 'name' => 'displayRightColumnProduct']
];
if (version_compare(_PS_VERSION_, '1.7.0.0', '>=')) {
$front_hooks[] = ['id_hook' => 'displayProductAdditionalInfo', 'name' => 'displayProductAdditionalInfo'];
$front_hooks[] = ['id_hook' => 'displayProductButtons', 'name' => 'displayProductButtons'];
}
$syncLastSuccess = XAllegroConfiguration::get('SYNC_LAST_TIME');
if ($syncLastSuccess) {
$syncLastSuccess = (new DateTime($syncLastSuccess))->format('Y-m-d H:i');
} else {
$syncLastSuccess = '' . $this->l('jeszcze nie został uruchomiony') . '';
}
$marketplacesDefault = Marketplace::toChoseList();
array_walk($marketplacesDefault, function (&$item) {
$item['key'] = $item['id'];
$item['name'] = preg_replace('/^(\w+)/u', '$1', $item['name']);
unset($item['id']);
});
$marketplacesCurrencies = [];
foreach (Marketplace::toChoseList() as $marketplace) {
$currency = (new MarketplacesProvider($marketplace['id']))->getMarketplaceCurrency();
$marketplacesCurrencies[$currency->id] = [
'marketplace' => $marketplace['name'],
'currencyId' => $currency->id,
'currencyName' => $currency->name,
'currencySign' => $currency->sign,
'currencyRate' => $currency->conversion_rate
];
}
$allegroAccounts = [];
$allegroAccountsFields = [];
$allegroAccountEmptyOption = [
'id' => '',
'name' => $this->l('-- wybierz --')
];
$allegroAccountGlobalOption = [
'id' => XAllegroConfigurationAccount::GLOBAL_OPTION,
'name' => $this->l('używaj ustawienia z opcji globalnych')
];
foreach (XAllegroAccount::getAll() as $account) {
$allegroAccounts['allegro_account_' . $account->id] = $account->username;
$accountLogged = false;
$afterSaleServices = [];
$responsiblePersons = [];
$responsiblePersons[] = $allegroAccountEmptyOption;
try {
$api = new XAllegroApi($account);
$accountLogged = true;
$afterSaleServicesProvider = new AfterSaleServicesProvider($api);
$responsiblePersonsProvider = new ResponsiblePersonsProvider($api);
foreach ($afterSaleServicesProvider->getAllServices() as $afterSaleServiceGroup => $afterSaleService) {
$afterSaleServices[$afterSaleServiceGroup][] = $allegroAccountEmptyOption;
foreach ($afterSaleService as $service) {
$afterSaleServices[$afterSaleServiceGroup][] = (array)$service;
}
}
foreach ($responsiblePersonsProvider->getResponsiblePersons() as $responsiblePerson) {
$responsiblePersons[] = [
'id' => $responsiblePerson->id,
'name' => $responsiblePerson->name
];
}
}
catch (Exception $ex) {}
$allegroAccountsFields['separator_account_advanced_settings_'.$account->id] = [
'name' => 'separator_account_advanced_settings_'.$account->id,
'type' => 'separator',
'heading' => 'Ustawienia konta - '.$account->username,
'tab' => 'allegro_account_' . $account->id,
]; // ------------------------------------------------------------------------------------------------------
$allegroAccountsFields['id_language'.$account->id] = [
'title' => $this->l('Język wystawianych ofert'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'account' => (int) $account->id,
'key' => 'id_language',
'identifier' => 'id',
'list' => $shopLanguages
]; // XAllegroAccount->id_language
$allegroAccountsFields['return_policy'.$account->id] = [
'title' => $this->l('Warunki zwrotów'),
'type' => ($accountLogged ? 'select' : 'badge_authorize'),
'tab' => 'allegro_account_'.$account->id,
'account' => (int) $account->id,
'accountLogged' => $accountLogged,
'key' => 'return_policy',
'identifier' => 'id',
'list' => (isset($afterSaleServices['returnPolicies']) ? $afterSaleServices['returnPolicies'] : [])
]; // XAllegroAccount->return_policy
$allegroAccountsFields['implied_warranty'.$account->id] = [
'title' => $this->l('Reklamacje'),
'type' => ($accountLogged ? 'select' : 'badge_authorize'),
'tab' => 'allegro_account_'.$account->id,
'account' => (int) $account->id,
'accountLogged' => $accountLogged,
'key' => 'implied_warranty',
'identifier' => 'id',
'list' => (isset($afterSaleServices['impliedWarranties']) ? $afterSaleServices['impliedWarranties'] : [])
]; // XAllegroAccount->implied_warranty
$allegroAccountsFields['warranty'.$account->id] = [
'title' => $this->l('Gwarancje (opcjonalnie)'),
'type' => ($accountLogged ? 'select' : 'badge_authorize'),
'tab' => 'allegro_account_'.$account->id,
'account' => (int) $account->id,
'accountLogged' => $accountLogged,
'key' => 'warranty',
'identifier' => 'id',
'list' => (isset($afterSaleServices['warranties']) ? $afterSaleServices['warranties'] : [])
]; // XAllegroAccount->warranty
$allegroAccountsFields['responsible_person_default_id'.$account->id] = [
'title' => $this->l('Osoba odpowiedzialna za zgodność produktu (opcjonalnie)'),
'type' => ($accountLogged ? 'select' : 'badge_authorize'),
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'accountLogged' => $accountLogged,
'key' => 'RESPONSIBLE_PERSON_DEFAULT_ID',
'identifier' => 'id',
'list' => $responsiblePersons
]; // RESPONSIBLE_PERSON_DEFAULT_ID
$allegroAccountsFields['separator_global_advanced_settings_'.$account->id] = [
'name' => 'separator_global_advanced_settings_'.$account->id,
'type' => 'separator',
'heading' => 'Podstawowe ustawienia wystawiania',
'tab' => 'allegro_account_' . $account->id,
]; // ------------------------------------------------------------------------------------------------------
$allegroAccountsFields['AUCTION_DISABLE_ORDER_MESSAGE_'.$account->id] = [
'title' => $this->l('Wyłącz uwagi do zakupu (wiadomość dla sprzedającego)'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'AUCTION_DISABLE_ORDER_MESSAGE',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '1', 'name' => $this->l('tak').' - '.$this->l('brak pola "uwagi do zakupu"')],
['id' => '0', 'name' => $this->l('nie').' - '.$this->l('opcjonalne pole "uwagi do zakupu"')]
]
]; // AUCTION_DISABLE_ORDER_MESSAGE
$allegroAccountsFields['AUCTION_B2B_ONLY_'.$account->id] = [
'title' => $this->l('Oferta tylko dla klientów biznesowych'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'AUCTION_B2B_ONLY',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '1', 'name' => $this->l('tak')],
['id' => '0', 'name' => $this->l('nie')]
]
]; // AUCTION_B2B_ONLY
$allegroAccountsFields['separator_price_advanced_settings_'.$account->id] = [
'name' => 'separator_price_advanced_settings_'.$account->id,
'type' => 'separator',
'heading' => 'Ustawienia cen i synchronizacja',
'tab' => 'allegro_account_' . $account->id,
]; // ------------------------------------------------------------------------------------------------------
$allegroAccountsFields['MARKUP_PERCENT_'.$account->id] = [
'title' => $this->l('Narzut ceny dla produktów'),
'desc' => $this->l('Pozostaw puste aby użyć ustawień globalnych'),
'type' => 'text',
'class' => 'fixed-width-sm xcast xcast-float xcast-unsigned xcast-allow-empty',
'size' => 10,
'suffix' => '%',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'MARKUP_PERCENT',
]; // MARKUP_PERCENT
$allegroAccountsFields['MARKUP_VALUE_'.$account->id] = [
'title' => $this->l('Marża ceny dla produktów'),
'desc' => $this->l('Pozostaw puste aby użyć ustawień globalnych'),
'type' => 'text',
'class' => 'fixed-width-sm xcast xcast-float xcast-unsigned xcast-allow-empty',
'size' => 10,
'suffix' => $this->l('zł'),
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'MARKUP_VALUE',
]; // MARKUP_VALUE
$allegroAccountsFields['MARKUP_CALCULATION_'.$account->id] = [
'title' => $this->l('Dolicz narzut/marżę do'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'MARKUP_CALCULATION',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => 'WITHOUT_INDIVIDUAL_PRICE', 'name' => $this->l('tylko do produktów bez ceny indywidualnej')],
['id' => 'ALL', 'name' => $this->l('wszystkich produktów')]
],
]; // MARKUP_CALCULATION
$allegroAccountsFields['AUCTION_CALCULATE_FEES_'.$account->id] = [
'title' => $this->l('Doliczaj prowizje za sprzedaż i promowanie'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'AUCTION_CALCULATE_FEES',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '0', 'name' => $this->l('nie doliczaj')],
['id' => '2', 'name' => $this->l('tylko dla produktów bez ceny indywidualnej')],
['id' => '1', 'name' => $this->l('dla wszystkich produktów')]
],
]; // AUCTION_CALCULATE_FEES
$allegroAccountsFields['AUCTION_PRICE_CUSTOMER_GROUP_'.$account->id] = [
'title' => $this->l('Przeliczaj ceny według grupy'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'AUCTION_PRICE_CUSTOMER_GROUP',
'identifier' => 'id',
'list' => array_merge([$allegroAccountGlobalOption], $customerGroups),
]; // AUCTION_PRICE_CUSTOMER_GROUP
$allegroAccountsFields['PRICE_UPDATE_'.$account->id] = [
'title' => $this->l('Aktualizuj ceny na Allegro'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'PRICE_UPDATE',
'identifier' => 'id',
'list' => array_merge([$allegroAccountGlobalOption], PriceUpdateSettings::toChoseList())
]; // PRICE_UPDATE
$allegroAccountsFields['AUCTION_CHECK_BADGES_'.$account->id] = [
'title' => $this->l('Sprawdzaj kampanie promocyjne przypisane do ofert'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'AUCTION_CHECK_BADGES',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '1', 'name' => $this->l('tak')],
['id' => '0', 'name' => $this->l('nie')],
],
]; // AUCTION_CHECK_BADGES
$allegroAccountsFields['separator_stock_advanced_settings_'.$account->id] = [
'name' => 'separator_stock_advanced_settings_'.$account->id,
'type' => 'separator',
'heading' => 'Ustawienia ilości, aktywności i synchronizacja',
'tab' => 'allegro_account_'.$account->id,
]; // ------------------------------------------------------------------------------------------------------
$allegroAccountsFields['QUANITY_ALLEGRO_UPDATE_' . $account->id] = [
'title' => $this->l('Aktualizuj stany magazynowe w Allegro'),
'type' => 'select',
'tab' => 'allegro_account_' . $account->id,
'configurationAccount' => (int) $account->id,
'key' => 'QUANITY_ALLEGRO_UPDATE',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '1', 'name' => $this->l('tak')],
['id' => '0', 'name' => $this->l('nie')],
],
]; // QUANITY_ALLEGRO_UPDATE
$allegroAccountsFields['CLOSE_AUCTION_TRESHOLD_' . $account->id] = [
'title' => $this->l('Ilość produktu poniżej której wymuszamy zamknięcie oferty'),
'desc' => $this->l('Pozostaw puste aby użyć ustawień globalnych'),
'type' => 'text',
'tab' => 'allegro_account_' . $account->id,
'class' => 'fixed-width-sm xcast xcast-int xcast-allow-empty',
'suffix' => $this->l('szt.'),
'configurationAccount' => (int) $account->id,
'key' => 'CLOSE_AUCTION_TRESHOLD',
]; // CLOSE_AUCTION_TRESHOLD
$allegroAccountsFields['QUANTITY_AUTO_RENEW_'.$account->id] = [
'title' => $this->l('Włącz auto wznawianie ofert'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'QUANTITY_AUTO_RENEW',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '1', 'name' => $this->l('tak')],
['id' => '0', 'name' => $this->l('nie')]
]
]; // QUANTITY_AUTO_RENEW
$allegroAccountsFields['QUANTITY_AUTO_RENEW_THRESHOLD_'.$account->id] = [
'title' => $this->l('Ilość produktu powyżej której wznowimy ofertę'),
'desc' => $this->l('Pozostaw puste aby użyć ustawień globalnych'),
'type' => 'text',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'QUANTITY_AUTO_RENEW_THRESHOLD',
'class' => 'fixed-width-sm xcast xcast-int xcast-allow-empty',
'suffix' => $this->l('szt.')
]; // QUANTITY_AUTO_RENEW_THRESHOLD
$allegroAccountsFields['OFFER_RENEW_KEEP_PROMOTION_'.$account->id] = [
'title' => $this->l('Ustawienia promowania wznawianej oferty'),
'type' => 'select',
'tab' => 'allegro_account_'.$account->id,
'configurationAccount' => (int) $account->id,
'key' => 'OFFER_RENEW_KEEP_PROMOTION',
'identifier' => 'id',
'list' => [
$allegroAccountGlobalOption,
['id' => '1', 'name' => $this->l('zostaw ustawione opcje promowania')],
['id' => '0', 'name' => $this->l('usuń opcje promowania')]
]
]; // OFFER_RENEW_KEEP_PROMOTION
}
$this->fields_options = [
'general' => [
'title' => $this->l('Podstawowe ustawienia wystawiania'),
'image' => false,
'fields' => [
'TITLE_PATTERN' => [
'title' => $this->l('Domyślny tytuł oferty'),
'desc' =>
'{product_id} '.$this->l('- ID produktu') . '
' .
'{product_name} '.$this->l('- Nazwa produktu') . '
' .
'{product_name_attribute} '.$this->l('- Nazwa atrybutu') . '
' .
'{product_short_desc} '.$this->l('- Krótki opis') . '
' .
'{product_reference} '.$this->l('- Kod referencyjny (indeks) produktu') . '
' .
'{product_ean13} '.$this->l('- Kod EAN13') . '
' .
'{product_weight} '.$this->l('- Waga produktu') .'
' .
'{product_price} '.$this->l('- Cena produktu') . '
' .
'{manufacturer_name} '.$this->l('- Nazwa producenta') . '
' .
'{attribute_group_X} '.$this->l('- Nazwa i wartość grupy atrybutów X (grupa atrybutów musi być przypisana do kombinacji produktu)') . '
' .
'{attribute_group_value_X} '.$this->l('- Wartość grupy atrybutów X (grupa atrybutów musi być przypisana do kombinacji produktu)') . '
' .
'{feature_X} '.$this->l('- Nazwa i wartość cechy X (cecha musi być przypisana do produktu)') . '
' .
'{feature_value_X} '.$this->l('- Wartość cechy X (cecha musi być przypisana do produktu)'),
'type' => 'text'
],
'SELECT_ALL' => [
'title' => $this->l('Domyślnie zaznaczone produkty do wystawienia'),
'type' => 'select',
'identifier' => 'id_select_all',
'list' => [
['id_select_all' => 0, 'name' => $this->l('nie zaznaczaj')],
['id_select_all' => 1, 'name' => $this->l('wszystkie')],
['id_select_all' => 2, 'name' => $this->l('tylko niewystawione')]
]
],
'PRODUCTIZATION_MODE' => [
'title' => $this->l('Domyślny tryb wystawiania oferty'),
'type' => 'select',
'identifier' => 'id_productization_mode',
'list' => [
['id_productization_mode' => XAllegroAuction::PRODUCTIZATION_ASSIGN, 'name' => $this->l('wystaw według katalogu (domyślne)')],
['id_productization_mode' => XAllegroAuction::PRODUCTIZATION_NEW, 'name' => $this->l('wystaw jako nowy produkt')]
]
],
'QUANTITY_DEFAULT' => [
'title' => $this->l('Domyślna ilość produktów w ofercie'),
'desc' => $this->l('Puste pole (luz zero) oznacza maksymalną dostępną ilość produktów'),
'suffix' => $this->l('szt.'),
'class' => 'fixed-width-sm xcast xcast-int',
'type' => 'text'
],
'DURATION_DEFAULT' => [
'title' => $this->l('Domyślny czas trwania oferty'),
'type' => 'select',
'identifier' => 'id',
'list' => XAllegroAuction::getPublicationDurationOptions()
],
'AUCTION_EXTERNAL' => [
'title' => $this->l('Sygnatura oferty (external.id)'),
'desc' => $this->l('Wewnętrzny identyfikator oferty'),
'type' => 'select',
'identifier' => 'id_external',
'list' => $externalIdList
],
'AUCTION_DISABLE_ORDER_MESSAGE' => [
'title' => $this->l('Wyłącz uwagi do zakupu (wiadomość dla sprzedającego)'),
'class' => 'mark-as-account-option',
'type' => 'bool'
],
'AUCTION_B2B_ONLY' => [
'title' => $this->l('Oferta tylko dla klientów biznesowych'),
'class' => 'mark-as-account-option',
'type' => 'bool'
],
'hr_general_1' => [
'name' => 'hr_general_1',
'type' => 'hr'
],
'SELECT_IMAGES' => [
'title' => $this->l('Domyślnie zaznaczone zdjęcia'),
'desc' => $this->l('Włączenie tej opcji spowoduje zaznaczenie wybranej ilości zdjęć podczas wystawiania oferty'),
'type' => 'select',
'identifier' => 'id_selection',
'list' => [
['id_selection' => '0', 'name' => $this->l('brak zaznaczonych')],
['id_selection' => 'first', 'name' => $this->l('tylko pierwsze')],
['id_selection' => 'all', 'name' => $this->l('wszystkie')],
],
],
'IMAGES_COMBINATION' => [
'title' => $this->l('Przenieś wszystkie zdjęcia do każdej kombinacji produktu'),
'type' => 'bool',
],
'IMAGES_TYPE' => [
'title' => $this->l('Typ zdjęcia produktu'),
'desc' => $this->l('Minimalne rozmiary zdjęcia - dłuższy bok min. 500px'),
'type' => 'select',
'identifier' => 'id',
'list' => $this->getImageTypes('products')
],
'IMAGES_MANUFACTURER_TYPE' => [
'title' => $this->l('Typ zdjęcia producenta'),
'desc' => $this->l('Minimalne rozmiary zdjęcia - dłuższy bok min. 500px'),
'type' => 'select',
'identifier' => 'id',
'list' => $this->getImageTypes('manufacturers')
],
'IMAGES_UPLOAD_TYPE' => [
'title' => $this->l('Sposób wysyłania zdjęć do Allegro'),
'desc' => $this->l('Zalecamy przesyłanie zdjęć za pomocą cURL - w przypadku pracy lokalnie lub dodatkowych blokad po stronie serwera możesz skorzystać z opcji binarnej'),
'type' => 'select',
'identifier' => 'id_upload_type',
'list' => [
['id_upload_type' => 'CURL', 'name' => $this->l('cURL (domyślnie)')],
['id_upload_type' => 'BINARY', 'name' => $this->l('binarnie')]
],
],
'IMAGES_CACHE' => [
'title' => $this->l('Cache’owanie zdjęć'),
'desc' => $this->l('Zachęcamy, aby nie blokować możliwości cache’owania zdjęć po stronie Allegro - mechanizm ten wpływa pozytywnie na szybkość i niezawodność wystawiania ofert'),
'type' => 'select',
'identifier' => 'id',
'list' => [
['id' => 0, 'name' => $this->l('brak cache')],
['id' => 12, 'name' => $this->l('12 godzin')],
['id' => 24, 'name' => $this->l('24 godziny')],
['id' => 120, 'name' => $this->l('5 dni')],
['id' => 168, 'name' => $this->l('7 dni (domyślne)')]
]
]
],
'submit' => ['title' => $this->l('Zapisz')]
],
'productization' => [
'title' => $this->l('Ustawienia wystawiania w Katalogu Allegro / Produktyzacja'),
'fields' => [
'PRODUCTIZATION_SEARCH' => [
'title' => $this->l('Wyszukaj produkt w katalogu Allegro'),
'type' => 'checkbox' // type checkbox uses json_decode
],
'PRODUCTIZATION_NAME' => [
'title' => $this->l('Tytuł oferty przy wystawianiu do Katalogu Allegro'),
'type' => 'select',
'identifier' => 'id',
'list' => [
['id' => 'prestashop', 'name' => $this->l('użyj nazwy produktu z PrestaShop')],
['id' => 'prestashop_copy', 'name' => $this->l('użyj nazwy produktu z PrestaShop, z możliwością skopiowania z Katalogu Allegro')],
['id' => 'allegro', 'name' => $this->l('użyj nazwy produktu z Katalogu Allegro')]
]
],
'PRODUCTIZATION_DESCRIPTION' => [
'title' => $this->l('Opis przy wystawianiu do Katalogu Allegro'),
'type' => 'select',
'identifier' => 'id',
'list' => [
['id' => 'prestashop', 'name' => $this->l('użyj opisu z PrestaShop i wybranego szablonu')],
['id' => 'allegro', 'name' => $this->l('użyj opisu pobranego z Katalogu Allegro (jeśli istnieje)')]
]
],
'PRODUCTIZATION_IMAGES' => [
'title' => $this->l('Zdjęcia przy wystawianiu do Katalogu Allegro'),
'type' => 'select',
'identifier' => 'id',
'list' => [
['id' => 'prestashop', 'name' => $this->l('użyj zdjęć z PrestaShop i wybranego szablonu')],
['id' => 'allegro', 'name' => $this->l('użyj zdjęć pobranych z Katalogu Allegro (jeśli istnieją)')],
['id' => 'merge', 'name' => $this->l('połącz zdjęcia z PrestaShop i Katalogu Allegro (ryzyko zduplikowanych zdjęć)')]
]
],
'hr_productization_1' => [
'name' => 'hr_productization_1',
'type' => 'hr'
],
'PRODUCTIZATION_SHOW_REFERENCE' => [
'title' => $this->l('Wyświetl kod referencyjny produktu podczas wystawiania'),
'type' => 'bool'
],
'PRODUCTIZATION_SHOW_GTIN' => [
'title' => $this->l('Wyświetl kod GTIN produktu podczas wystawiania'),
'desc' => $this->l('EAN13, ISBN oraz UPC - jeśli jest wpisany w produkcie'),
'type' => 'bool'
],
'PRODUCTIZATION_SHOW_MPN' => [
'title' => $this->l('Wyświetl kod MPN produktu podczas wystawiania'),
'type' => 'bool'
]
],
'submit' => ['title' => $this->l('Zapisz')]
],
'product_link' => [
'title' => $this->l('Link do oferty na stronie produktu'),
'description' => (version_compare(_PS_VERSION_, '1.7.0.0', '>=')
? $this->l('Umieść ten specjalny znacznik w jednym z plikow, aby użyć tej funkcji na stronie produktu') .
'
catalog/_partials/product-add-to-cart.tpl
catalog/_partials/product-additional-info.tpl
catalog/_partials/product-customization.tpl
catalog/_partials/product-details.tpl
catalog/_partials/product-prices.tpl
catalog/_partials/product-discounts.tpl
catalog/_partials/product-variants.tpl'
: $this->l('Umieść ten specjalny znacznik w pliku \'product.tpl \', aby użyć tej funkcji na stronie produktu')) .
'
{hook h=\'displayProductAllegroAuctionLink\' product=$product}',
'fields' => [
'FRONT_DISPLAY_LINK' => [
'title' => $this->l('Wyświetl link do oferty na stronie produktu'),
'type' => 'bool'
],
'FRONT_DISPLAY_LINK_HOOK' => [
'title' => $this->l('Hook wyświetlający link'),
'type' => 'select',
'identifier' => 'id_hook',
'list' => $front_hooks,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['FRONT_DISPLAY_LINK' => 1]
)
]
],
'submit' => ['title' => $this->l('Zapisz')]
],
'sync_prices' => [
'title' => $this->l('Ustawienia cen i synchronizacja'),
'fields' => [
'MARKUP_PERCENT' => [
'title' => $this->l('Narzut ceny dla produktów'),
'suffix' => '%',
'class' => 'fixed-width-sm xcast xcast-float xcast-unsigned mark-as-account-option',
'type' => 'text'
],
'MARKUP_VALUE' => [
'title' => $this->l('Marża ceny dla produktów'),
'suffix' => 'zł',
'class' => 'fixed-width-sm xcast xcast-float xcast-unsigned mark-as-account-option',
'type' => 'text'
],
'MARKUP_CALCULATION' => [
'title' => $this->l('Dolicz narzut/marżę do'),
'class' => 'mark-as-account-option',
'type' => 'select',
'identifier' => 'id_markup_calculation',
'list' => [
['id_markup_calculation' => 'WITHOUT_INDIVIDUAL_PRICE', 'name' => $this->l('tylko do produktów bez ceny indywidualnej')],
['id_markup_calculation' => 'ALL', 'name' => $this->l('wszystkich produktów')]
]
],
'AUCTION_CALCULATE_FEES' => [
'title' => $this->l('Doliczaj prowizje za sprzedaż i promowanie'),
'class' => 'mark-as-account-option',
'type' => 'select',
'identifier' => 'id_fees_calculation',
'list' => [
['id_fees_calculation' => '0', 'name' => $this->l('nie doliczaj')],
['id_fees_calculation' => '2', 'name' => $this->l('tylko dla produktów bez ceny indywidualnej')],
['id_fees_calculation' => '1', 'name' => $this->l('dla wszystkich produktów')]
]
],
'AUCTION_PRICE_CUSTOMER_GROUP' => [
'title' => $this->l('Przeliczaj ceny według grupy'),
'class' => 'mark-as-account-option',
'type' => 'select',
'identifier' => 'id',
'list' => $customerGroups
],
'AUCTION_MARKETPLACE_CONVERSION_RATE' => [
'title' => $this->l('Kurs wymiany walut dla rynków zagranicznych'),
'type' => 'select',
'identifier' => 'id_marketplace_conversion_rate',
'list' => [
['id_marketplace_conversion_rate' => 'CURRENCY', 'name' => $this->l('przeliczaj wg waluty danego rynku')],
['id_marketplace_conversion_rate' => 'VALUE', 'name' => $this->l('własny kurs wymiany')]
]
],
'AUCTION_MARKETPLACE_CONVERSION_RATE_VALUE' => [
'title' => '',
'type' => 'checkbox', // type checkbox uses json_decode
'currencies' => $marketplacesCurrencies,
'currencyDefault' => Currency::getDefaultCurrency(),
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['AUCTION_MARKETPLACE_CONVERSION_RATE' => 'VALUE']
)
],
'PRICE_ROUND' => [
'title' => $this->l('Zaokrąglaj ceny do pełnej kwoty'),
'type' => 'bool'
],
'PRICE_BASE' => [
'title' => $this->l('Używaj tylko ceny bazowej produktu'),
'desc' => $this->l('Włączenie tej opcji spowoduje pominięcie cen promocyjnych i rabatów grupowych'),
'type' => 'bool'
],
'PRICE_TAX' => [
'title' => $this->l('Wyślij wartość podatku VAT do Allegro'),
'type' => 'bool'
],
'hr_sync_prices_1' => [
'name' => 'hr_sync_prices_1',
'type' => 'hr'
],
'PRICE_UPDATE' => [
'title' => $this->l('Aktualizuj ceny na Allegro'),
'class' => 'mark-as-account-option',
'type' => 'select',
'identifier' => 'id',
'list' => PriceUpdateSettings::toChoseList()
],
'AUCTION_CHECK_BADGES' => [
'title' => $this->l('Sprawdzaj kampanie promocyjne przypisane do ofert'),
'desc' => $this->l('Sprawdzaj podczas aktualizacji cen czy Allegro przypisało ofertę do kampanii ze specjalną ceną/ofertą') . '
' .
$this->l('Jeżeli tak, pominiemy aktualizacje ceny takiej oferty'),
'class' => 'mark-as-account-option',
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldNotMatch(),
['PRICE_UPDATE' => 0]
)
]
],
'submit' => ['title' => $this->l('Zapisz')]
],
'sync_quantities' => [
'title' => $this->l('Ustawienia ilości, aktywności i synchronizacja'),
'fields' => [
'QUANITY_CHECK' => [
'title' => $this->l('Nadzoruj stany magazynowe'),
'desc' => $this->l('Wyłączenie tej opcji spowoduje możliwość sprzedaży ilości niezależnie od stanu magazynowego w sklepie'),
'type' => 'bool'
],
'QUANITY_ALLEGRO_UPDATE' => [
'title' => $this->l('Aktualizuj stany magazynowe w Allegro'),
'class' => 'mark-as-account-option',
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1]
)
],
'QUANITY_ALLEGRO_ALWAYS_MAX' => [
'title' => $this->l('Utrzymuj maksymalne stany magazynowe na Allegro'),
'desc' => $this->l('Ustawia zawsze dostępną ilość z PrestaShop na Allegro') . '
' .
$this->l('np.: przy zwiększaniu ilości z 5 na 10, na Allegro będzie dostępne 10 sztuk produktu'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1, 'QUANITY_ALLEGRO_UPDATE' => 1]
)
],
'QUANITY_ALLEGRO_VALUE_MAX' => [
'title' => $this->l('Maksymalny stan magazynowy na Allegro'),
'desc' => $this->l('Puste pole (luz zero) oznacza maksymalną dostępną ilość produktów') . '
' .
$this->l('Wpisanie w tej opcji np.: 100 sztuk, ustawi maksymalnie 100 sztuk na sprzedaż w Allegro (mimo posiadania większej ilości na stanie)'),
'suffix' => $this->l('szt.'),
'class' => 'fixed-width-sm xcast xcast-int',
'type' => 'text',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1, 'QUANITY_ALLEGRO_UPDATE' => 1]
)
],
'CLOSE_AUCTION_TRESHOLD' => [
'title' => $this->l('Ilość produktu poniżej której wymuszamy zamknięcie oferty'),
'desc' => $this->l('Puste pole (luz zero) aby nie używać tej opcji') . '
' .
$this->l('Opcja przydatna szczególnie w sytuacji, gdy chcemy mieć pewność, że zawsze będziemy mieli określoną ilość sztuk w sklepie pomimo sprzedaży na Allegro') . '
' .
$this->l('Domyślnie, oferta zamykana jest gdy jej stan zejdzie poniżej 1 sztuki'),
'suffix' => $this->l('szt.'),
'class' => 'fixed-width-sm xcast xcast-int mark-as-account-option',
'type' => 'text',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1, 'QUANITY_ALLEGRO_UPDATE' => 1]
)
],
'PRODUCT_ASSOC_CLOSE_UNACTIVE' => [
'title' => $this->l('Zamykaj oferty na Allegro po wyłączeniu produktu w sklepie'),
'desc' => $this->l('Po wyłączeniu produktu w sklepie, jeśli był on powiązany z ofertą Allegro, zostanie ona zamknięta') . '
' .
$this->l('Bazuje na hooku "actionObjectProductUpdateAfter"'),
'type' => 'bool'
],
'PRODUCT_ASSOC_CLOSE_UNACTIVE_DB' => [
'title' => $this->l('Zamykaj oferty na Allegro według wyłączonych produktów w bazie danych'),
'desc' => $this->l('Sprawdza wyłączone produkty w bazie danych, jeśli był on powiązany z ofertą Allegro, zostanie ona zamknięta') . '
' .
$this->l('Roziązanie dla integracji które zarządzają aktywnością produktów bez wykorzystywania hooków, np.: x13import'),
'type' => 'bool'
],
'PRODUCT_ASSOC_CLOSE_DELETED' => [
'title' => $this->l('Zamykaj oferty na Allegro po usunięciu produktu lub kombinacji'),
'desc' => $this->l('Po usunięciu produktu/kombinacji ze sklepu, jeśli był on powiązany z ofertą Allegro, zostanie ona zamknięta'),
'type' => 'bool'
],
'PRODUCT_ASSOC_CLOSE_SKIP_BID_AUCTION' => [
'title' => $this->l('Pomijaj zamykanie Licytacji gdy posiadają one oferty kupna'),
'desc' => $this->l('Jeśli ta opcja nie będzie aktywna, a posiadasz ofertę w trybie licytacji z przynajmniej jedną ofertą kupna, osoba licytująca automatycznie wygra taką ofertę w momencie jej zamknięcia.'),
'type' => 'bool'
],
'hr_sync_quantities_1' => [
'name' => 'hr_sync_quantities_1',
'type' => 'hr'
],
'DISABLE_AUTO_RENEW_FOR_OLDER_OFFERS' => [
'title' => $this->l('Wyłącz automatycznie wznawianie zduplikowanych ofert'),
'desc' => $this->l('Indywidualnie wyłącza opcje automatycznego wznawiania dla starszych ofert powiązanych z tym samym produktem/kombinacją (duplikatów)') . '
' .
$this->l('Jeśli wystawiasz produkty/kombinacje poraz kolejny jako nowa oferta po zakończeniu poprzedniej, tworzysz duplikaty które zostaną wznowione') . '
' .
'' . $this->l('Użyj tej opcji, przed włączeniem automatycznego wznawiania, aby nie wznawiać starszych zduplikowanych ofert!') . '
' .
'' . $this->l('Działanie jest jednorazowe i obejmuje wszystkie przypisane oferty!') . '',
'type' => 'button',
'button_label' => $this->l('Wyłącz automatycznie wznawianie zduplikowanych ofert'),
'button_id' => 'disableAutoRenewForOlderOffers',
'button_class' => 'btn btn-default',
'button_href' => $this->context->link->getAdminLink('AdminXAllegroConfiguration') . '&disableAutoRenewForOlderOffers'
],
'QUANTITY_AUTO_RENEW' => [
'title' => $this->l('Włącz automatycznie wznawianie ofert'),
'desc' => $this->l('Automatycznie wznawia zakończone oferty, gdy powiązany produkt wróci na stan w magazynie') . '
' .
$this->l('Dotyczy tylko ofert których format sprzedaży to "Kup teraz"'),
'class' => 'mark-as-account-option',
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1, 'QUANITY_ALLEGRO_UPDATE' => 1]
)
],
'QUANTITY_AUTO_RENEW_THRESHOLD' => [
'title' => $this->l('Ilość produktu powyżej której automatycznie wznowimy ofertę'),
'desc' => $this->l('Puste pole (luz zero) aby nie używać tej opcji') . '
' .
$this->l('Nie może być niższa niż wartość w opcji "Ilość produktu poniżej której wymuszamy zamknięcie oferty"'),
'suffix' => $this->l('szt.'),
'class' => 'fixed-width-sm xcast xcast-int mark-as-account-option',
'type' => 'text',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1, 'QUANITY_ALLEGRO_UPDATE' => 1, 'QUANTITY_AUTO_RENEW' => 1]
)
],
'PRODUCT_ASSOC_RENEW_ONLY_ACTIVE' => [
'title' => $this->l('Wznawiaj automatycznie oferty tylko dla włączonych produktów'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['QUANITY_CHECK' => 1, 'QUANITY_ALLEGRO_UPDATE' => 1, 'QUANTITY_AUTO_RENEW' => 1]
)
],
'OFFER_RENEW_KEEP_PROMOTION' => [
'title' => $this->l('Ustawienia promowania wznawianej oferty'),
'class' => 'mark-as-account-option',
'type' => 'select',
'identifier' => 'id',
'list' => [
['id' => 1, 'name' => $this->l('zostaw ustawione opcje promowania')],
['id' => 0, 'name' => $this->l('usuń opcje promowania')]
]
],
'OFFER_RENEW_MAX_DAYS' => [
'title' => $this->l('Wznawiaj tylko oferty nie starsze niż'),
'desc' => $this->l('Puste pole (luz zero) aby nie używać tej opcji') . '
' .
sprintf($this->l('Nie ma możliwości wznowienia oferty po %d dniach od jej zakończenia (zostaje przeniesiona do archiwum Allegro)'), XAllegroApi::OFFER_DAYS_BEFORE_ARCHIVE) .
(XAllegroAuction::countClosedEmptyEndDate()
? '
' . $this->l('Twoje zmapowane oferty nie posiadają uzupełnionej daty zakończenia') . '' .
'
' . $this->l('Aby powyższe ustawienie działało poprawnie uruchom opcje "Wymuś stan ofert według Allegro"') . ''
: ''),
'suffix' => $this->l('dni'),
'class' => 'fixed-width-sm xcast xcast-int',
'type' => 'text'
],
/*'PRODUCT_ASSOC_RENEW_ACTIVE' => [
'title' => $this->l('Wznawiaj oferty na Allegro po włączeniu produktu w sklepie'),
'desc' => $this->l('Po włączeniu produktu w sklepie, jeśli był on powiązany z ofertą Allegro, zostanie ona wznowiona') . '
' .
$this->l('Bazuje na hooku "actionObjectProductUpdateAfter"'),
'type' => 'bool'
],
'PRODUCT_ASSOC_RENEW_ACTIVE_DB' => [
'title' => $this->l('Wznawiaj oferty na Allegro według włączonych produktów w bazie danych'),
'desc' => $this->l('Sprawdza włączone produkty w bazie danych, jeśli był on powiązany z ofertą Allegro, zostanie ona wznowiona') . '
' .
$this->l('Roziązanie dla integracji które zarządzają aktywnością produktów bez wykorzystywania hooków, np.: x13import'),
'type' => 'bool'
],*/
'hr_sync_quantities_2' => [
'name' => 'hr_sync_quantities_2',
'type' => 'hr'
],
'INACTIVE_PRODUCTS_SKIP' => [
'title' => $this->l('Pomijaj nieaktywne produkty podczas wystawiania, lub ręcznego wznawiania ofert'),
'type' => 'bool'
],
'QUANITY_ALLEGRO_OOS' => [
'title' => $this->l('Pomijaj produkty z flagą "Pozwól zamawiać"'),
'desc' => $this->l('Produkty w sklepie oznaczone jako "Pozwól zamawiać" zostaną pominięte podczas wystawiania oraz aktualizacji stanów magazynowych na Allegro'),
'type' => 'bool'
],
'QUANITY_ALLEGRO_HOOK_SKIP' => [
'title' => $this->l('Pomijaj aktualizację ilości za pomocą hooka'),
'desc' => $this->l('Nie aktualizuje stanów magazynowych na Allegro w momencie wywołania hooka "actionUpdateQuantity" ') . '
' .
$this->l('Hook uruchamia się podczas składania zamówień przez użytkowników na sklepie, lub zmiany stanów magazynowych w edycji produktu') . '
' .
$this->l('Zalecane w momencie wystawiania jednocześnie wielu ofert dla jednego produktu, w celu zniwelowania spadków wydajności'),
'type' => 'bool'
]
],
'submit' => ['title' => $this->l('Zapisz')]
],
'sync_orders' => [
'title' => $this->l('Synchronizacja zamówień'),
'fields' => [
'IMPORT_ORDERS' => [
'title' => $this->l('Importuj zamówienia z Allegro do sklepu'),
'type' => 'bool'
],
'ORDER_IMPORT_UNASSOC_PRODUCTS' => [
'title' => $this->l('Pobieraj zamówienia i pozycje dla niepowiązanych ofert'),
'desc' => $this->l('Dodaje niepowiązane oferty do szczegółów zamówienia jako pusty produkt') . '
' .
$this->l('Zapewnia 100% pokrycia zamówienia na wygenerowanej fakturze'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_IMPORT_UNASSOC_PRODUCTS_EXTERNAL' => [
'title' => $this->l('Użyj sygnatury oferty (external.id) dla niepowiązanych ofert'),
'desc' => $this->l('Dodaje sygnaturę oferty, jako kod referencyjny (indeks) produktu, dla niepowiązanej oferty dodanej do szczegółów zamówienia') . '
' .
$this->l('Domyślny kod referencyjny niepowiązanej oferty') . ': "x13allegro-empty-product"',
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1, 'ORDER_IMPORT_UNASSOC_PRODUCTS' => 1]
)
],
'ORDER_IMPORT_UNASSOC_SUMMARY' => [
'title' => $this->l('Pobieraj pełną kwotę zamówienia do podsumowania'),
'desc' => $this->l('W przypadku nie pobierania niepowiązanych ofert można zdecydować jaka kwota będzie widnieć w podsumowaniu zamówienia') . '
' .
$this->l('Wyłączenie tej opcji powoduje, że kwota w podsumowaniu obliczana jest na podstawie tylko powiązanych ofert'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1, 'ORDER_IMPORT_UNASSOC_PRODUCTS' => 0]
)
],
'QUANITY_SHOP_UPDATE' => [
'title' => $this->l('Aktualizuj stany magazynowe w sklepie, po zakupie na Allegro'),
'desc' => $this->l('Zdejmuje stany magazynowe w sklepie na podstawie zamówień pobranych z Allegro') . '
' .
$this->l('Działa niezależnie od funkcji "Importuj zamówienia z Allegro do sklepu"'),
'type' => 'bool'
],
'ORDER_DATE_FROM_CHECKOUT_FORM' => [
'title' => $this->l('Użyj daty sprzedaży jako data utworzenia zamówienia'),
'desc' => $this->l('Uzupełnia datę utworzenia zamówienia na podstawie faktycznej daty sprzedaży z formularza pozakupowego Allegro') . '
' .
$this->l('Domyślnie data utworzenia zamówienia jest datą jego importu do sklepu'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_ADD_PAYMENT_WHEN_COD' => [
'title' => $this->l('Uzupełniaj płatność dla nowych zamówień COD (Płatność przy odbiorze)'),
'desc' => $this->l('Domyślnie moduł nie dodaje płatności dla nowych zamówień ze statusem "Płatność przy odbiorze".') . '
' .
$this->l('Płatność uzupełnia się w momencie zmiany na status z włączoną opcją "opłacone", identyfikator transakcji Allegro także zostanie uzupełniony') . '
' .
$this->l('Jest to domyślne zachowanie PrestaShop, po włączeniu tej opcji płatność zostanie dodana od razu w momencie tworzenia nowego zamówienia'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'hr_sync_orders_1' => [
'name' => 'hr_sync_orders_1',
'type' => 'hr',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'REGISTER_CUSTOMER' => [
'title' => $this->l('Utwórz nowe konto w sklepie dla kupującego'),
'desc' => $this->l('Wyłączenie tej opcji spowoduje użycie konta Gościa - jeśli dostępne') . '
' .
$this->l('Nowe konta tworzone są automatycznie w przypadku gdy konto Gościa jest wyłączone') . '
' .
$this->l('W przypadku gdy nie tworzymy nowych kont dla kupujących, automatycznie przypisujemy grupę') . ': ' .
(new Group((int)Configuration::get('PS_GUEST_GROUP'), $this->context->language->id))->name,
'type' => 'bool',
'disabled' => !Configuration::get('PS_GUEST_CHECKOUT_ENABLED'),
'defaultValue' => Configuration::get('PS_GUEST_CHECKOUT_ENABLED') ? null : 1,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'REGISTER_CUSTOMER_GROUP' => [
'title' => $this->l('Przypisz nowe konto kupującego do grupy'),
'type' => 'checkbox', // type checkbox uses json_decode
'choices' => $customerGroups,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1, 'REGISTER_CUSTOMER' => 1]
)
],
'REGISTER_CUSTOMER_GROUP_DEFAULT' => [
'title' => $this->l('Domyślna grupa kupującego'),
'type' => 'select',
'identifier' => 'id_group',
'list' => $groups,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1, 'REGISTER_CUSTOMER' => 1]
)
],
'ORDER_SEND_CUSTOMER_MAIL' => [
'title' => $this->l('Wysyłaj e-maile sklepowe do klientów'),
'desc' => $this->l('Wysyła e-maile po zmianie statusu zamówienia, dodaniu numeru śledzienia, etc.'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'REGISTER_CUSTOMER_SEND_MAIL' => [
'title' => $this->l('Wysyłaj e-mail do klienta po utworzeniu konta'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1, 'REGISTER_CUSTOMER' => 1, 'ORDER_SEND_CUSTOMER_MAIL' => 1]
)
],
'hr_sync_orders_2' => [
'name' => 'hr_sync_orders_2',
'type' => 'hr',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_MESSAGE_CONFIGURATION' => [
'title' => $this->l('Wiadomość do zamówienia'),
'type' => 'checkbox', // type checkbox uses json_decode
'choices' => [
['key' => OrderMessage::BUYER_LOGIN, 'name' => $this->l('login kupującego')],
['key' => OrderMessage::BUYER_MESSAGE, 'name' => $this->l('wiadomość od kupującego')],
['key' => OrderMessage::SELLER_LOGIN, 'name' => $this->l('login sprzedającego')],
['key' => OrderMessage::CHECKOUT_FORM_ID, 'name' => $this->l('numer zamówienia')],
['key' => OrderMessage::OFFERS, 'name' => $this->l('lista ofert')],
['key' => OrderMessage::DELIVERY, 'name' => $this->l('informacje o dostawie')],
['key' => OrderMessage::PAYMENT, 'name' => $this->l('informacje o płatności')]
],
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_SEND_MAIL' => [
'title' => $this->l('Otrzymuj dodatkowe powiadomienie o złożeniu zamówienia'),
'desc' => $this->l('Aby otrzymywać powiadomienia konieczny jest zainstalowany i poprawnie skonfigurowany moduł "ps_emailalerts/mailalerts"'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_CUSTOMER_MESSAGE_CONTACT' => [
'title' => $this->l('Kontakt dla wiadomości do sprzedawcy'),
'type' => 'select',
'identifier' => 'id',
'list' => $orderContacts,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'hr_sync_orders_3' => [
'name' => 'hr_sync_orders_3',
'type' => 'hr',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'CONTEXT_EMPLOYEE' => [
'title' => $this->l('Pracownik przypisany do operacji wykonywanych przez moduł'),
'desc' => $this->l('Pracownik który będzie przypisany do operacji zmian statusów zamówień i ruchów magazynowych') . '
' .
$this->l('Język tego pracownika użyty zostanie w wiadomościach "Kontakt dla wiadomości do sprzedawcy"'),
'type' => 'select',
'identifier' => 'id',
'list' => $orderEmployees,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'hr_sync_orders_4' => [
'name' => 'hr_sync_orders_4',
'type' => 'hr',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_ALLEGRO_SEND_SHIPPING' => [
'title' => $this->l('Wysyłaj numery śledzenia do Allegro'),
'desc' => $this->l('Automatycznie wysyła uzupełnione numery śledzenia przesyłek po uruchomieniu zadania CRON'),
'type' => 'bool',
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
],
'ORDER_INVOICE_AUTO_PS_INVOICE' => [
'title' => $this->l('Wysyłaj fakturę PrestaShop do Allegro'),
'desc' => $this->l('Automatycznie wysyła fakturę PrestaShop w momencie jej wygenerowania') . '
' .
$this->l('Faktury PrestaShop muszą być włączone'),
'type' => 'bool',
'disabled' => !Configuration::get('PS_INVOICE'),
'defaultValue' => Configuration::get('PS_INVOICE') ? null : 0,
'form_group_class' => ConfigurationDependencies::fieldDependsOn(
ConfigurationDependencies::fieldMatch(),
['IMPORT_ORDERS' => 1]
)
]
],
'submit' => ['title' => $this->l('Zapisz')]
],
'cron' => [
'title' => $this->l('Synchronizacja CRON'),
'fields' => [
'CRON_URL' => [
'title' => $this->l('Adres wywołania dla CRON'),
'desc' => $this->l('Ostatnie poprawne uruchomienie') . ': ' . $syncLastSuccess . '