Всего 125 657 комментариев

Константин
15 февраля 2021, 13:38
0
В письме менеджеру приходят данные о заказе и соответственно характеристиках товара. За это отвечает чанк tpl.msEmail. В нем вывожу артикул. Артикул: {$product.article}. Но на почту приходит артикул не модификации. А тот артикул который указан в свойствах товара по умолчанию! Как это можно исправить?
Евгений Мельников
15 февраля 2021, 12:37
0
Благодарю! Все получилось и работает, как нужно.
Futuris
15 февраля 2021, 12:10
0
А нужно ли создавать в АМО воронку и прописывать ее ID в настройках компонента? Или при передаче данных воронка для сделок создастся автоматически?
Andrew
15 февраля 2021, 11:58
0
Благодарю за быстрый ответ!
Я сделал стандартным методом, а тут решил попробовать поработать с классами. )

Да, я находил информацию, что в новых версиях MS2 ребята хотят внести функционал в коробку.
Если правильно понял, конечно же.

Еще раз, благодарю! Пошел обучаться! )
Алексей Шумаев
15 февраля 2021, 11:43
+1
Добрый!

1. не очень понятно, при чём тут Самовывоз — это не order, а delivery
Ты подключаешь кастомный класс заказа, не доставки.
2. проверь, что в системной настройке ms2_services

И ещё важный момент — этот пост старый, что в текущих версиях MS2 — я не скажу сейчас, возможно, что всё уже немного иначе )

Думаю, вот тут вся информация по расширению класса доставки.
Andrew
15 февраля 2021, 11:22
0
Добрый день!
Подскажите, где промахнулся…

1. Создал файл
path — > components/minishop2/custom/order/myOrderHandler.class.php

2. Вложил
class myOrderHandler extends msOrderHandler

public function submit($data = array())
    {
        if ($this->ms2->config['json_response']) {
            $success_page = $this->modx->getOption('ms2_order_success_page');
            if (is_numeric($success_page)) {
                if ($this->modx->getCount('modResource', array('id' => $success_page, 'published' => true, 'deleted' => false))) {
                    $url = $this->modx->context->makeUrl($success_page);
                    return $this->success('', array('redirect' => $url . '?msorder=' . $order->get('id')));
                }
            }
            return $this->success('', array('msorder' => $order->get('id')));


3. Создал парметр: ms2_order_success_page => id-ресурса на который хочу редиректнуть

4. Открыл консоль, вписал

if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addService('order', 'myOrderHandler',
        '{core_path}components/minishop2/custom/order/myOrderHandler.class.php'
    );


5. В парметр ms2_order_handler_class => myOrderHandler

6. Зашел в настройки MS2-Самовывоз-Моего класса нет.

7. Загрустил…
Константин
15 февраля 2021, 10:46
0
Приветствую, нам техподдержка 1с ответила так: prntscr.com/zkpa7y
Можем ли мы реализовать данную синхронизацию с помощью вашего компонента?
Илья Александрович
15 февраля 2021, 09:22
0
хотя нет, если есть ещё одна вложенность категории, то всё сбивается
Илья Александрович
15 февраля 2021, 09:12
0
товар сортируется правильно, а как для каждой категории товаров вывести название Категории?
Alexey
14 февраля 2021, 22:31
1
+2
Привет! В файле core/components/minishop2/custom/payment/robokassa.class.php заменить метод getPaymentLink на следующий код:

public function getPaymentLink(msOrder $order)
    {
        $id = $order->get('id');
        $sum = number_format($order->get('cost'), 2, '.', '');
	//список товаров в заказе
	$order_goods = $this->modx->getCollection('msOrderProduct', ['order_id' => $id]);
	$tmp = [];
	foreach($order_goods as $key => $good) {
	    $tmp[$key]['name'] = $good->name;
	    $tmp[$key]['quantity'] = $good->count;
	    $tmp[$key]['sum'] = $good->cost;
	    $tmp[$key]['tax'] = 'none';
	}
		
        //номенклатура заказа
        $receipt = ['items' => array_values($tmp)];
	$receipt_json = json_encode($receipt, JSON_UNESCAPED_UNICODE);
	$SignatureValue = md5($this->config['login'] . ':' . $sum . ':' . $id. ':' . $receipt_json . ':' . $this->config['pass1']);
        $request = array(
            'url' => $this->config['checkoutUrl'],
            'MrchLogin' => $this->config['login'],
            'OutSum' => $sum,
            'InvId' => $id,
            'Desc' => 'Payment #' . $id,
            'IncCurrLabel' => $this->config['currency'],
            'Culture' => $this->config['culture'],
            'Receipt' => $receipt_json,
            'SignatureValue' => $SignatureValue,
        );
        
        if (!empty($this->config['test_mode'])) {
            $request['isTest'] = 1;
        }
        $link = $this->config['checkoutUrl'] . '?' . http_build_query($request);
        return $link;
    }

Компонент давно не обновляется, нужна была оперативность, поэтому правил исходники компонента. Нужно иметь в виду, что если выйдет апдейт, то эти правки будут затерты. Про расширение классов, думаю, можно немало информации найти, хотя бы здесь.

Делал под конкретный сайта, поэтому передавал только необходимые параметры. Советую почитать тут ( skrinshoter.ru/s/140221/5d2fQ6PK?a ), возможно, нужно передать другую систему налогообложения, налоговую ставку и т.д…
Евгений Мельников
14 февраля 2021, 20:41
0
Добрый день!
В связи с введением новых правил, в чеках теперь должны быть указаны товары. Кто-нибудь решил такую задачу? Можете подсказать решение?
dokreg
14 февраля 2021, 18:20
0
спасибо большое, так работает
Андрей
14 февраля 2021, 18:17
+1
Попробуй так:
'where' => ['resid:=' => $_modx->resource.id]
Иван Бочкарев
14 февраля 2021, 15:47
+1
Обновление дополнения доступно в репозитории
Sergey
14 февраля 2021, 15:02
0
Спасибо большое! Работает
Николай Савин
14 февраля 2021, 14:58
+1
Решение.
Открываем файл core/components/minishop2/model/minishop2/msproductdata.class.php
Находим строку 648
Меняем
$data = array_merge($data, $response['data']);
на
$data = array_merge($data, $response['data']['data']);
Обновление исправляющее ошибку официально выйдет в ближайшие дни
Иван Бочкарев
14 февраля 2021, 14:39
0
Это не решение. Фикс будет возможно сегодня.
Николай Савин
14 февраля 2021, 11:54
+2
Обратиться в modstore — это конечно хорошо. Но компонент был приобретен в 2018 году и прекрасно работал до вчерашнего дня. А значит нам нужно будет платить только за то, что что-то пошло не так после обновления.
Странное у вас понимание проблемы. Авторизация не на ровном месте же сломалась. Она полностью изменилась со стороны AMO. У вас в любом случае она больше бы не работала.

Несколько десятков проектов обновились — и ничего работают. Проблем нет.

Платить вас никто не заставляет конечно — ровно как и меня вам помогать.
Единственное что я могу вам посоветовать вслепую не щупая проблему — Попробуйте саму интеграцию удалить, создайте заново, прямо с нуля с новым client ID -
Futuris
14 февраля 2021, 11:29
0
То что написано ошибка авторизации — это у меня хватило ума прочитать. Вопрос только что с этим делать? Я уже не один раз создавал новые ключи авторизации и обновлял данные в настройках. Но это не помогает, также как и полная очистка папки кеша на сервере.
Как уже писал заказы из корзины перестают работать уже после установки компонента, даже без всяких настроек, и их внесение не меняет ситуацию.

Обратиться в modstore — это конечно хорошо. Но компонент был приобретен в 2018 году и прекрасно работал до вчерашнего дня. А значит нам нужно будет платить только за то, что что-то пошло не так после обновления.

Николай Савин
13 февраля 2021, 22:12
0
Ну очевидно же — что то идет не так с авторизацией.
Попробуйте очистить кэш, а конкретно удалить в кэше каталог amocrm, затем заново создайте в личном кабинете ключ авторизации (он всего 20 минут действует), обновите эти данные в системных настройках сайта и сделайте заказ.
Если не поможет — пишите в техподдержку на modstore — разберемся.