Към съдържанието
PN Scripts

Разработка

Как да покажете най-ниската цена за 30 дни в WooCommerce, стъпка по стъпка

  • PN Scripts
  • 8 мин четене

Ако продавате на клиенти в ЕС и обявите намаление, на страницата трябва да стои предишната цена: най-ниската цена на продукта през поне 30-те дни преди началото на намалението. Самото правило, решението по делото Aldi Süd и честите грешки обяснихме в Omnibus: най-ниската цена за 30 дни в WooCommerce. Тази статия е практическата част: как реално да се появи това число на продуктовата страница в WooCommerce и как да проверите, че е вярно, преди кампанията да тръгне.

Накратко: WooCommerce не помни старите цени, затова работата е най-вече в това историята да се записва навреме и да не се показва число, което не можете да докажете. Всичко по-долу важи за всеки инструмент, който прави тези две неща. За пример ползваме собствения ни безплатен плъгин PN Scripts Price History for Discounts, защото знаем точно как работи.

#Стъпка 1: изяснете кои правила важат за магазина

Минимумът в ЕС е в чл. 6а от Директива 98/6/ЕО, добавен с Директива (ЕС) 2019/2161, т.нар. Omnibus. Всяка държава членка е избрала свои варианти, затова първо запишете правилата на всяка държава, в която продавате. За български магазин изискването е в чл. 65 от Закона за защита на потребителите (ЗЗП):

  • всяко обявено намаление съдържа предишната цена;
  • предишна цена е най-ниската цена за период не по-кратък от 30 дни преди намалението, в същия търговски обект, интернет страница или приложение;
  • за стоки, които се предлагат на пазара по-малко от 30 дни, периодът може да е не по-кратък от 7 дни;
  • при прогресивно намаление предишната цена остава цената преди първото намаление;
  • за храни и други бързо развалящи се стоки има отделни изключения, които се променят от 05.02.2027 г. (ДВ бр. 13/2026).

Период, по-дълъг от 30 дни, никога не е грешка, защото може да даде само същата или по-ниска предишна цена. Ако не сте сигурни дали за нови продукти важи по-кратък срок, не обявявайте намаления за тях.

#Стъпка 2: започнете да записвате цените преди кампанията, не по време на нея

WooCommerce пази текущата редовна и текущата промоционална цена. История няма, така че в деня, в който пуснете намаление, магазинът не знае каква е била цената преди три седмици. Това е стъпката, която повечето магазини пропускат: какъвто и инструмент да изберете, той трябва да работи поне 30 дни преди кампанията, иначе в първата кампания ще има продукти без доказуема предишна цена.

Цените се променят не само от екрана за редакция: има бърза и групова редакция, импорт от CSV, REST API, през който синхронизират ERP системите, WP-CLI и промоции по график. История, която следи само екрана за редакция, има дупки. Price History for Discounts записва всяко запазване на продукт от всички тези източници, пази ред само когато цената наистина се промени, а след активиране записва началните цени на целия каталог във фонов режим.

Ако преди това сте ползвали друг плъгин за най-ниска цена, импортирайте данните му. Нашият плъгин чете, без да променя, историята на три други плъгина и я ползва само за времето преди собствения си първи запис.

#Стъпка 3: инсталирайте плъгина и изберете готова настройка

Плъгинът е безплатен и с отворен код (GPL) в GitHub и е подаден за WordPress.org. Нужни са WordPress 6.5 или по-нов, WooCommerce 9.0 или по-нов и PHP 8.1 или по-нов. След активиране:

  1. Отворете WooCommerce → Price History.
  2. Изберете готова настройка: строги правила за ЕС, България, Германия, Полша или собствени. Настройката за България ползва 30 дни без по-кратките срокове от чл. 65, ал. 3 и 4, тоест е по-строга от минимума и затова е безопасна.
  3. Решете какво става с новите продукти: бележката се скрива (по подразбиране) или, където е позволено, се ползва най-ниската цена от пускането им.
  4. Отбележете бързо развалящи се стоки по продукт или по категория само ако правилата в държавата ви ги освобождават. По подразбиране това е изключено.
  5. Задайте текста. По подразбиране той е „Най-ниска цена през последните 30 дни преди намалението“, а можете да напишете свой с полетата {price}, {days} и {date}.

Готовите настройки са отправна точка, а не правен съвет. Ако продавате в няколко държави с различни правила, изберете най-строгите, с които можете да работите.

#Стъпка 4: проверете всяко място, където се вижда намаление

Клиентът може да види зачеркната цена на продуктовата страница, в списъците на категории и магазина, в свързаните продукти, в продуктовите блокове на блокова тема и след избор на вариация. Предишната цена трябва да стои до намалението на всяко от тези места и да е с или без ДДС точно като текущата цена.

Плъгинът добавя бележката към стандартния изход на цената в WooCommerce, затова тя се появява в класическите теми, в блока Product Price и в продуктовите колекции, както и за избраната вариация на вариативен продукт. Основен продукт, който показва диапазон от цени, няма бележка, защото диапазонът няма една предишна цена. За собствен дизайн има шорткод: [pnscripts_price_history] на продуктова страница или [pnscripts_price_history id="123"] навсякъде другаде.

След това минете през магазина на телефон. Конструкторите на страници, които изписват цените със собствен код, имат нужда от шорткода или малка промяна в шаблона.

#Стъпка 5: направете репетиция на кампанията на тестово копие

На тестово копие на магазина, преди кампанията:

  1. Изберете обикновен продукт, вариативен продукт и продукт, който вече е в промоция.
  2. Сменете цените така, както екипът ви наистина го прави: от редактора, с импорт от CSV, през синхронизацията с ERP.
  3. Насрочете промоция и я задълбочете по средата, за да проверите прогресивно намаление.
  4. Прочетете резултата за всеки продукт в отчета за покритие (Coverage report): там е всеки продукт и вариация в промоция с показаната предишна цена или причината да няма такава. От командния ред wp pnscripts-price-history history <id> показва записаната история, а wp pnscripts-price-history reference <id> изчислената предишна цена.

При прогресивно намаление периодът трябва да свършва в началото на първото намаление. Ако числото ви слезе до предходната промоционална цена, нещо смята от днешния ден, а не от началото на промоцията.

#Стъпка 6: оправете процентните отстъпки

След решението на Съда на ЕС по дело C-330/23 от 26 септември 2024 г. процентът или твърдението за изгодна цена трябва да се смята от предишната цена. Повечето теми смятат етикета „-25%“ от редовната цена. Ако редовната цена не е най-ниската за 30 дни, етикетът е грешен, дори бележката под него да е вярна.

Нашият плъгин не пренаписва етикетите и зачеркнатите цени, които извежда темата или друг плъгин. За разработчици има филтър pnscripts_omnibus_price_html, с който те да се преизчислят. Ако не можете да промените етикета, изключете процентните отстъпки за кампанията.

#Стъпка 7: решете какво правите с „неизвестно“

Понякога историята не може да докаже числото: продуктът е бил в промоция още когато записът е започнал, цените са сменени, докато плъгинът е бил изключен, или периодът стига до време преди смяна на ДДС или валута. Тогава нашият плъгин не показва предишна цена, вместо да гадае. Това е нарочно. WooCommerce пак ще покаже промоцията, затова за всеки такъв продукт решавате сами: изчаквате историята да покрие периода или прекратявате намалението. Отчетът за покритие показва причината за всеки продукт.

#Често задавани въпроси

Мога ли да въведа старата цена на ръка в допълнително поле?

Можете, но тогава трябва да докажете това число за всеки продукт и вариация, включително предишните промоции. Записаната история се защитава много по-лесно.

Защо няма бележка веднага след инсталирането?

Защото за продуктите, които вече са в промоция, историята още не покрива целия период. Бележката се появява, когато записите стигнат достатъчно назад, а отчетът за покритие обяснява всеки случай.

Работи ли с вариативни продукти?

Да. Всяка вариация има собствена история и собствена предишна цена, а бележката се показва, когато клиентът избере вариация.

Наистина ли плъгинът е безплатен?

Да. Плъгинът е безплатен и с отворен код в GitHub под лиценз GPL, няма заключени функции и не прави външни заявки. В момента е в преглед за WordPress.org.

Ако го инсталирам, магазинът ми спазва ли закона?

Никой плъгин не може да обещае това. Той изчислява и показва предишната цена от записана история; етикетите, текстовете на кампаниите и националните правила остават ваша отговорност. Тази статия не е правен съвет.

#Източници

Страница на продукта: PN Scripts Price History for Discounts. Изтегляне: github.com/pnscripts/pnscripts-price-history.

Още по темата

Още по темата

Коментари

Коментари

Напишете първия коментар.

Оставете коментар

Следваща стъпка

pnscripts.com/bg/contact

Пишете на екипа

Попитайте за статия или ни разкажете за проект, който искате да изградим. Отговаряме до един работен ден.

Пишете ни

Семейството PN Scripts

Другите сайтове на PN Scripts

Хостингът, игрите и блогът имат свои сайтове, поддържани от същата компания.

  • pnscripts.com

    PN Scripts

    Софтуерно инженерство

    Уеб и мобилни приложения, API и игри по поръчка, плюс нашите продукти и плъгини с отворен код.

  • games.pnscripts.com

    Игри

    Игри и игрови сървъри

    Домът на игрите на PN Scripts: безплатни браузърни игри, които се играят веднага, а игровите сървъри предстоят.

  • hosting.pnscripts.com

    Хостинг

    Хостинг и инфраструктура

    Споделен хостинг, KVM VPS, самостоятелни сървъри и домейни от същата компания, която изработва проекта ви.

  • blog.pnscripts.com

    Блог

    Статии и бележки

    Практични статии за разработка на софтуер, хостинг, отворен код и игри, писани от хората, които ги създават.

    Вие сте тук