Требуется доработка модуля CommerceML. Нужно добавить в выгрузку для заказов информацию о доставке и пунктах самовывоза из модуля Edost (официальный).
я так понимаю в документ заказ покупатетеля в 1с правильно ?
в поле коментарий или вам 1с ник будет допиливать реквизиты и надо в каком то отдельном виде это все грузить?
не в 1с а в МОЙ Склад. Там достаточно передать эти значения в стандартных полях а не в комментах.
ну или на крайний случай можно в комментах, но хотелось бы все же передать как обычное текстовое поле.
Работали через битрикс но там кучу заморочек, по идее в заказе все это есть https://yadi.sk/i/WXahwo72eqEpNA
ИнтернетМагазин/exim_1c?type=sale&mode=query
посмотрите что сюда грузиться
по идее тут должно быть все что вы писали
может склад просто не хочет все кушать или проверяли уже этот файл?
ну или на крайний случай можно в комментах
app/addons/rus_exim_1c/Tygh/Commerceml/RusEximCommerceml.php
заменить
$notes = $order_data['notes'];
на
//$notes = $order_data['notes'];
$shipping = (!empty($order_data['shipping'][0]['shipping'])) ? $order_data['shipping'][0]['shipping'] : "-";
$zipcode = $this->getContactInfoFromAddress($order_data, 'zipcode');
$country = $this->getContactInfoFromAddress($order_data, 'country_descr');
$city = $this->getContactInfoFromAddress($order_data, 'city');
$address1 = $this->getContactInfoFromAddress($order_data, 'address');
$notes = "\n" . "№" . $order_data['order_id'] . " - " . $shipping . "\n" . $order_data['lastname'] . " " . $order_data['firstname'] . "\n" . $order_data['phone'] . "\n" . $zipcode . ", " . $country . ", " . $city . ", " . $address1 . "\n\n" . $order_data['notes'];
Кто и где выдал?
У меня работает. Контроллер вроде не правил
ошибка после вставки кода. Ошибку выдает тут ИнтернетМагазин/exim_1c?type=sale&mode=query
Можете прислать свой код для сравнения?
попробовал с вашим файлом. Ошибка таже
вот эта строка приводит к ошибке
`
$notes = "\n" . "№" . $order_data['order_id'] . " - " . $shipping . "\n" . $order_data['lastname'] . " " . $order_data['firstname'] . "\n" . $order_data['phone'] . "\n" . $zipcode . ", " . $country . ", " . $city . ", " . $address1 . "\n\n" . $order_data['notes']; /*klm*/
`
Попробуйте переменные по одной убирать. Может быть я всё же что-то добавил в стандартные массивы.
{$fields.41}
У второго не видно название массива, и я сомневаюсь, что он будет доступен в выводе КоммерсМЛ
второе поле из доставки модуля едост
[shipping] => Array
(
[0] => Array
(
[shipping_id] => 31
[shipping] => ПЭК (до терминала со страховкой)
[delivery_time] => 2-4 дня
[description] =>
[rate_calculation] => R
[service_params] => Array
(
[0] => 0
)
[destination] => I
[min_weight] => 0.000
[max_weight] => 0.000
[service_id] => 632
[free_shipping] =>
[module] => edost2
[service_code] => 32
[is_address_required] => N
[disable_payment_ids] => Array
(
[0] => 18
[1] => 20
[2] => 1
[3] => 13
[4] => 14
[5] => 15
[6] => 16
)
[rate_info] => Array
(
)
[image] => Array
(
[icon] => Array
(
[image_path] => images/edost/company/19.gif
[alt] =>
[image_x] => 45
[image_y] => 45
[http_image_path] => images/edost/company/19.gif
[https_image_path] => images/edost/company/19.gif
[absolute_path] => images/edost/company/19.gif
[relative_path] => images/edost/company/19.gif
[is_high_res] => 0
)
)
[group_key] => 0
[rate] => 1370
[service_delivery_time] => 2-4 дня
[edost] => Array
(
[id] => 31
[price] => 1370
[priceinfo] => 0
[priceoffice] => Array
(
[3] => Array
(
[type] => 3
[price] => 1370
[priceinfo] => 0
)
)
[transfer] => 0
[day] => 2-4 дня
[insurance] => со страховкой
[company] => ПЭК
[name] => до терминала
[format] => terminal
[company_id] => 19
[profile] => 32
[sort] => 1004
[shop_id] => 0
[automatic] => edost
[title] => ПЭК (до терминала)
[description] =>
[shop_price] => 1230
[format_original] => terminal
[tariff_id] => 16
[ico] => 16
[name_original] => до терминала со страховкой
[company_ico] => 19
[price_formatted] => 1 370.00 <span class="ty-rub">Р</span>
[pricetotal] => 1370
[pricetotal_formatted] => 1 370.00 <span class="ty-rub">Р</span>
[to_office] => 3
[cod_tariff] =>
[office_id] => 24084
[office_type] => 3
[office_options] => 0
[office_address] => 2-й Муринский проспект, д. 49 (м. Площадь Мужества)
[office_address_full] => Терминал ТК ПЭК: 2-й Муринский проспект, д. 49 (м. Площадь Мужества), телефон: (812) 494-88-88, (812) 458-09-02, часы работы: пн.-пт. с 11:00 до 20:00, сб.-вс. с 11:00 до 18:00, обед с 15:00 до 15:30, код филиала: 1aaf/24084/3/32
[office_detailed] => https://edost.ru/office.php?c=24084
[office_link_head] => Пункт выдачи
[office] => Array
(
[id] => 24084
[code] => 1aaf
[name] =>
[address] => 2-й Муринский проспект, д. 49
[address2] =>
[tel] => (812) 494-88-88, (812) 458-09-02
[schedule] => пн.-пт. с 11:00 до 20:00, сб.-вс. с 11:00 до 18:00, обед с 15:00 до 15:30
[gps] => 30.358510,59.998560
[type] => 3
[metro] => Площадь Мужества
[options] => 0
[address_full] => 2-й Муринский проспект, д. 49
[cod_disable] =>
)
[office_map] => change
[compact_link] => другой пункт выдачи...
[office_link] => другой пункт выдачи...
[checked] => 1
[html_id] => edost_32
[html_value] => edost:32_31:24084:
[compact] => 1
)
[need_shipment] => 1
)
)
[shipment_ids] => Array
(
)
[secondary_currency] => RUB
[display_subtotal] => 24860
[payment_info] => Array
(
)
{$edost.format.data.office.tariff.0.office_address}
Обращаться можно по названию переменной в массиве или по её порядковому номеру, начиная с ноля
а как их вывести просто вставив в эту строку?
$notes = "\n" . $order_data['order_id'] . " - " . $shipping . "\n" . $order_data['lastname'] . " " . $order_data['firstname'] . "\n" . $order_data['phone'] . "\n" . $zipcode . ", " . $country . ", " . $city . ", " . $address1 . "\n\n" . $order_data['notes']; /*klm*/