This guide will help you make your first API call to SAP Business One in under 5 minutes.
- Installed and configured the package (see Installation)
- SAP B1 Service Layer running and accessible
- Valid credentials configured in
.env
use SapB1\Facades\SapB1;
// Get all business partners
$response = SapB1::get('BusinessPartners');
$partners = $response->value();
// Get a specific partner
$partner = SapB1::find('BusinessPartners', 'C001');
echo $partner->entity()['CardName'];// Alternative to facade
$items = sap_b1()->get('Items')->value();$response = SapB1::create('BusinessPartners', [
'CardCode' => 'C00001',
'CardName' => 'New Customer',
'CardType' => 'cCustomer',
]);
if ($response->successful()) {
$newPartner = $response->entity();
}// Get all
$response = SapB1::get('Items');
// Get one
$response = SapB1::find('Items', 'A00001');
// Check existence
if (SapB1::exists('Items', 'A00001')) {
// Item exists
}$response = SapB1::update('BusinessPartners', 'C00001', [
'CardName' => 'Updated Customer Name',
'Phone1' => '+90 555 123 4567',
]);$response = SapB1::delete('BusinessPartners', 'C00001');use SapB1\Facades\SapB1;
$response = SapB1::query()
->select('CardCode', 'CardName', 'Balance')
->where('CardType', 'cCustomer')
->where('Balance', 'gt', 1000)
->orderByDesc('Balance')
->top(10)
->get('BusinessPartners');
foreach ($response->value() as $customer) {
echo "{$customer['CardName']}: {$customer['Balance']}\n";
}$response = SapB1::create('Orders', [
'CardCode' => 'C00001',
'DocDueDate' => now()->format('Y-m-d'),
'DocumentLines' => [
[
'ItemCode' => 'A00001',
'Quantity' => 5,
'UnitPrice' => 100,
],
[
'ItemCode' => 'A00002',
'Quantity' => 3,
'UnitPrice' => 250,
],
],
]);
if ($response->successful()) {
$order = $response->entity();
echo "Order created: DocEntry {$order['DocEntry']}";
}use SapB1\Exceptions\ServiceLayerException;
use SapB1\Exceptions\AuthenticationException;
try {
$response = SapB1::create('Orders', $data);
} catch (AuthenticationException $e) {
// Handle login failures
Log::error('SAP B1 authentication failed', ['error' => $e->getMessage()]);
} catch (ServiceLayerException $e) {
// Handle SAP B1 errors
Log::error('SAP B1 error', [
'message' => $e->getMessage(),
'code' => $e->getSapCode(),
'suggestion' => $e->getSuggestion(),
]);
}For a more fluent API:
// Fluent service syntax
$partner = SapB1::service('BusinessPartners')
->find('C001')
->entity();
$orders = SapB1::service('Orders')
->select('DocEntry', 'DocNum', 'DocTotal')
->where('CardCode', 'C001')
->top(5)
->get()
->value();- Making Requests - Learn about all request methods
- OData Query Builder - Master filtering and querying
- Working with Responses - Understand response handling
- Error Handling - Handle errors gracefully