Jump to content

get additionnal value in customer webservice


Ludo62200

Recommended Posts

Bonjour je cherche a avoir accès via le webservice de prestashop a une donnée relative au client

Pour ce faire, j accède à l url site.com/api/customers/1548?ws_key=XXXX ou l id_customer = 1548

J'ai fait une surcharge de la classe Customer.php en rajoutant

public $profile;
protected $webserviceParameters = array(
        'fields' => array(
            'id_default_group' => array('xlink_resource' => 'groups'),
            'id_lang' => array('xlink_resource' => 'languages'),
            'newsletter_date_add' => array(),
            'ip_registration_newsletter' => array(),
            'last_passwd_gen' => array('setter' => null),
            'secure_key' => array('setter' => null),
            'deleted' => array(),
            'passwd' => array('setter' => 'setWsPasswd'),
            'profile' => array('required' => true),
        ),
        'associations' => array(
            'groups' => array('resource' => 'group'),
        ),
    );

ainsi que

'fields' => array(.......,'profile' => array('type' => self::TYPE_STRING, 'required' => true),....);
 

De plus, j ai modifié la fonction getSimpleAddressSql pour retourner ce paramètre

 

Mais mon Xml retourné a un attribut <profile/> vide ...

 

Pourriez vous m aider ?

Link to comment
Share on other sites

Bonjour, ma version est 1.7.4.4

profile est un champ relatif a une table tierce de ma base de donnée prestashop lié par l id_customer

L'url présente ici, permet à mon prestataire d'avoir accès au webservice par le biais de postman, ou d'un navigateur

Link to comment
Share on other sites

Alors si j'ai compris (toujours pas sûr), il te faut un getter (voire un setter)

Exemple dans Order.php

            'shipping_number' => array(
                'getter' => 'getWsShippingNumber',
                'setter' => 'setWsShippingNumber'
            ),

...

    public function getWsShippingNumber()
    {
        $id_order_carrier = Db::getInstance()->getValue('
                        SELECT `id_order_carrier`
                        FROM `'._DB_PREFIX_.'order_carrier`
                        WHERE `id_order` = '.(int)$this->id);
        if ($id_order_carrier) {
            $order_carrier = new OrderCarrier($id_order_carrier);
            return $order_carrier->tracking_number;
        }
        return $this->shipping_number;
    }

 

Edited by doekia (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...