2017-02-23 13 views
0

Prestashop 1.7で住所を保存しようとしているときにバックエンドの住所形式を変更しました。住所を保存できないため、住所を保存できません。それで私を助けてください?Prestashop 1.7注文アドレスを保存することができません

そのエラーを示す画像:PrestaShopののアドレステーブルの国フィールドが必要とされて

[PrestaShopException] 

Property Address->id_country is empty 
at line 915 in file classes/ObjectModel.php 

910.    } 
911. 
912.    $message = $this->validateField($field, $this->$field); 
913.    if ($message !== true) { 
914.     if ($die) { 
915.      throw new PrestaShopException($message); 
916.     } 
917.     return $error_return ? $message : false; 
918.    } 
919.   } 
920. 
ObjectModelCore->validateFields - [line 248 - classes/ObjectModel.php] 
ObjectModelCore->getFields - [line 489 - classes/ObjectModel.php] 
ObjectModelCore->add - [line 176 - classes/Address.php] - [2 Arguments] 
AddressCore->add - [line 447 - classes/ObjectModel.php] - [2 Arguments] 
ObjectModelCore->save - [line 76 - classes/form/CustomerAddressPersister.php] 
CustomerAddressPersisterCore->save - [line 144 - classes/form/CustomerAddressForm.php] - [2 Arguments] 
CustomerAddressFormCore->submit - [line 111 - classes/checkout/CheckoutAddressesStep.php] 
CheckoutAddressesStepCore->handleRequest - [line 57 - classes/checkout/CheckoutProcess.php] - [1 Arguments] 
CheckoutProcessCore->handleRequest - [line 199 - controllers/front/OrderController.php] - [1 Arguments] 
OrderControllerCore->initContent - [line 201 - classes/controller/Controller.php] 
ControllerCore->run - [line 366 - classes/Dispatcher.php] 
DispatcherCore->dispatch - [line 28 - index.php] 
+0

私はそれはバグだと信じています。 1.6から1.7に変更されました。 1.6では、それを国のアドレス形式から削除しても依然として国を尋ねます。 – sadlyblue

答えて

0

、したがってアドレス形式からそれを削除することはできません。

詳細については、店舗データベースのps_addressテーブルの構造を確認してください。

0

上記のメッセージに従って、システムは国の住所書式を削除しても、ユーザーの住所に国IDが必要です。 クラス/ Address.phpファイルで

、あなたは明らかに列定義変数で、id_countryは必須項目であるだけでなく、値が正の整数であることを見ることができます。

0

Prestashop 1.7.2.2で同じ問題が発生しました。

新しいアドレスが追加されたときと同じように、isUsed()関数が正しく評価されるためにid_addressの自動インクリメントIDを返すためにDBに保持されていません。クラスで

\フォーム\ CustomerAddressPersister.php

public function save(Address $address, $token) 
{ 
    if (!$this->authorizeChange($address, $token)) { 
     return false; 
    } 

    $address->id_customer = $this->customer->id; 
    $address->save(); // <-- Add this 

    if ($address->isUsed()) { 
     $old_address = new Address($address->id); 
     $address->id = $address->id_address = null; 

     return $address->save() && $old_address->delete(); 
    } 

    return $address->save(); 
} 
関連する問題