Не сохраняются данные покупателя в minishop2 3.0.4-pl2

Привет!
После обновления minishop2 до 3.0.4-pl2 стали приходить пустые поля с данными покупателя на почту и в админке пустые.
Проверил на нескольких сайтах и на разных хостингах.
У всех нормально работает?
Vladimir Glukhov
14 июня 2022, 11:08
modx.pro
1
612
0

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

Артур
15 июня 2022, 01:47
0
Проблема есть, но ХЗ как её решить.
    Александр Мельник
    15 июня 2022, 07:11
    +2
    Можно я поразмышляю вслух? Это не вопрос к автору поста и речь не о конкретно minishop, а просто так — подискутировать с утра.
    Что заставляет нас устанавливать обновления?
    Мифическая вера в то, что каждая свежая версия программного обеспечения «лучше» предыдущей?
    Но так ли это на самом деле? Справедливо ли это для любого программного обеспечения? Как оценить плюсы и минусы обновления? Что правильнее?
    1) каждый раз все обновлять и тем самым сильно увеличивать риск возникновения сбоев в своем продукте (ведь по сути если наш код зависит от чьих-то сторонних компонентов, то мы обязаны просто «верить», что разработчик выпуская новую версию исправил в ней больше багов чем добавил).
    2) Или же единожды собрав стабильную систему (пусть и из сторонних компонентов) и тестами и временем убедившись, что именно эти версии компонентов хорошо работают в связке друг с другом, оставить систему в таком стабильном состоянии и ничего не обновлять? Ведь «лучшее это враг хорошего», как говорит народная мудрость и попытке улучшить то что и так работает хорошо, скорее всего приведет к тому, что все станет работать плохо.

    А теперь просто о моем личном опыте, хотя это совершенно не показатель что такой подход правильный.
    Начну с операционной системы. Я на всех своих устройствах пользуюсь линуксом на базе debian. Это и сервера и мои копмьютеры. Эти дистрибутивы разрабатываются очень крутой компанией canonical, новые версии выходят каждые 6 месяцев. И даже при условии, что разработкой занимаются профи, есди скачать релиз в день его выхода — он будет полон глюков. У людей 6 месяцев на доработку и тесты, люди профи и все равно в релизе много багов. Только через пару месяцев его уже можно скачать и кайфовать.
    Если говорить про modx. Из многих десятков сайтов, которые у нас есть, 80 процентов работает на modx 2.65 и прекрасно выполняет свои функции. Да, разрабатывая новый сайт, я беру самые последние версии компонентов. Но сделав один раз продукт, который показывает свою стабильность и полностью устраивает и меня и заказчика — я не вижу смысла что то в нем менять. Каждый раз, когда я пытаюсь что то обновить, возникают те или иные проблемы. И хорошо если этот баг сразу виден, например сайт полностью упал, но куда страшнее баги, которые не столь очевидны и вылазят спустя месяц после обновления. Да, я даже соглашусь, что такие баги при обновлении скорее всего говорят о моем невысоком уровне знаний (хотя исходники компонентов я никогда не правлю), но факт остается фактом, чем меньше я обновляю — тем стабильнее наши проекты. Такой вот парадокс.
    Николай Савин
    15 июня 2022, 08:51
    +2
    Здравствуйте. Проблему зафиксировал. Будем решать
      Дмитрий
      15 июня 2022, 09:12
      +1
      Тоже столкнулся с такой проблемой, вчера обновил minishop с 2.5.0 до 3.0.4 и перестали данные записываться в таблицу `ms2_order_addresses`, мне помогло поменять тип связи 'composites' на 'aggregate' и 'owner' c 'local' на 'foreign' в minishop2.mysql.schema.xml:
      <object class="msOrder" ....>
      <aggregate alias="Address" class="msOrderAddress" local="address" foreign="id" cardinality="one"
                         owner="foreign"/>
      и в msOrder.map.inc.php:
      Перенести из composites в aggreagtes:
      'Address' = (...., 'owner' => 'foreign')
        Николай Савин
        15 июня 2022, 09:18
        0
        Нормально вы бахнули, версий 20 вверх )
          mngatoff
          16 июня 2022, 12:08
          0
          я вот по одной версии обновлял. выкатите хотфикс хотя бы, у людей магазины с большими оборотами лежат
      Vladimir Glukhov
      15 июня 2022, 18:03
      0
      спасибо!
        Sem
        Sem
        15 июня 2022, 20:39
        0
        Если проблема коснулась объекта адреса заказа, то может и за одно пофисить связанный с этим баг из ишьюс
        github.com/modx-pro/miniShop2/issues/627
          Николай Савин
          15 июня 2022, 20:43
          0
          Этот issue давно решен. Не закрыл просто его.
            Николай Савин
            16 июня 2022, 10:13
            0
            На самом деле, при глубоком погружении оказалось, что этот issue и вызвал поломку.
            Связь Заказа и Адреса сделана довольно странно. Обычно Подчиненную модель (Адрес) привязывают к первичному ключу Главной модели (Заказа). И тогда Композитная связь работает очень хорошо.

            В минишопе Василий же, в свое время почему-то сделал наоборот. Здесь Адрес является основной записью, к которой привязывается заказ. Решение мягко говоря спорное.
            И я не могу переделать, потому что придется менять структуру полей. Это мажорное обновление, ломающее работу сайтов и компонентов. Внесу в план работ на будущее.

            Пока откатываю реализацию твоего issue назад и будем решать удаление адреса заказа костылями.
              Артур
              16 июня 2022, 11:59
              0
              Интересно было бы узнать что об этом думает сам @Василий Наумкин))) Ведь какая-то логика в тот момент им двигала.
                Василий Наумкин
                16 июня 2022, 12:03
                0
                Наверное, логика была в том, что на один адрес может быть оформлено несколько заказов.

                Более того, при создании нового заказа юзер может выбирать адрес доставки из уже оформленных (чтобы не заполнять каждый раз вручную). Не уверен, что это есть из коробки, но на каких-то проектах я выбор адреса из списка точно делал.

                С моей стороны, наоборот, удалять адрес при удалении заказа — это спорное решение.
                  Артур
                  16 июня 2022, 12:16
                  0
                  Понятно. Интересное решение.
                    Николай Савин
                    16 июня 2022, 13:14
                    0
                    Хм. При такой бизнес логике реализация имеет смысл. Но из коробки ее нет. Я даже не слышал, об упоминании подобного решения.

                    Я всегда рассматривал связь по аналогии modUser + modUserProfile
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          16