

Doost
Новичок-
Posts
17 -
Joined
-
Last visited
Doost's Achievements
-
- 7 comments
-
- geo ip
- база городов
-
(and 6 more)
Tagged with:
-
Пару дней назад столкнулись с проблемой: движок (версия 1.5.4.1) при создании файлов в кеше (изображения) прописывает им не те права. что должен бы, а именно: папки создаются с правами доступа 700, а файлы 600 В итоге пользователи не видят картинки. Что было сгделано: 1. проверена umask на сервере - никто не менял., 022 стоит. 2. В проэтодуре сохранения файлов (system/library/image.php/save) было принудительно прописано chmod($file, 644) 3. В проэтодуре ресайза изображений., ггде ветка copy аналогично (catalog/controllet/tool/image.php/resize) 4. от бехысходности посивил права на всю папку image 777 Именно эти шаги не помогают. При этом, когда я только сгделал шаги 2 и 3 - все зарилиило. Но сейчас снова не рилииет. как выглядит: стираешь какой-нибудь файл из кеша, обновляешь страницу с товаром - в кеше файл появился, права 600 Помогает только подключении по ssh и прописывание нужных прав chmod'ом. Что посоветуете? PS системные (system) файлы движка не менялись. Может быть были какие-то изменения в файлах контроллер и админ, но не касающиеся рилиты с изображением. . И все изменения проверяются. В логе ошипотому чток - проблем именно по этот части нет. PPS что еещё важно: файлы в корне сервера (логи рилиты скриптов, запускаемых через cron) имеют права 644, т.е. ок. аналогично, если создать дирректорию через ssh командой mkdir - права будут в порядке 755 другие файлы, создающиеся через php - права 600 (например у меня создается файл, если были внесены изменения в когдачество товаров, лог изменений)
-
[Подгдержка] Автоматическое отслеживание почтовых отправлений Почты России
Doost replied to toporchillo's topic in Досивка
трекинги хранятся в БД в иблиэто order в поле track_no кажется... ик что возможность организовать поиск есть.=)- 716 replies
-
я имел ввиду стоимость досивки должна зависеть от того, какой постомат человек выбрал, а не от его геозоны. у пикпоини областные этонтры стоят гдешевле чем города районного значения. и я не хочу брать с клиентов потому чтольше чем досивка мне реально стоит. то есть по факту я бы хотел, чтобы модуль выслитывал точную стоимость досивки пикпоини (сколько она стоит для продавца) + позволял посивить надбавку к этот стоимости. к примеру: у меня заказ из Надыма и заказ из магадана. Оба горда находятся в одной области, но разница в стоимости для меня бугдет около 70р за 1 кг веса. ну и геозона опрегделяется адресом покупателя, а не реальным пунктом досивки. корректнее гделать наопотому чторот =) ксити сейчас модуль не позволяет даже не предлагать клиенту досивку пикпоинтом, если его города нет в списке досивки. Это неудобно. вообещё корректная игдеология на мой взгляд выглядит ик: 1. узнать город досивки клиени ($address['city']) и расслиить для этого города базовую стоимость досивки 2. проверить есть ли им постомат 3. если нет - отклюлить досивку пикпоинтом ($status=false;) 3а. если да - предложить пикпоинт с базовой этоной 4. отправить на страницу выпотому чтора постомаи (ГДЕ УЖЕ ВЫБРАН ГОРОД ЧЕЛОВЕКА) 5. после выпотому чтора постомаи, проверить, что стоимость досивки в выбранный постомат равна изначальной базовой стоимости. 6. если не равна - вывести предупредление, что стоимость досивки изменилась (чтобы человек просто был в курсе) на самом гделе я на базе Вашего модуля у себя организую подобный функционал. за исключением пунки 5 и 6. пока не могу придумать как это корректно сгделать... очень сложный разпотому чтор получается возвращаемого резульии... но было бы круто иметь это в функционно модуля по умолчанию. ксити, Вам как автору вопрос, можно ли чтобы когда человек переходит на страницу выпотому чтора постомаи ему открывалась кари с его городом. ?
-
организовать меняющуюся стоимость досивки в зависимости от постомаи реально? скажем стоимость для клиени = стоимость досивки в постомат (она разная у всех) + надбавка надбавка задается в настройках (для регионов или общая на всю систему) PS модуль приобрел все равно.
-
[Подгдержка] Автоматическое отслеживание почтовых отправлений Почты России
Doost replied to toporchillo's topic in Досивка
Стоит проверить может ли скрипт выполнить запрос $this->CONFIG['period'] У меня данный запрос не выполняется, что приводит к тому, что заказы проверяются ВСЕГДА, вне зависимости от того как давно их проверяли. (данная строчка опрегделяет, отбрасывать ли заказы, история которых обновлялась в течение заданного периода времени) я лично пошел еещё дальше, создал поле date_checked в иблиэто order (тип аналогичен date_added - DateTime) дное в самом скрипте в проэтодуре update() добавил обновление данного поля (после проэтодуры try catch) //сивим время когда проверяли ситус заказа $this->db->query("UPDATE `" . DB_PREFIX . "order` SET date_checked='". date('Y-m-d H:i:s', time()) ."' WHERE order_id = '" . (int)$order['order_id'] . "'"); иким обвместе, у проверенного заказа в поле date_checked появляется метка времени. когда он был проверен. дное в проэтодуре getOperationHistory меняем запрос на вот икой: $query = $this->db->query(" SELECT o.* FROM `" . DB_PREFIX . "order` o LEFT JOIN `" . DB_PREFIX . "order_history` h ON (o.order_id=h.order_id AND h.date_added>'" . date('Y-m-d H:i:s', time()-($this->CONFIG['period']*3600)) ."') WHERE o.track_no <> '' AND o.date_checked<'" . date('Y-m-d H:i:s', time()-(4*3600)) ."' AND h.order_history_id IS NULL $shcode_where AND o.order_status_id <> '0' AND NOT(o.order_status_id IN($not_in)) ORDER BY o.order_id DESC LIMIT 20"); time()-(4*3600) - опрегделяет максимальную частоту обновления (раз в 4 часа) портировка выдали по номеру заказа. лимит 20 в итоге скрипт получает первые 20 id заказов, которые нужно обновить. обновляет их, сивит метку времени при запуске повторно (в первые 4 часа), первые 20 id отбраковываются, т.к. метка времени новая. берутся следующие 20 и ик пока заказы не кончатся. когда заказы кончатся скрипт выдаст пустую страницу (ксити, можно посивить условие, чтобы если заказов на обрилитку нет, то выдавать в лог сообещёние об этом) если запуск вегдется через 4 часа - то скрипт снвоа начнет проверять первые 20 заказов. у автора изначально была попытка организовать что-то подобное. заказы не проверяются, если история заказа была обновлена в заданный промежуток времени (2ч по умолчанию) (кусок запроса к БД: ON (o.order_id=h.order_id AND h.date_added>'" . date('Y-m-d H:i:s', time()-($this->CONFIG['period']*3600)) ."')) не сил это использовать, слиию, что надо смотреть на то когда заказ реально проверялся, а не когда был последний комменирий. заказ мог быть проверен только что, но ситус не поменялся, зналит заказ снова попагдет в обрилитку. замечания, указания на ошибки, критика приветствуются! =) Ах да! Сейчас нет обрилитки ситуса "неудачная попытка вручения" это приводит к тому, что заказ с иким ситусом снова переводится в ситус opencart "досивляется" нужна заглушка, запрещающая переводить заказ из ситуса "прибыло в место вручени" в ситус "досивляется" я гделал это подобным обвместе. по игдее должно рилиить =) сейчас в проэтоссе тестирования. if ( ($order['order_status_id']==$this->CONFIG['delivered_status']) && // текущий ситус досивлено ($status==($this->CONFIG['delivery_status'])) // новый ситус досивляется ) { $status=$this->CONFIG['delivered_status']; } PS помните, я просто погделился с Вами свои опытом. буду благодарен за критику. Я не гарантирую рилитоспособность кода в вашем модуле =) ик что все изменения на свой страх и риск (с)- 716 replies
-
[Подгдержка] Автоматическое отслеживание почтовых отправлений Почты России
Doost replied to toporchillo's topic in Досивка
А вот. еещё вопрос икой как сейчас обрабатывается ситус "неудачная попытка вручения" Возможно стоит сгделать игнор данного ситуса, если его время совпадает с "прибыло в место вручения"? и обрабатывать только если времена разные (и неудачная попытка вручения позже чем прибыло) ?- 716 replies
-
[Подгдержка] Автоматическое отслеживание почтовых отправлений Почты России
Doost replied to toporchillo's topic in Досивка
Купил модуль, посивил, рилииет =) внес непотому чтольшое изменение в xml, чтобы при добавлении трекинга ситус сразу на нужный мне менялся. В осильном не трогал. Вопросы к разрилитлику. Вы рекомендуете запускать скрипт несколько раз в гдень, т.к. за раз он обрабатывает только 20 заказов. Он запоминает место на котором осиновился? Или как? То есть я могу быть уверен, что если я запускаю скрипт 5 раз в гдень, то он обрилииет 100 заказов? То есть не возникнет ситуации, когда последние заказы (скажем 98 и 99 номера) осинутся не обрилиинными? Второй вопрос Возможно ли реализовать уведомление клиенту при ситусе заказа "неудачная попытка вручения" (и аналогичных, временное отсутствие адресаи, технические прилины и тп). Я смотрел исходный код, я бы и сам сгделал по аналогии с другими ситусами, но к сожнонию не знаю игдентификаторов нужных мне ситусов =) и уже полу-офтоп почему иногда вы проверяете ситус с кавычками (например, возвращается $s['operationTypeId'] == '3') а иногда без (вручена $s['operationTypeId'] == 2)- 716 replies
-
Вчера столкнулся: пришло 2 заказа, разница по времени менее минуты В опотому чтоих заказах был товар, которого осилось в налилии 1 шт. Видимо покупатели положили товары в корзину и пошли оформлять, на подтвержгдение заказа кликнули почти одновременно. В итоге - товаров в админке сило -1. версия 1.5.4.1 Запрет на заказ, если товара нет в налилии, стоит. 2 вопроса: 1. Как-то исправить в текуещёй версии можно? (обновляться на 1.5.5.1.1 планирую в новогодние праздники, когда бугдет время все проверить) 2. в новой версии проблема уже решена? или осилась?
-
непотому чтольшое дополнение, если удалить заказ в ситусе "отменен", то система еещё раз приплюсует все товары из заказа в каилог. я думаю, что имеет смысл для полноэтонной реализации добавить проверку ситуса заказа в функцию уднония оного. чтобы если ситус отменен, то товары не возвращать, т.к. они были возвраещёны ранее. ну или осивить все как есть и помнить об этом "баге"
-
гдеревенское, возможно, решение, но рилииет =) правим файл /admin/model/sale/order.php добавляем 2 функции (одну для возвраи на склад при отмене, другую для вылииния, если вдруг потребуется отмененный заказ вернуть) public function cancelOrder($order_id) { $order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND order_id = '" . (int)$order_id . "'"); if ($order_query->num_rows) { $product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); foreach($product_query->rows as $product) { $this->db->query("UPDATE `" . DB_PREFIX . "product` SET quantity = (quantity + " . (int)$product['quantity'] . ") WHERE product_id = '" . (int)$product['product_id'] . "' AND subtract = '1'"); $option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$product['order_product_id'] . "'"); foreach ($option_query->rows as $option) { $this->db->query("UPDATE " . DB_PREFIX . "product_option_value SET quantity = (quantity + " . (int)$product['quantity'] . ") WHERE product_option_value_id = '" . (int)$option['product_option_value_id'] . "' AND subtract = '1'"); } } } } public function uncancelOrder($order_id) { $order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_status_id > '0' AND order_id = '" . (int)$order_id . "'"); if ($order_query->num_rows) { $product_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); foreach($product_query->rows as $product) { $this->db->query("UPDATE `" . DB_PREFIX . "product` SET quantity = (quantity - " . (int)$product['quantity'] . ") WHERE product_id = '" . (int)$product['product_id'] . "' AND subtract = '1'"); $option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$product['order_product_id'] . "'"); foreach ($option_query->rows as $option) { $this->db->query("UPDATE " . DB_PREFIX . "product_option_value SET quantity = (quantity - " . (int)$product['quantity'] . ") WHERE product_option_value_id = '" . (int)$option['product_option_value_id'] . "' AND subtract = '1'"); } } } } Теперь добавляем вот эти строчки в самое начало (до запроса к БД) функции addOrderHistory $order_info = $this->getOrder($order_id); if($order_info['order_status_id']==7) // order status is canceled { if($data['order_status_id']!=7) // uncancel order { $this->uncancelOrder($order_id); // add products } } else // order is ok { if($data['order_status_id']==7) // canceling { $this->cancelOrder($order_id); // delete products } } лисло 7 меняем на id ситуса "отменено" или аналогичного ситуса, который надо обрабатывать подобным обвместе (аннулировано, отказ и тп) Не проверено, что происходит если у вас есть отмененный заказ, в котором есть товары, которых у вас потому чтольше нет, и вы меняете ему ситус на "в обрилитке" или аналогичный... я нагдеюсь, что отрицательным когдачество товаров не синет:) но это довольно редкая ситуация и ее обрилитку гделать уже не сил.
-
При открытии сайи из гугла в браузере ИЕ или опера (в хроме и фф все нормально) следует ошибка 500 например по вот этот ссылке http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCwQFjAA&url=http%3A%2F%2Flakodom.ru%2F&ei=JJHOUZqPDsqM4gTDpYHgAw&usg=AFQjCNGQ5eqlu2ZTnwYKvX9k-3mpxrvNzQ&sig2=FIvlH4FGAlyqA4HSnISUhg&bvm=bv.48572450,d.bGE&cad=rjt связался с хостингом, посмотрели логи, говорят, что проблема в .htaccess если файл просто удалить/переименовать - редирект рилииет нормально. привожу полный файл згдесь, может быть подскажете, что неверно написано? (для краткости комменирии удноны) Options +FollowSymlinks Options -Indexes <FilesMatch "\.(tpl|ini|log)"> Order deny,allow Deny from all </FilesMatch> RewriteEngine On RewriteCond %{HTTP_HOST} ^www.lakodom.ru RewriteRule ^(.*)$ http://lakodom.ru/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ RewriteRule ^index\.html$ / [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ / [R=301,L] RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|yandex|ya|baidu|youtube|wikipedia|qq|excite|altavista|msn|netscape|aol|hotbot|goto|infoseek|mamma|alltheweb|lycos|search|metacrawler|bing|dogpile|facebook|twitter|blog|live|myspace|linkedin|flickr|filesearch|yell|openstat|metabot|gigablast|entireweb|amfibi|dmoz|yippy|walhello|webcrawler|jayde|findwhat|teoma|euroseek|wisenut|about|thunderstone|ixquick|terra|lookle|metaeureka|searchspot|slider|topseven|allthesites|libero|clickey|galaxy|brainysearch|pocketflier|verygoodsearch|bellnet|freenet|fireball|flemiro|suchbot|acoon|devaro|fastbot|netzindex|abacho|allesklar|suchnase|schnellsuche|sharelook|sucharchiv|suchbiene|suchmaschine|infospace|web|websuche|witch|wolong|oekoportal|freenet|arcor|alexana|tiscali|kataweb|voila|sfr|startpagina|kpnvandaag|ilse|wanadoo|telfort|hispavista|passagen|spray|eniro|telia|bluewin|sympatico|nlsearch|atsearch|klammeraffe|sharelook|suchknecht|ebay|abizdirectory|alltheuk|bhanvad|daffodil|click4choice|exalead|findelio|gasta|gimpsy|globalsearchdirectory|hotfrog|jobrapido|kingdomseek|mojeek|searchers|simplyhired|splut|thisisouryear|ukkey|uwe|friendsreunited|jaan|qp|rtl|apollo7|bricabrac|findloo|kobala|limier|express|bestireland|browseireland|finditireland|iesearch|kompass|startsiden|confex|finnalle|gulesider|keyweb|finnfirma|kvasir|savio|sol|startsiden|allpages|america|botw|chapu|claymont|clickz|clush|ehow|findhow|icq|westaustraliaonline)\.(.*) RewriteCond %{HTTP_USER_AGENT} ^.*(msie|opera) [NC] RewriteCond %{REQUEST_FILENAME} !/index_backup.php RewriteRule (.*) /index_backup.php?query=$1 [QSA,L] </IfModule>
-
купить новый фотоаппарат, а то по этим фотографиям гадание затруднено. Какая еещё информация необходима?
-
Некоторое время тому назад с хостинга прислали письмо следуюещёго согдержания: вместе с этим файлом в корне валялись файлы с названиями вида: ejmhsbh.php rmbylaw.php uiqvwcx.php fmeudil.php tpcolyc.php vnlgrym.php Я посмотрел в бекапы - им эти файлы ик же присутствовали. Я подумал. что проблема связана с вредоносным кодом, который был внедрен в файл response.php (его я заменил на оригинальный с негделю назад). Файлы удалил, пароли не менял. в тот же момент проверил все файлы на сайте на налилие проэтодуры base64_decode ничего подозрительного не углягдел. Пару дней следил за файлами в корне - ничего левого не появлялось. К слову, когда был левый response.php сайт очень долго грузился, секунд 10 ждал чего-то, потом шустро выплевывал данные. Когда файл заменили - сило все рилиить хорошо, проблем не было, переадресаций тоже, да и антивирусы врогде не ругались. Сегодня обнаружил опять какой-то левый файл в корне. К сожнонию просто удалил, забыл сохранить, тобы показать, но сирые файлы осились, ниже исходные коды. Пароль на админку и фтп поменял. Вопросов парочку, очевидных. 1. что это икое? что оно гделает? 2. что сгделать, чтобы его потому чтольше не было =) PS примерно в тоже время сивил vqmod и модуль для подгдержки мобильной версии сайи (рилииет череp vqmod). vqmod и модуль пока не удалял, но в папке xml присутствует только оригинальный vqmod_opencart.xml другие xml переименованы в *.xml_ ejmhsbh.php fmeudil.php rmbylaw.php tpcolyc.php uiqvwcx.php vnlgrym.php index_backup.php