Самая частая доработка партнерского магазина - кастомизация шаблона. Но, базовые шаблоны тоже не статичны, периодически в них вносятся изменения и доработки. Это вызывает необходимость "сливать воедино" кастомизацию и изменения в базовом шаблоне. И это далеко не тривиальная задача, вызывающая головную боль, и зачастую из-за сложности этого процесса, его просто игнорируют, что приводит к "устареванию" кастомизированного шаблона, который отстает по функциональности от базового.
Типичный пример - не так давно в шаблон 2k22 была
добавлена поддержка ecommerce, это важное обновление, позволяющее существенно оптимизировать рекламные компании и получать больше заказов за меньшие деньги. И все, кто делал свои кастомные шаблоны на основе 2k22 встали перед выбором: либо пытаться разобраться, что изменилось в базовом шаблоне и внести эти изменения в свой кастомный, либо взять обновленный базовый шаблон и кастомизировать его заново, либо просто ничего не делать и навсегда остаться без ecommerce.
Именно для упрощения задачи "слить воедино" кастомизацию и базовый шаблон, начиная с шаблона 2k22, вся разработка ведется в git, а репозиторий хранится на сайте github.com. Разберемся, как делать кастомизацию так, чтобы слияния не были головной болью и проводились буквально в пару кликов мыши.
Первое, на свой компьютер следует
установить сам git. Второе, необходимо
зарегистрироваться на сайте github.com. Ну, и третье - взять какой нибудь
GUI для git-а. Выбирать можно любой понравившийся, это не принципиально, функциональность у них у всех одинаковая, различие лишь в оформлении. Мы по привычке, будем использовать
VS Code, редактор, в котором поддержка git-а встроенная.
Итак, начинаем, с того, что "форкаем" базовый проект (создаем личную копию репозитория). Заходим на страницу
https://github.com/powerpartners/theme-2k22 и жмем кнопку "Fork" в правой верхней части.
Вложение:
img-01024.jpg [ 17.58 КБ | Просмотров: 3537 ]
При форке можно дать своему репозиторию (репе) другое имя или оставить оригинальное. Завершаем создание форка нажатием зеленой кнопки "Create fork". После непродолжительной процедеры, на нашем аккаунте github-а появляется форкнутый проект, с которым мы уже можем работать. В самом проекте будет явно указано, что он форкнут, и ссылка на репу с которой форк был сделан:
Вложение:
img-01025.jpg [ 10.56 КБ | Просмотров: 3537 ]
Следующим шагом необходимо "клонировать" репу на свой жесткий диск. Для этого копируем URL своей репы (именно своей!!! форкнутой!) вот так:
Вложение:
img-01026.jpg [ 49.83 КБ | Просмотров: 3537 ]
Теперь идем в GUI git-а и ищем где там клонирование проекта. В VS code это делается так:
Вложение:
img-01027.jpg [ 28.95 КБ | Просмотров: 3537 ]
Указываем папку, где будет храниться файлы нашей репы и завершаем клонирование.
Небольшая ремарка по каталогу хранения репы. У меня локальная рабочая среда настроена по
вот этой статье, стоит локальный web-сервер, на котором есть виртуальный хост с партнерским магазином. Конечно мне хотелось бы, чтобы моя репа располагалась в c:\Users\McQuack\www\power-shop\theme - мне так удобнее. А git при клонировании создает для репы отдельный каталог с именем как у репы. Поэтому я клонирую репу в c:\Users\McQuack\www\power-shop. Там у меня получаются 2 каталога: оригинальный /theme и клонированный /theme-2k22. Поскольку работать я буду через гит, оригинальный /theme я удаляю, а клонированный /theme-2k22 просто переименовываю в /theme. Таким образом у меня получается удобная среда, когда локальный партнерский магазин в качестве шаблона использует сразу файлы репозитория.
Теперь можно спокойно заниматься кастомизацией, первое с чего я начну - поменяю логотип магазина вот
по этой инструкции. Открываем в VS Code каталог c:\Users\McQuack\www\power-shop\theme и приступаем к работе. Получилось как-то вот так:
Вложение:
img-01028.jpg [ 6.15 КБ | Просмотров: 3537 ]
Это небольшая, но все же конкретная и законченная доработка шаблона. Надо сохранить ее в git-е в виде коммита.
Vs code в разделе git нам уже любезно подсказывает, что у нас есть изменения в 4-х файлах:
Вложение:
img-01029.jpg [ 71.98 КБ | Просмотров: 3537 ]
Смотрим что поменялось в каждом файле, если изменения устраивают - жмем "+" на каждом измененном файле, включая тем самым эти изменения в коммит. Изменения переносятся и раздела "Changes" в раздел "Staged Changes". Пишем комментарий к коммиту, например "Изменен логотип", и жмем "Commit".
После сохранения изменений (коммита), git видит, что локальная клонированная репа по изменениям "ушла вперед" от той репы, что хранится на github-е и сразу предлагает "пушнуть" (отправить изменения на удаленный сервер, у нас это github):
Вложение:
img-01030.jpg [ 17.05 КБ | Просмотров: 3537 ]
Но для начала необходимо авторизоваться, для этого в левой панели выбираем снизу "Accounts", жмём "Turn on Settings Sync..." и в открывшемся окне "Sign in & Turn on". Выбираем "Sign in with GitHub", подтверждаем открытие окна браузера в котором и авторизуем vs code на доступ к нашему акканту на Github.
Вот теперь уже можно отправить коммит на сервер github-а. Жмем "Sync Changes".
После того, как коммит запушен на сервер, на странице проекта в github-е можно увидеть следующее:
Вложение:
img-01031.jpg [ 26.27 КБ | Просмотров: 3537 ]
Т.е. наш форк "ушёл" вперед от родительского проекта на 1 коммит. Кликнув на ссылку, можно даже посмотреть, чем наш форк отличается от родительского, что именно мы там накастомизировали.
Но, проходит время, партнерка что-то добавляет в скин и обновляет базовый репозиторий. Тогда картина на вашем форке будет выглядеть уже вот так:
Вложение:
img-01032.jpg [ 15.29 КБ | Просмотров: 3537 ]
Т.е. ваш форк ушел от родительского на 1 коммит (это вы логотип поменяли), но с тех пор и в родительском репозитории произошли изменения, были сделаны 2 новых коммита.
Если кликнуть по ссылке, то можно увидеть, что за это время в родительской репе как раз добавилась поддержка ecommerce. Настало время все эти изменения объединить, т.е. сделать так что в вашем форке и ecommerce добавится и логотип будет обновленный.
Делается, это элементарно, простым нажатием кнопки "Sync fork":
Вложение:
img-01033.jpg [ 41.61 КБ | Просмотров: 3537 ]
Жмем, происходит непродолжительное объединение коммитов и получаем форк, полностью синхронизированный с родительской репой, при этом содержащий все наши коммиты.
Стоит отметить, что форк после слияния будет уже на 2 коммита впереди родителя. Не пугайтесь. Один коммит это наша замена логотипа, а второй - само объединение. В git-е оно тоже является коммитом.
Остается лишь сделать pull с сервера в наш локальный клон, чтобы на жестком диске получить скин в котором уже объединено ecommerce и замена логотипа:
Вложение:
img-01034.jpg [ 32.65 КБ | Просмотров: 3537 ]
Остается лишь залить шаблон с объединенными изменениями на ваш хостинг.
Вот, собственно и все. Ничего сложного тут нет, зато используя git, ваш кастомизированый шаблон всегда будет актуальным без особых усилий.
Будут вопросы - пишите, всегда рады помочь.