minishop2 3.0.5

Друзья, в связи с тем что в третьей версии minishop2 было внесено множество правок, улучшений и дополнений — логично, что выявляются проблемы — критичные и не очень. Стараемся оперативно проблемы решать. За последний месяц подготовили уже четвертый релиз.

Про патч-релизы не всегда имеет смысл рассказывать, так как они содержат достаточно небольшой объем правок. Но иногда рассказать все таки полезно.

Наша команда подготовила свежий релиз любимого интернет-магазина, в котором ровно два улучшения.
  1. Багфикс проблемы из-за которой не сохранялись записи в модели msOrderAddress.
  2. Небольшое некритичное изменение модели msOrder. Обратите внимание — возможно вам потребуется внести правки в ваши проекты.
В модели msOrder поле comment переименовано в order_comment. Это не тот комментарий, что заполняет клиент к заказу. Здесь идет речь о служебном комментарии от оператора. Потому если в вашем проекте используется такое поле, не забудьте переименовать.



Ниже никому не нужные объяснения, для чего понадобилось переименование. Можно пропустить.

Дело в том, что поле comment встречается два раза. В модели msOrder и модели msOrderAddress. При этом это совершенно разные поля, в которые заложен разный смысл.

  • В таблице адреса — поле коммент содержит комментарий к адресу от клиента
  • В таблице заказа — поле коммент содержит служебный комментарий к заказу от оператора\менеджера
Создание заказа так устроено, что одни и те же данные предоставляются в msOrder и msOrderAddress с мыслью, что каждая модель сама заберет нужные ей поля из тех данных.

$msOrder = $this->modx->newObject('msOrder');

        $orderData = array_merge($order, $data, [
            'createdon' => $createdon,
            'weight' => $data['cart_status']['total_weight'],
            'cost' => $data['cart_cost'] + $data['delivery_cost'],
            'status' => 0,
            'context' => $this->ctx,
        ]);
        $msOrder->fromArray($orderData);

        // Adding address
        /** @var msOrderAddress $address */
        $address = $this->modx->newObject('msOrderAddress');
        $address->fromArray(array_merge($order, array(
            'user_id' => $data['user_id'],
            'createdon' => $createdon,
        )));
        $msOrder->addOne($address);
Но поле comment повторяется и дублирует данные. Чтобы этого не происходило — используем разные именования полей.

Развитие miniShop2 происходит исключительно благодаря Вам друзья!
Финансовая поддержка с вашей стороны, позволяет выделять больше времени на развитие сообщества и обновлять наши проекты, которые в свою очередь приносят пользу и вам.

Поддержать нас можно, используя следующие каналы для доната:
Огромное спасибо, всем кто поддерживает!
Николай Савин
17 июня 2022, 10:21
modx.pro
960
+16
Поблагодарить автора Отправить деньги

Комментарии: 1

Александр Мельник
18 июня 2022, 19:22
+1
спасибо, что находите время и силы на улучшения. Это круто и заслуживает уважения.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1