OrdersB2cAddRequest.php 5.9 KB
<?php


namespace Lackoxygen\TopWarehouse\Request\Order;


use App\Constants\LogisticsCodeConstant;
use Lackoxygen\TopWarehouse\Constants\CountryCode;
use Lackoxygen\TopWarehouse\Constants\WarehouseCode;
use Lackoxygen\TopWarehouse\Request\Request;

class OrdersB2cAddRequest extends Request
{
    /**
     * 店铺编码
     *
     * @var string
     */
    public $shop_id;

    /**
     * 单据类型,1:自营,2:代发
     *
     * @var string
     */
    public $order_type;

    /**
     * 订单号,不可重复
     *
     * @var string
     */
    public $order_id;

    /**
     * 订单时间,格式:yyyy-MM-dd HH:mm:ss
     *
     * @var string
     */
    public $created;

    /**
     * 更新时间,格式:yyyy-MM-dd HH:mm:ss
     *
     * @var string
     */
    public $modified;

    /**
     * @see LogisticsCode::TABLE
     * 物流企业代码,具体参考码表3。如不填写,默认使用店铺设置的物流企业
     *
     * @var string|null
     */
    public $logistics_code;

    /**
     * 支付流水号
     *
     * @var string
     */
    public $pay_no;

    /**
     * 支付方式
     *
     * @var string
     */
    public $pay_mode;

    /**
     * 支付时间,格式:yyyy-MM-dd HH:mm:ss
     *
     * @var string
     */
    public $pay_time;

    /**
     * 运单号,
     * BC业务:如不需要换单,即changeFlag字段值为0,则必须填写
     *
     * @var string|null
     */
    public $way_bill_no;

    /**
     * 换单标识,1:是,0:否
     * 如运单不需要换成国内落地配运单,则填写0;
     * 如运单需要换成国内落地配运单,则填写1
     *
     * @var string|null
     */
    public $change_flag;

    /**
     * 订单实付总额,浮点数,double,2位小数。
     * 货款+运费+税款-优惠金额,与支付保持一致
     *
     * @var float
     */
    public $payment;

    /**
     * 运杂费,浮点数,double,2位小数。
     * 不包含在商品价格中的运杂费,如无填0
     *
     * @var float
     */
    public $way_frt_fee;

    /**
     * 运杂费币制,参考码表5。
     *
     * @var string
     */
    public $way_frt_fee_cy;

    /**
     * 保费,浮点数,double,2位小数
     *
     * @var float
     */
    public $way_ind_fee;

    /**
     * 税费,浮点数,double,2位小数
     *
     * @var float
     */
    public $way_tax_fee;

    /**
     * 优惠减免金额,使用积分、虚拟货币、代金券等非现金支付金额,无则填写"0"。浮点数,double,2位小数
     *
     * @var float
     */
    public $discount;

    /**
     * @see WarehouseCode::TABLE_CODE
     * 仓库编码
     *
     * @var string
     */
    public $warehouse_id;

    /**
     * @see WarehouseCode::TABLE_DECLARE
     * 具体参考码表5.1,
     * 如不填,选用店铺设置方案
     *
     * @var string
     */
    public $declare_plan;

    /**
     * 订购人注册号, 订购人在电商平台唯一注册号
     *
     * @var string
     */
    public $buyer_reg_no;

    /**
     * 订购人证件类型,1:身份证,2:护照,3:军官证
     *
     * @var string
     */
    public $buyer_indentity_type;

    /**
     * 订购人电话号码
     *
     * @var string
     */
    public $buyer_telephone;

    /**
     * 订购人证件号(必须和支付实名认证一致)
     *
     * @var string
     */
    public $buyer_identity_card;

    /**
     * 订购人姓名(必须和实际支付人一致)
     *
     * @var string
     */
    public $buyer_name;

    /**
     * 收货人姓名
     *
     * @var string
     */
    public $receiver_name;

    /**
     * 收货人证件类型,1:身份证,2:护照,3:军官证
     *
     * @var string
     */
    public $receiver_identity_type;

    /**
     * 收货人证件号码
     *
     * @var string
     */
    public $receiver_identity_card;

    /**
     * 收货人手机号码
     *
     * @var string
     */
    public $receiver_mobile;

    /**
     * 收货人座机号码
     *
     * @var string|null
     */
    public $receiver_phone;

    /**
     * 收货人身份证正面照(图片的下载路径)
     *
     * @var string|null
     */
    public $identity_image_front;

    /**
     * 收货人身份证反面照(图片的下载路径)
     *
     * @var string|null
     */
    public $identity_image_back;

    /**
     * 国家
     *
     * @var string
     */
    public $receiver_country;

    /**
     * 省份
     *
     * @var string
     */
    public $receiver_state;
    /**
     * 市
     *
     * @var string
     */
    public $receiver_city;
    /**
     * 区/县
     *
     * @var string
     */
    public $receiver_district;
    /**
     * 地址
     *
     * @var string
     */
    public $receiver_address;
    /**
     * 邮编
     *
     * @var string|null
     */
    public $receiver_zip;

    /**
     * @see CountryCode::TABLE
     *启运国,国别代码见码表
     * @var string|null
     */
    public $country;

    /**
     *备注
     *
     * @var string|null
     */
    public $notes;

    /**
     *商品信息标签,可循环
     *
     * @var string
     */
    public $order_goods = [];

    /**
     * 商品集合
     *
     * @param $goods_id
     * @param $good_name
     * @param $price
     * @param $num
     * @param $dec_total
     * @param $deliveryItemId
     *
     * @return bool|mixed
     */
    public function appendOrderGoods($goods_id, $good_name, $price, $num, $dec_total, $deliveryItemId)
    {
        $item = ['index' => count($this->order_goods) + 1] + get_defined_vars();

        return parent::append('order_goods', count($this->order_goods), $item);
    }

    public function initialize()
    {
        $this->contentType = 'application/json';
        $this->path        = '/order.do?method=epass.orders.b2c.add';
        $this->method      = 'POST';
    }
}