Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

mario512

Users
  • Posts

    362
  • Joined

  • Last visited

Everything posted by mario512

  1. Так вот эта одна из проблем. Таких Исполнителей достаточно много. Они порой и мотивируют людей использовать маркетплейсы.
  2. Какой функционал вы имеете ввиду? Стандартный голый OC? Некоторых устраивает функционал pron.ua. Я ище раз повторюсь. Я не пропагандирую использование платных и готовых решений. Я сторонник OC. Я пытался донести мысль, что полногстью готовый и настроенный магазин на этом бесплатном движке, не такой уж и бесплатный. А что самое неудобное, это фрагментация модулей от разных разработчиков, которые иногда конфликтуют с шаблонами, другими модулями и т.д. Вот такой пример. Он не про OC. Работаю с одним поставщиком товаров, который сайт не мог родить лет пять. Задал ему вопрос, почему? На что он поведал интересную историю. Захотел он сайт для оптовой торговли. Наименований товара порядка 20к. Естественно стал пробивать по знакомым. Посоветовали ему Васяна, который якобы сайты делает. Этот Васян с него доил примерно год. Не знаю на чём был сайт, но без слёз на него не посмотришь. причем это не только касаемо технической части. Так его и не запустили. Заказчик в итоге дал ему пинка, и перешел на porn.ua. Там его доили еще два года. После всего он нашел нормального исполнителя, который на престажоп запилил ему сносный магазин, который работает по сей день. Всего он потратил порядка 12k вечно зеленых. Так вот я уверен, если бы он зная наперед, через что ему придется пройти, предложили бы готовое решение за 10k, наверняка согласился бы. Таким людям пофиг на чём работает их магазин. Главное чтобы быстро и без *боты всякой.
  3. Уверен, покупателей будет достаточно))))
  4. Изложил данное из опыта общения с людьми, которые через это прошли. Вопрос не столько в жадности а сколько в добросовестности и компетентности разработчиков, которые предлогают свои услуги. Я же это указал. Хорошоп терпеть ненавижу. Просто пример привел. Ай Лав Опенкарт.
  5. Спасибо. Изучаю активно. И вам того советую.
  6. Ответ: Моё сообщение - размышление на тему падения популярности OC. Лично не имею ничего против енного, т.к. сам его активно юзаю. Я не в коем случае не оскорбляю чувства верующих.
  7. Если смотреть глазами заказчика, то запуск им на бесплатном OC сравним к походу к врачу в "государственную" больницу при нашей "бесплатной" медицине. По факту, не за деньги, его только скачать можно. Для заказчика начинается реальный геморой: 1) поиск и перебор исполнителей для запуска и мелких правок (не всегда компетентных, за деньги) 2) выбор шаблонов и покупка (за деньги) 3) покупка модулей для им (за деньги) 4) поиск и перебор SEO специалистов (не всегда компетентных, за деньги) 5) самомтоятельный поиск решений различных вопросов на форуме, где в него любезно тычут ссылками на платные модули (зачастую функционально не соответствующих своей стоимости и косвенно удовлетворяющих потребности) Это только то что на ум приходит. Конечно люди все чаще предпочитают маркетплейсы и хорошопы. Как это не прискорбно, но бесплатный OC нередко выходит дороже платных и готовых решений. Все преимущества, которые у него есть, они очевидны только разработчикам и программистам. Клиентам на это плевать.
  8. Использовал API Яндекс, пока не прикрыли лавочку. Спасибо за замечание. Исправлю.
  9. Если у товара в 1с и OpenCart есть одинаковый реквизит, по которому их можно связать, то для обновления цен и остатков можно использовать mysql-connector-odbc-5.3.13-win32. Пример кода обработки 1с: Перем Соединение; Процедура УстановкаСоединения() Драйвер = "MySQL ODBC 5.3 Unicode Driver"; Сервер = ""; База = ""; Логин = ""; Пароль = ""; КодСтр = ""; КодСтр = "STMT=set character_set_results=cp1251;" Соединение = СоздатьОбъект("ADODB.Connection"); СтрокаСоединения = "DRIVER="+СокрЛП(Драйвер)+";SERVER="+СокрЛП(Сервер)+";DataBase="+СокрЛП(База)+";UID="+СокрЛП(Логин)+";PWD="+СокрЛП(Пароль)+";"+СокрЛП(КодСтр); Соединение.ConnectionString = (СтрокаСоединения); Попытка Соединение.Open(); Conect=1; Исключение Conect=0; Сообщить("Не могу подключиться к базе!!!"); КонецПопытки; КонецПроцедуры Процедура ВыгрузитьОстатки() УстановкаСоединения(); ЗапросНоменклатура = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ВыбратьНоменклатуру) |Номенклатура = Справочник.ДопРеквизиты.ТекущийЭлемент; |НоменклатураТМЦ = Справочник.ДопРеквизиты.ТМЦ.ТекущийЭлемент; |НоменклатураЦена = Справочник.ДопРеквизиты.ТМЦ.ТекущийЭлемент.Цена2; |Условие(Номенклатура.АйДи <> 0); |Условие(Номенклатура.Включить = Перечисление.ДаНет.Да); |Группировка Номенклатура; |Функция Сч = Счётчик(); |";//}}ЗАПРОС Если ЗапросНоменклатура.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Кол = 0; Размер = ЗапросНоменклатура.Сч; Пока ЗапросНоменклатура.Группировка(1) = 1 Цикл Номенклатура = ЗапросНоменклатура.Номенклатура; НоменклатураТМЦ = ЗапросНоменклатура.НоменклатураТМЦ; НоменклатураЦена = ЗапросНоменклатура.НоменклатураЦена; Если Номенклатура.ЭтоГруппа() = 0 тогда Кол = Кол+1; глПрогрессор("Выгружаю Остатки",Размер,Кол); Ид = СокрЛП(Номенклатура.АйДи); Остаток = Регистр.Остатки.СводныйОстаток(0,НоменклатураТМЦ,Константа.БазСклад,,"Кво"); Запрос = "UPDATE `oc_product` SET `quantity` = "+Остаток+", `price`="+НоменклатураЦена+" WHERE `product_id` = "+Ид; Соединение.Execute(Запрос); КонецЕсли; КонецЦикла; КонецПроцедуры При данном подходе, запись производится непосредственно в бд. Сам магазин модифицировать необходимости нет.
  10. Вообще стандартная, в базе данный плоттера более 10k моделей устройств, на которые он ее режет. Сама плёнка имеет три разновидности. Думал что просто создать три варианта, и показывать во всех связанных по тематике категориях, привязав ко всем моделям смартфонов, в значениях фильтрах товара. Далее, для каждого производителя устройств, создать посадочную страницу, с поисковыми ключами наиболее актуальных моделей.
  11. @egor23 Спасибо за замечания по корзине. Доработал. Добавил возможность редактировать заказ в корзине. Провел различные оптимизации по скорости работы сайта. Товаров примерно 17k.
  12. Добрый день. Сайт с мобильными аксессуарами. Есть универсальная позиция товара (гидрогелиевая пленка). Не могу решить, как правильно поступить. Плодить кучу практически одинаковых позиций или создать одну, связав с нужными значениями фильтра? OCFilter.
  13. Спасибо. Перенес в каталог, но не могу обратиться к процедуре. Файл copyfilter.php лежит в каталоге catalog/controller/api/ Содержимое: Файл filtercopy.php лежит catalog/model/extension/module/ код: <?php class ModelExtensionModuleFiltercopy extends Model { public function Write($data = array()){ $this->log->write(print_r($data, true)); } } При обращении к нему получаю: Fatal error: Call to a member function Write() on null in /var/www/korney01/data/www/test.caseroom.in.ua/catalog/controller/api/copyfilter.php on line 18 Что не так?
  14. Добрый день. Набросал свой апи, который должен вызывать метод $this->model_catalog_ocfilter->copyFilters($this->request->post);, но получаю нотис: Notice: Undefined property: Proxy::copyFilters in /var/www/korney01/data/www/test.caseroom.in.ua/catalog/controller/api/copyfilter.php on line 18 Насколько я понял, что api из catalog не может напрямую вызывать методы из админки. Вот содержимое файла: <?php class ControllerApiCopyFilter extends Controller { public function copy() { $json = array(); if (!isset($this->session->data['api_id'])) { $json['error'] = $this->language->get('error_permission'); } else { $this->load->language('extension/module/ocfilter'); if ($this->request->server['REQUEST_METHOD'] == 'POST') { $this->load->model('catalog/ocfilter'); $this->model_catalog_ocfilter->copyFilters($this->request->post); $json['success'] = $this->language->get('text_complete'); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Как вызвать этот метод? Гугление не помогло. Спасибо за любой совет.
  15. Мой ip в списке разрешенных. В catalog/controller/api/login.php сессию стартует данная строчка: $this->session->start('api', $session_id_new); //$session_id_new получаю. Пример функции, стартующей сессию, system/library/session.php public function start($key = 'default', $value = '') { if ($value) { $this->session_id = $value; } elseif (isset($_COOKIE[$key])) { $this->session_id = $_COOKIE[$key]; } else { $this->session_id = $this->createId(); } if (!isset($_SESSION[$this->session_id])) { $_SESSION[$this->session_id] = array(); } $this->data = &$_SESSION[$this->session_id]; if ($key != 'PHPSESSID') { setcookie($key, $this->session_id, ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); } return $this->session_id; } Насколько я понял, должна стартовать сессия с именем api и с соответствующий кукой.
  16. Пытаюсь, по найденным в сети примерам работы апи опренкарт, добавить свой метод в апи. Пример файла: <?php class ControllerApiCopyFilter extends Controller { public function copy() { $json = array(); $this->log->write($this->request->post); $this->log->write($this->session->data['api_id']); if (!isset($this->session->data['api_id'])) { $json['error']['warning'] = $this->language->get('error_permission'); } else { $this->log->write($this->request->post); } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } } Получаю токен: stdClass Object ( [success] => API сессия успешно запущена! [token] => 0RpUQqTbHMT6pomZHLwwm********* ) Далее обращаюсь к своему методу: if(isset($token)) { $url = DOMEN_NAME."index.php?route=api/copyfilter/copy/&token=".$token; $post = array ( 'copy_type' => 'checkbox', 'copy_status' => '-1', 'copy_attribute' => '0', 'copy_filter' => '1', 'copy_option' => '1', 'copy_truncate' => '1', 'copy_category' => '1' ); $curl = curl_init( $url ); curl_setopt_array( $curl, array( CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_POSTFIELDS => $post, CURLOPT_COOKIEFILE, 'cookie.txt') ); $result=curl_exec($curl); a($result); curl_close($curl); Получаю: Notice: Undefined index: api_id in /var/www/korney01/data/www/test.caseroom.in.ua/catalog/controller/api/copyfilter.php on line 9{"error":{"warning":"error_permission"}} Что я делаю не так?
  17. @controll Стоит аналогичная задача. Какая версия OpenCart у вас?
  18. copy_store у меня нет. Не нравится ему токен сессия, полученная через API.
  19. Добрый день.Пытаюсь скопировать значения стандартных фильтров в модуле OCFilter. Есть скрипт, который парсит товары их xml. Есть хотелка, которая после парсинга обращается к модулю OCFilter, посредством пост запроса. Пример кода: $token = token(); if(isset($token)) { $url = DOMEN_NAME."admin/index.php?route=extension/module/ocfilter/copyFilters&token=".$token; $post = array ( 'copy_type' => 'checkbox', 'copy_status' => '-1', 'copy_attribute' => '0', 'copy_filter' => '1', 'copy_option' => '1', 'copy_truncate' => '1', 'copy_category' => '1' ); $curl = curl_init( $url ); curl_setopt_array( $curl, array( CURLOPT_RETURNTRANSFER=> TRUE, CURLOPT_POSTFIELDS => $post ) ); $response = json_decode(curl_exec( $curl )); curl_close($curl); echo $response; } Токен получаю по API. Но копирования фильтров не происходит. Подскажите, что не так?)
  20. Это модифицированная стандартная корзина. Спасибо.
  21. Тема закрыта. Скрипт, в зависимости от того как я его запускал, использовал разные каталоги. Соответственно, я парсил разные файлы. Впредь буду указывать абсолютные пути к файлам)))) @nikifalex оказался прав. В некоторой степени...
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.