Nastavení modulů dopravy a plateb ------------------------------------------- Následující postup vám umožní upravit váš obchod pro využití služeb: - Česká pošta – balík (platba dobírkou, platba na účet) - Česká pošta – obchodní balík (platba dobírkou, platba na účet) - PPL – balík (platba dobírkou, platba na účet) - Osobní odběr – (platba v hotovosti, platba na účet) Dále Vám umožní nastavit jinou výši dobírkového poplatku pro dobírku České pošty a jinou výši dobírkového poplatku pro PPL. Pokud byste si chtěli provést úpravy souborů modulů dopravy a plateb sami, níže je uveden příklad, jak postupovat. Tento postup jsem otestoval na svém e-shopu na verzi Zencart 1.3.7. s nainstalovaným modulem ship2pay. Za případné chyby neručím. 1. zazálohujeme soubory i databázi 2. nainstalujeme modul ship2pay 3. rozbalíme shipping_cp+ppl.zip a překopírujeme soubory do adresáře našeho obchodu 4. jdeme do ADMIN – NÁSTROJE – INSTALACE SQL PATCHŮ a nahrajeme soubor configuration_table2_cod_fee.sql 5. Tím je úprava hotová a nyní se pustíme do konfigurace modulů dopravy, platby a dobírkových poplatků – předpokládám, že žádné moduly dopravy a platby nejsou nainstalované. 6. Nainstalujeme modul Česká pošta – balík (modul TABLE) a nastavíme následující údaje: a. Shipping table do plníme cenu za jednotlivé hmotnosti balíku ve tvaru hmotnost v kg:cena (např. 2:35,3:40,5:45.50,10:60) b. Shipping zone – např. Česká republika c. Sort order – např. 10 7. Nainstalujeme modul Česká pošta – obchodní balík (modul TABLE1) a nastavíme následující údaje: a. Shipping table do plníme cenu za jednotlivé hmotnosti balíku ve tvaru hmotnost v kg:cena (např. 2:85,3:90,5:95.50,10:110) b. Shipping zone – např. Česká republika c. Sort order – např. 20 8. Nainstalujeme modul PPL balík (modul TABLE2) a nastavíme následující údaje: a. Shipping table do plníme cenu za jednotlivé hmotnosti balíku ve tvaru hmotnost v kg:cena (např. 2:80,3:85,5:90.50,10:100) b. Shipping zone – např. Česká republika c. Sort order – např. 30 9. Nainstalujeme modul Osobní odběr (modul STOREPICKUP) a nastavíme následující údaje: a. Shipping zone – např. Česká republika b. Sort order – např. 40 10. V ADMIN – MODULY – PLATBY nainstalujeme modul Platba dobírkou (COD) a nastvíme následující údaje: a. Payment zone – Česká republika b. Sort order of display – např. 10 11. Nainstalujeme modul Platba na účet (modul MONEYORDER) a nastavíme následující údaje: a. Payment zone – např. Česká republika b. Sort order of display – např. 20 c. Make Payable to – nastavíme naše číslo bankovního účtu např.: 1111111/2400 12. Nainstalujeme modul Platba v hotovosti (modul COD1) a nastavíme následující údaje: a. Payment zone – Česká republika b. Sort order of display – např. 30 13. V ADMIN – MODULY – MODULY OBJEDNÁVEK vybereme modul Dobírkový poplatek (modul ot_cod_fee) a nastavíme následující hodnoty pro dobírkové poplatky České pošty a PPL: a. COD Fee for TABLE – např. na CZ:30 (připočítá poplatek 30 Kč při platbě dobírkou přes Českou poštu) b. COD Fee for TABLE2 – např. na CZ:40 (připočítá poplatek 40 Kč při platbě dobírkou PPL) 14. V ADMIN – MODULY – SHIP2PAY nastavíme následující kombinace: a. Česká pošta balík: Shipping zone: Česká republika a vybereme Platba dobírku a Platba na účet b. Česká pošta obchodní balík: Shipping zone: Česká republika a vybereme Platba dobírku a Platba na účet c. PPL balík: Shipping zone: Česká republika a vybereme Platba dobírku a Platba na účet d. Osobní odběr: Shipping zone: Česká republika a vybereme Platba v hotovosti a Platba na účet To by mělo být vše. Nyní otestujeme funkčnost v našem obchodě a modlíme se, abychom to nechtěli měnit. ************************************************************************************************************************************** Popis úprav v souborech modulů dopravy, platby a modulu objednávek: Vytvoření modulu TABLE1 – Česká pošta – obchodní balík - vytvoříme kopii souboru includes/languages/czech/modules/shipping/table.php a přejmenujeme ji na table1.php - otevřeme soubor table1.php a upravíme kód souboru tak, že všechny výrazy TABLE přepíšeme na TABLE1 a změníme texty např. na: o define('MODULE_SHIPPING_TABLE1_TEXT_TITLE', 'Česká pošta - obchodní balík'); o define('MODULE_SHIPPING_TABLE1_TEXT_DESCRIPTION', 'Česká pošta - obchodní balík'); o define('MODULE_SHIPPING_TABLE1_TEXT_WAY', 'Obchodní balík'); o define('MODULE_SHIPPING_TABLE1_TEXT_WEIGHT', 'Hmotnost'); o define('MODULE_SHIPPING_TABLE1_TEXT_AMOUNT', 'Částka'); - dále uděláme kopii souboru includes /modules/shipping/table.php, přejmenujeme ji na table1.php a uděláme následující úpravy v kódu: o všechny výrazy table přepíšeme na table1 (pozor dodržet malá písmena) o všechny výrazy TABLE přepíšeme na TABLE1 (pozor velká písmena) o !!!!! nepřepisujeme výraz začínající TABLE_ protože se jedná o fyzickou tabulku databáze Analogicky postupujeme v případě tvorby modulu TABLE2 - PPL balík Vytvoření platebního modulu Platba v hotovosti COD1 - vytvoříme kopii souboru includes/languages/czech/modules/payment/cod.php a přejmenujeme ji na cod1.php - otevřeme soubor cod1.php a upravíme jeho k´d tak, že všechny výrazy COD změníme přepíšeme na COD1 a změníme texty např: o define('MODULE_PAYMENT_COD1_TEXT_TITLE', 'Platba v hotovosti'); o define('MODULE_PAYMENT_COD1_TEXT_DESCRIPTION', 'Platba v hotovosti při převzetí zboží'); - dále uděláme kopii souboru includes/modules/payment/cod.php, přejmenujeme ji na cod1.php a v kódu uděláme následující úpravy: o všechny výrazy cod přepíšeme na cod1 (pozor dodržet malá písmena) o všechny výrazy COD přepíšeme na COD1 (pozor velká písmena) o !!!!! pozor, nepřepišme si v kódu příkaz code Změny v souboru includes/modules/order_total/ot_cod_fee.php. Tyto změny nám umožní definovat dobírkový poplatek pro modul TABLE2 (PPL balík). - zazálohujeme soubor - otevřeme a provedeme následující úpravy v kódu o najdeme řádek s kódem if (substr_count($_SESSION['shipping']['id'], 'table') !=0) $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_TABLE); a pod tento řádek vložíme jako samostatný řádek tento kód: if (substr_count($_SESSION['shipping']['id'], 'table2') !=0) $cod_zones = split("[:,]", MODULE_ORDER_TOTAL_COD_FEE_TABLE2); o dále najdeme souboru první výskyt kódu: 'MODULE_ORDER_TOTAL_COD_FEE_TABLE', a za tento kód a zároveň před tento kód: 'MODULE_ORDER_TOTAL_COD_FEE_UPS', vložíme tento kód: 'MODULE_ORDER_TOTAL_COD_FEE_TABLE2', o dále najdeme tento řádek: $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for TABLE', 'MODULE_ORDER_TOTAL_COD_FEE_TABLE', 'AT:3.00,DE:3.58,00:9.99', 'TABLE: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '5', now())"); a pod něj vložíme tento řádek: $db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('COD Fee for TABLE2', 'MODULE_ORDER_TOTAL_COD_FEE_TABLE2', 'AT:3.00,DE:3.58,00:9.99', 'TABLE: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', '6', '6', now())"); Zároveň musíme zvýšit o +1 hodnoty na koncích každého následujícího řádku např.: …..(not possible)', '6', '7', now())"); na ….. (not possible)', '6', '8', now())"); …..(not possible)', '6', '8', now())"); na ….. (not possible)', '6', '9', now())"); …..(not possible)', '6', '9', now())"); na ….. (not possible)', '6', '10', now())"); atd. až k poslednímu řádku s tímto kódem o součástí úprav souboru ot_cod_fee.php je i nutnost úpravy v databázi. Úpravu provede takto: - spustíme ADMIN – NÁSTROJE – INSTALACE SQL PATCHŮ a provedeme následující příkaz: INSERT INTO `configuration` (`configuration_id`, `configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES (999, 'COD Fee for TABLE2', 'MODULE_ORDER_TOTAL_COD_FEE_TABLE2', 'CZ:56', 'TABLE2: <Country code>:<COD price>, .... 00 as country code applies for all countries. If country code is 00, it must be the last statement. If no 00:9.99 appears, COD shipping in foreign countries is not calculated (not possible)', 6, 6, NULL, '2007-03-06 20:50:29', NULL, NULL); - příkaz samozřejmě lze provést i s např. phpmyadmin. Hodnotu 999 je možné nastavit na jinou v případě, že by provedení příkazu provázela chybová hláška o duplicitě. Analogicky této úpravě by šlo vložit do souboru další dobírkové poplatky pro další dopravní moduly odvozené od modulu TABLE a pravděpodobně i jiných modulů. ************************************* Tomáš Konečný t.konecny@centrum.cz www.on-lineshops.eu www.rctomik.eu www.hankashop.cz www.hrackyahry.cz www.rctomik.cz *************************************