Shopware имеет мощный модуль стоимости доставки, который вы можете специально вмешать в расчет. В нашем случае мы хотим реализовать следующий сценарий: стоимость доставки товара изначально определяется в зависимости от веса товара (указаны ограничения веса). Только для особых исключений должна быть возможность установить фиксированную стоимость доставки для каждого товара.
Таблица стоимости доставки выглядит так:
Вес | Взвесить | Цена |
0 кг | <3 кг | 4,99 € |
3 кг | <5 кг | 6,90 € |
5 кг | <10 кг | 9,50 € |
10 кг | <15 кг | 10,90 € |
15 кг | <20 кг | 12,90 € |
20 кг | <31 кг | 17,90 € |
31 кг | <40 кг | 49,90 € |
от 40 кг | 49,90 € базовая цена + 0,59 € за кг |
Сначала вы можете подумать о том, чтобы выбрать значение «Вес» в поле «Расчет стоимости доставки в соответствии с:» и ввести соответствующие ограничения ниже.:
Здесь у вас есть несколько проблем: реализовать правило «от 40 кг: базовая цена 49,90 евро + 0,59 евро за кг» непросто, такие значения, как 2,999, не точны, и нет возможности индивидуально распределить стоимость доставки для каждого товара . Чтобы сделать это возможным, мы сначала создаем новое поле с произвольным текстом (например, "attr5") в разделе "Настройки> Статья> Поля с произвольным текстом статьи".:
Теперь мы заполним это поле стоимостью в евро для всех товаров, которые должны иметь индивидуальную стоимость доставки. Для десятичных чисел вместо запятой используется точка.:
Наконец, мы создаем новый способ доставки с важными настройками «Расчет стоимости доставки на основе: собственного расчета» и «Фактор (%): 100»:
Наконец, в разделе «Дополнительные настройки» мы сохраняем нашу новую функцию расчета в разделе «Собственный расчет».:
a359cdf87765551f0706
Эта функция берет вес каждого предмета и рассчитывает цену. Три разных предмета весом 2,5 кг стоят 14,97 евро, трижды один и тот же предмет весом 2,5 кг стоит 9,50 евро. Если вы хотите выполнить расчет на основе общего веса (с результатом 9,50 евро в обоих случаях), вы изменяете функцию расчета только минимально.:
a359cdf87765551f0706
Если дилеры также должны быть включены, вы должны быть осторожны с ценами, указанными в запросе SQL, независимо от того, являются ли они чистыми или брутто-значениями (в зависимости от значений, установленных в Основные настройки> Настройки магазина> Группы клиентов> Введите цены брутто).
Если вы хотите принять во внимание функцию товара «Отметить товар как бесплатную доставку» (для каждого товара), обратитесь к столбцу b.shippingfree и установите следующий параметр в «Настройки»> « Стоимость доставки» > «Дополнительные настройки»> «Бесплатная доставка товаров».:
С помощью SQL вы можете строить любые сложные запросы. Желательно подготовить окончательный запрос с помощью переменных SQL, чтобы все это оставалось простым в обслуживании. Ниже приведен пример более сложного запроса, который различает покупателей магазина и розничных продавцов, учитывает товары с бесплатной доставкой, взимает плату за доставку только для максимальной корзины покупок и использует разные шкалы цен (в зависимости от бренда).:
a359cdf87765551f0706