<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pavshukov.ru</title>
	<atom:link href="https://pavshukov.ru/feed/" rel="self" type="application/rss+xml" />
	<link>https://pavshukov.ru</link>
	<description>IT, бизнес и немного личного</description>
	<lastBuildDate>Tue, 17 Mar 2026 20:46:08 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://pavshukov.ru/wp-content/uploads/2026/03/cropped-geek-1-32x32.png</url>
	<title>Pavshukov.ru</title>
	<link>https://pavshukov.ru</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>QR-код в счет</title>
		<link>https://pavshukov.ru/2026/03/17/qr-kod-v-schet/</link>
		
		<dc:creator><![CDATA[pavshukov]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 09:23:00 +0000</pubDate>
				<category><![CDATA[Неотсортированное]]></category>
		<guid isPermaLink="false">https://pavshukov.ru/?p=9</guid>

					<description><![CDATA[Периодически клиенты и партнеры при оплате счетов то сумму введут некорректно, то НДС. Сегодня понял, что пришло время прикрутить QR-код к счету по банковскому стандарту (ST00012 &#8212; чтобы это ни значило). Типа У нас счета клиента отправляются автоматом: Но чтобы в счете был QR, пришлось немного повозиться. И вот, теперь в счете есть QR. Так ... <a title="QR-код в счет" class="read-more" href="https://pavshukov.ru/2026/03/17/qr-kod-v-schet/" aria-label="Прочитать больше о QR-код в счет">Читать далее</a>]]></description>
										<content:encoded><![CDATA[
<p>Периодически клиенты и партнеры при оплате счетов то сумму введут некорректно, то НДС. Сегодня понял, что пришло время прикрутить QR-код к счету по банковскому стандарту (ST00012 &#8212; чтобы это ни значило). Типа</p>



<pre class="wp-block-code"><code>ST00012|Name=ООО "Рога и Копыта"|PersonalAcc=40702810367100123456|BankName=СБЕРБАНК|BIC=047101234|CorrespAcc=30101810800000000651|Sum=20000|Purpose=За возух|PayeeINN=1234567890|PayerINN=9876543210</code></pre>



<p>У нас счета клиента отправляются автоматом:</p>



<ul class="wp-block-list">
<li>клиент заполняет форму на сайте</li>



<li>форма дергает нашу CRM (Планфикс)</li>



<li>в Планфиксе происходит заранее настроенная магия (сценарии)</li>



<li>формируется документ (счет) по шаблону</li>



<li>письмо со счетом отправляется клиенту</li>
</ul>



<p>Но чтобы в счете был QR, пришлось немного повозиться.</p>



<ol class="wp-block-list">
<li>Немного вспомнить, каким образом формируется строка для QR</li>



<li>Попросил GPT навайбкодить python-скрипт для генерации QR с API и куртизанками</li>



<li>Настроил автоматический деплой скрипта через Coolify по веб-хуку из gitea</li>



<li>В Планфиксе пошаманил со сценариями, чтобы при создании счета сначала дернуть API для получения QR, потом записать его в поле. А дальше по шаблону сформировать счет уже с QR</li>
</ol>



<p>И вот, теперь в счете есть QR. Так и заполнять ручками не надо, и вероятность ошибки меньше.</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="Лайк кнопка"
					data-ulike-id="9"
					data-ulike-nonce="afde3177ad"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_9"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="+2"></span>			</div></div>
	]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Обновление сайта</title>
		<link>https://pavshukov.ru/2026/03/07/obnovlenie-sajta/</link>
		
		<dc:creator><![CDATA[pavshukov]]></dc:creator>
		<pubDate>Fri, 06 Mar 2026 22:39:00 +0000</pubDate>
				<category><![CDATA[Неотсортированное]]></category>
		<guid isPermaLink="false">https://pavshukov.ru/?p=45</guid>

					<description><![CDATA[Последние несколько недель вечерами занимаюсь обновлением нашего сайта. Решил отказаться от связки WordPress+Elementor, т.к. загружаться редактор стал настолько долго (при 6-ядерном-то сервере), что у меня не хватало терпения, чтобы внести даже минимальные правки на сайте. Решил вообще не использовать какую-либо CMS, т.к. для сайта на 10-15-20 страниц будет избыточно. Блог сейчас отдельно (на WP, но ... <a title="Обновление сайта" class="read-more" href="https://pavshukov.ru/2026/03/07/obnovlenie-sajta/" aria-label="Прочитать больше о Обновление сайта">Читать далее</a>]]></description>
										<content:encoded><![CDATA[
<p>Последние несколько недель вечерами занимаюсь обновлением <a href="https://gbsmarket.ru" target="_blank" rel="noreferrer noopener">нашего сайта</a>. Решил отказаться от связки WordPress+Elementor, т.к. загружаться редактор стал настолько долго (при 6-ядерном-то сервере), что у меня не хватало терпения, чтобы внести даже минимальные правки на сайте.</p>



<p>Решил вообще не использовать какую-либо CMS, т.к. для сайта на 10-15-20 страниц будет избыточно. Блог сейчас отдельно (на WP, но без Elementor&#8217;а уже), база знаний &#8212; на MkDocs. Поэтому решил писать на php+html+css+js. Конечно, пришлось повозиться со стилями и подготовкой архитектурной базы, но зато работает шустро, редактировать &#8212; одно удовольствие.</p>



<p>До финала еще далеко, но уже готовы 4 страницы, которые не стыдно показать:</p>



<ul class="wp-block-list">
<li>главная: <a href="https://new.gbsmarket.ru/">https://new.gbsmarket.ru/</a></li>



<li>возможности: <a href="https://new.gbsmarket.ru/features/">https://new.gbsmarket.ru/features/</a></li>



<li>контакты: <a href="https://new.gbsmarket.ru/contacts/ ">https://new.gbsmarket.ru/contacts/ </a></li>



<li>партнерская программа: <a href="https://new.gbsmarket.ru/partnership/">https://new.gbsmarket.ru/partnership/</a></li>
</ul>



<p></p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="Лайк кнопка"
					data-ulike-id="45"
					data-ulike-nonce="ab75f93610"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_45"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="+1"></span>			</div></div>
	]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Я от SendPuls&#8217;а ушел, от Unisender&#8217;а ушел. И от тебя, Listmonk, уйду.</title>
		<link>https://pavshukov.ru/2026/03/03/ya-ot-sendpulsa-ushel-ot-unisendera-ushel-i-ot-tebya-listmonk-ujdu/</link>
		
		<dc:creator><![CDATA[pavshukov]]></dc:creator>
		<pubDate>Tue, 03 Mar 2026 12:45:00 +0000</pubDate>
				<category><![CDATA[Неотсортированное]]></category>
		<guid isPermaLink="false">https://pavshukov.ru/?p=48</guid>

					<description><![CDATA[Несмотря на то, что email вроде как атавизм, но он остается одним из основных каналов для информирования клиентов. По ряду причин приходилось менять сервисы для Email-маркетинга. В какой-то момент решил перейти на self-hosted решения, чтобы немного сэкономить и не зависеть от стороннего сервиса. Где-то с полгода назад остановился на Listmonk на своем сервере. Но в ... <a title="Я от SendPuls&#8217;а ушел, от Unisender&#8217;а ушел. И от тебя, Listmonk, уйду." class="read-more" href="https://pavshukov.ru/2026/03/03/ya-ot-sendpulsa-ushel-ot-unisendera-ushel-i-ot-tebya-listmonk-ujdu/" aria-label="Прочитать больше о Я от SendPuls&#8217;а ушел, от Unisender&#8217;а ушел. И от тебя, Listmonk, уйду.">Читать далее</a>]]></description>
										<content:encoded><![CDATA[
<p>Несмотря на то, что email вроде как атавизм, но он остается одним из основных каналов для информирования клиентов. По ряду причин приходилось менять сервисы для Email-маркетинга. В какой-то момент решил перейти на self-hosted решения, чтобы немного сэкономить и не зависеть от стороннего сервиса.</p>



<p>Где-то с полгода назад остановился на Listmonk на своем сервере. Но в нем крайне недостает автоматизаций. Например, нам нужно запускать автоматическую серию писем пользователям, который только установили Маркет. Чтобы после установки раз в пару дней они получали гайды и полезную информацию о работе с программой. В какой-то момент я даже начал изобретать свой велосипед, но вовремя наткнулся на Notifuse и сразу в него влюбился.</p>



<p>Есть все, что нужно для Email-маркетинга:</p>



<ul class="wp-block-list">
<li>кампании</li>



<li>автоматизации</li>



<li>транзакционные письма</li>



<li>MJML-шаблоны</li>



<li>поддержка нескольких отправителей</li>



<li>управление подписками со стороны пользователя</li>



<li>API</li>
</ul>



<p>Начали постепенно переезжать на него. Правда в процессе настройки нашел и <a href="https://github.com/Notifuse/notifuse/issues?q=is%3Aissue%20author%3Afreezerxp">зарепортил пару багов</a>. Один уже поправили даже.</p>



<p>Еще желательно для этого и свой SMTP-сервер поднять на отдельном домене, т.к. ни один почтовик не даст слать по 5к+ писем за пару часов. А это тот еще квест. Но это уже пройденный этап.</p>



<p>В общем, <a href="https://github.com/Notifuse/notifuse">Notifuse</a> рекомендую как полноценную замену Unisender&#8217;у и другим сервисам рассылки.</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_not_liked"><button type="button"
					aria-label="Лайк кнопка"
					data-ulike-id="48"
					data-ulike-nonce="8b6be4f7bb"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers="0"
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_48"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value=""></span>			</div></div>
	]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
