Перейти к содержанию

Приватность, резервная копия и обновление

Оглавление серии

Сопровождение магазина сохраняет согласованное состояние каталога, заказов, аккаунтов и выдаваемых файлов. Обновлённая тема с красивым каталогом не является полным выпуском, если потеряны download permissions или нельзя восстановить базу. Завершим «Полку» локальным release document, который описывает состав набора, порядок изменения и пределы фактической проверки.

Все примеры серии имеют статус not_run. Docker images не загружались, WordPress и WooCommerce не запускались, imports и orders не создавались, payment callbacks не доставлялись. Набор является подготовленной учебной лабораторией с ожидаемыми результатами. Внешняя публикация и работа с реальным магазином в этой серии отсутствуют.

Приватность начинается с состава данных

Даже маленький магазин связывает email, account, Order и download permission. В лаборатории все values искусственные, но полезно перечислить их назначение. Contact нужен для связи с заказом, account — для личного доступа, permission — для конкретного файла. Если начать сохранять полный webhook payload ещё в одной integration, появится дополнительная копия тех же данных.

Наш receiver минимизирует disk state: orderId, status, modified, delivery и hash без billing body. Mail guard хранит только двадцать тем и время. Эти решения позволяют объяснить, зачем существует каждая копия. В real project понадобится подходящая политика хранения, доступа и удаления; сроки зависят от страны и обязанностей продавца, а не от универсального числа из курса.

В Accounts & Privacy есть settings для account handling и персональных данных. Прочитайте их назначение перед изменением. Удаление account не обязательно должно уничтожить требуемую историю Orders, а retention может иметь отдельные юридические основания. Курс не предоставляет готовое правовое решение: официальная документация settings объясняет механизм, а конкретный policy требует своего контекста.

Не помещайте database dump, secrets и настоящие exports в public downloads ProfessorWeb. Учебный ZIP содержит только known fixtures, theme, plugin и integration sources. Ключи создаются отдельно. Даже если filenames не выглядят секретными, содержимое dump может иметь пароли в хешированном виде, emails и links доступа; его область хранения должна соответствовать назначению.

Копия содержит базу и файлы

Product CSV сохраняет табличные properties, но не весь магазин. Для восстановления нужны database, uploads, theme/plugin versions, settings и конфигурация. В Docker named volumes WordPress и database имеют отдельное содержимое. Наличие compose.yaml не сохраняет данные volumes: оно описывает окружение, которое сможет их использовать.

В маленькой лаборатории сначала остановите создание новых orders и локальные services, затем сохраните согласованные копии. Если использовать database export tool на работающем сервере, нужен соответствующий механизм consistency, который здесь не исполнялся. Не обещайте корректность копии только потому, что command завершилась с кодом ноль.

Секреты сохраняются отдельно от открытого source archive. Запишите, где находится защищённая копия .env, как восстановить local database password и какие API keys нужно создать заново. Callback secret и consumer secret имеют разные назначения, поэтому в документе не называйте их одним общим «ключом магазина».

Файл specs/backup.md фиксирует короткую процедуру. Он не отмечен как выполненная репетиция. Для будущего восстановления создайте отдельные volumes и порт, чтобы случайно не заменить оригинал. Сначала сравните SKUs, variations и download files, затем accounts, coupons и Cart/Checkout. External gateways, SMTP и callbacks на копии должны оставаться отключёнными до явного решения.

Обновление меняет несколько слоёв

Перед update сохраните текущие версии WordPress, WooCommerce, PHP, theme и plugins. Документация рекомендует backup и предварительную проверку обновления на подходящей отдельной копии; порядок описан в How to Update WooCommerce. Изменение core может потребовать database update, поэтому возврат старых PHP files не обязательно откатывает состояние базы.

Собственная theme Polka Lab и Guard version 1.0.0 находятся в архиве. Пользовательские template changes в Site Editor могут храниться в базе и иметь priority над файлами темы. Следовательно, обновление file template и видимый результат не всегда совпадают сразу. Release inventory должен учитывать overrides, а не обвинять CSS в любой старой странице.

HPOS — ещё одна причина пользоваться поддерживаемым Woo UI/CRUD API вместо прямого SQL к wp_posts. Наш plugin не редактирует Order storage, receiver работает с REST, а fixtures не являются database migrations. Если добавите собственную обработку orders, заранее отметьте HPOS compatibility и проверьте выбранную storage mode на копии.

Опциональный Dummy plugin имеет свой источник и собственную границу Tested up to. Не включайте его в список «проверенные плагины» по одному факту прочитанного README. После будущей установки operator должен проверить Blocks integration и success/failure. До этого версия и источник являются входной спецификацией, а не наблюдением совместимости.

Локальная приёмка проверяет цепочку

Будущая репетиция начинается с known catalog: GRID-PDF12, FORM-ZIP8, URL-TXT5, HTML-BASIC15 и HTML-EXT24. Затем pair cart даёт20, LAB10 уменьшает до18. Checkout использует вымышленный контакт, BACS создаёт ожидание, Dummy моделирует success/failure. Download проверяется по содержимому, а не только по названию ссылки.

Account должен видеть свои Orders/Downloads, mail summary — факт перехвата, integration — подписанный body и durable inbox. Ни один 202 receiver не подтверждает завершённую обработку worker, которого в проекте нет. Ни один Completed simulation не подтверждает деньги. Такие точные слова делают release полезным: следующий человек знает, что именно должен наблюдать.

Reports сравниваются с definitions и synthetic fixture. Visits не измерены, поэтому conversion8%/9% остаётся арифметикой искусственных cohorts. Нельзя включать эти числа в коммерческий кейс о росте продаж «Полки». Если позже появится настоящее измерение, оно получит собственные условия, период и источник данных.

Наконец восстановите отдельную копию и повторите ключевые состояния. Только после этого можно написать «восстановление проверено» с датой и observed result. У нас такой записи нет. Исходные файлы и ожидаемые сценарии подготовлены, а выполнение остаётся задачей читателя, который располагает локальным runtime.

Передайте README и specs/release.md вместе с ZIP. При исправлении меняйте одновременно example и соответствующий lesson, затем обновляйте архив. Полный листинг должен совпадать с downloadable file. У этой серии законченный локальный путь: товар описывает предложение, cart сохраняет выбор, checkout создаёт Order, состояние открывает permission, account помогает получить файл, integration переносит уведомление, а backup возвращает согласованную лабораторию. Реальный магазин потребует собственного платёжного, юридического и эксплуатационного проекта, основанного на фактических проверках выбранной страны и провайдера.