Kami Опубликовано 5 июня, 2020 Жалоба Поделиться Опубликовано 5 июня, 2020 (изменено) Есть у кого готовое решение по скидке при оплате яндекс кассы? Чтоб скидка делилась на все товары пропорционально. Изменено 5 июня, 2020 пользователем Kami Цитата Ссылка на сообщение Поделиться на другие сайты
Drake777 Опубликовано 8 июня, 2020 Жалоба Поделиться Опубликовано 8 июня, 2020 1) Получаем скидку для каждого товара $order->coupon_discount / count($purchases)2) вычитаем скидку из каждого товара Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 8 июня, 2020 Жалоба Поделиться Опубликовано 8 июня, 2020 1) Получаем скидку для каждого товара $order->coupon_discount / count($purchases)2) вычитаем скидку из каждого товара Так можно получить много разных неожиданных сюрпризов, если в заказе товар не один. Например, отрицательную цену на товар... Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 8 июня, 2020 Автор Жалоба Поделиться Опубликовано 8 июня, 2020 Так можно получить много разных неожиданных сюрпризов, если в заказе товар не один. Например, отрицательную цену на товар... да уже понятно, но можно же и проверять чтоб он не был отрицательным. Более изящного я не придумал ничего, может что посоветуйте?имею ввиду в плане как правильней составить алгоритм? Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 8 июня, 2020 Жалоба Поделиться Опубликовано 8 июня, 2020 да уже понятно, но можно же и проверять чтоб он не был отрицательным. Более изящного я не придумал ничего, может что посоветуйте?имею ввиду в плане как правильней составить алгоритм? Конечно, можно. Но тогда можно получить НУЛЕВУЮ ЦЕНУ на товар, что немногим лучше... И потом, что будете делать если проверка даст отрицательную стоимость при пересчете? Если вообще не вычитать у такого товара, то общая скидка по заказу будет менее обещанной, то есть обман покупателя выйдет... Если вычитать до 0, то опять же может быть и скидка неполная, и цена товара нулевая, тоже плохо... Правильно - вычитать скидку у каждого товара пропорционально его стоимости. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 9 июня, 2020 Жалоба Поделиться Опубликовано 9 июня, 2020 Готового решения видимо нет.Но такое решение было логично сделать не только при оплате Яндекс.Кассой, а вообще из коробки при применении купона на сайте, чтобы менялись {$cart->total_price|convert} и {($purchase->variant->price*$purchase->amount)|convert} корзины. Видимо как-то нужно реализовать это в api/Cart.php Если брать за основу пример из одной стать, допустимВ корзине 3 товара1. 2827 руб ( {($purchase->variant->price*$purchase->amount)|convert} )2. 1365 руб ( {($purchase->variant->price*$purchase->amount)|convert} )3. 1538 руб ( {($purchase->variant->price*$purchase->amount)|convert} )Итого 5730 руб ( {$cart->total_price|convert} )Скидка 300 руб Первое, что нам нужно узнать, это долю товара в итоговой сумме1. 2827*100%/5730 = 0.49 %2. 1365*100%/5730 = 0.24 %3. 1538*100%/5730 = 0.27 % Второе узнать сумму скидки каждого товара1. 300*0,49 = 148 руб2. 300*0,24 = 71 руб3. 300*0,27 = 81 руб Третье вычесть сумму пропорциональной скидки из каждого товара1. 2827-148 = 2679 руб ( {($purchase->variant->price*$purchase->amount)|convert} )2. 1365-71 = 1294 руб ( {($purchase->variant->price*$purchase->amount)|convert} )3. 1538-81 = 1457 руб ( {($purchase->variant->price*$purchase->amount)|convert} ) Итого после применения скидки 300 руб и пропорционально ее распределили5430 руб ( {$cart->total_price|convert} ) Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 9 июня, 2020 Автор Жалоба Поделиться Опубликовано 9 июня, 2020 Вопрос в другом ,кто может сделать и какая цена доработки? Также стоит модуль скидка от суммы заказа, который в зависимости от суммы заказа делает ,скидку. Соответственно все родные скидки должны работать + скидка от суммы заказа. Пишите цену и сроки. Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 9 июня, 2020 Жалоба Поделиться Опубликовано 9 июня, 2020 (изменено) нет спецов свободных? я бы тоже приобрел такое Изменено 9 июня, 2020 пользователем megauser Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 10 июня, 2020 Жалоба Поделиться Опубликовано 10 июня, 2020 Вопрос в другом ,кто может сделать и какая цена доработки? Также стоит модуль скидка от суммы заказа, который в зависимости от суммы заказа делает ,скидку. Соответственно все родные скидки должны работать + скидка от суммы заказа. Пишите цену и сроки. Чтобы это сделать, надо сначала точно знать, что хотите. Стандартный модуль Яндекс-кассыhttps://yandex.ru/support/checkout/instructions/simpla.htmlработает с общей суммой заказа, и где использовать пересчитанные цены, не понятно.Если у Вас что-то свое специфичное, то надо и объяснять в деталях... Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 10 июня, 2020 Автор Жалоба Поделиться Опубликовано 10 июня, 2020 Чтобы это сделать, надо сначала точно знать, что хотите. Стандартный модуль Яндекс-кассыhttps://yandex.ru/support/checkout/instructions/simpla.htmlработает с общей суммой заказа, и где использовать пересчитанные цены, не понятно.Если у Вас что-то свое специфичное, то надо и объяснять в деталях... использовать в "идеальном варианте" нужно только на яндекс кассе, не трогая симплу, но если так не получится то можно и на стороне симплы пересчитывать. т.е. чтоб при заказе было все как обычно, а при отправке в яндекс кассу скидка делилась (как указано выше) скидки 3родная скидка группыкупоны скидка от суммы заказа. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 10 июня, 2020 Жалоба Поделиться Опубликовано 10 июня, 2020 использовать в "идеальном варианте" нужно только на яндекс кассе, не трогая симплу, но если так не получится то можно и на стороне симплы пересчитывать. т.е. чтоб при заказе было все как обычно, а при отправке в яндекс кассу скидка делилась (как указано выше) скидки 3родная скидка группыкупоны скидка от суммы заказа. Ничего не понятно.Стандартно при работе с Яндекс Кассой НЕ отправляются отдельные товары и цены отдельных товаров. Если Вам надо отправлять, то писать надо точно и конкретно - что, где, когда... Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 10 июня, 2020 Автор Жалоба Поделиться Опубликовано 10 июня, 2020 Ничего не понятно.Стандартно при работе с Яндекс Кассой НЕ отправляются отдельные товары и цены отдельных товаров. Если Вам надо отправлять, то писать надо точно и конкретно - что, где, когда... Как это не отправляется? Отправляется в чеке https://kassa.yandex.ru/developers/api#receipt Соответственно из за этого и происходит ошибка. [2020-06-10 11:15:20] [info] Message: Send request: POST /payments with body: {"amount":{"value":"5399.00","currency":"RUB"}, "description":"\u041e\u043f\u043b\u0430\u0442\u0430 \u0437\u0430\u043a\u0430\u0437\u0430 \u21164756", "receipt":{"items":[{"description":"\u0411\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \"\u0427\u0410\u0421\u0422\u041e\u041a\u041e\u041b \u041d\"","amount":{"value":"5999.00","currency":"RUB"},"quantity":1,"vat_code":1}], "email":"test@ma.ru"},"payment_method_data":{"type":"bank_card"}, "confirmation":{"type":"redirect","return_url":"https:\/\/site.ru\/payment\/YandexMoneyApi\/callback.php?order=4756&action=return"}, "metadata":{"cms_name":"ya_api_simpla","module_version":"1.0.6","order_id":"4756"},"capture":true} with headers: {"Idempotence-Key":"NDc1NjAuyedtyfdfteyMTUxMzM1MDAgMTU5MTc3NjkyMA=="} [2020-06-10 11:15:20] [info] Message: Response with code 400 received with headers: {"0":"HTTP\/1.1 400","Keep-Alive":"timeout=10000, max=100","Signature":"v1 2672aa58 1 MGUCMQCCV4pp\/zomn0ocZmXuTdNqJ1nfwm9+UjW12b7Q\/1O24TzgSDhS+eiEqNCxHNqafIUCMD63MqhOfXghsG7f1PGvSraP00AC3lxyYsgPdldTTr1y\/tedfz0AqoLCn\/Em6tz9aw==","Content-Type":"application\/json;charset=UTF-8","Content-Length":"305","Date":"Wed, 10 Jun 2020 08:15:20 GMT"} and body: { "type" : "error", "id" : "77e056582c7-33a5-49ac-bbcf-6f39194335697a", "code" : "invalid_request", "description" : "Invalid parameter's value (for example, the value is illegal or its format is incorrect). Send the value in accordance with the documentation.", "parameter" : "receipt.items.amount" } [2020-06-10 11:15:20] [error] Message: Invalid parameter's value (for example, the value is illegal or its format is incorrect). Send the value in accordance with the documentation..Error code: invalid_request.Parameter name: receipt.items.amount. Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 10 июня, 2020 Автор Жалоба Поделиться Опубликовано 10 июня, 2020 Ничего не понятно.Стандартно при работе с Яндекс Кассой НЕ отправляются отдельные товары и цены отдельных товаров. Если Вам надо отправлять, то писать надо точно и конкретно - что, где, когда... наверное с несколькими товарами будет понятней [2020-06-10 11:15:20] [error] Message: Invalid parameter's value (for example, the value is illegal or its format is incorrect). Send the value in accordance with the documentation..Error code: invalid_request.Parameter name: receipt.items.amount. [2020-06-10 11:25:25] [info] Message: Send request: POST /payments with body: { "amount":{"value":"1935.00","currency":"RUB"},"description":"\u041e\u043f\u043b\u0430\u0442\u0430 \u0437\u0430\u043a\u0430\u0437\u0430 \u21164757", "receipt":{"items":[{"description":" \u041a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0438 GREEN RS 15 ", "amount":{"value":"1200.00","currency":"RUB"},"quantity":1,"vat_code":1},{"description":" \u041a\u0430\u0440\u0442\u0440\u0438\u0434\u0436\u0438 YELLOW 14 ", "amount":{"value":"950.00","currency":"RUB"},"quantity":1,"vat_code":1}],"email":"test@ma.ru"}, "payment_method_data":{"type":"bank_card"},"confirmation":{"type":"redirect","return_url":"https:\/\/site.ru\/payment\/YandexMoneyApi\/callback.php?order=4757&action=return"}, "metadata":{"cms_name":"ya_api_simpla","module_version":"1.0.6","order_id":"4757"},"capture":true} with headers: {"Idempotence-Key":"NDc1NzfaertwrtAuMTI2MjEwMDAgMTU5MTc3NzUyNQ=="} [2020-06-10 11:25:25] [info] Message: Response with code 400 received with headers: {"0":"HTTP\/1.1 400","Keep-Alive":"timeout=10000, max=100", "Signature":"v1 2672acb5 1 MGQCMH2DMYnYKW0VrFO2xCoUesOMh8bL\/m8HfyhS5Ocy7\/pFD2cifW2W5pmuxLRl6trwtz7bKQIwW\/AFTMRlqaqdzzKmjUjmgo7IbBtrwtL8j8wo6XOPbcPSJmJepr8Mi8ylMbkPtaXrR\/JD","Content-Type":"application\/json;charset=UTF-8","Content-Length":"305","Date":"Wed, 10 Jun 2020 08:25:24 GMT"} and body: { "type" : "error", "id" : "6c12222dae7e-6d6a-4acb-bbc0-a8f25d7e178d", "code" : "invalid_request", "description" : "Invalid parameter's value (for example, the value is illegal or its format is incorrect). Send the value in accordance with the documentation.", "parameter" : "receipt.items.amount" } [2020-06-10 11:25:25] [error] Message: Invalid parameter's value (for example, the value is illegal or its format is incorrect). Send the value in accordance with the documentation..Error code: invalid_request.Parameter name: receipt.items.amount. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 10 июня, 2020 Жалоба Поделиться Опубликовано 10 июня, 2020 Понятно только то, что у Вас свое специфичное что-то сделано.Если надо в отправку форму подставлять цены товаров пересчитанные, то можно сделать. Обращайтесь в личку... Цитата Ссылка на сообщение Поделиться на другие сайты
Drake777 Опубликовано 10 июня, 2020 Жалоба Поделиться Опубликовано 10 июня, 2020 там ничего специфичного нет, обычный чек для соответствия 54ФЗ если у товаров ценник не сильно отличается, а скидка 5-10% максимум, то решение из моего сообщения вполне работает. И никаких отрицательных цен не получим. если же один товар стоит условно 1р, а другой 1000р, то действительно придется "веса" цен на товары городить, как предложил alexivchenko единственный косяк может быть если цены нормально не делятся, скидка получится не целое число рублей, а например 10р 45,67коп еще вариант чуть проще, но не всем подойдет, тк возможны махинации со стороны покупателя. Делаем всю скидку на 1 товар, если его стоимость выше, чему величина скидки. Все вышеперечисленное вполне реально сделать внутри платежного модуля, НЕ трогая СимплуПо времени зависит от используемых типов скидок, особенно если они нестандартные.Но думаю не больше 3 часов. Если кому-то нужно - пишите Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 10 июня, 2020 Автор Жалоба Поделиться Опубликовано 10 июня, 2020 Понятно только то, что у Вас свое специфичное что-то сделано.Если надо в отправку форму подставлять цены товаров пересчитанные, то можно сделать. Обращайтесь в личку... ничего специфического, просто применяю купон с 10% скидкой. Цитата Ссылка на сообщение Поделиться на другие сайты
Drake777 Опубликовано 10 июня, 2020 Жалоба Поделиться Опубликовано 10 июня, 2020 Сделал, кому-то ещё нужно решение? Цитата Ссылка на сообщение Поделиться на другие сайты
artbe Опубликовано 12 июня, 2020 Жалоба Поделиться Опубликовано 12 июня, 2020 Сделал, кому-то ещё нужно решение? Нужно Цитата Ссылка на сообщение Поделиться на другие сайты
Drake777 Опубликовано 12 июня, 2020 Жалоба Поделиться Опубликовано 12 июня, 2020 НужноПишите в личку, обсудим Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.