← Toate cazurile

Cazul 002 · Magazin Shopify · Livrare

Cele mai mari coșuri nu pot plasa comanda.

Coșurile mai grele decât ultima treaptă de livrare nu primesc tarif, iar checkout-ul se oprește.

Un telefon întunecat cu un checkout: „2 × Dog food 12 kg” și, cu roșu, „Shipping not available”.
Înainte
Coșurile peste 20 kg nu primesc tarif de livrare.
După
Treaptă finală deschisă; test cu coș greu pe zonă.

Cazul în jumătate de minut.

Un film fără sunet, cu subtitrare. Ecranele din el sunt ilustrative.Ilustrativ

Bug-ul

Un magazin de produse pentru animale, pe Shopify, configurează livrarea după greutate în trei trepte: 0–5 kg, 5–10 kg și 10–20 kg. Nimeni nu adaugă o treaptă peste 20 kg, iar Shopify mai pune la fiecare coș greutatea implicită a coletului. Dacă un coș cade într-un gol dintre trepte, Shopify îl duce la tariful următor. Un coș peste ultima treaptă nu primește niciun tarif.

Cum se vede

De Black Friday, magazinul face un pachet: doi saci de hrană de câte 12 kg. Coșul are 24 kg plus cutia, niciun tarif nu se potrivește, iar checkout-ul afișează „Shipping not available. Your order cannot be shipped to the selected address.” Comenzile cu un singur sac merg. Proprietarul testează cu un sac și vede că totul e în regulă. Mesajul îl văd tocmai clienții cu cele mai mari coșuri, iar în admin nu apare nicio eroare.

shop.example/checkout/shipping

Metoda de livrare

  • Coș: 2 × hrană pentru câini, 12 kg fiecare
  • Tarif: 20 kg și peste

Tarif găsit

shop.example/checkout/shipping

Livrarea nu este disponibilă

  • Coș: 2 × hrană pentru câini, 12 kg fiecare
  • Greutate: 24 kg plus cutia

Niciun tarif peste 20 kg

Trage ca să compari înainte și dupăIlustrativ

Cum îl găsește un test

Un test de checkout bun nu cumpără un singur produs. Construiește cel mai greu coș realist: cantitatea maximă din cel mai greu produs, plus cel mai mare pachet. Apoi cere livrare în fiecare zonă a magazinului. Cu treptele de mai sus, coșul de 24 kg nu primește tarif, iar testul pică înainte să înceapă campania.

Reparația

Adaugi o treaptă finală deschisă, de exemplu de la 20 kg în sus, sau treci pe tarife calculate de curier, cu un tarif fix de rezervă. Setezi greutatea la fiecare produs, ca totalul coșului să fie real.

Testul care îl prinde

Un test Playwright de checkout cu cel mai greu coș realist, rulat pentru fiecare zonă de livrare, care verifică dacă apare cel puțin un tarif. O a doua verificare pică dacă vreun produs n-are greutate setată. Ambele rulează înaintea fiecărei campanii și după fiecare schimbare în setările de livrare.

heavy-cart.spec.tsIlustrativ
import { test, expect } from "@playwright/test";
import { addHeaviestCart, products, shippingZones } from "./fixtures";

// The biggest basket a customer could build: the heaviest product at its
// maximum quantity, plus the largest bundle.
for (const zone of shippingZones) {
  test(`the heaviest cart gets a rate: ${zone.name}`, async ({ page }) => {
    await addHeaviestCart(page);
    await page.goto("/checkout");
    await page.getByLabel("Country/region").selectOption(zone.country);
    await page.getByRole("button", { name: "Continue to shipping" }).click();

    await expect(page.getByText("Shipping not available")).toHaveCount(0);
    await expect(page.getByRole("radio").first()).toBeVisible();
  });
}

test("every product has a weight", async () => {
  const missing = (await products()).filter((variant) => !variant.grams);
  expect(missing).toEqual([]);
});

Ce pune în pericol

Cele mai mari comenzi din campanie, chiar în săptămâna în care magazinul a plătit reclame ca să le aducă. Clientul dă de un zid, magazinul nu vede nimic, iar comanda poate ajunge la un concurent.

Spune-ne ce lansezi.

O aplicație nouă sau rescrisă, un agent AI, o automatizare sau o versiune care trebuie testată. Un apel gratuit de 30 de minute, apoi un preț în scris. Dacă încă nu ai nevoie de noi, îți spunem.

Programează un apel gratuit