Skip to content

/sales/addresses

Path: /sales/addresses
Namespace: sales
Resource: addresses

Overview

The Address resource in the sales namespace provides access to customers and business partners for sales operations. Addresses can be used as buyers in sales invoices.

Key Difference from Admin: Sales namespace provides sales-focused access to addresses, typically used as buyers in sales invoices.

Relationships

See Admin Addresses for complete relationship documentation. Sales addresses use the same Address model with sales-focused access.

Key Features

  • Sales-Focused Access: Access to addresses for sales operations
  • Buyer Management: Manage customer addresses for sales invoices
  • Same Address Model: Uses the same unified Address model as admin namespace

Available Operations

List Addresses (GET)

Endpoint: GET /sales/addresses.json

Query Parameters:

  • q[field_predicate]=value - Ransack query filters for advanced filtering
  • scope=name - Apply named scope (e.g., buyers, sellers)
  • page=N - Page number for pagination
  • per_page=N - Items per page (default: 25)

Request Examples:

bash
curl -X GET "https://your-company.erpax.com/sales/addresses.json" \
  -H "Accept: application/json" \
  -H "Cookie: session_cookie"
bash
curl -X GET "https://your-company.erpax.com/sales/addresses.json?scope=buyers" \
  -H "Accept: application/json"

JavaScript Example:

javascript
const response = await fetch('/sales/addresses.json', {
  credentials: 'include',
  headers: { 'Accept': 'application/json' }
});
const data = await response.json();

Response (200 OK):

json
{
  "addresses": [
    {
      "id": 1,
      "code": "CUST-001",
      "name": "John Doe",
      "company": "Acme Corp",
      "email": "[email protected]",
      "created_at": "2024-01-10T10:00:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 25,
    "total_pages": 3,
    "total_count": 67
  }
}

Show Address (GET /:id)

Endpoint: GET /sales/addresses/:id.json

Request Example:

bash
curl -X GET "https://your-company.erpax.com/sales/addresses/1.json" \
  -H "Accept: application/json" \
  -H "Cookie: session_cookie"

Response (200 OK):

json
{
  "address": {
    "id": 1,
    "code": "CUST-001",
    "name": "John Doe",
    "company": "Acme Corp",
    "email": "[email protected]",
    "phone": "+1-555-0123",
    "address1": "123 Main St",
    "city": "New York",
    "country_code": "US",
    "currency_code": "USD"
  }
}

Create Address (POST)

Endpoint: POST /sales/addresses.json

Request Example:

bash
curl -X POST "https://your-company.erpax.com/sales/addresses.json" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Cookie: session_cookie" \
  -d '{
    "address": {
      "code": "CUST-002",
      "name": "Jane Smith",
      "company": "Tech Solutions Inc",
      "email": "[email protected]",
      "phone": "+1-555-0456",
      "address1": "456 Oak Ave",
      "city": "San Francisco",
      "country_code": "US",
      "currency_code": "USD"
    }
  }'

Response (201 Created):

json
{
  "address": {
    "id": 2,
    "code": "CUST-002",
    "name": "Jane Smith",
    "created_at": "2024-01-15T14:30:00Z"
  }
}

Update Address (PATCH /:id)

Endpoint: PATCH /sales/addresses/:id.json

Request Example:

bash
curl -X PATCH "https://your-company.erpax.com/sales/addresses/1.json" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Cookie: session_cookie" \
  -d '{
    "address": {
      "email": "[email protected]"
    }
  }'

JavaScript Example:

javascript
const response = await fetch('/sales/addresses/1.json', {
  method: 'PATCH',
  credentials: 'include',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    address: {
      email: '[email protected]'
    }
  })
});
const data = await response.json();

Response (200 OK):

json
{
  "address": {
    "id": 1,
    "email": "[email protected]",
    "updated_at": "2024-01-15T15:00:00Z"
  }
}

Delete Address (DELETE /:id)

Endpoint: DELETE /sales/addresses/:id.json

Request Example:

bash
curl -X DELETE "https://your-company.erpax.com/sales/addresses/1.json" \
  -H "Accept: application/json" \
  -H "Cookie: session_cookie"

JavaScript Example:

javascript
const response = await fetch('/sales/addresses/1.json', {
  method: 'DELETE',
  credentials: 'include',
  headers: { 'Accept': 'application/json' }
});

Response (204 No Content):

(empty response)

Scopes

See Admin Addresses for complete scope documentation. Sales namespace supports the same scopes as admin namespace.

Filters

See Admin Addresses for complete filter documentation. Sales namespace supports the same filters as admin namespace.

Business Rules

  • Sales-Focused Access: Access is limited to sales-related operations
  • Buyer Management: Addresses are typically used as buyers in sales invoices
  • Same Business Rules: Follows the same business rules as admin namespace addresses

Released under an open source license.