Плагин Яндекс.Маркет экспорт в YML при попытке вручную экспортировать данные выдает ошибку:
Ошибка #403
Вебасист You don't have permission to access requested URL on this server.
Please contact app developer.
При этом по крону и при запросе со стороны прайс-агреатора файл создается без ошибок.
Последний раз вручную экспортировал 22/05 и ранее проблем не наблюдалось. Кроме текущих обновлений других изменений не делал.
В чем может быть причина и как с этим бороться?
11 комментариев
Включите режим отладки в настройках "Инсталлера" и повторите попытку экспорта. В этом режиме будет показано более подробное сообщение об ошибке. Покажите его текст.
В сообщении об ошибке можно затереть адрес вашего сайта и пути к файлам, если не хотите показывать их всем посетителям хаба поддержки.
в режиме отладки выдает следующее:
CSRF Protection
code 403
/var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php (248)
## /var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php(248)
#0 /var/www/manager/data/www/forcom.ru/wa-system/config/waSystemConfig.class.php(59): waAppConfig->init()
#1 /var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php(38): waSystemConfig->__construct('backend', '/var/www/manage...')
#2 /var/www/manager/data/www/forcom.ru/wa-system/config/waSystemConfig.class.php(409): waAppConfig->__construct('backend', '/var/www/manage...', 'shop', 'ru_RU')
#3 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(86): waSystemConfig::getAppConfig('shop', 'backend', '/var/www/manage...', 'ru_RU')
#4 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(1634): waSystem::getInstance('shop', NULL, 1)
#5 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(544): wa('shop', 1)
#6 /var/www/manager/data/www/forcom.ru/wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/shop/')
#7 /var/www/manager/data/www/forcom.ru/index.php(7): waSystem->dispatch()
#8 {main}
/var/www/manager/data/www/forcom.ru/wa-system/config/waAppConfig.class.php around line 248
243 }
244
245 $this->info = include($this->getAppPath().'/lib/config/app.php');
246 if ($this->environment == 'backend' && !empty($this->info['csrf']) && waRequest::method() == 'post') {
247 if (waRequest::post('_csrf') != waRequest::cookie('_csrf')) {
>>248 throw new waException('CSRF Protection', 403);
249 }
250 }
251 waAutoload::getInstance()->add($this->getClasses());
252
253 if (file_exists($this->getAppPath().'/lib/config/factories.php')) {
Request
array(
'plugin' => 'yandexmarket',
'module' => 'run',
'profile' => array(
'name' => 'Price.ru',
'id' => '2',
),
'lifetime' => '86400',
'company_name' => 'Магазин Форком',
'company' => 'Магазин Форком',
'company_phone' => '',
'domain' => 'www.forcom.ru/*',
'ssl' => '1',
'utm_source' => 'priceru',
'utm_medium' => 'price',
'utm_campaign' => 'Price.ru',
'custom_url' => '',
'hash' => '',
'product_ids' => '',
'category_ids' => '',
'set_id' => '5000',
'type_id' => '1',
'export' => array(
'skip_ignored' => '1',
'min_price' => '',
'compare_price' => '1',
'sku' => '1',
'sku_group' => '',
),
'shop' => array(
'adult' => 'false',
'cpa' => 'false',
'store' => 'true',
'pickup' => 'true',
'delivery' => 'true',
'local_delivery_order_before' => '24',
'local_delivery_estimate' => '2-3',
'local_delivery_cost' => '450',
),
'shipping_methods' => array(
'dummy' => '1',
),
'map' => array(
'simple' => array(
'vendor' => array(
'source' => 'feature:brand',
'text' => '',
),
'vendorCode' => array(
'source' => 'field:sku',
'text' => '',
),
'name' => array(
'source' => 'field:name',
'text' => '',
),
'description' => array(
'source' => 'field:summary',
'text' => '',
),
'available' => array(
'source' => 'field:count',
'text' => '',
),
'sales_notes' => array(
'source' => 'text:%s',
'text' => 'Минимальная сумма заказа неограничена. Минимальная партия - кратно упаковке. При покупке за наличный расчет - без предоплаты, в оставльных случаях - 100% предоплата.',
),
'min-quantity' => array(
'source' => 'skip:',
'text' => '',
),
'step-quantity' => array(
'source' => 'skip:',
'text' => '',
),
'manufacturer_warranty' => array(
'source' => 'skip:',
'text' => '',
),
'country_of_origin' => array(
'source' => 'skip:',
'text' => '',
),
'adult' => array(
'source' => 'skip:',
'text' => '',
),
'barcode' => array(
'source' => 'skip:',
'text' => '',
),
'cpa' => array(
'source' => 'skip:',
'text' => '',
),
'fee' => array(
'source' => 'skip:',
'text' => '',
),
'bid' => array(
'source' => 'skip:',
'text' => '',
),
'cbid' => array(
'source' => 'skip:',
'text' => '',
),
'weight' => array(
'source' => 'skip:',
'text' => '',
),
'age' => array(
'source' => 'skip:',
'text' => '',
),
'store' => array(
'source' => 'skip:',
'text' => '',
),
'pickup' => array(
'source' => 'value:true',
'text' => '',
),
'delivery' => array(
'source' => 'value:true',
'text' => '',
),
'local_delivery_days' => array(
'source' => 'skip:',
'text' => '',
),
'local_delivery_cost' => array(
'source' => 'skip:',
'text' => '',
),
'rec' => array(
'source' => 'skip:',
'text' => '',
),
),
'vendor.model' => array(
'downloadable' => array(
'source' => 'skip:',
'text' => '',
),
'vendor' => array(
'source' => 'skip:',
'text' => '',
),
'vendorCode' => array(
'source' => 'skip:',
'text' => '',
),
'model' => array(
'source' => 'skip:',
'text' => '',
),
'description' => array(
'source' => 'skip:',
'text' => '',
),
'available' => array(
'source' => 'skip:',
'text' => '',
),
'typePrefix' => array(
'source' => 'skip:',
'text' => '',
),
'sales_notes' => array(
'source' => 'skip:',
'text' => '',
),
'min-quantity' => array(
'source' => 'skip:',
'text' => '',
),
'step-quantity' => array(
'source' => 'skip:',
'text' => '',
),
'manufacturer_warranty' => array(
'source' => 'skip:',
'text' => '',
),
'seller_warranty' => array(
'source' => 'skip:',
'text' => '',
),
'expiry' => array(
'source' => 'skip:',
'text' => '',
),
'country_of_origin' => array(
'source' => 'skip:',
'text' => '',
),
'adult' => array(
'source' => 'skip:',
'text' => '',
),
'barcode' => array(
'source' => 'skip:',
'text' => '',
),
'cpa' => array(
'source' => 'skip:',
'text' => '',
),
'fee' => array(
'source' => 'skip:',
'text' => '',
),
'bid' => array(
'source' => 'skip:',
'text' => '',
),
'cbid' => array(
'source' => 'skip:',
'text' => '',
),
'weight' => array(
'source' => 'skip:',
'text' => '',
),
'dimensions' => array(
'source' => 'skip:',
'text' => '',
),
'age' => array(
'source' => 'skip:',
'text' => '',
),
'store' => array(
'source' => 'skip:',
'text' => '',
),
'pickup' => array(
'source' => 'skip:',
'text' => '',
),
'delivery' => array(
'source' => 'skip:',
'text' => '',
),
'local_delivery_days' => array(
'source' => 'skip:',
'text' => '',
),
'local_delivery_cost' => array(
'source' => 'skip:',
'text' => '',
),
'rec' => array(
'source' => 'skip:',
'text' => '',
),
),
'book' => array(
'downloadable' => array(
'source' => 'skip:',
'text' => '',
),
'name' => array(
'source' => 'skip:',
'text' => '',
),
'author' => array(
'source' => 'skip:',
'text' => '',
),
'description' => array(
'source' => 'skip:',
'text' => '',
),
'available' => array(
'source' => 'skip:',
'text' => '',
),
'publisher' => array(
'source' => 'skip:',
'text' => '',
),
'sales_notes' => array(
'source' => 'skip:',
'text' => '',
),
'min-quantity' => array(
'source' => 'skip:',
'text' => '',
),
'step-quantity' => array(
'source' => 'skip:',
'text' => '',
),
'cpa' => array(
'source' => 'skip:',
'text' => '',
),
'fee' => array(
'source' => 'skip:',
'text' => '',
),
'bid' => array(
'source' => 'skip:',
'text' => '',
),
'cbid' => array(
'source' => 'skip:',
'text' => '',
),
'series' => array(
'source' => 'skip:',
'text' => '',
),
'year' => array(
'source' => 'skip:',
'text' => '',
),
'ISBN' => array(
'source' => 'skip:',
'text' => '',
),
'volume' => array(
'source' => 'skip:',
'text' => '',
),
'part' => array(
'source' => 'skip:',
'text' => '',
),
'language' => array(
'source' => 'skip:',
'text' => '',
),
'binding' => array(
'source' => 'skip:',
'text' => '',
),
'page_extent' => array(
'source' => 'skip:',
'text' => '',
),
'table_of_contents' => array(
'source' => 'skip:',
'text' => '',
),
'weight' => array(
'source' => 'skip:',
'text' => '',
),
'age' => array(
'source' => 'skip:',
'text' => '',
),
'store' => array(
'source' => 'skip:',
'text' => '',
),
'pickup' => array(
'source' => 'skip:',
'text' => '',
),
'delivery' => array(
'source' => 'skip:',
'text' => '',
),
'local_delivery_days' => array(
'source' => 'skip:',
'text' => '',
),
'local_delivery_cost' => array(
'source' => 'skip:',
'text' => '',
),
'rec' => array(
'source' => 'skip:',
'text' => '',
),
),
'medicine' => array(
'vendor' => array(
'source' => 'skip:',
'text' => '',
),
'vendorCode' => array(
'source' => 'skip:',
),
),
),
'tz' => 'Asia/Baghdad',
'oldtz' => 'Europe/Moscow',
'screenMode' => 'max',
'_ym_uid' => '1480616306397201956',
'_ga' => 'GA1.2.1288682540.1480616309',
'last_visit' => '1496074785144::1496085585144',
'shop_viewed' => '671635,663677,663863,677440,672728,675014,670028,662557,705309,704606,675094,674879,677462,707715,663240,669494,663257,677119,663249,662628,666233,711811,663303,663861,663342,663474,662532,665555,663258,663266',
'__utma' => '133969305.1288682540.1480616309.1482524508.1483403399.5',
'__utmz' => '133969305.1482449089.3.2.utmcsr=sadtech.ru|utmccn=(referral)|utmcmd=referral|utmcct=/shop/index.php',
'last_page' => '1^^^/webasyst/shop/?action=importexport',
'reviewsplus-pp' => '20',
'referer' => 'http://yandex.ru/clck/jsredir?from=yandex.ru%3Byandsearch%3Bweb%3B%3B&text=&etext=1436.2teTfCjynkJBy7QDvAPRz1FwCOAbBMPjYK9STmM0poKx0Toiv3rs27ixgtux0dytqrMP9x_aQtacBkcpMyEnqg.d9c697ef67d7294f4b603c35855debb142cdb479&uuid=&state=WkI1WI4IbJHybCQJFouMIRyO-MjY1ZFm9FbLhN6cLtk4qmqxZleu_xdPRHbOi1CJf8V5Ny5nef0U7VMyj2t-h6abNV4RyT1eMv005tl5NR8VzT7pLF-wy0sgAw888ITl&&cst=AiuY0DBWFJ5fN_r-AEszk9yxWwwVth7URZVwGD6d0mzCdwqsZqvUbGMezmpzzqwqpoDIN_m2-h1ehPQYKD46ah3bZkBVCn2x39HtClhiWgpztfCBJnGlLuII4a8l2y6me64khLRsdARVYjwbhde3JWo-yisQC5dkJEWtvDOOhraRclbrfzGmsA-pP_kTqL7bxsJjIXY0xnoUb_do78IkGnldOm2hUDvohWckJrP5uquOxtn2X5fPkgXd-t5rVCtaVdyv0zkNI5vIXQrI76xfig,,&data=UlNrNmk5WktYejR0eWJFYk1LdmtxanFmV01STlZOWlQ3WU1kT2cyczMxTTR5VVFjU19GWEloV0d0ckgzdWxrMTNFTU1OUHlpWE9mLW42UXZfb0M3VHNXcVRaSkVwWUE0&sign=021305bb0bea1add266a03aaf45dad08&keyno=0&b64e=2&ref=orjY4mGPRjk5boDnW0uvlpAgqs5Jg3quKLfGKhgcZzlBh-w_NInSOY4el2-CiPHYFBu3uivq_OLF0p2jMpU3rVPVUMhtmNl5w9DSzSsNs2DyprLVMmCc1pUazGOXwYCXcKiF1AXt88DoZgtPuewT52NGPmlwwj5jvyHC14HQaDaTI4FyEOVj_g,,&l10n=ru&cts=1496085580302&mc=4.349648912578752',
'shop_select_view' => 'list',
'auth_token' => 'fd94aa497d8e096145a4ebb79a92914',
'_gid' => 'GA1.2.382424571.1496013755',
'shop_cart' => '60e7b037920ab00a45c9c34e217e9b4d',
'landing' => '/',
'remember' => '1',
'back_url' => '/webasyst/logs/',
'_csrf' => '587e68d180b329.48597697',
'PHPSESSID' => '93b7cb50250e11ec911b07c33bfa7782',
'__utmc' => '133969305',
)
Params
array()
Попробуйте увеличить в 2-5 раз значения параметров post_max_size и max_input_vars в конфигурации PHP. Перезапустите веб-сервер после этого, если этого требует ваша серверная конфигурация. Возможно, сервер "видит" не все данные, которые вы ему отправляете, и потому ругается ошибкой.
С кроном оказалось тоже не все гладко.
при выполнение команды:
файл создается но, во все ссылки на товары и на изображения добавляется кусок: "var/www/manager/data/www/forcom.ru"
и получается нерабочая ссылка на страницу товара вида:
https://www.forcom.ru/var/www/manager/data/www/forcom.ru/product/UHU45585/?utm_source=torgmail&utm_medium=price&utm_campaign=Torg.Mail.ru
вместо:
https://www.forcom.ru/product/UHU45585/?utm_source=torgmail&utm_medium=price&utm_campaign=Torg.Mail.ru
Прошу помощи в настройке плагина, чтобы хоть как то экспортировать прайс... Всегда пользовался ручным экспортом, проблем никогда не было. Попытка выгрузки по крону тоже привела к вышеописанной проблеме.
Об этой ошибке известно, скоро исправим.
О разных ошибках лучше сообщать в отдельных темах в хабе поддержки. Так их удобнее обсуждать и обрабатывать (помечать как принятые/не принятые/исправленные).
спасибо за ответы, буду пробовать
У меня похожая ситуация с 403. Как только я ставлю домашний регион Москва, то сразу получаю 403.
Ставлю Московская область и все ОК. Тестирование ошибки продолжается.
Изменеие параметов post_max_size и max_input_vars, к сожалению, ничего не дает, ошибка при ручном экспорте продолжает возникать.
Кроме импорта/экспорта в маркет, ошибка 403 (Магазин You don't have permission to access requested URL on this server. Please contact app developer.) возникает при сохранении в некоторых настройках:
Настройки/Оформление заказа/Данные получателя заказа, на других этапах сохраняется нормально
Настройки/Страны и регионы
Настройки/Налоги
Такая же проблема — >>547 throw new waException('CSRF Protection', 403);
В плагине Яндекс.Маркет настроено несколько профилей экспорта. На двух — ругается на 403 ошибку, а на остальных профилях — все норм.
Выкусил проверку в waSystem.class.php
// Check CSRF protection token if current active app enabled it
//if ($wa_app->getConfig()->getInfo('csrf') && waRequest::method() == 'post') {
// if (waRequest::post('_csrf') != waRequest::cookie('_csrf')) {
// throw new waException('CSRF Protection', 403);
// }
//}
Все начало работать
Нужно смотреть конкретно в вашем аккаунте, почему у вас это происходит. Это можно сделать в рамках расширенной диагностики.
Провели диагностику. Ответ техподдержки:
Проблема решена.