Akinon Release Notes (05/12/2025) are now live! Click here to learn what's new.
LogoLogo
API Reference
  • Home
  • Quick Start
  • Tutorials
  • Technical Guides
  • Release Notes
  • Glossary
  • Welcome to Akinon Technical Guides
  • ACC
    • ACC CLI
    • Create Application via CLI
    • Deploy Environment Variables
    • App Store for Developers
  • Omnitron
    • Product Types
    • Product Categorization
    • Splitting a Merged Order Item
  • Commerce
    • Shipping Rules Calculator
    • Data Source Shipping Options
    • Attribute Based Shipping Options
    • Filtering Products
    • Conversation & Messages
    • Sitemap Configuration
    • Weight-Based Product Sales
    • Group Attribute Sets
    • Contract Management
    • Find in Store for Whippy Ware
    • Plugins
    • Remote Price
    • E-mail Templates
    • Loyalty Accounts
    • Search Structure
    • User Segmentation & Rules
    • Promotions
  • OMS
    • Getting Started with OMS
    • Basic Setup
    • Scenarios
    • Capacity Feature
    • Package Management
      • Packages
      • Transfer
      • States
    • Commands
      • Packages
        • Package Command Parameters
        • DeAllocate Package Reservations Command
        • Channel Based Complete Packaging without Shipment Command
        • Complete Packaging with Shipment Command
        • Complete Packaging without Shipment Command
        • Package Refuse with Denial Reason Command
        • Product Not Found & Wrong Product Command
        • Product Not Found & Wrong Product Command Advanced
        • Package Packed for Refund Command
        • Block The Package For Action Command
        • Unblock the Package For Action Command
        • Update The Package’s Invoice
        • Manual Planning Command
      • Transfer
        • Transfer Order Advanced Command
        • Product for Transfer Not Found & Wrong Product Command
        • Transfer Delivered Command
        • Transfer Dispatch Command
        • Transfer Ready for Dispatch Command
        • Transfer Out Of Stock
      • Shipment
        • Shipment Order Command
        • Package Advanced Shipment Command
        • Ship The Package Command
        • Ship The Package without Shipment Integration Command
        • Update The Package’s Shipment Status Command
        • Update Shipment Info of Package Command
    • Inventory Locations & Engine
      • Properties & Domain Relation
      • Customization
      • Inventory Engine
    • Fulfillment
      • Shipments
      • Invoice Integration
    • Webhooks
      • Webhook Examples
        • Order Webhook
        • Package Webhook
        • Shipment Webhook
        • Stock Location Webhook
        • Transfer Webhook
    • Integrating OMS with Seller Center
  • Instore
    • Getting Started
    • Cash Register Integration
    • OTP (One Time Password) Process
    • Services
      • Password Reset Services
  • Marketplace Dashboard
    • N11 Marketplace Setup Configurations
    • Trendyol Marketplace Setup Configurations
    • Walmart Marketplace Setup Configurations
    • Amazon Marketplace Setup Configurations
    • Hepsiburada Marketplace Setup Configurations
  • Project Zero
    • Django
      • Basic Setup
      • Project Structure
        • Templates & Components
        • Private Dependencies
        • Omnife Project Submodule
        • Webpack
        • ESLint Rules
        • Bundles
        • Multilanguage & Translation
        • Environmental File
        • Custom Error Pages
        • Icon Font
      • Page Types
        • Static Pages & Flatpages
        • Account Page
          • Template Rendering in Account Pages
          • Forms & Validation
        • Basket Page
          • Redux Basket State
          • Basket Page - View
        • Checkout
          • Redux Checkout State
          • View & Template Rendering
          • Masking & Validation
      • Theming & Styling
      • Widgets
      • SEO Management
      • Extending Project Zero
    • Next.js
      • Basic Setup
      • Deployment
      • Static Assets
      • Plugins
      • Widgets
      • Icons
      • Localization
      • SEO Management
      • Advanced Usage
      • Data Fetching
        • Client
          • Account
          • Address
          • Basket
          • Checkout
          • Misc
          • Product
          • User
          • Wishlist
        • Server
          • Category
          • Flat Page
          • List
          • Menu
          • Product
          • SEO
          • Special Page
          • Widget
  • App Maker
    • Setup Your Environment
    • Plugin Quickstart
    • Create Project
    • Setup Existing Project
    • Deploy Project
    • Users and Roles
    • Add Public Key
    • App Maker CLI
    • Create App on Stores
      • Creating App on Apple App Store
      • Creating App on Google Play Store
    • Mobile App Framework
      • Configuration
      • Framework
      • Project Structure
        • Structure
        • Data Containers
        • Pages
      • Dependency Integration
        • Plugins
        • Akinon Plugin Adapter
  • Akifast
    • HPP
      • Getting Started
      • Authorization
      • Payment Session Creation
        • Key Points Before Creating a Payment Session
        • Creating Payment Session
        • Redirecting to the Payment Page
        • Errors Encountered During Payment Session Creation
      • Merchant Services
        • Shipping Query URL
        • Agreement Query URL
        • Other URLs
  • B2B
    • Getting Started
    • B2B Setup
  • Adds-on
    • Invoicer
      • Introduction
      • Invoice & Pay On Delivery Service
  • Channel App Template
    • Introduction
    • Installation and Usage
    • Development Steps
      • Folder Structure
      • Starting Step
      • Encoding the Sales Channel
        • Introduction
        • Setup
        • Products
        • Product Price
        • Product Stock
        • Product Image
        • Orders
        • Product Data
      • Adding a New Command to Akinon
      • Listening for External Requests
    • Architecture
      • Introduction
      • Integration
      • Services (Flows)
        • Introduction
        • Product Service
        • Price Service
        • Stock Service
        • Image Service
        • Order Service
  • Multi Regional Settings
    • Multi Regional Settings
Powered by GitBook

© 2025 Akinon. All rights reserved.

On this page
  • Selector​
  • Reducer​
  • Actions​

Was this helpful?

  1. Project Zero
  2. Django
  3. Page Types
  4. Basket Page

Redux Basket State

Reducers and selectors should be used as observe(stateReducerOrSelectorName).subscribe(...) in the constructor within the js file where actions for the .view file in question are carried out.

constructor() {
  observe(basketReducer).subscribe(({ basket, pending }) => {
   ...
   ...
  });
}

is used as such. Here, we take basket and pending properties from the basketReducer (i.e. state.basket) and carried out actions through these in the method.

Selector​

There are currently numerous selectors under node_modules/shop-packages/redux/basket/selectors.js that will adjust to different usage scenarios.

Selectors created for general use are as below:​

  • basketReducer --> state.basket Takes complete basket state. Includes basket, errors, pending properties.

    • Corresponds to basket --> basketSelector.

    • Corresponds to errors --> errorSelector.

    • Corresponds to pending --> pendingSelector.

observe(basketReducer).subscribe(({ basket, errors, pending }) => { ... }); can be used as such.

Or, it can be used with relevant selectors as described below.

  • basketSelector --> state.basket.basket Contains items to be shown in the basket such as the list of basket items, discounts, prices and campaigns. Can be used as observe(basketSelector).subscribe(basket => { ... }); .

  • errorSelector --> state.basket.errors Contains basket errors. Can be used as observe(errorSelector).subscribe(errors => { ... }); .

  • pendingSelector --> state.basket.pending Contains basket hold status data as boolean. Initially returns as true. It means state.basket.basket and state.basket.errors properties are empty. When the state is modified and data is filled in the state.basket.basket and state.basket.errors properties, pending property will be false. It can be used as observe(pendingSelector).subscribe(pending => { ... }); .

Selectors created for specific use are as follows:​

  • basketItemListSelector

  • basketItemSelector

  • giftNoteSelector

  • quantitySelector

  • discountsSelector

  • basketListSelector

  • basketErrorSelector

  • basketPendingSelector

  • observe(aSelectorName).subscribe(name => { ... }); can be used as such.

You can review node_modules/shop-packages/redux/basket/selectors.js file for further details on all selectors.

Reducer​

There are currently numerous reducers under node_modules/shop-packages/redux/basket/reducer.js that will adjust to different usage scenarios.

Reducers are as follows:

  • setBasket

  • errorBasket

  • clearErrorBasket

  • pending

You can review node_modules/shop-packages/redux/basket/reducer.js file for further details on all reducers.

Actions​

We need actions to modify data in the basket.

Actions are as follows:

  • fetchBasket --> GET (Sends no parameters.) Receives basket data from API, updates state and returns basket data as promise. setQuantity --> PUT (Sends product knowledge (pk) and quantity.) Sends request to API to update item quantity, updates state and returns basket data as promise. removeProduct --> PUT (Sends pk) Sends request to API to remove item from basket, updates state and returns basket data as promise. addProduct --> POST (Sends pk and item quantity on demand. If quantity is not specified, it is accepted as one.) Sends request to API to add item in the basket, updates state and returns basket data as promise. setDiscount --> PATCH (Sends voucher code.) Sends request to API to apply voucher code to the basket, updates state and returns basket data as promise. removeDiscount --> PATCH (Sends no parameters.) Sends request to API to remove active voucher code in the basket, updates state and returns basket data as promise.

You can review node_modules/shop-packages/redux/basket/actions.js file for further details on all actions.

PreviousBasket PageNextBasket Page - View

Last updated 16 days ago

Was this helpful?