Jump to content

Редактирование заказов через админку


selin
 Share

Recommended Posts

Здравствуйте! Первый раз работаю как со сборкой OpenCart 3 club edition, так и с этой функцией, поэтому не пойму, в чем засада. Это какой-то баг тройки, сборки или все так и задумано.

Заказы оформляются покупателями через сайт по базовой или дисконтным ценам, дисконты привязаны к группам покупателей. Если потом заказ редактировать через админку, например, может потребоваться изменить количество заказанного товара, то на вкладке редактирования корзины все цены меняются на базовую, т.е. группа покупателя и соответствующие ей дисконтные цены игнорируются. Почему так происходит и что с этим можно сделать? Очевидно, что цена за ед.товара должна оставаться той, по которой покупатель оформлял заказ, соответствующей его группе.

Заранее спасибо, кто сможет что-то посоветовать.

Link to comment
Share on other sites

В 14.08.2023 в 20:43, selin сказал:

Здравствуйте! Первый раз работаю как со сборкой OpenCart 3 club edition, так и с этой функцией, поэтому не пойму, в чем засада. Это какой-то баг тройки, сборки или все так и задумано.

Заказы оформляются покупателями через сайт по базовой или дисконтным ценам, дисконты привязаны к группам покупателей. Если потом заказ редактировать через админку, например, может потребоваться изменить количество заказанного товара, то на вкладке редактирования корзины все цены меняются на базовую, т.е. группа покупателя и соответствующие ей дисконтные цены игнорируются. Почему так происходит и что с этим можно сделать? Очевидно, что цена за ед.товара должна оставаться той, по которой покупатель оформлял заказ, соответствующей его группе.

Заранее спасибо, кто сможет что-то посоветовать.

Модуль поможет 

 

Link to comment
Share on other sites

Модуль кажется хорошим, жаль автор не ответил на вопросы покупателей о совместимости с симплом, там может возникнуть проблема с кастомными полями. Ну, попробую связаться и выяснить, если что. Радует обещание тестового периода.
Но пока есть время, было бы интересно разобраться самостоятельно в этой проблеме.

 

Первое, что приходит в голову, передавать в api/cart/products номер заказа и добавить аргумент order_id и его проверку в cart->getProducts(), и при наличии отдавать не актуальную цену, а цену из истории заказа. Но будет ли этого достаточно или есть какие-то подводные камни? Надеюсь, кому-нибудь будет интересно это обсудить) Оказывается, уважаемого OC-создателя уже много лет достают этим вопросом, на что он отвечает в том духе, что редактирование заказов это вообще вредная практика и добавлено только в виде одолжения, поэтому и за это скажите спасибо. И угрожает забанить недовольных) Эх.

Link to comment
Share on other sites

В 15.08.2023 в 13:39, selin сказал:

автор не ответил на вопросы покупателей о совместимости с симплом, там может возникнуть проблема с кастомными полями.

такой проблемы нет, если установите модификатор из комплекта.

 

В 15.08.2023 в 13:39, selin сказал:

при наличии отдавать не актуальную цену, а цену из истории заказа

мне кажется это есть в этом модуле. как и непересчет итогов.

 

 

Link to comment
Share on other sites

В 16.08.2023 в 10:38, nikifalex сказал:

мне кажется это есть в этом модуле. как и непересчет итогов.

 

Да, судя по демо, там подгружается именно цена из заказа, доступная для редактирования. И дополнительно инф.поле с текущей базовой ценой и акционной если есть. Дисконтные тоже должны отображаться, хотя вряд ли там будет учтена привязка дисконта к группе покупателя. Ну это не критично, на худой конец можно вообще отключить эту колонку. В общем, очень неплохо все выглядит. Но по секрету: я по незнанию уже пообещала людям, что редактирование заказа корректно работает из коробки, поэтому не хотелось бы заморачиваться с обоснованием дополнительных трат, если это действительно можно решить за несколько часов)) Да и интересно разобраться. Вот только подтвердил бы кто, что это действительно заработает, чтобы время не терять) Так что еще раз, идея такая:


- в api/cart/products отправляем order_id, аналогично тому, как уже сделано для /api/order/edit
- в cart->getProducts() добавляем параметр order_id=0
- во все вызовы cart->getProducts() из products() и edit() отправляем order_id, там, если не 0, берем цену из oc_order_product

 

Опций у товаров нет, редактирования заказов пока достаточно только на удаление товаров или изменение количества (без добавления товаров, это думаю можно будет отдельными заказами делать).
Кажется все просто. Но так ли это на самом деле?)

Edited by selin
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...