# Приём криптовалюты в PrestaShop

> Оплата в Bitcoin, USDT, Ethereum, Litecoin и TRON в PrestaShop 1.7.8 и 8: установите модуль, вставьте ключ — заказ оплачен, когда платёж подтверждён.

Source: https://cryptolike.net/ru/integrations/prestashop
Updated: 2026-10-11

Модуль CryptoLike добавляет в PrestaShop способ «Оплатить криптовалютой» и переводит заказ в «Платёж принят» только после подтверждения платежа в блокчейне. Дальше PrestaShop, как обычно, фиксирует оплату и, если вы их используете, счёт. Покупатели платят в Bitcoin, USDT, Ethereum, Litecoin, TRON или USDC со своего кошелька.

## Требования

Модуль поддерживает PrestaShop 8.x, минимальная заявленная версия — 1.7.8. Полная проверка проводилась на PrestaShop 8.1 с PHP 8.1; для 1.7.8 нужен PHP 7.4 или новее. Магазин должен быть доступен из интернета по `https://`, чтобы доходили вебхуки; эндпоинту вебхука не нужны сессия и cookie, и он отвечает даже в режиме обслуживания.

| Что | Поддержка |
|---|---|
| PrestaShop | 8.x; 1.7.8 — заявленный минимум |
| PHP | 7.4 и новее (проверено на 8.1) |
| Валюты, страны, перевозчики | После установки включены все; лишнее снимите в **Оплата → Настройки** |
| Валюта магазина | USD, EUR, UAH, GBP или CAD (все пять включены для каждого аккаунта по умолчанию) |

## Что умеет модуль

Модуль добавляет три собственных состояния заказа: **Awaiting crypto payment** (страница оплаты открыта или перевод ждёт подтверждений), **Crypto underpaid** (частичная оплата, которую покупатель ещё может доплатить) и **Crypto payment review** (деньги, по которым нужно ваше решение). Оплаченные заказы переходят в стандартный «Платёж принят», истёкшие и отменённые — в «Отменён»; любое состояние можно поменять в настройках.

- **Переадресация или встроенная страница.** Покупатель уходит на страницу оплаты CryptoLike или видит её на странице статуса заказа в магазине.
- **Страница статуса для покупателя** — из его истории заказов: «Платёж обнаружен. Ожидаем подтверждения.», «Платёж подтверждён.», сколько доплатить после частичной оплаты и кнопка **Создать новый платёж**, если срок истёк.
- **Личное сообщение в заказе** на каждом шаге: платёж создан, ID транзакции, оплаченная сумма, переплата, что сделать при проверке.
- **Один открытый платёж на заказ.** Перезагрузка или повторный клик открывают ту же страницу; если сумму заказа изменили, старая страница отменяется и создаётся новая.
- **Выбор монеты** — на странице оплаты CryptoLike или на шаге оплаты в магазине. **Монеты к оплате** ограничивают оба варианта; на странице оплаты «ничего не выбрано» значит все монеты, доступные для инвойсов в вашем аккаунте.
- **URL сверки** для cron на сервере — на случай, если вебхук не дошёл.

## 1. Установите модуль

В админке откройте **Модули → Менеджер модулей → Загрузить модуль**, выберите архив модуля с этой страницы и нажмите **Настроить**. Можно и распаковать zip в `modules/` и установить *CryptoLike — crypto payments* из списка. Модуль создаст свои таблицы и три состояния заказа.

## 2. Подключите аккаунт CryptoLike

В кабинете CryptoLike откройте **Разработчикам → API-ключи → Создать ключ** с правами `create_invoice` и `read` и вставьте ID ключа и секрет в настройки модуля — секрет показывается один раз. Скопируйте со страницы настроек **URL вебхука** (`https://магазин/module/cryptolike/webhook`), добавьте его в кабинете в **Разработчикам → Вебхуки → Добавить эндпоинт** со всеми восемью событиями `invoice.*` и вставьте секрет эндпоинта в поле **Секрет вебхука**.

## 3. Проверьте соединение и запускайте

Нажмите **Проверить соединение** — «Соединение установлено: доступно валют — N». В **Оплата → Настройки** снимите валюты, страны и перевозчиков, где криптовалюта не нужна. Добавьте **URL сверки** из настроек в cron сервера с интервалом 15 минут. Сначала проверьте всё с ключом `ck_test_` и тестовым адресом в поле **URL API** (по умолчанию там рабочий; тестовый URL даст поддержка CryptoLike): тестовые ключи работают с тестовыми сетями, в корзине видно «Тестовый режим: тестовые монеты, без реальных средств.», а рабочий ключ в тестовом режиме не сохранится.

## Как меняется статус заказа

| Платёж | Состояние заказа (по умолчанию) | Что видит покупатель на странице статуса |
|---|---|---|
| Создан | Awaiting crypto payment | Кнопка страницы оплаты или встроенная страница |
| Перевод обнаружен | Awaiting crypto payment | «Платёж обнаружен. Ожидаем подтверждения.» |
| Подтверждён | Платёж принят | «Платёж подтверждён.» |
| Частичная оплата до срока | Crypto underpaid | Сколько доплатить, на тот же адрес и до какого времени |
| Недоплата после срока, поздний платёж, деньги за отменённый заказ, отмена сетью после оплаты, изменённая сумма | Crypto payment review | Сообщение для этого случая, например «Платёж получен. Магазин проверяет его и свяжется с вами.» |
| Время истекло | Отменён или остаётся в ожидании (настройка) | «Время оплаты истекло. Создайте новый платёж.» |

Время на оплату — из настроек аккаунта (по умолчанию 30 минут), если в модуле не задано другое. На странице заказа в админке виден и текущий платёж: ID, состояние, срок и ссылка на страницу оплаты.


Эти правила одинаковы на всех платформах; остальные платформы для магазинов сравниваются в разделе [криптовалюта для интернет-магазина](https://cryptolike.net/ru/use-cases/online-stores).
## Если что-то не работает

| Что видно | Что сделать |
|---|---|
| Способа оплаты нет в корзине | Сохраните ID ключа, секрет и секрет вебхука; префикс ключа должен совпадать с режимом; валюта корзины должна быть отмечена в **Оплата → Настройки**. |
| После оплаты заказ остаётся «Awaiting crypto payment» | Откройте в кабинете доставки эндпоинта: `401` — секрет вебхука не совпадает; `404` или `503` — адрес или прокси/WAF. За CDN разрешите `POST` на URL вебхука без проверок. |
| «Не удалось соединиться: auth.…» | `auth.invalid_key` или `auth.invalid_signature` — неверный ID ключа или секрет. `auth.ip_not_allowed` — в белом списке IP ключа нет вашего сервера. `auth.test_key` — ключ `ck_test_` с URL API по умолчанию: тестовому режиму нужен ещё тестовый URL API. |
| Вебхук ответил `503 not_configured` | Не заполнен секрет вебхука — вставьте его и сохраните. |

Журнал — в **Расширенные параметры → Журналы**, тип объекта `Cryptolike`, без секретов, подписей, тел вебхуков и данных покупателей. При удалении стираются настройки, оба секрета и таблицы модуля; три состояния заказа скрываются, но остаются, потому что их используют старые заказы.

## Разработчикам

Модуль реализует общий контракт плагинов CryptoLike: платёж создаётся с сервера, на заказ — один открытый платёж (`idempotency_by_order_id`), [подпись вебхука](https://cryptolike.net/ru/docs/webhooks) проверяется по сырому телу, события отсеиваются по `event_id`, заказ блокируется на время записи, а ответ `200` уходит только после неё. README для разработчика со структурой модуля — в архиве.

## Вопросы и ответы

### Что будет, если покупатель заплатит меньше суммы заказа?

Заказ переходит в Crypto underpaid, а на странице статуса покупатель видит, сколько доплатить, на какой адрес и до какого времени. Доплата до срока переводит заказ в «Платёж принят». После срока заказ уходит в Crypto payment review, а личное сообщение в заказе подскажет, что решить.

### Что если покупатель заплатил после окончания срока?

CryptoLike зачисляет деньги на ваш баланс, а заказ переходит в Crypto payment review, а не в «Платёж принят». Сумма видна в личном сообщении к заказу. Выполнить заказ или вернуть деньги — решаете вы: модуль сам такой заказ оплаченным не отмечает.

### Как вернуть деньги покупателю?

Магазин не может отозвать перевод в блокчейне, поэтому возврат делается вручную. Попросите у покупателя адрес и отправьте сумму выплатой из кабинета CryptoLike. До подтверждения расчёт покажет комиссию платформы и комиссию сети; тарифы — на странице [тарифов](https://cryptolike.net/ru/pricing).

### В какой валюте магазина можно принимать оплату?

Модуль создаёт платёж в валюте корзины (USD, EUR, UAH, GBP или CAD), а CryptoLike пересчитывает её в монету по курсу, зафиксированному до конца срока оплаты. Если аккаунт валюту не принимает, платёж не создастся с ошибкой «Оплата криптовалютой недоступна» — снимите такую валюту в «Оплата → Настройки».

### Можно ли проверить модуль без реальных денег?

Да. Включите тестовый режим, сохраните ключ `ck_test_` и тестовый URL API, который даст поддержка CryptoLike. Тестовые ключи работают с тестовыми сетями, тестовые монеты ничего не стоят. На странице настроек остаётся плашка «Тестовый режим», в корзине — «Тестовый режим: тестовые монеты, без реальных средств.». Рабочий ключ в тестовом режиме форма не примет.

### Что увидит покупатель, если страницу оплаты не удалось создать?

Заказ останется в Awaiting crypto payment, а покупатель попадёт на страницу статуса с причиной и кнопкой **Создать новый платёж**. Так бывает, если API недоступен или валюта не включена. Эта же страница из истории заказов покупателя потом показывает статус платежа в реальном времени.
