カートは、支払いチェックと同じリゾルバーでサーバー側で価格計算されるので、カートと銀行の金額が食い違うことはない。カートを開くと、現行のカタログから価格を計算し直す。本番環境では、未決済のカート15件のうち4件が古くなった合計を保持していた。明細には定価、商品割引、クーポンを別々の行で表示する。
購入手続きは1ページで完結する。スマートフォンでは注文の概要が最初に来る。ログインしていない顧客は、ページを離れずに携帯番号と6桁のコードでログインでき、新しい番号にはアカウントが作られる。保存済みの最初の住所があらかじめ選択される。表示するのはその注文で使える支払い方法だけで、ボタンには金額が入る。«پرداخت … تومان»。まだ使えないものは、グレーアウトしたコントロールではなく一文で説明する。たとえば、ウォレット残高が具体的にいくら足りないかを示す。
支払いは、イランのすべてのゲートウェイに共通のひとつのアダプターを通る。Zarinpal、Zibal、Torob Pay、SnappPay、DigiPay、そしてストアのウォレットだ。顧客を銀行へ送る前に、サーバーが合計を計算し直し、カートと1リアル単位まで一致しない限り請求を拒否する。注文は、ゲートウェイが支払いを確認して初めて作成される。コールバックが繰り返されても2件目の注文は作られず、10分ごとのジョブが、コールバックが届かなかった支払いを拾い上げる。
アダプターの形は、実際の不具合から生まれた。9月の2日間で、DigiPayには7件の修正が必要だった。購入手続きを壊した空のエンドポイント設定、正しい認証情報を無効に見せてしまうリクエスト形式、存在しないルートに当たったゲートウェイからの戻り、そして本番の支払いでリアルであることを確かめる必要があった金額の単位。それぞれがルールになった。DigiPayのエンドポイントは必須の設定で、空のときはゲートウェイを表示しない。どのゲートウェイも両方の種類の戻りリクエストを受け付ける。金額の単位は決して推測しない。