Skip to content

Merchant API: CarrierService is never accepted #2675

@jonaaix

Description

@jonaaix

Environment details

  • OS: macOS Sequoia
  • PHP version: 8.3
  • Package name and version: "google/apiclient": "^2.15",

Objective

  1. Target is to sync shipping rates together with "warehouseBasedDeliveryTimes" to the Merchant Center.
$shoppingContentService = new ShoppingContent($client);
$shoppingContentService->shippingsettings->update(
    merchantId: $merchantId,
    accountId: $merchantId,
    postBody: $payload
 );

Example Payload

{
    "accountId": null,
    "services": [
        {
            "active": true,
            "currency": "EUR",
            "deliveryCountry": "DE",
            "eligibility": null,
            "name": "Express Shipping DE",
            "shipmentType": null,
            "rateGroups": [
                {
                    "applicableShippingLabels": null,
                    "name": null,
                    "mainTable": {
                        "name": null,
                        "rowHeaders": {
                            "numberOfItems": null,
                            "postalCodeGroupNames": null,
                            "weights": [
                                { "unit": "kg", "value": "1" },
                                { "unit": "kg", "value": "infinity" }
                            ]
                        },
                        "rows": [
                            {
                                "cells": [
                                    {
                                        "flatRate": {
                                            "currency": "EUR",
                                            "value": "12.4"
                                        }
                                    }
                                ]
                            },
                            {
                                "cells": [
                                    {
                                        "flatRate": {
                                            "currency": "EUR",
                                            "value": "12.4"
                                        }
                                    }
                                ]
                            }
                        ]
                    }
                }
            ],
            "deliveryTime": {
                "maxHandlingTimeInDays": null,
                "maxTransitTimeInDays": null,
                "minHandlingTimeInDays": null,
                "minTransitTimeInDays": null,
                "warehouseBasedDeliveryTimes": [
                    {
                        "carrier": "DHL",
                        "carrierService": "ExpressEasy",
                        "originAdministrativeArea": "Berlin",
                        "originCity": "Berlin",
                        "originCountry": "DE",
                        "originPostalCode": "12345",
                        "originStreetAddress": "Street 1",
                        "warehouseName": "Warehouse 1"
                    }
                ]
            }
        }
    ]
}

Issue

No matter what you insert as deliveryTime.warehouseBasedDeliveryTimes.carrierService, it will always be rejected. Setting the value via Merchant Center UI works.

❌ An error occurred:
   Message: {
  "error": {
    "code": 400,
    "message": "[services[0].deliveryTime.warehouseBasedDeliveryTimes[0].carrierService] Unknown carrier service: ExpressEasy for carrier: DHL",
    "errors": [
      {
        "message": "[services[0].deliveryTime.warehouseBasedDeliveryTimes[0].carrierService] Unknown carrier service: ExpressEasy for carrier: DHL",
        "domain": "global",
        "reason": "invalid"
      }
    ]
  }
}

   File: /app/vendor/google/apiclient/src/Http/REST.php on line 134

How to find valid options?

$shoppingContentService = new ShoppingContent($client);
$response = $shoppingContentService->shippingsettings->getsupportedcarriers($merchantId);
$carriers = $response->getCarriers();

Output:

...

{
    "country": "DE",
    "eddServices": [
        "Paket Domestic",
        "P\u00e4ckchen Domestic",
        "ExpressEasy",
        "Express 9am",
        "Express Domestic",
        "Express Envelope",
        "Express 12pm"
    ],
    "name": "DHL",
    "services": [
        "Paket",
        "P\u00e4ckchen"
    ]
}

...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions