Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

При переходе по ссылке открывается главная страница сайта вместо корзины #4

Open
svdvovan opened this issue Oct 4, 2018 · 7 comments

Comments

@svdvovan
Copy link

svdvovan commented Oct 4, 2018

Добрый день,
при переходе по ссылке..../index.php?route=product/product/addtocart&product_id=52000072 открывается главная страница сайта, товар в корзину не добавляется.
Установлен seo pro, добавил в него case 'product/product/addtocart':
В чем может быть еще причина?
Если у товара имеются обязательные опции (размер) работает ли Ваш плагин с ними?

@toporchillo
Copy link

toporchillo commented Oct 12, 2018

Ошибка из-за того, что вы используете мой модуль экспорта в YML. У вас в магазине опции, для которого модуль экспорта сделал offer id="52000072", здесь product_id=52 а 72 - id опции.
Модуль от Яндекса должен корректно обрабатывать длинный id=52000072, добавляя в корзину товар 52 с выбранной опцией 72.
Но Яндекс этого не умеет.
Я рекомендую вот такое правило разделения offer_id на prodгct_id и id опций:
if (strlen($offer_id) > 12) { $offer_id = intval(substr($item['offerId'], 0, count($offer_id) - 13)); $option_value_id = intval(ltrim(substr($item['offerId'], -12, 6), '0')); $option2_value_id = intval(ltrim(substr($item['offerId'], -6), '0')); } elseif (strlen($offer_id) > 6) { $offer_id = intval(substr($offer_id, 0, count($offer_id) - 7)); $option_value_id = intval(ltrim(substr($item['offerId'], -6), '0')); }

@andrejbr
Copy link

Подскажите, куда разместить предложенное вами правило разделения offer_id на product_id и id опций?

@svdvovan
Copy link
Author

Действительно: где этот код располагать?

Ошибка из-за того, что вы используете мой модуль экспорта в YML. У вас в магазине опции, для которого модуль экспорта сделал offer id="52000072", здесь product_id=52 а 72 - id опции.
Модуль от Яндекса должен корректно обрабатывать длинный id=52000072, добавляя в корзину товар 52 с выбранной опцией 72.
Но Яндекс этого не умеет.
Я рекомендую вот такое правило разделения offer_id на prodгct_id и id опций:
if (strlen($offer_id) > 12) { $offer_id = intval(substr($item['offerId'], 0, count($offer_id) - 13)); $option_value_id = intval(ltrim(substr($item['offerId'], -12, 6), '0')); $option2_value_id = intval(ltrim(substr($item['offerId'], -6), '0')); } elseif (strlen($offer_id) > 6) { $offer_id = intval(substr($offer_id, 0, count($offer_id) - 7)); $option_value_id = intval(ltrim(substr($item['offerId'], -6), '0')); }

Действительно: где этот код располагать?

toporchillo added a commit to toporchillo/get-cart-api that referenced this issue Oct 29, 2018
Исправляем issue: releu#4
Иногда в offer_id на Маркете "зашиты" опции, а не только product_id
@toporchillo
Copy link

см. pull-request #6

@svdvovan
Copy link
Author

После внесения изменений, стала открываться карточка самого товара.

@toporchillo
Copy link

После внесения изменений, стала открываться карточка самого товара.

А в корзину товар добавляется? С выбранными опциями?

@svdvovan
Copy link
Author

нет, не добавляется

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants