Перейти к содержанию

djat

Новичок
  • Публикаций

    17
  • Зарегистрирован

  • Посещение

Репутация

1 Обычный

Информация о djat

  • Звание
    Пользователь
  • День рождения 15.01.1983

Информация

  • Пол
    Мужчина
  • Город:
    Москва
  • Интересы
    Програмирование
  1. Кажется сделал. У меня в модификаторе файла seo_pro были пропущены строки if ($url[0] == 'newsblog_article_id') { $this->request->get['newsblog_article_id'] = $url[1]; }
  2. Приветствую, тоже небольшая проблемка с seo_pro. При включении Сеопро.при клике на статью, попадаем в категорию, при клике категории также в категорию. Если отключить все, то и в статьи и в категории попадаем. Что делать куда копать?
  3. Если ты поставишь галку сбрасывать товары, то при выгрузке все товары удалятся, и загрузится то, что ты выгружаешь из 1с. то же самое касается и всего остального. По сео, если ты прописал руками все, а потом поставишь галку, то удалятся все урлы, и при загрузке пропишутся новые, если стоит Deadcow, если его нет, то будут стандартные не ЧПУ урлы.
  4. Как я добавил перекачку в 1с доставки из заказа Изменения пока тестирую. Доставка добавляется как отдельная номенклатура в 1с, затем сменил ее тип на услуги. Вроде работает. Что сделал я Добавил после функции // Товары $products = $this->model_sale_order->getOrderProducts($orders_data['order_id']); $product_counter = 0; foreach ($products as $product) { $id = $this->get1CProductIdByProductId($product['product_id']); $document['Документ' . $document_counter]['Товары']['Товар' . $product_counter] = array( 'Ид' => $id ,'Наименование' => $product['name'] ,'ЦенаЗаЕдиницу'=> $product['price'] ,'Количество' => $product['quantity'] ,'Сумма' => $product['total'] ); $product_counter++; } Следующий код //Доставка $totals = $this->model_sale_order->getOrderTotals($orders_data['order_id']); foreach ($totals as $total) { if ($total['code']=='shipping') { $document['Документ' . $document_counter]['Товары']['Товар' . $product_counter] = array( 'Ид' => '' ,'Наименование' => 'Доставка' ,'ЦенаЗаЕдиницу'=> $total['value'] ,'Количество' => 1 ,'Сумма' => $total['value'] ); } }
  5. Помогите. Перечитал весь форум, может что-то и пропустил мимо, но так и не понял как сделать, чтобы выгружалась доставка. Ткните, может кто-то реализовывал. Карт 1.5.4.1 - 1с УТ11
  6. Кому-нибудь может понадобится: Проблема: Выгружаются брошенные заказы в 1с. Решение: Чтобы брошенные заказы не выгружались в 1с и не обновлялся статус заказа на выгруженный, в файле adminmodel\tool\exchange1c.php заменить строку $query = $this->db->query("SELECT order_id FROM `" . DB_PREFIX . "order` WHERE `date_added` >= '" . $params['from_date'] . "'"); на $query = $this->db->query("SELECT order_id FROM `" . DB_PREFIX . "order` WHERE `order_status_id` <> '0' and `date_added` >= '" . $params['from_date'] . "'"); Что получил. Заказы остаются в статусе брошенные, что позволяет потом покупателю дооформить свой заказ, при оформлении заказа он сможет выгрузиться в 1с.
  7. Модуль отрабатывает на 100% все что нужно и даже больше. Не работал, т.к. были дурные настройки в Юнисендере. Поменял настройки, сделал доп поля сначала через бридж выгрузил базу, теперь Вам модуль корректно новых подписчиков перекидывает в юнисендер, также и отменяет. Благодарю за хорошее решение.
  8. У меня почему-то не передется имя. ЧТо делать?
  9. Что ж попробую и это разрешить. Руками категории можно назначить в таблице category_to_1c, то есть один раз выгрузить полностью со сбросом категорий, потом галочку в настройках модуля выгрузки убрать, руками поправить соответствие категорий и радоваться жизни))) По поводу товаров с положительными остатками. Сделать это можно, преписав запрос на выборку товаров: В файле catalog\model\catalog\product.php ищем функцию getProducts В ней дописываем в условие запроса, например после p.status = '1'. (Где-то строка 60-90, точно незнаю, т.к. у меня многое переписано уже) $sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; Меняем на это: $sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; То же самое дописываем в функцию getTotalProducts Но это будет работать только при списках. При прямом попадании на товар, поиске и в других модулях, товар будет доступен. Если необходимо везде его отключить, то надо в каждом модуле менять. Но мне кажется проще сделать в модуле выгрузки, что если количество 0, то писать в статус выключен и все. Если необходимо, то могу посмотреть что можно сделать.
  10. Отвечу по порядку. 1. В файле admin\model\tool\exchange1c.php надо изменить функцию initCategory Строку ,'top' => isset($data['top']) ? $data['top'] : 1 Заменить на ,'top' => isset($data['top']) ? $data['top'] : 0 Тогда все закачиваемые категории не будут выводиться в горизонтальное меню. 2. На этот вопрос я давал ответ в посте https://opencartforum.com/topic/15471-opencart-exchange-1c/page-77#entry244594 Короче в файле admin\model\tool\exchange1c.php надо закоментить строку Что будет происходить. При выгрузке, если она первая то категории создадутся из 1с, но если товары уже были в базе, то останутся прикрепленными к опенкартовским категориям. При закачки в опенкарт, категории надо будет назначать руками. Я сделал так, т.к. структура в 1с и карте разная.
  11. Досканально не разбирался. Но мне кадется проблема именно в языке. У меня стоит приоритет языка так: 1. Русский, 2 Инглиш. Посмотри в настройках Опена. Модуль пишет товары в язык под номером 1, я у себя немного переделывал, у меня теперь 2 языка заполняются. Иморт и офферс из Восьмерки правильные. Стандартная xml.
  12. На английском языке сделал пока чтобы туда записывалось русское название. Этот кусок $result['product_description'] = array( 1 => array( 'name' => isset($product['name']) ? $product['name'] : (isset($data['product_description'][1]['name']) ? $data['product_description'][1]['name']: 'Имя не задано') ,'meta_keyword' => isset($product['meta_keyword']) ? trim($product['meta_keyword']): (isset($data['product_description'][1]['meta_keyword']) ? $data['product_description'][1]['meta_keyword']: '') ,'meta_description' => isset($product['meta_description']) ? trim($product['meta_description']): (isset($data['product_description'][1]['meta_description']) ? $data['product_description'][1]['meta_description']: '') ,'description' => isset($product['description']) ? nl2br($product['description']): (isset($data['product_description'][1]['description']) ? $data['product_description'][1]['description']: '') ,'seo_title' => isset($product['seo_title']) ? $product['seo_title']: (isset($data['product_description'][1]['seo_title']) ? $data['product_description'][1]['seo_title']: '') ,'seo_h1' => isset($product['seo_h1']) ? $product['seo_h1']: (isset($data['product_description'][1]['seo_h1']) ? $data['product_description'][1]['seo_h1']: '') ,'tag' => isset($product['tag']) ? $product['tag']: (isset($data['product_description'][1]['tag']) ? $data['product_description'][1]['tag']: '') ), ); На этот: $result['product_description'] = array( 1 => array( 'name' => isset($product['name']) ? $product['name'] : (isset($data['product_description'][1]['name']) ? $data['product_description'][1]['name']: 'Имя не задано') ,'meta_keyword' => isset($product['meta_keyword']) ? trim($product['meta_keyword']): (isset($data['product_description'][1]['meta_keyword']) ? $data['product_description'][1]['meta_keyword']: '') ,'meta_description' => isset($product['meta_description']) ? trim($product['meta_description']): (isset($data['product_description'][1]['meta_description']) ? $data['product_description'][1]['meta_description']: '') ,'description' => isset($product['description']) ? nl2br($product['description']): (isset($data['product_description'][1]['description']) ? $data['product_description'][1]['description']: '') ,'seo_title' => isset($product['seo_title']) ? $product['seo_title']: (isset($data['product_description'][1]['seo_title']) ? $data['product_description'][1]['seo_title']: '') ,'seo_h1' => isset($product['seo_h1']) ? $product['seo_h1']: (isset($data['product_description'][1]['seo_h1']) ? $data['product_description'][1]['seo_h1']: '') ,'tag' => isset($product['tag']) ? $product['tag']: (isset($data['product_description'][1]['tag']) ? $data['product_description'][1]['tag']: '') ), 2=> array( 'name' => isset($product['name']) ? $product['name'] : (isset($data['product_description'][2]['name']) ? $data['product_description'][2]['name']: 'Имя не задано') ), ); Буду думать как по другому сделать, пока так устраивает.
  13. Вопрос снят, Закоментил 1 строчку, чтобы не мешалась. В функции parseImport Закоментил строчку: //if ($product->Группы) $data['category_1c_id'] = (string)$product->Группы->Ид; Теперь буду разбираться с картинками и заполнением других атрибутов. Еще проблема, сбрасывает название товара на английском языке.
  14. Разбираюсь дальше.. 1. Первый вопрос сам решил. По первому вопросу понял, что при инициализации, проверяется товар по sku, если есть, то подцепляется связь, если нет, то в опенкарте создается новый товар.
  15. Приветствую, пока разбираюсь с модулем, но есть пару вопросов. 1. При инициализации выгрузки создаются таблицы соответствия ID опенкарт--ID 1с. Условия выгрузки такие: Есть опенкарт с товарами, есть 1с с товарами. Товары там и там заводились независимо друг от друга. Как мне сделать, чтобы при выгрузке из 1с товары в опенкарте не заводились новые, а обновлялись старые. По какому признаку идет обновление инфы? Как идет сопоставление товаров в таблице product_1c. 2. Почти то же касается категорий, убрал все галки "сбрасывать", но при ручной загрузке сбросились категории товаров. Поясню. Сейчас группы свои отличные от 1с, и хочу их оставить, т.к. товар находится не только в одной группе, а в нескольких, сделано специально для фильтра, а модуль затирает старые опенкартовысие группы и пишет туда структуру каталога 1с. Как этого избежать? Спасибо.
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.