Hvorfor fik kunden ikke gratis fragt?

Solidus-promotions er kraftfulde og svære at gennemskue. Adea læser reglerne og kan vise præcis, hvilken betingelse en ordre ikke opfyldte.

Hvorfor fik ordre R834120 ikke gratis fragt?

  1. Finder ordre R834120
  2. Læser Spree::Promotion::Rules::ItemTotal
  3. Regner varesummen efter rabat
Et spørgsmål til et Solidus-system

Hvorfor fik ordre R834120 ikke gratis fragt?

Adeas svar

Kampagnen »Gratis fragt over 500 kr.« kræver en varesum på mindst 500 kr. efter rabat. Ordren var på 512 kr., men 40 kr. rabat trak varesummen ned til 472 kr.

Her kommer tallet fra

Koden, Adea læste app/models/spree/promotion/rules/item_total.rb:31

def eligible?(order)
  order.item_total >= preferred_amount
end

Opslaget, Adea lavede

SELECT o.number, o.item_total, o.promo_total
FROM spree_orders o
WHERE o.number = 'R834120'

Det får du

Forstår promotions og rules

Adea følger kæden fra kampagne til regel til handling og forklarer på almindeligt dansk, hvorfor en ordre faldt uden for.

Læser jeres udvidelser

Har du overstyret en regel i en decorator eller i jeres egen extension, bruger Adea jeres version.

Solidus og Rails i ét

Alt det, der gælder for Rails-apps, gælder her: enums, scopes, concerns og jeres egne modeller.

Sådan forbinder du Solidus

Forbind repoet med læseadgang, og opret en Postgres-læsebruger.

CREATE ROLE adea_laese LOGIN PASSWORD '…';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO adea_laese;
Læs vejledningen

Spørgsmål om Solidus

Virker det med Spree?

Ja. Strukturen er den samme.

Kan Adea se kortoplysninger?

Nej. Solidus gemmer dem ikke, og du kan lukke for betalingstabeller pr. rolle.

Kan vi se det virke, før vi forbinder noget?

Ja. Prøv demovirksomheden. Du behøver ikke oprette en konto.

Hvad vil du gerne vide?