Привет всем.
Имею МойСклад и ocStore 2.3, ставил модуль oc2.3-exchange1c_1.6.4.7(2).ocmod.zip. По дефолту заработала только загрузка товаров и истатков с мойсклад на сайт, но выгрузка заказов с сайта в мойсклад выдавала ошибку, пришлось подправить. Ошибка была в: строка 108 в фаиле ..\system\storage\modification\admin\model\sale\order.php, что есть middlename. У себя подправил в базе данных таблица "oc_modification", но вообщето надо изначально перед установкой в установочном архиве модуля из файла install.xml удалить строки:
<file path="admin/model/sale/order.php">
<operation>
<search><![CDATA['lastname' => $order_query->row['lastname'],]]></search>
<add position="after"><![CDATA[ 'middlename' => $order_query->row['middlename'],]]></add>
</operation>
</file>
Далее, после того как предыдущую ошибку пофиксите, появится следующая(которая уже описана на этом форуме ранее), а именно: в файле admin/model/extension/exchange1c.php нужно найти функцию
/**
* ver 3
* update 2018-04-09
* Получает информацию о покупателе (организации и физ.лице)
*/
public function getCustomerInfo(&$order) {
$query = $this->query("SELECT `firstname`,`lastname`,`middlename`,`company`,`company_inn`,`company_kpp` FROM `" . DB_PREFIX . "customer` WHERE `customer_id` = '" . (int)$order['customer_id'] . "'");
if ($query->num_rows) {
$order['firstname'] = $query->row['firstname'];
$order['lastname'] = $query->row['lastname'];
$order['middlename'] = $query->row['middlename'];
$order['company'] = $query->row['company'];
$order['company_inn'] = $query->row['company_inn'];
$order['company_kpp'] = $query->row['company_kpp'];
}
} // getCustomerInfo()
и в ней убрать обращения к тому же самому middlename. Я у себя убрал еще и company, company_inn и company_kpp. В итоге код стал выглядеть так:
/**
* ver 3
* update 2018-04-09
* Получает информацию о покупателе (организации и физ.лице)
*/
public function getCustomerInfo(&$order) {
//$query = $this->query("SELECT `firstname`,`lastname`,`middlename`,`company`,`company_inn`,`company_kpp` FROM `" . DB_PREFIX . "customer` WHERE `customer_id` = '" . (int)$order['customer_id'] . "'");
$query = $this->query("SELECT `firstname`,`lastname` FROM `" . DB_PREFIX . "customer` WHERE `customer_id` = '" . (int)$order['customer_id'] . "'");
if ($query->num_rows) {
$order['firstname'] = $query->row['firstname'];
$order['lastname'] = $query->row['lastname'];
//$order['middlename'] = $query->row['middlename'];
//$order['company'] = $query->row['company'];
//$order['company_inn'] = $query->row['company_inn'];
//$order['company_kpp'] = $query->row['company_kpp'];
}
} // getCustomerInfo()
после этого вроди как все работает без ошибок, но учитывая что middlename очень много где встречается в коде - возможно ошибки еще будут.
А вот теперь вопрос к тем кто в теме всего этого:
- какбы работа с middlename идет по всему коду модуля и какбы дописано много. Если это все уже когдато было дописано и работало корректно - может будет лучше вернуть возможность покупателям вводить отчество???? Ведь какбы отчество всеравно потребуется при оформлении доставки, не? Я какбы достаточно зеленый пока в данном проекте, поэтому не в курсе где и когда и кем был реализован данный функционал , и зачем он потом начал вырезаться, но если ктото в курсе какая последняя версия модуля имела в своем составе работающий механизм ввода отчества - напишите пожалуйста или скиньте сам модуль.
Далее - вопрос номер два: может ктото уже переводил шаблоны на twig для OpenCart 3 ??? Если да - поделитесь пожалуйста модулем, или хотябы шаблонами.
Давайте будем все вместе сообща поддерживать этот модуль. Также предлагаю залить самый последний рабочий модуль со всеми фиксами на github и поддерживать его там. Т.е. давайте сделаем нормальное рабочее опенсорсное решение.