afosto/shopctrl

Afosto ShopCtrl 客户端

安装: 572

依赖: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 1

公开问题: 1

类型:软件包

3.0.0 2022-09-28 08:24 UTC

README

使用此客户端方便地与 ShopCtrl 交互。本 PHP 软件包由 Afosto 开发,用于在 Afosto(零售软件)和 ShopCtrl 之间建立可靠连接,并提供以下功能:

  • 从 ShopCtrl 获取产品数据
  • 从 ShopCtrl 获取订单数据
  • 在 ShopCtrl 中创建新订单

入门指南

只需遵循安装说明。您需要一个 ShopCtrl 账户,该账户已为您设置好以供使用。

先决条件

您需要安装哪些软件以及如何安装它们

  • PHP5.5+
  • Composer(用于安装)

安装

通过 Composer 安装非常简单。

composer require afosto/shopctrl

示例

现在,要获取 ShopCtrl 的产品数据,请使用以下代码。

首先设置一些配置参数

$settings = new Settings();

使用从 ShopCtrl 获取的数据定义设置

$settings->shopId = '';
$settings->baseUrl = '';
$settings->username = '';
$settings->password = '';
$settings->cultureId = '';

初始化应用程序

App::init($settings);

获取一个产品(从商店上下文)

运行 ProductSelections 的 foreach 循环以获取与商店上下文相关的数据和属于 ProductSelection 数据的全产品

foreach (ProductSelection::model()->findAll() as $productSelection) {
    $product = Product::model()->find($productSelection->productId);
    
    //Use the product data
    dump($productSelection, $product);
}

生成订单

要创建订单,请使用以下示例。首先设置联系数据。

$contact = new ContactInfo();
$contact->streetAddress = 'Grondzijl';
$contact->streetAddressNumber = 16;
$contact->city = 'Groningen';
$contact->countryCode = 'NL';
$contact->companyName = 'Afosto SaaS BV';
$contact->eMail = 'peter@afosto.com';
$contact->firstName = 'Peter';
$contact->lastName = 'Bakker';
$contact->postalCode = '9731DG';
$contact->phone = '0507119519';

创建订单行。

$orderRow = new OrderRow();
$orderRow->orderRowKey = 1;
$orderRow->itemQuantity = 1;
$orderRow->productName = 'TestProduct';
$orderRow->productCode = 'ProductSku';
$orderRow->productDescription = 'Description test product';
$orderRow->itemPriceIncVat = 5.00;
$orderRow->rowDiscountIncVat = 0;
$orderRow->vatperc = 21;
$orderRow->rowTotalIncVat = 5;

创建订单。

$order = new Order();
$order->id = 0;
$order->shipToContact = $contact;
$order->billToContact = $contact;
$order->date = (new DateTime())->format('Y/m/d H:i:s');
$order->viewModusIncVAT = true;
$order->paymentFeeIncVat = 0;
$order->shippingCostsIncVat = 0;
$order->customerNote = '';
$order->syncSource = 'Afosto';
$order->discountIncVat = 0;
$order->orderRows[] = $orderRow;
$order->orderCode = 'test' . time();
$order->orderTotalIncVat = 5.00;
$order->currencyId = 1;
$order->currencyCode = 'EUR';

根据上下文/设置设置订单的一些特定数据

$order->paymentTypeId = App::getInstance()->getSettings()->getPaymentTypeId('iDeal');
$order->cultureId = App::getInstance()->getSetting('cultureId');
$order->shopId = App::getInstance()->getSetting('shopId');
$order->mainStatusId = App::getInstance()->getSettings()->getOrderStatus('Active');

现在创建订单

$order->create();

现在使用新数据(模型已更新为来自服务器的结果)

$order->id;

其他示例

在示例目录中,您可以找到此项目的更多示例。

版本管理

我们使用 SemVer 进行版本管理。有关可用版本,请参阅此存储库的 标签

许可证

本项目采用 Apache License 2.0 许可 - 请参阅 LICENSE.md 文件以获取详细信息