Параметры веса и габаритов товара при разработке модуля ShopScript5

Исходя из специфики ShopScript5, насколько я понял, параметры веса и габариты создаются каждым администратором магазина самостоятельно и, судя по всему, отследить данное поле и параметр для передачи нет возможности(разрабатывая модуль ShopScript5), т.к. оно будет разным у разных магазинов, т.к. у кого-то "Вес", у кого-то "Вес товара", "Вес продукта" и т.д. Есть возможность создавать свои характеристики при установке модуля, например?

Да, и еще не получается вывести созданный параметр "Вес" в массиве айтемов из админки...Вижу [dimension_id], видимо касается габаритов, но ничего по поводу веса и поля с параметром "ves", которое, как я понял, должно подтягиваться к айтему товара. В общем, вопрос в том, можно ли унифицировать параметры веса и габаритов товаров разных магазинов(либо создавать поля характеристик при установке модуля) и где можно в массиве айтемов отыскать создаваемые характеристики.

Заранее спасибо!

14 ответов

  • 0
    Vlad Vlad 11 ноября 2013 05:25 #
    По моему вопросу, подскажите правильно ли так:
    Получаю id характеристики weight через класс shopFeatureModel()->getType, потом использую в shopFeatureValuesDimensionModel()->getValues и получаю вес единицы.
  • 0
    Вес товара в приложении Магазин всегда хранится в характеристике с идентификатором weight. Но в любом случае, если речь о модуле доставки, то он не может использовать никакие классы и методы приложения Магазин. Потому что это системный плагин, и к нему может обращаться любое приложение.

    Общение между модулем доставки и приложением по поводу веса происходит примерно так.

    1. Приложение спрашивает у плагина, в каких единицах он принимает вес. См. waShipping->allowedWeightUnit()

    2. Приложение передаёт в плагин список товаров заказа, и у каждого товара есть параметр weight. В тех единицах измерения, которые запросил плагин.

    Для габаритов такого интерфейса между плагином и приложением нет. На то есть причина: в отличие от веса, который суммируется тривиально, суммарные габариты нескольких item'ов автоматически расчитать не так-то просто. Если вы знаете, как решить эту проблему, расскажите нам, как :)
    • 0
      Vlad Vlad Vlad Vlad 11 ноября 2013 06:45 #
      Суммарные габариты товаров рассчитываются так:
      1 Товар - 20х30х10
      2 Товар - 5х10х13
      3 Товар - 12х10х30
      К примеру габариты товаров забили так.
      Для расчета примем дефолтные параметры как ДхШхВ (длинаХширинаХвысота)
      Затем сортируем от большего к меньшему:
      1. 30х20х10
      2. 13х10х5
      3. 30х12х10

      Далее выбираем самую большую длину - 30, ширину - 20, а высоту складываем - 25
      Т.е. 3 товара с вышеуказанными габаритами поместятся в коробку размерами 30х20х25, что может быть суммарными габаритами.

      Это имелось ввиду?
      • 0
        Алгоритм корректный в том смысле, что да, товары в коробку гарантированно поместятся. К сожалению, есть всякие абсурдные случаи, типа когда в корзине 1000 миллиметровых пуговиц и папка для бумаг формата А4.

        Всё, что я могу сказать, это что сейчас интерфейса передачи габаритов в плагин доставки нету. И каким он будет, когда (если) появится, я пока не знаю.
        • 0
          Vlad Vlad Vlad Vlad 11 ноября 2013 07:40 #
          Я вас понял. Ну понимаете, пуговицы наверняка в пакете, а пакет в коробке, также как и папки и т.д. и поштучно редко продаются...В данном случае тогда будем использовать дефолтные габариты, пока у вас не появится интерфейс.
    • 0
      Vlad Vlad Vlad Vlad 11 ноября 2013 07:10 #
      кхм, скажите а каким методом и какого класса будет правильнее всего получить инфу о товаре по id товара в заказе? Речь идет о приложении магазина, пока не о модуле доставки.
      • 0
        Для небольшого количества продуктов (например, в корзине) подойдёт класс shopProduct:

        $p = new shopProduct($product_id);
        $p->features[$feature_id] // и много чего другого, см. комменты в lib/classes/shopProduct.class.php

        Но упаси вас господь делать это в больших циклах (например, в списке продуктов по категории). Там используйте классы конкретных моделей и получайте данные для всех продуктов пачкой.
    • +1
      Martin256 Martin256 28 ноября 2016 13:59 #

      Скажите как на данный момент решен вопрос с габаритами товара?

  • 0
    Vlad Vlad 13 ноября 2013 03:29 #
    Есть ли возможность при установке модуля ShopScript создавать свои поля в форме Корзины? Т.е. человек устанавливает приложение и у него появляется новые поля типа "Улица", "Дом", а многостраничное поле "Адрес" деактивировать?
    • 0
      Vlad Vlad Vlad Vlad 13 ноября 2013 03:31 #
      вернее одностраничное поле "Адрес", но не суть важно
    • 0
      Посмотрите в бекенде Shop-Script 5 раздел Настройки -> Оформление заказов -> Контактная информация.
      • +1
        Vlad Vlad Vlad Vlad 13 ноября 2013 05:13 #
        Либо я не понимаю вас, либо вы меня... Я имел ввиду чтобы приложение само создавало поля. Может есть хук какой на создание доп.полей по событию установки приложения? Это к тому, что мне необходимо поля Адрес не одним полем, а "Улица", "Дом" отдельно, т.е. клиент ставит приложение и у него автоматом поле "Адрес" деактивируется, а появляется поле "Улица", "Дом" отдельно. Реально это в рамках модуля Шопскрипта5?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите