diff --git a/.vscode/ftp-kr.sync.cache.json b/.vscode/ftp-kr.sync.cache.json index 84542685..2e6c2f10 100644 --- a/.vscode/ftp-kr.sync.cache.json +++ b/.vscode/ftp-kr.sync.cache.json @@ -1173,7 +1173,203 @@ "themes": {}, "xml": {} }, - "controllers": {}, + "controllers": { + "front": { + "AddressController.php": { + "type": "-", + "size": 6415, + "lmtime": 0, + "modified": false + }, + "AddressesController.php": { + "type": "-", + "size": 2633, + "lmtime": 0, + "modified": false + }, + "AttachmentController.php": { + "type": "-", + "size": 2804, + "lmtime": 0, + "modified": false + }, + "AuthController.php": { + "type": "-", + "size": 4577, + "lmtime": 0, + "modified": false + }, + "CartController.php": { + "type": "-", + "size": 25476, + "lmtime": 0, + "modified": false + }, + "ChangeCurrencyController.php": { + "type": "-", + "size": 1621, + "lmtime": 0, + "modified": false + }, + "CmsController.php": { + "type": "-", + "size": 8218, + "lmtime": 0, + "modified": false + }, + "ContactController.php": { + "type": "-", + "size": 1776, + "lmtime": 0, + "modified": false + }, + "DiscountController.php": { + "type": "-", + "size": 6431, + "lmtime": 0, + "modified": false + }, + "GetFileController.php": { + "type": "-", + "size": 14831, + "lmtime": 0, + "modified": false + }, + "GuestTrackingController.php": { + "type": "-", + "size": 5428, + "lmtime": 0, + "modified": false + }, + "HistoryController.php": { + "type": "-", + "size": 4105, + "lmtime": 0, + "modified": false + }, + "IdentityController.php": { + "type": "-", + "size": 3252, + "lmtime": 0, + "modified": false + }, + "IndexController.php": { + "type": "-", + "size": 1504, + "lmtime": 0, + "modified": false + }, + "index.php": { + "type": "-", + "size": 1372, + "lmtime": 0, + "modified": false + }, + "listing": {}, + "MyAccountController.php": { + "type": "-", + "size": 1923, + "lmtime": 0, + "modified": false + }, + "OrderConfirmationController.php": { + "type": "-", + "size": 5807, + "lmtime": 0, + "modified": false + }, + "OrderController.php": { + "type": "-", + "size": 13231, + "lmtime": 0, + "modified": false + }, + "OrderDetailController.php": { + "type": "-", + "size": 9996, + "lmtime": 0, + "modified": false + }, + "OrderFollowController.php": { + "type": "-", + "size": 5845, + "lmtime": 0, + "modified": false + }, + "OrderReturnController.php": { + "type": "-", + "size": 7493, + "lmtime": 0, + "modified": false + }, + "OrderSlipController.php": { + "type": "-", + "size": 3698, + "lmtime": 0, + "modified": false + }, + "PageNotFoundController.php": { + "type": "-", + "size": 2283, + "lmtime": 0, + "modified": false + }, + "PasswordController.php": { + "type": "-", + "size": 12605, + "lmtime": 0, + "modified": false + }, + "PdfInvoiceController.php": { + "type": "-", + "size": 2923, + "lmtime": 0, + "modified": false + }, + "PdfOrderReturnController.php": { + "type": "-", + "size": 2551, + "lmtime": 0, + "modified": false + }, + "PdfOrderSlipController.php": { + "type": "-", + "size": 2182, + "lmtime": 0, + "modified": false + }, + "ProductController.php": { + "type": "-", + "size": 70167, + "lmtime": 1763020207336, + "modified": false + }, + "SitemapController.php": { + "type": "-", + "size": 6693, + "lmtime": 0, + "modified": false + }, + "StatisticsController.php": { + "type": "-", + "size": 3359, + "lmtime": 0, + "modified": false + }, + "StoresController.php": { + "type": "-", + "size": 9328, + "lmtime": 0, + "modified": false + }, + "UploadController.php": { + "type": "-", + "size": 2891, + "lmtime": 0, + "modified": false + } + } + }, "docs": {}, "download": {}, ".DS_Store": { @@ -2026,50 +2222,14 @@ "ce": { "1010000.css": { "type": "-", - "size": 54, - "lmtime": 1761679937425, - "modified": false - }, - "1070101.css": { - "type": "-", - "size": 216, - "lmtime": 1761679937425, - "modified": false - }, - "11070101.css": { - "type": "-", - "size": 682, - "lmtime": 1761679937427, + "size": 105, + "lmtime": 1754428918941, "modified": false }, "1170101.css": { "type": "-", - "size": 13771, - "lmtime": 1761679937428, - "modified": false - }, - "12070101.css": { - "type": "-", - "size": 8352, - "lmtime": 1761679937429, - "modified": false - }, - "122040101.css": { - "type": "-", - "size": 13396, - "lmtime": 1761679937429, - "modified": false - }, - "13070101.css": { - "type": "-", - "size": 8352, - "lmtime": 1761679937429, - "modified": false - }, - "14070101.css": { - "type": "-", - "size": 1160, - "lmtime": 1761679937430, + "size": 12377, + "lmtime": 1754428909788, "modified": false }, "1-global.css": { @@ -2078,64 +2238,16 @@ "lmtime": 1754428909865, "modified": false }, - "2070101.css": { - "type": "-", - "size": 582, - "lmtime": 1761679937431, - "modified": false - }, "2170101.css": { "type": "-", - "size": 37873, - "lmtime": 1761679937432, - "modified": false - }, - "22030101.css": { - "type": "-", - "size": 10198, - "lmtime": 1761679937432, - "modified": false - }, - "3070101.css": { - "type": "-", - "size": 7681, - "lmtime": 1761679937433, + "size": 28727, + "lmtime": 1754428909949, "modified": false }, "3170101.css": { "type": "-", - "size": 28797, - "lmtime": 1761679937434, - "modified": false - }, - "376030101.css": { - "type": "-", - "size": 11931, - "lmtime": 1761679937434, - "modified": false - }, - "4357030101.css": { - "type": "-", - "size": 8900, - "lmtime": 1761679937435, - "modified": false - }, - "4358030101.css": { - "type": "-", - "size": 9723, - "lmtime": 1761679937435, - "modified": false - }, - "4359030101.css": { - "type": "-", - "size": 10699, - "lmtime": 1761679937437, - "modified": false - }, - "4360030101.css": { - "type": "-", - "size": 11714, - "lmtime": 1761679937437, + "size": 21325, + "lmtime": 1754428910036, "modified": false }, "4420030101.css": { @@ -2150,16 +2262,10 @@ "lmtime": 1754428910180, "modified": false }, - "4422030101.css": { - "type": "-", - "size": 8509, - "lmtime": 1761679937438, - "modified": false - }, "4423030101.css": { "type": "-", - "size": 11855, - "lmtime": 1761679937439, + "size": 12231, + "lmtime": 1754428910249, "modified": false }, "4424030101.css": { @@ -2186,586 +2292,22 @@ "lmtime": 1754428910532, "modified": false }, - "4429030101.css": { - "type": "-", - "size": 8911, - "lmtime": 1761679937440, - "modified": false - }, - "4430030101.css": { - "type": "-", - "size": 13514, - "lmtime": 1761679937440, - "modified": false - }, - "4431030101.css": { - "type": "-", - "size": 11460, - "lmtime": 1761679937441, - "modified": false - }, - "4432030101.css": { - "type": "-", - "size": 13617, - "lmtime": 1761679937442, - "modified": false - }, - "4433030101.css": { - "type": "-", - "size": 12003, - "lmtime": 1761679937442, - "modified": false - }, - "4434030101.css": { - "type": "-", - "size": 8686, - "lmtime": 1761679937443, - "modified": false - }, - "4435030101.css": { - "type": "-", - "size": 11243, - "lmtime": 1761679937443, - "modified": false - }, - "4436030101.css": { - "type": "-", - "size": 11835, - "lmtime": 1761679937444, - "modified": false - }, - "4437030101.css": { - "type": "-", - "size": 6741, - "lmtime": 1761679937444, - "modified": false - }, - "4438030101.css": { - "type": "-", - "size": 6736, - "lmtime": 1761679937445, - "modified": false - }, - "4440030101.css": { - "type": "-", - "size": 6883, - "lmtime": 1761679937447, - "modified": false - }, - "4441030101.css": { - "type": "-", - "size": 9283, - "lmtime": 1761679937447, - "modified": false - }, - "4442030101.css": { - "type": "-", - "size": 11348, - "lmtime": 1761679937448, - "modified": false - }, - "4443030101.css": { - "type": "-", - "size": 12995, - "lmtime": 1761679937449, - "modified": false - }, - "4444030101.css": { - "type": "-", - "size": 6063, - "lmtime": 1761679937450, - "modified": false - }, - "4446030101.css": { - "type": "-", - "size": 6105, - "lmtime": 1761679937450, - "modified": false - }, - "4447030101.css": { - "type": "-", - "size": 10242, - "lmtime": 1761679937451, - "modified": false - }, - "4448030101.css": { - "type": "-", - "size": 6092, - "lmtime": 1761679937452, - "modified": false - }, - "4449030101.css": { - "type": "-", - "size": 11016, - "lmtime": 1761679937452, - "modified": false - }, - "4537030101.css": { - "type": "-", - "size": 13463, - "lmtime": 1761679937453, - "modified": false - }, - "4538030101.css": { - "type": "-", - "size": 13701, - "lmtime": 1761679937453, - "modified": false - }, - "4539030101.css": { - "type": "-", - "size": 13865, - "lmtime": 1761679937454, - "modified": false - }, - "4540030101.css": { - "type": "-", - "size": 14517, - "lmtime": 1761679937454, - "modified": false - }, - "4541030101.css": { - "type": "-", - "size": 8293, - "lmtime": 1761679937455, - "modified": false - }, - "4542030101.css": { - "type": "-", - "size": 12618, - "lmtime": 1761679937456, - "modified": false - }, - "4543030101.css": { - "type": "-", - "size": 12309, - "lmtime": 1761679937456, - "modified": false - }, - "4544030101.css": { - "type": "-", - "size": 13423, - "lmtime": 1761679937456, - "modified": false - }, - "4546030101.css": { - "type": "-", - "size": 11906, - "lmtime": 1761679937457, - "modified": false - }, - "4549030101.css": { - "type": "-", - "size": 4615, - "lmtime": 1761679937458, - "modified": false - }, - "4550030101.css": { - "type": "-", - "size": 4615, - "lmtime": 1761679937459, - "modified": false - }, - "4551030101.css": { - "type": "-", - "size": 5378, - "lmtime": 1761679937459, - "modified": false - }, - "4552030101.css": { - "type": "-", - "size": 4613, - "lmtime": 1761679937460, - "modified": false - }, - "4553030101.css": { - "type": "-", - "size": 5377, - "lmtime": 1761679937461, - "modified": false - }, - "4554030101.css": { - "type": "-", - "size": 3073, - "lmtime": 1761679937461, - "modified": false - }, - "4638030101.css": { - "type": "-", - "size": 10962, - "lmtime": 1761679937462, - "modified": false - }, - "4639030101.css": { - "type": "-", - "size": 11018, - "lmtime": 1761679937462, - "modified": false - }, - "4640030101.css": { - "type": "-", - "size": 9469, - "lmtime": 1761679937463, - "modified": false - }, - "4641030101.css": { - "type": "-", - "size": 10785, - "lmtime": 1761679937464, - "modified": false - }, - "4643030101.css": { - "type": "-", - "size": 9596, - "lmtime": 1761679937464, - "modified": false - }, - "4644030101.css": { - "type": "-", - "size": 5396, - "lmtime": 1761679937465, - "modified": false - }, - "4645030101.css": { - "type": "-", - "size": 5618, - "lmtime": 1761679937465, - "modified": false - }, - "4646030101.css": { - "type": "-", - "size": 5404, - "lmtime": 1761679937467, - "modified": false - }, "4647030101.css": { "type": "-", "size": 2846, "lmtime": 1754428910605, "modified": false }, - "4653030101.css": { - "type": "-", - "size": 9919, - "lmtime": 1761679937467, - "modified": false - }, - "4654030101.css": { - "type": "-", - "size": 10694, - "lmtime": 1761679937468, - "modified": false - }, - "4655030101.css": { - "type": "-", - "size": 10693, - "lmtime": 1761679937469, - "modified": false - }, - "4656030101.css": { - "type": "-", - "size": 9929, - "lmtime": 1761679937469, - "modified": false - }, - "4657030101.css": { - "type": "-", - "size": 9926, - "lmtime": 1761679937470, - "modified": false - }, - "4658030101.css": { - "type": "-", - "size": 9917, - "lmtime": 1761679937470, - "modified": false - }, - "4659030101.css": { - "type": "-", - "size": 10965, - "lmtime": 1761679937471, - "modified": false - }, - "4660030101.css": { - "type": "-", - "size": 10445, - "lmtime": 1761679937471, - "modified": false - }, "4688030101.css": { "type": "-", "size": 456, "lmtime": 1754428910673, "modified": false }, - "4702030101.css": { - "type": "-", - "size": 1872, - "lmtime": 1761679937472, - "modified": false - }, - "4719030101.css": { - "type": "-", - "size": 4422, - "lmtime": 1761679937472, - "modified": false - }, - "4721030101.css": { - "type": "-", - "size": 8911, - "lmtime": 1761679937473, - "modified": false - }, - "4722030101.css": { - "type": "-", - "size": 9528, - "lmtime": 1761679937473, - "modified": false - }, - "4746030101.css": { - "type": "-", - "size": 3842, - "lmtime": 1761679937474, - "modified": false - }, - "4759030101.css": { - "type": "-", - "size": 5404, - "lmtime": 1761679937474, - "modified": false - }, - "4760030101.css": { - "type": "-", - "size": 4407, - "lmtime": 1761679937476, - "modified": false - }, - "4764030101.css": { - "type": "-", - "size": 5401, - "lmtime": 1761679937476, - "modified": false - }, - "4777030101.css": { - "type": "-", - "size": 9916, - "lmtime": 1761679937477, - "modified": false - }, - "4779030101.css": { - "type": "-", - "size": 9891, - "lmtime": 1761679937477, - "modified": false - }, - "4781030101.css": { - "type": "-", - "size": 10786, - "lmtime": 1761679937478, - "modified": false - }, - "4782030101.css": { - "type": "-", - "size": 11118, - "lmtime": 1761679937479, - "modified": false - }, - "4783030101.css": { - "type": "-", - "size": 11103, - "lmtime": 1761679937479, - "modified": false - }, - "4784030101.css": { - "type": "-", - "size": 11100, - "lmtime": 1761679937480, - "modified": false - }, - "4785030101.css": { - "type": "-", - "size": 11225, - "lmtime": 1761679937481, - "modified": false - }, - "4786030101.css": { - "type": "-", - "size": 11756, - "lmtime": 1761679937481, - "modified": false - }, - "4789030101.css": { - "type": "-", - "size": 12134, - "lmtime": 1761679937482, - "modified": false - }, - "4790030101.css": { - "type": "-", - "size": 11855, - "lmtime": 1761679937482, - "modified": false - }, - "4791030101.css": { - "type": "-", - "size": 11865, - "lmtime": 1761679937483, - "modified": false - }, - "4792030101.css": { - "type": "-", - "size": 4425, - "lmtime": 1761679937484, - "modified": false - }, - "4793030101.css": { - "type": "-", - "size": 4701, - "lmtime": 1761679937484, - "modified": false - }, - "4794030101.css": { - "type": "-", - "size": 14713, - "lmtime": 1761679937485, - "modified": false - }, - "4795030101.css": { - "type": "-", - "size": 13961, - "lmtime": 1761679937485, - "modified": false - }, - "4796030101.css": { - "type": "-", - "size": 5964, - "lmtime": 1761679937486, - "modified": false - }, - "4797030101.css": { - "type": "-", - "size": 5206, - "lmtime": 1761679937486, - "modified": false - }, - "4798030101.css": { - "type": "-", - "size": 5205, - "lmtime": 1761679937487, - "modified": false - }, - "4801030101.css": { - "type": "-", - "size": 4050, - "lmtime": 1761679937489, - "modified": false - }, - "4802030101.css": { - "type": "-", - "size": 4053, - "lmtime": 1761679937489, - "modified": false - }, - "4803030101.css": { - "type": "-", - "size": 4830, - "lmtime": 1761679937490, - "modified": false - }, - "4804030101.css": { - "type": "-", - "size": 4822, - "lmtime": 1761679937491, - "modified": false - }, - "4808030101.css": { - "type": "-", - "size": 9085, - "lmtime": 1761679937492, - "modified": false - }, - "4809030101.css": { - "type": "-", - "size": 10646, - "lmtime": 1761679937492, - "modified": false - }, - "4810030101.css": { - "type": "-", - "size": 9097, - "lmtime": 1761679937493, - "modified": false - }, - "4811030101.css": { - "type": "-", - "size": 8909, - "lmtime": 1761679937494, - "modified": false - }, - "4812030101.css": { - "type": "-", - "size": 9918, - "lmtime": 1761679937494, - "modified": false - }, - "4813030101.css": { - "type": "-", - "size": 8224, - "lmtime": 1761679937494, - "modified": false - }, - "4817030101.css": { - "type": "-", - "size": 9792, - "lmtime": 1761679937495, - "modified": false - }, - "4820030101.css": { - "type": "-", - "size": 9015, - "lmtime": 1761679937496, - "modified": false - }, - "4821030101.css": { - "type": "-", - "size": 8891, - "lmtime": 1761679937496, - "modified": false - }, - "4822030101.css": { - "type": "-", - "size": 7725, - "lmtime": 1761679937497, - "modified": false - }, - "4823030101.css": { - "type": "-", - "size": 8617, - "lmtime": 1761679937499, - "modified": false - }, - "4824030101.css": { - "type": "-", - "size": 8620, - "lmtime": 1761679937500, - "modified": false - }, - "4825030101.css": { - "type": "-", - "size": 9380, - "lmtime": 1761679937500, - "modified": false - }, - "4826030101.css": { - "type": "-", - "size": 9355, - "lmtime": 1761679937501, - "modified": false - }, "5070101.css": { "type": "-", - "size": 962, - "lmtime": 1761679937502, + "size": 350, + "lmtime": 1754428910744, "modified": false }, "6070101.css": { @@ -2776,9 +2318,9 @@ }, "7070101.css": { "type": "-", - "size": 5805, + "size": 5791, "lmtime": 1754428910889, - "modified": true + "modified": false }, "8070101.css": { "type": "-", @@ -2788,8 +2330,8 @@ }, "9070101.css": { "type": "-", - "size": 26263, - "lmtime": 1761679937503, + "size": 2212, + "lmtime": 1754428911028, "modified": false }, "index.php": { @@ -2981,204 +2523,7 @@ "ets_blog": {}, "ets_multilayerslider": {}, "followup": {}, - "gm_omniprice": { - "CHANGELOG": { - "type": "-", - "size": 5258, - "lmtime": 1761679937505, - "modified": false - }, - "cleanup.php": { - "type": "-", - "size": 350, - "lmtime": 1761679937505, - "modified": false - }, - "config_pl.xml": { - "type": "-", - "size": 555, - "lmtime": 1761679937506, - "modified": false - }, - "controllers": { - "front": { - "cron.php": { - "type": "-", - "size": 4460, - "lmtime": 1761679937507, - "modified": false - }, - "index.php": { - "type": "-", - "size": 1321, - "lmtime": 1761679937508, - "modified": false - } - } - }, - "cron.php": { - "type": "-", - "size": 1492, - "lmtime": 1761679937510, - "modified": false - }, - ".DS_Store": { - "type": "-", - "size": 6148, - "lmtime": 1761679937504, - "modified": false - }, - "fill.php": { - "type": "-", - "size": 348, - "lmtime": 1761679937510, - "modified": false - }, - "gm_omniprice.php": { - "type": "-", - "size": 91632, - "lmtime": 1761679937512, - "modified": false - }, - "index.php": { - "type": "-", - "size": 1269, - "lmtime": 0, - "modified": false - }, - "logo.png": { - "type": "-", - "size": 4539, - "lmtime": 0, - "modified": false - }, - "logo.webp": { - "type": "-", - "size": 1980, - "lmtime": 0, - "modified": false - }, - "template.php": { - "type": "-", - "size": 1865, - "lmtime": 0, - "modified": false - }, - "translations": { - "de.php": { - "type": "-", - "size": 9540, - "lmtime": 1761679937513, - "modified": false - }, - "es.php": { - "type": "-", - "size": 9589, - "lmtime": 1761679937513, - "modified": false - }, - "fr.php": { - "type": "-", - "size": 9585, - "lmtime": 1761679937514, - "modified": false - }, - "it.php": { - "type": "-", - "size": 9493, - "lmtime": 1761679937514, - "modified": false - }, - "nl.php": { - "type": "-", - "size": 0, - "lmtime": 1761679937515, - "modified": false - }, - "pl.php": { - "type": "-", - "size": 9307, - "lmtime": 1761679937516, - "modified": false - } - }, - "upgrade": { - "upgrade-1.0.10.php": { - "type": "-", - "size": 170, - "lmtime": 0, - "modified": false - }, - "upgrade-1.0.11.php": { - "type": "-", - "size": 170, - "lmtime": 0, - "modified": false - }, - "upgrade-1.0.13.php": { - "type": "-", - "size": 333, - "lmtime": 0, - "modified": false - }, - "upgrade-1.1.0.php": { - "type": "-", - "size": 195, - "lmtime": 0, - "modified": false - }, - "upgrade-1.1.11.php": { - "type": "-", - "size": 196, - "lmtime": 1761679937516, - "modified": false - }, - "upgrade-1.2.0.php": { - "type": "-", - "size": 191, - "lmtime": 1761679937516, - "modified": false - }, - "upgrade-1.2.3.php": { - "type": "-", - "size": 190, - "lmtime": 1761679937517, - "modified": false - } - }, - "views": { - "css": { - "gm_omniprice.css": { - "type": "-", - "size": 87, - "lmtime": 1761679937518, - "modified": false - } - }, - "templates": { - "hook": { - "index.php": { - "type": "-", - "size": 1269, - "lmtime": 0, - "modified": false - }, - "price.tpl": { - "type": "-", - "size": 516, - "lmtime": 1761679937520, - "modified": false - }, - "tab.tpl": { - "type": "-", - "size": 1009, - "lmtime": 1761679937520, - "modified": false - } - } - } - } - }, + "gm_omniprice": {}, "graphnvd3": {}, "gridhtml": {}, "gsitemap": {}, @@ -18347,20 +17692,20 @@ }, "custom.css": { "type": "-", - "size": 88056, - "lmtime": 1761681070241, + "size": 91011, + "lmtime": 1761915330302, "modified": false }, "custom.css.map": { "type": "-", - "size": 216098, - "lmtime": 1761681070241, + "size": 222413, + "lmtime": 1761915330302, "modified": false }, "custom.scss": { "type": "-", - "size": 95523, - "lmtime": 1761681069667, + "size": 97935, + "lmtime": 1761915329325, "modified": false }, "dce0916af972e3040aa191f74b17dd46.woff2": { @@ -18408,27 +17753,27 @@ "theme.css": { "type": "-", "size": 192439, - "lmtime": 1761679937528, - "modified": false + "lmtime": 1737287962009, + "modified": true }, "theme.css.map": { "type": "-", "size": 544940, - "lmtime": 1761679937532, - "modified": false + "lmtime": 1737287962009, + "modified": true }, "theme.scss": { "type": "-", "size": 255419, - "lmtime": 1761679937535, - "modified": false + "lmtime": 0, + "modified": true } }, "js": { "custom.js": { "type": "-", - "size": 13573, - "lmtime": 1761679937536, + "size": 5855, + "lmtime": 1754034655415, "modified": false }, "error.js": { @@ -18477,7 +17822,16 @@ "lmtime": 0, "modified": false }, - "_partials": {} + "_partials": { + "steps": { + "payment.tpl": { + "type": "-", + "size": 8185, + "lmtime": 1761912434495, + "modified": false + } + } + } }, "catalog": { "brands.tpl": { @@ -18583,7 +17937,7 @@ "product.tpl": { "type": "-", "size": 6502, - "lmtime": 1761679937537, + "lmtime": 1761661185469, "modified": false } }, @@ -18620,7 +17974,7 @@ "product-details.tpl": { "type": "-", "size": 4419, - "lmtime": 1754034655416, + "lmtime": 1761661219755, "modified": false }, "product-discounts.tpl": { @@ -18650,7 +18004,7 @@ "product-prices.tpl": { "type": "-", "size": 5041, - "lmtime": 1761680812299, + "lmtime": 1761912434492, "modified": false }, "products-bottom.tpl": { @@ -18705,7 +18059,7 @@ "product.tpl": { "type": "-", "size": 17084, - "lmtime": 1761680100838, + "lmtime": 1761912434494, "modified": false }, "suppliers.tpl": { @@ -18714,6 +18068,81 @@ "lmtime": 0, "modified": false } + }, + "_partials": { + "breadcrumb.tpl": { + "type": "-", + "size": 1894, + "lmtime": 0, + "modified": false + }, + "footer.tpl": { + "type": "-", + "size": 2029, + "lmtime": 0, + "modified": false + }, + "form-errors.tpl": { + "type": "-", + "size": 1332, + "lmtime": 0, + "modified": false + }, + "form-fields.tpl": { + "type": "-", + "size": 8535, + "lmtime": 0, + "modified": false + }, + "header.tpl": { + "type": "-", + "size": 2996, + "lmtime": 0, + "modified": false + }, + "head.tpl": { + "type": "-", + "size": 4292, + "lmtime": 1761913358312, + "modified": false + }, + "helpers.tpl": { + "type": "-", + "size": 1340, + "lmtime": 0, + "modified": false + }, + "javascript.tpl": { + "type": "-", + "size": 1536, + "lmtime": 0, + "modified": false + }, + "microdata": {}, + "notifications.tpl": { + "type": "-", + "size": 2560, + "lmtime": 0, + "modified": false + }, + "pagination-seo.tpl": { + "type": "-", + "size": 1856, + "lmtime": 0, + "modified": false + }, + "pagination.tpl": { + "type": "-", + "size": 3153, + "lmtime": 0, + "modified": false + }, + "stylesheets.tpl": { + "type": "-", + "size": 1336, + "lmtime": 0, + "modified": false + } } }, "modules": { diff --git a/import-drewmax.php b/import-drewmax.php index 175dafa7..a71ea711 100644 --- a/import-drewmax.php +++ b/import-drewmax.php @@ -1,17 +1,37 @@ language->id; - $result = Db::getInstance()->getRow('SELECT `id_attribute_group` FROM `'._DB_PREFIX_.'attribute_group_lang` WHERE `name` = \''.pSQL($name).'\' AND `id_lang` = '.(int)$id_lang); + $sql = 'SELECT `id_attribute_group` + FROM `'._DB_PREFIX_.'attribute_group_lang` + WHERE `name` = \''.pSQL($name).'\' + AND `id_lang` = '.(int)$id_lang; + $result = Db::getInstance()->getRow($sql); return $result ? new AttributeGroup($result['id_attribute_group']) : false; } @@ -20,8 +40,11 @@ function findAttributeByName($id_attribute_group, $name) { $id_lang = Context::getContext()->language->id; $sql = 'SELECT a.`id_attribute` FROM `'._DB_PREFIX_.'attribute` a - JOIN `'._DB_PREFIX_.'attribute_lang` al ON a.`id_attribute` = al.`id_attribute` - WHERE al.`name` = \''.pSQL($name).'\' AND al.`id_lang` = '.(int)$id_lang.' AND a.`id_attribute_group` = '.(int)$id_attribute_group; + JOIN `'._DB_PREFIX_.'attribute_lang` al + ON a.`id_attribute` = al.`id_attribute` + WHERE al.`name` = \''.pSQL($name).'\' + AND al.`id_lang` = '.(int)$id_lang.' + AND a.`id_attribute_group` = '.(int)$id_attribute_group; $result = Db::getInstance()->getRow($sql); return $result ? new Attribute($result['id_attribute']) : false; } @@ -55,7 +78,7 @@ function createMultiLangField($field) { $languages = Language::getLanguages(false); $res = []; foreach ($languages as $lang) { - $res[$lang['id_lang']] = $field; + $res[(int)$lang['id_lang']] = $field; } return $res; } @@ -66,16 +89,16 @@ function createLinkRewrite($field) { $res = []; $linkRewrite = Tools::link_rewrite($field); // PrestaShop's function to create valid link_rewrite foreach ($languages as $lang) { - $res[$lang['id_lang']] = $linkRewrite; + $res[(int)$lang['id_lang']] = $linkRewrite; } return $res; } -// Function to get category ID from name +// Function to get category ID from name (nieużywana, ale poprawiona) function getCategoryId($categoryName) { - $category = Category::searchByName(1, $categoryName); // 1 for default language id - if (!empty($category)) { - return $category['id_category']; + $result = Category::searchByName(1, $categoryName); // 1 for default language id + if (!empty($result) && isset($result[0]['id_category'])) { + return (int)$result[0]['id_category']; } else { // Create category if not exists $category = new Category(); @@ -83,7 +106,7 @@ function getCategoryId($categoryName) { $category->link_rewrite = createLinkRewrite($categoryName); $category->id_parent = 2; // Default parent category $category->add(); - return $category->id; + return (int)$category->id; } } @@ -91,7 +114,7 @@ function getCategoryId($categoryName) { function addProductImage($productId, $imageUrl) { $image = new Image(); - $image->id_product = $productId; + $image->id_product = (int)$productId; $image->position = Image::getHighestPosition($productId) + 1; $image->cover = true; // Set the first image as cover $image->add(); @@ -105,7 +128,12 @@ function addProductImage($productId, $imageUrl) $imageTypes = ImageType::getImagesTypes('products'); foreach ($imageTypes as $imageType) { - ImageManager::resize($imagePath . '.jpg', $imagePath . '-' . stripslashes($imageType['name']) . '.jpg', $imageType['width'], $imageType['height']); + ImageManager::resize( + $imagePath . '.jpg', + $imagePath . '-' . stripslashes($imageType['name']) . '.jpg', + (int)$imageType['width'], + (int)$imageType['height'] + ); } return true; @@ -113,24 +141,38 @@ function addProductImage($productId, $imageUrl) // Function to find product by reference function findProductByReference($reference) { - $result = Db::getInstance()->getRow('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `reference` = \''.pSQL($reference).'\''); - return $result ? new Product($result['id_product']) : false; + $sql = 'SELECT `id_product` + FROM `'._DB_PREFIX_.'product` + WHERE `reference` = \''.pSQL($reference).'\''; + $result = Db::getInstance()->getRow($sql); + return $result ? new Product((int)$result['id_product']) : false; } // Function to find combination by product ID and attribute IDs function findCombinationByAttributes($id_product, $attributeIds) { + if (empty($attributeIds)) { + return false; + } + sort($attributeIds); + $conditions = []; + foreach ($attributeIds as $id_attr) { + $conditions[] = 'pac.`id_attribute` = '.(int)$id_attr; + } + $sql = 'SELECT c.`id_product_attribute` FROM `'._DB_PREFIX_.'product_attribute` c - JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON c.`id_product_attribute` = pac.`id_product_attribute` + JOIN `'._DB_PREFIX_.'product_attribute_combination` pac + ON c.`id_product_attribute` = pac.`id_product_attribute` WHERE c.`id_product` = '.(int)$id_product.' GROUP BY c.`id_product_attribute` - HAVING SUM(pac.`id_attribute` = '.implode(' OR pac.`id_attribute` = ', array_map('intval', $attributeIds)).') = '.count($attributeIds); + HAVING SUM('.implode(' OR ', $conditions).') = '.count($attributeIds); + $result = Db::getInstance()->getRow($sql); - return $result ? new Combination($result['id_product_attribute']) : false; + return $result ? new Combination((int)$result['id_product_attribute']) : false; } -// Parse XML and group products by Symbol +// === GRUPOWANIE PRODUKTÓW PO SYMBOLU === $productsBySymbol = []; foreach ($xml->product as $productData) { $symbol = (string)$productData->item_group_id; @@ -140,7 +182,117 @@ foreach ($xml->product as $productData) { $productsBySymbol[$symbol][] = $productData; } -// Create or update products with combinations based on grouped data +// ======================================= +// =========== TRYB AKTUALIZACJI ========= +// ======================================= +if ($modeUpdate) { + + $today = date('Y-m-d'); + $updatedToday = []; + + // Wczytanie logu aktualizacji + if (file_exists($logFile)) { + $lines = file($logFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + foreach ($lines as $line) { + $parts = explode(';', $line); + if (count($parts) >= 3) { + $logDate = trim($parts[0]); + $logType = trim($parts[1]); // np. 'product' + $logRef = trim($parts[2]); + if ($logDate === $today) { + $updatedToday[$logType.'_'.$logRef] = true; + } + } + } + } + + $updatedSomething = false; + + foreach ($productsBySymbol as $symbol => $products) { + if (empty($products)) { + continue; + } + + // Główny produkt – referencja z pierwszego elementu grupy + $mainProductData = $products[0]; + $reference = (string)$mainProductData->sku; + $key = 'product_'.$reference; + + // Jeśli już zaktualizowany dzisiaj – pomijamy + if (isset($updatedToday[$key])) { + continue; + } + + $product = findProductByReference($reference); + if (!$product) { + // produkt nie istnieje w Presta - pomijamy w trybie update + continue; + } + + // Nowa cena z XML + $newPrice = floatval(str_replace(',', '', (string)$mainProductData->price)); + if ($newPrice <= 0) { + // brak sensownej ceny – pomiń + continue; + } + + // Aktualizacja ceny produktu + $product->price = $newPrice; + + // Sprawdź kategorię domyślną – jeśli "Strona główna", zamień na "Meble" (ID 107) + $id_lang = (int)$context->language->id; + $defaultCategory = new Category($product->id_category_default, $id_lang); + + if (Validate::isLoadedObject($defaultCategory) && $defaultCategory->name == 'Strona główna') { + $newCategoryId = 107; // Meble + + // Ustaw nową kategorię domyślną + $product->id_category_default = (int)$newCategoryId; + + // Podmień kategorie produktu (zachowując ewentualne inne) + $categories = $product->getCategories(); + // Usuń starą kategorię domyślną, jeśli istnieje w tablicy + $categories = array_diff($categories, [(int)$defaultCategory->id]); + $categories[] = (int)$newCategoryId; + $categories = array_unique(array_map('intval', $categories)); + + $product->updateCategories($categories); + } + + // Zapis produktu + if ($product->update()) { + // Zapis do logu – że ten produkt został dziś zaktualizowany + $logLine = $today.';product;'.$reference.';'.$product->id.PHP_EOL; + file_put_contents($logFile, $logLine, FILE_APPEND); + + echo '

Zaktualizowano produkt: '.htmlspecialchars((string)$mainProductData->title).' ('.$reference.')

'; + echo '

Nowa cena: '.$newPrice.'

'; + + $updatedSomething = true; + } + + // Aktualizujemy tylko jeden produkt na jedno wywołanie + break; + } + + if ($updatedSomething) { + // Odśwież stronę, żeby przy kolejnym wywołaniu zaktualizować następny produkt + echo ''; + } else { + echo '

Brak produktów do aktualizacji na dzisiaj (wszystkie z XML zostały już zaktualizowane).

'; + } + + exit; +} + +// ======================================= +// =========== TRYB DODAWANIA ============ +// ======================================= + +$productAdded = false; +$combinationAdded = false; + +// Tworzenie lub aktualizacja produktów z kombinacjami (dodawanie) foreach ($productsBySymbol as $symbol => $products) { if (empty($products)) { continue; @@ -150,23 +302,24 @@ foreach ($productsBySymbol as $symbol => $products) { $mainProductData = $products[0]; $mainProduct = findProductByReference((string)$mainProductData->sku); - $productAdded = false; if (!$mainProduct) { // Create a new product if it doesn't exist $mainProduct = new Product(); $mainProduct->name = createMultiLangField((string)$mainProductData->title); + $description = (string)$mainProductData->description; $description = str_replace("\n", "
", $description); $mainProduct->description = createMultiLangField($description); - $mainProduct->price = floatval(str_replace(',','',$mainProductData->price)); + + $mainProduct->price = floatval(str_replace(',', '', (string)$mainProductData->price)); $mainProduct->reference = (string)$mainProductData->sku; - $mainProduct->id_category_default = 2; + $mainProduct->id_category_default = 2; // np. Strona główna $mainProduct->link_rewrite = createLinkRewrite((string)$mainProductData->title); $mainProduct->add(); // Add images to the product if (!empty($mainProductData->image)) { - addProductImage($mainProduct->id, $mainProductData->image); + addProductImage($mainProduct->id, (string)$mainProductData->image); } for ($i = 1; $i <= 10; $i++) { @@ -177,15 +330,6 @@ foreach ($productsBySymbol as $symbol => $products) { } $productAdded = true; - } else { - // Update existing product price and description - if ( $config['update_price'] == true ) { - $mainProduct->price = floatval(str_replace(',','',$mainProductData->price)); - $description = (string)$mainProductData->description; - $description = str_replace("\n", "
", $description); - $mainProduct->description = createMultiLangField($description); - $mainProduct->update(); - } } // Ensure the product is saved before adding combinations @@ -198,14 +342,13 @@ foreach ($productsBySymbol as $symbol => $products) { $addedCombinations = []; // Add or update combinations for each product in the group - $combinationAdded = false; foreach ($products as $productData) { $attributes = [ - 'Kolor' => (string)$productData->Kolor, - 'Dlugosc' => (string)$productData->Dlugosc, + 'Kolor' => (string)$productData->Kolor, + 'Dlugosc' => (string)$productData->Dlugosc, 'Szerokosc' => (string)$productData->Szerokosc, 'Glebokosc' => (string)$productData->Glebokosc, - 'Wysokosc' => (string)$productData->Wysokosc, + 'Wysokosc' => (string)$productData->Wysokosc, ]; $attributeIds = []; @@ -214,7 +357,7 @@ foreach ($productsBySymbol as $symbol => $products) { $attributeGroupId = createAttribute($name, [$value]); $attribute = findAttributeByName($attributeGroupId, $value); if ($attribute) { - $attributeIds[] = $attribute->id; + $attributeIds[] = (int)$attribute->id; } } } @@ -224,12 +367,12 @@ foreach ($productsBySymbol as $symbol => $products) { $key = implode('-', $attributeIds); // Add or update combination if it is unique - if (!empty($attributeIds)) { + if (!empty($attributeIds) && !isset($addedCombinations[$key])) { $combination = findCombinationByAttributes($mainProduct->id, $attributeIds); if (!$combination) { // Create new combination $combination = new Combination(); - $combination->id_product = $mainProduct->id; + $combination->id_product = (int)$mainProduct->id; $combination->quantity = 100; // Default quantity, you can adjust this $combination->reference = (string)$productData->sku; $combination->add(); @@ -256,18 +399,19 @@ foreach ($productsBySymbol as $symbol => $products) { Product::updateDefaultAttribute($mainProduct->id); if ($productAdded || $combinationAdded) { - if ($productAdded) { - echo "

Dodałem produkt: " . (string)$mainProductData->title . "

"; - } - if ($combinationAdded) { - echo "

Dodałem kombinację: " . (string)$mainProductData->title . "

"; - } - break; // Break if a new product or combination was added + if ($productAdded) { + echo "

Dodałem produkt: " . htmlspecialchars((string)$mainProductData->title) . "

"; + } + if ($combinationAdded) { + echo "

Dodałem kombinację: " . htmlspecialchars((string)$mainProductData->title) . "

"; + } + break; // Break if a new product or combination was added } - } -// reload page after 1s if product or combination was added + +// reload page after 250ms if product or combination was added (dla trybu add) if ($productAdded || $combinationAdded) { echo ""; } + ?>