Merged
Conversation
The shipping tables resources should use getDefaultPages() not getPages() so that they can be extended. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Updated method names for improved clarity in shipping resource management. No changes to existing functionality or user experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Should Close lunarphp#2252 by ensuring coupons are stored and retrieved uppercase regardless of where they are introduced. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Coupon codes are now automatically converted to uppercase when applied to carts and discounts. * **Bug Fixes** * Adjusted tests to expect coupon codes in uppercase format. * **Chores** * Removed unnecessary test group annotation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Author <[email protected]>
…cluster (lunarphp#2257) This PR adds translation support for the Taxes cluster in the Lunar system. The changes include: Adding code that uses the existing translation file lunarpanel::tax.plural_label for navigation labels and breadcrumbs The code uses the __() function to retrieve the translated string from the language file These changes enable proper display of the module name, maintaining consistency with the rest of the translated system. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added English localization for tax-related labels in the admin interface. * Improved navigation and breadcrumb display for the Taxes section using localized labels. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Glenn Jacobs <[email protected]>
We have over 15,000 collections in the main catalog. The problem with **ancestors** is that it shows the linear collections that are on the same level. This makes the breadcrumb 15,000+ collection names. Using **CHILDREN** only shows the children of the collection that you clicked into. The page loads faster and the title bar with the breadcrumb is more readable. Please describe your Pull Request as best as possible, explaining what it provides and why it is of value, referencing any related Issues. Try to include the following in your Pull Request, where applicable... - Documentation updates - Automated tests <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Updated breadcrumb trail logic to display direct children of a collection instead of its ancestors. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Alec Ritson <[email protected]>
lunarphp#2247) This pull request updates the `delivery_instructions` column in the `lunar_addresses`, `lunar_cart_addresses`, and `lunar_order_addresses` tables from `VARCHAR(255)` to `TEXT`. This change ensures that users can provide longer delivery instructions without encountering SQL errors such as: `SQLSTATE[22001]: Data too long for column 'delivery_instructions'` Fixes lunarphp#2245 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Increased the maximum length of delivery instructions to 1000 characters for addresses, cart addresses, and order addresses. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Lehel <[email protected]>
At the moment BuyXGetY sorts rewards by cheapest line price first, but not all the line might be eligible so when you have multiple quantity in the line its not necessarily the cheapest item. Instead it should be sorted by the cheapest items (lineSubTotal/quantity). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Updated the sorting logic for reward lines in Buy X Get Y discounts to prioritize items with lower unit prices, ensuring a more accurate application of discounts. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Alec Ritson <[email protected]>
Some of the core models are missing activity logging which we're trying to use across the system to give our clients visibility on all changes. This PR adds them. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added activity logging capabilities to various models across the platform, enabling automatic tracking of changes and actions for staff, customers, products, discounts, tax settings, shipping, and more. This enhancement improves visibility and traceability of important events throughout the system. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…php#2264) This PR fixes a bug where attributables deleting would take place on the default database connection, not the one specified for lunar. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved reliability of attribute deletion operations to ensure related data is consistently removed. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Currently when a currency is created, no prices are created and then if the base price changes, other currency prices aren't kept up to date based on the exchange rate. This PR looks to solve these issues: - When a currency is created, fire a job to create all prices for that currency, based on the exchange rate - Add a `sync_prices` boolean to currencies to determine whether prices in that currency should be updated when the default currency pricing is updated. - When a price is saved, update any prices in the other currencies, if sync is enabled. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * "Sync Prices" toggle and helper text added to currency settings; currency list shows sync status. New currencies can auto-generate converted prices from the default currency. Base-price fields show a sync hint and become read-only when synced. * **Bug Fixes** * Price creation and updates now use rounding and avoid unnecessary writes. * **Chores** * Background jobs and observers added to create, synchronize, and clean up currency prices; DB migration adds a sync flag. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Author <[email protected]> Co-authored-by: Glenn Jacobs <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This is to bring in the JSON searching improvements <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated a third-party UI/admin framework dependency to the latest patch release across the app and admin package to align with upstream maintenance updates. * No user-facing changes are expected; existing features and behavior should remain unchanged. This update focuses on compatibility, stability, and security with the upstream ecosystem. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
The idea behind this PR is for Lunar to send anonymous usage insights to a predetermined endpoint. This will help us see how Lunar is being used and at what capacity. It is completely anonoymous and you will be able to easily opt out of sending any stats by calling `Telemetry::optOut()` in your service provider. We will also only do the call once per day and will be on a deffered request so that it does not interfere with the performance of your storefront. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced anonymous usage insights enabled by default; data is non-identifying, sent at most once per day, and can be opted out. * **Documentation** * Added clear "Telemetry insights" and upgrade notes with opt-out instructions. * **Behavior** * Telemetry is triggered automatically at app shutdown (when not running in console). * **Tests** * Added comprehensive tests covering opt-out, run frequency, and payload contents. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Author <[email protected]> Co-authored-by: Glenn Jacobs <[email protected]>
Improves non-Scout searching in a few areas. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Enable search by brand name in Brands table. * Add search to Order columns: customer reference, billing name, postcode, and contact email. * Make Product Option names searchable in tables. * Allow searching by attribute name when attaching Collections in discount limits. * Enable SKU-based search when selecting Product Variants in discount limits. * **Chores** * Disable Scout-backed searches in the admin panel by default. * **Documentation** * Upgrade notes: how to re-enable Scout and new telemetry opt-out info. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Author <[email protected]>
Closes lunarphp#2261 We were using standard JSON fields and when it comes to Postgres this field type is very basic, not much more than a simple text field. JSONB is a "proper" JSON field, is supported properly in Filament and should perform a lot better. It's worth noting MySQL & Sqlite will continue to use the same JSON field type - so no change there. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Converted many metadata and attribute fields to PostgreSQL JSONB for improved performance and consistency across activity logs, addresses, attributes, brands, carts, collections, customers, discounts, orders, products, shipping, transactions, and media. - **Chores** - Added a PostgreSQL-only migration to perform the conversions and raised the PostgreSQL minimum requirement from 9.2+ to 9.4+. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Author <[email protected]> Co-authored-by: wychoong <[email protected]>
Updates documentation for v1.0.0 release <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Removed beta cautions and production-readiness warnings across docs; content reflects a 1.x/stable focus. * Simplified installation guidance and reorganized advanced options (telemetry moved under Advanced). * Revamped upgrade guide into versioned 1.x roadmap with alpha/beta/stable notes and migration guidance. * Updated admin references to Filament and minor formatting improvements. * Removed “Initial Set‑Up” and “Release Schedule” pages; adjusted navigation. * Trimmed security guidance and added support note: no full codebase reviews. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Documentation updates <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Corrected punctuation in the Collections reference (e.g., “add products, either explicitly or via certain criteria”). * Fixed pluralization/typos (e.g., “Menus and landing pages”) to improve clarity and consistency. * Editorial-only updates to enhance readability; no changes to features, behavior, or APIs. * Users can expect clearer guidance without any impact on existing workflows or configurations. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This migration is aimed at PostgreSQL databases. It targets columns that were previously of type `json` and changes them to `jsonb`. The line removed in the PR causes a problem because the table mentioned does not exist in Lunar. This causes new installations that use PostgreSQL to fail. Relevant issue: - lunarphp#2276 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - Chores - Updated a database migration to exclude a shipping-related field from JSON/JSONB conversions. - Streamlines the migration process and reduces unnecessary data alterations during upgrades or rollbacks. - Improves operational stability for deployments involving historical data. - No changes to user experience or visible functionality; the application behaves as before. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…unarphp#2274) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Corrected breadcrumb navigation in the Product Variant admin area. When managing variant identifiers, the final breadcrumb now links to the Identifiers page instead of Inventory, aligning with the page context. This improves navigation accuracy and consistency across the admin interface, reducing confusion for users. No changes to data or functionality—only the breadcrumb destination was updated wherever this breadcrumb appears. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Just a typo fix in the docs. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Corrected typo in the Carts reference (card → cart). * Clarified how cart changes are detected across tabs and how checkout responds, improving accuracy and comprehension. * Improved readability with minor wording and line-break adjustments. * No functional or API changes; purely editorial to reduce reader confusion. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Fixed an issue where existing cart line items could be misidentified when no changes were present, leading to unintended merges or duplicates. * Cart lines are now matched only when there are truly no new, edited, or removed differences, improving the accuracy of item updates. * Results in more predictable cart behavior and smoother checkout consistency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Alec Ritson <[email protected]>
Just a typo fix in the docs. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Fixed typographical errors in the Orders reference (replaced “you’re own” with “your own” in two places related to cart/validator guidance). * Reworded a section heading for clarity: "Order Reference Generating" → "Order Reference Generation". * Minor content alignment edits to improve readability; no behavioral or functional changes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
just to add some clarity to put the telemetry opt-out in `boot()`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please describe your Pull Request as best as possible, explaining what it provides and why it is of value, referencing any related Issues.
Try to include the following in your Pull Request, where applicable...