-
Публікації
355 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем mario512
-
-
Мой 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 и с соответствующий кукой.
-
Пытаюсь, по найденным в сети примерам работы апи опренкарт, добавить свой метод в апи.
Пример файла:
<?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"}}
Что я делаю не так?
-
1 час назад, iglin сказал:
А, что то я сразу не обратил внимание что вы пр API написали. Тот токен что получается через route=api/login не подойдёт для доступа к админке. Сейчас видел вы в другой теме ещё вопрос написали - вот там корректно сделано, просто через авторизацию, а не через API опенкарта.
P.S. Или можно доработать catalog/model/account/api.php
В addApiSession добавить запись в сессию токена и ид администратора от имени которого будет подключение.
Спасибо. Попробую.
-
Стоит аналогичная задача. Какая версия OpenCart у вас?
-
-
Добрый день.Пытаюсь скопировать значения стандартных фильтров в модуле 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. Но копирования фильтров не происходит. Подскажите, что не так?)
-
23 часа назад, egor23 сказал:
я бы так не сказал. при оформление заказа нельзя не добавить, не отнять, не удалить товар.
Спасибо, приму во внимание!!!
-
В 14.03.2021 в 23:10, AndruhaOD сказал:
Добрый день.
Ваш магазин на мой взгляд один из самых продуманных в плане удобства и функционала.
Особенно понравился раздел checkout с кнопками почтовых операторов и самовывозом (карта)
Не подскажите как вы это реализовали?
Это модифицированная стандартная корзина. Спасибо.
-
Тема закрыта. Скрипт, в зависимости от того как я его запускал, использовал разные каталоги. Соответственно, я парсил разные файлы. Впредь буду указывать абсолютные пути к файлам))))
@nikifalex оказался прав. В некоторой степени...
- 1
-
1 час назад, 100napb сказал:
имейте ввиду, что php-cli у Вас, вероятнее всего, использует свой\другой файл конфигурации. в консоли выполните php --ini, что бы увидеть. Не говоря уже про то, что версия пхп может быть разной: веб-сервер может использовать одну, а по-умолчанию в системе может использоваться другая.
так же, обратите внимание на COUNT_RECURSIVE и функцию array_count_values
Версия php 7.2 Изначально в эту сторону копал. По поводу остального буду смотреть. Спасибо за наводку.
COUNT_RECURSIVE считает вложенные массивы. Это мне не подходит.
Вывод консоли
php --ini
Configuration File (php.ini) Path: /opt/alt/php72/etcLoaded Configuration File: /opt/alt/php72/etc/php.iniScan for additional .ini files in: /opt/alt/php72/link/confAdditional .ini files parsed: /opt/alt/php72/link/conf/alt_php.ini -
Да вроде все норм. Я открывал исходный файл xml. Количество элементов в нем равно значению var_dump -> int(13542)
Получаю объект:
$xml = simplexml_load_file($file_xml,'SimpleXMLElement', LIBXML_NOCDATA);
Далее преобразую объект в массив:
$product_data_arr = json_decode(json_encode($xml->shop->offers), true);
Сравниваю количество элементов полученного массива и исходного файла xml, все сходится.
-
Браузер:
var_dump -> int(13542)
shell:
var_dump ->int(17366)2 минуты назад, halfhope сказал:Это другое.
Сохраните данные массива в файл и сравните.
Судя по файлу xml, который разбираю, верное значение 13542. Получаю его выполняя скрипт в браузере, или post/get запросом.
-
33 минуты назад, ArtemFam сказал:
Ограничение на количество элементов в массиве? max_input_vars
phpinfo() говорит что 10 000
-
Добрый день. Есть массив, размер которого составляет 13542 элемента. Если скрипт запустить в браузере, то в этом случае функция count() возвращает 13542. Если скрипт запустить используя ssh/bash/shell/cron то функция вернет другое число.
Браузер:
var_dump -> int(13542)
shell:
var_dump ->int(17366)СпойлерArray ( [offer] => Array ( [0] => Array ( [@attributes] => Array ( [id] => 00000009856_1 [available] => true [selling_type] => r [group_id] => 29261 ) [vendorCode] => 9856 [name] => Кожаный чехол (книжка) Nillkin Sparkle Series для Apple iPhone 6/6s plus (5.5") [url] => https://itsellopt.com.ua/products/kozhanyy-chehol-knizhka-nillkin-sparkle-series-dlya-apple-iphone-6-plus-55/29272 [price] => 219 [currencyId] => UAH [categoryId] => 11101 [category] => Apple iPhone 6/6s plus (5.5") [vendor] => Nillkin [param] => Белый [picture] => Array ( [0] => https://itsellopt.com.ua/uploads/YZ/HE/tv/ZZ/IT/5t/6m/Oz/85/Pc/Cc/Uy/7G/wT/Xl/gN.jpg [1] => https://itsellopt.com.ua/uploads/A0/oe/jH/bE/o1/9S/9Y/Cj/gh/iP/Nv/OI/mj/KK/TA/TJ.jpg [2] => https://itsellopt.com.ua/uploads/43/5Q/DC/mH/fu/us/MY/gW/Bk/Ku/oY/LY/Zk/fk/tl/oy.jpg ) [description] => Бренд – Nillkin Форм-фактор – книжка Материал –синтетическая кожа + поликарбонат Поверхность – шероховатая ✔️ потрясающая книжка от компании Nillkin; ✔️ на ощупь шероховатая с эффектом перламутра; ✔️ нежные цвета; ✔️ в книжке нет магнита, но благодаря пружинному торцу она легко захлопывается; ✔️ каркас из поликарбоната; ✔️ обложка из синтетической кожи; ✔️ дизайн ультратонкий; ✔️ есть возможность разговаривать с закрытой обложкой; ✔️ позволяет хранить небольшие заметки, наличные или банковские карты; ✔️ не оставляет отпечатков; ✔️ не скользит в руках; ✔️ обеспечит гаджету полноценную защиту при падениях и ударах. ) =========================================================== [13541] => Array ( [@attributes] => Array ( [id] => 00000042627_6 [available] => true [selling_type] => r [group_id] => 208303 ) [vendorCode] => 42627 [name] => Чехол Camshield mate TPU со шторкой для камеры для Xiaomi Mi 10T / Mi 10T Pro [url] => https://itsellopt.com.ua/products/cexol-camshield-mate-tpu-so-storkoi-dlya-kamery-dlya-xiaomi-mi-10t-lite-redmi-note-9-pro-5g-1/208309 [price] => 169 [currencyId] => UAH [categoryId] => 57501 [category] => Xiaomi Mi 10T [vendor] => Epik [param] => Черный [picture] => Array ( [0] => https://itsellopt.com.ua/uploads/TSlavdpaUPhiAf43DNaJzLxCAKnIhXax.jpg [1] => https://itsellopt.com.ua/uploads/Utp7LOl1EEBTznH9t7HhcyCTVAO4mj2S.jpg [2] => https://itsellopt.com.ua/uploads/m0xZcyZiNE9pkp8biqpJkoDSufMmKz9h.jpg [3] => https://itsellopt.com.ua/uploads/aaj8SH1Mw2BOrnYaIucEVhhwJYwvd9Mm.jpg ) [description] => Чехол Camshield mate TPU со шторкой для камеры для Xiaomi Mi 10T / Mi 10T Pro (Черный) ) ) )
Есть идеи?
-
@VladimirGodelman Добрый день. Нет. Остается в карточке товара.
- 1
-
В 12.01.2021 в 11:01, Zetx сказал:
вижу у вас магаз больше заточен под Одессу, т.к. на главной выведен региональный запрос ... интересно, что по сео? сколько в сутки заходит из органики?
Добрый день. Магазин изначально планировался как каталог. SEO плотно не занимались. Только на уровне консультаций. На данный момент до 30 посетителей.
-
@yurok79 был послан после верификации)) Попробовал Microsoft, с их лимитом в 2 миллиона символов на месяц. Чесно говоря был шокирован качеством. Перевод Пучкова-Гоблина получается. Основная проблема в том, что он переводит английские слова и термины, которые присутствуют в тексте.
-
9 часов назад, Soong сказал:
Отличная работа, смотрится гуд.
Спасибо!
-
3 часа назад, KomissarJuve сказал:
абсурдное заполнение тайтла
-------------------------------------------------
<title>Защитное стекло для Xiaomi Redmi Note 3 Pro Special Edition 152 mm. Цена, купить защитное стекло для Xiaomi Redmi Note 3 Pro Special Edition 152 mm в Одессе, Харькове, Киеве, Запорожье, Львове. Защитное стекло для Xiaomi Redmi Note 3 Pro Special Edition 152 mm (на весь экран): обзор, описание, продажа, гарантия, поклейка.</title>
-----------------------------------------------------------
да и дескрипшен
тоже не очень
<meta name="description" content="Купить защитное стекло для Xiaomi Redmi Note 3 Pro Special Edition 152 mm (100% Качество) – лучшая цена $ на CaseRoom.in.ua. ЖМИ! -> тел: (050)22-070-88, (073)02-070-88. Быстрая доставка, Гарантия, Обзор, Фото." />
Спасибо за замечание. Выполнял рекомендации SEO специалистов)
-
В основном подгонял под шаблон. Сам модуль работает отлично.
-
53 минуты назад, Basbia сказал:
Как на меня отлично проделанная работа.
Подскажите пожалуйста почему выбрали ocstore 2.3
И если не сикрет каким модулем зделали префикс на язык ua
Спасибо. Наверное на данный момент самая "обкатанная" версия.
18 минут назад, magdek сказал:Верно. Пришлось его немного "подпилить".
-
Наткнулся на сервис . Обещают до 10 000 слов в день. Можно получить ключ API. Завтра буду пробовать.
P.S. 1000 слов без предоставления emal. Примерно до 7000 символов...
-
Отличный модуль. Все работает. Есть ли необходимость добавлять sitemap.xml для второго языка в google?
Пытался скормить ему https://сайт/ua/sitemap.xml и https://сайт/ua/index.php?route=extension/feed/google_sitemap не принимает.
-
В 07.12.2020 в 22:59, mastertim сказал:
Я один раз сдуру начитался тоже решил заказать у копирайтеров (выбирал по отзывам хвалебным) статьи для продвижения спортмагазина.
Верней уникальные описания карточек что бы были.
Две дамы старались, одна краше другой (судя по аватарам), но дуры-дурами.
Такую хрень написали, по типу "масло-масляное", атас еще они из Украины оказались, а у меня сайт российский, понавтыкали всюду своих словечек местечковых, блин...
Орфография никакая, ключи где надо и не надо, я сначала сидел как дурак исправлял сутки.
Потом плюнул, понял что легче старый текст вернуть и забить на это дело...
ДА и вообще, оформил в начале как то карточек 50 с оригинальным текстом, перелинковкой и проч.
Уж сколько зим, ни хера они не выше в поиске чем с обычным текстом (неоригинальным)...
Что за словечки местечковые? Горилка, борщ, тоби 3,14изда?)
- 1
Обращение из Api к методу в admin/controller/catalog/
в Допомога програмістам та розробникам
Опубліковано:
Добрый день. Набросал свой апи, который должен вызывать метод $this->model_catalog_ocfilter->copyFilters($this->request->post);, но получаю нотис:
Насколько я понял, что api из catalog не может напрямую вызывать методы из админки. Вот содержимое файла:
Как вызвать этот метод? Гугление не помогло. Спасибо за любой совет.