ACSD-64431: Die „placeOrder“-Mutation mit Couponcode in der Anfrage löst einen internen Server-Fehler aus
Der Patch ACSD-64431 behebt das Problem, dass die placeOrder Mutation mit den Couponcode-Informationen in der Anfrage einen internen Server-Fehler ausgibt, anstatt die Bestellung erfolgreich aufzugeben. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.61 installiert ist. Die Patch-ID ist ACSD-64431. Beachten Sie, dass das Problem voraussichtlich in Adobe Commerce 2.4.8 behoben wird.
Betroffene Produkte und Versionen
Der Patch wird für die Adobe Commerce-Version erstellt:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.7-p3
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.7 - 2.4.7-p4
magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.Problem
Die placeOrder Mutation, die die Couponcode-Informationen in der Anfrage enthält, löst einen internen Fehler aus, anstatt die Bestellung erfolgreich aufzugeben.
Schritte zur Reproduktion:
-
Erstellen Sie ein einfaches Produkt mit SKU-2836611.
-
Erstellen Sie eine Cart Price Rule, legen Sie Coupon auf
Specific Couponfest und geben Sie TEST1234 als Couponcode ein. -
Kunde erstellen:
code language-none mutation { createCustomer( input: { firstname: "John" lastname: "Doe" email: "john.doe@example.com" password: "b1b2b3l@w+" is_subscribed: true } ) { customer { firstname lastname email is_subscribed } } } -
Generieren Sie ein Kunden-Token. Sie können dieses Token für nachfolgende Anfragen verwenden.
code language-none mutation { generateCustomerToken(email: "john.doe@example.com", password: "b1b2b3l@w+") { token } } -
Erstellen Sie einen leeren Warenkorb. Speichern Sie die Warenkorb-ID und verwenden Sie sie für die nachfolgenden Anfragen.
code language-none mutation { createEmptyCart } -
Fügen Sie das Produkt zum Warenkorb hinzu:
code language-none mutation { addProductsToCart( cartId: "xxxx" cartItems: [{ quantity: 1, sku: "2836611" }] ) { cart { itemsV2 { items { product { name sku } ... on ConfigurableCartItem { configurable_options { configurable_product_option_uid value_label } } quantity } total_count page_info { page_size current_page total_pages } } } user_errors { code message } } } -
Anwenden des Gutscheins:
code language-none mutation { applyCouponToCart(input: { cart_id: "xxxx", coupon_code: "TEST1234" }) { cart { itemsV2 { items { product { name } quantity } total_count page_info { page_size current_page total_pages } } applied_coupons { code } prices { grand_total { value currency } } } } } -
Lieferadresse festlegen:
code language-none mutation { setShippingAddressesOnCart( input: { cart_id: "xxxxx" shipping_addresses: [ { address: { firstname: "John" lastname: "Doe" company: "Company Name" street: ["3320 N Crescent Dr", "Beverly Hills"] city: "Los Angeles" region: "CA" region_id: 12 postcode: "90210" country_code: "US" telephone: "123-456-0000" save_in_address_book: false } } ] } ) { cart { shipping_addresses { firstname lastname company street city region { code label } postcode telephone country { code label } available_shipping_methods { carrier_code carrier_title method_code method_title } } } } } -
Versandart festlegen:
code language-none mutation { setShippingMethodsOnCart( input: { cart_id: "xxxx" shipping_methods: [{ carrier_code: "flatrate", method_code: "flatrate" }] } ) { cart { shipping_addresses { selected_shipping_method { carrier_code carrier_title method_code method_title amount { value currency } } } } } } -
Rechnungsadresse festlegen:
code language-none mutation { setBillingAddressOnCart( input: { cart_id: "xxxx" billing_address: { address: { firstname: "John" lastname: "Doe" company: "Company Name" street: ["64 Strawberry Dr", "Beverly Hills"] city: "Los Angeles" region: "CA" region_id: 12 postcode: "90210" country_code: "US" telephone: "123-456-0000" save_in_address_book: true } } } ) { cart { billing_address { firstname lastname company street city region { code label } postcode telephone country { code label } } } } } -
Zahlungsmethode festlegen:
code language-none mutation { setPaymentMethodOnCart( input: { cart_id: "xxxx", payment_method: { code: "checkmo" } } ) { cart { selected_payment_method { code } } } } -
Bestellung aufgeben:
code language-none mutation { placeOrder( input: { cart_id: "{{cart_id}}" } ) { orderV2 { number token } errors { message code } } }
Erwartete Ergebnisse:
Die Bestellung sollte aufgegeben werden.
Tatsächliche Ergebnisse:
Die folgende Fehlermeldung wird angezeigt:"message": "Internal server error"
exception.log enthält den folgenden Fehler:
report.ERROR: "discount_model" value should be specifiedGraphQL (1:135)
1: mutation { placeOrder(input: {cart_id: "xxxx"}) { orderV2 { total { discounts { amount { currency value } coupon { code } } } } errors { message code } } }
Patch anwenden
Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:
- Adobe Commerce oder Magento Open Source On-Premise: Quality Patches Tool > Nutzung im Quality Patches Tool.
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch zu Commerce in Cloud-Infrastruktur.
Verwandtes Lesen
Weitere Informationen zu Quality Patches Tool finden Sie unter:
- Quality Patches Tool: Ein Self-Service-Tool für hochwertige Patches im Tools-Handbuch.