Параметры веса и габаритов товара при разработке модуля ShopScript5
Исходя из специфики ShopScript5, насколько я понял, параметры веса и габариты создаются каждым администратором магазина самостоятельно и, судя по всему, отследить данное поле и параметр для передачи нет возможности(разрабатывая модуль ShopScript5), т.к. оно будет разным у разных магазинов, т.к. у кого-то "Вес", у кого-то "Вес товара", "Вес продукта" и т.д. Есть возможность создавать свои характеристики при установке модуля, например?
Да, и еще не получается вывести созданный параметр "Вес" в массиве айтемов из админки...Вижу [dimension_id], видимо касается габаритов, но ничего по поводу веса и поля с параметром "ves", которое, как я понял, должно подтягиваться к айтему товара. В общем, вопрос в том, можно ли унифицировать параметры веса и габаритов товаров разных магазинов(либо создавать поля характеристик при установке модуля) и где можно в массиве айтемов отыскать создаваемые характеристики.
Заранее спасибо!
14 ответов
Получаю id характеристики weight через класс shopFeatureModel()->getType, потом использую в shopFeatureValuesDimensionModel()->getValues и получаю вес единицы.
Общение между модулем доставки и приложением по поводу веса происходит примерно так.
1. Приложение спрашивает у плагина, в каких единицах он принимает вес. См. waShipping->allowedWeightUnit()
2. Приложение передаёт в плагин список товаров заказа, и у каждого товара есть параметр weight. В тех единицах измерения, которые запросил плагин.
Для габаритов такого интерфейса между плагином и приложением нет. На то есть причина: в отличие от веса, который суммируется тривиально, суммарные габариты нескольких item'ов автоматически расчитать не так-то просто. Если вы знаете, как решить эту проблему, расскажите нам, как :)
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, что может быть суммарными габаритами.
Это имелось ввиду?
Всё, что я могу сказать, это что сейчас интерфейса передачи габаритов в плагин доставки нету. И каким он будет, когда (если) появится, я пока не знаю.
$p = new shopProduct($product_id);
$p->features[$feature_id] // и много чего другого, см. комменты в lib/classes/shopProduct.class.php
Но упаси вас господь делать это в больших циклах (например, в списке продуктов по категории). Там используйте классы конкретных моделей и получайте данные для всех продуктов пачкой.
Скажите как на данный момент решен вопрос с габаритами товара?