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

Customer group code saved does not match the input when using multibyte characters #39342

Open
1 of 5 tasks
oskar-olaussen opened this issue Nov 7, 2024 · 8 comments · May be fixed by #39425
Open
1 of 5 tasks

Customer group code saved does not match the input when using multibyte characters #39342

oskar-olaussen opened this issue Nov 7, 2024 · 8 comments · May be fixed by #39425
Assignees
Labels
Area: Account Component: Customer Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Progress: PR in progress Reported on 2.4.7-p3 Indicates original Magento version for the Issue report. Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch

Comments

@oskar-olaussen
Copy link

Preconditions and environment

  • Magento version: tested on 2.4.7-p3.
  • Copypasteble 31 "ö" characters for convenience: ööööööööööööööööööööööööööööööö

Steps to reproduce

  1. In admin go to Customer->Customer Groups.
  2. Click "Add New Customer Group"
  3. Input 31 "ö" characters as the group name:
    Screenshot from 2024-11-07 16-35-27
  4. Click "Save Customer Group".

Expected result

A customer group with code "ööööööööööööööööööööööööööööööö" is created.

Actual result

A customer group with code "öööööööööööööööö" (16 characters) is created.

Additional information

The issue is most likely in these two places:

$this->setCode(substr($this->getCode(), 0, self::GROUP_CODE_MAX_LENGTH));
and
$group->setCode(substr($group->getCode(), 0, $group::GROUP_CODE_MAX_LENGTH));
.

There we are using the substr function instead of mb_substr. I see no issue with using mb_substr as the database can handle 32 multibyte characters fine.

Release note

No response

Triage and priority

  • Severity: S0 - Affects critical data or functionality and leaves users without workaround.
  • Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
  • Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
  • Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
  • Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Copy link

m2-assistant bot commented Nov 7, 2024

Hi @oskar-olaussen. Thank you for your report.
To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce.


Join Magento Community Engineering Slack and ask your questions in #github channel.
⚠️ According to the Magento Contribution requirements, all issues must go through the Community Contributions Triage process. Community Contributions Triage is a public meeting.
🕙 You can find the schedule on the Magento Community Calendar page.
📞 The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, join the Community Contributions Triage session to discuss the appropriate ticket.

Copy link

m2-assistant bot commented Nov 8, 2024

Hi @engcom-Bravo. Thank you for working on this issue.
In order to make sure that issue has enough information and ready for development, please read and check the following instruction: 👇

  • 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).
  • 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue.
  • 3. Add Area: XXXXX label to the ticket, indicating the functional areas it may be related to.
  • 4. Verify that the issue is reproducible on 2.4-develop branch
    Details- If the issue is reproducible on 2.4-develop branch, please, add the label Reproduced on 2.4.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!
  • 5. Add label Issue: Confirmed once verification is complete.
  • 6. Make sure that automatic system confirms that report has been added to the backlog.

@engcom-Bravo engcom-Bravo added the Reported on 2.4.7-p3 Indicates original Magento version for the Issue report. label Nov 8, 2024
@engcom-Bravo
Copy link
Contributor

Hi @oskar-olaussen,

Thanks for your reporting and collaboration.

We have verified the issue in Latest 2.4-develop instance and the issue is reproducible.Kindly refer the screenshots.

Screenshot 2024-11-11 at 10 09 28

A customer group with code "öööööööööööööööö" (16 characters) is created.

Hence Confirming the issue.

Thanks.

@engcom-Bravo engcom-Bravo added Component: Customer Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Area: Account labels Nov 11, 2024
@github-jira-sync-bot
Copy link

✅ Jira issue https://jira.corp.adobe.com/browse/AC-13335 is successfully created for this GitHub issue.

Copy link

m2-assistant bot commented Nov 11, 2024

✅ Confirmed by @engcom-Bravo. Thank you for verifying the issue.
Issue Available: @engcom-Bravo, You will be automatically unassigned. Contributors/Maintainers can claim this issue to continue. To reclaim and continue work, reassign the ticket to yourself.

@magentoabu
Copy link

@magento I'm working on this

@ihor-sviziev
Copy link
Contributor

@oskar-olaussen, what is the use case, when you need a customer group code both:

  1. longer than 16/32 symbols
  2. contain no Latin symbols?

@oskar-olaussen
Copy link
Author

oskar-olaussen commented Dec 3, 2024

@ihor-sviziev Well the main point is to have the system working logically when there are multibyte characters present. So either prevent user from having them in the customer group code or fix the unexpected behaviour. Please note that I chose an extreme example where there are just multibyte characters present. The same unexpected behaviour will happen if you have a long customer group code with some of the chars being multibyte.

I came across this when I was trying to match customer codes with an external system that had customer group identifiers longer than 32 characters and containing multibyte chars. Tried then truncate the customer group codes to the max allowed length in Magento but noticed that the code saved did not match the input given.

A more realistic example: If I save a customer group called "Käärijä-fanien alennusryhmä kesä" what currently gets saved is "Käärijä-fanien alennusryhmä ".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Account Component: Customer Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Priority: P2 A defect with this priority could have functionality issues which are not to expectations. Progress: PR in progress Reported on 2.4.7-p3 Indicates original Magento version for the Issue report. Reproduced on 2.4.x The issue has been reproduced on latest 2.4-develop branch
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants