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

Настройки за бисквитки

Изберете кои видове бисквитки разрешавате. Можете да промените избора си по всяко време чрез „Настройки за бисквитки“ в долната част на всяка страница. Декларация за поверителност

Необходими

Винаги включени

Нужни са за вход, за запазване на количката и на Вашите избори. Те са винаги включени.

Кои бисквитки?
  • weboke_sessie, weboke_klant, weboke_remember: Вашата сесия и оставането в акаунта
  • weboke_basket: Вашата количка
  • wkBtwIncl: показване на цените с или без ДДС
  • wok_cookies: Вашият избор за бисквитките, 12 месеца

Измерват коя реклама води до посещение или поръчка, за да не плащаме за реклами без резултат.

Кои бисквитки?
  • Google Ads чрез Google Tag Manager (_gcl_au, _gcl_aw), до 90 дни
  • OpenAI Ads, реклами в ChatGPT
  • wok_aff: кой партньор Ви е препратил към нас (партньорска програма), 60 дни

4,6

Държава и език

Всяка държава има собствен сайт, с цените и ДДС на тази държава.

Преглед

Как работи WooCommerce

Модул 1: Преди да започнете · Време за четене: 10 минути

Учебна цел: След този урок ще можете да обясните как WooCommerce работи в WordPress и къде се намират продуктите, поръчките, количката и планираните задачи.

Основни понятия: тип продукт, тип публикация product, поръчки (HPOS), страници на магазина, сесия и количка, Store API, REST API, Action Scheduler, транзакционни имейли, разширения

Разширение, което превръща Вашия сайт в магазин

В курса за WordPress (уроци 1.2 и 1.3) видяхте как се създава една страница: уеб сървърът предава заявката на PHP, PHP зарежда WordPress, разширенията и темата, извлича данни от базата данни и ги превръща в HTML. WooCommerce се включва в този процес като голямо разширение. То носи четири неща:

  1. Данни: продукти, поръчки, клиенти, данъчни ставки, зони за доставка.
  2. Страници: Магазин, Количка, Поръчка и Моят профил.
  3. Процеси: отделна количка за всеки посетител, плащания чрез доставчик на плащания, имейли, обновяване на наличностите, планирани задачи.
  4. Входове за програми: Store API и REST API.

Който знае къде се намират тези части, по-късно ще открие една грешка много по-бързо. Затова сега ще ги разгледаме една по една.

Продукти: собствен тип публикация

WordPress познава типове публикации: страниците и публикациите са два от тях (курс за WordPress, урок 4.2). WooCommerce добавя типа публикация product. Следователно един продукт, също като страница, се намира в таблицата с публикации, а допълнителните му данни (цена, SKU, наличност, тегло) се съхраняват като метаданни. Категориите и етикетите на продуктите са отделни таксономии, независими от тези на Вашия блог.

Всеки продукт има тип продукт. В основата си това са прост, групиран, външен (връзка към друг магазин) и променлив. Към тях можете да включите отметките виртуален (няма нищо за изпращане) и за изтегляне (файл след плащане). Променливият продукт има вариации, например чайник в три цвята; всяка вариация е отделен артикул със собствена цена и наличност. Модул 3 разглежда това по-подробно.

Поръчки: собствени таблици (HPOS)

Преди WooCommerce съхраняваше и поръчките като публикации. При натоварените магазини това ставаше бавно, защото поръчките и публикациите в блога споделяха една и съща голяма таблица. Затова се появи HPOS (High-Performance Order Storage): поръчки в собствени таблици, като wc_orders, wc_order_addresses и wc_orders_meta (с префикса на таблиците на Вашия сайт пред тях). От WooCommerce 8.2 (октомври 2023) HPOS е включен при всяка нова инсталация. По-старият магазин остава на старото съхранение, докато сами не превключите в WooCommerce > Настройки > Разширени > Характеристики.

Защо трябва да знаете това? По три причини:

  • Резервни копия: поръчките не са във Вашите файлове, а в базата данни. Резервно копие без база данни е безполезно за онлайн магазин (урок 6.2).
  • Разширения: по-старо разширение, което все още чете поръчките като публикации, не работи добре с HPOS. WooCommerce предупреждава при разширението, ако то не е съвместимо.
  • Възстановяване: ако възстановите резервно копие от вчера, поръчките от днес изчезват. При онлайн магазин това е много по-лошо, отколкото при блог (урок 6.2).

Количката: различна за всеки посетител

Обикновената страница е еднаква за всеки посетител. Количката не е. Щом посетител постави нещо в количката, WooCommerce стартира сесия: бисквитка (wp_woocommerce_session_, последвано от код) в браузъра и ред в таблица със сесии в базата данни. Така при следващата заявка магазинът знае коя количка принадлежи на този посетител.

Две последици, които ще срещнете отново по-късно:

  • Количка, Поръчка и Моят профил никога не трябва да попадат в кеша на страниците, иначе един посетител ще вижда количката на друг. WooCommerce сам изпраща на тези страници заглавни редове, които забраняват кеширането (урок 6.4).
  • Магазин, който стартира сесия за всеки посетител, дори без количка, прави кеша на страниците на целия сайт безполезен. Това е честа грешка на теми и разширения.

Страниците на магазина и блоковете

При инсталацията WooCommerce създава четири страници: Магазин, Количка, Поръчка и Моят профил. От версия 8.3 (ноември 2023) новите инсталации използват блокове за количката и поръчката; по-старите магазини често все още използват кратки кодове (shortcodes). И двата варианта работят. Разликата е важна за разширенията: разширение, което добавя нещо към поръчката, трябва да поддържа варианта, който използвате. Урок 2.2 показва как да проверите това.

Два входа за програми: Store API и REST API

WooCommerce има два програмируеми входа и разликата между тях е важна за сигурността:

Store APIREST API
Адрес/wp-json/wc/store/v1/.../wp-json/wc/v3/...
За когоСамият магазин (блоковете в браузъра) и други витрини на магазинаИнтеграции: счетоводство, наличности, приложения
Нужен ли е ключ?Не, публичен: всеки може да чете продукти и цениДа, API ключ с права за четене или запис
Какво съдържаПродукти, цени, състояние на наличността, количката на текущия посетителСъщо поръчки, клиенти, отчети

Това, че Store API е публичен, не е теч на данни: това е точно онова, което всеки посетител вижда в магазина, само във вид, който програмите могат да четат. Опитайте с Вашия собствен магазин: отворете https://shop.example.com/wp-json/wc/store/v1/products в браузъра си (с Вашия собствен адрес) и ще видите продуктите си като JSON. REST API, напротив, трябва да е затворен без ключ. Урок 2.4 проверява и двата.

Зад кулисите: Action Scheduler и имейли

Голяма част от работата в един онлайн магазин не се извършва, докато клиентът чака, а по-късно. За това WooCommerce използва Action Scheduler: опашка от планирани задачи, като анулиране на неплатена поръчка след зададеното време, изпращане на webhooks или обновяване на отчети. Опашката виждате в WooCommerce > Състояние > Планирани действия. Тези задачи работят чрез WP-Cron, който се изпълнява само когато има посетители. При тих магазин работата може да остане неизпълнена; урок 7.3 показва как истински cron решава това.

Освен това WooCommerce изпраща транзакционни имейли: имейл до Вас при нова поръчка и имейли до клиента при получаване, изпращане, възстановяване на сума или нов профил. Ако те не пристигат, клиентът мисли, че нещо не е наред. Урок 6.1 урежда доставката на имейлите.

На практика: ето как изглежда в WooCommerce

В администрацията на WordPress на Theehuis Example след инсталацията се появяват три нови менюта: WooCommerce (поръчки, клиенти, настройки, състояние), Продукти и Анализ (в последните версии понякога под WooCommerce). В WooCommerce > Състояние ще намерите сървърната среда, таблиците в базата данни, планираните действия и дневниците. Този екран ще Ви трябва често. Стъпките са еднакви при всеки хостинг доставчик, защото са в самия WordPress.

Обобщение

  • WooCommerce носи данни, страници, процеси и два програмируеми входа.
  • Продуктите са собствен тип публикация; при новите магазини поръчките са в собствени таблици (HPOS, по подразбиране от 8.2).
  • Количката работи със сесия за всеки посетител; затова Количка, Поръчка и Моят профил не трябва да попадат в кеша.
  • Store API е публичен и показва това, което вижда всеки посетител; REST API трябва да е затворен без ключ.
  • Планираните задачи се изпълняват чрез Action Scheduler и WP-Cron; имейлите са част от процеса на поръчка.

Тест (quiz)

1. Къде се намират поръчките на нов магазин с WooCommerce с HPOS?



2. Защо WooCommerce стартира сесия, когато посетител постави нещо в количката?



3. Някой отваря /wp-json/wc/store/v1/products на Вашия магазин, без да влиза в профил, и вижда продуктите Ви с цени. Какво е това?



4. При тих магазин неплатена поръчка се анулира чак часове по-късно, вместо след зададеното време. Каква е вероятната причина?



Задача

Задача A1.2: Работи ли този сайт с WooCommerce? Въведете домейн, изберете да или не и запишете какво доказателство сте видели (например "generator" или "wc/store/v1"). Програмата зарежда началната страница, чете REST индекса (/wp-json/, само списъка с namespaces) и заявява /wp-json/wc/store/v1/products?per_page=1. Тя разпознава WooCommerce по meta generator с WooCommerce, namespace wc/store/v1 в REST индекса, работещ Store API, файлове от /wp-content/plugins/woocommerce/ или класа на body woocommerce. Зелена: изборът Ви е верен и доказателството Ви се среща в заглавните редове, HTML, REST индекса или отговора на Store API; тогава виждате също броя на продуктите и валутата. Оранжева: изборът Ви е верен, но не откриваме доказателството Ви. Червена: изборът Ви не е верен. Опитайте първо с Вашия собствен магазин, а след това с магазин, който познавате. Нищо не се поставя в количка и нищо не се изпраща.

Задача A1.2: Работи ли този сайт с WooCommerce?




Това, което въвеждате, и резултатите от проверката не се съхраняват. Браузърът Ви запомня отговорите и дали сте изпълнили задачата. Ако сте влезли, запазваме само дали задачата е била (почти) правилна в Моите курсове; и там можете да го изтриете.

Прочетете още

Когато стъпките са в контролен панел, те важат за WebOké; при други доставчици работи по подобен начин.

Моля, изчакайте…

Настройте домейните си

За всеки домейн настройте сървърите за имена, връзката с хостинга и кой ще бъде собственикът.

Домейните Ви се зареждат…