Есть срочки в коде (читайте комментарии в коде):
<?php
logFile($domen_crm.' / '.$apikey_crm.' / '.$code_magazine.PHP_EOL);
// тут 3 переменные есть и выводятся.
$prod_mass = array_map( function($v){
return [
'quantity'=>$v['quantity'],
'offer' => [
'id' => logFile($v['name'].' / '.$domen_crm.' / '.$apikey_crm)
]
];
}, $json); // тут выводится только перменная $v['name'], а $domen_crm и apikey_crm пустые.
Первый раз такое вижу. Видимо я плохо знаю работу array_map
Проблема в области видимости переменных для анонимны функций https://secure.php.net/manual/ru/functions.anonymous.php.
array_map в вашем случае принимает аргумент анонимную функцию.
Достаточно добавить use ($domen_crm) на:
$prod_mass= array_map(function($v) use ($domen_crm, $apikey_crm) {
return ['quantity'=>$v['quantity']...
и всё заработает.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники