Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

CTPAX5000

Новачок
  
  • Публікації

    21
  • З нами

  • Відвідування

Відвідувачі профілю

708 переглядів профілю

CTPAX5000's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

3

Репутація

  1. Всем доброго дня. Еще раз хотелось акцентировать внимание по поводу версий CommerceML. Сама 1С пишет в своих модулях обмена, что версия 2.08 уже обратно не совместима с версиями 2.07 и ниже. То, что в описании модуля написано, что он поддерживает вплоть до версии 2.10 - не соответствует действительности. Модуль имеет базовые функции обмена по стандарту до 2.07. После некоторых шаманств, можно заставить модуль работать и на 2.08 и выше. Поэтому необходимо смотреть, какую версию использует ваша учетная система, и для нее подбирать модуль обмена, или дорабатывать этот.
  2. Сделал себе модификатор к этому модулю <?xml version="1.0" encoding="utf-8"?> <modification> <name>Свое имя</name> <code>Свой код</code> <version>Своя версия</version> <author>Свое имя</author> <link>Своя почта</link> <file path="admin/model/extension/exchange1c.php"> <operation> <search><![CDATA[$this->log("~КОНЕЦ ЗАГРУЗКИ ДАННЫХ");]]></search> <add position="before"><![CDATA[ if ($this->config->get('exchange1c_product_disable_if_quantity_zero') == 1) { $this->query("UPDATE `" . DB_PREFIX . "product` SET `status`='0' WHERE `quantity` <= 0" ); } if ($this->config->get('exchange1c_product_disable_if_price_zero') == 1) { $this->query("UPDATE `" . DB_PREFIX . "product` SET `status`='0' WHERE `price` = 0" ); } $this->query("UPDATE `" . DB_PREFIX . "product` SET `status`='1' WHERE `price` > 0 AND `quantity` > 0" ); ]]></add> </operation> </file> </modification> Проверяет, если установлена галочка отключать товары с нулевым остатком и нулевой ценой и отключает их. При появлении цены или положительного остатка после обмена - включает их. Так же можно и с категориями сделать
  3. Что бы выгружать все измененные заказы, кроме брошенных, нужно добавить фильтр по полю order_status_id в функцию public function queryOrdersExport(). Брошенные заказы имеют значение order_status_id=0. // Этот запрос будет использовать индексы поля date_modified $query = $this->query("SELECT `order_id`,`order_status_id` FROM `" . DB_PREFIX . "order` WHERE `date_modified` BETWEEN STR_TO_DATE('" . $from_date . "', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('" . $to_date . "', '%Y-%m-%d %H:%i:%s')"); сюда добавить условие, что order_status_id<>0. Функция находится в файле по пути admin\model\extension\exchange1c.php Однако, я не совсем понимаю, зачем изменять заказы непосредственно в OpenCart, если можно эти обязанности возложить на 1С. Однако и в этом случае придется допиливать модуль обмена, поскольку у Автора логика выглядит следующим образом: Пришел заказ на сайт; выгрузили в 1С; изменили состав заказа в 1С (нет товара, или клиент решил заказать больше или меньше), выгрузили из 1С в ОС; получившуюся разницу в цене закинули в доставку. При этом состав товара, его количество в ОС уже не совпадает с данными в 1С. Поэтому в нашем случае, мы при загрузке обновленного заказа из 1С в ОС просто удаляем все товары из БД и записываем туда уже новые данные из файла обмена. Так же, Что бы не вносить изменения в модуль обмена, можно использовать предложенный метод выгрузки заказов с определенным статусом после изменения в ОС, если вместе с изменениями заказу присваивать статус, указанный в настройках как выгружаемый.
  4. Это при выгрузке с сайта или при выгрузке из 1С? Попробуйте создать обмен в 1С с выгрузкой в локальную папку, и выложите сюда все что она отдает. Только что посмотрел, в версии модуля 1.6.4.7 есть такая строчка $product_feature_id = $this->addFeature($product_id, $data['feature_guid'], $data['ean'], $data['sku']); Однако самой функции addFeature ни в одном файле модуля ПРОСТО НЕТ в наличии. Поэтому характеристики в OpenCart просто не попадают в базу данных. В версии модуля 1.6.4.5 есть такая функция, однако там логика поиска по характеристикам отличается от того, как задумано в 1.6.4.7. Кто разбирается немного в PHP - сможет вставить эту функцию, и, по идее, должно заработать. В моем проекте характеристики не используются, поэтому я не имею возможности поэкспериментировать. Вот код функции из версии 1.6.4.5: /** * ver 3 * update 2017-12-20 */ private function addFeature($product_id, $feature_guid, $ean = '', $sku = '') { $this->query("INSERT INTO `" . DB_PREFIX . "product_feature` SET `product_id` = " . $product_id . ", `guid` = '" . $this->db->escape($feature_guid) . "', `ean` = '" . $this->db->escape($ean) . "', `sku` = '" . $this->db->escape($sku) . "'"); return $this->db->getLastId(); } // addFeature() Функция должна находиться в файле по пути admin\model\extension\exchange1c.php
  5. Модуль работает на версии CommerceML 2.07. Розница же работает скорее всего на версии CommerceML 2.08 и выше. Хотя в описании к модулю и написано, что он умеет понимать вплоть до CommerceML 2.10, но это не может быть правдой, т.к. начиная с версии CommerceML 2.08 уже обратно не совместимо с ранними версиями. У них разная структура, названия реквизитов .xml файла и 1С по-разному обрабатывает ответ с сайта. Во всяком случае для УТ 10.3 и модуле обмена данными Битрикс 4.0.5.1 (CommerceML 2.08) ситуация выглядит именно таким образом.
  6. В настройках магазина на вкладке Опции есть пункт "Статус заказа" - это статус, который присваивается полностью сформированному заказу. В настройках обмена на вкладке Заказы в пункте "Статус для выгрузки:" выставьте такой же статус. А в настройке "Статус выгруженных:" поставьте другой. Логика такая: все заказы со статусом как в "Статус для выгрузки" будут выгружаться в любом случае, пока не изменится статус этих заказов. Однако, после выгрузки модулем, статус этих заказов изменится на статус, указанных в пункте "Статус выгруженных". И эти заказы перестанут выгружаться. Если Вы используете значение "Статус для выгрузки" "Не использовать", то у Вас будут выгружаться все заказы, в том числе и неоформленные. Так же имейте в виду, что, если 1С умеет выгружать статусы, и присвоит импортированному заказу статус как в пункте"Статус для выгрузки", то при выгрузке этих заказов они опять поменяются в магазине, и при следующем обмене снова выгрузятся в 1С
  7. Этот модуль через раз работает с версией OC 2.3.х.х. а у вас 3.0.2.0. Там совсем другая структура базы данных. Возможно поэтому и не работает. Так же в данном модуле очень плохо с характеристиками товара. поставьте в настройке Уровень вывода в журнал: Отладка и SQL запросы. Из того лога, что вы прислали - вроде ошибок нет, но там нет полной информации, что происходит. Так же в настройках обмена должны быть сопоставлены типы цен. Попробуйте так же создать вручную хотя бы одну характеристику товара, который выгружаете.
  8. 1С не выгружает заказы, созданные в ней вручную. Она отслеживает только те заказы, которые ранее были загружены с интернет-магазина
  9. Уважаемый IronMann, последуйте уже собственному совету, надоело читать Ваш негатив через пост. Создайте уже свой супер-модуль (исходя из Ваших же слов, Вам это под силу), и предлагайте его народонаселению... Я думаю, если будет качественная альтернатива, за разумные деньги, - будет и у Вас покупатель и довольный юзер. А пока есть только негатив, альтернативы - увы, нет.
  10. Подтверждаю, Ранее в посте поторопился, на версии 19b не срабатывает функция отключения при отсутствии на складе. 1С перестала ругаться при выгрузке, в логе пишет 2018-06-12 0:29:55 - 2798(M) Цена основная 'Оптовая USD' = 7 2018-06-12 0:29:55 - 2810(M) Нет характеристик, можно удалить старые цены: 2018-06-12 0:29:55 - 2723(M) Удалено старых цен: 0 2018-06-12 0:29:55 - 2813(M) Цена товара = 7 2018-06-12 0:29:55 - 2877(M) Остаток: 0 2018-06-12 0:29:55 - 2880(M) Установлен статус при отсутствии на складе, stock_status_id:5 2018-06-12 0:29:55 - 2892(M): однако товар не отключается.
  11. Этот пункт как раз и запрещает изменять статус у товара. т.е. если он включен, то не будут отключаться товары с нулевым остатком и нулевой ценой. Поэтому этот пункт отключаем, включаем "Не показывать товар с нулевой ценой " и должно работать
  12. Спасибо, поправил. Остался только вопрос: при включенной опции " Не показывать товар с нулевым остатком " по-прежнему обмен завершается ошибкой в 1С., хотя сам магазин товар с нулевым остатком отключает. Выгружено товаров: 338 Выгружено картинок: 0 Получен расширенный статус успешного завершения сеанса Ответ сервера: Successfully import catalog Произошла ошибка на стороне сервера. Получен неизвестный статус импорта. Обмен не выполнен Ответ сервера: Successfully processed file: C:/***/system/storage/cache/exchange1c/offers.xml Выгрузка товаров завершена с ошибками!!!
  13. Доброго дня. В версии 1.6.4.4b15 поменяли преобразование из UTF-8 в Windows-1251, теперь УТ 10.3 не может обработать ответ сервера и каждый обмен завершается ошибкой в 1С

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.